• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Trigger] Impossible to make MUI?

Status
Not open for further replies.
Level 4
Joined
Jun 7, 2008
Messages
37
I've been trying to make the Waveform ability from DotA MUI (for those of you that don't know, Waveform removes a unit's collision detection, moves it forward and damages nearby enemies), but to no avail. Here are the triggers:

  • Wave Form
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Waveform
    • Actions
      • Set WF_Caster[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
      • Set WF_Caster_Loc[(Player number of (Owner of (Triggering unit)))] = (Position of WF_Caster[(Player number of (Owner of (Triggering unit)))])
      • Set WF_Point[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
      • Set WF_Angle[(Player number of (Owner of (Triggering unit)))] = (Angle from (Position of WF_Caster[(Player number of (Owner of (Triggering unit)))]) to WF_Point[(Player number of (Owner of (Triggering unit)))])
      • Set WF_Distance[(Player number of (Owner of (Triggering unit)))] = (Distance between WF_Caster_Loc[(Player number of (Owner of (Triggering unit)))] and WF_Point[(Player number of (Owner of (Triggering unit)))])
      • Set WF_Check[(Player number of (Owner of (Triggering unit)))] = False
      • Unit - Turn collision for WF_Caster[(Player number of (Owner of (Triggering unit)))] Off
      • Unit - Hide WF_Caster[(Player number of (Owner of (Triggering unit)))]
      • Custom script: call RemoveLocation(udg_WF_Caster_Loc[GetConvertedPlayerId(GetTriggerPlayer())])
      • Trigger - Turn on Wave Form Action <gen>
      • Wait until (WF_Check[(Player number of (Owner of (Triggering unit)))] Equal to True), checking every 0.10 seconds
      • Unit - Unhide WF_Caster[(Player number of (Owner of (Triggering unit)))]
      • Selection - Select WF_Caster[(Player number of (Owner of (Triggering unit)))] for (Owner of WF_Caster[(Player number of (Owner of (Triggering unit)))])
      • Unit - Turn collision for WF_Caster[(Player number of (Owner of (Triggering unit)))] On
      • Trigger - Turn off Wave Form Action <gen>
      • Custom script: call RemoveLocation(udg_WF_Point[GetConvertedPlayerId(GetTriggerPlayer())])
  • Wave Form Action
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Set WF_Caster_Loc[(Player number of (Owner of (Triggering unit)))] = (Position of WF_Caster[(Player number of (Owner of (Triggering unit)))])
      • Set WF_Offset[(Player number of (Owner of (Triggering unit)))] = (WF_Point[(Player number of (Owner of (Triggering unit)))] offset by 50.00 towards WF_Angle[(Player number of (Owner of (Triggering unit)))] degrees)
      • Unit - Move WF_Caster[(Player number of (Owner of (Triggering unit)))] instantly to WF_Offset[(Player number of (Owner of (Triggering unit)))], facing WF_Angle[(Player number of (Owner of (Triggering unit)))] degrees
      • Set WF_Distance[(Player number of (Owner of (Triggering unit)))] = (Distance between WF_Caster_Loc[(Player number of (Owner of (Triggering unit)))] and WF_Point[(Player number of (Owner of (Triggering unit)))])
      • Special Effect - Create a special effect at WF_Caster_Loc[(Player number of (Owner of (Triggering unit)))] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
      • Special Effect - Destroy (Last created special effect)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 250.00 of WF_Caster_Loc[(Player number of (Owner of (Triggering unit)))] matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A structure) Not equal to True) and (((Matching unit) belongs to an enemy of (Owner of WF_Cas and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is in WF_Group[(Player number of (Owner of (Triggering unit)))]) Not equal to True
              • WF_Check[(Player number of (Owner of (Triggering unit)))] Not equal to True
            • Then - Actions
              • Unit Group - Add (Picked unit) to WF_Group[(Player number of (Owner of (Triggering unit)))]
              • Unit - Cause WF_Caster[(Player number of (Owner of (Triggering unit)))] to damage (Picked unit), dealing (75.00 x (Real((Level of Waveform for WF_Caster[(Player number of (Owner of (Triggering unit)))])))) damage of attack type Spells and damage type Normal
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WF_Distance[(Player number of (Owner of (Triggering unit)))] Less than or equal to 50.00
        • Then - Actions
          • Set WF_Check[(Player number of (Owner of (Triggering unit)))] = True
          • Unit Group - Remove all units from WF_Group[(Player number of (Owner of (Triggering unit)))]
          • Trigger - Turn off (This trigger)
        • Else - Actions
      • Custom script: call RemoveLocation(udg_WF_Caster_Loc[GetConvertedPlayerId(GetTriggerPlayer())])
      • Custom script: call RemoveLocation(udg_WF_Offset[GetConvertedPlayerId(GetTriggerPlayer())])
I'm almost positive it is because the game no longer has the triggering unit stored in the second trigger...

Is it possible to make this MUI without using JASS?
 
Level 40
Joined
Dec 14, 2005
Messages
10,532
By the time you're working on this sort of thing, it's really time to move to Jass.

If you still want to do it in GUI, there's a way, though.

I'll write it up here in a bit (It takes a while), but it's rather messy.

EDIT:

It looks as if I still had my old half-finished tutorial on this lying around on my computer, so I fixed it up and posted it.

http://www.hiveworkshop.com/forums/...y-timers-custom-values-like-96460/#post797042
 
Status
Not open for further replies.
Top