Hello! this is a spell that contain 2 spells made by me. This is my first spell pack ever.
I want to know what I did wrong , what I did good , what should I change , I tried to make them MUI but i think they aren't ^^ if they aren't, why? Im kinda noob , I wanted to put my code , but I don't know how ^^ and i don't even know if i can modify this description after.
Fire Cube:
level 1: Create a fire cube , after 5 seconds , it create a big explosion in the middle of the cube to do 10 x strengh
level 2: Create a fire cube , after 4 seconds , it create a big explosion in the middle of the cube to do 15 x strengh
level 3: Create a fire cube , after 3 seconds , it create a big explosion in the middle of the cube to do 20 x strengh
Trigger:
-
FC init
-
Events
-
Unit - A unit Starts the effect of an ability
-
Conditions
-
(Ability being cast) Equal to Fire Cube
-
Actions
-
Set FCNumberOfRadius = 12
-
Set FCRadiusLength = 400
-
Set FCPolygonSides = 4
-
Set FCTargetPoint = (Target point of ability being cast)
-
Set FCTempPoint[1] = (Target point of ability being cast)
-
Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 225.00 degrees)
-
Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 315.00 degrees)
-
Set FCTempPoint[5] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 225.00 degrees)
-
Set FCTempPoint[6] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 315.00 degrees)
-
Set FCTempPoint[7] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 45.00 degrees)
-
Set FCTempPoint[8] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 135.00 degrees)
-
Set FCNumberOfPoint = (Integer(((Distance between FCTempPoint[2] and FCTempPoint[3]) / 40.00)))
-
Set FCCaster = (Triggering unit)
-
If ((Level of Fire Cube for FCCaster) Equal to 1) then do (Set FCDamage = (10.00 x (Real((Strength of FCCaster (Include bonuses)))))) else do (Set FCExpTime = 5.00)
-
If ((Level of Fire Cube for FCCaster) Equal to 2) then do (Set FCDamage = (15.00 x (Real((Strength of FCCaster (Include bonuses)))))) else do (Set FCExpTime = 4.00)
-
If ((Level of Fire Cube for FCCaster) Equal to 3) then do (Set FCDamage = (20.00 x (Real((Strength of FCCaster (Include bonuses)))))) else do (Set FCExpTime = 3.00)
-
For each (Integer B) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[5] facing FCTargetPoint
-
Set FCDummy[9] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[9]
-
Animation - Change FCDummy[9] flying height to (Real((60 x (Integer B)))) at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[9])
-
For each (Integer B) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[6] facing FCTargetPoint
-
Set FCDummy[10] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[10]
-
Animation - Change FCDummy[10] flying height to (Real((60 x (Integer B)))) at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[10])
-
For each (Integer B) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[7] facing FCTargetPoint
-
Set FCDummy[11] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[11]
-
Animation - Change FCDummy[11] flying height to (Real((60 x (Integer B)))) at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[11])
-
For each (Integer B) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[8] facing FCTargetPoint
-
Set FCDummy[12] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[12]
-
Animation - Change FCDummy[12] flying height to (Real((60 x (Integer B)))) at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[12])
-
For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-
Loop - Actions
-
Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[1] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[1]
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[5] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[5]
-
Animation - Change FCDummy[5] flying height to 600.00 at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[4])
-
Custom script: call RemoveLocation(udg_FCTempPoint[2])
-
Custom script: call RemoveLocation(udg_FCTempPoint[3])
-
Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 315.00 degrees)
-
Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 45.00 degrees)
-
For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-
Loop - Actions
-
Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[2] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[2]
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[6] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[6]
-
Animation - Change FCDummy[6] flying height to 600.00 at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[4])
-
Custom script: call RemoveLocation(udg_FCTempPoint[2])
-
Custom script: call RemoveLocation(udg_FCTempPoint[3])
-
Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 45.00 degrees)
-
Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 135.00 degrees)
-
For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-
Loop - Actions
-
Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[3] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[3]
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[7] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[7]
-
Animation - Change FCDummy[7] flying height to 600.00 at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[4])
-
Custom script: call RemoveLocation(udg_FCTempPoint[2])
-
Custom script: call RemoveLocation(udg_FCTempPoint[3])
-
Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 135.00 degrees)
-
Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 225.00 degrees)
-
For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-
Loop - Actions
-
Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[4] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[4]
-
Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-
Set FCDummy[8] = (Last created unit)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[8]
-
Animation - Change FCDummy[8] flying height to 600.00 at 0.00
-
Custom script: call RemoveLocation(udg_FCTempPoint[4])
-
Unit - Create 1 Fire Cube Dummy [DamageLoc] for (Owner of FCCaster) at FCTargetPoint facing FCTargetPoint
-
Set FCDummy[14] = (Last created unit)
-
Trigger - Add to FC death <gen> the event (Unit - FCDummy[14] Dies)
-
Unit - Add a FCExpTime second Generic expiration timer to FCDummy[14]
-
Custom script: call RemoveLocation(udg_FCTempPoint[2])
-
Custom script: call RemoveLocation(udg_FCTempPoint[3])
-
Custom script: call RemoveLocation(udg_FCTargetPoint)
-
FC death
-
Events
-
Conditions
-
Actions
-
Set FCDummy[15] = (Dying unit)
-
Set FCTempPoint[1] = (Position of FCDummy[15])
-
For each (Integer A) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit - Create 1 Fire Cube Dummy [Damage] for (Owner of FCCaster) at FCTempPoint[1] facing FCTempPoint[1]
-
Unit - Add a 1.00 second Generic expiration timer to FCDummy[13]
-
Set FCDummy[13] = (Last created unit)
-
Animation - Change FCDummy[13] flying height to (Real((120 x (Integer A)))) at 0.00
-
Set FCGroup = (Units within 300.00 of FCTempPoint[1] matching ((((Picked unit) is A structure) Not equal to True) and ((((Picked unit) is Magic Immune) Not equal to True) and (((Picked unit) belongs to an enemy of (Owner of FCCaster)) Equal to True))))
-
Unit Group - Pick every unit in FCGroup and do (Actions)
-
Loop - Actions
-
Set FCTarget = (Picked unit)
-
Unit - Cause FCCaster to damage FCTarget, dealing FCDamage damage of attack type Spells and damage type Normal
-
Custom script: call DestroyGroup(udg_FCGroup)
-
Custom script: call RemoveLocation(udg_FCTempPoint[1])
Ifrit's Power:
Level 1: Call Ifrit's power to create an explosion at the target point that do 150 damage
Level 2: Call Ifrit's power to create an explosion at the target point that do 300 damage
Level 3: Call Ifrit's power to create an explosion at the target point that do 450 damage
Trigger:
-
IP Init
-
Events
-
Unit - A unit Starts the effect of an ability
-
Conditions
-
(Ability being cast) Equal to Ifrit's Power
-
Actions
-
Set IPCaster = (Triggering unit)
-
Set IPCasterPoint = (Position of IPCaster)
-
If ((Level of Ifrit's Power for IPCaster) Equal to 1) then do (Set IPDamage = 150.00) else do (Do nothing)
-
If ((Level of Ifrit's Power for IPCaster) Equal to 2) then do (Set IPDamage = 300.00) else do (Do nothing)
-
If ((Level of Ifrit's Power for IPCaster) Equal to 3) then do (Set IPDamage = 450.00) else do (Do nothing)
-
Set IPTargetPoint = (Target point of ability being cast)
-
Unit - Create 1 Ifrit's Power Dummy [Spiral] for (Owner of IPCaster) at (IPCasterPoint offset by 200.00 towards 0.00 degrees) facing IPCasterPoint
-
Set IPDummy[1] = (Last created unit)
-
Unit - Add a 3.00 second Generic expiration timer to IPDummy[1]
-
Set IPSpiral = 0.00
-
Set IPFlyingHeight = 0.00
-
Custom script: call RemoveLocation(udg_IPCasterPoint)
-
IP Spiral Flying
-
Events
-
Time - Every 0.03 seconds of game time
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Unit-type of IPDummy[1]) Equal to Ifrit's Power Dummy [Spiral]
-
Then - Actions
-
Set IPCasterPoint = (Position of IPCaster)
-
Unit - Move IPDummy[1] instantly to (IPCasterPoint offset by 200.00 towards IPSpiral degrees)
-
Animation - Change IPDummy[1] flying height to IPFlyingHeight at 0.00
-
Set IPSpiral = (IPSpiral + 9.00)
-
Set IPFlyingHeight = ((Current flying height of IPDummy[1]) + 9.00)
-
Custom script: call RemoveLocation(udg_IPCasterPoint)
-
Else - Actions
-
IP Damage
-
Events
-
Conditions
-
(Unit-type of (Triggering unit)) Equal to Ifrit's Power Dummy [Spiral]
-
Actions
-
Unit - Create 1 Ifrit's Power Dummy [Damage] for (Owner of IPCaster) at IPTargetPoint facing IPTargetPoint
-
Set IPDummy[2] = (Last created unit)
-
Unit - Add a 0.40 second Generic expiration timer to IPDummy[2]
-
Custom script: call RemoveLocation(udg_IPCasterPoint)
-
Custom script: call DestroyGroup(udg_IPGroup)
-
IP Damage Timing
-
Events
-
Conditions
-
(Unit-type of (Triggering unit)) Equal to Ifrit's Power Dummy [Damage]
-
Actions
-
Set IPGroup = (Units within 300.00 of IPTargetPoint matching ((((Picked unit) is A structure) Not equal to True) and ((((Picked unit) is Magic Immune) Not equal to True) and (((Picked unit) belongs to an enemy of (Owner of IPCaster)) Equal to True))))
-
Unit Group - Pick every unit in IPGroup and do (Actions)
-
Loop - Actions
-
Unit - Cause IPCaster to damage IPTarget, dealing IPDamage damage of attack type Spells and damage type Normal
-
Set IPTarget = (Picked unit)
-
Custom script: call RemoveLocation(udg_IPTargetPoint)
Changelog:
-1.00v: upload the spells
-1.01v: Add Codes, modified Ifrit's power to timing damage
-1.02v: Fire cube is now MUI , bah I think.
Keywords:
Fire, Ifrit, Cube, Fire cube, Power, Santa.