1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The 18th Icon Contest is ON! Choose any ingame unit and give him/her Hero abilities. Good luck to all.
    Dismiss Notice
  5. The Secrets of Warcraft 3 have revealed interesting works. The RESULTS for Abelhawk's Mini-Mapping Contest #15 have come out!
    Dismiss Notice
  6. Contestants are to create a scene set in the Stone Age. Come and see what you can come up with. We wish you the best of luck!
    Dismiss Notice
  7. Colour outside the lines! Techtree Contest #13 is a go. The contest is optionally paired.
    Dismiss Notice
  8. Night Rider gained several songs for his journey. The poll for the 12th Music Contest has started. Check it out!
    Dismiss Notice
  9. Greetings cerebrates, our Swarm needs new spawners that will have numerous children. Join the HIVE's 31st Modeling Contest - Spawners and Spawned! The contest is optionally paired.
    Dismiss Notice
  10. Join other hivers in a friendly concept-art contest. The contestants have to create a genie coming out of its container. We wish you the best of luck!
    Dismiss Notice
  11. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Omnislash JASS Spell 1.3

Submitted by Ironside
This bundle is marked as substandard. It may contain bugs, not perform optimally or otherwise be in violation of the submission rules.
Made by Barathrum (Dark_Lord_12)

Omnislash from DotA made in JASS.
Cast Omnislash, wich hits 5 x level of ability. Deals 75 x level of ability.

Update 1: I fixed many things that i was suggested in comments.
Update 2: Fixed some more things suggested in comments. If caster dies he stops slashing now.
Update 3: Made spell easier to edit.
Contents

Omnislash JASS Spell (Map)

Reviews
Moderator
11:30, 24th Aug 2009 hvo-busterkomo: The spell will need a lot of optimizations in order to be ready for approval. Use GroupUtils instead of a local group, switch from locations to coordinates, and use a single line to create and destroy the effect.
  1. 11:30, 24th Aug 2009
    hvo-busterkomo: The spell will need a lot of optimizations in order to be ready for approval. Use GroupUtils instead of a local group, switch from locations to coordinates, and use a single line to create and destroy the effect.
     
  2. Rmx

    Rmx

    Joined:
    Aug 27, 2007
    Messages:
    1,088
    Resources:
    18
    Icons:
    3
    Spells:
    15
    Resources:
    18
  3. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,176
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    This is make in GUI and convert it to JASS.

    If my memory serves me right, here leak 16 boolexpr... :p

    Code (vJASS):
    function InitTrig_Slash takes nothing returns nothing
     set gg_trg_Slash = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(gg_trg_Slash, EVENT_PLAYER_UNIT_SPELL_EFFECT)
        call TriggerAddCondition(gg_trg_Slash, Condition(function Slash_Condition))
        call TriggerAddAction(gg_trg_Slash, function Slash_Actions)
    endfunction


    It also a clear sign of you making this in GUI and convert it to JASS. :p

    And nobody going to name a function like this.

    function Trig_Untitled_Trigger_001_Func00100200
     
  4. Thanathos

    Thanathos

    Joined:
    Aug 2, 2008
    Messages:
    202
    Resources:
    5
    Spells:
    5
    Resources:
    5
    Here we have another omnislash, but not very well made
    I´ve some complainments about the code:
    1. Replace
    IsUnitDeadBJ(SomeUnit)
    with
    GetWidgetLife(SomeUnit) > 0
    2. You used some other BJ which can be evaded
    3. Get Rid of the TSA
    4. ATM your spell is a bit hard to configurate i think, you could add some constants to make it easier
    5. That code is hardly readable, do some better indention and add some free lines


    And i also noticed if there are some dead units near the caster the spell somtimes bugs...instead of for example 10 slashes the caster slashes only 2 or 3 times
     
  5. Ironside

    Ironside

    Joined:
    Feb 3, 2009
    Messages:
    2,723
    Resources:
    4
    Maps:
    3
    Tutorials:
    1
    Resources:
    4
    Well i'm begginer at JASS.. offcorse i have to convert some stuff still...

    Oh btw. what's wrong with BJs anyway?
     
  6. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,176
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    Bj make another call, which are particular slower. For example, if natives makes 1 call to execute 1 action... bj would need to make about 2 calls to execute 1 action. (I cannot remember, I hope I explain it correctly)

    Then again, not all bj was evil.
     
  7. Thanathos

    Thanathos

    Joined:
    Aug 2, 2008
    Messages:
    202
    Resources:
    5
    Spells:
    5
    Resources:
    5
    BJ are bad because the they often just call natives.
    For example:
    Code (vJASS):

    function PauseUnitBJ takes boolean pause, unit whichUnit returns nothing
        call PauseUnit(whichUnit, pause)
    endfunction
     

    this way of calling functions is slow and can be easily evaded. In my example you just have to remove the BJ. Other BJ as for example
    TriggerRegisterAnyUnitEventBJ
    need to be inlined because they do some more stuff than just calling a native.

    [Edit]
    Oh sorry Septimus was faster..
     
  8. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,176
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    Yep, why need to make bj to call natives when you can call natives straight away. :p
     
  9. Ironside

    Ironside

    Joined:
    Feb 3, 2009
    Messages:
    2,723
    Resources:
    4
    Maps:
    3
    Tutorials:
    1
    Resources:
    4
    Ok will try fix soon
     
  10. Cheezeman

    Cheezeman

    Joined:
    Aug 19, 2008
    Messages:
    437
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    Hey, to be a commonly uploaded DotA spell this isn't very bad, after all it's MUI.
    I'm not saying it's good, but it isn't crap.
    Anyway here are things I found:
    • temp_loc is never nulled
    • temp is only sometimes nulled
    • blinkEffect and targetEffect are never nulled

      Coding:
    • set blinkEffect = AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", GetUnitLoc (caster))
      call DestroyEffect (blinkEffect)


      can be replaced with:
      call DestroyEffect( AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", GetUnitLoc (caster)))


      Thus avoiding the two variables that wern't nulled.
    • In first If statment (in the loop) there's an empty "else", just remove it
    • Uses alot of short TriggerSleepAction() which might cause obscure bugs. If you can, replace it with a Timer.
    • Replace the IsUnitDeadBJ( GetFilterUnit() ) with GetWidgetLife( GetFilterUnit() ) < 0.405. It's faster and more reliable.
    • This is a minor issue, but I suggest you use exitwhen count <= 0 instead of == 0, cause if the CPU calculates alot of stuff and happens to "miss" the exitwhen count == 0, you're garantueed that it will still exit (just giving you an additional target)

      Improvements:
    • Setup section? Currently you have to change 3 params if you get another rawcode for the spell. It would be alot more userfriendly :p

    I hope it helps. If you're confused just ask, I'm here to help not judge.
     
  11. Deuterium

    Deuterium

    Joined:
    Mar 17, 2009
    Messages:
    1,301
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    Well I won't check, but I'd say something:
    I've seen some very well done omni-slashes, making this useless to anyone.
    I'm not trying to offend you in any way, but spells made for practice, shouldn't be posted here...
     
  12. Ironside

    Ironside

    Joined:
    Feb 3, 2009
    Messages:
    2,723
    Resources:
    4
    Maps:
    3
    Tutorials:
    1
    Resources:
    4

    I have fixed many things of your comments, i think not all yet tho.
     
  13. Super-Sheep

    Super-Sheep

    Joined:
    Oct 21, 2006
    Messages:
    2,823
    Resources:
    1
    Maps:
    1
    Resources:
    1
    You should set movement speed to 0 while Omnislashing or something like that. Its stupid that you can walk a little after every slash. :l
     
  14. Thanathos

    Thanathos

    Joined:
    Aug 2, 2008
    Messages:
    202
    Resources:
    5
    Spells:
    5
    Resources:
    5
    [offtopic]
    Wow this is a mega post^^
    Put the quotes in hidden tags...
     
  15. Roflcoptor

    Roflcoptor

    Joined:
    Nov 25, 2008
    Messages:
    188
    Resources:
    4
    Icons:
    1
    Spells:
    3
    Resources:
    4
    This would be a very novice way to do so....

    I'd suggest pause instead
     
  16. Super-Sheep

    Super-Sheep

    Joined:
    Oct 21, 2006
    Messages:
    2,823
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Well it disables the whole hero then.
     
  17. Thanathos

    Thanathos

    Joined:
    Aug 2, 2008
    Messages:
    202
    Resources:
    5
    Spells:
    5
    Resources:
    5
    Yeah but if you set the movement speed to 0 that doesn´t really mean it´s 0. Every unit has a minimal movement speed. You can´t set the unit movement speed under that value, not even with triggers..(I´ve expierienced this by one of my experiments). Pausing would be the best way aslong you unpause the unit when the spell is done.
     
  18. Roflcoptor

    Roflcoptor

    Joined:
    Nov 25, 2008
    Messages:
    188
    Resources:
    4
    Icons:
    1
    Spells:
    3
    Resources:
    4
    OFC it disables the whole hero, but what does the hero during this slah phase, which would cause a bug if you pause him?
     
  19. Ironside

    Ironside

    Joined:
    Feb 3, 2009
    Messages:
    2,723
    Resources:
    4
    Maps:
    3
    Tutorials:
    1
    Resources:
    4
    Alright the vote is on: pause or other metod

    But i'd vote for other metod, since in dota the hero isn't paused either.