Hello, quelques news, j'ai essayé de faire un fix (et pour changer cela ne fonctionne pas
)
J'ai fait un script Dummy Aura :
[code=cpp]
bool MarkingThePath(uint32 i, Aura * pAura, bool apply)
{
if(!apply) return true;
Player *pPlayer = pAura->GetPlayerCaster();
if(!pPlayer) return true;
QuestLogEntry *pQuest = pPlayer->GetQuestLogForEntry(9391);
if(!pQuest) return true;
if(pQuest->GetMobCount(0) < pQuest->GetQuest()->required_mobcount[0])
{
GameObject *pBeacon = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(pPlayer->GetPositionX(), pPlayer->GetPositionY(), pPlayer->GetPositionZ());
if(pBeacon)
{
pQuest->SetMobCount(0, pQuest->GetMobCount(0) + 1);
pQuest->SendUpdateAddKill(0);
pQuest->UpdatePlayerFields();
Log.Notice("DUMMY", "Mise a jour des objectifs 0");
return true;
}
}
if(pQuest->GetMobCount(1) < pQuest->GetQuest()->required_mobcount[1])
{
GameObject *pBeacon = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(pPlayer->GetPositionX(), pPlayer->GetPositionY(), pPlayer->GetPositionZ());
if(pBeacon)
{
pQuest->SetMobCount(1, pQuest->GetMobCount(1) + 1);
pQuest->SendUpdateAddKill(1);
pQuest->UpdatePlayerFields();
Log.Notice("DUMMY", "Mise a jour des objectifs 1");
return true;
}
}
if(pQuest->GetMobCount(2) < pQuest->GetQuest()->required_mobcount[2])
{
GameObject *pBeacon = pPlayer->GetMapMgr()->GetInterface()->GetGameObjectNearestCoords(pPlayer->GetPositionX(), pPlayer->GetPositionY(), pPlayer->GetPositionZ());
if(pBeacon)
{
pQuest->SetMobCount(2, pQuest->GetMobCount(2) + 1);
pQuest->SendUpdateAddKill(2);
pQuest->UpdatePlayerFields();
Log.Notice("DUMMY", "Mise a jour des objectifs 2");
return true;
}
}
return true;
}
[/code]
Le script est bien activé lorsque le joueur active le gameobject et que le spell est lancé, mais l'objectif n'est pas validé ! Pourtant la fonction "SendUpdateAddKill" (et les autres) sont bien lancée (test via message de debug) alors est-ce que le problème viendrait du faite que j'ai enlevé justement l'ID des Gobjects dans la base de données et qu'il y aura une erreur lors de l'envoi du paquet de la fonction "SendUpdateAddKill" :
[code=cpp]
WorldPacket data(32);
data.SetOpcode(SMSG_QUESTUPDATE_ADD_KILL);
data << questid << entry << count << tcount << guid;
plr->GetSession()->SendPacket(&data);
[/code]
Car dans mon cas l'entry == 0...
Merci et bonne soirée,
Sgt