[C++] Gossip Item
Citation :Pour une fois qu'on peut dire que Ascent/Arcemu fait quelque chose que Mangois ne fait pas ça se fête.
C'est pas faux Xd

C'est ce que je vais essayer de refaire, en espérant que cette fois ci ça fonctionne.
Édition :
Bon toujours pas, j'ai essayé de lier le clic droit sur l'item avec l'ouverture d'un gossip menu, mais .... toujours pas ! ...
Personne ?
Humm : Onuse -> summon d'une créature , passage du displayid invisible, reaction passive , flag non attaque , ajout du flag SUMMON_BY et on finit par TACREATURE->AI()->DoAction(pPlayer->GetGUIDLow());

et hop ta donc une créature invisible summon par un objets qui permet de lancer un gossip menu , aprés avoir cliquer sur une option tu fait un DispearAndDie()
et t'oublie pas un timer pour qu'il disparaisse automatiquement si le joueur ne fait rien.
Merci de ta réponse.
Mais j'ai quelques questions, pour summon, la créature, je l'ajoute en m'inspirant de NPC add ? pour le reste c'est bon, si ce n'est, pourquoi doit on mettre le flag SUMMON_BY ?

DoAction() va forcer la créature à parler avec le joueur c'est cela ?


Et pour le timer, pourrait tu donner quelques précisions ou quelques lignes de code pour sa mise en place, car je ne comprend pas exactement son fonctionnement.

Encore un grand merci à toi.
Cordialement, Arcanios.
Ya pas un temporary spawn ? Genre tu le fait despawn au bout de deux minutes ?
Si Asedic ça doit être plus pratique.

Dans visual c++ :
Pour le summon tu a la fonction : SummonCreature un pPlayer->(ctrl+espace) te fourniras la liste de toute les fonctions,
Pour les types de summon TEMPSUMMON_(ctrl+espace) devrait te donner le define pour le temporaire.

Le DoAction va permettre d’appeler la void DoAction(uint32 guid) que tu auras coder dans le npc Smile
un Player *pPlayer = sObjectMgr->GetPlayerByLowGUID(guid); te permettra de récupérer le joueur qui là invoquer

tu n'auras plus qu'a

Code :
pPlayer->PlayerTalkClass->ClearMenus();
pPlayer->SEND_GOSSIP_MENU(HELLO_GOSSIP_MESSAGE, me->GetGUID());

Pour le timer:

Code :
npc_teleporterAI(Creature *c) : ScriptedAI(c) {Reset();}
        uint32 timer;

void Reset()
        {
            timer = 5*MINUTE*IN_MILLISECONDS;
}

void UpdateAI(const uint32 diff)
        {
            if(timer <= diff)
                me->DisappearAndDie();
            else
                timer -= diff;
}
Merci ! je teste tout sa et je vous tient au courant !

Édition :
Ok ça fonctionne merci, juste, je ne trouve pas un display ID invisible ?

Retourner en haut Accueil