Necrosis - Mod démoniste

Fil fermé
Partager Rechercher
- Bon j'ai implementer le bouton pvp d'urgence, impec quand on l'active il coupe tout les reglages de servitude, et remet nos parametres a la desactivation ^^
Me reste juste a lui finir l'aspect graphique.

- Correction du bug de la pierre d'ame ( le timer ne s'affiche plus si on interropt le sort, corrige par l'auteur ).

- Correction des tooltip des pierres ( nom fr et couleur wha trop dur ^^ ).

- Finition du panneau d'options, j'ai reduit au max en gardant une bonne lisibilite

- serveur plante, test en attente
Moi j'en suis à tester le UnitIsPlayer(unitname) et à adapter la SpellList ...
La version que j'ai mit en ligne fonctionne en pvp, mais j'ai eu quelques erreurs j'ai pas très bien compris pourquoi (sinon elle affiche encore la liste des mobs/players qui sont sous les effets d'un sort casté (pas instant))...

Je suis en train de regarder comment éplucher le log de combat (très bonne idée à mon avis, en plus on ne peut pas écrire dedans via une interface ...).

Encore un truc dans la version d'hier Agony était traduite par Vulnérabilité au feu dans le log, je sais pas si ça a été corrigé ...

Edit: Bon alors le problème c'est que quand on déclenche un sort a dot genre agony ou corruption ça écrit:

XXX subit les effets de Malédiction d'agonie
XXX subit les effets de Corruption

et 3 secondes après à chaque tick ça écrit:

Votre Malédiction d'agonie touche XXX et inflige YYY points de dégats
Votre Corruption inflige 54 points de dégats de Ombre à XXX

Donc les Votre sont exploitables mais pas les subit ... On fait comment on enregistre 3 secondes après ?
Sont chiant chez blizzard a utiliser moitie US / moitie FR dans leur code :/

Enfin bon on s'adapte ^^ J'ai relog en jeu c'est pitoyable, ca hit & run dans tout les sens a booty bay par exemple ... (soupir) ... regrette les points de deshonneur...
Citation :
Publié par Tilienna Thorondor
Sont chiant chez blizzard a utiliser moitie US / moitie FR dans leur code :/
Ouais carrément ... et puis le code ascii aussi c'est pour qui mince ! ils utilisent un language de script qui le gère et ils l'intègrent pas dans leur jeu !

Citation :
Publié par Tilienna Thorondor
Enfin bon on s'adapte ^^ J'ai relog en jeu c'est pitoyable, ca hit & run dans tout les sens a booty bay par exemple ... (soupir) ... regrette les points de deshonneur...
Oui effectivement, en plus en étant démo c'est chaud faut gérer les shards ...
Je rencontre aussi le bug qui fait que tant que je n'utilise pas ou ne crée pas de Shard, le mod considère que j'en ai aucun.

De même, j'invoque ma succube nouvelle forme ( ) le mod considère que je n'ai pas de démon (alors qu'il l'as affiché quand j'avais mon diablotin)

EDIT : le nom de la succbue s'affiche après un zoning
Tout à l'heure j'ai commencé un reroll Démoniste sur Les Sentinelles, dès le début de la sécance d'introduction des orcs, j'ai eu un message d'erreur, le voici mot pour mot :
Citation :
[string"Interface\AddOns\Necrosis\Necrosis.Lua]:923:attemp to perform arithemtic on field '?' (a nil value)
Citation :
XXX subit les effets de Malédiction d'agonie
XXX subit les effets de Corruption

et 3 secondes après à chaque tick ça écrit:

Votre Malédiction d'agonie touche XXX et inflige YYY points de dégats
Votre Corruption inflige 54 points de dégats de Ombre à XXX

Donc les Votre sont exploitables mais pas les subit ... On fait comment on enregistre 3 secondes après ?
Ben a la limite le depart du dot on l'a, puisque le mod le fait deja, il intercept les lancement de sort. Apres pour la duree bonne question, compter le nombre de tic? agonie 30 sec, immolation 15, Corruption 27... des tic de 3 sec a chaque fois y'a ptet une piste par la ^^

Dans ce cas on se base qeu sur les "Votre ..." en ignorant les autres ( puisque pas nos sorts ).

Pour resumer:

Lancement du sort => on check ca c'est bon on a le depart du spell on le fout dans la table. A la volee on chope la cible. ca c'est bon aussi, puisque hormis l'aoe fear tout les sorts concrenes demande une cible.

Apres on check les tic des sorts + la cible ( meme ligne de log ). Imo 5 tic, Corrup 9 tic, Agonie 10 tic. Ca, ca colle aussi. duree / 3 quoi, comme ca on se base sur la table de duree, pour pas se faire chier a en recreer une pour ca.

Le truc c'est qu'il faut trouver un moyen de verifier si le sort existe tjrs. Et c'est la que ca coince. Quand le timer arrive a expiration ou cible morte, ok pas de prob.

La ou ca merde c'est si le sort est supprime d'une autre facon. Comment verifier que c'est CE sort qui a ete vire, et pas celui d'un autre...

EDIT:

Version up, 1.16.1B http://membres.lycos.fr/Tilienna/WOW

Attention version "en developpement", certaines choses peuvent ( je suis sur meme ) ne pas fonctionner correctement.

SVP: qqun aurait le nom de l'effet shadow trance, une fois actif sur le joueur?
Citation :
Publié par Tilienna Thorondor
Ben a la limite le depart du dot on l'a, puisque le mod le fait deja, il intercept les lancement de sort.
Citation :
Publié par Tilienna Thorondor
Lancement du sort => on check ca c'est bon on a le depart du spell on le fout dans la table. A la volee on chope la cible. ca c'est bon aussi, puisque hormis l'aoe fear tout les sorts concrenes demande une cible.
Si tu parle de ça ça passera pas ...

Code:
	if (event == "SPELLCAST_START") then
   		TargetName = UnitName("target");
   		SpellCastName = arg1;
   	end
   	if (event == "SPELLCAST_FAILED") then
   		TargetName = nil;
   		SpellCastName = nil;
   	end
   	if (event == "SPELLCAST_INTERRUPTED") then
   		TargetName = nil;
   		SpellCastName = nil;
   	end
   	if (event == "SPELLCAST_STOP") then
   		if (SpellCastName) then
   			
   			
 			Necrosis_SpellsOnTarget("ADD",1,SpellCastName,TargetName);
   			
   			-- Soulstone timer management
 			if (SpellCastName == "R\195\169surrection de Pierre d'\195\162me") then
 				table.insert(SpellTimer.Name, SpellCastName);
 				table.insert(SpellTimer.Time, 1800);
 				table.insert(SpellTimer.TimeMax, 1800);
 				table.insert(SpellTimer.Type, 1);
   				Necrosis_UpdateStoneButtons();
   			elseif (SpellCastName == "Rituel d'invocation") then
 		 	Necrosis_Msg("J'invoque "..UnitName("target")..", svp faites un clic droit sur le portail.", "WORLD");
   			end
   			SpellCastName = nil;
   		end
   	end
Tous les sorts en instant ne sont pas considérés comme du cast ... C'est justement comme ça que je comptais récupérer à la fois le nom de la cible et le sort ... Je me demande si il existe pas un autre évènement que celui la ...

Pour ce qui est des ticks avec le "Votre" ça nous donne toutes les 3 secondes à la fois le nom de la cible et le sort ...

Citation :
Publié par Tilienna Thorondor
La ou ca merde c'est si le sort est supprime d'une autre facon. Comment verifier que c'est CE sort qui a ete vire, et pas celui d'un autre...
A la limite analyser dans une fourchette de 1 seconde si le tick a bien eu lieu, si c'est pas le cas alors on vire (suffirait de rajouter un int ou un champ dans le tableau des sorts genre Actif une fonction qui le met à 4 qd il y a le tick (on le descend de 1 toutes les secondes) et si jamais il passe a 0 on a un genre de garbage collector qui les supprime. Pour les sorts qui n'ont pas un tick de 3 secondes on le met a 2 par exemple ...)

Le problème ici sera pas la complexité du truc (ça doit même être facil à coder ...), le vrai problème c'est qu'il y a un temps de latence sur ce système ... Tout sera affiché mais à 1 seconde près ...

Edit: je crois que je commence a comprendre pourquoi le créateur du mod utilise les textures ...

[hors-sujet]
Bon pour le mot pvp du jour ! 153 kills comme quoi le warlock est pas si mauvais ! et vive le new look de la succube !
[/hors-sujet]
Pour les spells channelés j'ai la solution

SPELLCAST_CHANNEL_START Called when a spellcaster begins channelling.
SPELLCAST_CHANNEL_UPDATE Called when a channelling spell is updated.

Donc tout ce qui est instant cast le seul et unique moyen c'est de regarder dans le log de combat ... (à moins que quelqu'un ait une idée géniale ...)
Je pense aussi qu'il parlait de ca La reponse est oui, bien sur mais ca demande un peu de boulot

Bon petit recapitulatif de la version en cours!!

- options du pet ( focus & co ) virees de Necrosis ( y compris dans le code )
- pet en laisse integre a Servitude
- panneau d'options des 2 mods combines & recadres pour moins de place
- trad Fr quasi totale
- ajout de 2 boutons "rapides" pour switch pet en laisse, et un mode "full control" d'urgence en cas de pvp barbare ^^
- remplacement des check via textures par des check via noms de sorts ( pas complet il doit m'en manquer 2 ou 3 )
- ajout de 4 bouton bind dans les options d'interface pour les 4 pierres ( merci Shin ;p )
- correction du bug de pierre de rez en cas de cancel du sort ( par l'auteur ).
- tri des pierres AVEC les shard dans le sacs specifie ( quasi complet, si des gentils testeurs le foutent en defaut, faites moi signe ).
- fenetre des buff Servitude deplacable, et ne cache plus le panneau d'options quand on l'ouvre.
- rajout d'un check pour eviter l'affichage de Necrosis si le perso n'est pas demoniste ( oui j'avoue c'est tres con mdr ).



Fait mais a verifier:

- recodage pour eviter le flood du Void en cas de sacrifice
- nom de shadow trance en fr? Transe de l'ombre? ( vu que ca teste plus par texture mais par nom je dois le changer aussi )
- bug qui fait que Necrosis a besoin d'une action type "zoning" ou autre pour refresh la gestion des shards au log, ne le fait pas a tt le monde ????

A faire:

- ajout de tooltip sur les options de Necrosis
- rewamp complet des timers ( ShinRaziel et Baeandor sont dessus ^^ merci a eux pour tout le boulot idees et suggestions )
- ajout du timer de reutilisation des pierre de rez/de soins dans leur tooltip respectives. Vu que c'est un objet d'inventaire, que le timer est unique, et qu'on ne peut avoir qu'une pierre a la fois, il me semble qu'il y a une fonction pour le recuperer.

Merci a tous pour les test encouragements et remontees d'infos ^^

Je reup pas de suite vu le peu de modif faite depuis la precedente version

PS: Autre chose a suggerer?

A si: comme avait suggerer Baeandor, un petit timer graphique pour la pierre de rez plutot que le timer chiffré basique, autour de la "marguerite" de Necrosis. j'y reflechi ^^

Bon apres 1h de test:
- plus de timer quand je cast drain de vie. pas bien mechant ca va encore.
- La gestion de la pierre de rez ne se remet pas a zero si la cible de la pierre viens a mourir/l'utiliser => recast impossible, le script consierant le timer tjrs actif. Meme probleme qu'avec les timer de dot en changeant de cible en gros.
La difference ici est que la pierre ne se cast que sur une cible alliee, et joueur. Je regarde si y'a pas un event mort d'un joueur du grp ou qqch de similaire, permettant de verifier si la cible du sort est morte ou pas. si c'est le cas => reset de la pierre

trouve : GetInventoryItemCooldown je fouine sur cette piste la ^^
.. rate c'est pas bon, c'est pas l'inventaire qu'il me faut mais dans les sacs.. et y'a pas :/
ShardTracker utilisait ce genre de code. En fait il récupère la position de la pierre dans les sacs et ensuite récupère la phrase affichée dans le Tooltip de la pierre qui est de type "[...]Temps de recharge[...]" (il le récupère avec un for ... in)

Le code est vers la ligne 445 chez moi de mon fichier ShardTracker.lua (j'avais changé quelques trucs mais c'est dans une fourchette de 10 lignes la position)
Yep ce que j'ai fait aussi, enfin la c'est encore plus simple, puisque la position de la pierre est deja recuperee par Necrosis. En fait j'affiche directement la ligne 6 du tooltip si celui ci correspond au string.find("temps").

Le seul truc qui me gene un peu c'est qu'il n'actualise pas la tooltip :/ En gros le decompte par exemple au secondes ne se vois pas. Faut retirer le curseur de sur l'icone et le remettre pour qu'il l'actualise. Alors que celle dans l'inventaire le fait tres bien ^^
Salut,

J'essaye de tester nécrosis + servitude et petit probléme : j'ai des messages d'erreur en boucle indiquant une erreur d'accès à une variable (?).

Ces messages apparaissent quand j'essaye de paramétrer servitude ou qu'en j'ai un démon invoqué.

Voici un message type:
Citation :
[string "Interface\AddOns\Servitude\Servitude.lua"]:503: attempt to index global 'Servitude_Config' (a nil value)
Aurais-je oublié d'installer qq chose ?

PS: bravo pour le travail de refonte sur ces 2 add-ons, j'ai hate de pouvoir les tester
Citation :
Publié par Tilienna Thorondor
- La gestion de la pierre de rez ne se remet pas a zero si la cible de la pierre viens a mourir/l'utiliser => recast impossible, le script consierant le timer tjrs actif. Meme probleme qu'avec les timer de dot en changeant de cible en gros.
La difference ici est que la pierre ne se cast que sur une cible alliee, et joueur. Je regarde si y'a pas un event mort d'un joueur du grp ou qqch de similaire, permettant de verifier si la cible du sort est morte ou pas. si c'est le cas => reset de la pierre

trouve : GetInventoryItemCooldown je fouine sur cette piste la ^^
.. rate c'est pas bon, c'est pas l'inventaire qu'il me faut mais dans les sacs.. et y'a pas :/
Houlà, on s'emballe là. Ou alors c'est moi qui pige pas tout...

Il ne faut pas que le timer de la pierre de rez se remette à zéro en cas de mort de la cible, le but n'est pas de savoir si la pierre de rez est active sur un membre du groupe mais juste de savoir si on peut la relancer.

Donc la gestion de la pierre de rez doit être triviale : on détecte le lancement du sort de rez ce qui déclenche un chrono. On travaille ensuite sur ce chrono et uniquement ce chrono.
Si par malheur on perd ce chrono (crash du jeu par exemple), on n'affiche plus rien en guise de timer TANT QUE le démonise n'a pas recréé une pierre de rez dans son inventaire, dans laquelle on peut récupérer l'état du chrono.

Le bouton de la pierre de rez ne doit pas donc faire des tests, c'est inutile : il essaye de lancer le sort de rez si on lui a sauvegardé la position de la pierre, sinon il essaye de créer une pierre. Le timer ou le fait qu'un membre du groupe possède déjà le sort de rez ne doit pas entrer en compte.
Mwé me suis embrouillé moi la ... en effet ca n'as guere d'interet lol

Pour le msg d'erreur par contre je ne comprends pas trop :/ Normalement les variable Servitude_Config sont obligatoirement creer et incrementees au debut La ligne correspond au test d'invis de la succube.
Citation :
Publié par Tilienna Thorondor
Mwé me suis embrouillé moi la ... en effet ca n'as guere d'interet lol

Pour le msg d'erreur par contre je ne comprends pas trop :/ Normalement les variable Servitude_Config sont obligatoirement creer et incrementees au debut La ligne correspond au test d'invis de la succube.
Ca pourrait pas être provoqué parce que la succube n'a pas encore le sort ?

Quel level es-tu Corfe ?

Tilienna, tu devrais laisser Servitude tout seul sur ton ftp, pour ceux qui veulent pas de Necrosis (surtout d'une version en developpement).
"Vous utilisez immolation mais XXX résiste"

Donc pour ce qui est des sorts à resist c'est bon, on peut les intersepter.
Mais toujours le même problème je vois pas comment récupérer les sorts en instant cast type dots (agony ...) ou malédictions ...

"XXX subit les effets de YYY"

On pourrait éventuellement envisager de faire des macros pour ces sorts, macro qui lancerait une fonction de linterface qui ajoute un sort dans la table avec le nom du mob et qui attant vérification par le log de combat -> si message resist on vire, -> si message subit les effets on guarde et on valide ...

Seulement toujours le même problème c'est pas possible de savoir si c'est bien notre malédiction ou dots qui est passé, ou celui du démo allié ...
Je suis 37 et j'ai bien l'invisibilité pour la succube (j'ai un message équivalent pour le void walker).

Du coup j'ai retiré Servitude, Nécrosis marche très bien sans.

Dommage, j'aurais bien gardé les deux
Citation :
[string "Interface\AddOns\Servitude\Servitude.lua"]:503: attempt to index global 'Servitude_Config' (a nil value)
Citation :
if Servitude_Config.ScbAutoInvisib and (not isUnitBuffUp("pet", "Invisibilit\195\169 mineure"))
Ben si je comprends bien le msg ca veut dire que l'index Servitude_Config a renvoyer un nil, donc vide... ce qui logiquement n'est pas possible, puisque des valeurs par defaut sont definie de base. Serait ce le meme probleme que les shard qui ne s'initialise pas, sauf zoning ou autre? Comme s'il sautait la case d'init du mod :/

Si tu a cosmos, tu a essaye un /rl par hasard?
Ca arrive chez moi aussi et c'est une fenetre qu'on ne peut pas fermer...

A noter que lorsque j'ai mon marcheur, c'est la ligne 519 (rien ne se passe lorsque c'est un diablotin)

Je n'ai pas de textes dans ma config servitude

J'ai une erreur a la ligne 189 ou 199 quand je clique sur l'un ou l'autre bouton "démons" "attempt to index global : 'servitude_config' (a nil value) (mon diablotin etant sorti)

J'utilise CT_Mod derniere version
Fil fermé

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés