Jump to content

Recommended Posts

In PythonTextTail.h search: 

 
            CGraphicObjectInstance *        pOwner{};
            DWORD                           dwVirtualID{}; 
 

add below

            DWORD                            dwGuildID{};

search

		void SetCharacterTextTailGuildText(DWORD dwVID, const char* c_szText);

add below

		void UpdateGuildNameByID(DWORD dwGuildID, const char* c_szName);

In PythonTextTail.cpp inside RegisterCharacterTextTail search: 

    if (0 != dwGuildID)
    {
        pTextTail->pMarkInstance = CGraphicMarkInstance::New();

        DWORD dwMarkID = CGuildMarkManager::Instance().GetMarkID(dwGuildID);

        if (dwMarkID != CGuildMarkManager::INVALID_MARK_ID)
        {
            std::string markImagePath;

            if (CGuildMarkManager::Instance().GetMarkImageFilename(dwMarkID / CGuildMarkImage::MARK_TOTAL_COUNT, markImagePath))
            {
                pTextTail->pMarkInstance->SetImageFileName(markImagePath.c_str());
                pTextTail->pMarkInstance->Load();
                pTextTail->pMarkInstance->SetIndex(dwMarkID % CGuildMarkImage::MARK_TOTAL_COUNT);
            }
        }

        std::string strGuildName;
        if (!CPythonGuild::Instance().GetGuildName(dwGuildID, &strGuildName))
            strGuildName = "Noname";

        CGraphicTextInstance *& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
        prGuildNameInstance = CGraphicTextInstance::New();
        prGuildNameInstance->SetTextPointer(ms_pFont);
        prGuildNameInstance->SetOutline(true);
        prGuildNameInstance->SetHorizonalAlign(CGraphicTextInstance::HORIZONTAL_ALIGN_CENTER);
        prGuildNameInstance->SetVerticalAlign(CGraphicTextInstance::VERTICAL_ALIGN_BOTTOM);
        prGuildNameInstance->SetValue(strGuildName.c_str());
        prGuildNameInstance->SetColor(c_TextTail_Guild_Name_Color.r, c_TextTail_Guild_Name_Color.g, c_TextTail_Guild_Name_Color.b);
        prGuildNameInstance->Update();
    }

    m_CharacterTextTailMap.insert(TTextTailMap::value_type(dwVirtualID, pTextTail));

replace with:

    pTextTail->dwGuildID = dwGuildID;

    if (0 != dwGuildID)
    {
        pTextTail->pMarkInstance = CGraphicMarkInstance::New();

        DWORD dwMarkID = CGuildMarkManager::Instance().GetMarkID(dwGuildID);

        if (dwMarkID != CGuildMarkManager::INVALID_MARK_ID)
        {
            std::string markImagePath;

            if (CGuildMarkManager::Instance().GetMarkImageFilename(dwMarkID / CGuildMarkImage::MARK_TOTAL_COUNT, markImagePath))
            {
                pTextTail->pMarkInstance->SetImageFileName(markImagePath.c_str());
                pTextTail->pMarkInstance->Load();
                pTextTail->pMarkInstance->SetIndex(dwMarkID % CGuildMarkImage::MARK_TOTAL_COUNT);
            }
        }

        std::string strGuildName;
        if (!CPythonGuild::Instance().GetGuildName(dwGuildID, &strGuildName))
        {
            prGuildNameInstance->SetValue(strGuildName.c_str());
            prGuildNameInstance->Update();
        }
    }

    m_CharacterTextTailMap.insert(TTextTailMap::value_type(dwVirtualID, pTextTail));

In PythonGuild.cpp add:

#include "PythonTextTail.h"

In RegisterGuildName function:

void CPythonGuild::RegisterGuildName(DWORD dwID, const char * c_szName)
{
    m_GuildNameMap.insert(make_pair(dwID, std::string(c_szName)));
}

replace with:

void CPythonGuild::RegisterGuildName(DWORD dwID, const char * c_szName)
{
    m_GuildNameMap[dwID] = std::string(c_szName);
    CPythonTextTail::Instance().UpdateGuildNameByID(dwID, c_szName);
}

add under RegisterGuildName function:

void CPythonTextTail::UpdateGuildNameByID(DWORD dwGuildID, const char* c_szName)
{
    for (TTextTailMap::iterator it = m_CharacterTextTailMap.begin(); it != m_CharacterTextTailMap.end(); ++it)
    {
        TTextTail* pTextTail = it->second;
        if (!pTextTail)
            continue;
        if (pTextTail->dwGuildID != dwGuildID)
            continue;
        if (!pTextTail->pGuildNameTextInstance)
            continue;

        pTextTail->pGuildNameTextInstance->SetValue(c_szName);
        pTextTail->pGuildNameTextInstance->Update();
    }
}

In GetGuildName function:

bool CPythonGuild::GetGuildName(DWORD dwID, std::string * pstrGuildName)
{
    if (m_GuildNameMap.end() == m_GuildNameMap.find(dwID))
        return false;

    *pstrGuildName = m_GuildNameMap[dwID];

    return true;
}

replace with:

bool CPythonGuild::GetGuildName(DWORD dwID, std::string * pstrGuildName)
{
    if (dwID == m_GuildInfo.dwGuildID && m_GuildInfo.szGuildName[0] != '\0')
    {
        *pstrGuildName = m_GuildInfo.szGuildName;
        return true;
    }

    if (m_GuildNameMap.end() == m_GuildNameMap.find(dwID))
        return false;

    *pstrGuildName = m_GuildNameMap[dwID];

    return true;
}

 

Edited by Caos
  • Love 1
Link to comment
https://metin2.dev/topic/34553-c-bug-fix-guild-noname/
Share on other sites

Don't use any images from : imgur, turkmmop, freakgamers, inforge, hizliresim... Or your content will be deleted without notice...
Use : https://metin2.download/media/add/

Please use https://metin2.download/ when uploading files smaller than 100MB, otherwise the approval will take longer due to manual upload.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.