probleme fonction qui envoie un item
Bonjour ami de zone emu

Je me permet de reposter sur ce sujet car apres plusieurs recherche c'est toujours sans espoire j'ai un pnj qui doit envoyer un item juste apres un choix et l'envoie de l'item fait crash le serveur une fois sur deux
voici la fonction:
Code :
int32 item_id = 7;
uint32 quantity = 1;
ItemPosCountVec dest;
uint8 canStoreNewItem = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, item_id, quantity);

if(canStoreNewItem == EQUIP_ERR_OK)
{
       Item *newItem = NULL;
       newItem = player->StoreNewItem(dest,item_id,quantity,true);
       player->SendNewItem(newItem,quantity,true,false);
}

Celle-ci est biensur l'une des plusieurs solutions que j'ai essayer mais une fois sur deux sa crash mon log ne m'affiche rien, ainsi que en mode debug. si quelqu'un serait m'eclairer sur cette fonction je lui en remercie d'avance.

Enjoy Ninja
POurquoi tu n'utilise pas le handler de la commande SendItem ou celle de Additem ?? car les deux font de l'ajout ou de l'envoi d'item.. suffit d'y faire appel dans ta fonction en leur donnant les bons paramètres... je vois pas pourquoi tu te casses la tête avec le canstoreNewitem car cette fonction est utilisée dans additem..
ok je vois a sa merci a toi.juste savoir comment tu appelle cette fonction via sd2 plizz

j'ai cree cette fonction dans mon script :
Code :
bool AddItem(Player *player, uint32 ItemId, uint32 count)
{
ItemPosCountVec dest;
uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ItemId, count, false);
if(msg == EQUIP_ERR_OK)
{
      Item *item = player->StoreNewItem(dest, ItemId, count, true);
      player->SendNewItem(item, count, true, false, false);
      return true;
}
return false;
}

et je l'ai déclarer comme ceci au moment de l'envoie d'item :
Code :
AddItem(player, 7, 1);

toujours pareil sa crash, je peut pas par mail c pas le but du pnj, la je vois pas vraiment desoler.
Mac ta pas une idee ou quelqu'un d'autre merci.

Ninja
Ben je ne sais plsu si la signature de la fonction est celle-ci ... et normalement ac devrait pas compiler si tu n'a pas passé la méthode additem en public (je crois que par defaut elle est en private Clin )

Retourner en haut Accueil