Daha önce paylaşıldıysa RAPOR butonunu kullanarak bildirebilirsiniz.
Sistem bana ait değildir, yabancı forumdan alıntıdır.
Başlıktan da anlaşılacağı gibi, aşağıdaki değişiklikler etki bayrakları sınırını 64'ten 96'ya çıkaracaktır.
Server taraflı uygulanacak değişiklikler;
common/service.hSistem bana ait değildir, yabancı forumdan alıntıdır.
Başlıktan da anlaşılacağı gibi, aşağıdaki değişiklikler etki bayrakları sınırını 64'ten 96'ya çıkaracaktır.
Server taraflı uygulanacak değişiklikler;
Kod:
/// 1. // Add #define __EXTENDED_AFFECT_FLAG__
game/src/affect_flag.h
Kod:
/// 1. // Search DWORD bits[2]; inline TAffectFlag() { bits[0] = 0; bits[1] = 0; } inline TAffectFlag(DWORD v1, DWORD v2 = 0) { bits[0] = v1; bits[1] = v2; } // Replace with #if defined(__EXTENDED_AFFECT_FLAG__) DWORD bits[3]; inline TAffectFlag() { bits[0] = 0; bits[1] = 0; bits[2] = 0; } inline TAffectFlag(DWORD v1, DWORD v2 = 0, DWORD v3 = 0) { bits[0] = v1; bits[1] = v2; bits[2] = v3; } #else DWORD bits[2]; inline TAffectFlag() { bits[0] = 0; bits[1] = 0; } inline TAffectFlag(DWORD v1, DWORD v2 = 0) { bits[0] = v1; bits[1] = v2; } #endif /// 2. // Search bits[0] = rhs.bits[0]; bits[1] = rhs.bits[1]; // Add below #if defined(__EXTENDED_AFFECT_FLAG__) bits[2] = rhs.bits[2]; #endif /// 3. // Search return lhs.bits[0] == rhs.bits[0] && lhs.bits[1] == rhs.bits[1]; // Replace with #if defined(__EXTENDED_AFFECT_FLAG__) return lhs.bits[0] == rhs.bits[0] && lhs.bits[1] == rhs.bits[1] && lhs.bits[2] == rhs.bits[2]; #else return lhs.bits[0] == rhs.bits[0] && lhs.bits[1] == rhs.bits[1]; #endif
game/src/building.cpp
Kod:
/// 1. // Search @ CObject::EncodeInsertPacket pack.dwAffectFlag[0] = unsigned(m_data.xRot); pack.dwAffectFlag[1] = unsigned(m_data.yRot); // Add below #if defined(__EXTENDED_AFFECT_FLAG__) pack.dwAffectFlag[2] = unsigned(m_data.zRot); #endif
game/src/char.cpp
Kod:
/// 1. // Search @ CHARACTER::EncodeInsertPacket pack.dwAffectFlag[0] = m_afAffectFlag.bits[0]; pack.dwAffectFlag[1] = m_afAffectFlag.bits[1]; // Add below #if defined(__EXTENDED_AFFECT_FLAG__) pack.dwAffectFlag[2] = m_afAffectFlag.bits[2]; #endif /// 2. // Search @ CHARACTER::UpdatePacket pack.dwAffectFlag[0] = m_afAffectFlag.bits[0]; pack.dwAffectFlag[1] = m_afAffectFlag.bits[1]; // Add below #if defined(__EXTENDED_AFFECT_FLAG__) pack.dwAffectFlag[2] = m_afAffectFlag.bits[2]; #endif
game/src/packet.h
Kod:
/// 1. // Search @ struct packet_add_char DWORD dwAffectFlag[2]; // Replace with #if defined(__EXTENDED_AFFECT_FLAG__) DWORD dwAffectFlag[3]; #else DWORD dwAffectFlag[2]; #endif /// 2. // Search @ struct packet_update_char DWORD dwAffectFlag[2]; // Replace with #if defined(__EXTENDED_AFFECT_FLAG__) DWORD dwAffectFlag[3]; #else DWORD dwAffectFlag[2]; #endif
Client taraflı uygulanacak değişiklikler;
UserInterface/Locale_inc.h
UserInterface/AffectFlagContainer.h
UserInterface/Packet.h
UserInterface/PythonNetworkStreamPhaseGameActor.cpp
Extended Affect Flags Nedir?
Metin2 özel sunucu geliştirmelerinde önemli bir yere sahip olan Extended Affect Flags, oyuncuların karakterlerine uygulanan çeşitli etkileri tanımlamakta kullanılan gelişmiş bayraklardır.
Bu bayraklar, PvP sistemlerinde, özel efektlerde veya karakter durumlarında kullanılır.
Geliştiriciler için önemli bir yapıdır çünkü bu bayraklar sayesinde daha karmaşık ve özelleştirilmiş sistemler kurulabilir.
Extended Affect Flags Kullanımı
Extended Affect Flags, genellikle C++ kaynak kodları üzerinde tanımlanır ve client tarafında uygulanır.
Bu bayraklar, oyuncuların görsel veya işitsel olarak fark edebileceği efektlerin kontrolünü sağlar.
Örneğin bir karakter zehirlendiğinde ya da güçlenirse, bu bayraklar sayesinde belirli bir efekt gösterilebilir.
Neden Extended Affect Flags Kullanılır?
Metin2 özel sunucularında, geliştiriciler oyuna benzersiz özellikler eklemek isterler.
Extended Affect Flags, bu tür sistemlerin daha stabil ve kontrollü çalışmasını sağlar.
Ayrıca PvP sistemlerinde oyuncuların durumlarını net bir şekilde takip etmeyi mümkün kılar.
Extended Affect Flags Nasıl Tanımlanır?
Bu bayraklar genellikle enum olarak tanımlanır ve client üzerinde 'affect' isimli bir dosya içinde yer alır.
Tanımlanan bayraklar, C++ script dosyalarında aktif edilerek oyuncuya uygulanır.
Python GUI üzerinden de bu etkiler kontrol edilebilir.
Extended Affect Flags ile İlgili Dikkat Edilmesi Gerekenler
Bu bayraklar çok sayıda tanımlandığında performans üzerinde olumsuz etki yaratabilir.
Doğru tanımlanmazsa hata mesajları veya istenmeyen davranışlar oluşabilir.
Sunucu tarafında doğru entegrasyon yapılması önemlidir.
Extended Affect Flags ve PvP Sistemleri
PvP sistemlerinde, oyuncuların statüsünü belirlemek için bu bayraklar kullanılır.
Bir oyuncu zehirlenmişse, korunmuşsa ya da güçlenmişse, bu bilgi Extended Affect Flags aracılığıyla aktarılır.
Bu sayede oyuncular kritik durumları hızlıca görebilir.
Extended Affect Flags ile Oyun Deneyimi
Oyuncuların daha fazla görsel ve işitsel geri bildirim alması sağlanır.
Oyun içi durum değişiklikleri daha belirgin hale gelir.
Bu da oyuncu deneyimini artırır ve oyunun daha akıcı bir şekilde oynanmasını sağlar.
Sonuç
Extended Affect Flags, Metin2 özel sunucularında gelişmiş etki sistemleri kurmak için güçlü bir araçtır.
Doğru kullanıldığında hem oyun deneyimini artırır hem de geliştiricilere büyük kolaylıklar sağlar.
Bu bayraklar, özellikle PvP sistemlerinde kritik rol oynar.
What is Extended Affect Flags?
Extended Affect Flags are advanced flags used in Metin2 private server developments to define various effects applied to player characters.
These flags are utilized in PvP systems, special effects, or character status updates.
They are important for developers as they allow building more complex and customized systems.
Usage of Extended Affect Flags
Extended Affect Flags are usually defined within C++ source codes and applied on the client side.
These flags help control visual or auditory effects that players can perceive.
For instance, if a character becomes poisoned or strengthened, specific effects can be displayed through these flags.
Why Use Extended Affect Flags?
In Metin2 private servers, developers aim to add unique features to the game.
Extended Affect Flags ensure such systems operate more stably and controllably.
Additionally, in PvP systems, they allow clear tracking of player statuses.
How to Define Extended Affect Flags?
These flags are typically defined as enums and located inside a file named 'affect' on the client side.
Defined flags are activated in C++ script files and applied to the player.
These effects can also be controlled via Python GUI.
Considerations Regarding Extended Affect Flags
If too many flags are defined, this may negatively impact performance.
Incorrect definitions might cause error messages or unexpected behaviors.
Proper integration on the server-side is essential.
Extended Affect Flags and PvP Systems
In PvP systems, these flags are used to determine player statuses.
Whether a player is poisoned, protected, or strengthened, this information is conveyed via Extended Affect Flags.
Thus, players can quickly identify critical states.
Extended Affect Flags and Game Experience
Players receive more visual and auditory feedback.
In-game status changes become more apparent.
This enhances the overall gameplay experience and makes the game smoother to play.
Conclusion
Extended Affect Flags are a powerful tool for creating advanced effect systems in Metin2 private servers.
When used correctly, they enhance both the gaming experience and provide great convenience to developers.
Especially in PvP systems, these flags play a critical role.
UserInterface/Locale_inc.h
Kod:
/// 1. // Add #define ENABLE_EXTENDED_AFFECT_FLAG
UserInterface/AffectFlagContainer.h
Kod:
/// 1. // Search BIT_SIZE = 64, // Replace with #if defined(ENABLE_EXTENDED_AFFECT_FLAG) BIT_SIZE = 96, #else BIT_SIZE = 64, #endif
UserInterface/Packet.h
Kod:
/// 1. // Search @ struct packet_add_char DWORD dwAffectFlag[2]; // Replace with #if defined(ENABLE_EXTENDED_AFFECT_FLAG) DWORD dwAffectFlag[3]; #else DWORD dwAffectFlag[2]; #endif /// 2. // Search @ struct packet_add_char2 DWORD dwAffectFlag[2]; // Replace with #if defined(ENABLE_EXTENDED_AFFECT_FLAG) DWORD dwAffectFlag[3]; #else DWORD dwAffectFlag[2]; #endif /// 3. // Search @ struct packet_update_char DWORD dwAffectFlag[2]; // Replace with #if defined(ENABLE_EXTENDED_AFFECT_FLAG) DWORD dwAffectFlag[3]; #else DWORD dwAffectFlag[2]; #endif /// 4. // Search @ struct packet_update_char2 DWORD dwAffectFlag[2]; // Replace with #if defined(ENABLE_EXTENDED_AFFECT_FLAG) DWORD dwAffectFlag[3]; #else DWORD dwAffectFlag[2]; #endif
UserInterface/PythonNetworkStreamPhaseGameActor.cpp
Kod:
/// 1. // Search @ CPythonNetworkStream::RecvCharacterAppendPacket kNetActorData.m_kAffectFlags.CopyData(32, sizeof(chrAddPacket.dwAffectFlag[1]), &chrAddPacket.dwAffectFlag[1]); // Add below #if defined(ENABLE_EXTENDED_AFFECT_FLAG) kNetActorData.m_kAffectFlags.CopyData(64, sizeof(chrAddPacket.dwAffectFlag[2]), &chrAddPacket.dwAffectFlag[2]); #endif /// 2. // Search @ CPythonNetworkStream::RecvCharacterAppendPacketNew kNetActorData.m_kAffectFlags.CopyData(32, sizeof(chrAddPacket.dwAffectFlag[1]), &chrAddPacket.dwAffectFlag[1]); // Add below #if defined(ENABLE_EXTENDED_AFFECT_FLAG) kNetActorData.m_kAffectFlags.CopyData(64, sizeof(chrAddPacket.dwAffectFlag[2]), &chrAddPacket.dwAffectFlag[2]); #endif /// 3. // Search @ CPythonNetworkStream::RecvCharacterUpdatePacket kNetUpdateActorData.m_kAffectFlags.CopyData(32, sizeof(chrUpdatePacket.dwAffectFlag[1]), &chrUpdatePacket.dwAffectFlag[1]); // Add below #if defined(ENABLE_EXTENDED_AFFECT_FLAG) kNetUpdateActorData.m_kAffectFlags.CopyData(64, sizeof(chrUpdatePacket.dwAffectFlag[2]), &chrUpdatePacket.dwAffectFlag[2]); #endif /// 4. // Search @ CPythonNetworkStream::RecvCharacterUpdatePacketNew kNetUpdateActorData.m_kAffectFlags.CopyData(32, sizeof(chrUpdatePacket.dwAffectFlag[1]), &chrUpdatePacket.dwAffectFlag[1]); // Add below #if defined(ENABLE_EXTENDED_AFFECT_FLAG) kNetUpdateActorData.m_kAffectFlags.CopyData(64, sizeof(chrUpdatePacket.dwAffectFlag[2]), &chrUpdatePacket.dwAffectFlag[2]); #endif
Extended Affect Flags Hakkında Detaylı Bilgi
Extended Affect Flags Nedir?
Metin2 özel sunucu geliştirmelerinde önemli bir yere sahip olan Extended Affect Flags, oyuncuların karakterlerine uygulanan çeşitli etkileri tanımlamakta kullanılan gelişmiş bayraklardır.
Bu bayraklar, PvP sistemlerinde, özel efektlerde veya karakter durumlarında kullanılır.
Geliştiriciler için önemli bir yapıdır çünkü bu bayraklar sayesinde daha karmaşık ve özelleştirilmiş sistemler kurulabilir.
Extended Affect Flags Kullanımı
Extended Affect Flags, genellikle C++ kaynak kodları üzerinde tanımlanır ve client tarafında uygulanır.
Bu bayraklar, oyuncuların görsel veya işitsel olarak fark edebileceği efektlerin kontrolünü sağlar.
Örneğin bir karakter zehirlendiğinde ya da güçlenirse, bu bayraklar sayesinde belirli bir efekt gösterilebilir.
Neden Extended Affect Flags Kullanılır?
Metin2 özel sunucularında, geliştiriciler oyuna benzersiz özellikler eklemek isterler.
Extended Affect Flags, bu tür sistemlerin daha stabil ve kontrollü çalışmasını sağlar.
Ayrıca PvP sistemlerinde oyuncuların durumlarını net bir şekilde takip etmeyi mümkün kılar.
Extended Affect Flags Nasıl Tanımlanır?
Bu bayraklar genellikle enum olarak tanımlanır ve client üzerinde 'affect' isimli bir dosya içinde yer alır.
Tanımlanan bayraklar, C++ script dosyalarında aktif edilerek oyuncuya uygulanır.
Python GUI üzerinden de bu etkiler kontrol edilebilir.
Extended Affect Flags ile İlgili Dikkat Edilmesi Gerekenler
Bu bayraklar çok sayıda tanımlandığında performans üzerinde olumsuz etki yaratabilir.
Doğru tanımlanmazsa hata mesajları veya istenmeyen davranışlar oluşabilir.
Sunucu tarafında doğru entegrasyon yapılması önemlidir.
Extended Affect Flags ve PvP Sistemleri
PvP sistemlerinde, oyuncuların statüsünü belirlemek için bu bayraklar kullanılır.
Bir oyuncu zehirlenmişse, korunmuşsa ya da güçlenmişse, bu bilgi Extended Affect Flags aracılığıyla aktarılır.
Bu sayede oyuncular kritik durumları hızlıca görebilir.
Extended Affect Flags ile Oyun Deneyimi
Oyuncuların daha fazla görsel ve işitsel geri bildirim alması sağlanır.
Oyun içi durum değişiklikleri daha belirgin hale gelir.
Bu da oyuncu deneyimini artırır ve oyunun daha akıcı bir şekilde oynanmasını sağlar.
Sonuç
Extended Affect Flags, Metin2 özel sunucularında gelişmiş etki sistemleri kurmak için güçlü bir araçtır.
Doğru kullanıldığında hem oyun deneyimini artırır hem de geliştiricilere büyük kolaylıklar sağlar.
Bu bayraklar, özellikle PvP sistemlerinde kritik rol oynar.
Detailed Information About Extended Affect Flags
What is Extended Affect Flags?
Extended Affect Flags are advanced flags used in Metin2 private server developments to define various effects applied to player characters.
These flags are utilized in PvP systems, special effects, or character status updates.
They are important for developers as they allow building more complex and customized systems.
Usage of Extended Affect Flags
Extended Affect Flags are usually defined within C++ source codes and applied on the client side.
These flags help control visual or auditory effects that players can perceive.
For instance, if a character becomes poisoned or strengthened, specific effects can be displayed through these flags.
Why Use Extended Affect Flags?
In Metin2 private servers, developers aim to add unique features to the game.
Extended Affect Flags ensure such systems operate more stably and controllably.
Additionally, in PvP systems, they allow clear tracking of player statuses.
How to Define Extended Affect Flags?
These flags are typically defined as enums and located inside a file named 'affect' on the client side.
Defined flags are activated in C++ script files and applied to the player.
These effects can also be controlled via Python GUI.
Considerations Regarding Extended Affect Flags
If too many flags are defined, this may negatively impact performance.
Incorrect definitions might cause error messages or unexpected behaviors.
Proper integration on the server-side is essential.
Extended Affect Flags and PvP Systems
In PvP systems, these flags are used to determine player statuses.
Whether a player is poisoned, protected, or strengthened, this information is conveyed via Extended Affect Flags.
Thus, players can quickly identify critical states.
Extended Affect Flags and Game Experience
Players receive more visual and auditory feedback.
In-game status changes become more apparent.
This enhances the overall gameplay experience and makes the game smoother to play.
Conclusion
Extended Affect Flags are a powerful tool for creating advanced effect systems in Metin2 private servers.
When used correctly, they enhance both the gaming experience and provide great convenience to developers.
Especially in PvP systems, these flags play a critical role.
