- Joined
- Jan 1, 2011
- Messages
- 1,507
GUI Workshop
How to request a spell
~Name your spell.
~Give a detailed description on what it does.
~Tell me what base ability to use.
~Submit it on this thread.
How I do spells
All spells I do will be both MUI and leakless.
Spells will be made using vanilla GUI and hashtables.
I will only do one request at a time, in order from who posted first to last.
On finishing a spell I will upload it to the Hiveworkshop spell section.
I request your credit on the map you use this spell in.
Finished Spells
- LS Setup
- Events
- Map initialization
- Conditions
- Actions
- Hashtable - Create a hashtable
- Set LSHash = (Last created hashtable)
- Custom script: call DestroyTrigger(GetTriggeringTrigger())
- LS Cast
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Lightning Strike
- Actions
- Set TempUnit1 = (Triggering unit)
- Set TempUnit2 = (Target unit of ability being cast)
- Custom script: set udg_TempInteger1 = GetHandleId(udg_TempUnit2)
- Set TempInteger2 = (Level of (Ability being cast) for TempUnit1)
- -------- Damage --------
- Set TempReal1 = (100.00 x (Real(TempInteger2)))
- Unit - Cause TempUnit1 to damage TempUnit2, dealing TempReal1 damage of attack type Magic and damage type Lightning
- Special Effect - Create a special effect attached to the origin of TempUnit2 using Abilities\Weapons\Bolt\BoltImpact.mdl
- Special Effect - Destroy (Last created special effect)
- -------- Jumps --------
- Set TempInteger3 = (TempInteger2 + 1)
- Set TempReal1 = (TempReal1 x 0.90)
- Custom script: call SaveReal(udg_LSHash,udg_TempInteger1,0,udg_TempReal1)
- Custom script: call SaveInteger(udg_LSHash,udg_TempInteger1,1,udg_TempInteger3)
- Custom script: call SaveUnitHandle(udg_LSHash,udg_TempInteger1,2,udg_TempUnit1)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (Position of TempUnit2)
- Custom script: set udg_TempReal1=(50+(GetUnitFlyHeight(udg_TempUnit1)+GetLocationZ(udg_TempPoint1)))
- Custom script: set udg_TempReal2=(50+(GetUnitFlyHeight(udg_TempUnit2)+GetLocationZ(udg_TempPoint2)))
- Custom script: set udg_TempLightning=AddLightningEx("CLPB",true,GetLocationX(udg_TempPoint1),GetLocationY(udg_TempPoint1),udg_TempReal1,GetLocationX(udg_TempPoint2),GetLocationY(udg_TempPoint2),udg_TempReal2)
- Custom script: call SaveLightningHandle(udg_LSHash,udg_TempInteger1,3,udg_TempLightning)
- Set TempReal1 = (Angle from TempPoint1 to TempPoint2)
- Custom script: call SaveReal(udg_LSHash,udg_TempInteger1,4,udg_TempReal1)
- Custom script: call RemoveLocation(udg_TempPoint1)
- Custom script: call RemoveLocation(udg_TempPoint2)
- Unit Group - Add TempUnit2 to LSGroup
- Trigger - Turn on LS Periodic <gen>
- LS Periodic
- Events
- Time - Every 0.15 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in LSGroup and do (Actions)
- Loop - Actions
- Set TempUnit1 = (Picked unit)
- Custom script: set udg_TempInteger1 = GetHandleId(udg_TempUnit1)
- Custom script: set udg_TempInteger2=LoadInteger(udg_LSHash,udg_TempInteger1,1)
- Custom script: set udg_TempUnit2=LoadUnitHandle(udg_LSHash,udg_TempInteger1,2)
- Custom script: set udg_TempReal1=LoadReal(udg_LSHash,udg_TempInteger1,0)
- Custom script: set udg_TempReal2=LoadReal(udg_LSHash,udg_TempInteger1,4)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (TempPoint1 offset by 400.00 towards TempReal2 degrees)
- Set TempInteger2 = (TempInteger2 - 1)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TempInteger2 Greater than 0
- Then - Actions
- For each (Integer TempInteger4) from 1 to 2, do (Actions)
- Loop - Actions
- Set TempUnit3 = No unit
- Set TempReal5 = 400.00
- Custom script: set bj_wantDestroyGroup= true
- Unit Group - Pick every unit in (Units within 400.00 of TempPoint2 matching ((((Matching unit) is alive) Equal to True) and ((((Owner of TempUnit2) is an enemy of (Owner of (Matching unit))) Equal to True) and (((Matching unit) is in LSGroup) Equal to False)))) and do (Actions)
- Loop - Actions
- Set TempUnit4 = (Picked unit)
- Set TempPoint3 = (Position of TempUnit4)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Distance between TempPoint1 and TempPoint3) Less than TempReal5
- Then - Actions
- Set TempReal5 = (Distance between TempPoint1 and TempPoint3)
- Set TempUnit3 = TempUnit4
- Else - Actions
- Custom script: call RemoveLocation(udg_TempPoint3)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TempUnit3 Not equal to No unit
- Then - Actions
- Set TempPoint3 = (Position of TempUnit3)
- Custom script: set udg_TempInteger3=GetHandleId(udg_TempUnit3)
- Unit - Cause TempUnit2 to damage TempUnit3, dealing TempReal1 damage of attack type Magic and damage type Lightning
- Special Effect - Create a special effect attached to the origin of TempUnit3 using Abilities\Weapons\Bolt\BoltImpact.mdl
- Special Effect - Destroy (Last created special effect)
- Set TempReal1 = (TempReal1 x 0.90)
- Custom script: call SaveReal(udg_LSHash,udg_TempInteger3,0,udg_TempReal1)
- Custom script: call SaveInteger(udg_LSHash,udg_TempInteger3,1,udg_TempInteger2)
- Custom script: call SaveUnitHandle(udg_LSHash,udg_TempInteger3,2,udg_TempUnit2)
- Custom script: set udg_TempReal3=(50+(GetUnitFlyHeight(udg_TempUnit1)+GetLocationZ(udg_TempPoint1)))
- Custom script: set udg_TempReal4=(50+(GetUnitFlyHeight(udg_TempUnit3)+GetLocationZ(udg_TempPoint3)))
- Custom script: set udg_TempLightning=AddLightningEx("CLPB",true,GetLocationX(udg_TempPoint1),GetLocationY(udg_TempPoint1),udg_TempReal3,GetLocationX(udg_TempPoint3),GetLocationY(udg_TempPoint3),udg_TempReal4)
- Custom script: call SaveLightningHandle(udg_LSHash,udg_TempInteger3,3,udg_TempLightning)
- Custom script: call SaveReal(udg_LSHash,udg_TempInteger3,4,udg_TempReal2)
- Custom script: call RemoveLocation(udg_TempPoint3)
- Unit Group - Add TempUnit3 to LSGroup
- Else - Actions
- Else - Actions
- Custom script: call RemoveLocation(udg_TempPoint1)
- Custom script: call RemoveLocation(udg_TempPoint2)
- Unit Group - Remove TempUnit1 from LSGroup
- Custom script: set udg_TempLightning=LoadLightningHandle(udg_LSHash,udg_TempInteger1,3)
- Lightning - Destroy TempLightning
- Hashtable - Clear all child hashtables of child TempInteger1 in LSHash
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (LSGroup is empty) Equal to True
- Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
Requested by sonofjay in my spell workshop.ToolTip
Spell InfoHow to import
1. Open the spell map
2. Copy and paste the Lightning Strike spell to your map
3. Copy the lightning strike trigger folder to your triggers in your map
4. Edit condition under LS Cast and make it5.Edit
- (Ability being cast) Equal to Lightning Strike
to fit your needs
- -------- Damage --------
- Set TempReal1 = (100.00 x (Real(TempInteger2)))
- -------- Jumps --------
- Set TempInteger3 = (TempInteger2 + 1)
6. Enjoy and give credits ;pTriggers
- AT setup
- Events
- Map initialization
- Conditions
- Actions
- Hashtable - Create a hashtable
- Set ATHash = (Last created hashtable)
- Custom script: call DestroyTrigger(GetTriggeringTrigger())
- AT Cast
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Ax Toss
- Actions
- Set TempUnit1 = (Triggering unit)
- Set TempInteger1 = (Level of (Ability being cast) for TempUnit1)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (Target point of ability being cast)
- Set TempPlayer = (Triggering player)
- Set TempReal1 = (Angle from TempPoint1 to TempPoint2)
- Unit - Create 1 AT Missile for TempPlayer at TempPoint1 facing TempReal1 degrees
- Set TempUnit2 = (Last created unit)
- Custom script: set udg_TempInteger2 = GetHandleId(udg_TempUnit2)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger2,5,udg_TempReal1)
- -------- Distance --------
- Set TempReal1 = (400.00 + (100.00 x (Real(TempInteger1))))
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger2,0,udg_TempReal1)
- -------- Speed --------
- Set TempReal1 = 30.00
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger2,1,udg_TempReal1)
- -------- Damage --------
- Set TempReal1 = ((Real(TempInteger1)) x 85.00)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger2,2,udg_TempReal1)
- Custom script: call SaveUnitHandle(udg_ATHash,udg_TempInteger2,3,udg_TempUnit1)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger2,4,0.0)
- Unit Group - Add TempUnit2 to ATGroup
- Trigger - Turn on AT Periodic <gen>
- Custom script: call RemoveLocation(udg_TempPoint1)
- Custom script: call RemoveLocation(udg_TempPoint2)
- AT Periodic
- Events
- Time - Every 0.03 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in ATGroup and do (Actions)
- Loop - Actions
- Set TempUnit1 = (Picked unit)
- Custom script: set udg_TempInteger1 = GetHandleId(udg_TempUnit1)
- Custom script: set udg_TempReal1 = LoadReal(udg_ATHash,udg_TempInteger1,0)
- Custom script: set udg_TempReal2 = LoadReal(udg_ATHash,udg_TempInteger1,1)
- Custom script: set udg_TempReal3 = LoadReal(udg_ATHash,udg_TempInteger1,2)
- Custom script: set udg_TempReal4 = LoadReal(udg_ATHash,udg_TempInteger1,4)
- Custom script: set udg_TempReal5 = LoadReal(udg_ATHash,udg_TempInteger1,5)
- Custom script: set udg_TempUnit2 = LoadUnitHandle(udg_ATHash,udg_TempInteger1,3)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TempReal4 Less than TempReal1
- Then - Actions
- Set TempReal4 = (TempReal4 + TempReal2)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,4,udg_TempReal4)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (TempPoint1 offset by TempReal2 towards TempReal5 degrees)
- Custom script: call SetUnitX(udg_TempUnit1,GetLocationX(udg_TempPoint2))
- Custom script: call SetUnitY(udg_TempUnit1,GetLocationY(udg_TempPoint2))
- Custom script: set bj_wantDestroyGroup = true
- Unit Group - Pick every unit in (Units within 50.00 of TempPoint2 matching ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of (Owner of TempUnit1)) Equal to True))) and do (Actions)
- Loop - Actions
- Hashtable - Clear all child hashtables of child TempInteger1 in ATHash
- Unit - Kill TempUnit1
- Unit Group - Remove TempUnit1 from ATGroup
- Set TempUnit3 = (Picked unit)
- Unit - Cause TempUnit2 to damage TempUnit3, dealing TempReal3 damage of attack type Pierce and damage type Force
- Set TempPoint3 = (Position of TempUnit2)
- Set TempPoint4 = (Position of TempUnit3)
- Custom script: set udg_TempInteger1 = GetHandleId(udg_TempUnit2)
- -------- Jump Height Speed --------
- Set TempReal1 = (250.00 x 0.03)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,0,udg_TempReal1)
- -------- Time --------
- Set TempReal2 = 1.00
- -------- Angel --------
- Set TempReal3 = (Angle from TempPoint3 to TempPoint4)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,4,udg_TempReal3)
- -------- Distance --------
- Set TempReal4 = (Distance between TempPoint3 and TempPoint4)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,1,udg_TempReal4)
- -------- Jump Speed --------
- Set TempReal5 = ((TempReal4 / TempReal2) x 0.03)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,2,udg_TempReal5)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,3,0)
- Custom script: if UnitAddAbility(udg_TempUnit2,'Amrf') then
- Custom script: call UnitRemoveAbility(udg_TempUnit2,'Amrf')
- Custom script: endif
- Unit - Turn collision for TempUnit2 Off
- Unit Group - Add TempUnit2 to LeapGroup
- Trigger - Turn on Leap Periodic <gen>
- Custom script: call RemoveLocation(udg_TempPoint3)
- Custom script: call RemoveLocation(udg_TempPoint4)
- Custom script: call RemoveLocation(udg_TempPoint1)
- Custom script: call RemoveLocation(udg_TempPoint2)
- Else - Actions
- Unit - Kill TempUnit1
- Unit Group - Remove TempUnit1 from ATGroup
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (ATGroup is empty) Equal to True
- Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
- Leap Periodic
- Events
- Time - Every 0.03 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in LeapGroup and do (Actions)
- Loop - Actions
- Set TempUnit1 = (Picked unit)
- Custom script: set udg_TempInteger1 = GetHandleId(udg_TempUnit1)
- -------- Jump Height --------
- Custom script: set udg_TempReal1 = LoadReal(udg_ATHash,udg_TempInteger1,0)
- -------- Distance --------
- Custom script: set udg_TempReal2 = LoadReal(udg_ATHash,udg_TempInteger1,1)
- -------- Velocity --------
- Custom script: set udg_TempReal3 = LoadReal(udg_ATHash,udg_TempInteger1,2)
- -------- Distance Covered --------
- Custom script: set udg_TempReal4 = LoadReal(udg_ATHash,udg_TempInteger1,3)
- -------- Angel --------
- Custom script: set udg_TempReal5 = LoadReal(udg_ATHash,udg_TempInteger1,4)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TempReal4 Less than TempReal2
- Then - Actions
- Set TempReal4 = (TempReal4 + TempReal3)
- Custom script: call SaveReal(udg_ATHash,udg_TempInteger1,3,udg_TempReal4)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (TempPoint1 offset by TempReal3 towards TempReal5 degrees)
- Unit - Move TempUnit1 instantly to TempPoint2
- Custom script: call RemoveLocation(udg_TempPoint1)
- Custom script: call RemoveLocation(udg_TempPoint2)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (TempReal2 x 0.50) Less than or equal to TempReal4
- Then - Actions
- Set TempReal1 = (TempReal1 x -1.00)
- Else - Actions
- Animation - Change TempUnit1 flying height to ((Current flying height of TempUnit1) + TempReal1) at 0.00
- Else - Actions
- Animation - Change TempUnit1 flying height to (Default flying height of TempUnit1) at 0.00
- Unit Group - Remove TempUnit1 from LeapGroup
- Special Effect - Create a special effect attached to the origin of TempUnit1 using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
- Special Effect - Destroy (Last created special effect)
- Unit - Turn collision for TempUnit1 On
- Hashtable - Clear all child hashtables of child TempInteger1 in ATHash
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (LeapGroup is empty) Equal to True
- Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
Requested by thegreatninjaman in my spell workshopTooltip
Attachments
Last edited: