Results 1 to 10 of 10

Thread: [Confirmed] Axe's Culling Blade deals non-threshold damage instantly << incorrect

  1. #1
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012
    Posts
    2,892

    [Confirmed] Axe's Culling Blade deals non-threshold damage instantly << incorrect

    Culling Blade's casual my-target-is-over-the-threshold damage is being dealt immediately upon Axe finishes casting the Culling Blade
    it should rather be dealt with 0.25 sec delay

    Axe's Culling Blade has to get corrected in a way that it deals the over-the-threshold damage with 0.25 seconds of delay
    UNLIKE the below-the-threshold execution, which is correct as it is


    This should also make the non-threshold damage of the Culling Blade just as dodgable as laguna blade, with blink or phase shift or whatever

    adding just these two lines at the end of the Culling Blade functions in DotA would make the Culling Blade damage to get dealt instantly instead of delayed:

    else
    > call UnitDamageTarget( loc_unit01, loc_unit02, , true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS )


    therefore the chances are not so low that the non-threshold damage has been designed to be dodgable

  2. #2
    Volunteer Moderator bu3ny's Avatar
    Join Date
    Oct 2011
    Location
    .-.
    Posts
    11,639
    Dodgeable with blinks? Does it use projectiles?

    Also you can't dodge Raguna Buladu with blinky.
    Please, just call me buny.

  3. #3
    Basic Member
    Join Date
    Dec 2011
    Posts
    12
    u can lol

  4. #4
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012
    Posts
    2,892
    Can't you?
    Okay, I might be confusing it with Phase Shift, it uses a Chain Lightning just like the Laguna Blade on Lina

    I think you're right, it is not like a projectile, just 0.25 sec damage, shouldn't be dodgable with blink
    but surely dodgable with Phase Shift or Ball Lightning or anything that grants you invulnerability


    Tried, and I can't dodge neither Laguna nor Culling with Blink
    but I can dodge both with Ball Lightning

    sorry for the confusion, it should be as dodgable as Laguna Blade, not much, not less,
    dodgable with invulnerability like Phase Shift, but not dodgable with blinks like Blink

  5. #5
    Volunteer Moderator bu3ny's Avatar
    Join Date
    Oct 2011
    Location
    .-.
    Posts
    11,639
    Culling Blade's base spell being Chain Lightning. Yes I remember there something.
    I think the reason why it's based on Chain Lightning (which has the delay inbuilt) is to prevent the non-killing blow damage from happening before the killing blow damage. Because if it happen before the killing blow damage, it could drop the target below the threshold so the killing blow happens.
    Please, just call me buny.

  6. #6
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012
    Posts
    2,892
    pff

    Code:
    ORIGINAL, deobfuscated
    
    function Func2583 takes nothing returns nothing
      local unit loc_unit01=GetTriggerUnit()
      local unit loc_unit02=GetSpellTargetUnit()
      local real loc_real01=GetUnitState(loc_unit02,UNIT_STATE_LIFE)
      local integer loc_integer01=GetUnitAbilityLevel(loc_unit01,('A0E2'))
      local unit loc_unit03
      local boolean loc_boolean01=false
      local group loc_group01
      if loc_integer01==0 then
        set loc_integer01=GetUnitAbilityLevel(loc_unit01,'A1MR')
        set loc_boolean01=true
      endif
      if(loc_real01<=300 and loc_integer01==1)or(loc_real01<=450 and loc_integer01==2)or(loc_real01<=625 and loc_integer01==3)then
        if loc_boolean01 then
        endif
        call PlaySoundOnUnitBJ(sound005,100,loc_unit02)
        call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl",loc_unit02,"overhead"))
        set loc_unit03=CreateUnit(GetOwningPlayer(loc_unit01),'e00E',0,0,0)
        call UnitRemoveBuffs(loc_unit02,true,true)
        call UnitRemoveAbility(loc_unit02,'Aetl')
        call UnitDamageTarget(loc_unit03,loc_unit02,100000000.00,true,false,ATTACK_TYPE_MELEE,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
        call DestroyEffect(AddSpecialEffectTarget("war3mapImported\\AxeUltiMSFX_01.mdx",loc_unit01,"origin"))
        set loc_group01=Func0030()
        call GroupEnumUnitsInRange(loc_group01,GetUnitX(loc_unit01),GetUnitY(loc_unit01),625,Condition(function Func0308))
        call ForGroup(loc_group01,function Func2581)
        call Func0029(loc_group01)
        set loc_group01=null
      endif
    endfunction
    Code:
    Altered
    
    function Func2583 takes nothing returns nothing
      local unit loc_unit01=GetTriggerUnit()
      local unit loc_unit02=GetSpellTargetUnit()
      local real loc_real01=GetUnitState(loc_unit02,UNIT_STATE_LIFE)
      local integer loc_integer01=GetUnitAbilityLevel(loc_unit01,('A0E2'))
      local unit loc_unit03
      local boolean loc_boolean01=false
      local group loc_group01
      if loc_integer01==0 then
        set loc_integer01=GetUnitAbilityLevel(loc_unit01,'A1MR')
        set loc_boolean01=true
      endif
      if(loc_real01<=300 and loc_integer01==1)or(loc_real01<=450 and loc_integer01==2)or(loc_real01<=625 and loc_integer01==3)then
        if loc_boolean01 then
        endif
        call PlaySoundOnUnitBJ(sound005,100,loc_unit02)
        call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl",loc_unit02,"overhead"))
        set loc_unit03=CreateUnit(GetOwningPlayer(loc_unit01),'e00E',0,0,0)
        call UnitRemoveBuffs(loc_unit02,true,true)
        call UnitRemoveAbility(loc_unit02,'Aetl')
        call UnitDamageTarget(loc_unit03,loc_unit02,100000000.00,true,false,ATTACK_TYPE_MELEE,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
        call DestroyEffect(AddSpecialEffectTarget("war3mapImported\\AxeUltiMSFX_01.mdx",loc_unit01,"origin"))
        set loc_group01=Func0030()
        call GroupEnumUnitsInRange(loc_group01,GetUnitX(loc_unit01),GetUnitY(loc_unit01),625,Condition(function Func0308))
        call ForGroup(loc_group01,function Func2581)
        call Func0029(loc_group01)
        set loc_group01=null
      else
        call UnitDamageTarget( loc_unit01, loc_unit02, -25 * loc_integer01 * loc_integer01 + 175 * loc_integer01, true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS )
      endif
    endfunction
    What is the point in taking IceFrog as incapable of even doing this?
    afterall he is the one who had written most of those that are in the DotA script right now

    Really, I don't understand how you people are living with such a mentality,
    is it really that so hard for you to see a solution, a way out..?

    2 lines, could as well be a single line if I had put that UnitDamageTarget after the if-then-endif and get rid of that else, but what the hell, the thing you've said can never be a frustration to a map maker who knows JASS even only by its absolute basics

  7. #7
    Basic Member DarkLite's Avatar
    Join Date
    Dec 2011
    Location
    Patch Anticipation Station
    Posts
    3,919
    Quote Originally Posted by ThoAppelsin View Post
    What is the point in taking IceFrog as incapable of even doing this?
    afterall he is the one who had written most of those that are in the DotA script right now

    Really, I don't understand how you people are living with such a mentality,
    is it really that so hard for you to see a solution, a way out..?

    2 lines, could as well be a single line if I had put that UnitDamageTarget after the if-then-endif and get rid of that else, but what the hell, the thing you've said can never be a frustration to a map maker who knows JASS even only by its absolute basics
    I'm not sure it's a good idea to use the argument "if it was meant to be that way icefrog would just fix it in two lines". Otherwise we'd have things like Dagon not putting Linken on CD in Dota 2. There's a lot of weird buggy things he's never fixed that would be easy to change, or things that are just insanely complicated for no reason (sticky napalm).
    Please help keep the forums clean by reporting rude or abusive posts!
    Got a problem? PM me or another moderator!
    Forum Rules


  8. #8
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012
    Posts
    2,892
    Quote Originally Posted by DarkLite View Post
    I'm not sure it's a good idea to use the argument "if it was meant to be that way icefrog would just fix it in two lines".
    First thing; you have altered what I had written so much, that it now has broken the order of events. Let's ditch what you had mis-quoted, and take my words instead:
    "What is the point in taking IceFrog as incapable of even doing this?"

    And this thing was a response to what bu3ny had said:
    "I think the reason why it's based on Chain Lightning (which has the delay inbuilt) is to prevent the non-killing blow damage from happening before the killing blow damage."

    What you mis-quoted, as you said, might be not a good argument to use
    But what I actually had said, was just perfectly good argument against what bu3ny had told

    we were talking about when he first coded this man, not about fixing it afterwards

    No one with the JASS knowledge would ever evade dealing the damage accidentally before threshold-check of the Culling Blade, by basing the ability off Chain Lightning, and then applying its non-threshold damage through the ability data itself
    For someone who had written all that code for the threshold-kill, it is irrational to assume that he went for a 0.25 sec Chain Lightning delay to put that 150 250 300 damage after the threshold-check

    It is like saying that IceFrog is suffering from schizophrenia, and his one half codes like a powerful bull, the other half is desperately seeking for workarounds in the GUI and things that the abilities offers to him

    doing it like this while coding it for the first time is one thing
    fixing it afterwards is another

    you might be skipping the fixes
    but you may never possibly ever skip the initial coding part, else we wouldn't have the Culling Blade on our hands, the product

  9. #9
    Volunteer Moderator bu3ny's Avatar
    Join Date
    Oct 2011
    Location
    .-.
    Posts
    11,639
    Quote Originally Posted by ThoAppelsin View Post
    What is the point in taking IceFrog as incapable of even doing this?
    afterall he is the one who had written most of those that are in the DotA script right now

    Really, I don't understand how you people are living with such a mentality,
    is it really that so hard for you to see a solution, a way out..?

    2 lines, could as well be a single line if I had put that UnitDamageTarget after the if-then-endif and get rid of that else, but what the hell, the thing you've said can never be a frustration to a map maker who knows JASS even only by its absolute basics
    I never said IceFrog is incapable of coding, neither did I say that it's not possible to code Culling Blade without using the delay from Chain Lightning.

    If you just look through multiple spells' codes in DotA1, you'll find lots of things and ask yourself why this is coded like that when it could have been done easier or cleaner. I'm sure you did that already and can agree on that.
    We surely can't know why they got coded like that.

    And now your showing us those codes, proving that it can be coded without making use of Chain Lightning's delayed damage.
    Let me ask you this now, why does Culling Blade use Chain Lightning anyway while the non-killing blow damage could be easily coded like how you showed it? Also why make it possible to avade that damage in the first place? Balance reasons? Very questionable.

    We don't can't know why. But as the curious person I am, I want to know why and make assumptions. Another thought I have is, he used Chain Lightning for it, because it's the only single target spell in WC3 which deals damage without using a projectile and has no side effects like stuns. But then again, why not just code it?
    Please, just call me buny.

  10. #10
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012
    Posts
    2,892
    Forked Lightning, no projectile, instant damage

    You asked me a question over there, "why does Culling Blade use Chain Lightning anyway while the non-killing blow damage could be easily coded like how you showed it?"
    I already had given the most optimistic reasonable answer to it on the original post: "therefore the chances are not so low that the non-threshold damage has been designed to be dodgable"

    Other than that, he might have been made it while he was high on alcohol, drugs or psychoactives
    Or if we ditch being reasonable, we can say that he is a pretty funny weird guy

    Questionable maybe, but it is more realistic than him going for a Chain Lightning 0.25 evadable delay instead of putting it into the code that he just filled in for the Culling Blade
    and therefore also less questionable

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •