- Joined
- Nov 10, 2008
- Messages
- 2,023
Okay im working an "advanced" spell. At least, advanced to me. It works properly now but its not MUI or even MPI. Do you have any advices? Im searching the easiest way to make the spell MUI.
~x-omg-x
-
Chaos Sphere
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Chaos Sphere
-
-
Actions
-
Set RT_Caster = (Triggering unit)
-
Set RT_Position = (Position of RT_Caster)
-
Set RT_Distance = 350.00
-
Set RT_DamageDealt = ((Level of Chaos Sphere for RT_Caster) x 80)
-
For each (Integer RT_Integer) from 1 to 4, do (Actions)
-
Loop - Actions
-
Unit - Create 1 Dummy (Chaos) for (Owner of RT_Caster) at RT_Position facing ((Real(RT_Integer)) x 90.00) degrees
-
Set RT_Dummy[RT_Integer] = (Last created unit)
-
Unit - Turn collision for RT_Dummy[RT_Integer] Off
-
Unit - Add a 3.50 second Generic expiration timer to RT_Dummy[RT_Integer]
-
Set RT_InvisibleFade[RT_Integer] = 100.00
-
Set RT_Offset[RT_Integer] = (RT_Position offset by RT_Distance towards ((Real(RT_Integer)) x 90.00) degrees)
-
Special Effect - Create a special effect at RT_Offset[RT_Integer] using Objects\Spawnmodels\Undead\UDeathSmall\UDeathSmall.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
-
-
Chaos SphereRun
-
Events
-
Time - Every 0.03 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer RT_Integer) from 1 to 4, do (Actions)
-
Loop - Actions
-
Set RT_DummyPos[RT_Integer] = (Position of RT_Dummy[RT_Integer])
-
Set RT_Offset[RT_Integer] = (RT_DummyPos[RT_Integer] offset by 8.00 towards ((Real(RT_Integer)) x 90.00) degrees)
-
Set RT_DistanceMoving[RT_Integer] = (Distance between RT_DummyPos[RT_Integer] and RT_Position)
-
Set RT_FlyingHeight[RT_Integer] = ((Current flying height of RT_Dummy[RT_Integer]) - 1.00)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
RT_DistanceMoving[RT_Integer] Less than or equal to RT_Distance
-
-
Then - Actions
-
Destructible - Pick every destructible within 125.00 of RT_DummyPos[RT_Integer] and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Unit - Move RT_Dummy[RT_Integer] instantly to RT_Offset[RT_Integer]
-
Animation - Change RT_Dummy[RT_Integer]'s size to ((RT_DistanceMoving[RT_Integer] + 3.00)%, (RT_DistanceMoving[RT_Integer] + 3.00)%, (RT_DistanceMoving[RT_Integer] + 3.00)%) of its original size
-
Animation - Change RT_Dummy[RT_Integer] flying height to RT_FlyingHeight[RT_Integer] at 0.00
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
RT_InvisibleFade[RT_Integer] Greater than or equal to 0.00
-
-
Then - Actions
-
Set RT_InvisibleFade[RT_Integer] = (RT_InvisibleFade[RT_Integer] - 3.00)
-
Animation - Change RT_Dummy[RT_Integer]'s vertex coloring to (100.00%, 100.00%, 100.00%) with RT_InvisibleFade[RT_Integer]% transparency
-
-
Else - Actions
-
-
-
Else - Actions
-
Set RT_UnitGroup[RT_Integer] = (Units within 250.00 of RT_DummyPos[RT_Integer] matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of RT_Caster)) Equal to True)))
-
Unit Group - Pick every unit in RT_UnitGroup[RT_Integer] and do (Actions)
-
Loop - Actions
-
Unit - Cause RT_Caster to damage (Picked unit), dealing (Real(RT_DamageDealt)) damage of attack type Spells and damage type Normal
-
Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Unit - Remove RT_Dummy[RT_Integer] from the game
-
Special Effect - Create a special effect at RT_DummyPos[RT_Integer] using Abilities\Spells\Undead\Darksummoning\DarkSummonTarget.mdl
-
Special Effect - Destroy (Last created special effect)
-
Set RT_DistanceMoving[RT_Integer] = 0.00
-
Set RT_FlyingHeight[RT_Integer] = 0.00
-
Set RT_InvisibleFade[RT_Integer] = 100.00
-
Set RT_Caster = No unit
-
Set RT_Dummy[RT_Integer] = No unit
-
Custom script: call RemoveLocation(udg_RT_DummyPos[udg_RT_Integer])
-
Custom script: call RemoveLocation(udg_RT_Offset[udg_RT_Integer])
-
Custom script: call DestroyGroup(udg_RT_UnitGroup[udg_RT_Integer])
-
-
-
-
-
-