Problema Mob target eroare game

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
minoiu16
Nivel 2

Nivel 2
Mesaje: 176
Membru din: 14 Noi 2018, 23:31
Server: Olimpus
Regat: Jinno
Aprecieri: 242  
Mulţumiri: 212  
Discord: Copiază ID
Medalii

*Problemă/Întrebare: Problema Sistem Mob Target
Tipologie server(PvM / PvP): PVM
*Resursă folosită: sursa/mob-target-system-t54126.html
*ServerFiles utilizat: Clean 40k
*Syserr: -
Poză:
Aici pun si acele linii :
#ifdef __SEND_TARGET_INFO__
bool ITEM_MANAGER::CreateDropItemVector(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::vector<LPITEM> & vec_item)
{
if (pkChr->IsPolymorphed() || pkChr->IsPC())
{
return false;
}

int iLevel = pkKiller->GetLevel();

BYTE bRank = pkChr->GetMobRank();
LPITEM item = NULL;

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;

item = NULL;

if (table->bType == ITEM_POLYMORPH)
{
if (c_rInfo.m_dwVnum == pkChr->GetPolymorphItemVnum())
{
item = CreateItem(c_rInfo.m_dwVnum, 1, 0, true);

if (item)
item->SetSocket(0, pkChr->GetRaceNum());
}
}
else
item = CreateItem(c_rInfo.m_dwVnum, 1, 0, true);

if (item) vec_item.push_back(item);
}

// 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)
{
item = CreateItem(v.dwVnum, v.iCount, 0, true);

if (item)
{
if (item->GetType() == ITEM_POLYMORPH)
{
if (item->GetVnum() == pkChr->GetPolymorphItemVnum())
{
item->SetSocket(0, pkChr->GetRaceNum());
}
}

vec_item.push_back(item);
}
}
}
}

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

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

// MOB_DROP_ITEM_BUG_FIX
// 20050805.myevan.MobDropItem ? ???? ?? ?? CMobItemGroup::GetOne() ??? ?? ?? ??
if (pGroup && !pGroup->IsEmpty())
{
const CMobItemGroup::SMobItemGroupInfo& info = pGroup->GetOne();
item = CreateItem(info.dwItemVnum, info.iCount, 0, true, info.iRarePct);

if (item) vec_item.push_back(item);
}
// END_OF_MOB_DROP_ITEM_BUG_FIX
}
}

// 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.dwVNum;
item = CreateItem(dwVnum, v.iCount, 0, true);
if ( item ) vec_item.push_back(item);
}
}
}
}

// BuyerTheitGloves Item Group
{
// by mhh ?? ??? ??? ?? drop ? ???? ??
if (pkKiller->GetPremiumRemainSeconds(PREMIUM_ITEM) > 0 ||
pkKiller->IsEquipUniqueGroup(UNIQUE_GROUP_DOUBLE_ITEM))
{
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)
{

DWORD dwVnum = v.dwVnum;
item = CreateItem(dwVnum, v.iCount, 0, true);
if (item) vec_item.push_back(item);
}
}
}
}

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

if (it != m_map_dwEtcItemDropProb.end())
{
item = CreateItem(pkChr->GetMobDropItemVnum(), 1, 0, true);
if (item) vec_item.push_back(item);
}
}

if (pkChr->IsStone())
{
if (pkChr->GetDropMetinStoneVnum())
{
item = CreateItem(pkChr->GetDropMetinStoneVnum(), 1, 0, true);
if (item) vec_item.push_back(item);
}
}

return vec_item.size();
}
#endif

*Detalii suplimentare: Am facut dupa un model din alta sursa tutorialul perfect pentru game dar am o eroare in game..las poza , poate stie cineva de unde e eroarea !
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Lasa aici item_manager.cpp nemodificat.
Avatar utilizator
Vaynz
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 729
Membru din: 07 Iun 2018, 15:16
Server: -
Regat: Chunjo
Aprecieri: 153  
Mulţumiri: 3618  
Medalii

Posteaza te rog pe pastebin item_manager.cpp
Avatar utilizator
Asky
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 1472
Membru din: 08 Oct 2014, 17:32
Regat: Chunjo
Aprecieri: 98  
Mulţumiri: 4811  
Discord: Copiază ID
 Contact:
Medalii

Arhivat! Autorul a fost inactiv mai mult de 5 zile!
Imagine
Afișează semnătura
Închis
Răspunsuri
4
Vizualizări
354
Răspunsuri
6
Vizualizări
633

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Semrush [Bot] și 71 vizitatori