• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

How to make limit for infernal ulti?

Status
Not open for further replies.
Level 6
Joined
Mar 28, 2018
Messages
128
How to make limit for infernal ulti? call 1 and next infernal die.
I don't want to summon the infernal and all the trees nearby to be affected by the summoning.
Please help !
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,580
This will kill all of the players other Infernals when they "summon" a new one:
  • Infernal Limit
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Infernal
    • Actions
      • Set VariableSet InfernalGroup = (Units in (Playable map area))
      • -------- --------
      • Unit Group - Pick every unit in InfernalGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Picked unit)) Equal to Infernal
              • (Owner of (Picked unit)) Equal to (Owner of (Triggering unit))
              • (Picked unit) Not equal to (Triggering unit)
              • ((Picked unit) is alive) Equal to True
            • Then - Actions
              • Unit - Kill (Picked unit)
            • Else - Actions
      • -------- --------
      • Custom script: call DestroyGroup(udg_InfernalGroup)
Keep in mind this trigger doesn't care if the Infernal was actually summoned from an ability or not. I designed it this way so it would work with the Inferno (Custom) ability down below. You may want to add extra Conditions to make sure it doesn't interfere with other Infernals you create via triggers.

The tree destruction is hardcoded into the ability so you'd have to trigger the ability yourself to get around it.
Here's a custom version of Inferno that should fix the issues:
  • Infernal Custom
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Inferno (Custom)
    • Actions
      • Custom script: local location udg_InfernalPointB
      • Custom script: local real udg_InfernalAngle
      • -------- --------
      • Set VariableSet InfernalPointA = (Position of (Triggering unit))
      • Set VariableSet InfernalPointB = (Target point of ability being cast)
      • Set VariableSet InfernalAngle = (Angle from InfernalPointA to InfernalPointB)
      • Custom script: call RemoveLocation(udg_InfernalPointA)
      • -------- --------
      • Wait 1.00 game-time seconds
      • -------- --------
      • -------- Stun/Damage: --------
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at InfernalPointB facing Default building facing degrees
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Unit - Add Inferno (Dummy - Stun/Damage) to (Last created unit)
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
      • -------- --------
      • -------- Create Infernal: --------
      • Unit - Create 1 Infernal for (Owner of (Triggering unit)) at InfernalPointB facing InfernalAngle degrees
      • Unit - Add a 180.00 second Generic expiration timer to (Last created unit)
      • Animation - Play (Last created unit)'s birth animation
      • Animation - Queue (Last created unit)'s stand animation
      • -------- --------
      • Custom script: call RemoveLocation(udg_InfernalPointB)
      • Custom script: set udg_InfernalPointB = null
This is using Silence as the base ability for Inferno and War Stomp as the stun/damage which is used by a Dummy unit.

The only differences I could find between my custom version and the real Inferno ability:
  • The custom version plays the FULL birth animation whereas the real version seems to skip part of the birth animation.
  • The custom version uses War Stomp which creates terrain deformation (I think it looks better this way).

Also, if you want you can combine the Infernal Limit trigger together with the Infernal Custom trigger:
  • Infernal Custom 2
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Inferno (Custom)
    • Actions
      • Custom script: local location udg_InfernalPointB
      • Custom script: local real udg_InfernalAngle
      • -------- --------
      • Set VariableSet InfernalPointA = (Position of (Triggering unit))
      • Set VariableSet InfernalPointB = (Target point of ability being cast)
      • Set VariableSet InfernalAngle = (Angle from InfernalPointA to InfernalPointB)
      • Custom script: call RemoveLocation(udg_InfernalPointA)
      • -------- --------
      • Wait 1.00 game-time seconds
      • -------- --------
      • -------- Kill any other Infernals owned by the player: --------
      • Set VariableSet InfernalGroup = (Units in (Playable map area))
      • Unit Group - Pick every unit in InfernalGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Picked unit)) Equal to Infernal
              • (Owner of (Picked unit)) Equal to (Owner of (Triggering unit))
              • ((Picked unit) is alive) Equal to True
            • Then - Actions
              • Unit - Kill (Picked unit)
            • Else - Actions
      • Custom script: call DestroyGroup(udg_InfernalGroup)
      • -------- --------
      • -------- Stun/Damage: --------
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at InfernalPointB facing Default building facing degrees
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Unit - Add Inferno (Dummy - Stun/Damage) to (Last created unit)
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
      • -------- --------
      • -------- Create Infernal: --------
      • Unit - Create 1 Infernal for (Owner of (Triggering unit)) at InfernalPointB facing InfernalAngle degrees
      • Unit - Add a 180.00 second Generic expiration timer to (Last created unit)
      • Animation - Play (Last created unit)'s birth animation
      • Animation - Queue (Last created unit)'s stand animation
      • -------- --------
      • Custom script: call RemoveLocation(udg_InfernalPointB)
      • Custom script: set udg_InfernalPointB = null
 

Attachments

  • Infernal.w3m
    20.8 KB · Views: 7
Last edited:
Status
Not open for further replies.
Top