Spell Request -> Kunkka's Cleave

kingkingyyk3

Visitor (Welcome to the Jungle, Baby!)
Reaction score
216
In DotA, Kunkka's cleave is the greatest cleaving in the game. Can any1 make it for me? It is too complicated and i think it for 1 hour still cant wonder how it works.:banghead::banghead::banghead:
 

8uY_YoU

New Member
Reaction score
4
In DotA, Kunkka's cleave is the greatest cleaving in the game. Can any1 make it for me? It is too complicated and i think it for 1 hour still cant wonder how it works.:banghead::banghead::banghead:

It is using cleaving attack inside spellbook, if you don't know about spellbook, try search..
The trigger maybe like this

Code:
Events
Time - every x seconds
Conditions
Unit has cleaving attack in spellbook equal to false
Actions
Unit - add damage bonus to unit
Unit - add cleaving attack in spellbook to unit
Player - disable cleaving attack in spellbook to owner of unit
 

Cookiemaster

New Member
Reaction score
36
What the F is Kunkka's Cleave?

Seriously, if you want to know how an ability can be made, it would be nice if you posted what the ability itself does.
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
What the F is Kunkka's Cleave?

Seriously, if you want to know how an ability can be made, it would be nice if you posted what the ability itself does.

I'm not sure, I think it's a passive ability that allows you to cleave major damage for 1 attack every X seconds (X decreases with level).

Shouldn't be too hard. Use a global boolean for cooldown, and whenever a unit is attacked and that boolean == true, then spawn a dummy that casts a modified warstomp and set the boolean to false. Additionally, when the boolean is true, you can add a special effect on the unit's weapon, like Kunkka's sword
 

simonake

New Member
Reaction score
72
Okay here's the topo. (GUI, NOT MUI, NOT LEAKLESS)
all you need is the spells and a custom buff. Need two triggers the first one is this.
Trigger:
  • Periodic
    • Events
      • Time - Every 4 seconds of game time
    • Conditions
      • (Kunkka) has <custom buff> Equal to FALSE
    • Actions
      • Unit - Add <custom buff> to (Kunkka)


Second trigger
Trigger:
  • Hit
    • Events
      • Unit - A unit is attacked
    • Conditions
      • (Attacking unit) has <custom buff> Equal to true
    • Actions
      • Unit - Remove <custom buff>
      • Unit Group - Pick every unit in 600 range of (Attacking unit) and do (actions)
        • Loop -
          • Unit - Cause (Attacking unit) to deal X dmg to (Picked unit) etc..

Hope you get the point, hope that whats you wanted (i want rep!):D
Took me long to realize it what simple as this. :D :thup:
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
Actually, using a buff is a good idea, I never think about them :p
 

simonake

New Member
Reaction score
72
thx, same for me, just before i realized, i was using a spells book disabled/// and the buff create visual effect for the player!!!///
 

Legacyspy

New Member
Reaction score
19
Okay here's the topo. (GUI, NOT MUI, NOT LEAKLESS)
all you need is the spells and a custom buff. Need two triggers the first one is this.
Trigger:
  • Periodic
    • Events
      • Time - Every 4 seconds of game time
    • Conditions
      • (Kunkka) has <custom buff> Equal to FALSE
    • Actions
      • Unit - Add <custom buff> to (Kunkka)


Second trigger
Trigger:
  • Hit
    • Events
      • Unit - A unit is attacked
    • Conditions
      • (Attacking unit) has <custom buff> Equal to true
    • Actions
      • Unit - Remove <custom buff>
      • Unit Group - Pick every unit in 600 range of (Attacking unit) and do (actions)
        • Loop -
          • Unit - Cause (Attacking unit) to deal X dmg to (Picked unit) etc..

Hope you get the point, hope that whats you wanted (i want rep!):D
Took me long to realize it what simple as this. :D :thup:

That won't work as it's cleave so the damage dealt is the attack damage of the hero +15/30/45/60 per level.

Instead you need to every 4 seconds pick every kunnka, check if it has the buff, if not add the spellbook containg cleave and the +damage, set the damage to the correct level.

Then every time it deals damage through an attack you remove it.
 

Dirac

22710180
Reaction score
147
Wont work using a 4 second periodic event. Since the hero will gain the buff every 4 seconds event if it attacks (in dota you must wait 8 seconds before the last attack in order to activate it)

Unit Takes Damage
If DamageSource is in Combat Group equal to false
Pick every unit within 600 of damage source matching blah blah blah.. and do
Deal DMG
-
Add Damage Source to Combat Group

Every 0.1 seconds
Pick every unit in Combat Group and do
set custom value of picked unit to x+1.
if custom value equal to (time to wait here)/0.1 then remove unit from combat group
 

kingkingyyk3

Visitor (Welcome to the Jungle, Baby!)
Reaction score
216
But it will decrease cooldown every level....... Lv1 - 16s, Lv2 - 12s, Lv3 - 8 and Lv 4 - 4
 

Cookiemaster

New Member
Reaction score
36
I suggest just making an attack detection system and then trigger the ability from it. Is way more easily configurable and such.


Making a cleave with cooldown can be done by dumping the cleave ability in the orb of slow ability, giving a % chance to cleave with a possible cooldown, but the problem to this is that this does not give an additional amount of bonus damage.
 

Dirac

22710180
Reaction score
147
Unit Takes Damage
If DamageSource is in Combat Group equal to false
Pick every unit within 600 of damage source matching blah blah blah.. and do
Deal DMG
-
Add Damage Source to Combat Group

Every 0.1 seconds
Pick every unit in Combat Group and do
set custom value of picked unit to x+1.
if custom value equal to (time to wait here)/0.1 then remove unit from combat group

Do it this way to set cooldown
Unit Takes Damage
If DamageSource is in Combat Group equal to false
Pick every unit within 600 of damage source matching blah blah blah.. and do
Deal DMG
-
Set the custom value of unit to ((COOLDOWN FORMULA HERE :p) x 10)Notice that the x10 is important
Add Damage Source to Combat Group

Every 0.1 seconds
Pick every unit in Combat Group and do
set custom value of picked unit to x-1.
if custom value equal to 0 then remove unit from combat group
 

NetherHawk

New Member
Reaction score
26
Here it is..u just gotta make the abilities yourself. And be nice. Dont give me this should be graveyarded thing again.

basically when a the hero learns this ability, a trigger with timer event is created. After the time elapsed is reached, it created a trigger to register unit attack and another to register when that unit attacked receives damage.

it is a long code, but u know jass and this should be very easy for you to understand.

what is uses: item ability for cleave and attack bonus . Add this to a spellbook. When the time elapsed is reached, trigger will add the abilities, set the level of the abilities, add the special effect. Once damage is dealt it will remove everything.

@@Dirac: do u want to actually try what u suggested. pick 600 units in aoe? since when cleave affects units behind the hero =x
@@Simonake: totally not how tidebringer is made. not even close.

JASS:
scope Tidebringer initializer Init

// Objects used:
// 'A04D' = Tidebringer (Admiral : Kunkka) 
// 'A04A' = Tidebringer Attack Bonus
// 'A04C' = Tidebringer Cleaving Attack
// 'A04B' = Tidebringer Spellbook

globals
    private unit Tcaster    
    private real Texpiry // the 16/12/8/4 seconds delay between each cleave
    private real Telapsed 
    private trigger Ttriggerx // the event unit damaged trigger is created and destroyed everytime a new target is acquired or when 2.5sec has passed.
    private trigger Ttrigger // the main trigger which counts the Telapsed
    private boolean Tbool // prevent recreation of event unit damaged trigger within the 2.5 sec time window if attacked unit is the same.
    private effect array Teffect // the water hands effect attached to kunkka/s sword
endglobals

private struct tide // just to reference back the unit attacked trigger do destroy it after the cleave is done
    trigger tx
    
    method onDestroy takes nothing returns nothing
        set .tx = null
    endmethod
endstruct

private function Tidebringer_Conditions takes nothing returns boolean
    return GetLearnedSkill() == 'A04D'
endfunction

private function Tidebringer_Filter takes nothing returns boolean
    return GetAttacker() == Tcaster and IsUnitEnemy(GetTriggerUnit(),GetOwningPlayer(Tcaster))
endfunction

private function Tidebringer_Check takes nothing returns boolean
    return GetEventDamageSource() == Tcaster
endfunction

private function Tidebringer_Damage takes nothing returns nothing
    local trigger td = GetTriggeringTrigger()
    local tide t = GetTriggerStructA(td)

    call DisableTrigger(td)
    
    if GetTriggerEventId() != EVENT_UNIT_DAMAGED then
    else
        call UnitMakeAbilityPermanent(Tcaster,false,'A04A')
        call UnitMakeAbilityPermanent(Tcaster,false,'A04B')
        call UnitMakeAbilityPermanent(Tcaster,false,'A04C')
        call UnitRemoveAbility(Tcaster,'A04B')
        
        call DestroyEffect(Teffect[1])
        call DestroyEffect(Teffect[2])
        set Telapsed = 0.
        
        call DisableTrigger(t.tx)
        call DestroyTrigger(t.tx) 
        call EnableTrigger(Ttrigger)
    endif
    
    set Tbool = false
    call t.destroy()
    call ClearTriggerStructA(td)        
    call DestroyTrigger(td)
    set td = null
endfunction

private function Tidebringer_Attacked takes nothing returns nothing
    local tide t
    local unit ux = GetTriggerUnit()
    local trigger tx = GetTriggeringTrigger()   
    
    if Tbool == true then
        call DestroyTrigger(Ttriggerx)        
    endif
    
    set Ttriggerx = CreateTrigger()
    set Tbool = true
    set t = tide.create()
    set t.tx = tx      
    call SetTriggerStructA(Ttriggerx,t)
    call TriggerRegisterTimerEvent(Ttriggerx,2.5,false)        
    call TriggerRegisterUnitEvent(Ttriggerx,ux,EVENT_UNIT_DAMAGED)
    call TriggerAddCondition(Ttriggerx,Condition(function Tidebringer_Check))
    call TriggerAddAction(Ttriggerx,function Tidebringer_Damage)
        
    set ux = null
    set tx = null    
endfunction

private function Tidebringer_Setup takes nothing returns nothing
    local trigger tr = GetTriggeringTrigger()
    local trigger tx
    
    set Telapsed = Telapsed + .5
    
    if Telapsed >= Texpiry then
        call DisableTrigger(tr)
        
        call UnitAddAbility(Tcaster,'A04B')
        call SetUnitAbilityLevel(Tcaster,'A04A',GetUnitAbilityLevel(Tcaster,'A04D'))
        call SetUnitAbilityLevel(Tcaster,'A04C',GetUnitAbilityLevel(Tcaster,'A04D'))   
        call UnitMakeAbilityPermanent(Tcaster,true,'A04A')
        call UnitMakeAbilityPermanent(Tcaster,true,'A04B')
        call UnitMakeAbilityPermanent(Tcaster,true,'A04C')
        call SetPlayerAbilityAvailable(GetOwningPlayer(Tcaster),'A04B',false)
        
        set Teffect[1] = AddSpecialEffectTarget("WaterHands.mdx",Tcaster,"weapon")
        set Teffect[2] = AddSpecialEffectTarget("WaterHands.mdx",Tcaster,"right + hand")
        
        set tx = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(tx,EVENT_PLAYER_UNIT_ATTACKED)
        call TriggerAddCondition(tx,Condition(function Tidebringer_Filter))
        call TriggerAddAction(tx,function Tidebringer_Attacked)
        
    endif
            
    set tr = null
    set tx = null
endfunction   

private function Tidebringer_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit()    
    local trigger tr
        
    set Texpiry = 20.-(I2R(GetUnitAbilityLevel(u,'A04D'))*4.)   
        
    if GetUnitAbilityLevel(u,'A04D') == 1 then
        set Tcaster = u        
        set Telapsed = 0.
        set Ttriggerx = CreateTrigger()
        set Tbool = true
        set tr = CreateTrigger()    
        set Ttrigger = tr
        call TriggerRegisterTimerEvent(tr,.5,true)
        call TriggerAddAction(tr,function Tidebringer_Setup)
    endif
    
    set tr = null
    set u = null
endfunction

private function Init takes nothing returns nothing
    set gg_trg_Tidebringer = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Tidebringer,EVENT_PLAYER_HERO_SKILL)
    call TriggerAddCondition(gg_trg_Tidebringer,Condition(function Tidebringer_Conditions))
    call TriggerAddAction(gg_trg_Tidebringer,function Tidebringer_Actions)
endfunction

endscope
 

avalya

New Member
Reaction score
37
Use an attack detection system; whenever a unit is damaged, check if TB_Cooldown is less than or equal to 0, if it is then pick every unit within 425 AOE (I believe that's about the same) that are alive, enemies and not buildings, damage the picked units equal to the damage the first unit took with pure damage (chaos + universal), create special effect at the chest of picked units with Water Elemental missile, destroy last created special effect, set TB_Cooldown, a real array (one for every player, this is the cooldown) to 4 x Level of Tidebringer for your hero.

In another trigger, every 0.25 seconds, from every integer 1 to 12, do actions; if TB_Cooldown greater than 0, then set TB_Cooldown[Integer A] = TB_Cooldown[Integer A] - 0.25.
 

NetherHawk

New Member
Reaction score
26
you cannot use pick every unit in an aoe. That just isnt how cleave works. you have to add an item cleave ability and a damage bonus item ability via a spellbook when the time =0 or whatever.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top