Jump to content

Profils du Quester


bear31

Recommended Posts

Bonjour,

 

Ce message fait office de suite du post sur mmorobot.eu où tu m'as conseillé de poursuivre ici. (http://mmorobot.eu/quester/200-documentation-sur-les-methodes.html)

 

 

 

 
 
Merci pour tes réponses!
Désolé j'ai oublié de le préciser, mais je parlais de développement en C#.
 
C'est vrai que je n'avais pas pensé à la double quête, c'est une bonne idée. Sinon il n'y a pas moyen de faire un flush des Hotspots et ID de mobs ajoutés en objectifs? Comme ça pour faire quelque chose de plus propre, quand la première partie de la quête (récupérer le bon nombre de clés) est OK, on flush les objectifs et on remet de nouveaux hotspots qui correspondent aux cages à ouvrir, avec les ID des cages.
 
Pour ce qui est des ID d'objets, c'est ce que je me suis dis en effet, seulement sur Wowhead j'ai bien récupéré l'ID de la clé, mais absolument rien pour la cage (alors que pour une autre quête où on devait enlever un pieu planté dans un soldat à secourir, j'avais bien le pieu dans les objets de la base de données). J'essayerais ce soir de voir si je trouve avec ta technique.
 
Bien vu pour les quêtes de type "Interact with", je viens d'ailleurs de voir la variable GossipOptionNpcInteractWith qui permet de choisir le numéro du menu. En revanche, quid des menus successifs? Certaines quêtes nécéssitent de cliquer 2 ou 3 fois sur le premier choix (notamment les quêtes où il faut écouter l'histoire d'un pnj). Comment ça se passe dans ce cas? Est-il possible via un tableau par exemple de lister tous les menus à choisir?
 
Merci d'avance pour ta réponse
Link to comment
Share on other sites

C'est vrai que je n'avais pas pensé à la double quête, c'est une bonne idée. Sinon il n'y a pas moyen de faire un flush des Hotspots et ID de mobs ajoutés en objectifs? Comme ça pour faire quelque chose de plus propre, quand la première partie de la quête (récupérer le bon nombre de clés) est OK, on flush les objectifs et on remet de nouveaux hotspots qui correspondent aux cages à ouvrir, avec les ID des cages.

Tu peux ajouter un code dans Pulse qui remet à 0 ObjectiveRequiredCounts.

Par exemple tu commences la quête avec ObjectiveRequiredCounts = {1,1,0,0}

et tu fais dans pulse:

if (itemCléCount >= 1)

ObjectiveRequiredCounts = {0,1,0,0}

Et toujours dans pulse

if (ObjectiveRequiredCounts[0] > 0)

// RAMASSER CLE

else

// ALLER A LA CAGE

Mais je trouve que le plus simple reste de faire 2 quêtes (une par objectif).

 

Pour ce qui est des ID d'objets, c'est ce que je me suis dis en effet, seulement sur Wowhead j'ai bien récupéré l'ID de la clé, mais absolument rien pour la cage (alors que pour une autre quête où on devait enlever un pieu planté dans un soldat à secourir, j'avais bien le pieu dans les objets de la base de données). J'essayerais ce soir de voir si je trouve avec ta technique.

Wowhead est bien fait, mais c'est vrai que l'on ne trouve pas toujours tout les objets, tu peux aussi utilise ce site: http://www.wowdb.com/ avec dev tools tu trouveras les id que tu veux.

 

Bien vu pour les quêtes de type "Interact with", je viens d'ailleurs de voir la variable GossipOptionNpcInteractWith qui permet de choisir le numéro du menu. En revanche, quid des menus successifs? Certaines quêtes nécéssitent de cliquer 2 ou 3 fois sur le premier choix (notamment les quêtes où il faut écouter l'histoire d'un pnj). Comment ça se passe dans ce cas? Est-il possible via un tableau par exemple de lister tous les menus à choisir?

C'est pour cette raison que j'ai rajouté l'option qui permet d'utiliser du code lua (ou tu peux le faire manuellement en modifiant Pulse comme pour cette quête:

public sealed class MurderWasTheCaseThatTheyGaveMe : QuestInteractWithClass
{
    public MurderWasTheCaseThatTheyGaveMe()
    {
        // http://www.wowhead.com/quest=26209
        Name = "Murder Was The Case That They Gave Me";

        QuestId.AddRange(new[] { 26209 });

        Step.AddRange(new[] { 1, 1, 1, 1 });

        GossipOptionNpcInteractWith = 2;

        HotSpots.Add(new Vector3(-9819.229f, 974.2356f, 29.13065f));

        EntryIdTarget.Add(42386);
        EntryIdTarget.Add(42384);
        EntryIdTarget.Add(42391);
        EntryIdTarget.Add(42383);
    }

    public override bool Pulse()
    {
        base.Pulse();
        Thread.Sleep(1000);
        Lua.RunMacroText("/click StaticPopup1Button1");
        Thread.Sleep(1000);
        return true;
    }
} 
(Pour trouver le nom des menus met ta souri au-dessus du bouton/menu et lance cette macro: /run print("/click "..GetMouseFocus():GetName()) )
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...