kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
Posté le: 04/03/12 19:01 Sujet du message: rendre killable une unité ou un héros locust |
|
|
I/ L'éditeur d'objet
Pour locust une unité, vous allez la voir dans l'éditeur d'objet et vous lui ajouter la compétence normal "locust" ou "infestation"
Pour locust un héros, même chose mais faites attention à ne pas vous tromper, choisissez bien compétence normal.
Ensuite créez un nouveau type d'unité, comme vous voulez et enlevez lui les capacités, la collision, la sélection (donc tout mettre à 0 quoi) et si vous avez choisi un héros, retirer l'icone et le gros cercle sur la minimap.
II/ Les triggers
Vous pouvez enfin oublier cet horrible éditeur d'objet qui nous répugne tous et ouvrir votre sublime éditeur de trigger qu'on aime tous comme la g*hips*lle le matin.
Bref, le principe de cette technique revient à créer une unité que l'on ne voit pas, dont un joueur lambda ne peut soupçonner l'existence qui est à forte fréquence téléporté sur notre unité ciblée et qui devra mourir à la place de celle ci.
Pour cela, on a besoin de 3 éléments :
1) La création par trigger de votre invis unit sur votre unité ciblé de la manière suivante :
Jass: | set TaInvisUnit = CreateUnit(TonPlayerNeutre, TonTypeUnit, GetUnitX(TaUnitCible), GetUnitY(TaUnitCible), 0)
call SetUnitPathing(udg_invisUnit_j[i], false)
call ShowUnit(TaInvisUnit, false) |
donc on crée une unité, et on la rend invis c'est tout con. Sauf qu'il ne faut pas créer l'unité pour le joueur possédent l'unité loc, sinon il peut la voir.
le SetUnitPathing j'ai oublié à quoi ça servait, s'cuzez. Je ne connais pas non plus l'équivalent GUI.
2) Un trigger à répétition de période 0.05 seconde (c'est suffisant) avec dedans l'action suivante :
Jass: | call SetUnitX(TaInvisUnit, GetUnitX(TaUnitLoc))
call SetUnitY(TaInvisUnit, GetUnitY(TaUnitLoc)) |
ou si vous préférez :
Gui: | Trigger: Unité - Move (TaInivsUnit) instantly to (Position of (TaUnitLoc)) |
n'oubliez pas de unleakage pour les adeptes de la souffrance GUI.
3) Un détecteur de mort. En gros un trigger avec pour évent la mort de votre invisunit qui actionne la mort de votre unité loc.
Soit :
en event :
Jass: | call TriggerRegisterPlayerUnitEventSimple(TonTrigger, LePlayerQuiPossedeTaInvisUnit, EVENT_PLAYER_UNIT_DEATH ) |
comme filtre :
Jass: | function TaFunction_Conditions takes nothing returns boolean
local unit u=GetTriggerUnit()
return GetUnitTypeId(u) == TonTypeInvisUnit
endfunction |
comme action :
Jass: | call KillUnit( TaUnitLocCorrespondante ) |
ou en gui :
Et voila, vous avez le minimum syndical pour faire une invisunit qui tuera votre unité loc.
Bonne journée à tous c'était juste un p'tit tuto de branleur très simple. _________________
|
|