Client Locale String Minimap NPC Ad Düzeltmesi

  • Konuyu açan Konuyu açan zodiac160
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 1
  • Gösterim Gösterim 442

zodiac160

MT Üye
MT Üye
Mesaj
191
Çözümler
10
Beğeni
83
Puan
479
Ticaret Puanı
0
Merhaba arkadaşlar Client Locale String sistemini eklediğimizde minimap üzerinde npc isimlendirmeleri server tarafından gönderilmekteydi. Bunun çözümünü sizlerle paylaşacağım.

Sorun:

0530_152358.webp


C++:
Genişlet Daralt Kopyala
#Client

## UserInterface

Packet.h

struct TNPCPosition
{
    BYTE bType;

altına ekle

#if defined(BL_CLIENT_LOCALE_STRING_)
    DWORD dwVnum;
#endif

/* ********************************************************************************* */

PythonNetworkPhaseGame.cpp

bool CPythonNetworkStream::RecvNPCList() içinde bul

CPythonMiniMap::Instance().RegisterAtlasMark(NPCPosition.bType, NPCPosition.name, NPCPosition.x, NPCPosition.y);

değiştir

#if defined(BL_CLIENT_LOCALE_STRING_)
        const char* c_szName = nullptr;
        if (CPythonNonPlayer::Instance().GetName(NPCPosition.dwVnum, &c_szName)) {
            CPythonMiniMap::Instance().RegisterAtlasMark(NPCPosition.bType, c_szName, NPCPosition.x, NPCPosition.y);
        }
        else {
            CPythonMiniMap::Instance().RegisterAtlasMark(NPCPosition.bType, NPCPosition.name, NPCPosition.x, NPCPosition.y);
        }
#else
        CPythonMiniMap::Instance().RegisterAtlasMark(NPCPosition.bType, NPCPosition.name, NPCPosition.x, NPCPosition.y);
#endif

/* ********************************************************************************* */

#Server

packet.h

struct TNPCPosition
{
    BYTE bType;

altına ekle

#if defined(BL_CLIENT_LOCALE_STRING_)
    DWORD dwVnum;
#endif

/* ********************************************************************************* */

sectree_manager.h

struct npc_info
{
    BYTE bType;

altına ekle

#if defined(BL_CLIENT_LOCALE_STRING_)
    DWORD dwVnum;
#endif


arat

InsertNPCPosition(long lMapIndex, BYTE bType, const char* szName, long x, long y);

değiştir

#if defined(BL_CLIENT_LOCALE_STRING_)
    void        InsertNPCPosition(long lMapIndex, BYTE bType, DWORD dwVnum, const char* szName, long x, long y);
#else
    void        InsertNPCPosition(long lMapIndex, BYTE bType, const char* szName, long x, long y);
#endif

/* ********************************************************************************* */

sectree_manager.cpp

arat

SECTREE_MANAGER::SendNPCPosition(LPCHARACTER ch)

bul

    for (it = m_mapNPCPosition[lMapIndex].begin(); it != m_mapNPCPosition[lMapIndex].end(); ++it)
    {
        np.bType = it->bType;

altına ekle

#if defined(BL_CLIENT_LOCALE_STRING_)
        np.dwVnum = it->dwVnum;
#endif


arat

void SECTREE_MANAGER::InsertNPCPosition(long lMapIndex, BYTE bType, const char* szName, long x, long y)

fonksiyonu komple değiştir

#if defined(BL_CLIENT_LOCALE_STRING_)
void SECTREE_MANAGER::InsertNPCPosition(long lMapIndex, BYTE bType, DWORD dwVnum, const char* szName, long x, long y)
{
    m_mapNPCPosition[lMapIndex].emplace_back(npc_info(bType, dwVnum, szName, x, y));
}
#else
void SECTREE_MANAGER::InsertNPCPosition(long lMapIndex, BYTE bType, const char* szName, long x, long y)
{
    m_mapNPCPosition[lMapIndex].emplace_back(npc_info(bType, szName, x, y));
}
#endif



/* ********************************************************************************* */

regen.cpp

                    SECTREE_MANAGER::instance().InsertNPCPosition(lMapIndex,
                            p->m_table.bType,

altına ekle

#if defined(BL_CLIENT_LOCALE_STRING_)
                            p->m_table.dwVnum,
#endif

Kanıt:

0531_121607.webp
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst