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

Fire And Ice Synergie v1.03

  • Like
Reactions: Oljin and xIceShotx
Hi , this is a spell that I've made. This is MUI and MPI (well I hope).
~Fire And Ice Synergie~
The wizard use his power to send 6 fire ray in 6 different direction and 6 ice ray in 6 different direction to , those two ray move around the caster . the fire ray move in a way and the ice one go in the oposite path, get hit by the ray will result by loosing life very fast (0.06 seconds) in an Aoe of 500.
Level 1: 1 damage.
Level 2: 2 damage.
Level 3: 3 damage.


There's the triggers:

  • Fire And Ice Synergie Init
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire And Ice Synergie
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- I Hope you enjoy my spell. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Those Comments are here to explain a bit to noob(or maybe pro) what those actions is suppose to do, --------
      • -------- Well, I hope it helped, PS: Sorry if my english is bad... --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- If you want to change the models of the ray, you'll need to go change that at object editor. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Those Three next actions are required for MUI --------
      • -------- MUI is the capacity of multiple unit to cast it in same time whitout problem. --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FIIndex[2] Equal to 0
        • Then - Actions
          • Trigger - Turn on Fire And Ice Synergie Periodic <gen>
        • Else - Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Yes, those two FIIndex are sames but it still require both for MUI --------
      • -------- it seems useless to make two time the same thing but in reality it's very important because later an actions will substract one to the variable --------
      • -------- So... I don't want the variable which i substract to overwrite the on currently used and make it bug.... --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Set FIIndex[1] = (FIIndex[1] + 1)
      • Set FIIndex[2] = (FIIndex[2] + 1)
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Here We set some variables. --------
      • -------- The Player variable is important for MPI --------
      • -------- MPI is the capacity to multiple players can cast the spell whitout problem --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Set FICaster[FIIndex[1]] = (Triggering unit)
      • Set FICasterPoint[FIIndex[1]] = (Position of FICaster[FIIndex[1]])
      • Set FIPlayer[FIIndex[1]] = (Owner of FICaster[FIIndex[1]])
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- This Integer variable is required to reduce lag --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Set FILagReducer[FIIndex[1]] = 0
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Here We put the caster into a group, a part of MUI --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Unit Group - Add FICaster[FIIndex[1]] to FICasterGroup[FIIndex[1]]
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Now we create an Invisible unit which will stop the spell when he die. If you want to make the spell stay longer change the "7.00". --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Unit - Create 1 Fire and Ice Synergie[Invis] for FIPlayer[FIIndex[1]] at FICasterPoint[FIIndex[1]] facing FICasterPoint[FIIndex[1]]
      • Set FIInvisDummy[FIIndex[1]] = (Last created unit)
      • Unit - Add a 7.00 second Generic expiration timer to FIInvisDummy[FIIndex[1]]
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Clearing Leaks , VERY IMPORTANT! --------
      • -------- It's important to clear leaks because if you don't it will cause lag and some others unwanted things --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation(udg_FICasterPoint[udg_FIIndex[1]])
  • Fire And Ice Synergie Periodic
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- To make all those actions into a loop will make this MUI --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • For each (Integer FI) from 1 to FIIndex[1], do (Actions)
        • Loop - Actions
          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- Now we pick everyone in caster group. --------
          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • -------- There's the lag reducer goes in action --------
          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FILagReducer[FI] Equal to 1
            • Then - Actions
              • Set FILagReducer[FI] = 0
              • Unit Group - Pick every unit in FICasterGroup[FI] and do (Actions)
                • Loop - Actions
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • -------- Here we set two variables which will require for the two rays. --------
                  • -------- Plus we check if the caster group is empty --------
                  • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                  • Set FICaster[FI] = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (FICasterGroup[FI] is empty) Equal to False
                    • Then - Actions
                      • Set FICasterPoint[FI] = (Position of FICaster[FI])
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • -------- It's in this loop we will create the two rays --------
                      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                      • For each (Integer A) from 1 to 6, do (Actions)
                        • Loop - Actions
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • -------- Here we set somes locations required for the rays. --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • Set FIDummyPoint = (FICasterPoint[FI] offset by 0.00 towards FIAngleIce degrees)
                          • Set FIFireCasterPoint = (FICasterPoint[FI] offset by 50.00 towards FIAngleFire degrees)
                          • Set FIIceCasterPoint = (FICasterPoint[FI] offset by 50.00 towards FIAngleIce degrees)
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • -------- Now we will create two differents caster to cast the spells which will make the ray. --------
                          • -------- Don't reduce the expiration time of the dummy casters or they won't get enough time to cast and don't up their expiration timer or they will stay longer and make it lag. --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • Unit - Create 1 Fire and Ice Synergie[Caster] for FIPlayer[FI] at FIDummyPoint facing FIFireCasterPoint
                          • Set FIFireCaster = (Last created unit)
                          • Unit - Add a 0.40 second Generic expiration timer to FIFireCaster
                          • Unit - Add FaISFire to FIFireCaster
                          • Unit - Set level of FaISFire for FIFireCaster to (Level of Fire And Ice Synergie for FICaster[FI])
                          • Unit - Order FIFireCaster to Undead Dreadlord - Carrion Swarm FIFireCasterPoint
                          • Unit - Create 1 Fire and Ice Synergie[Caster] for FIPlayer[FI] at FIDummyPoint facing FIIceCasterPoint
                          • Set FIIceCaster = (Last created unit)
                          • Unit - Add a 0.40 second Generic expiration timer to FIIceCaster
                          • Unit - Add FaISIce to FIIceCaster
                          • Unit - Set level of FaISIce for FIIceCaster to (Level of Fire And Ice Synergie for FICaster[FI])
                          • Unit - Order FIIceCaster to Undead Dreadlord - Carrion Swarm FIIceCasterPoint
                          • Set FIAngleIce = ((FIAngleIce + 60.00) - 1.00)
                          • Set FIAngleFire = ((FIAngleFire + 60.00) + 1.00)
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • -------- Now we clearing leaks, Again. VERY IMPORTANT! --------
                          • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
                          • Custom script: call RemoveLocation(udg_FIIceCasterPoint)
                          • Custom script: call RemoveLocation(udg_FIFireCasterPoint)
                          • Custom script: call RemoveLocation(udg_FIDummyPoint)
                      • Custom script: call RemoveLocation(udg_FICasterPoint[udg_FI])
                    • Else - Actions
            • Else - Actions
              • Set FILagReducer[FI] = (FILagReducer[FI] + 1)
  • Fire And Ice Synergie End
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Fire and Ice Synergie[Invis]
    • Actions
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- Now we remove the caster from his group --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Unit Group - Remove FICaster[FIIndex[1]] from FICasterGroup[FIIndex[1]]
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- All those actions below are required for MUI and it will recycle the index --------
      • -------- If you don't put those actions it will still be MUI but the index can't go over 8190 so if you cast it to much time it will bug and we don't want that --------
      • -------- ------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • Set FIIndex[2] = (FIIndex[2] - 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FIIndex[2] Equal to 0
        • Then - Actions
          • Set FIIndex[1] = 0
          • Trigger - Turn off Fire And Ice Synergie Periodic <gen>
        • Else - Actions



1.00 : Uploading
1.01 : creating a changelog and put a proper name on dummy
1.02 : Now the periodic trigger is closed when everything is finish
1.03 : Added a system to reduce the lag whitout realy changing the look for the spell (well just a bit)


GIVE CREDITS IF YOU USE OR EDIT THE SPELL.
Note: If you cast this spell multiple time , it could cause lag. Sorry.

Keywords:
Klingo, Ice, Synergie, Fire, Magma, Lava, Hot, Cold, Frozen, Cool, Freeze, Arcane, Mage, Sage, Combo, Ray,
Contents

Fire And Ice Synergie (Map)

Reviews
23:55, 16th Jun 2010 Hanky: There are just two things that I dislike. First of your spell could be really laggy since there are so many effects. The second point I dislike is the indexing system. But apart from that two things the spell is fine...

Moderator

M

Moderator

23:55, 16th Jun 2010
Hanky:
There are just two things that I dislike. First of your spell could be really laggy since there are so many effects. The second point I dislike is the indexing system. But apart from that two things the spell is fine enough. Approved!
 
Level 9
Joined
Jul 9, 2008
Messages
67
from screen looks nice, I found no leaks, enough documentation for noobs like me, but your trigger "End" can be puted in loop trigger by using if/then/else, ofc it's just my opinion =)

Good Work!
EDIT: also you turning on loop, but don't turning off it when it not used.
 
Level 12
Joined
Nov 20, 2007
Messages
660
4/5 - vote for approval
Review
+MUI
+Enchanted description
+Nice visual effects

-I guess you can remove the last trigger (Fire And Ice Synergie End)
-Very laggy when the spell is casted in row
*Notes & Recomandations*
-Remove "If you cast this spell multiple time in a row, it could be laggy. Sorry." from spell description
-Fix the start location (put it in position of hero)
 
Level 7
Joined
Dec 19, 2009
Messages
249
You do the damage with carrion swarm?
Yes because:1- I don't know how to make a constant speed
2- I don't know how to damage the enemy only once whit trigger into periodic trigger

how about if another caster wants to stop it?
I didn't realy understand what you mean there, Do you mean something like immolation?

EDIT: also you turning on loop, but don't turning off it when it not used.
Oops...my bad...

And for finish I'll try to remove the last trigger...


Edit:
-Remove "If you cast this spell multiple time in a row, it could be laggy. Sorry." from spell description
Well , I just want to prevent tester of this
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
  • Unit Group - Remove FICaster[FIIndex[1]] from FICasterGroup[FIIndex[1]]
This line dont work in the end trigger because?

Lets say 5 ppl starts to cast this

1 2 3 4 5

Number 2 ends before the rest so it's

1 3 4 5

your action will instead of removing number 2, remove number 5 as it is the last number in the indexing (Index[1])

just loop it threw instead
 
Level 12
Joined
Nov 20, 2007
Messages
660
Yes because:1- I don't know how to make a constant speed
2- I don't know how to damage the enemy only once whit trigger into periodic trigger


I didn't realy understand what you mean there, Do you mean something like immolation?


Oops...my bad...

And for finish I'll try to remove the last trigger...


Edit:

Well , I just want to prevent tester of this

neah ... let them see the lag :grin:
 
Level 16
Joined
May 1, 2008
Messages
1,605
Seas =)

I think this spell would be cooler if the fire deals [for example] dps and the ice slows the targets down =)

Else the lag is a bad point too, so I think I will give 3,5/5 - if you make some changes with the fire and ice [for example] I would give 4,5/5 [ -0,5 for the lag]

Try something against the lags, + for approval.
 
Level 1
Joined
Apr 12, 2010
Messages
2
Now i'm rather noob to this with editing, but when i try to copy this spell to my own map it isent working, some of the files are " bugged ", i belive its some of the triggers, however the spell work perfectly in the map i did download, why is it bugged, and how can i fix it?
 
Level 1
Joined
Jan 13, 2011
Messages
2
Hm, I have copied all the triggers, variables, units, and the abilities (On a different map)

But when I go in and use it, it only does the initiation part, lasts for only .40 secs (I believe) and after that quick use it doesn't show the graphics after that. I know this is a little bit older spell but If I could get some help, please?
 
Level 4
Joined
Mar 21, 2014
Messages
79
quite a lot of animations, and when i played alone (1 player) with multiple heroes (3 kaelthas) then their spells were linked somehow, so it was not really MUI when i play alone. but i it's different when multiple players cast it, then it works. So it's just "half MUI" for me...

and also i had to increase the trigger periodic time from 0.03 seconds to 0.1 seconds, because it was too laggy on local games (1v1) when creating so many animations within 0.03 seconds.
 
Level 4
Joined
Mar 21, 2014
Messages
79
I rewrote the whole trigger to make it IMO MUI.
I used a more sophisticated indexing system I learned from other spells.

I don't need the caster group now. Also, I can cast it multiple times on the same hero (with reset ability cooldowns i spammed it on a single hero before it turned off) and on many heroes with many spells active (totally spammed it as hard as i could). and it worked out correctly and still worked afterwards.
Here are the triggers:


  • Fire And Ice Synergie Init
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire And Ice Synergie (Kael'Thas, R)
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FIIndex[2] Equal to 0
        • Then - Actions
          • Trigger - Turn on Fire And Ice Synergie Periodic <gen>
        • Else - Actions
      • Set FIIndex[2] = (FIIndex[2] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FIIndex[2] Greater than FIIndex_Max_Size
        • Then - Actions
          • Set FIIndex_Index[FIIndex[2]] = FIIndex[2]
          • Set FIIndex_Max_Size = FIIndex[2]
        • Else - Actions
      • Set FIIndex[1] = FIIndex_Index[FIIndex[2]]
      • Set FICaster[FIIndex[1]] = (Casting unit)
      • Set FICasterPoint[FIIndex[1]] = (Position of FICaster[FIIndex[1]])
      • Set FIPlayer[FIIndex[1]] = (Owner of FICaster[FIIndex[1]])
      • Unit - Create 1 Fire and Ice Synergie[Invis] for FIPlayer[FIIndex[1]] at FICasterPoint[FIIndex[1]] facing FICasterPoint[FIIndex[1]]
      • Set FIInvisDummy[FIIndex[1]] = (Last created unit)
      • Unit - Add a 7.00 second Generic expiration timer to FIInvisDummy[FIIndex[1]]
      • Custom script: call RemoveLocation(udg_FICasterPoint[udg_FIIndex[1]])




  • Fire And Ice Synergie Periodic
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • For each (Integer FI) from 1 to FIIndex[2], do (Actions)
        • Loop - Actions
          • Set FIIndex[1] = FIIndex_Index[FI]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (FIInvisDummy[FIIndex[1]] is alive) Equal to True
            • Then - Actions
              • Set FICasterPoint[FIIndex[1]] = (Position of FICaster[FIIndex[1]])
              • For each (Integer A) from 1 to 6, do (Actions)
                • Loop - Actions
                  • Set FIDummyPoint = (FICasterPoint[FIIndex[1]] offset by 0.00 towards FIAngleIce degrees)
                  • Set FIFireCasterPoint = (FICasterPoint[FIIndex[1]] offset by 50.00 towards FIAngleFire degrees)
                  • Set FIIceCasterPoint = (FICasterPoint[FIIndex[1]] offset by 50.00 towards FIAngleIce degrees)
                  • Unit - Create 1 Fire and Ice Synergie[Caster] for (Owner of FICaster[FIIndex[1]]) at FIDummyPoint facing FIFireCasterPoint
                  • Set FIFireCaster = (Last created unit)
                  • Unit - Add a 0.40 second Generic expiration timer to FIFireCaster
                  • Unit - Add FaISFire to FIFireCaster
                  • Unit - Set level of FaISFire for FIFireCaster to (Level of Fire And Ice Synergie (Kael'Thas, R) for FICaster[FIIndex[1]])
                  • Unit - Order FIFireCaster to Undead Dreadlord - Carrion Swarm FIFireCasterPoint
                  • Unit - Create 1 Fire and Ice Synergie[Caster] for (Owner of FICaster[FIIndex[1]]) at FIDummyPoint facing FIIceCasterPoint
                  • Set FIIceCaster = (Last created unit)
                  • Unit - Add a 0.40 second Generic expiration timer to FIIceCaster
                  • Unit - Add FaISIce to FIIceCaster
                  • Unit - Set level of FaISIce for FIIceCaster to (Level of Fire And Ice Synergie (Kael'Thas, R) for FICaster[FIIndex[1]])
                  • Unit - Order FIIceCaster to Undead Dreadlord - Carrion Swarm FIIceCasterPoint
                  • Set FIAngleIce = ((FIAngleIce + 60.00) - 2.00)
                  • Set FIAngleFire = ((FIAngleFire + 60.00) + 2.00)
                  • Custom script: call RemoveLocation(udg_FIIceCasterPoint)
                  • Custom script: call RemoveLocation(udg_FIFireCasterPoint)
                  • Custom script: call RemoveLocation(udg_FIDummyPoint)
              • Custom script: call RemoveLocation(udg_FICasterPoint[udg_FIIndex[1]])
            • Else - Actions
              • Set FIIndex_Index[FI] = FIIndex_Index[FIIndex[2]]
              • Set FIIndex_Index[FIIndex[2]] = FIIndex[1]
              • Set FIIndex[2] = (FIIndex[2] - 1)
              • Set FI = (FI - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FIIndex[2] Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FIIndex[2] Equal to 0
            • Then - Actions
              • Set FIIndex[1] = 0
              • Trigger - Turn off (This trigger)
            • Else - Actions

 
Last edited:
Top