← GeekServers.gg [DEBUG:1782456837]
⚠ Archive en lecture seule — Retour sur GeekServers.gg
Salutations,

Ce poste concerne toutes les personnes utilisant l'addon Grid (pour fr d sw1).

La range de Grid est actuellement de 28 yard, ces 28 yard étant basés sur la distance du /follow (qui est donc de 28 yard).
Le problème qui touche les healeurs étant que leur soins ont une range de 40 yard, et non de 28 ! Difficile donc de savoir si une personne est bien en range de heal.

Je propose donc d'augmenter la range de /follow à 40 yard pour palier a ce soucis.

D'un côté c'est pas vraiment blizzlike (osef un peu de la distance du /f hein), puis ça donne un peu de boulot aux MJ... D'un autre, ce serait vraiment apprécié par les personnes utilisant cet addon.

Je ne sais pas trop si c'est envisageable mais ce n'est qu'une suggestion !

cf : http://www.wow-one.com/forum/topic/1626 ... ge__st__70


(...)

for frameName,frame in pairs(GridFrame.registeredFrames) do
if frame.unit then
if CheckInteractDistance(frame.unit, 4) then
self.core:SendStatusLost(frame.unitName, "alert_range")

(...)
My guess is that something needs to be changed hero, sadly can't really see what :/

inRange = CheckInteractDistance("unit", distIndex);

distIndex: Number - A value from 1 to 4:
1 = Inspect, 28 yards
2 = Trade, 11.11 yards
3 = Duel, 9.9 yards
4 = Follow, 28 yards


Je ne sais pas si changer la range du /follow résoudra vraiment le soucis de Grid, mais ça me paraît possible !

Zoobi.
Aros

<Burn The World>


Non ça ne changera rien c'est une question d'UI il me semble.
Brzx


Spécialiste des mécaniques du jeu et du fonctionnement du serveur.
Euh arreter moi si je dis de la merde mais sa serais pas 40 métres et non 40 yard la porté des heal ? donc le 28 yard correspond a quelque chose prés au 40 métre nn ?
Redlabel

<Dissection>


Bah j'ai le jeux en anglais, c'est indiqué 40 yard, je pense pas qu'ils se soient cassés la tête à convertir les yard en mètres d'un client a l'autre ^^
Aros

<Burn The World>


bonsoir je détere ce topic :

après quelque recherche il y a la fonction IsSpellInRange("Soins",unit) donc j'ai édité le code de grid Enhanced pour utiliser cette fonction que voici ci dessous (pour le moment il ne traiterait que les groupes de 5 joueur)

Code: Tout sélectionner
function GridStatusRange:RangeCheck()
   --local settings = self.db.profile.alert_range
   --if not settings.enable then return end
   local settings = self.db.profile.alert_range
    if not settings.enable then return end

      --local now = GetTime()

      for frameName,frame in pairs(GridFrame.registeredFrames) do
      
         
         if (frame.unit) then
            
            maxgr = GetNumPartyMembers()
               numerosgr  = 0
      
               while numerosgr <= maxgr do
                  if (UnitName("party"..numerosgr) == frame.unitName) then
                     unit = "party"..numerosgr
         
                  if UnitExists(unit) and UnitIsVisible(unit) and UnitIsFriend(unit,"Player") then
                     DEFAULT_CHAT_FRAME:AddMessage(unit)
                     inRange = IsSpellInRange("Soins",unit)
                  end
                     if inRange == 1 then
                     --if CheckInteractDistance(frame.unit, 4) then
                        self.core:SendStatusLost(frame.unitName, "alert_range")

                     else            
                        self.core:SendStatusGained(frame.unitName, "alert_range", settings.priority, nil, settings.color, settings.text, nil, nil, nil)
                     end
                  else
                     numerosgr = numerosgr +1
                  end
               end
            
            end
         end
      end


le problème est que malgré que je sois prêtre (donc connaissant le sort Soins) et que la valeur "unit" est bonne (vérifié grace au DEFAULT_CHAT_FRAME:AddMessage(unit) ) j'ai le message qui tue attempt to call global 'IsSpellInRange' (a nil value) hors selon:
http://vanilla-wow.wikia.com/wiki/API_IsSpellInRange mais encore
http://wowprogramming.com/docs/api/IsSpellInRange et également
http://www.wowwiki.com/API_IsSpellInRange

ma syntaxe est correcte (j'ai essayé avec la méthode du nom+unit, ID+"Spell"+unit avec et sans rang de sort, en anglais et francais j'ai toujour ce message.

quelqu'un a une idée ? la fonction IsSpellInRange est elle bloqué sur ce serveur ? si oui c'est mort si non il me faut un coup de main pour debug ce code SVP
Faelivrin


Jamais réussi à faire marcher IsSpellInRange non plus quand j'ai modif le mien si ça peut te rassurer
Athenne

<Genesis>


GM - Genesis
Pouvez vous m'envoyer vos modifications et originaux de votre .lua? J'y jetterai un oeil.
Alizia

Maître de jeu


a cet adresse (mon serveur web perso) ci vous pouvez télécharger l'original et mes modification du lua GridStatusRange pour ceux qui souhaite y jetter un oeil :)

http://log4rithme.url.ph/gridStatusRange.zip
Faelivrin


Hello, tu devrais peut être jeter un coup d'oeil au code de Improved sRaidFrame.
Il utilise cette fonction et visiblement elle n'est pas bloquée par le serveur (d'après mes tests, qui remonte à il y a un an cela dit).
L'auteur précise également que le sort utilisé par le rangecheck doit être dans les barres d'actions mais n'y connaissant pas grand chose, je ne saurais dire si c'est spécifique à la fonction ou non :p

gl :)
Lalò

<Geeks of BBL>


j'ai trouvé en survolant le code de ImprovedRaidFrame la fonction"IsActionInRange(SpellButton)" je vais voir avec cette fonction ce soir car la je suis au travail, merci

je prend toute les autres suggestion si vous en avez
Faelivrin


Tu est obligé de target avec cette fonction, déjà fait le test sur mon grid au début et j'avais une énorme chute de fps (en plus du bruit de changement de cible) à faire une boucle pour check ceux > 30m, ça faisait partir certains spells sur la mauvaise cible sans l'utilisation de mouseover en plus.

Résultat la seule utilité de IsActionInRange c'est pour ceux qui utilisent grid pour target puis cast et faire un check de la distance pour modifier ou non l'alerte range de la cellule pour la cible et avoir une vrai distance de 40m.
Athenne

<Genesis>


GM - Genesis
oui mais deja si tu utilise la fonction déja existante des 28m tu peut le target pour tester les 40m si la cible est au dela des 28 sinon ce n'est pas la peine (et cela dois grandement améliorer les perfs :) ) après il faut que je vois en détail le fonctionnement de cette fonction mais il va falloir attendre ce soir
Faelivrin


Athenne a écrit:à faire une boucle pour check ceux > 30m


j'avais allégé la boucle au maximum btw mais c'est le fait de spam target qui causais le lag + la latence serveur les soirs de lag.
Athenne

<Genesis>


GM - Genesis
Athenne a écrit:Résultat la seule utilité de IsActionInRange c'est pour ceux qui utilisent grid pour target puis cast et faire un check de la distance pour modifier ou non l'alerte range de la cellule pour la cible et avoir une vrai distance de 40m.


Même dans ce cas, la frame met 1 seconde à s'actualiser, c'est beaucoup trop long pour être réellement efficace.
Lalò

<Geeks of BBL>


non, mon check interval est sur 0.25, l'actu est instantanée car on passe par cette fonction que si unit == "target" du coup pas de lag
Mais bon personnellement je m'en sert jamais de la range target c'est toujours le boss que je cible et je fait tout en mouseover :/
Athenne

<Genesis>


GM - Genesis
On peut surement comme dit plus haut faire vérifier intelligemment la distance uniquement sur les cibles à plus de 28m, ça réduirait pas mal les soucis. On peut aussi rajouter uniquement les personnes sur lesquelles on passe la souris.
Alizia

Maître de jeu


on peux mais bon, la contrainte principale reste: on est obligé de target la cible (même sans intervention du joueur) pour tester la distance.
Athenne

<Genesis>


GM - Genesis
selon wow programming :

http://wowprogramming.com/docs/api/IsActionInRange

on peut "choisir" sur quel unité on peut faire le IsActionInRange() via un second paramètre faciltatif et utilise target que si ce paramètre n'est pas renseigné

cela reste a vérifier
Faelivrin


Bon je vois que je ne suis absolument pas le seul à espérer secrètement ce détail auquel nombres de nous avaient été habitués sur les extensions suivantes.

Une bonne chose que j'ai put croisé Aros sur ma route pour relancer le sujet.

Personnellement je suis pas le meilleur prog, mais après m'être intéresse au code j'étais bloqué au même stade qu'Athenne et j'ai ensuite abandonné l'idée pour me consacrer à mon pauvre pexing.

Cependant l'actualisation d'une frame pour test si la cible est > 28m ne me faisait pas lag persos.

Cependant je l'ai pas encore testé en condition de raid donc je pense que la différence vient de là

Je ne manquerait pas de ressortir mes maigres recherches, sait-on jamais.

Bon courage à ceux qui vont permettre la révolution pour les healers sous Vanilla Nostalgeek :)
Miyanhko


bon après 3h de code j'ai trouvé aucune solutions :

- IsSpellInRange(spell, unit) est introduit dans la MAJ 2.0 selon les commentaires ici : http://www.wow-one.com/forum/topic/2667 ... aidframes/ et donc sur 1.12 c'est mort (le parametre unit est ignoré et donc la fonction se base toujours sur le target)

- IsSpellInRange(ID bar d'action, unit) fonctionne pas du tout

je réupload mon nouveau code de ce soir (a la ligne 78/79 il y a les deux fonction dans une condition booléene il suffit de décomenter/recommenter l'une ou l'autre pour son choix) et il semble mal fonctionner (mon code hein)

adresse des deux package : http://log4rithme.url.ph/
Faelivrin





Conditions générales d'utilisation et mentions légales - Code de conduite des forums - Contact