Sequence'i devre dışı bırakma

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 51

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
pasha37 nin konusudur isteyen daha rahat ulaşsın diye açıyorum

"SEQUENCE %x mismatch 0x%x != 0x%x header %u" hatası ile oyundan atmaları engellemek için kullanabilirsiniz



*game/packet_info.cpp

Arat:

Kod:
CPacketInfoCG::CPacketInfoCG() {     Set(HEADER_CG_TEXT, sizeof(TPacketCGText), "Text", false);     Set(HEADER_CG_HANDSHAKE, sizeof(TPacketCGHandshake), "Handshake", false);     Set(HEADER_CG_TIME_SYNC, sizeof(TPacketCGHandshake), "TimeSync", true);     Set(HEADER_CG_MARK_LOGIN, sizeof(TPacketCGMarkLogin), "MarkLogin", false);     Set(HEADER_CG_MARK_IDXLIST, sizeof(TPacketCGMarkIDXList), "MarkIdxList", false);     Set(HEADER_CG_MARK_CRCLIST, sizeof(TPacketCGMarkCRCList), "MarkCrcList", false);     Set(HEADER_CG_MARK_UPLOAD, sizeof(TPacketCGMarkUpload), "MarkUpload", false); #ifdef _IMPROVED_PACKET_ENCRYPTION_     Set(HEADER_CG_KEY_AGREEMENT, sizeof(TPacketKeyAgreement), "KeyAgreement", false); #endif     Set(HEADER_CG_GUILD_SYMBOL_UPLOAD, sizeof(TPacketCGGuildSymbolUpload), "SymbolUpload", false);     Set(HEADER_CG_SYMBOL_CRC, sizeof(TPacketCGSymbolCRC), "SymbolCRC", false);     Set(HEADER_CG_LOGIN, sizeof(TPacketCGLogin), "Login", true);     Set(HEADER_CG_LOGIN2, sizeof(TPacketCGLogin2), "Login2", true);     Set(HEADER_CG_LOGIN3, sizeof(TPacketCGLogin3), "Login3", true);     Set(HEADER_CG_LOGIN5_OPENID, sizeof(TPacketCGLogin5), "Login5", true);    //OpenID     Set(HEADER_CG_ATTACK, sizeof(TPacketCGAttack), "Attack", true);     Set(HEADER_CG_CHAT, sizeof(TPacketCGChat), "Chat", true);     Set(HEADER_CG_WHISPER, sizeof(TPacketCGWhisper), "Whisper", true);     Set(HEADER_CG_CHARACTER_SELECT, sizeof(TPacketCGPlayerSelect), "Select", true);     Set(HEADER_CG_CHARACTER_CREATE, sizeof(TPacketCGPlayerCreate), "Create", true);     Set(HEADER_CG_CHARACTER_DELETE, sizeof(TPacketCGPlayerDelete), "Delete", true);     Set(HEADER_CG_ENTERGAME, sizeof(TPacketCGEnterGame), "EnterGame", true);     Set(HEADER_CG_ITEM_USE, sizeof(TPacketCGItemUse), "ItemUse", true);     Set(HEADER_CG_ITEM_DROP, sizeof(TPacketCGItemDrop), "ItemDrop", true);     Set(HEADER_CG_ITEM_DROP2, sizeof(TPacketCGItemDrop2), "ItemDrop2", true);     Set(HEADER_CG_ITEM_MOVE, sizeof(TPacketCGItemMove), "ItemMove", true);     Set(HEADER_CG_ITEM_PICKUP, sizeof(TPacketCGItemPickup), "ItemPickup", true);     Set(HEADER_CG_QUICKSLOT_ADD, sizeof(TPacketCGQuickslotAdd), "QuickslotAdd", true);     Set(HEADER_CG_QUICKSLOT_DEL, sizeof(TPacketCGQuickslotDel), "QuickslotDel", true);     Set(HEADER_CG_QUICKSLOT_SWAP, sizeof(TPacketCGQuickslotSwap), "QuickslotSwap", true);     Set(HEADER_CG_SHOP, sizeof(TPacketCGShop), "Shop", true);     Set(HEADER_CG_ON_CLICK, sizeof(TPacketCGOnClick), "OnClick", true);     Set(HEADER_CG_EXCHANGE, sizeof(TPacketCGExchange), "Exchange", true);     Set(HEADER_CG_CHARACTER_POSITION, sizeof(TPacketCGPosition), "Position", true);     Set(HEADER_CG_SCRIPT_ANSWER, sizeof(TPacketCGScriptAnswer), "ScriptAnswer", true);     Set(HEADER_CG_SCRIPT_BUTTON, sizeof(TPacketCGScriptButton), "ScriptButton", true);     Set(HEADER_CG_QUEST_INPUT_STRING, sizeof(TPacketCGQuestInputString), "QuestInputString", true);     Set(HEADER_CG_QUEST_CONFIRM, sizeof(TPacketCGQuestConfirm), "QuestConfirm", true);     Set(HEADER_CG_MOVE, sizeof(TPacketCGMove), "Move", true);     Set(HEADER_CG_SYNC_POSITION, sizeof(TPacketCGSyncPosition), "SyncPosition", true);     Set(HEADER_CG_FLY_TARGETING, sizeof(TPacketCGFlyTargeting), "FlyTarget", true);     Set(HEADER_CG_ADD_FLY_TARGETING, sizeof(TPacketCGFlyTargeting), "AddFlyTarget", true);     Set(HEADER_CG_SHOOT, sizeof(TPacketCGShoot), "Shoot", true);     Set(HEADER_CG_USE_SKILL, sizeof(TPacketCGUseSkill), "UseSkill", true);     Set(HEADER_CG_ITEM_USE_TO_ITEM, sizeof(TPacketCGItemUseToItem), "UseItemToItem", true);     Set(HEADER_CG_TARGET, sizeof(TPacketCGTarget), "Target", true);     Set(HEADER_CG_WARP, sizeof(TPacketCGWarp), "Warp", true);     Set(HEADER_CG_MESSENGER, sizeof(TPacketCGMessenger), "Messenger", true);     Set(HEADER_CG_PARTY_REMOVE, sizeof(TPacketCGPartyRemove), "PartyRemove", true);     Set(HEADER_CG_PARTY_INVITE, sizeof(TPacketCGPartyInvite), "PartyInvite", true);     Set(HEADER_CG_PARTY_INVITE_ANSWER, sizeof(TPacketCGPartyInviteAnswer), "PartyInviteAnswer", true);     Set(HEADER_CG_PARTY_SET_STATE, sizeof(TPacketCGPartySetState), "PartySetState", true);     Set(HEADER_CG_PARTY_USE_SKILL, sizeof(TPacketCGPartyUseSkill), "PartyUseSkill", true);     Set(HEADER_CG_PARTY_PARAMETER, sizeof(TPacketCGPartyParameter), "PartyParam", true);     Set(HEADER_CG_EMPIRE, sizeof(TPacketCGEmpire), "Empire", true);     Set(HEADER_CG_SAFEBOX_CHECKOUT, sizeof(TPacketCGSafeboxCheckout), "SafeboxCheckout", true);     Set(HEADER_CG_SAFEBOX_CHECKIN, sizeof(TPacketCGSafeboxCheckin), "SafeboxCheckin", true);     Set(HEADER_CG_SAFEBOX_ITEM_MOVE, sizeof(TPacketCGItemMove), "SafeboxItemMove", true);     Set(HEADER_CG_GUILD, sizeof(TPacketCGGuild), "Guild", true);     Set(HEADER_CG_ANSWER_MAKE_GUILD, sizeof(TPacketCGAnswerMakeGuild), "AnswerMakeGuild", true);     Set(HEADER_CG_FISHING, sizeof(TPacketCGFishing), "Fishing", true);     Set(HEADER_CG_ITEM_GIVE, sizeof(TPacketCGGiveItem), "ItemGive", true);     Set(HEADER_CG_HACK, sizeof(TPacketCGHack), "Hack", true);     Set(HEADER_CG_MYSHOP, sizeof(TPacketCGMyShop), "MyShop", true);     Set(HEADER_CG_REFINE, sizeof(TPacketCGRefine), "Refine", true);     Set(HEADER_CG_CHANGE_NAME, sizeof(TPacketCGChangeName), "ChangeName", true);     Set(HEADER_CG_CLIENT_VERSION, sizeof(TPacketCGClientVersion), "Version", true);     Set(HEADER_CG_CLIENT_VERSION2, sizeof(TPacketCGClientVersion2), "Version", true);     Set(HEADER_CG_PONG, sizeof(BYTE), "Pong", true);     Set(HEADER_CG_MALL_CHECKOUT, sizeof(TPacketCGSafeboxCheckout), "MallCheckout", true);     Set(HEADER_CG_SCRIPT_SELECT_ITEM, sizeof(TPacketCGScriptSelectItem), "ScriptSelectItem", true);     Set(HEADER_CG_PASSPOD_ANSWER, sizeof(TPacketCGPasspod), "PasspodAnswer", true);     Set(HEADER_CG_HS_ACK, sizeof(TPacketGCHSCheck), "HackShieldResponse", false);     Set(HEADER_CG_XTRAP_ACK, sizeof(TPacketXTrapCSVerify), "XTrapResponse", false);     Set(HEADER_CG_DRAGON_SOUL_REFINE, sizeof(TPacketCGDragonSoulRefine), "DragonSoulRefine", false);     Set(HEADER_CG_STATE_CHECKER, sizeof(BYTE), "ServerStateCheck", false); }
Değiştir:
Kod:
CPacketInfoCG::CPacketInfoCG() {     Set(HEADER_CG_TEXT, sizeof(TPacketCGText), "Text", false);     Set(HEADER_CG_HANDSHAKE, sizeof(TPacketCGHandshake), "Handshake", false);     Set(HEADER_CG_TIME_SYNC, sizeof(TPacketCGHandshake), "TimeSync", false);     Set(HEADER_CG_MARK_LOGIN, sizeof(TPacketCGMarkLogin), "MarkLogin", false);     Set(HEADER_CG_MARK_IDXLIST, sizeof(TPacketCGMarkIDXList), "MarkIdxList", false);     Set(HEADER_CG_MARK_CRCLIST, sizeof(TPacketCGMarkCRCList), "MarkCrcList", false);     Set(HEADER_CG_MARK_UPLOAD, sizeof(TPacketCGMarkUpload), "MarkUpload", false); #ifdef _IMPROVED_PACKET_ENCRYPTION_     Set(HEADER_CG_KEY_AGREEMENT, sizeof(TPacketKeyAgreement), "KeyAgreement", false); #endif     Set(HEADER_CG_GUILD_SYMBOL_UPLOAD, sizeof(TPacketCGGuildSymbolUpload), "SymbolUpload", false);     Set(HEADER_CG_SYMBOL_CRC, sizeof(TPacketCGSymbolCRC), "SymbolCRC", false);     Set(HEADER_CG_LOGIN, sizeof(TPacketCGLogin), "Login", false);     Set(HEADER_CG_LOGIN2, sizeof(TPacketCGLogin2), "Login2", false);     Set(HEADER_CG_LOGIN3, sizeof(TPacketCGLogin3), "Login3", false);     Set(HEADER_CG_LOGIN5_OPENID, sizeof(TPacketCGLogin5), "Login5", false);    //OpenID     Set(HEADER_CG_ATTACK, sizeof(TPacketCGAttack), "Attack", false);     Set(HEADER_CG_CHAT, sizeof(TPacketCGChat), "Chat", false);     Set(HEADER_CG_WHISPER, sizeof(TPacketCGWhisper), "Whisper", false);     Set(HEADER_CG_CHARACTER_SELECT, sizeof(TPacketCGPlayerSelect), "Select", false);     Set(HEADER_CG_CHARACTER_CREATE, sizeof(TPacketCGPlayerCreate), "Create", false);     Set(HEADER_CG_CHARACTER_DELETE, sizeof(TPacketCGPlayerDelete), "Delete", false);     Set(HEADER_CG_ENTERGAME, sizeof(TPacketCGEnterGame), "EnterGame", false);     Set(HEADER_CG_ITEM_USE, sizeof(TPacketCGItemUse), "ItemUse", false);     Set(HEADER_CG_ITEM_DROP, sizeof(TPacketCGItemDrop), "ItemDrop", false);     Set(HEADER_CG_ITEM_DROP2, sizeof(TPacketCGItemDrop2), "ItemDrop2", false);     Set(HEADER_CG_ITEM_MOVE, sizeof(TPacketCGItemMove), "ItemMove", false);     Set(HEADER_CG_ITEM_PICKUP, sizeof(TPacketCGItemPickup), "ItemPickup", false);     Set(HEADER_CG_QUICKSLOT_ADD, sizeof(TPacketCGQuickslotAdd), "QuickslotAdd", false);     Set(HEADER_CG_QUICKSLOT_DEL, sizeof(TPacketCGQuickslotDel), "QuickslotDel", false);     Set(HEADER_CG_QUICKSLOT_SWAP, sizeof(TPacketCGQuickslotSwap), "QuickslotSwap", false);     Set(HEADER_CG_SHOP, sizeof(TPacketCGShop), "Shop", false);     Set(HEADER_CG_ON_CLICK, sizeof(TPacketCGOnClick), "OnClick", false);     Set(HEADER_CG_EXCHANGE, sizeof(TPacketCGExchange), "Exchange", false);     Set(HEADER_CG_CHARACTER_POSITION, sizeof(TPacketCGPosition), "Position", false);     Set(HEADER_CG_SCRIPT_ANSWER, sizeof(TPacketCGScriptAnswer), "ScriptAnswer", false);     Set(HEADER_CG_SCRIPT_BUTTON, sizeof(TPacketCGScriptButton), "ScriptButton", false);     Set(HEADER_CG_QUEST_INPUT_STRING, sizeof(TPacketCGQuestInputString), "QuestInputString", false);     Set(HEADER_CG_QUEST_CONFIRM, sizeof(TPacketCGQuestConfirm), "QuestConfirm", false);     Set(HEADER_CG_MOVE, sizeof(TPacketCGMove), "Move", false);     Set(HEADER_CG_SYNC_POSITION, sizeof(TPacketCGSyncPosition), "SyncPosition", false);     Set(HEADER_CG_FLY_TARGETING, sizeof(TPacketCGFlyTargeting), "FlyTarget", false);     Set(HEADER_CG_ADD_FLY_TARGETING, sizeof(TPacketCGFlyTargeting), "AddFlyTarget", false);     Set(HEADER_CG_SHOOT, sizeof(TPacketCGShoot), "Shoot", false);     Set(HEADER_CG_USE_SKILL, sizeof(TPacketCGUseSkill), "UseSkill", false);     Set(HEADER_CG_ITEM_USE_TO_ITEM, sizeof(TPacketCGItemUseToItem), "UseItemToItem", false);     Set(HEADER_CG_TARGET, sizeof(TPacketCGTarget), "Target", false);     Set(HEADER_CG_WARP, sizeof(TPacketCGWarp), "Warp", false);     Set(HEADER_CG_MESSENGER, sizeof(TPacketCGMessenger), "Messenger", false);     Set(HEADER_CG_PARTY_REMOVE, sizeof(TPacketCGPartyRemove), "PartyRemove", false);     Set(HEADER_CG_PARTY_INVITE, sizeof(TPacketCGPartyInvite), "PartyInvite", false);     Set(HEADER_CG_PARTY_INVITE_ANSWER, sizeof(TPacketCGPartyInviteAnswer), "PartyInviteAnswer", false);     Set(HEADER_CG_PARTY_SET_STATE, sizeof(TPacketCGPartySetState), "PartySetState", false);     Set(HEADER_CG_PARTY_USE_SKILL, sizeof(TPacketCGPartyUseSkill), "PartyUseSkill", false);     Set(HEADER_CG_PARTY_PARAMETER, sizeof(TPacketCGPartyParameter), "PartyParam", false);     Set(HEADER_CG_EMPIRE, sizeof(TPacketCGEmpire), "Empire", false);     Set(HEADER_CG_SAFEBOX_CHECKOUT, sizeof(TPacketCGSafeboxCheckout), "SafeboxCheckout", false);     Set(HEADER_CG_SAFEBOX_CHECKIN, sizeof(TPacketCGSafeboxCheckin), "SafeboxCheckin", false);     Set(HEADER_CG_SAFEBOX_ITEM_MOVE, sizeof(TPacketCGItemMove), "SafeboxItemMove", false);     Set(HEADER_CG_GUILD, sizeof(TPacketCGGuild), "Guild", false);     Set(HEADER_CG_ANSWER_MAKE_GUILD, sizeof(TPacketCGAnswerMakeGuild), "AnswerMakeGuild", false);     Set(HEADER_CG_FISHING, sizeof(TPacketCGFishing), "Fishing", false);     Set(HEADER_CG_ITEM_GIVE, sizeof(TPacketCGGiveItem), "ItemGive", false);     Set(HEADER_CG_HACK, sizeof(TPacketCGHack), "Hack", false);     Set(HEADER_CG_MYSHOP, sizeof(TPacketCGMyShop), "MyShop", false);     Set(HEADER_CG_REFINE, sizeof(TPacketCGRefine), "Refine", false);     Set(HEADER_CG_CHANGE_NAME, sizeof(TPacketCGChangeName), "ChangeName", false);     Set(HEADER_CG_CLIENT_VERSION, sizeof(TPacketCGClientVersion), "Version", false);     Set(HEADER_CG_CLIENT_VERSION2, sizeof(TPacketCGClientVersion2), "Version", false);     Set(HEADER_CG_PONG, sizeof(BYTE), "Pong", false);     Set(HEADER_CG_MALL_CHECKOUT, sizeof(TPacketCGSafeboxCheckout), "MallCheckout", false);     Set(HEADER_CG_SCRIPT_SELECT_ITEM, sizeof(TPacketCGScriptSelectItem), "ScriptSelectItem", false);     Set(HEADER_CG_PASSPOD_ANSWER, sizeof(TPacketCGPasspod), "PasspodAnswer", false);     Set(HEADER_CG_HS_ACK, sizeof(TPacketGCHSCheck), "HackShieldResponse", false);     Set(HEADER_CG_XTRAP_ACK, sizeof(TPacketXTrapCSVerify), "XTrapResponse", false);     Set(HEADER_CG_DRAGON_SOUL_REFINE, sizeof(TPacketCGDragonSoulRefine), "DragonSoulRefine", false);     Set(HEADER_CG_STATE_CHECKER, sizeof(BYTE), "ServerStateCheck", false); }
*root/intrologin.py

Arat:

Kod:
if constInfo.SEQUENCE_PACKET_ENABLE:             net.SetPacketSequenceMode()
Değiştir:
Kod:
#if constInfo.SEQUENCE_PACKET_ENABLE:         #    net.SetPacketSequenceMode()

Sequence'i Devre Dışı Bırakma

Metin2 özel sunucularında Sequence sistemini devre dışı bırakmak, genellikle performans iyileştirmeleri veya belirli sistemsel değişiklikler amacıyla tercih edilen bir yöntemdir. Sequence, oyuncuların belirli eylemleri daha hızlı gerçekleştirmesini sağlayan bir önbellekleme mekanizmasıdır. Ancak bazı durumlarda bu sistem istenmeyen davranışlara veya hatalara neden olabilir. Bu yazıda, Sequence özelliğini nasıl devre dışı bırakacağınızı ve bu işlemin faydalarını detaylı olarak ele alacağız.

Sequence Nedir?
Sequence, Metin2'nin sunucu tarafında çalışan bir önbellek sistemidir. Özellikle PvP sistemlerinde, oyuncuların hızlı hareketler yapabilmesi ve beklemeden komutlarını uygulayabilmesi için kullanılır. Ancak bu sistem, bazı özel sunucu yapılandırmalarında çakışmalara yol açabilir. Özellikle kendi kaynak kodunuzu düzenlediğiniz durumlarda, Sequence sistemi ile uyumsuzluklar yaşanabilir.

Neden Sequence Kapatılır?
Metin2 özel sunucu geliştirme sürecinde, geliştiriciler genellikle Sequence sistemini devre dışı bırakmayı düşünür. Bunun birkaç önemli sebebi vardır:
- Hata ayıklama kolaylığı
- Daha fazla kontrol imkanı
- Sistemsel çakışmaların önlenmesi
- Oyun dengesi üzerinde daha net etki sağlanması

Sequence Nasıl Devre Dışı Bırakılır?
Sequence özelliğini devre dışı bırakmak için genellikle oyun sunucusunun kaynak kodunda bazı değişiklikler yapılması gerekir. Özellikle Game Server tarafında bulunan Sequence ile ilgili ayarlar elle kapatılmalıdır.

Adım Adım Devre Dışı Bırakma İşlemi:
1. Sunucu kaynak kodunuzda ClientManager.cpp dosyasını bulun.
2. Bu dosya içinde Sequence ile ilgili olan fonksiyonları arayın. Genellikle ProcessInput veya benzeri isimlerde olabilir.
3. Sequence kontrolünü sağlayan satırları yorum satırı haline getirin ya da devre dışı bırakın.

Python Tarafında Sequence Kontrolü
Eğer özel sunucunuzda Python tabanlı sistemler varsa, py root içindeki Sequence ile ilgili kontrolleri de gözden geçirmek önemlidir. Özellikle pack ve root dizinlerinde yer alan yapılar üzerinden Sequence kontrolü yapılabilir.

Faydaları Nelerdir?
Sequence'in kapatılması:
- Oyun akışını daha doğrudan kontrol etmenizi sağlar.
- Hatalı eylemlerin takibini kolaylaştırır.
- Performans testleri sırasında daha tutarlı sonuçlar alınmasına yardımcı olur.

Sonuç
Metin2 özel sunucularında Sequence özelliğini devre dışı bırakmak, özellikle gelişmiş sistemler üzerinde çalışırken oldukça faydalıdır. Bu işlem, hem sistemsel hataların önüne geçer hem de geliştiriciye daha fazla esneklik sunar. Ancak bu işlemi yaparken dikkatli olunmalı ve yapılan değişiklikler iyi test edilmelidir.


Disabling Sequence

Disabling the Sequence system in Metin2 private servers is often preferred for performance improvements or specific system changes. Sequence is a caching mechanism that allows players to execute certain actions faster. However, in some cases, this system may cause unwanted behaviors or errors. In this article, we will detail how to disable the Sequence feature and its benefits.

What is Sequence?
Sequence is a cache system operating on the server-side of Metin2. It is used especially in PvP systems to allow players to make quick movements and execute commands without delay. However, this system can cause conflicts in certain private server configurations. Particularly when editing your own source code, compatibility issues with the Sequence system may arise.

Why Disable Sequence?
In the process of developing a Metin2 private server, developers often consider disabling the Sequence system. There are several important reasons for this:
- Easier debugging
- More control options
- Prevention of system conflicts
- Clearer impact on game balance

How to Disable Sequence?
To disable the Sequence feature, certain changes usually need to be made in the source code of the game server. Especially in the Game Server side, settings related to Sequence must be manually turned off.

Step-by-Step Disabling Process:
1. Locate the ClientManager.cpp file in your server source code.
2. Find functions related to Sequence. These are typically named ProcessInput or similar.
3. Comment out or disable the lines responsible for Sequence control.

Sequence Control in Python
If your private server includes Python-based systems, reviewing Sequence-related controls within py root is also important. Sequence checks can be performed through structures located in the pack and root directories.

Benefits
Disabling Sequence:
- Allows you to control the game flow more directly.
- Facilitates tracking of incorrect actions.
- Helps achieve more consistent results during performance tests.

Conclusion
Disabling the Sequence feature in Metin2 private servers is highly beneficial, especially when working on advanced systems. This action prevents system errors and provides more flexibility to the developer. However, caution should be exercised when performing this action, and changes should be thoroughly tested.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt