Spell Bloody Spear

BRUTAL

I'm working
Reaction score
118
Bloody Spear
bloodyspearyv5.jpg


Import Difficulty: Medium

Allowed Targets: Enemy ground units

Leakless?: not 100% sure

GUI/JASS?: GUI

Lagless?: just a little at the first cast for me

MUI?: ya

Spell Description: Sending out a rope dart, it impales itself into the victim's chest, allowing Scorpion to pull the victim through the air toward him, stunning the victim, for free hits, as well as cause damage.
Level 1 - (100 + str * 2
Level 2 - (200 + str * 2)
Level 3 - (300 + str * 2)
Level 4 - (400 + str * 2)

24464929cc1.jpg


70496560yi9.jpg


24226388xm6.jpg


Triggers below:

Code:
One
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Bloody Spear 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                CV Less than 1000
            Then - Actions
                Set CV = (CV + 1)
            Else - Actions
                Set CV = 1
        Set BloodySpearDamage[CV] = 0
        Set BloodySpearDamageCheck[CV] = 0
        Set BloodySpearPullBack[CV] = False
        Set BloodySpearBoolean[CV] = False
        Set BloodySpearMaxTime[CV] = 0.00
        Set BloodySpearPullTimer[CV] = 0.00
        Set BloodySpearInteger[CV] = 0
        Set BloodySpearCaster[CV] = (Casting unit)
        Set BloodySpearCasterPos[CV] = (Position of BloodySpearCaster[CV])
        Set BloodySpearTarget[CV] = (Target unit of ability being cast)
        Set BloodySpearTargetPos[CV] = (Position of BloodySpearTarget[CV])
        Unit - Pause BloodySpearCaster[CV]
        Set BloodySpearAngle[CV] = (Angle from BloodySpearCasterPos[CV] to BloodySpearTargetPos[CV])
        Unit - Make BloodySpearCaster[CV] face BloodySpearAngle[CV] over 0.00 seconds
        Set BloodySpearCasterFace[CV] = (Facing of BloodySpearCaster[CV])
        Unit - Create 1 Dummy for (Owner of BloodySpearCaster[CV]) at BloodySpearCasterPos[CV] facing Default building facing degrees
        Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
        Unit - Set the custom value of (Last created unit) to CV
        Set BloodySpearDummy[CV] = (Last created unit)
        Unit Group - Add (Last created unit) to BloodySpearUg
Code:
Two
    Events
        Time - Every 0.04 seconds of game time
    Conditions
        (Number of units in BloodySpearUg) Greater than 0
    Actions
        Unit Group - Pick every unit in BloodySpearUg and do (Actions)
            Loop - Actions
                Set TempInt = (Custom value of (Picked unit))
                Set BloodySpearMaxTime[TempInt] = (BloodySpearMaxTime[TempInt] + 0.04)
                Set BloodySpearInteger[TempInt] = (BloodySpearInteger[TempInt] + 1)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        BloodySpearInteger[TempInt] Equal to 1
                    Then - Actions
                        Set BloodySpearTp[TempInt] = (BloodySpearCasterPos[TempInt] offset by 40.00 towards BloodySpearAngle[TempInt] degrees)
                        Unit - Create 1 Spear for (Owner of BloodySpearCaster[TempInt]) at BloodySpearTp[TempInt] facing BloodySpearAngle[TempInt] degrees
                        Custom script:   call RemoveLocation (udg_BloodySpearTp[udg_TempInt])
                        Unit Group - Add (Last created unit) to BloodySpearUgSpear[TempInt]
                        Set BloodySpearBoolean[TempInt] = True
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                BloodySpearBoolean[TempInt] Equal to True
                            Then - Actions
                                Set BloodySpearTp[TempInt] = (BloodySpearCasterPos[TempInt] offset by 40.00 towards BloodySpearAngle[TempInt] degrees)
                                Unit - Create 1 Rope for (Owner of BloodySpearCaster[TempInt]) at BloodySpearTp[TempInt] facing BloodySpearAngle[TempInt] degrees
                                Custom script:   call RemoveLocation (udg_BloodySpearTp[udg_TempInt])
                                Unit Group - Add (Last created unit) to BloodySpearUgRope[TempInt]
                            Else - Actions
Code:
Three
    Events
        Time - Every 0.02 seconds of game time
    Conditions
        (Number of units in BloodySpearUg) Greater than 0
    Actions
        Unit Group - Pick every unit in BloodySpearUg and do (Actions)
            Loop - Actions
                Set TempInt = (Custom value of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        BloodySpearPullBack[TempInt] Equal to True
                    Then - Actions
                        Set BloodySpearBoolean[TempInt] = False
                        Unit Group - Pick every unit in BloodySpearUgSpear[TempInt] and do (Actions)
                            Loop - Actions
                                Set BloodySpearCasterPos2[TempInt] = (Position of BloodySpearCaster[TempInt])
                                Set BloodySpearSpearPos[TempInt] = (Position of (Picked unit))
                                Set BloodySpearTp[TempInt] = (BloodySpearSpearPos[TempInt] offset by 20.00 towards (BloodySpearAngle[TempInt] + 180.00) degrees)
                                Unit - Move (Picked unit) instantly to BloodySpearTp[TempInt], facing BloodySpearAngle[TempInt] degrees
                                Set BloodySpearPullTimer[TempInt] = (BloodySpearPullTimer[TempInt] + 0.02)
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        BloodySpearMaxTime[TempInt] Greater than or equal to 1.78
                                    Then - Actions
                                        Unit - Turn collision for BloodySpearTarget[TempInt] On
                                        Unit - Unpause BloodySpearCaster[TempInt]
                                        Unit - Remove BloodySpearDummy[TempInt] from the game
                                        Custom script:   call RemoveLocation (udg_BloodySpearCasterPos[udg_TempInt])
                                        Custom script:   call RemoveLocation (udg_BloodySpearTargetPos[udg_TempInt])
                                    Else - Actions
                                Unit Group - Pick every unit in BloodySpearPullUg[TempInt] and do (Actions)
                                    Loop - Actions
                                        Unit - Move BloodySpearTarget[TempInt] instantly to BloodySpearSpearPos[TempInt], facing (Facing of BloodySpearTarget[TempInt]) degrees
                                Set BloodySpearDistance3[TempInt] = (Distance between BloodySpearCasterPos2[TempInt] and BloodySpearSpearPos[TempInt])
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        BloodySpearDistance3[TempInt] Less than or equal to 45.00
                                    Then - Actions
                                        Unit - Remove (Picked unit) from the game
                                        Unit - Turn collision for BloodySpearTarget[TempInt] On
                                        Unit - Unpause BloodySpearCaster[TempInt]
                                        Unit - Remove BloodySpearDummy[TempInt] from the game
                                        Custom script:   call RemoveLocation (udg_BloodySpearCasterPos[udg_TempInt])
                                        Custom script:   call RemoveLocation (udg_BloodySpearTargetPos[udg_TempInt])
                                    Else - Actions
                        Custom script:   call RemoveLocation (udg_BloodySpearCasterPos2[udg_TempInt])
                        Custom script:   call RemoveLocation (udg_BloodySpearSpearPos[udg_TempInt])
                        Custom script:   call RemoveLocation (udg_BloodySpearTp[udg_TempInt])
                        Unit Group - Pick every unit in BloodySpearUgRope[TempInt] and do (Actions)
                            Loop - Actions
                                Set BloodySpearCasterPos2[TempInt] = (Position of BloodySpearCaster[TempInt])
                                Set BloodySpearSpearPos[TempInt] = (Position of (Picked unit))
                                Set BloodySpearTp[TempInt] = (BloodySpearSpearPos[TempInt] offset by 20.00 towards (BloodySpearAngle[TempInt] + 180.00) degrees)
                                Unit - Move (Picked unit) instantly to BloodySpearTp[TempInt], facing BloodySpearAngle[TempInt] degrees
                                Set BloodySpearDistance3[TempInt] = (Distance between BloodySpearCasterPos2[TempInt] and BloodySpearSpearPos[TempInt])
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        BloodySpearDistance3[TempInt] Less than or equal to 25.00
                                    Then - Actions
                                        Unit - Remove (Picked unit) from the game
                                    Else - Actions
                                Custom script:   call RemoveLocation (udg_BloodySpearCasterPos2[udg_TempInt])
                                Custom script:   call RemoveLocation (udg_BloodySpearSpearPos[udg_TempInt])
                                Custom script:   call RemoveLocation (udg_BloodySpearTp[udg_TempInt])
                    Else - Actions
                        Unit Group - Pick every unit in BloodySpearUgRope[TempInt] and do (Actions)
                            Loop - Actions
                                Set BloodySpearRopePos[TempInt] = (Position of (Picked unit))
                                Set BloodySpearTp[TempInt] = (BloodySpearRopePos[TempInt] offset by 20.00 towards BloodySpearAngle[TempInt] degrees)
                                Unit - Move (Picked unit) instantly to BloodySpearTp[TempInt], facing BloodySpearAngle[TempInt] degrees
                                Custom script:   call RemoveLocation (udg_BloodySpearSpearPos[udg_TempInt])
                                Custom script:   call RemoveLocation (udg_BloodySpearTp[udg_TempInt])
                        Unit Group - Pick every unit in BloodySpearUgSpear[TempInt] and do (Actions)
                            Loop - Actions
                                Set BloodySpearSpearPos[TempInt] = (Position of (Picked unit))
                                Set BloodySpearTp[TempInt] = (BloodySpearSpearPos[TempInt] offset by 20.00 towards BloodySpearAngle[TempInt] degrees)
                                Unit - Move (Picked unit) instantly to BloodySpearTp[TempInt], facing BloodySpearAngle[TempInt] degrees
                                Custom script:   call RemoveLocation (udg_BloodySpearSpearPos[udg_TempInt])
                                Custom script:   call RemoveLocation (udg_BloodySpearTp[udg_TempInt])
Code:
Four
    Events
        Time - Every 0.02 seconds of game time
    Conditions
        (Number of units in BloodySpearUg) Greater than 0
    Actions
        Unit Group - Pick every unit in BloodySpearUg and do (Actions)
            Loop - Actions
                Set TempInt = (Custom value of (Picked unit))
                Unit Group - Pick every unit in BloodySpearUgSpear[TempInt] and do (Actions)
                    Loop - Actions
                        Set BloodySpearSpearPos[TempInt] = (Position of (Picked unit))
                        Set BloodySpearTargetPos[TempInt] = (Position of BloodySpearTarget[TempInt])
                        Set BloodySpearDistance2[TempInt] = (Distance between BloodySpearTargetPos[TempInt] and BloodySpearSpearPos[TempInt])
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                BloodySpearDistance2[TempInt] Less than or equal to 65.00
                            Then - Actions
                                Set BloodySpearPullBack[TempInt] = True
                                Unit - Turn collision for BloodySpearTarget[TempInt] Off
                                Unit Group - Add BloodySpearTarget[TempInt] to BloodySpearPullUg[TempInt]
                                Set BloodySpearDamageCheck[TempInt] = (BloodySpearDamageCheck[TempInt] + 1)
                            Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                BloodySpearMaxTime[TempInt] Greater than or equal to 0.85
                            Then - Actions
                                Set BloodySpearPullBack[TempInt] = True
                            Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                BloodySpearDamageCheck[TempInt] Equal to 1
                            Then - Actions
                                Floating Text - Create floating text that reads Get over here! above BloodySpearCaster[TempInt] with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                                Floating Text - Change (Last created floating text): Disable permanence
                                Floating Text - Set the velocity of (Last created floating text) to 30.00 towards 65.00 degrees
                                Floating Text - Change the lifespan of (Last created floating text) to 1.20 seconds
                                Floating Text - Change the fading age of (Last created floating text) to 0.75 seconds
                                Special Effect - Create a special effect attached to the origin of BloodySpearTarget[TempInt] using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                Special Effect - Destroy (Last created special effect)
                                Set BloodySpearDamage[TempInt] = ((2 x (Strength of BloodySpearCaster[TempInt] (Exclude bonuses))) + (100 x (Level of Bloody Spear  for BloodySpearCaster[TempInt])))
                                Floating Text - Create floating text that reads (String(BloodySpearDamage[TempInt])) above BloodySpearTarget[TempInt] with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                                Floating Text - Change (Last created floating text): Disable permanence
                                Floating Text - Set the velocity of (Last created floating text) to 30.00 towards 65.00 degrees
                                Floating Text - Change the lifespan of (Last created floating text) to 1.20 seconds
                                Floating Text - Change the fading age of (Last created floating text) to 0.75 seconds
                                Unit - Create 1 Dummy for (Owner of BloodySpearCaster[TempInt]) at BloodySpearCasterPos[TempInt] facing Default building facing degrees
                                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                                Unit - Add Storm Bolt to (Last created unit)
                                Unit - Set level of Storm Bolt for (Last created unit) to (Level of Unknown (A001) for BloodySpearCaster[TempInt])
                                Unit - Order (Last created unit) to Human Mountain King - Storm Bolt BloodySpearTarget[TempInt]
                                Unit - Cause (Last created unit) to damage BloodySpearTarget[TempInt], dealing (Real(BloodySpearDamage[TempInt])) damage of attack type Spells and damage type Normal
                            Else - Actions
                        Custom script:   call RemoveLocation (udg_BloodySpearTargetPos[udg_TempInt])
                        Custom script:   call RemoveLocation (udg_BloodySpearSpearPos[udg_TempInt])

This is basically a meat hook kind of spell, but i think its alot cooler, cause all the meat hook spells ive seen are just one unit kinda going further out till it hits the target, mine has a rope :D, o ya and this was my recreation on Scorpions Bloody Spear from Mortal Kombat

Post any leaks or bugs you find
Im not the best at removing leaks, so you might find some, post those too
Thanks to Waaaaagh for help with a little error i didnt see
Also when your casting the spell, when the rope units are created you'll notice that the angle that they face is like not right, but then correct (look at the screenshots) im not sure why it happens, i'll try to fix it up

Posion Spear
poisionspear1in6.jpg


poisionspear2mr6.jpg


poisionspear3yy4.jpg

Dl the maps:
 

Attachments

  • Bloody Spear v1.2.w3x
    50 KB · Views: 260
  • Poision Spear v1.1.w3x
    51.5 KB · Views: 237

manofsteel

New Member
Reaction score
36
Looks nice but it looks much like a meathook spell, gonna look through the triggers later and test the spell. Good job.
 

Kazuga

Let the game begin...
Reaction score
110
Is there any diffrence between this and Tinki3:s but the model file of the chain?
 

BRUTAL

I'm working
Reaction score
118
not really, his is just 1 type of unit hooking, and mine has 2 units
other then that no
 

Larcenist

REP: Respect, Envy, Prosperity?
Reaction score
211
I do not understand the joy of creating Meat Hook-ish spells, there's like 10 of them make out there now?
 

Daskunk

SC2 Forum MVP - TheSkunk #386
Reaction score
186
This isnt too much like meathook. Well, maybe a downgraded meathook.. But you must target a unit, and you cant move while casting it..It seems like it allways hits, as well as stunning.
 

BRUTAL

I'm working
Reaction score
118
Well, other tzhan tinki3's this one is MUI.. .Which seems attractive for alot of GUI Users =)
well thats true, his gui version isnt mui

This isnt very much like meathook. Well, maybe a downgraded meathook.. But you MUST target a unit, and you cant move while casting it..
well, i said i recreated scorpions bloody spear, if you have played MK before he cant move untill her either misses and the spear is gone, or till the target comes back =/
 

Daskunk

SC2 Forum MVP - TheSkunk #386
Reaction score
186
well, i said i recreated scorpions bloody spear, if you have played MK before he cant move untill her either misses and the spear is gone, or till the target comes back =/
I have not played that game, No.
 

Kazuga

Let the game begin...
Reaction score
110
This isnt very much like meathook. Well, maybe a downgraded meathook.. But you MUST target a unit, and you cant move while casting it..

It is true it is sort of original that you have to target a unit however most of the meathooks you are paused while casting it, it's just the more advanced (pudge wars meathook) that allows you to move meanwhile.
 

BRUTAL

I'm working
Reaction score
118
I have not played that game, No.
well then you dont know what to expect

i can make the hero able to move, it would just be stupid im my opinion, and not mortal kombat like =/
 

Kazuga

Let the game begin...
Reaction score
110
Since it is more of a rope as you said, it would be wierd if you can run away while casting it? Atm It's like when a cowboy throws a lasso around something and drags it in like a fish and I like it^^
 

Daskunk

SC2 Forum MVP - TheSkunk #386
Reaction score
186
well then you dont know what to expect

i can make the hero able to move, it would just be stupid im my opinion, and not mortal kombat like =/
I did not say it was bad, but its not like meathook. Which isnt bad.
 

BRUTAL

I'm working
Reaction score
118
This isnt very much like meathook. Well, maybe a downgraded meathook.. But you MUST target a unit, and you cant move while casting it..
sounded negative to me
and if its not a meathook what else can you describe it as?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top