- 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:
Is it possible to make this MUI without using JASS?
-
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())])
-
Events
-
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 - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - 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
-
If - Conditions
- Custom script: call RemoveLocation(udg_WF_Caster_Loc[GetConvertedPlayerId(GetTriggerPlayer())])
- Custom script: call RemoveLocation(udg_WF_Offset[GetConvertedPlayerId(GetTriggerPlayer())])
-
Events
Is it possible to make this MUI without using JASS?