Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Charpen Shuriken v. 1.2 [Special Edition!]

Submitted by tjordell
This bundle is marked as approved. It works and satisfies the submission rules.
This spell is not new to say but i like it. It will be in the New-Age aos Battle for Honor [LINK]

50% credits to me
50% credits to NFWar


I switched this spell with the Adrenaline Rush [LINK] for Fudo, the Assassin in the human race. I switched it because some peoples said that the Adrenaline Rush was more like a "Titan" like spell. So i created a new one. Well anyways, here's the description, code and spell.

Good and Not Good about the spell

[++] - I have made that the Shurinken is a bit "swingy" when moving, to make the spell more realistic. Because a Shuriken do not always fly STRAIGHT forward.

[+]
- The spell is pretty simple, for advanced peoples, but still very effective and have a pretty nice SFX. From my mind.

[+] - The spell really match the hero Fudo, the Assassin because the spell is a bit of "Assassin" kind. "Sneaky ability" you know.

[-] - I dont have documentation for the triggers yet but i will add that later. I did just wanted it uploaded.

[-] - The Variable names is pretty complicated because of my mind. Let's call me a little psychopath within my brain :grin::eekani:


Charpen Shuriken [IMG]http://www.hiveworkshop.com/forums/pastebin_data/i0t89i/BTNShuriken.jpg[/IMG]
The Assassin casts a Shuriken in the targeted direction, cuts every enemy unit in it's path. When the Shuriken have reached the limit of traveled range it will return back to it's master.|nUnits can be hit twice.

Level 1 - 70 damage at 600 range.

Level 2 - 100 damage at 700 range.

Level 3 - 130 damage at 800 range.

Level 4 - 160 damage at 900 range.

Cooldown: 14/13/12/11 seconds.


Code

CS Start
  • CS Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Charpen Shuriken
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CS_Integer Equal to 0
        • Then - Actions
          • Trigger - Turn on CS Loop <gen>
        • Else - Actions
      • Set CS_Integer = (CS_Integer + 1)
      • Set CS_MUI = (CS_MUI + 1)
      • Set CS_On[CS_MUI] = True
      • Set CS_Back[CS_MUI] = False
      • -------- ------------------------------------------------------- --------
      • Set CS_Hero[CS_MUI] = (Triggering unit)
      • Set CS_Loc[0] = (Position of (Triggering unit))
      • Set CS_Loc[1] = (Target point of ability being cast)
      • Set CS_Angle[CS_MUI] = (Angle from CS_Loc[0] to CS_Loc[1])
      • Set CS_Loc[2] = (CS_Loc[0] offset by 10.00 towards CS_Angle[CS_MUI] degrees)
      • Unit - Create 1 Dummy Axe for (Owner of (Triggering unit)) at CS_Loc[2] facing CS_Angle[CS_MUI] degrees
      • Set CS_Projectile[CS_MUI] = (Last created unit)
      • Set CS_PreParabola[CS_MUI] = 0.00
      • -------- ------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer number between 0 and 1) Equal to 0
        • Then - Actions
          • Set CS_SwingSide[CS_MUI] = False
        • Else - Actions
          • Set CS_SwingSide[CS_MUI] = True
      • -------- ------------------------------------------------------- --------
      • Set CS_Level[CS_MUI] = (Level of Charpen Shuriken for (Triggering unit))
      • Set CS_Damage[CS_MUI] = (50.00 + (30.00 x (Real(CS_Level[CS_MUI]))))
      • Set CS_Distance[CS_MUI] = (500.00 + (100.00 x (Real(CS_Level[CS_MUI]))))
      • Set CS_MaxSideDistance[CS_MUI] = 100.00
      • Set CS_Period[CS_MUI] = 400.00
      • Set CS_SubDistance[CS_MUI] = CS_Period[CS_MUI]
      • Set CS_Speed[CS_MUI] = 30.00
      • Set CS_TurnSpeed[CS_MUI] = 5.00
      • Custom script: call RemoveLocation (udg_CS_Loc[0])
      • Custom script: call RemoveLocation (udg_CS_Loc[1])
      • Custom script: call RemoveLocation (udg_CS_Loc[2])

CS Loop
  • CS Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer CS_i) from 1 to CS_MUI, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CS_On[CS_i] Equal to True
            • Then - Actions
              • Set CS_Loc[3] = (Position of CS_Projectile[CS_i])
              • Set CS_SubDistance[CS_i] = (CS_SubDistance[CS_i] - CS_Speed[CS_i])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_Back[CS_i] Equal to True
                • Then - Actions
                  • Set CS_Loc[6] = (Position of CS_Hero[CS_i])
                  • Set CS_Angle[CS_i] = (Angle from CS_Loc[3] to CS_Loc[6])
                  • Set CS_Loc[4] = (CS_Loc[3] offset by CS_Speed[CS_i] towards CS_Angle[CS_i] degrees)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Distance between CS_Loc[3] and CS_Loc[6]) Less than or equal to 50.00
                    • Then - Actions
                      • Unit - Remove CS_Projectile[CS_i] from the game
                      • Unit Group - Remove all units from CS_SafeGroup1
                      • Unit Group - Remove all units from CS_SafeGroup2
                      • Set CS_On[CS_i] = False
                      • Set CS_Integer = (CS_Integer - 1)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • CS_Integer Equal to 0
                        • Then - Actions
                          • Trigger - Turn off (This trigger)
                          • Set CS_MUI = 0
                        • Else - Actions
                    • Else - Actions
                  • Custom script: call RemoveLocation (udg_CS_Loc[6])
                • Else - Actions
                  • Set CS_Distance[CS_i] = (CS_Distance[CS_i] - CS_Speed[CS_i])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CS_Distance[CS_i] Less than or equal to 0.00
                    • Then - Actions
                      • Set CS_Back[CS_i] = True
                    • Else - Actions
                  • Set CS_Loc[4] = (CS_Loc[3] offset by CS_Speed[CS_i] towards CS_Angle[CS_i] degrees)
              • Set CS_Parabola[CS_i] = (((4.00 x CS_MaxSideDistance[CS_i]) / CS_Period[CS_i]) x ((CS_Period[CS_i] - CS_SubDistance[CS_i]) x (CS_SubDistance[CS_i] / CS_Period[CS_i])))
              • Set CS_SideDistance[CS_i] = (CS_Parabola[CS_i] - CS_PreParabola[CS_i])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_SwingSide[CS_i] Equal to True
                • Then - Actions
                  • Set CS_Loc[5] = (CS_Loc[4] offset by CS_SideDistance[CS_i] towards (CS_Angle[CS_i] + 90.00) degrees)
                • Else - Actions
                  • Set CS_Loc[5] = (CS_Loc[4] offset by CS_SideDistance[CS_i] towards (CS_Angle[CS_i] - 90.00) degrees)
              • Set CS_PreParabola[CS_i] = CS_Parabola[CS_i]
              • Unit - Move CS_Projectile[CS_i] instantly to CS_Loc[5]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_SubDistance[CS_i] Less than or equal to 0.00
                • Then - Actions
                  • Set CS_SubDistance[CS_i] = CS_Period[CS_i]
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CS_SwingSide[CS_i] Equal to True
                    • Then - Actions
                      • Set CS_SwingSide[CS_i] = False
                    • Else - Actions
                      • Set CS_SwingSide[CS_i] = True
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_Back[CS_i] Equal to True
                • Then - Actions
                  • Set CS_Group[2] = (Units within 150.00 of CS_Loc[5] matching ((((Matching unit) belongs to an enemy of (Owner of CS_Hero[CS_i])) Equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) is in C
                  • Unit Group - Pick every unit in CS_Group[2] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause CS_Hero[CS_i] to damage (Picked unit), dealing CS_Damage[CS_i] damage of attack type Spells and damage type Normal
                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Add (Picked unit) to CS_SafeGroup2
                  • Custom script: call DestroyGroup (udg_CS_Group[2])
                • Else - Actions
                  • Set CS_Group[1] = (Units within 150.00 of CS_Loc[5] matching ((((Matching unit) belongs to an enemy of (Owner of CS_Hero[CS_i])) Equal to True) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) is in C
                  • Unit Group - Pick every unit in CS_Group[1] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause CS_Hero[CS_i] to damage (Picked unit), dealing CS_Damage[CS_i] damage of attack type Spells and damage type Normal
                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Add (Picked unit) to CS_SafeGroup1
                  • Custom script: call DestroyGroup (udg_CS_Group[1])
              • Destructible - Pick every destructible within 150.00 of CS_Loc[5] and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked destructible) is alive) Equal to True
                    • Then - Actions
                      • Destructible - Kill (Picked destructible)
                    • Else - Actions
              • Custom script: call RemoveLocation (udg_CS_Loc[3])
              • Custom script: call RemoveLocation (udg_CS_Loc[4])
              • Custom script: call RemoveLocation (udg_CS_Loc[5])
            • Else - Actions


Changelog
[v. 1.2] - [Added new custom made Icon made by me and NFWar to the spell.]

[v. 1.1] - [NFWar added a smooth swing, like a worm to the Shuriken]

[v. 1.0] - [Created and Uploaded!]


Keywords:
Assassin, Shuriken, Charpen, tjordell, svenskunganka, Fudo, New-Age AOS
Contents

Charpen Shuriken (Map)

Reviews
Moderator
10:28, 24th Apr 2010 The_Reborn_Devil: The triggering looks good, but the curving or swinging wasn't really realistic. You should try to work more on it, but the status of this spell will be unchanged. Status: Approved Rating:Useful
  1. 10:28, 24th Apr 2010
    The_Reborn_Devil:

    The triggering looks good, but the curving or swinging wasn't really realistic. You should try to work more on it, but the status of this spell will be unchanged.


    Status: Approved
    Rating:Useful
     
  2. mnib

    mnib

    Joined:
    May 22, 2009
    Messages:
    714
    Resources:
    1
    Icons:
    1
    Resources:
    1
    i just love gui spells :D
     
  3. tjordell

    tjordell

    Joined:
    Jan 25, 2009
    Messages:
    554
    Resources:
    5
    Icons:
    1
    Spells:
    4
    Resources:
    5
    Whooops, already i see a thing that i didn't saw but that's not even causing ANY bugs at all because the projectile is looking exactly the same from every degree.

    I set the point variable in the start with an angle variable that haven't event been stored something into. It's getting stored directly after i've set the point xD "A sneaky one there eya?"

    EDIT: Thank you mnib, glad you like it =)
     
  4. NoMoreChallenge

    NoMoreChallenge

    Joined:
    Nov 14, 2009
    Messages:
    192
    Resources:
    0
    Resources:
    0
    Looks good, I will give it a try.
     
  5. tjordell

    tjordell

    Joined:
    Jan 25, 2009
    Messages:
    554
    Resources:
    5
    Icons:
    1
    Spells:
    4
    Resources:
    5
    NoMoreChallenge, Thank you =) Right now, me and my buddy is implementing arc. So if the hero blink the Shuriken wont turn right away, it will turn with arc. And we're adding more flexible zig zag to the Shuriken.

    EDIT: On-Topic!This is my first spell that really got approven and my first spell that people likes.
     
  6. ChaosKnight

    ChaosKnight

    Joined:
    Jul 18, 2009
    Messages:
    196
    Resources:
    1
    Spells:
    1
    Resources:
    1
    This makes me think of Bouncing Glaves, in an Active spell... No offence, dude.
     
  7. War_Golum

    War_Golum

    Joined:
    Jan 12, 2010
    Messages:
    756
    Resources:
    7
    Models:
    3
    Icons:
    4
    Resources:
    7
    well done trigger
     
  8. tjordell

    tjordell

    Joined:
    Jan 25, 2009
    Messages:
    554
    Resources:
    5
    Icons:
    1
    Spells:
    4
    Resources:
    5
    Thanks alot War Golum :D

    EDIT: The thing why this spell is still a bit buggy, is that when the Shuriken zig zags it loses the distance. I'll explain for you.

    This is if it would go straight forward (Not losing any Distance, i will use the same number of (-&_) for both examples)=

    __________ <-- Straight
    _-_-_-_-_- <--- Zig Zag.

    You see that when the Shuriken goes to the left & right side, it adds that to the range, so the shuriken may just fly 600 range instead of 800.
    Well my epic friend is fixing that for me now (NFWar). He uses parabola and stuffs like that, that i dont understand something of but he will teach me =)
     
  9. NFWar

    NFWar

    Joined:
    Jul 27, 2008
    Messages:
    1,314
    Resources:
    228
    Models:
    1
    Icons:
    216
    Packs:
    1
    Skins:
    2
    Spells:
    6
    Tutorials:
    2
    Resources:
    228
    I didnt made this realistic. I made this like tjordell asked:
    -Swing like a snake to left and right

    Also that is NO throwing weapon that can fly like here.
     
  10. tjordell

    tjordell

    Joined:
    Jan 25, 2009
    Messages:
    554
    Resources:
    5
    Icons:
    1
    Spells:
    4
    Resources:
    5
    Hehe you know that NFWar´s knowledge in triggering is very common here and his way to make it also some special.
     
    Last edited: Apr 25, 2010
  11. Pecki

    Pecki

    Joined:
    Feb 23, 2010
    Messages:
    46
    Resources:
    0
    Resources:
    0
    Really nice idea. I think i will use the skill in my map, but i have to create an item version of it (map: Item Wars) :)
    It reminds me of a spell out of a manga i read :)
     
  12. tjordell

    tjordell

    Joined:
    Jan 25, 2009
    Messages:
    554
    Resources:
    5
    Icons:
    1
    Spells:
    4
    Resources:
    5
    Glad you like it =)
     
  13. choji

    choji

    Joined:
    Apr 25, 2010
    Messages:
    63
    Resources:
    0
    Resources:
    0
    nice job guy and nice spell
     
  14. jepperht99

    jepperht99

    Joined:
    Apr 26, 2010
    Messages:
    21
    Resources:
    0
    Resources:
    0
    Help me

    can somebody help me with download this spell:infl_thumbs_up:
     
  15. matej

    matej

    Joined:
    Oct 27, 2009
    Messages:
    191
    Resources:
    2
    Maps:
    1
    Spells:
    1
    Resources:
    2
    realy nice spell...good work
     
  16. redscores

    redscores

    Joined:
    Aug 9, 2006
    Messages:
    2,161
    Resources:
    12
    Maps:
    5
    Spells:
    6
    Template:
    1
    Resources:
    12
    Press the Button to Download the spell.
     
  17. Garfield1337

    Garfield1337

    Joined:
    Jul 6, 2009
    Messages:
    1,806
    Resources:
    4
    Maps:
    1
    Spells:
    3
    Resources:
    4
    I think it always flies straight except when it's magical :ugly:

    Apart from that,could be useful spell...maybe make the projectile a bit smaller.
    Also DISBTN doesn't work for icon,set it's path to ReplaceableTextures\CommandButtonsDisabled\DISBTNShuriken.blp
    But it's not important for a spell :xxd:
     
    Last edited: May 2, 2010
  18. Netherdrake

    Netherdrake

    Joined:
    Jan 2, 2010
    Messages:
    89
    Resources:
    0
    Resources:
    0
    Sounds like Wild Axe (Beastmaster's spell from DotA) with only one axe, but great job on that. :)
     
  19. tjordell

    tjordell

    Joined:
    Jan 25, 2009
    Messages:
    554
    Resources:
    5
    Icons:
    1
    Spells:
    4
    Resources:
    5
    Well... I don't even modifying the sound when i create spells. I dont even think of sounds when i create spells ;P