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. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  5. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  8. The raddest synthwave tracks were chosen - Check out our Music Contest #12 - Results and congratulate the winners!
    Dismiss Notice
  9. 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.

Venom Spell v1.7

Submitted by JC Helas
This bundle is marked as pending. It has not been reviewed by a staff member yet.
VENOM SPELL
CREDITS

-Bribe-
Unit Event
Damage Engine

CHANGELOG

v1.1
-Fixed Group Damaging
v1.2
-Minor Fix
v1.3
-Fixed Missile Movement
-Fixed HaprDagger Cast Damage Group
-Fixed Dummy Owner
-Add Stocking Damage
v1.4
-Fixed Harp Blink Minor Fixed
-Add Pick Enemy Flag of Harp Blink
-Update the Required System
v1.5
-Documentd trigger
-Fixed the missile size configuring
-Fixed the damage detecting trigger
-Add configure for loop periodic
v1.6
-Convert to Jass
-Change name harp to venom because it seem not related to harp word
v1.6a
-Fixed Dagger Angle
v1.7
-Fixed dagger
-Change dagger's damage
-Change dagger's cd
-Fixed damage detect
-Add new spell "Venom Berserk"

ABILITY DESCRIPTION






Previews
Contents

Harp Spell v1.7 (Map)

Reviews
MyPad
Now that this is in JASS, there would be a few points that need to be addressed: Variables V_LoopTrig, VB_LoopTrig, and VA_LoopTrig behave like timers, despite the fact that they are triggers. A recommendation is to change the types of these...
  1. xyzier_24

    xyzier_24

    Joined:
    Oct 16, 2011
    Messages:
    235
    Resources:
    7
    Models:
    4
    Icons:
    1
    Spells:
    2
    Resources:
    7
    You should post the triggers.
     
  2. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,031
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    You can find triggers through here: Trigger Viewer | HIVE
     
  3. Pyrogasm

    Pyrogasm

    Joined:
    Feb 27, 2007
    Messages:
    2,891
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Gives me a "The requested resource could not be found." error page, @Bribe.
     
  4. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,031
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
  5. xyzier_24

    xyzier_24

    Joined:
    Oct 16, 2011
    Messages:
    235
    Resources:
    7
    Models:
    4
    Icons:
    1
    Spells:
    2
    Resources:
    7
    Okay. This needs description though.
     
  6. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,031
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    Yeah the tooltips could stand to be typed out at least instead of just be pictures.
     
  7. xyzier_24

    xyzier_24

    Joined:
    Oct 16, 2011
    Messages:
    235
    Resources:
    7
    Models:
    4
    Icons:
    1
    Spells:
    2
    Resources:
    7
    What I meant is the Setup Trigger. Some of the variables might be confusing to others.
     
  8. JC Helas

    JC Helas

    Joined:
    Oct 19, 2014
    Messages:
    155
    Resources:
    2
    Spells:
    2
    Resources:
    2
    I want to,, but I forgot some of the code which hiding some descriptions,, I only remeber, [size=#] [trigger.] [jass.] [quote.]
     
  9. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    8,031
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
  10. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,305
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7

    Spell Review:



    Notes:


    • In trigger Harp Setup, there is a specific line that might not guarantee correct behavior in Melee scoring (or so I've heard). The line in question...

      • Custom script: set udg_HarpBlink_BuffCaster = CreateUnit(Player(15), udg_HarpBlink_BuffCasterType, 0, 0, 0)


      ... might give it to the 16th player in later versions of warcraft 3, but would work as intended for previous versions (1.28.5-). A recommended course of action is to use this instead:

      • Custom script: set udg_HarpBlink_BuffCaster = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), udg_HarpBlink_BuffCasterType, 0, 0, 0)


      In addition, a handle leak may occur (only once, though), involving the following array variable:
      udg_HarpDagger_GroupIndexed[1]
      , since the object could be lost at the very first cast of the spell (from the assignment via
      set
      ).

    • In trigger Harp Dagger Cast, the following line does not seem to serve a purpose other than to incur additional memory usage (operation cost, if you will)

      • For each (Integer HarpDagger_Integer) from 1 to HarpDagger_NumberOfDagger, do (Actions)
        • Loop - Actions
          • -------- ---- --------
          • Unit Group - Add all units of HarpDagger_GroupIndexed[HarpDagger_Indexer] to HarpDagger_GroupIndexed[HarpDagger_Indexer]


      The function above would appear to add all the units within a certain group ... to itself?!

    • In trigger Harp Blink Loop, the following line may cause some issues if the area of effect of the dummy ability is very small, or close to 0.

      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HarpBlink_DistanceIndexed[HarpBlink_Loop] Less than or equal to HarpBlink_TravelSpeed
        • Then - Actions
          • -------- ---- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (HarpBlink_Target[HarpBlink_Loop] has buff HarpDagger_BuffType) Equal to True
            • Then - Actions
              • Custom script: call SetUnitPosition(udg_HarpBlink_BuffCaster, GetUnitX(udg_HarpBlink_Target[udg_HarpBlink_Loop]),GetUnitY(udg_HarpBlink_Target[udg_HarpBlink_Loop]))
            • -------- ---- --------
        • Else - Actions


      Two solutions are possible, either alter the stun ability, or use
      SetUnitX
      and
      SetUnitY
      in place of the
      SetUnitPosition
      native.

      As for the first solution, you can simply make it a 0-cooldown, single-target ability. As for the second solution,
      SetUnitPosition
      will usually place the unit within a certain offset of the actual point, due to it performing path checks, whereas the natives above do as their name implies, without the pathing checks.

    Suggestions:


    • For the two spells included here, there is only one setup trigger. Why not split them into two triggers so that you save the user from having to scroll a bit to modify wanted data?

    • In trigger Harp Dagger Loop, there is a possibility of the dummy missile to not behave as a true missile, due to the usage of
      SetUnitPosition
      , which may make the result look awkward (e.g. Missile not moving through its' trajectory). Rectify this with
      SetUnitX
      and
      SetUnitY
      instead.

      Unlike the case above within the trigger Harp Blink Loop, the missile, if displaced using
      SetUnitX
      and
      SetUnitY
      , might cause the dummy unit to go out of bounds, given extreme range. That is why this is a suggestion instead of an urgent key-point that demands immediate attention.

    • Allow some sort of counter mechanism for attacking, where the number of attacks when applying the bonus damage can be made modifiable. (Instead of 1 attack stack, you can make it 2, 3 or 5 stacks before being reduced).

    Overview:



    The Harp Spell has some potential to become a decent spell, though the idea behind it (given that it isn't necessarily the same) has been seen in a lot of media, which lowers the rating a bit. The spell itself is highly resistant to leaks, and optimized to the best extent that it had been by the author, bumping it's rating upward.

    A lot of thought was given on how the spell/s would work, based on how the triggers themselves were implemented, although the presence of unnecessary variables digresses a commendable effort. Clearly, the spell concept and implementation has been showered with utmost care by the author. Yet, an update will be required before the final rating will be given.

    Needless to say, as it is, the overall rating (on the scale from 1 to 5, with 5 being the highest) is: 3.7

    Status:


    • Awaiting Update
     
  11. JC Helas

    JC Helas

    Joined:
    Oct 19, 2014
    Messages:
    155
    Resources:
    2
    Spells:
    2
    Resources:
    2
    I set the HarpDagger Dummy's movement into SetUnitX,SetUnitY,, the result is the dummy is invisible,, i cant see it,, but the damaging is working and so the buff.. maybe the effect that i attached is not moving along to the dummy,, so I change my mind,, I better make an effect on each path where it moves.
    or maybe I will create another dummy object and set a constant model of the effect that I attach,, instead doing a special effect :)..

    solved:
    The movement speed of dummy must set atleast 1
     
    Last edited: Nov 21, 2018
  12. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,305
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    I think I figured out the cause, the movement speed of the projectile is accounted for when using the coordinate setter natives, whereas SetUnitPosition forces the displacement of these units. The solution to this is to set the movement speed of the dummy unit type being used to at least 1 (that way, a coordinate setter native will work on the unit).

    This may be an interesting find, albeit a bit off-topic, about the behavior of
    SetUnitX, SetUnitY
    and
    SetUnitPosition
    .
     
  13. JC Helas

    JC Helas

    Joined:
    Oct 19, 2014
    Messages:
    155
    Resources:
    2
    Spells:
    2
    Resources:
    2
    Exactly maybe some editors having this problem and cant figure out how to fix,, so go for it,, make a topic for this kind of behavior.

    And after that please review my spell hehehe,, also credit me for the topic hehehehe

    By the way,, my next update for this spell is,, I will add new spell,, "Harp Berserk"
    Description:
    Increases attack speed by 100/200/300/400% that last over 5 seconds, and blink to enemy within 600/650/700/750 distance that has a buff of dagger.

    CD: 15 seconds
    Manacost: 70
     
    Last edited: Nov 22, 2018
  14. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,861
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    it is actually an old behavior, which is why most Dummy libraries (such as MissileRecyler by Bribe) do not set the umvs (Unit's Move Speed) to 0.
     
  15. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,305
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Looks like this will be a spellpack, neat-o. Just remember to split up the config triggers, and you're good to go.

    @Almia

    So it is the case that it was an already known bug, eh? Looks like I really need to refine my skills to dig deep back up. ;)
     
  16. JC Helas

    JC Helas

    Joined:
    Oct 19, 2014
    Messages:
    155
    Resources:
    2
    Spells:
    2
    Resources:
    2
    I change my mind sir to not update this reasources,, and by the way I already fixed it and your suggestion is already made.
     
  17. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,305
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    From my tests, there still exists some unnecessary overhead when casting either one of the spells. This happens once the enemy is stunned as the undefend order is being issued by the stunned target (due to the inclusion of a detector defend ability).

    In conjunction with this, I noticed that you're using an older version of Unit Event. I suggest using the latest version to ensure that the spell will work optimally, or if you cannot import it into your map, all you need to change is this function, in trigger Unit Event:

    Code (vJASS):

    function UnitEventCheckDeath takes nothing returns nothing
        local integer i = udg_CheckDeathList[0]
        set udg_CheckDeathList[0] = i
        loop
            exitwhen i == 0
            if udg_IsUnitNew[i] then
                //The unit was just created.
                set udg_IsUnitNew[i] = false
            elseif udg_IsUnitAlive[i] then
                //The unit has started reincarnating.
                set udg_IsUnitReincarnating[i] = true
                set udg_IsUnitAlive[i] = false
                set udg_UDex = i
                set udg_DeathEvent = 0.50
                set udg_DeathEvent = 0.00
            endif
            set i = udg_CheckDeathList[i]
            set udg_CheckDeathList[udg_CheckDeathList[i]] = 0    // add this line...
        endloop
    endfunction
     


    In trigger HarpBlink Cast, all the conditional statements within Pick Unit Group actions are hardcoded. Perhaps you can add some configurability onto this trigger via introduction of new flag variables?

    Excluding dependencies, I would say the spell is ready for approval, as long as those things above are addressed either now or in the future.

    EDIT:

    Changed old to older
     
    Last edited: Dec 3, 2018
  18. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,611
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    Expected music related spell, disappointed.
     
  19. JC Helas

    JC Helas

    Joined:
    Oct 19, 2014
    Messages:
    155
    Resources:
    2
    Spells:
    2
    Resources:
    2
    Latest Unit Event is now imported,, and added some configurable flag that conditionally pick an enemy of harp blink also I fixed the missile's flag that checks the enemy's condition weather alive or not,,I use the variable of unit event which is "isUnitAlive[]" also instead of calling the target's user data in loop triggeraction I create a variable integer that will do it once at trigger cast.

    Ahmm I refer harp for it sounds like creeps,, like murloc hehehe I forgot the real world which means harp is an instrument hahaha
     
    Last edited: Dec 18, 2018