Jump to content

Wrotation qui ne fonctionne pas


Recommended Posts

Bonjour

 

Cela fait longtemps :) Mais du coup j'ai plusieurs points a présenter :

 

Point 1 :

 

J'ai vu de nombreux cas dire que dans Wrotation, aucune action ne se déclenchais (et donc que le bot ne fonctionnais plus) quelquefois en bg, arène et duels

J'ai identifié la cause de ce probleme :

 

Une certaine condition, en l'occurrence fight.InFight, reste sur false alors que le combat est bel et bien engagé. Comme dans la plupart des scripts, il s'agit d'un préalable pour enclencher la méthode Rotation(); , alors Wrotation ne declenche pas de procédure de combat.

 

Ceci semble vrai aussi pour les combats réalisés avec FightClass. (J'ai pas encore testé avec FightClass)

 

Point 2 :

 

En mode fightclass, il était souvent question de créer 2 procédures de heal. Une pour soi, une pour l'équipe.

Je me demandais si il était possible tout simplement de ne faire qu'une procédure, tout simplement en s'incluant dans l'équipe. J'explique :

 

J'ai fait un script, qui est d'une redoutable efficacité. Vraiment démoniaque. Mais je ne l'ai pas encore présenté car j'ai de gros soucis avec la classe Interact qui rend mes mouvements pratiquement ingérables et j'essaie de me dépatouiller avec pour obtenir le meilleur compromis possible.

Dans ce script, voila ce que j'ai fait :

public void Ciblage(ulong Cible)
    {
        List<WoWPlayer> amisPlayerList;
        amisPlayerList = ObjectManager.GetWoWUnitHorde();
        amisPlayerList.Add(ObjectManager.Me);
        WoWUnit[] patients = new WoWUnit[amisPlayerList.Count];
        long[] patientPv = new long[amisPlayerList.Count];
        int offset = 0;
        foreach (WoWUnit patient in amisPlayerList)
        {
              patients[offset] = patient;
              patientPv[offset] = patient.Health;
              offset++;
        }

        Array.Sort(patientPv, patients);

        for (int x = 0; x < amisPlayerList.Count; x++)
        {
            if (patients[x].GetDistance < 40 && patients[x].IsValid && patients[x].IsAlive)
            {
                if (patients[x].HealthPercent < 90)
                    if (patients[x].GetBaseAddress != Cible)
                    {
                        Interact.InteractGameObject(patients[x].GetBaseAddress);
                        break;
                    }
                    else
                        break;
            }
        }
    }

Et tu remarque a la ligne 4 que je crée une liste d'amis (grâce a toi ^^), a laquelle je me rajoute a la ligne 5. C'est un peu de la débrouille mais ca marche terriblement bien. L'idée était de rajouter cette possibilité la dans le fightclass Creator de manière officielle. Apres au choix du joueur de l'utiliser ou non...

 

Point 3 :

 

Il s'agit de la classe interract. Les mouvements sont assez complexes dans le sens ou soit un mouvement est inclus, soit un stop tout aussi genant est inclus (avec la correction que tu m'avais proposé récemment :

Interact.InteractGameObject(wowUnit.GetBaseAddress, !ObjectManager.Me.GetMove);

Existe t il un moyen de cibler sans mouvement du perso, ni meme mouvement de camera ?

 

Autre chose : Existe t il un moyen de bouger la camera en instant, facon canalisation de sort (Lorsque le demono fait drain life par exemple, il fait toujours face a la cible facon instantanée) C'est ce genre de deplacement de camera qui m'interresse. J'ai essayé avec "face" mais ca ressemble trop au mouvement de camera de interact :)

 

Edit : Il y a 4 mois on avait un reel contrôle sur les mouvements pourtant et c'etait bien Interact qui était utilisé. Le phénomène se produit aussi avec les fightclass (Je vient de tester). Bien que le sort est configuré comme pouvant être lancé en mouvement, on a quand même un disgracieux STOP dans notre mouvement lorsque le sort se déclenche.

 

 

En esperant ne pas trop t'embêter. J'essaye juste de proposer pour arriver a la perfection.

Link to comment
Share on other sites

Bonjour,

 

Point 1:

Pouvez-vous me donner le lien WowHead d'un ou deux Npc qui pose problème.

 

Point 2&3:

Ce qui fait bouger le personnage c'est l'option ClickToMove, tu peux donc essayer en désactivant cette option et en la réactivant après:

Lua.LuaDoString("SetCVar(\"autoInteract\", 0);");
Interact.InteractGameObject(wowUnit.GetBaseAddress);
Lua.LuaDoString("SetCVar(\"autoInteract\", 1);");
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...