farkmt2official 2
farkmt2official
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Bvural41 1
Bvural41
emirhanHCL 1
emirhanHCL
Hikaye Ekle

Cevaplanmadı Target İnfo Taş Gözükmeme Sorunu

  • Konuyu başlatan Konuyu başlatan *Alperen Sönmez*
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 30
  • Görüntüleme Görüntüleme 2K

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!

Selam arkadaşlar başlıktaki gibi bir sorunum var
Oyundaki default taşları mob içine eklediğimde mouse ile üstüne geldiğimde birşey çıkmıyor syserr düşmüyor
yeni eklediğim bir taşı mob içine eklediğimdede taşın iconu vs. var fakat ismi safra olarak geliyor 3 4 files indirip baktım karşılaştırma yaptım fakat hatanın sebebini bulamadım bulan varmı yardımcı olursa memnun olurum keyifli forumlar.
 
İşte Benim Target Info Sistemim:

İnput_Main.cpp


Kod:
void CInputMain::TargetInfoLoad(LPCHARACTER ch, const char* c_pData)
{
    TPacketCGTargetInfoLoad* p = (TPacketCGTargetInfoLoad*)c_pData;
    TPacketGCTargetInfo pInfo;
    pInfo.header = HEADER_GC_TARGET_INFO;
    static std::vector<std::pair<int,int> > s_vec_item;
    s_vec_item.clear();
    LPCHARACTER m_pkChrTarget = CHARACTER_MANAGER::instance().Find(p->dwVID);

    if (!ch || !m_pkChrTarget)
        return;

    if (!ch->GetDesc())
        return;

    if ((m_pkChrTarget->IsMonster() || m_pkChrTarget->IsStone()) && ITEM_MANAGER::instance().CreateDropItemVector(m_pkChrTarget, ch, s_vec_item))
    {
        for(std::vector<std::pair<int,int> >::const_iterator iter = s_vec_item.begin(); iter != s_vec_item.end();++iter)
        {
            pInfo.dwVID    = m_pkChrTarget->GetVID();
            pInfo.race = m_pkChrTarget->GetRaceNum();
            pInfo.dwVnum = iter->first;
            pInfo.count = iter->second;
            ch->GetDesc()->Packet(&pInfo, sizeof(TPacketGCTargetInfo));
        }
    }
}

İtem_Manager.cpp


Kod:
bool ITEM_MANAGER::CreateDropItemVector(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::vector<std::pair<int,int> > & vec_item)
{
    if (pkChr->IsPolymorphed() || pkChr->IsPC())
        return false;

    int iLevel = pkKiller->GetLevel();
    BYTE bRank = pkChr->GetMobRank();

    std::vector<CItemDropInfo>::iterator it = g_vec_pkCommonDropItem[bRank].begin();

    while (it != g_vec_pkCommonDropItem[bRank].end())
    {
        const CItemDropInfo & c_rInfo = *(it++);

        if (iLevel < c_rInfo.m_iLevelStart || iLevel > c_rInfo.m_iLevelEnd)
            continue;

        TItemTable * table = GetTable(c_rInfo.m_dwVnum);

        if (!table)
            continue;

        if(c_rInfo.m_dwVnum > 70103 && c_rInfo.m_dwVnum < 70108)
        {  
           
            if (c_rInfo.m_dwVnum != pkChr->GetPolymorphItemVnum())
            {
                continue;
            }
        }

        vec_item.emplace_back(std::make_pair(c_rInfo.m_dwVnum, 1));
    }

    // Drop Item Group
    {
        itertype(m_map_pkDropItemGroup) it;
        it = m_map_pkDropItemGroup.find(pkChr->GetRaceNum());

        if (it != m_map_pkDropItemGroup.end())
        {
            __typeof(it->second->GetVector()) v = it->second->GetVector();

            for (DWORD i = 0; i < v.size(); ++i)
            {
                vec_item.emplace_back(std::make_pair(v[i].dwVnum, v[i].iCount));
            }
        }
    }

    // MobDropItem Group
    {
        itertype(m_map_pkMobItemGroup) it;
        it = m_map_pkMobItemGroup.find(pkChr->GetRaceNum());

        if ( it != m_map_pkMobItemGroup.end() )
        {
            CMobItemGroup* pGroup = it->second;

            if (pGroup && !pGroup->IsEmpty())
            {
                const CMobItemGroup::SMobItemGroupInfo& info = pGroup->GetOne();
                vec_item.emplace_back(std::make_pair(info.dwItemVnum, info.iCount));
            }
        }
    }

    // Level Item Group
    {
        itertype(m_map_pkLevelItemGroup) it;
        it = m_map_pkLevelItemGroup.find(pkChr->GetRaceNum());

        if ( it != m_map_pkLevelItemGroup.end() )
        {
            if ( it->second->GetLevelLimit() <= (DWORD)iLevel )
            {
                __typeof(it->second->GetVector()) v = it->second->GetVector();

                for ( DWORD i=0; i < v.size(); i++ )
                {
                    DWORD dwVnum = v[i].dwVNum;
                    vec_item.emplace_back(std::make_pair(dwVnum, v[i].iCount));
                }
            }
        }
    }

    // ETC DropItem
    if (pkChr->GetMobDropItemVnum())
    {
        itertype(m_map_dwEtcItemDropProb) it = m_map_dwEtcItemDropProb.find(pkChr->GetMobDropItemVnum());

        if (it != m_map_dwEtcItemDropProb.end())
        {      
            vec_item.emplace_back(std::make_pair(pkChr->GetMobDropItemVnum(), 1));
        }
    }

    //Metin
    if (pkChr->IsStone())
    {
        if (pkChr->GetDropMetinStoneVnum())
        {
            vec_item.emplace_back(std::make_pair(pkChr->GetDropMetinStoneVnum(), 1));
        }
    }

    // BuyerTheitGloves Item Group
    {
        itertype(m_map_pkGloveItemGroup) it;
        it = m_map_pkGloveItemGroup.find(pkChr->GetRaceNum());

        if (it != m_map_pkGloveItemGroup.end())
        {
            __typeof(it->second->GetVector()) v = it->second->GetVector();

            for (DWORD i = 0; i < v.size(); ++i)
            {
            vec_item.emplace_back(std::make_pair(v[i].dwVnum, v[i].iCount));
            }
        }
    }

    return vec_item.size();
}

Bunu dener misin. Olmazsa Root tarafına da bakarız.
Tamamdır deneyim donücem
 
1669245837449.png

malesef durum aynı mouse üstüne geldiğinde isim vs gözükmüyor oyunda varolan taşıda sonradan eklediğim taşıda göremiyorum
client syserr yok game syserr yok

olkan41

 
Son düzenleme:
Sadece taşlarda bu sıkıntı ile karşılaşıyorsan Taşlar için özel bir Taş Sandığı yapıp taşları onun içinden çıkmasını sağlayabilirsin. En azından eklemelerin tek kod üzerinden olur
 
uiTarget.py içinde sanırım STONE_LAST_VNUM = taş kodu olması lazım altında da taş kodlarının en sondaki bitiş kodu olması lazım orayı bi kontrol etme şansın var mı.
 

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

Geri
Üst