Necrosis - Mod démoniste

Fil fermé
Partager Rechercher
Citation :
Publié par Tilienna Thorondor
* Changed spell list to switch from right to left based on placement.
=> je vois pas trop ce que c'est ca
-->Ben c'est l'espèce d'oeil que tu as qui liste les sorts actifs sur la cible donc en fait en fonction de la position de l'oeil il affiche les sorts sur la partie droite ou la partie gauche ...

Citation :
Publié par Tilienna Thorondor
* Fixed switching stones and off-hand items.
=> j'ai pas regarde ce que ca donnait ( j'ai aps le sort de spellstone faut que j'aille l'acheter, a mon avis c'etait pour un bug pour le switch ENTRE pierre )
--> je m'en sert jamais donc je pourrais pas te dire ...

Citation :
Publié par Tilienna Thorondor
* Removed the graphical soulshard display and replaced it with a number.
=> ha non! pas d'accord la
--> idem j'aime bien le design de son graphique

Citation :
Publié par Tilienna Thorondor
* Demon follow focus won't attack unharmed enemies when you change focus.
=> n'attaque pas les mob "indemne" quand on change de cible hmmm pkoi? je saisis pas trop l'interet la.
--> supposons tu as engagé le combat et tu as activé la fonction du "Demon follow focus" supposons maintenant que tu click sans le vouloir sur un mob au loin ben avec notre version actuelle ton pet va aller se balader vers le mob en question, sa maj résout ce genre de problèmes (suis mort à cause de ça moi ! :'( )

Citation :
Publié par Tilienna Thorondor
* Demon follow focus runs checks to make sure demon is attacking your target.
=> perso je l'active jamais, en cas d'add j'aime bien avoir mon pet sur un mob, et gerer le(s) autre(s) a cote alors s'il change de cible a chaque fois
--> idem je l'ai viré depuis que ça m'a tué ! Mais l'idée de base est intéressante faudrait voir si on peut pas l'adapter ...
Oki pour le coup du mob indemne j'avais pas pense a ca

Sinon pour la pierre de rez je confirme, si tu interrompt le cast le timer se declanche quand meme. Le petit prob c'est que ca empeche un recast via la soulstone de necrosis, qui considere le sort actif. j'irais voir ca

Pour l'oeil ok, ca peut etre sympa, un petit plus

Pour le pet focus quel genre de modifs tu verrais? parce que ca deviens complexe a gerer apres, selon les situations.
En fait je verrais pour l'instant juste un petit bouton ou bind par l'activer ou le désactiver (parce que le menu c'est bien mais en combat c'est pas terrible ...)

Sinon je suis pas vraiment convaincu de l'utilité finalement je l'ai retesté encore la, à la limite pour le pve et le void ça pourrait être pas mal (il prend laggro pendant que tu cast et ensuite ta pas le mob sur toi ...)

Edit: mais un truc est sûr faut tout désactiver en pvp (mais tu as prévu le cas à ce que j'ai cru comprendre )
Ben pour le pet focus je peut faire un bouton du meme type que pour le bridage du pet

Sinon pour le pvp vi je pensais a un bouton qui met les paramaetres a zero temporairement, et si tu reclic il te remet tes reglages.

Bon ca fait 2 boutons en plus , ca va ptet commencer a faire bcp non? quoi que
Bon par contre un truc qui serait pas mal non plus à ajouter c'est les binds perso j'aime bien appuyer sur ma touche plutôt que de cliquer sur l'icône ...

Il suffit de faire ça dans le fichier Localization.lua ajouter ça:

Code:
   BINDING_HEADER_NECRO_BIND = "Raccourcis Necrosis";
   
   BINDING_NAME_SOULSTONE = "Pierre d'\195\162me"
   BINDING_NAME_HEALTHSTONE = "Pierre de soins";
   BINDING_NAME_SPELLSTONE ="Pierre de sort"
   BINDING_NAME_FIRESTONE ="Pierre de feu"
Créer un fichier Bindings.xml contenant ce code là:

Code:
   <Bindings>
   	<Binding name="SOULSTONE" header="NECRO_BIND">
   		Necrosis_UseItem("Soulstone");
   	</Binding>
   	<Binding name="HEALTHSTONE" header="NECRO_BIND">
    		Necrosis_UseItem("Healthstone");
    	</Binding>
   	<Binding name="SPELLSTONE" header="NECRO_BIND">
    		Necrosis_UseItem("Spellstone");
    	</Binding>
   	<Binding name="FIRESTONE" header="NECRO_BIND">
    		Necrosis_UseItem("Firestone");
    	</Binding>
   </Bindings>
Bon j'apprend à personne à faire des binds mais ça fait 2 minutes de gagner quand même ... ok je sort.

Par contre encore juste un truc mon warlock est mon perso principal mais j'ai aussi un autre perso non warlock et quand je me suis loggé avec la version que j'ai du mod m'a mit que je n'était pas warlock mais affiche quand même toute l'interface ... Faudrait cacher l'interface si le perso n'est pas warlock et désactiver le tout (c'est ma version bien sûr mais je l'ai récupéré hier sur ton ftp ...).

Edit: pour ce qui est des boutons en plus ça surchargera pas énormément ... et c'est à mon avis nécéssaire ...
Ca a peut etre deja ete corrigé, mais j'ai une erreur a la ligne 925 me disant "attemps to perform arithmetic on field '?' (a nil value) lors du démarrage

Autre truc bizarre...Dans les spell timers, résurrection de pierre d'ame reste quelle que soit la cible

Un ptit truc qui me manque aussi par rapport a Shardtracker, c'est que les pierres de soins, d'ame etc ne sont pas classées dans le sac des fragments d'ame...
Ok pour les bind je rajoute ca merci pour le truc ( franchement je ne connaissais pas mais je ne suis pas pro du wow et encore moin du LUA ).

Pour le tri des pierres dans le sac de shards ca peut s'arranger, suffit de les inclure dans la fonction ad hoc. Pour l'erreur je verifie la ligne concernee

Pour le coup de l'interface si pas demoniste en effet ... c'est con un xxx:hide(); sur un test et ca va le faire ^^
Message supprimé par son auteur.
ha? pas vu j'ai fait a la main

Code:
elseif (UnitClass("player") ~= "D\195\169moniste") then
		Loaded = true;
		Necrosis_Msg("<lightRed>Ce personnage n'est pas D\195\169moniste. Necrosis d\195\169sactiv\195\169", "USER");
		NecrosisShadowTranceButton:Hide();
		NecrosisFirestoneButton:Hide();
		NecrosisSpellstoneButton:Hide();
		NecrosisHealthstoneButton:Hide();
		NecrosisSoulstoneButton:Hide();
		NecrosisButton:Hide();
		NecrosisSpellTimerButton:Hide();
		NecrosisOptionMenu:Hide();
Pour le tri des shards + pierre ca marche a 90%, il met tout dans le meme sac ^^. Seul detail j'arrive a le mettre en defaut dans 1 cas, je continue de fouiner
Bon j'ai arrêté de faire ma propre traduction vous développez les améliorations plus vite que le dev originel =)

Donc propositions : compacter les deux fenêtres (Servitude et Necrosis), surtout en largeur ? Je ne connais pas votre résolution, mais ça me bouffe tout l'écran en 1024.
Pour Necrosis, il est facile de compresser d'un tiers environ... Pour Servitude, ça va être plus dur de réorganiser les différentes options... Peut-être sous forme de 3 onglets, une pour chaque pet ?

Et faire en sorte que la fenêtre de debuffs de Servitude soit déplaçable. Elle est collé à la gauche de mon écran là.
Vous avez trouvé à quoi servait toute la partie

Code:
	if (event == "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS") then
 		for creatureName, damage, tmpStr in string.gfind(arg1, "(.+) hits you for (%d+). (.+) blocked") do
  			Necrosis_AddDamage("PLAYER", damage);
  			return;
  		end
  		for creatureName, damage in string.gfind(arg1, "(.+) hits you for (%d+)") do
  			Necrosis_AddDamage("PLAYER", damage);
  			return;
  		end
  		for creatureName, damage in string.gfind(arg1, "(.+) crits you for (%d+).") do
  			Necrosis_AddDamage("PLAYER", damage);
  			return;
  		end
  	end
  	if (event == "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE") then
 		for creatureName, spell, damage in string.gfind(arg1, "(.+)'s (.+) hits you for (%d+).") do
  			Necrosis_AddDamage("PLAYER", damage);
  			return;
  		end
  		
 		for creatureName, spell, damage in string.gfind(arg1, "(.+)'s (.+) crits you for (%d+).") do
  			Necrosis_AddDamage("PLAYER", damage);
  			return;
  		end
  	end
J'ai pas vraiment cherché mais je me demandais l'intérêt pour un tel mod...
ça sert pour le sacrifice apparemment ...

Il initialize avec la vie et 0 pour les autres pendant le combat et à chaque event :

Code:
   	if (event == "PLAYER_REGEN_DISABLED") then
   		PlayerCombat = true;
   		if (NecrosisConfig.DemonAttack and DemonType and not DemonCombat) then
   			Necrosis_DemonAttack("Player");
   		end
   		-- Average damage per hit
   		Damage.Player[1] = UnitHealth("player");
   		Damage.Player[2] = 0;
   		Damage.Player[3] = 0;
   		Damage.Demon[1] = UnitHealth("pet");
   		Damage.Demon[2] = 0;
   		Damage.Demon[3] = 0;
   		Damage.Attacks[1] = 0;
   		Damage.Attacks[2] = 0;
   	end
C'est passé dans cette fonction :

Code:
   function Necrosis_AddDamage(unit, damage)
   	if (unit == "PLAYER") then
   		Damage.Player[2] = Damage.Player[2]+damage;
   		Damage.Attacks[1] = Damage.Attacks[1]+1;
   		if (Damage.Attacks[1] > 0) then
 			Damage.Player[3] = ceil(Damage.Player[2]/Damage.Attacks[1]);
   		else
   			Damage.Player[3] = Damage.Player[2];
   		end
   	elseif (unit == "PET") then
   		Damage.Demon[2] = Damage.Demon[2]+damage;
   		Damage.Attacks[2] = Damage.Attacks[2]+1;
   		if (Damage.Attacks[2] > 0) then
 			Damage.Demon[3] = ceil(Damage.Demon[2]/Damage.Attacks[2]);
   		else
   			Damage.Demon[3] = Damage.Demon[2];
   		end
   	end
   end
et voila où il s'en sert:

Code:
   	elseif (DemonType == "Voidwalker") then
   		-- Consume Shadows
   		if (UnitHealth("pet") <= UnitHealthMax("pet")*.8 and not DemonCombat) then
 			if ((curTime-Demon.Time[1]) >= Demon.Cooldown[1]) then
   				Demon.Time[1] = curTime;
 				Necrosis_DemonCastAction(Demon.Spell[1]);
   			end
   		end
   		-- Sacrafice
 		if (UnitHealth("pet") < Damage.Demon[3]*3 or UnitHealth("player") < Damage.Player[3]*3) then
 			if ((curTime-Demon.Time[2]) >= Demon.Cooldown[2]) then
 		 	Demon.Time[2] = curTime; 		
 				Necrosis_DemonCastAction(Demon.Spell[2]);
   			end
   		end
C'est un indicateur qui lui sert à sacrifier le pet ... Mais nous en s'en fout s'est servitude qui se charge de la gestion du pet ... A la limite on pourrait virer toute cette partie.
J'ai la fenetre de necrosis qui reste quand je prend un perso qui n'est pas démoniste.
C'est possible de faire en sorte qu'elle n'aparaisse pas dans ce cas ?

sinon merci pour vos efforts
Il n'y a pas la possibilité de récupérer directement les pv du joueur ? c'est bizarre de devoir calculer tous les dégâts encaissés...

Autre bug que je viens de remarquer par rapport à l'affichage des timers sur les sorts : si je ban un démon, que je change de cible et que je reviens sur le démon, le timer est réinitialisé à 0. Je suppose que ça fait la même chose pour tous les sorts, quand on change de cible il réinitialise les timers.
En fait il affiche que les timers des sorts sur la cible et pas de tous les sorts.
Citation :
Publié par Baeandor - Riswaaq
Il n'y a pas la possibilité de récupérer directement les pv du joueur ? c'est bizarre de devoir calculer tous les dégâts encaissés...
Ben si justement vu qu'il utilise ça : UnitHealth("player");
Je comprend pas vraiment pourquoi il calcule lui même les coups reçus ...


Citation :
Publié par Baeandor - Riswaaq
Autre bug que je viens de remarquer par rapport à l'affichage des timers sur les sorts : si je ban un démon, que je change de cible et que je reviens sur le démon, le timer est réinitialisé à 0. Je suppose que ça fait la même chose pour tous les sorts, quand on change de cible il réinitialise les timers.
En fait il affiche que les timers des sorts sur la cible et pas de tous les sorts.
Bizarre moi il me conserve les timers je crois ... Je vais vérifier ça !
oui voilà, quel est l'intéret de calculer tous les dégâts reçus si on peut récupérer la vie ?

Autre bug : la demande de soin du pet, même quand l'option est désactivée.
Ah effectivement il fait complètement nimp pour le multi-ciblage, il doit identifier la cible et ensuite en fonction du nom du sort et de la texture il affiche le bon timer ... J'ai vu aussi un autre bug, un prêtre a utilisé son sort de drain bleu et il m'a affiché drain de vie dans la liste des sorts ...

Finalement c'est assez basique comme système ! Il faudrait faire un genre de tableau dynamique qui attribue un id à chaque cible mais la on aura toujours le même problème c'est pas possible d'identifier une cible, c'est très courant d'avoir 2 mobs du même nom et de la même classe ... On peut pas non plus utiliser les points de vie ... Là je vois pas comment faire en fait !

Edit: oui la demande de soin du pet je l'ai jamais vu ...

Citation :
Publié par Baeandor - Riswaaq
oui voilà, quel est l'intéret de calculer tous les dégâts reçus si on peut récupérer la vie ?
J'avoue je comprends pas très bien non plus ...

Edit:

Code:
	if (event == "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS") then
 		for creatureName, damage, tmpStr in string.gfind(arg1, "(.+) hits you for (%d+). (.+) blocked") do
 			Necrosis_AddDamage("PLAYER", damage);
 			return;
 		end
 		for creatureName, damage in string.gfind(arg1, "(.+) hits you for (%d+)") do
 			Necrosis_AddDamage("PLAYER", damage);
 			return;
 		end
 		for creatureName, damage in string.gfind(arg1, "(.+) crits you for (%d+).") do
 			Necrosis_AddDamage("PLAYER", damage);
 			return;
 		end
 	end
De toutefaçon toute cette partie ira à la poubelle ... elle est même pas traduite j'avais pas tilté, mais je vais essayer de fouiller un peu plus quand même histoire de comprendre comment ça marche !
faut virer l'analyse par texture, c'est plus galère qu'autre chose.

Pour les timers, je pense qu'il faut faire en sorte qu'il n'affiche pas uniquement les sorts sur la cible mais tous les sorts, ainsi tu n'auras pas à te prendre la tête à savoir si tu es bien sur le même mob ou non, tu affiches tous les sorts, au joueur de savoir à quel mob correspond les timers.
Surtout que par exemple avec la resurrection de pierre d'ame qu'on change de mob ou pas ca reste afficher, a la limite autant faire pareil pour tous.

Par contre je ne me suis pas du tout penche sur la gestion des pets.

Pour deplacer la fenetre de sorts du Felhunter, je fais ca, y'en a pour 5 min.

Pour compacter les fenetres oui j'y pense aussi, je suis en 1280x1024 et ca me bouffe beaucoup de place surtout servitude. Deja rien qu'en mettant les bouton a la taille de Necrosis ca devrait etre mieux ( et j'ai deja reduit la taille de Servitude ).


EDIT: au train ou ca va, je vais completement virer tout ce qui concerne le pet dans Necrosis, voir carrement fusionner les 2 mod en 1, si je suis courageux et un peu fou ^^

RE-edit: la demande de soin du pet je la vire et j'en refait une avec servitude. vu comment est structurer son code y'en a pour 3 lignes + peut etre un slider pour regler le seuil mini d'alerte ( et merde encore une option ^^ )
C'est clair que le système actuel est pas terrible, mais tout afficher je sais pas ...
Ou à la limite tu met le nom du mob ... Non je vois pas faudrait trouver un truc ergonomique ...

Pour ce qui est du décompte des damage je commence à comprendre :

Code:
  function Necrosis_AddDamage(unit, damage)
  	if (unit == "PLAYER") then
  		Damage.Player[2] = Damage.Player[2]+damage;
  		Damage.Attacks[1] = Damage.Attacks[1]+1;
  		if (Damage.Attacks[1] > 0) then
 			Damage.Player[3] = ceil(Damage.Player[2]/Damage.Attacks[1]);
  		else
  			Damage.Player[3] = Damage.Player[2];
  		end
  	elseif (unit == "PET") then
  		Damage.Demon[2] = Damage.Demon[2]+damage;
  		Damage.Attacks[2] = Damage.Attacks[2]+1;
  		if (Damage.Attacks[2] > 0) then
 			Damage.Demon[3] = ceil(Damage.Demon[2]/Damage.Attacks[2]);
  		else
  			Damage.Demon[3] = Damage.Demon[2];
  		end
  	end
  end
Donc pour le tableau Damage.Player et Damage.Demon, le numéro 1 est la vie du player ou pet, le numéro 2 est le nombre de damages reçus, le numéro 3 est (Damage.Player[3] = ceil(Damage.Player[2]/Damage.Attacks[1]) donc en fait c'est les dommages moyens par attaques.

Damage.Attacks[1] représente le nombres d'attaques que le player a reçu, Damage.Attacks[2] le nombre d'attaques que le démon a reçu.

Donc en fait il se sert des évènement de regen pour déterminer le combat (PLAYER_REGEN_DISABLED et PLAYER_REGEN_ENABLED) et en fait son estimation des damages reçu par ton pet et toi est assez directe en fait il n'utilise pas la fonction UnitHealth() mais les calcule directement ... Je vois pas très bien pourquoi mais bon ... Je ne sais pas comment fonctionne servitude mais ce système est pas si mauvais en fait (quelqu'un pourrait me briefer pour servitude ?)
Citation :
Publié par Tilienna Thorondor
EDIT: au train ou ca va, je vais completement virer tout ce qui concerne le pet dans Necrosis, voir carrement fusionner les 2 mod en 1, si je suis courageux et un peu fou ^^
Si tu as besoin d'un coup de main , et si à la limite tu pouvais ul la version sur laquelle tu travaille ...
en plus le fait de gérer par texture ça affiche des timers farfelus parfois...

Pour Servitude, je pense que le mieux est de faire un onglet pour chaque pet, afin de réduire la taille de la fenêtre. Mais je sais pas si c'est possible sur ce genre de fenêtre...
j'up dans 5 min

- tri des shards ok ( si vous pouvez le foutre en defaut allez y mdr stress test ^^ ), il tri les pierre dans le sac avec les shards.

- bug du timer de rez qui reste afficher si on annule le sort ( corrige par l'auteur pas eu le tps de modifier ).

- les fonction du pet a virer de necrosis.

- un yell sur chan grp selon la vie du pet a implementer sur servitude.

- revoir la gestion des timers de sorts ( gros morceau celui la )

- heuu d'autre truc que j'ai pas en tete, la a part des lignes de code j'ai plus grand chose qui defile devant les yeux lol )


pour servitude:

Citation :
function CastSacrifice()
local debug = false;
if Servitude_Config.VWAutoSacrif and (not isUnitBuffUp("player", "Sacrifice")) and ((UnitHealth("pet") <= UnitHealthMax("pet") * Servitude_Config.VWAutoSacrifPetRatio) or (UnitHealth("player") <= UnitHealthMax("player") * Servitude_Config.VWAutoSacrifPlayerRatio)) then
ServitudeMessage(DebugMsg, "CastSacrifice: Status Tests Passed");
CastPetActionByName("Sacrifice");
end
end
( j'ai pris balise quote, la code me saoule avec sa barre de defilement )
Pour ce qui est de la liste j'ai peu-être une bonne idée mettre juste le nom du mb et en dessous les timers ... et ne mettre que les sorts que l'on a cast !

Aller je m'y colle on verra la meilleur version après !
Fil fermé

Connectés sur ce fil

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