• 🏆 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!

Santa_Claus, spells(2) 1.02v

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
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
      • Unit - A unit Dies
    • 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
      • Unit - A unit Dies
    • 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.
Contents

Random Spells (Map)

Reviews
10:57, 15th Jun 2010 Hanky: I found some things that have to be improved: - there are some locations leaks, fix them - instead of if-then-else for every ability level use a formula - your spells have to be MUI or at least MPI - add some more...

Moderator

M

Moderator

10:57, 15th Jun 2010
Hanky:
I found some things that have to be improved:
- there are some locations leaks, fix them
- instead of if-then-else for every ability level use a formula
- your spells have to be MUI or at least MPI
- add some more documentation

That's all I found for now. After you have fixed those stuff message me or one of the other spell moderators.
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
Lol :p if you want to modify the the description you need to update the spell..

You first want to put it in a box... so you click on the button that is written
''Wrap
tags around selected text''

To put the codes, you need to click on the little button that is written
''Wrap
  • tags around selected text'' and you copy and paste the codes in... (for GUI)
  • And its not in MUI... i'm a bit too lazy to explain why and how to change things... but u can go on a tut... or u can check other spells people make...
  • Oh and.. the effects are superb dude..
 
Level 15
Joined
Jul 6, 2009
Messages
889
At first, I thought this pack was about Santa Claus, I am now upset it is not :(

Anyways, the effect of that cube is awesome! Good job on that.
The second spell needs a bit more spice. That fire moving upwards needs some more detail and that explosion coming down as well.
 
Top