Voila cette commande permet de récupérer ses achats sur une boutique en ligne en lançant la commande .boutique
[code=cpp]
bool HandleBoutiqueCommand(const char* args)
{
Player *pPlayer = m_session->GetPlayer();
QueryResult result = CharacterDatabase.PQuery("SELECT type, value, count FROM boutique_commande WHERE acc_id = %u AND sended = 0",pPlayer->GetSession()->GetAccountId());
if (!result)
{
SendSysMessage("Aucune commande en attente !");
return false;
}
Field *fields = result->Fetch();
SendSysMessage("Livraison en cours ...");
SendSysMessage("-------------------");
do
{
switch(fields[0]->GetUint32())
{
case 0: // PO
{
pPlayer->SetMoney(pPlayer->GetMoney() + (fields[1]->GetUInt32()*100*100);
PSendSysMessage("-> %s Pièces d'Or", fields[1]->GetUInt32());
break;
}
case 1: // PH
{
pPlayer->SetHonorPoints(pPlayer->GetHonorPoints() + (fields[1]->GetUInt32());
PSendSysMessage("-> %s Points d'Honneur", fields[1]->GetUInt32());
break;
}
case 2: // PA
{
pPlayer->SetArenaPoints(pPlayer->GetArenePoints() + (fields[1]->GetUInt32());
PSendSysMessage("-> %s Points d'Arene", fields[1]->GetUInt32());
break;
}
case 3: // ITEM
{
pPlayer->AddItem(fields[1]->GetUInt32(), fields[2]->GetUInt32());
break;
}
}
}while(result->NextRow());
CharacterDatabase.PExecute("UPDATE boutique_commande SET sended = 1 WHERE acc_id = %u", pPlayer->GetSession()->GetAccountId());
SendSysMessage("-------------------");
SendSysMessage("Commande livrée !");
return true;
}
[/code]
Pour un bon fonctionnement ce patch est a couplé a celui ci : http://www.zone-emu.fr/thread-12079.html
Voici la structure SQL
[code=sql]
DB NAME:
world
DB TABLE:
boutique_commande
DB FIELD:
type int(11) unsigned (0 = po, 1 = point d'honneur, 2 = point d'arene, 3 = item)
value int(11) unsigned ( qté de po, ph, pa, si type = item correspond a l'id de l'item)
count int (11) unsigned (qté de lots)
acc_id int(11) unsigned (id du compte receveur)
sended bool (indique si envoyé ou non)
[/code]