farkmt2official 1
farkmt2official
mannaxxx 1
mannaxxx
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
Hikaye Ekle

Altın Konu Extended Affect Flags

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

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.h
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
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
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst