1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. The 30th edition of the Modeling Contest is finally up! The Portable Buildings need your attention, so come along and have a blast!
    Dismiss Notice
  3. The Aftermath has been revealed for the 19th Terraining Contest! Be sure to check out the Results and see what came out of it.
    Dismiss Notice
  4. Melee Mapping Contest #3 - Results are out! Congratulate the winners and check plenty of new 4v4 melee maps designed for this competition!
    Dismiss Notice
  5. The winners of our cinematic soundtrack competition have been decided! Step by the Music Contest #11 - Results to check the entries and congratulate the winners!
    Dismiss Notice

Assassinate v1.4

Submitted by xyzier_24
This bundle is marked as approved. It works and satisfies the submission rules.
My 1st spell that I would like to upload to THW.

It engraves a stigma on its primary victim and destroys it with a stigma every 0.1 seconds. At the end of the stigma, it will deal damage to victims in an area and stuns them for a short duration.
The caster is invulnerable while the stigma is active.

Assassinate
  • Assassinate
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Assassinate
    • Actions
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- DO NOT CHANGE!!! --------
      • Set Assa_Max = (Assa_Max + 1)
      • Set Assa_Caster[Assa_Max] = (Triggering unit)
      • Set Assa_Target[Assa_Max] = (Target unit of ability being cast)
      • Set Assa_Ability = (Ability being cast)
      • Set Assa_Lvl[Assa_Max] = (Level of (Ability being cast) for Assa_Caster[Assa_Max])
      • Unit - Pause Assa_Caster[Assa_Max]
      • Unit - Make Assa_Caster[Assa_Max] Invulnerable
      • Unit - Turn collision for Assa_Caster[Assa_Max] Off
      • -------- END --------
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- CHANGEABLE: No. of Attacks --------
      • Set Assa_Attacks[Assa_Max] = 12
      • -------- CHANGEABLE: Random Point where the Caster will teleport and attack --------
      • Set Assa_Random = (Random real number between 50.00 and 100.00)
      • -------- CHANGEABLE: Damage Dealt to the primary target --------
      • Set Assa_DamageS[1] = 10.00
      • Set Assa_DamageS[2] = 15.00
      • Set Assa_DamageS[3] = 20.00
      • -------- CHANGEABLE: Damage Dealt if 'Assa_DamageS' effect is done (ending effect) --------
      • Set Assa_DamageE[1] = 50.00
      • Set Assa_DamageE[2] = 200.00
      • Set Assa_DamageE[3] = 500.00
      • -------- CHANGEABLE: Area of effect if 'Assa_DamageS' effect is done (ending effect) --------
      • Set Assa_Area[1] = 125.00
      • Set Assa_Area[2] = 300.00
      • Set Assa_Area[3] = 500.00
      • -------- CHANGEABLE: Animation Speed --------
      • Animation - Change Assa_Caster[Assa_Max]'s animation speed to 250.00% of its original speed
      • -------- END --------
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------
      • -------- DO NOT CHANGE!!! --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Assa_Max Equal to 1
        • Then - Actions
          • Trigger - Turn on Assassinate Loop <gen>
        • Else - Actions
      • -------- END --------
      • -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------

Assassinate Loop
  • Assassinate Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Assa_Loop) from 1 to Assa_Max, do (Actions)
        • Loop - Actions
          • Animation - Play Assa_Caster[Assa_Loop]'s attack animation
          • Special Effect - Create a special effect attached to the origin of Assa_Target[Assa_Loop] using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the origin of Assa_Caster[Assa_Loop] using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Set Assa_PointT = (Position of Assa_Target[Assa_Loop])
          • Set Assa_PointR = (Assa_PointT offset by Assa_Random towards (Random real number between 0.00 and 359.99) degrees)
          • Unit - Move Assa_Caster[Assa_Loop] instantly to Assa_PointR, facing Assa_PointT
          • Unit - Create 1 Assassinate Dummy for (Owner of Assa_Caster[Assa_Loop]) at Assa_PointR facing Assa_PointT
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 75.00% transparency
          • Animation - Play (Last created unit)'s attack animation
          • Unit - Cause Assa_Caster[Assa_Loop] to damage Assa_Target[Assa_Loop], dealing Assa_DamageS[Assa_Lvl[Assa_Loop]] damage of attack type Spells and damage type Normal
          • Set Assa_Attacks[Assa_Loop] = (Assa_Attacks[Assa_Loop] - 1)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Assa_Attacks[Assa_Loop] Equal to 0
            • Then - Actions
              • Set Assa_GroupDMG = (Units within Assa_Area[Assa_Lvl[Assa_Loop]] of Assa_PointT matching ((((Matching unit) belongs to an enemy of (Owner of Assa_Caster[Assa_Loop])) Equal to True) and (((Matching unit) is alive) Equal to True)))
              • Unit Group - Pick every unit in Assa_GroupDMG and do (Actions)
                • Loop - Actions
                  • Unit - Cause Assa_Caster[Assa_Loop] to damage (Picked unit), dealing Assa_DamageE[Assa_Lvl[Assa_Loop]] damage of attack type Spells and damage type Normal
                  • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • -------- Should avoid making dummies under existing units as this consumes unnescescary resources. --------
                  • Unit - Create 1 Dummy for (Owner of Assa_Caster[Assa_Loop]) at Assa_PointT facing Default building facing degrees
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
              • -------- Only remove existing groups. --------
              • Custom script: call DestroyGroup( udg_Assa_GroupDMG )
              • Unit - Unpause Assa_Caster[Assa_Loop]
              • Unit - Make Assa_Caster[Assa_Loop] Vulnerable
              • Unit - Turn collision for Assa_Caster[Assa_Loop] On
              • Animation - Change Assa_Caster[Assa_Loop]'s animation speed to 100.00% of its original speed
              • Set Assa_Caster[Assa_Loop] = Assa_Caster[Assa_Max]
              • Set Assa_Caster[Assa_Max] = No unit
              • -------- Must move max index object member to loop index object member. It makes no sense to move loop index object member to itself! --------
              • Set Assa_Target[Assa_Loop] = Assa_Target[Assa_Max]
              • Set Assa_Target[Assa_Max] = No unit
              • -------- Must move all members of an object during object move operation. --------
              • Set Assa_Attacks[Assa_Loop] = Assa_Attacks[Assa_Max]
              • Set Assa_Lvl[Assa_Loop] = Assa_Lvl[Assa_Max]
              • Set Assa_Max = (Assa_Max - 1)
              • Set Assa_Loop = (Assa_Loop - 1)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_Assa_PointT)
          • Custom script: call RemoveLocation(udg_Assa_PointR)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Assa_Max Equal to 0
            • Then - Actions
              • Trigger - Turn off (This trigger)
            • Else - Actions

Assassinate Recover
  • Assassinate Recover
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Assassinate Dummy
    • Actions
      • Unit - Remove (Triggering unit) from the game


Inspired by Cabal Online - Assassinate
Click here to watch Cabal Online's Original Version of it.


Please Rate this Spell.
Update:
v1.3 - Made it MUI
Thanks to Dr Super Good for fixing the spell in v1.3
v1.4 - Made Configurable and made some changes

Keywords:
Blink, Teleport, Stun, Attack, Cabal, Assassinate, Force-Blader
Contents

Assassinate v1.4 (Map)

Reviews
Moderator
15:28, 22nd Jul 2013 PurgeandFire: Good job. This spell is nicely coded and fun to play around with.
  1. 15:28, 22nd Jul 2013
    PurgeandFire: Good job. This spell is nicely coded and fun to play around with.
     
  2. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    can u post the triggers plz.
    u also need importing instructions.

    edit: i was able to dl and i found a few mistakes.

    u should not destroy the points in the then condition unless u make the point in there ( in this case u dont). these will leak whenever the else condition is run
    anything u use twice or more store into a variable and use that. ex: picked unit is used a lot.
    u leak a point. the assa_randompoint
     
  3. xyzier_24

    xyzier_24

    Joined:
    Oct 16, 2011
    Messages:
    236
    Resources:
    6
    Models:
    4
    Icons:
    1
    Spells:
    1
    Resources:
    6
    ow, haha. thanks for checking it @deathismyfriend, i made this spell in just 1 day and i didn't rechecked it. again, thanks for checking my spell :D
     
  4. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    np just next time can u post the triggers on here i normally never dl the spell to look at it.
     
  5. Losam

    Losam

    Joined:
    Mar 27, 2011
    Messages:
    260
    Resources:
    8
    Spells:
    8
    Resources:
    8
    Well, first, you must put the Triggers, by that way, other users can analyze their work.
     
  6. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    Already mentioned that lol
     
  7. T. D. W.

    T. D. W.

    Joined:
    Jul 31, 2012
    Messages:
    1,505
    Resources:
    5
    Spells:
    5
    Resources:
    5
    This Spell has troubles with MUI :/
    You must add 2 casters in the test map when uploading a spell
    Now, when i added 1 caster and casted them together, it ended up that the second caster was still disabled after the spell and invulnerable, and after that, i made the first caster cast it again, he ended up also disabled and invulnerable

    The thing that causes this is this line:
    • Set Assa_Max = (Assa_Max - 1)

    When you reduce the max index by 1, when it was 2 before, when looping the spell, the 2nd array will be ignored and only the first will continue

    Overall, it's a nice spell but with a MUI problem:
    it should take a 2/5 but since it's cool with it's effects:
    Rating
    [​IMG]


    voting for: NEEDS FIX
     
  8. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    the problem w MUI is that u dont de-index properly. u also handle the loop wrong. u should check out my tutorial things a GUIer should know. the chapter how to index shows u how to properly index loop and de-index
     
  9. T. D. W.

    T. D. W.

    Joined:
    Jul 31, 2012
    Messages:
    1,505
    Resources:
    5
    Spells:
    5
    Resources:
    5
    ^^ what deathismyname said, or if you want you can use hashtables (you can also find tutorials about them)
     
  10. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    hashtables shouldnt be used for this kind of spell
     
  11. T. D. W.

    T. D. W.

    Joined:
    Jul 31, 2012
    Messages:
    1,505
    Resources:
    5
    Spells:
    5
    Resources:
    5
    I firstly thought of that, but since it disables and makes the caster invulnerable, there are no problems for hashtables, the spell can not in any ways be cast twice by a single caster
     
  12. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    that is true but also remember that hashtables are slower than using the indexing method that is being used. there are only some mistakes which can be easily fixed.
     
  13. T. D. W.

    T. D. W.

    Joined:
    Jul 31, 2012
    Messages:
    1,505
    Resources:
    5
    Spells:
    5
    Resources:
    5
    Very true
    I would like to know why hashtables are slower than indexing?
     
  14. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    its by the way that they are handled in wc3. they require more processing to use. in the case of lookup they are faster than arrays. but when loading and storing things they are slower. there are a few threads around that tells y exactly they are slower. u can look them up. i cant atm
     
  15. T. D. W.

    T. D. W.

    Joined:
    Jul 31, 2012
    Messages:
    1,505
    Resources:
    5
    Spells:
    5
    Resources:
    5
    Makes sence, will check on that ;)
     
  16. xyzier_24

    xyzier_24

    Joined:
    Oct 16, 2011
    Messages:
    236
    Resources:
    6
    Models:
    4
    Icons:
    1
    Spells:
    1
    Resources:
    6
    i tested it with 2 caster. when it the 1st caster casts the skill, then the 2nd will cast it after a while. it was working properly. but when both of them cast it at the same time, there are errors. why? please help, i'm not good at making MUI.
     
  17. deathismyfriend

    deathismyfriend

    Joined:
    Oct 24, 2012
    Messages:
    6,532
    Resources:
    14
    Spells:
    12
    Tutorials:
    2
    Resources:
    14
    the problem is u dont de-index properly. i posted this above. u can look at my tutorial things a GUIer should know in the chapter how to index. that will show u how to properly index and de-index.
     
  18. xyzier_24

    xyzier_24

    Joined:
    Oct 16, 2011
    Messages:
    236
    Resources:
    6
    Models:
    4
    Icons:
    1
    Spells:
    1
    Resources:
    6
    i don't know which line of the de-indexing causes errors. i already checked deathismyfriend's "index : de-indexing" tutorial and it always cause me errors. why? please tell me what line do i need to change and what will i change it into?
     
  19. T. D. W.

    T. D. W.

    Joined:
    Jul 31, 2012
    Messages:
    1,505
    Resources:
    5
    Spells:
    5
    Resources:
    5
    I told you, re-read my first coment