Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
xranzei 1
xranzei
mavzermete 1
mavzermete
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

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. 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.
 
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.
Uitooltip bırakırsan buraya düzeltebilirim.
 
İş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.
 

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

Geri
Üst