Jump to content

Question sur les listes


Recommended Posts

Bonjour

Petite curiosité : Je construit une liste incluant tout les hostiles, qu'ils soient Monstres, Player de faction adverse, player de la meme faction en duel ou arene, ainsi que les totems de soin et champignons magiques adverses hostiles.

Pour la partie player de la meme faction, j'utilise ceci :

public static List<WoWUnit> GetAdversaires()
    {
        List<WoWUnit> Adversaires = new List<WoWUnit>();

        List<WoWUnit> AdvPve = ObjectManager.GetWoWUnitHostile();
        foreach (var pve in AdvPve)
        {
            if (pve.IsValid && pve.IsAlive && pve.Reaction <= Reaction.Unfriendly)
                Adversaires.Add(pve);
        }

        List<WoWPlayer> allPlayers = ObjectManager.GetObjectWoWPlayer();
        foreach (var player in allPlayers)
        {
            if (player.IsAlive && Lua.LuaDoString<bool>("return UnitCanAttack('player', 'target')"))
                Adversaires.Add(player);
        }

        return Adversaires;
    }

Je n'ai pas fini, mais j'ai une question :

pour la partie suivante :

if (player.IsAlive && Lua.LuaDoString<bool>("return UnitCanAttack('player', 'target')"))

on utilise du lua dans une partie de programme qui est très souvent rafraichie.

Est-ce que ces nombreuses sollicitations en lua risquent d’être remarquées par Blizzard ?

Merki ^^

 

Link to comment
Share on other sites

Salut,
Le problème est surtout que ton code LUA te dit si la "cible actuelle" est attaquable, mais tu ne sélectionnes pas de cible.
Pour que ça fonctionne, il faudrait un code du style:

List<WoWPlayer> allPlayers = ObjectManager.GetObjectWoWPlayer();
        foreach (var player in allPlayers)
        {
            if (player.IsAlive)
            {
                wManager.Wow.Helpers.Interact.InteractGameObject(player.GetBaseAddress);
                if (Lua.LuaDoString<bool>("return UnitCanAttack('player', 'target')"))
                    Adversaires.Add(player);
            }
                
        }

Mais ce n’est pas pratique (ça va changer de cible souvent, et si c'est appelé fréquemment ce sera injouable).
Utiliser beaucoup de code lua n'a pas d'importance (temps que ça ne ralentit pas le bot et le jeu, et que la fonction lua ne fait pas appel au serveur de wow (qu'elle reste en local))

Link to comment
Share on other sites

Merci pour ta reponse :)

Oui je ne fait pas de selection. C'est volontaire. C'est une liste pour savoir combien d'hostiles m'entourent, Y COMPRIS les hostiles de la meme faction que moi (Rencontres en duel ou arene). Ceux la echappent a toute les listes et je n'ai rien d'autre que ce petit code lua pour les reperer les adversaire de meme faction en duel.

Et tu a raison, j'ai deja testé la selection, et c'est tres vite ingerable ^^

Cette liste me servira (apres l'avoir complete avec IsCast ou isTargetingMe) pour reagir en declenchant des sorts de protection au bon moment et sera utile aussi bien en Pve qu'en duel, arene, raid....

Ma seule inquietude etait que, avec un grand nombre de raffraichissement utilisant le code lua, une alerte soit declenchée coté serveur wow :) Merci  de m avoir rassure

 

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...