Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=05b0e06c469d2eb9013c4001a9d980e5Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Bouclier de Sang [GUI]
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 gisgalion
Membre honoraire


Inscrit le: 30 Oct 2013
Messages: 284
Sujets: 21
Spécialité en worldedit: Spellmaker


MessagePosté le: 05/11/14 18:50    Sujet du message: Bouclier de Sang [GUI] Citer

Hullo again Embarassed
Après que vous ayez fort obligeamment répondu à ma question , j'ai donc finalisé mon déclencheur pour mon sort.
Cependant, je suis encore bloqué par un petit problème assez gênant Rolling Eyes
Le principe du sort :
Le Chevalier de Sang utilise sa réserve de sang (ressource spécifique à ce héros) pour créer un bouclier. Le bouclier absorbe plus ou moins de dommage selon le niveau du sort et protège entièrement le Chevalier.
Cependant... le Chevalier de Sang est soigné à chaque fois qu'il est attaqué :/
Sa vie ne reste pas "statique" mais augmente :/
Voici mes déclencheurs Wink

1) Initialisation du Sort
Secret:

Gui:
Trigger:
Bouclier de Sang initialisation
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Bouclier de Sang
Collapse Actions
Set BloddKnight_ActualBlood = (Load 1 of (Key (Triggering unit)) from BloodKnight_Hashtable)
Set BloodShield_ActualShield = BloddKnight_ActualBlood
Set BloodShield_TextMessage = (String(BloodShield_ActualShield))
Texte flottant - Create floating text that reads BloodKnigh_TextMessage above (Triggering unit) with Z offset 75.00, using font size 10.00, color (5.00%, 45.00%, 100.00%), and 0.00% transparency
Set BloodShield_Text = (Last created floating text)
Effet spécial - Create a special effect attached to the origin of (Triggering unit) using AbilitiesSpellsUndeadCrippleCrippleTarget.mdl
Set BloodShield_Effect = (Last created special effect)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Level of Bouclier de Sang  for (Triggering unit)) Egal à  1
Collapse Alors - Actions
Set BloodShiel_Coef = 1.00
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Level of Bouclier de Sang  for (Triggering unit)) Egal à  2
Collapse Alors - Actions
Set BloodShiel_Coef = 2.50
Collapse Sinon - Actions
Set BloodShiel_Coef = 5.00
Groupe unité - Add (Triggering unit) to BloodShield_CasterGroup
Table de hachage - Save BloodShiel_Coef as 0 of (Key (Triggering unit)) in BloodShiel_Hashtable
Table de hachage - Save Handle OfBloodShield_Text as 1 of (Key (Triggering unit)) in BloodShiel_Hashtable
Table de hachage - Save Handle OfBloodShield_Effect as 2 of (Key (Triggering unit)) in BloodShiel_Hashtable
Table de hachage - Save BloodShield_ActualShield as 3 of (Key (Triggering unit)) in BloodShiel_Hashtable
Set BloddKnight_ActualBlood = 0
Table de hachage - Save BloddKnight_ActualBlood as 1 of (Key (Triggering unit)) in BloodKnight_Hashtable
Déclencheur - Add to Bouclier Dmg <gen> the event (Unité - (Triggering unit) Subit des dégâts)



2) Lorsque l'unité subit des dommages
Secret:

Gui:
Trigger:
Bouclier Dmg
Evénements
Collapse Conditions
((Triggering unit) is in BloodShield_CasterGroup) Egal à  TRUE
Collapse Actions
Set BloodShield_Text = (Load 1 of (Key (Triggering unit)) in BloodShiel_HashtableIf the label is not found, this function returns NULL.)
Set BloodShield_ActualShield = (Load 3 of (Key (Triggering unit)) from BloodShiel_Hashtable)
Set BloodShiel_Coef = (Load 0 of (Key (Triggering unit)) from BloodShiel_Hashtable)
Set BloodShield_Damages = (Damage taken)
Set BloodShield_ActualShield = (BloodShield_ActualShield - (Integer((BloodShield_Damages / BloodShiel_Coef))))
Set BloodShield_TextMessage = (String(BloodShield_ActualShield))
Table de hachage - Save Handle OfBloodShield_Text as 1 of (Key (Triggering unit)) in BloodShiel_Hashtable
Table de hachage - Save BloodShield_ActualShield as 3 of (Key (Triggering unit)) in BloodShiel_Hashtable
Unité - Set life of (Triggering unit) to ((Vie of (Triggering unit)) + (Damage taken))
Texte flottant - Change text of BloodShield_Text to BloodShield_TextMessage using font size 10.00
Table de hachage - Save Handle OfBloodShield_Text as 1 of (Key (Triggering unit)) in BloodShiel_Hashtable
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
BloodShield_ActualShield Inférieur ou égal à  0
Collapse Alors - Actions
Groupe unité - Remove (Picked unit) from BloodShield_CasterGroup
Effet spécial - Destroy BloodShield_Effect
Texte flottant - Destroy BloodShield_Text
Table de hachage - Clear all child hashtables of child (Key (Triggering unit)) in BloodShiel_Hashtable
Collapse Sinon - Actions
Do nothing



Voilà, merci beaucoup d'avance Embarassed

EDIT : Je tiens à préciser que niveau texte , c'est bon, j'ai aucun problème, ni niveau réserve de sang
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Karbok
Membre actif


Inscrit le: 29 Oct 2014
Messages: 181
Sujets: 8
Spécialité en worldedit: les gauffres au nutella


MessagePosté le: 05/11/14 19:40    Sujet du message: Citer

Remplace ton "set life" par un "damage target" de l'unité sur elle même (type magie/sort), ça devrait regler le problème (en plus de te permettre de tracker les soins prodigués par l unité car ça génère un event "take damage"). Et faut aussi ajouter la condition "damage taken > 0.0" Pour éviter la boucle infinie ^^
_________________
Mon pseudo Battle.net : Dragonflamm
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 05/11/14 20:19    Sujet du message: Citer

Nan, justement, set life est adapté pour cette situation, en plus d'éviter les boucles infinis. De plus si l'unité est insensible au sort elle ne devrait rien subir
.
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Karbok
Membre actif


Inscrit le: 29 Oct 2014
Messages: 181
Sujets: 8
Spécialité en worldedit: les gauffres au nutella


MessagePosté le: 05/11/14 20:34    Sujet du message: Citer

Dans tous les cas, la condition "anti-boucle infinie" est nécessaire pour pas rendre l unité insensibles aux soins extérieurs.
Après, damage ou set life c est une question de gout en effet ^^
Mais je trouve le problème curieux, ca veut dire que si on répond à un take damage par un set life, les dégâts ne s'appliquent plus après le set life ??
_________________
Mon pseudo Battle.net : Dragonflamm
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 05/11/14 20:55    Sujet du message: Citer

Ben si, les dommages sont infligés puis le set life passe derrière et ajoute à la vie actuelle les dégâts subis ( equivalent de soigner ).
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Karbok
Membre actif


Inscrit le: 29 Oct 2014
Messages: 181
Sujets: 8
Spécialité en worldedit: les gauffres au nutella


MessagePosté le: 05/11/14 21:53    Sujet du message: Citer

Donc les actions sont faites APRES la prise de dégâts, et pendant un "moment", l'unité a eu des PV négatifs sans mourir ?
(Je fais mon chiant, mais j'ai envie de bien comprendre :p)
_________________
Mon pseudo Battle.net : Dragonflamm
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 05/11/14 22:07    Sujet du message: Citer

Nop, les actions sont faites avant la prise de dégâts. Si l'unité est full life, ça ne la protégera pas.
Dans l'idéal, il faut soigner l'unité avant, puis la re-soigner après un timer(0). Je crois que ça pose des problèmes de rendre l'unité invulnérable pendant 0.00 secondes (ça annule les dégâts mais ça enlève le focus des attaquant, il me semble).
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 gisgalion
Membre honoraire


Inscrit le: 30 Oct 2013
Messages: 284
Sujets: 21
Spécialité en worldedit: Spellmaker


MessagePosté le: 06/11/14 13:40    Sujet du message: Citer

Merci beaucoup des réponses diverses et variées mais... je vois toujours pas pourquoi ça heal mon unité T_T
Puisque je la heal avant qu'elle ne subisse les dommages, ses points de vie (sauf full life) devraient être inchangés nan ?
_________________
Le vaste monde vous entoure de tous côtés ; vous pouvez vous enclore, mais vous ne pouvez éternellement le tenir en dehors de vos clôtures.

John Ronald Reuel Tolkien.

Hâtez-vous lentement, et sans perdre courage,
Vingt fois sur le métier remettez votre ouvrage.
Polissez-le sans cesse, et le repolissez.
Ajoutez quelquefois, et souvent effacez.

Boileau
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 DarK™
Membre actif


Inscrit le: 29 Aoû 2011
Messages: 197
Sujets: 15
Spécialité en worldedit: Système/Déclencheurs [GUI]


MessagePosté le: 06/11/14 17:48    Sujet du message: Re: Bouclier de Sang [GUI] Citer

J'imagine qu'elle n'est pas soignée au premier cast du sort puis lors du deuxième cast, elle est soignée?
Car à chaque fois que tu lances le sort, tu ré-ajoutes l'évènement Ton unité subit des dégâts, au bout de X cast, il y a X évènement donc, donc il y a X "soins" équivalent aux dégâts subis.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 06/11/14 18:24    Sujet du message: Citer

Il lui faut un trigger dynamique.
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 gisgalion
Membre honoraire


Inscrit le: 30 Oct 2013
Messages: 284
Sujets: 21
Spécialité en worldedit: Spellmaker


MessagePosté le: 06/11/14 19:07    Sujet du message: Citer

C'est bien ça Dark, j'avais même pas remarqué (honte à moi Embarassed .
Un trigger dynamique? keskecé ?
_________________
Le vaste monde vous entoure de tous côtés ; vous pouvez vous enclore, mais vous ne pouvez éternellement le tenir en dehors de vos clôtures.

John Ronald Reuel Tolkien.

Hâtez-vous lentement, et sans perdre courage,
Vingt fois sur le métier remettez votre ouvrage.
Polissez-le sans cesse, et le repolissez.
Ajoutez quelquefois, et souvent effacez.

Boileau
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 06/11/14 19:13    Sujet du message: Citer

Un trigger qui est créé en cours de jeu, puis une fois qu'il sert plus on le détruit pour éviter le leak ( J'utilise d'ailleurs ce système pour Flèche de lave ).
Néanmoins l'inconvéniant, --> jass .
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 gisgalion
Membre honoraire


Inscrit le: 30 Oct 2013
Messages: 284
Sujets: 21
Spécialité en worldedit: Spellmaker


MessagePosté le: 06/11/14 19:23    Sujet du message: Citer

Arg... Zut :/
_________________
Le vaste monde vous entoure de tous côtés ; vous pouvez vous enclore, mais vous ne pouvez éternellement le tenir en dehors de vos clôtures.

John Ronald Reuel Tolkien.

Hâtez-vous lentement, et sans perdre courage,
Vingt fois sur le métier remettez votre ouvrage.
Polissez-le sans cesse, et le repolissez.
Ajoutez quelquefois, et souvent effacez.

Boileau
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Karbok
Membre actif


Inscrit le: 29 Oct 2014
Messages: 181
Sujets: 8
Spécialité en worldedit: les gauffres au nutella


MessagePosté le: 06/11/14 20:17    Sujet du message: Citer

Y a une astuce pour éviter le JASS (je sais, c'est mal mais bon ^^) :
Sauvegarder les unités dont tu as déjà ajouté l'évenement dans un groupe d'unités. Comme ca, tu ajoutes seulement les evenements des unités qui sont pas encore dans le groupe Smile
_________________
Mon pseudo Battle.net : Dragonflamm
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 DarK™
Membre actif


Inscrit le: 29 Aoû 2011
Messages: 197
Sujets: 15
Spécialité en worldedit: Système/Déclencheurs [GUI]


MessagePosté le: 06/11/14 20:48    Sujet du message: Citer

Ou les ajouter une seule fois (quand ton unité entre sur la map)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2
La question posée dans ce topic a été résolue !

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com