Salut à tous,
Je me remet un peu au C++ Trinity et à vrai dire... certaines fonctions sont assez bizarre.
But du script : Récupérer pour CHAQUE creature du jeu (répertoriées par guid), la ZONE et l'AREA dans laquelle elle évolue, chose dont on en dispose pas dans la base de données.
Voici le script script:
[code=cpp]
// On séléctione TOUS les mobs
QueryResult resultset = WorldDatabase.PQuery("SELECT guid, id FROM creature");
// Si table vide (ben... là c'est balot... mais ne devrait jamais arriver.)
if (!resultset)
{
handler->PSendSysMessage("La table aurora_creature_zones est VIDE.");
return true;
}
else
{
//----- on récupère la créature
do
{
Field* RSFIELDS = resultset->Fetch();
uint32 guid = RSFIELDS[0].GetUInt32();
uint32 id = RSFIELDS[1].GetUInt32();
Unit* tmpNpcUnit = sObjectAccessor->FindUnit(MAKE_NEW_GUID(guid, id, HIGHGUID_UNIT));
uint32 zone_id, area_id;
// on récupère la zoen & arez ID
tmpNpcUnit->GetZoneAndAreaId(zone_id, area_id);
WorldDatabase.PQuery("INSERT INTO aurora_creature_zones (guid, zone, area) VALUES(%u,%u,%u)", guid, zone_id, area_id);
count++;
}
while(resultset->NextRow());
}
[/code]
La fonction FinUnit n'est pas super appréciée par le core je pense.. mais cependant, la macro MAKE_NEW_GUID me laisse perplexe...
Quelqu'un a une idée ?