Bonjour a tous , ayant fait une commande de récupération , celle ci doit donner des objets en fonction de ce qui est dans ma DB . Or elle donne bien ces objets mais j'obtiens des trucs du genre
Comme vous l'aurez remarqué c'est embettant alors que mon code est comme ceci : pPlayer->SendNewItem(item,1,true,false);
le 1 correspondant au count , il n'est pas possible qu'il soit donné plusieurs fois le même item au joueur
ensuite quand je me déco j'ai beau regarder dans la table item_instance où a ce que j'ai compris c'est ici qu'il y a les différents objets et leur "count" vu qu'une colonne porte ce nom . Eh bien même pas ! (le guid de mon perso est bien 13 et tout les objets que vous voyez là sont bien ceux que ma commande a ajouté plusieurs fois)
Donc là un petit peu énervé je me déco reco , dans ma console j'ai un beau
ce qui veut dire qu'il y a un soucis avec mes items a charger
Et IG ça donne ça
Le code : [code=cpp]
QueryResult_AutoPtr results2 = CharacterDatabase.PQuery("SELECT id_objet FROM recup_datas WHERE id_set = %u" , tmp);
uint32 noSpaceForCount = 0;
uint32 count = 1;
ItemPosCountVec dest;
uint32 id;
uint64 rowcount = results2->GetRowCount();
uint32 a = 1;
while(a < rowcount + 1)
{
// check space and find places
QueryResult_AutoPtr results3 = CharacterDatabase.PQuery("SELECT id_objet FROM recup_datas WHERE id_set = %u AND subid = %u" , tmp , a);
if(results3->Fetch()->GetUInt32())
{
id = results3->Fetch()->GetUInt32();
}
ItemPrototype const *pProto = objmgr.GetItemPrototype(id);
if (!pProto)
{
PSendSysMessage(LANG_COMMAND_ITEMIDINVALID, id);
SetSentErrorMessage(true);
return false;
}
uint8 msg = pPlayer->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, id, 1, &noSpaceForCount);
if (msg != EQUIP_ERR_OK) // convert to possible store amount
count -= noSpaceForCount;
for (ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
if (Item* item1 = pPlayer->GetItemByPos(itr->pos))
item1->SetBinding(false);
if (dest.empty()) // can't add any
{
PSendSysMessage(LANG_ITEM_CANNOT_CREATE, id, noSpaceForCount);
SetSentErrorMessage(true);
return false;
}
Item* item = pPlayer->StoreNewItem(dest, id , true, Item::GenerateItemRandomPropertyId(id));
if (item)
{
pPlayer->SendNewItem(item,1,true,false);
//Une condition future quant a mon problème d'ajout de plusieurs mêmes items ?
}
if (noSpaceForCount > 0)
{
PSendSysMessage(LANG_ITEM_CANNOT_CREATE, id, noSpaceForCount);
return false;
}
++a;
}[/code]
Autant vous dire que ça bien une semaine que je tourne en rond entre les crash et les galères de ce style là je ne m'en sort plus . Donc si vous aviez une idée ... :/