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.
Non ça ne changera rien c'est une question d'UI il me semble.
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 ?
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 ^^
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
Jamais réussi à faire marcher IsSpellInRange non plus quand j'ai modif le mien si ça peut te rassurer
GM - Genesis
Pouvez vous m'envoyer vos modifications et originaux de votre .lua? J'y jetterai un oeil.
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 :)
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
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.
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
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.
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.
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 :/
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.
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.
GM - Genesis
selon wow programming : http://wowprogramming.com/docs/api/IsActionInRangeon 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
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 :)
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/
|