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

Sand Strike 1.2

  • Like
Reactions: calex3

Description : The Desert Scorpion merges himself with the sand around him and moves toward the targeted point. All units around him are damaged and pushed randomly near him. Damage and Distance slightly improve by level.

Triggers:
Main:
  • Sand Strike
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sand Strike
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SSinteger[0] Equal to 0
        • Then - Actions
          • Trigger - Turn on Sand Strike Loop <gen>
        • Else - Actions
      • Set SSinteger[0] = (SSinteger[0] + 1)
      • Set SSinteger[1] = (SSinteger[1] + 1)
      • Set SScaster[SSinteger[1]] = (Triggering unit)
      • Unit - Turn collision for SScaster[SSinteger[1]] Off
      • Set SSfacing[SSinteger[1]] = (Facing of SScaster[SSinteger[1]])
      • Set SSpointcaster[SSinteger[1]] = (Position of SScaster[SSinteger[1]])
      • Set SSdamage[SSinteger[1]] = (5.00 + (Real((Level of Sand Strike for SScaster[SSinteger[1]]))))
      • Set SStargetpoint[SSinteger[1]] = (Target point of ability being cast)
      • Set SSeffect[SSinteger[1]] = Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
      • Set SS[SSinteger[1]] = ((Level of Sand Strike for SScaster[SSinteger[1]]) + 30)
      • Unit - Pause (Triggering unit)
      • Animation - Play SScaster[SSinteger[1]]'s walk animation
      • Custom script: call RemoveLocation(udg_SSpointcaster[udg_SSinteger[1]])
      • Custom script: call RemoveLocation(udg_SStargetpoint[udg_SSinteger[1]])
Loop:
  • Sand Strike Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer SSinteger[2]) from 1 to SSinteger[1], do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SS[SSinteger[2]] Not equal to 0
            • Then - Actions
              • Set SSpointcaster[SSinteger[2]] = (Position of SScaster[SSinteger[2]])
              • Set SSpointmovecaster[SSinteger[2]] = (SSpointcaster[SSinteger[2]] offset by (Real(SS[SSinteger[2]])) towards SSfacing[SSinteger[2]] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Terrain pathing at SSpointmovecaster[SSinteger[2]] of type Walkability is off) Equal to True
                • Then - Actions
                  • Custom script: call RemoveLocation(udg_SSpointmovecaster[udg_SSinteger[2]])
                  • Set SSpointmovecaster[SSinteger[2]] = (SSpointcaster[SSinteger[2]] offset by (Real(SS[SSinteger[2]])) towards (SSfacing[SSinteger[2]] - 180.00) degrees)
                • Else - Actions
              • Set SSgroup[SSinteger[2]] = (Units within 150.00 of SSpointcaster[SSinteger[2]] matching ((((Matching unit) belongs to an enemy of (Owner of SScaster[SSinteger[2]])) Equal to True) and (((Matching unit) is alive) Equal to True)))
              • Set SS[SSinteger[2]] = (SS[SSinteger[2]] - 1)
              • Unit - Move SScaster[SSinteger[2]] instantly to SSpointmovecaster[SSinteger[2]]
              • Special Effect - Create a special effect at SSpointcaster[SSinteger[2]] using SSeffect[SSinteger[2]]
              • Special Effect - Destroy (Last created special effect)
              • Unit Group - Pick every unit in SSgroup[SSinteger[2]] and do (Actions)
                • Loop - Actions
                  • Set SSpicked[SSinteger[2]] = (Picked unit)
                  • Set SSpointpicked[SSinteger[2]] = (Position of SSpicked[SSinteger[2]])
                  • Set SSpointmovepicked[SSinteger[2]] = (SSpointpicked[SSinteger[2]] offset by (Real(SS[SSinteger[2]])) towards (Facing of SSpicked[SSinteger[2]]) degrees)
                  • Unit - Move SSpicked[SSinteger[2]] instantly to SSpointmovepicked[SSinteger[2]]
                  • Unit - Cause SScaster[SSinteger[2]] to damage SSpicked[SSinteger[2]], dealing SSdamage[SSinteger[2]] damage of attack type Spells and damage type Normal
                  • Special Effect - Create a special effect at SSpointpicked[SSinteger[2]] using SSeffect[SSinteger[2]]
                  • Special Effect - Destroy (Last created special effect)
                  • Set SSpicked[SSinteger[2]] = No unit
                  • Custom script: call RemoveLocation(udg_SSpointpicked[udg_SSinteger[2]])
                  • Custom script: call RemoveLocation(udg_SSpointmovepicked[udg_SSinteger[2]])
              • Custom script: call RemoveLocation(udg_SSpointmovecaster[udg_SSinteger[2]])
              • Custom script: call DestroyGroup(udg_SSgroup[udg_SSinteger[2]])
              • Custom script: call RemoveLocation(udg_SSpointcaster[udg_SSinteger[2]])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SS[SSinteger[2]] Equal to 0
                • Then - Actions
                  • Unit - Turn collision for SScaster[SSinteger[2]] On
                  • Unit - Unpause SScaster[SSinteger[2]]
                  • Set SSinteger[0] = (SSinteger[0] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SSinteger[0] Equal to 0
                    • Then - Actions
                      • Set SSinteger[1] = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
            • Else - Actions


Spell made by ~JMS~
Fully Mui/Mpi

Changelog: made it fully MUI + changed effect + fixed the bug

Keywords:
jms , sand , MUI.
Contents

Sand Strike v 1.0 (Map)

Reviews
12:50, 6th Jan 2010 TriggerHappy: I may have messed up my review, I will review once again soon. The_Reborn_Devil: I get the feeling you haven't fixed anything I've pointed out other than fixing that bug the others talked about. Since I'm...

Moderator

M

Moderator

12:50, 6th Jan 2010
TriggerHappy:

I may have messed up my review, I will review once again soon.

The_Reborn_Devil:
I get the feeling you haven't fixed anything I've pointed out other than fixing that bug the others talked about.
Since I'm feeling really nice I'm going to approve it since there isn't anything really wrong other than the effects (as in what happens with those you hit etc) being a bit lacking.

Status: Approved
Rating: Lacking/Useful
 
Right, I'm gonna be testing this one, Give me a while and I'll edit this post on what i think.

Edit: the coding seems fine, It does appear to be mui/mpi, but to be certain I suggest in the test map you add a second scorpion :p

As simple as spells like these are (there are quite alot of these I've seen) I did manage to find on problem

Bug.jpg


Should be an easy problem to fix, I suggest you make it so when it comes into contact with walls and trees etc. that you stop the scorpion otherwise the affect could be quite bad.

A decent spell, But sadly It isn't soemthing I havn't seen b4.
 

Attachments

  • Bug.jpg
    Bug.jpg
    124.1 KB · Views: 390
Level 19
Joined
Feb 4, 2009
Messages
1,313
Add a description.

agree

and you should also add something to prevent that units can move out of bounds
this spell also isn't MUI (place another caster on your map and cast it towards different directions)
and it will hit structures, flying units and magic immune units
copying dota spells again and again does not make them better either
(this spell is slightly better then others like that but not original anyway)

edit: add a description to the CODE (which variable stands for what etc...)
 
Level 17
Joined
Mar 2, 2009
Messages
332
Bugged....still possible to fix....just make caster to go back when it is going to unwalkable terrain......
Something like knockback....you need to check next point is it walkable and then move caster back by one instance you shoulded move him foward...
And about making it MUI you need to add condition to Loop trigger....condition: If SS[SSinteger[2]] Not Equal to 0
 

jms

jms

Level 5
Joined
Aug 16, 2009
Messages
71
calex3 said:
Bugged....still possible to fix....just make caster to go back when it is going to unwalkable terrain......
i will fix it.. but is it going to be approved ?

@D4RK G4ND4LF
this is nothing like dota's spell !! :S
and i will add some description...

Edit: @ calex3 i will fix this too
 
Level 7
Joined
Nov 6, 2009
Messages
279
As D4RK_G4NDALF said this is not mpi/mui (that means its not likely to be approved). Also dont use DISBTN as research button and set its path to ReplaceableTextures\Commandbuttonsdisabled\DISBTNSandStorm.blp. I hate that green thing, dont u?

EDIT: Add a hashtable to make it MUI.
 
Level 17
Joined
Mar 2, 2009
Messages
332
If you maybe don't understand here is fixed one...
EDIT: Add a hashtable to make it MUI.
No need for them...they are for advanced triggering problems...this is just another simple spell ..

The important thing is to understand what is indexing systems and every spell you make will be MUI if you know what you are doing..
 

Attachments

  • Desert Scorpion.w3x
    32.8 KB · Views: 116
Level 17
Joined
Mar 2, 2009
Messages
332
This is recycling system so when no spells are active, when integer(0) is equal to 0 integer(1) will be set to 0 too so everything is set back to 0 and there is no such thing as bad indexing system which goes to 8000 with index..
 
Level 17
Joined
Mar 2, 2009
Messages
332
yes only thing remove that pause and animation in first trigger....walk animation will not appear anyways....so it is useless......
it will be approved... moderators will give you at least 2/5 trust me...
Nahh maybe it won't because you used imported files...but I think that TriggerHappy will bypass that minor thing..
 

jms

jms

Level 5
Joined
Aug 16, 2009
Messages
71
@calex3
Ok thank you ;D
@~Mortar
I will change the sfx model
@both of you
I never ment to upload this spell.I was making a "Desert Scorpion spell pack" but then I got bored and uploaded this single spell instead...
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
Doesn't use recycling indexes.

FOR THE LAST TIME:

If it resets the index when there are no running spells it ISN'T recycling!

If it recycles indexes while other spells are running that IS recycling.

Sorry to use caps but people are proclaiming a lot of systems recycling these days >.>
 
Level 17
Joined
Mar 2, 2009
Messages
332
Doesn't use recycling indexes.

FOR THE LAST TIME:

If it resets the index when there are no running spells it ISN'T recycling!

If it recycles indexes while other spells are running that IS recycling.

Sorry to use caps but people are proclaiming a lot of systems recycling these days >.>
I remember you told me that lame indexes won't be allowed.....and that this one is allowed???
 
Right, I'm gonna be testing this one, Give me a while and I'll edit this post on what i think.

Edit: the coding seems fine, It does appear to be mui/mpi, but to be certain I suggest in the test map you add a second scorpion :p

As simple as spells like these are (there are quite alot of these I've seen) I did manage to find on problem

Bug.jpg


Should be an easy problem to fix, I suggest you make it so when it comes into contact with walls and trees etc. that you stop the scorpion otherwise the affect could be quite bad.

A decent spell, But sadly It isn't soemthing I havn't seen b4.


you can fix this if you add an if befor moving the unit.
if then else
conditions
Playable map arena contains "new move point" equal to true
then
move unit to "new move point"
endif
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
Doesn't use recycling indexes.

FOR THE LAST TIME:

If it resets the index when there are no running spells it ISN'T recycling!

If it recycles indexes while other spells are running that IS recycling.

Sorry to use caps but people are proclaiming a lot of systems recycling these days >.>

I do not get your point, what do you call the first one then? Dynamic index system? :p

Well kingz is right about that one cause the word recycling is about the spell recycles when the spell ends "like hankys template"

dunno what you should call dynamic indexing/paladons indexing system for ;)
 
This isn't a recycling index system.

To quote DSG:


So this is a system with restricted index range, it isn't a system with dynamic indexes and recycling.

i don't understand...
  • Set SSinteger[0] = (SSinteger[0] - 1)
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • SSinteger[0] Equal to 0
  • Then - Actions
    • Set SSinteger[1] = 0
    • Trigger - Turn off (This trigger)
does this not recycling?
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
Example of his indexing.

6 spells are running

1 2 3 4 5 6

Next spell cast:

1 2 3 4 5 6 7

A spell finishes:

1 2 3 4 5 6 7

A new spell is cast:

1 2 3 4 5 6 7 8

All spell finishes:

0

Dynamic indexing example:

1 2 3 4 5 6

A new spell:

1 2 3 4 5 6 7

A spell number 2 finishes:

1 X 3 4 5 6 7

A spell number 5 finishes:

1 X 3 4 X 6 7

A new spell is cast:

1 2 3 4 X 6 7

Spell number 7 finishes:

1 2 3 4 X 6

And so on...
 
Level 17
Joined
Mar 2, 2009
Messages
332
Is this even possible to be done...??
you can fix this if you add an if befor moving the unit.
if then else
conditions
Playable map arena contains "new move point" equal to true
then
move unit to "new move point"
endif
there is no such thing as playable map area contains point.....as I know...
there is playable map area contains unit...you can create dummy at next point and check is it inside map.... :)
anyways if you use this then you can stuck at hill.....and it think if you have no mana you will need to wait for a while...
 
Level 17
Joined
Mar 2, 2009
Messages
332
can he at least add condition I told him before and his spell will be approved....[condition which makes it MUI(SS[SSinteger[2] not equal to 0]) under the for each integer line in Loop trigger]
I think he only wants that...
I wanted my first spell to be approved so badly... :)
 
Level 17
Joined
Mar 2, 2009
Messages
332
Triggering is fine but still he forgot to put condition I told before.......
SS[SSinteger[2] not equal to 0 under first line in Loop trigger...Now it isn't MUI and it has bugs....told before too.....
omg can't he just do this little thing to get it approved???
 
Top