Skip to content
View in the app

A better way to browse. Learn more.

WRobot

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Question sur les listes

Featured Replies

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

 

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

  • Author

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

 

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.