Mevcut sorun şu şekilde:
char.cpp aç ve arat:
Altına Ekle:
input_main.cpp aç ve arat:
Değiştir:
Alıntıdır. xenfero teşekkürler.
char.cpp aç ve arat:
Kod:
void CHARACTER::SendMovePacket(BYTE bFunc, BYTE bArg, DWORD x, DWORD y, DWORD dwDuration, DWORD dwTime, int iRot) {
Altına Ekle:
Kod:
if (IsGM() && IsAffectFlag(AFF_INVISIBILITY)) return;
input_main.cpp aç ve arat:
Kod:
TPacketGCMove pack; pack.bHeader = HEADER_GC_MOVE; pack.bFunc = pinfo->bFunc; pack.bArg = pinfo->bArg; pack.bRot = pinfo->bRot; pack.dwVID = ch->GetVID(); pack.lX = pinfo->lX; pack.lY = pinfo->lY; pack.dwTime = pinfo->dwTime; pack.dwDuration = (pinfo->bFunc == FUNC_MOVE) ? ch->GetCurrentMoveDuration() : 0; ch->PacketAround(&pack, sizeof(TPacketGCMove), ch);
Değiştir:
Kod:
if (!ch->IsAffectFlag(AFF_INVISIBILITY) && !ch->IsGM()) { TPacketGCMove pack; pack.bHeader = HEADER_GC_MOVE; pack.bFunc = pinfo->bFunc; pack.bArg = pinfo->bArg; pack.bRot = pinfo->bRot; pack.dwVID = ch->GetVID(); pack.lX = pinfo->lX; pack.lY = pinfo->lY; pack.dwTime = pinfo->dwTime; pack.dwDuration = (pinfo->bFunc == FUNC_MOVE) ? ch->GetCurrentMoveDuration() : 0; ch->PacketAround(&pack, sizeof(TPacketGCMove), ch); }
Alıntıdır. xenfero teşekkürler.
GM Görünmezken Skill Efekti Görünmesin - Metin2 Sunucu Geliştirme Rehberi
Metin2 özel sunucularında geliştirme yaparken bazı sistemsel değişiklikler yapmak isteyebilirsiniz. Bunlardan biri de GM (Game Master) yetkililerinin görünmezken kullandıkları skill efektlerinin diğer oyuncular tarafından görülmemesidir. Bu işlem, hem güvenliği artırır hem de GM aktivitelerinin gizlenmesini sağlar. Bu rehberde, GM görünmezken skill efekti görünmesin konusunu detaylıca ele alacağız.
Metin2 Sunucu Yapısı ve GM Sistemleri
Metin2 özel sunucularında, GM sistemleri genellikle C++ tabanlı game core üzerinde çalışır. Bu sistemlerde, GM yetkileri sahip oldukları özel komutlar sayesinde görünmez kalabilir, ancak bu durumda kullandıkları skill efektleri hâlâ görünebilir. Bu da güvenlik açığı yaratabilir.
Neden Skill Efektleri Gizlenmeli?
Bir GM görünmezken skill kullandığında, efektlerin görünmesi gerçek oyuncuların dikkatini çekebilir. Özellikle PvP sunucularında bu, büyük dezavantajlara neden olabilir. Bu yüzden, GM görünmez iken kullandığı skill efektlerinin de görünmemesi önemlidir.
Geliştirme Adımları
Öncelikle, game server tarafında çalışan bir C++ script veya source edit yöntemiyle müdahale edilmelidir. Bu işlem genellikle client-server iletişimi üzerinden yapılır. Oyuncuya gönderilen efekt paketleri, GM kullanıcılar için filtrelenmelidir.
Efekt Paketi Filtreleme
Oyun içi efektler genellikle packet yapısıyla gönderilir. Bu paketlerin içeriği, efektin kim tarafından kullanıldığını ve hangi oyuncuların görebileceğini belirler. GM görünmezse, efekt paketlerinin diğer oyunculara gönderilmemesi sağlanmalıdır.
Python ve Py Root Kullanımı
Bazı durumlarda, efekt yönetimini Python ile de yönetebilirsiniz. Eğer sunucunuz py root yapısını kullanıyorsa, efekt gösterim fonksiyonlarını düzenleyerek GM görünmez iken efektlerin görünmemesini sağlayabilirsiniz.
Martysama ve Metin2 Development Araçları
Metin2 özel sunucu geliştirme dünyasında martysama ve benzeri araçlar, birçok geliştirici tarafından kullanılır. Bu tür kaynaklar sayesinde, efekt gizleme gibi işlemleri daha kolay bir şekilde yapabilirsiniz.
Test ve Uygulama
Değişikliklerden sonra mutlaka test aşaması yapılmalıdır. Auth ve game server arasında senkronizasyon sağlanmalı, GM görünmezken skill efektleri gözlemlenmelidir.
Sonuç
GM görünmezken skill efekti görünmemesi, Metin2 özel sunucularında güvenlik ve deneyim açısından önemli bir detaydır. Doğru yapılandırılmış core ve db sistemleriyle bu hedefe ulaşmak mümkündür.
Hide Skill Effects When GM is Invisible - Metin2 Server Development Guide
When developing Metin2 private servers, you may want to make certain systematic changes. One of these is ensuring that skill effects used by Game Masters (GMs) remain invisible to other players when they are in invisible mode. This adjustment increases security and ensures GM activities remain hidden. In this guide, we will cover the topic of hiding skill effects while GM is invisible in detail.
Metin2 Server Structure and GM Systems
In Metin2 private servers, GM systems typically operate on C++ based game cores. Within these systems, GMs can stay invisible thanks to special commands, but their used skill effects may still be visible. This can pose a security risk.
Why Should Skill Effects Be Hidden?
When a GM uses a skill while invisible, the visible effects can draw attention from real players. Especially on PvP servers, this can lead to significant disadvantages. Therefore, it is important that skill effects used by invisible GMs remain hidden.
Development Steps
Firstly, intervention must be made via a C++ script or source edit method operating on the game server. This process typically occurs through client-server communication. Effect packets sent to players should be filtered for GM users.
Effect Packet Filtering
In-game effects are usually sent via packets. The content of these packets determines who used the effect and which players can see it. If the GM is invisible, effect packets should not be sent to other players.
Using Python and Py Root
In some cases, you can manage effect handling with Python. If your server uses a py root structure, you can modify effect display functions to prevent effects from appearing when the GM is invisible.
Martysama and Metin2 Development Tools
Within the Metin2 private server development community, tools like martysama are widely used by developers. These resources can help you achieve effects like hiding skill effects more easily.
Testing and Implementation
After making changes, testing is essential. Synchronization between auth and game server must be ensured, and skill effects while GM is invisible should be observed carefully.
Conclusion
Hiding skill effects when GM is invisible is an important detail for both security and gameplay experience in Metin2 private servers. With properly configured core and db systems, achieving this goal is possible.
