Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Hisoka Membre actif
Inscrit le: 10 Sep 2014 Messages: 116 Sujets: 3 Spécialité en worldedit: Scénario/cinématiques/effets spéciaux
|
Posté le: 11/09/14 10:09 Sujet du message: Ne pas tuer une unité |
|
|
Bonjour!
Dans le cadre d'une campagne, j'aimerai qu'un trigger se lance dans des conditions bien particulières. En effet, je souhaite que lorsque j'attaque une unité spécifiée, celle-ci ne meurt pas et devienne invulnérable juste avant de mourir. On retrouve cette condition dans la campagne des morts-vivants lors de l'assault de Dalaran et que l'on doit au final tuer Antonidas.
Voici ce que j'ai trouvé:
Evenement : Specific unit is attacked (elle est déjà placée sur la carte et je l'indique ici)
Conditions : Points de vie de l'unité inférieurs à 20
Action : unité invulnérable
Lancement d'une cinématique
Le problème : Dans certains cas, l'unité est tuée directement (trop de dégâts effectuées sur elle) donc elle meurt et le trigger ne se lance pas. J'ai augmenté le nombre de PV mais il reste un caractère assez aléatoire qui me dérange.
Sauriez-vous m'aider sur ce point svp? _________________
|
|
Revenir en haut |
|
|
Ghost_of_past Floodeur prématuré
Inscrit le: 08 Sep 2013 Messages: 532 Sujets: 70 Spécialité en worldedit: GameDesign et optimisation JASS
|
Posté le: 11/09/14 12:09 Sujet du message: |
|
|
Faire en sorte que quand elle meurt on la remove( pour éviter d'avoir l'animation de mort) et tu la remplace par la même unité en baissant ses pv à 1 et en la mettant invulnérable
C'est une idée, à prendre ou à laisser _________________
"L'homme qui meurt est un astre couchant, qui se lève plus radieux sur un autre hémisphère"
"On entends le fracas des Arbres qui tombent, mais pas le murmure de ceux qui poussent" |
|
Revenir en haut |
|
|
florianlenecro Floodeur prématuré
Inscrit le: 12 Nov 2009 Messages: 711 Sujets: 50 Spécialité en worldedit: Vétéran
|
Posté le: 11/09/14 12:37 Sujet du message: |
|
|
Condition / Real Comparison / Unit - property ou state, quelque chose dans le genre. _________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon" |
|
Revenir en haut |
|
|
Ectelion Membre reconnu
Inscrit le: 12 Nov 2011 Messages: 1062 Sujets: 107 Spécialité en worldedit: Inactif(Enfin presque) Médailles: 1 (En savoir plus...)
|
Posté le: 11/09/14 18:08 Sujet du message: |
|
|
Je crois qu'on peut faire revivre des unités avec l'action dans la catégorie héros(ce qui résoudrait le problème de la mort).
Sinon je crois qu'un héros de Rise of Winterchill avait un sort qui empêchait de mourir dans son ancien kit(ce serait le vampire si je me souviens bien), dans ce cas-là faut demander à Softmint comment il s'y était pris. _________________
Inactif(Enfn presque) |
|
Revenir en haut |
|
|
Tirlititi
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
|
Posté le: 11/09/14 18:12 Sujet du message: |
|
|
Ouais, il suffit de vérifier si les dégâts infligés sont supérieurs à la vie actuelle de ton unité. _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 11/09/14 18:16 Sujet du message: |
|
|
Tirlititi a écrit: | Ouais, il suffit de vérifier si les dégâts infligés sont supérieurs à la vie actuelle de ton unité. |
Pas exactement une unité meurt si elle a 0.405 points de vie, ou un truc du style.
Vaut mieux le prendre en compte. _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
florianlenecro Floodeur prématuré
Inscrit le: 12 Nov 2009 Messages: 711 Sujets: 50 Spécialité en worldedit: Vétéran
|
Posté le: 11/09/14 20:12 Sujet du message: |
|
|
Ben tu fais DamageSubit > GetUnitState(life) + 1 _________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon" |
|
Revenir en haut |
|
|
rgf Membre reconnu
Inscrit le: 09 Mar 2009 Messages: 1154 Sujets: 54 Spécialité en worldedit: Croâ ?
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 11/09/14 21:29 Sujet du message: |
|
|
florianlenecro a écrit: | Ben tu fais DamageSubit > GetUnitState(life) + 1 |
Dommage, si tu avais utilisé 0.405 à la place de 1 tu aurais mérité le grade de captain obvious.
rgf a écrit: | Troll-Brain a écrit: | Tirlititi a écrit: | Ouais, il suffit de vérifier si les dégâts infligés sont supérieurs à la vie actuelle de ton unité. |
Pas exactement une unité meurt si elle a 0.405 points de vie, ou un truc du style.
Vaut mieux le prendre en compte. |
J'ai déjà eu un cas bizarre où mon unité était morte alors que sa vie était de l'ordre de la dizaine de points de vie, ce qui avait été source de bug car justement j'utilisais la condition "Vie < 0.405" pour vérifier l'état de mort de l'unité. Je ne me rappelle plus des conditions qui ont causé cela mais c'était systématique... |
Un bâtiment en cours de construction ? (complètement au pif)
A savoir que l'on peut changer le nombre de points de vie d'une unité morte par déclencheur, et à ce que j'ai entendu dire des compétences passives peuvent aussi parfois changer les points de vie d'une unité morte.
Vaut mieux utiliser IsUnitType(unit, UNIT_TYPE_DEAD), mais je ne sais plus comment est considérée une unité en cours de résurrection.
Y'a aussi la fonction native UnitAlive (de common.ai) qui a probablement un autre comportement.
Des tests à ce propos ca serait pas mal (non ne comptez pas sur moi) _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
Hisoka Membre actif
Inscrit le: 10 Sep 2014 Messages: 116 Sujets: 3 Spécialité en worldedit: Scénario/cinématiques/effets spéciaux
|
|
Revenir en haut |
|
|
Ghost_of_past Floodeur prématuré
Inscrit le: 08 Sep 2013 Messages: 532 Sujets: 70 Spécialité en worldedit: GameDesign et optimisation JASS
|
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 13/09/14 09:39 Sujet du message: |
|
|
La procédure est simple, au lieu d'essayer d'empêcher que l'unité meurt, lorsqu'elle meurt, on la remplace. _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 14/09/14 10:24 Sujet du message: |
|
|
Remplacer une unité peut engendrer tout un tas de problème derrière, dont une désélection notable.
Si mes souvenirs sont bons, lorsque l’événement "une unité subit des dégâts" se produit, les dégâts ne sont pas encore appliqués.
Et donc à ce moment il suffit de vérifier si les dégâts sont supérieurs aux points de vie actuels de l'unité (sans oublier les 0.405, aller 0.5 pour être safe).
Si c'est le cas on la rend invulnérable, ça devrait fonctionner.
Event : une unité subit des dégâts
condition : points de vie unité - dégâts <= 0.5
action : rendre l'unité invulnérable
EDIT :
Je suppose qu'Ayane a extrait le trigger de la campagne mentionnée, mais c'est pas pour cela que c'est la solution la plus élégante :p _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 14/09/14 17:15 Sujet du message: |
|
|
L'action pour annuler la mort n'existant pas, la solution de Blizzard est forcément la plus élégante, le reste ne sont que des hacks, surtout qu'il veut l'utiliser dans le même contexte: lancer une cinématique, la remplacer permet d'enlever toutes les auras et donc effets visuels et autres qui pourraient ne pas être voulues pour la cinématique, on n'a pas besoin de la sélection pour une cinématique. _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 14/09/14 22:42 Sujet du message: |
|
|
Ayane a écrit: | L'action pour annuler la mort n'existant pas, la solution de Blizzard est forcément la plus élégante, le reste ne sont que des hacks, surtout qu'il veut l'utiliser dans le même contexte: lancer une cinématique, la remplacer permet d'enlever toutes les auras et donc effets visuels et autres qui pourraient ne pas être voulues pour la cinématique, on n'a pas besoin de la sélection pour une cinématique. |
Bien entendu la sélection n'était qu'une chose parmi tant d'autres et tu le sais bien, je ne répondrais pas plus que cela (ni à l'avenir si tu comptes en rajouter une couche) à ton troll sur le "forcément".
Ici il faut interpréter l'élégance non pas par les moyens mis en place mais par le résultat (la fin justifie les moyens).
Néanmoins je dois avouer que tu marques un point pour les effets visuels, même si je n'y vois pas vraiment l'intérêt, tout est une question de besoin en effet, et si c'est voulu et que l'on n'a plus besoin de l'unité ultérieurement, alors oui remplacer l'unité quand elle meurt semble la meilleure solution. _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
|