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

Earth Slice v1.0

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
You need to test this spell to see its full look, cuz i cant show it with only one screen shot, has few details. It's an earth based spell, Stomp's the ground to make an wawe, when the wawe reaches its target then it blowns it in the air and stuns for 3 seconds.

Keywords:
Earth, Slice, Wawe, Earth Slice, Nature, Destruction
Contents

Just another Warcraft III map (Map)

Reviews
12.12 IcemanBo: For long time as NeedsFix. Rejected. Bribe - Leaks - Not Mui - Needs fix

Moderator

M

Moderator

12.12
IcemanBo: For long time as NeedsFix. Rejected.

Bribe

- Leaks
- Not Mui
- Needs fix
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
You filled this map with quite a large ammount of sh*t.
Well the spell itself:
Casting
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Earth Slice
Actions
Set Target2 = (Target unit of ability being cast)
Set Caster2 = (Triggering unit)
Set Location2 = (Position of Caster2)
Trigger - Turn on Target <gen>
Wait 0.04 seconds
Trigger - Turn off Target <gen>

Target
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
Environment - Create a 0.50 second wave deformation from (Position of Caster2) to (Position of Target2) with radius 256.00, depth 100.00, and a 0.00 second trailing delay
Special Effect - Create a special effect at (Position of Caster2) using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Add Jump Animation to Target2
Unit - Remove Jump Animation from Target2
Unit - Turn collision for Target2 Off
Unit - Pause Target2
Animation - Change Target2 flying height to 500.00 at 500.00
Wait 0.90 seconds
Animation - Change Target2 flying height to 0.00 at 1000.00
Wait 0.90 seconds
Unit - Turn collision for Target2 On
Unit - Unpause Target2


Vote for Rejection

Not MUI neither MPI.
Uses Waits.
Leaks like hell.
No configurables.
For jump spell use Crow Form instead of a custom ability.
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
Waits are mui but the way people use them it usually isn't so don't blame waits.. blame people.

Oh, you again?...
You're wrong, if you use wait in a spell you ruin the whole trigger because no matter how small value you give then minimal wait time will always be 0.27. But well, what if there can be a minimal 0.01 sec wait? If you have an ability for a simple unit example Archer and you group-select them and cast the spell there will be only one unit who cast the spell normally, the others will have problems.

But if you can't accept it just check what MUI means. More than one unit can cast the spell AT THE SAME TIME.
 
Level 4
Joined
Jan 20, 2009
Messages
36
You filled this map with quite a large ammount of sh*t.
Well the spell itself:
Casting
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Earth Slice
Actions
Set Target2 = (Target unit of ability being cast)
Set Caster2 = (Triggering unit)
Set Location2 = (Position of Caster2)
Trigger - Turn on Target <gen>
Wait 0.04 seconds
Trigger - Turn off Target <gen>

Target
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
Environment - Create a 0.50 second wave deformation from (Position of Caster2) to (Position of Target2) with radius 256.00, depth 100.00, and a 0.00 second trailing delay
Special Effect - Create a special effect at (Position of Caster2) using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Unit - Add Jump Animation to Target2
Unit - Remove Jump Animation from Target2
Unit - Turn collision for Target2 Off
Unit - Pause Target2
Animation - Change Target2 flying height to 500.00 at 500.00
Wait 0.90 seconds
Animation - Change Target2 flying height to 0.00 at 1000.00
Wait 0.90 seconds
Unit - Turn collision for Target2 On
Unit - Unpause Target2


Vote for Rejection

Not MUI neither MPI.
Uses Waits.
Leaks like hell.
No configurables.
For jump spell use Crow Form instead of a custom ability.

Where does it leak, as i know its leakless, only if the target is near the wall, and the wall will stop it.Btw with what should i replace wait then.
 
Last edited:
Level 4
Joined
Jan 20, 2009
Messages
36
Well you know it wrong....
  • Environment - .... (Position of Caster2) to (Position of Target2) ...
  • Special Effect - ..... (Position of Caster2) ....
I counted 3.... but it's no matter until you have these goddamn waits.

So what do u propose i should do. To make it as i imagine it without those waits.Cuz if i remove them, the spell doesnt look like it should, it just makes tunder beneath the target.
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
So what do u propose i should do. To make it as i imagine it without those waits.Cuz if i remove them, the spell doesnt look like it should, it just makes tunder beneath the target.

Use an indexing system template that you can find at the spells section or use the one I made

first set the maximum array value, try to set it to a proper value under 10.
  • Init
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ability
    • Actions
      • Set Get = False
      • For each (Integer A) from 1 to Max, do (Actions) [loop till the maximum size given in an init trigger]
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Get Equal to False
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Recycle[(Integer A)] Equal to True [checks if the integer A slot is free]
                • Then - Actions
                  • Set Index = (Integer A)
                  • Set Get= True [with this the trigger only choose the first free slot]
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Integer A) Equal to Max
                    • Then - Actions
                      • Set Max = (Max + 1) [if the current size is not enought it increases it]
                      • Set Recycle[Max] = True
                    • Else - Actions
            • Else - Actions
      • Set Caster[Index] = (Triggering unit)
      • Set Timer[Index] = (2.00 + (Real((Level of Ability for Caster[Index]))))
      • Set Etc.... [other things you want to store example locations or damage]
      • Set Has[Index] = True [this will check if the trigger still have to run for that unit]
      • Set Count = (Count + 1) [counts the number of units casted the spell]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Loop <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Loop <gen>
        • Else - Actions
  • Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Integer) from 1 to Max, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Has[Integer] Equal to True
            • Then - Actions
              • [Things you want to do]
            • Else - Actions
              • [Clean leaks and others]
              • Set Has[Index] = False
              • Set Count = (Count - 1)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Count Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
For the leaks just set the locations to variables:
  • Set TempPoint1 = Position of Target
Then destroy it after you don't need it anymore:
  • Custom Script: call RemoveLocation(udg_TempPoint1)
You have to set the locations everytime like this:
  • Set TempPoint2 = TempPoint1 offset by XYZ angle XYZ
and you have to destroy these everytime you don't need it for the current instance.
 
Level 4
Joined
Jan 20, 2009
Messages
36
Use an indexing system template that you can find at the spells section or use the one I made

first set the maximum array value, try to set it to a proper value under 10.
  • Init
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ability
    • Actions
      • Set Get = False
      • For each (Integer A) from 1 to Max, do (Actions) [loop till the maximum size given in an init trigger]
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Get Equal to False
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Recycle[(Integer A)] Equal to True [checks if the integer A slot is free]
                • Then - Actions
                  • Set Index = (Integer A)
                  • Set Get= True [with this the trigger only choose the first free slot]
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Integer A) Equal to Max
                    • Then - Actions
                      • Set Max = (Max + 1) [if the current size is not enought it increases it]
                      • Set Recycle[Max] = True
                    • Else - Actions
            • Else - Actions
      • Set Caster[Index] = (Triggering unit)
      • Set Timer[Index] = (2.00 + (Real((Level of Ability for Caster[Index]))))
      • Set Etc.... [other things you want to store example locations or damage]
      • Set Has[Index] = True [this will check if the trigger still have to run for that unit]
      • Set Count = (Count + 1) [counts the number of units casted the spell]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Loop <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Loop <gen>
        • Else - Actions
  • Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Integer) from 1 to Max, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Has[Integer] Equal to True
            • Then - Actions
              • [Things you want to do]
            • Else - Actions
              • [Clean leaks and others]
              • Set Has[Index] = False
              • Set Count = (Count - 1)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Count Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
For the leaks just set the locations to variables:
  • Set TempPoint1 = Position of Target
Then destroy it after you don't need it anymore:
  • Custom Script: call RemoveLocation(udg_TempPoint1)
You have to set the locations everytime like this:
  • Set TempPoint2 = TempPoint1 offset by XYZ angle XYZ
and you have to destroy these everytime you don't need it for the current instance.

hmm... That's too complex to me, cuz im new at spell making, u can fix it if u want and i will give u credit.
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
I don't want to repair someone else's spell. I just make spells if I have a very original idea or I got a request.

Just tell me what is complex for you, if you want I can add more comments to the sys. Also there are 2 (or more) indexing template at the spells section with example spells.
 
not really, there are MUI spells with waits...

for GUI
  • Events
    • Unit - A unit starts the effect of an ability
  • Conditions
    • Ability being cast blahblah
  • Actions
    • Wait - 5 seconds
    • Unit - Kill (TriggeringUnit)
or in JASS (another example)
JASS:
function test takes nothing returns nothing
            local unit Target = GetSpellTargetUnit()
            call TriggerSleepAction(10.00)
            call UnitDamageTarget(blahblah)
endfunction

it was just a mere representation of a MUI wait, BUT REMEMBER THAT WAIT USAGE IS HIGHLY UNRECOMMENDED...
 
Top