Yardım Core

  • Konuyu açan Konuyu açan SaaVaaa
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 788
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

SaaVaaa

MT Üye
MT Üye
Mesaj
158
Çözümler
5
Beğeni
101
Puan
759
Ticaret Puanı
0
game core gdb.webp

şöyle bir problemim var daha önce karşılaşan ya da sorunun kaynağını bilen var mı ?
 
En son bir moderatör tarafından düzenlenmiş:
Sealbind kısmından ayıktım mevzuyu offical item kilitleme parşömeninde mi bu core atıyor bi bakar mısın?
 
item.cpp 3188. satırda GetName çalışırken hafızadaki adrese ulaşamadığı için çökmüş. Eklediğiniz herhangi bir sistemden kaynaklı olabilir. İsterseniz kodları da ekleyiniz
 
Sealbind kısmından ayıktım mevzuyu offical item kilitleme parşömeninde mi bu core atıyor bi bakar mısın?
ben o mevzuyu kaldırdım ya :D offical itemleri ekledim k envantere uyarla cart curt derken baktım zaten pek kullanan yok farm server açıyorum gerek yok diyip definesini pasif ettim :D


item.cpp 3188. satırda GetName çalışırken hafızadaki adrese ulaşamadığı için çökmüş. Eklediğiniz herhangi bir sistemden kaynaklı olabilir. İsterseniz kodları da ekleyiniz

C++:
Genişlet Daralt Kopyala
const char* CItem::GetName()
{
    static char szItemName[128];
    memset(szItemName, 0, sizeof(szItemName));
    if (GetProto())
    {
        int len = 0;
        switch (GetType())
        {
        case ITEM_POLYMORPH:
        {
            const DWORD dwMobVnum = GetSocket(0);
            const CMob* pMob = CMobManager::instance().Get(dwMobVnum);
            if (pMob)
                len = snprintf(szItemName, sizeof(szItemName), "%s", pMob->m_table.szLocaleName);

            break;
        }
        case ITEM_SKILLBOOK:
        case ITEM_SKILLFORGET:
        {
            const DWORD dwSkillVnum = (GetVnum() == ITEM_SKILLBOOK_VNUM || GetVnum() == ITEM_SKILLFORGET_VNUM) ? GetSocket(0) : 0;
            const CSkillProto * pSkill = (dwSkillVnum != 0) ? CSkillManager::instance().Get(dwSkillVnum) : nullptr;
            if (pSkill)
                len = snprintf(szItemName, sizeof(szItemName), "%s", pSkill->szName);

            break;
        }
        }
        len += snprintf(szItemName + len, sizeof(szItemName) - len, (len > 0) ? " %s" : "%s", GetProto()->szLocaleName);
    }

    return szItemName;
}
 
Normalde aşağıdaki kodlar yoktu.
C++:
Genişlet Daralt Kopyala
const char* CItem::GetName()
{
    static char szItemName[128];
    memset(szItemName, 0, sizeof(szItemName));
    if (GetProto())
    {
        int len = 0;
        switch (GetType())
        {
        case ITEM_POLYMORPH:
        {
            const DWORD dwMobVnum = GetSocket(0);
            const CMob* pMob = CMobManager::instance().Get(dwMobVnum);
            if (pMob)
                len = snprintf(szItemName, sizeof(szItemName), "%s", pMob->m_table.szLocaleName);

            break;
        }
        case ITEM_SKILLBOOK:
        case ITEM_SKILLFORGET:
        {
            const DWORD dwSkillVnum = (GetVnum() == ITEM_SKILLBOOK_VNUM || GetVnum() == ITEM_SKILLFORGET_VNUM) ? GetSocket(0) : 0;
            const CSkillProto * pSkill = (dwSkillVnum != 0) ? CSkillManager::instance().Get(dwSkillVnum) : nullptr;
            if (pSkill)
                len = snprintf(szItemName, sizeof(szItemName), "%s", pSkill->szName);

            break;
        }
        }
        len += snprintf(szItemName + len, sizeof(szItemName) - len, (len > 0) ? " %s" : "%s", GetProto()->szLocaleName);
    }

    return szItemName;
}

Bu kodları hangi sistem kullanıyorsa ondan kaynaklı bir sorun.
 
Normalde aşağıdaki kodlar yoktu.
C++:
Genişlet Daralt Kopyala
const char* CItem::GetName()
{
    static char szItemName[128];
    memset(szItemName, 0, sizeof(szItemName));
    if (GetProto())
    {
        int len = 0;
        switch (GetType())
        {
        case ITEM_POLYMORPH:
        {
            const DWORD dwMobVnum = GetSocket(0);
            const CMob* pMob = CMobManager::instance().Get(dwMobVnum);
            if (pMob)
                len = snprintf(szItemName, sizeof(szItemName), "%s", pMob->m_table.szLocaleName);

            break;
        }
        case ITEM_SKILLBOOK:
        case ITEM_SKILLFORGET:
        {
            const DWORD dwSkillVnum = (GetVnum() == ITEM_SKILLBOOK_VNUM || GetVnum() == ITEM_SKILLFORGET_VNUM) ? GetSocket(0) : 0;
            const CSkillProto * pSkill = (dwSkillVnum != 0) ? CSkillManager::instance().Get(dwSkillVnum) : nullptr;
            if (pSkill)
                len = snprintf(szItemName, sizeof(szItemName), "%s", pSkill->szName);

            break;
        }
        }
        len += snprintf(szItemName + len, sizeof(szItemName) - len, (len > 0) ? " %s" : "%s", GetProto()->szLocaleName);
    }

    return szItemName;
}

Bu kodları hangi sistem kullanıyorsa ondan kaynaklı bir sorun.
yazılanı komple kaldırdım bk beceri isim sistemiydi şimdi test serverde aktif edip deneyeceğim olumlu olursa dönüş yapacağım :)
 
header dosyasını düzenlemeyi unutmayın.
C++:
Genişlet Daralt Kopyala
        const char *    GetName()        { return m_pProto ? m_pProto->szLocaleName : NULL; }
 
Geri
Üst