Need help whit a passive % chance to do shockwave skill

Nivius

TH.net Regular
Reaction score
5
* Base (9lvl): The Taste of Blood
For every enemy killed u get 1-9% of your total life back (heroes 2-18%)
* Strong (7lvl): Aggressive Foothold
Every time you get hit you have a 1-7% chance to do a xxx dmg Warstomp
* Amazing (5lvl): Aggressive Swings
Adds 2/4/6/8/10% chance to fire of a xxx dmg Shock Wave in front of you when u attack (enfo's mt have a unit whit this mountain dwarf skin)
* Ultimate (3lvl): Rampage
Activate, Rampage increasing attack speed whit 33/66/99% and its double the current % of your Aggressive Swings and Aggressive Foothold


can anyone help me make these skills?

i'm pretty new to skill making, all i done before is change existing skills (like spirit wolfs into something else)
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Thses are just the three first abilities standalone, without the Ultimate effect, might try to make that later :S

Trigger:
  • The Taste of Blood
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) belongs to an enemy of (Owner of (Killing unit))) Equal to True
      • (Level of The Taste of Blood for (Killing unit)) Greater than 0
    • Actions
      • Unit - Set life of (Killing unit) to ((Life of (Killing unit)) + (((Max life of (Killing unit)) x 0.01) x (Real((Level of The Taste of Blood for (Killing unit))))))


Trigger:
  • Aggressive Foothold Event
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Aggressive Foothold
    • Actions
      • Trigger - Add to Aggressive Foothold <gen> the event (Unit - (Triggering unit) Takes damage)


Trigger:
  • Aggressive Foothold
    • Events
    • Conditions
      • (Level of Aggressive Foothold for (Triggering unit)) Greater than 0
      • ((Damage source) belongs to an enemy of (Owner of (Triggering unit))) Equal to True
    • Actions
      • Set TempPoint = (Position of (Triggering unit))
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Unit - Add War Stomp to (Last created unit)
      • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp


Trigger:
  • Aggressive Swings Event
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Temp_Group = (Units in (Playable map area) matching (((Matching unit) is A structure) Not equal to True))
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Trigger - Add to Aggressive Swings <gen> the event (Unit - (Picked unit) Takes damage)
      • Custom script: call DestroyGroup(udg_Temp_Group)


Trigger:
  • Aggressive Swings Event 2
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
      • ((Triggering unit) is A structure) Not equal to True
    • Actions
      • Trigger - Add to Aggressive Swings <gen> the event (Unit - (Triggering unit) Takes damage)


Trigger:
  • Aggressive Swings
    • Events
    • Conditions
      • (Random integer number between 1 and 100) Less than or equal to (2 x (Level of Aggressive Swings for (Damage source)))
      • (Level of Aggressive Swings for (Damage source)) Greater than 0
    • Actions
      • Set TempPoint = (Position of (Damage source))
      • Unit - Create 1 Dummy for (Owner of (Damage source)) at TempPoint facing Default building facing degrees
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Unit - Add Shockwave to (Last created unit)
      • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
      • Set TempPoint2 = (Position of (Triggering unit))
      • Unit - Order (Last created unit) to Orc Tauren Chieftain - Shockwave TempPoint2
      • Custom script: call RemoveLocation(udg_TempPoint2)


Haven't tested them though :S
 

GameOver[GR]

New Member
Reaction score
11
Sorry mate the abilities you asked are way too big for me and i am a little lazy about that , but I made for you the third ability you asked

-Jass-

JASS:
function Trig_Untitled_Trigger_001_Func001Func001Func001Func001Func001Func002C takes nothing returns boolean
    if ( not ( GetRandomPercentageBJ() <= 10.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001Func001Func001Func001C takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('ANab', GetAttacker()) == 5 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001Func001Func001Func002C takes nothing returns boolean
    if ( not ( GetRandomPercentageBJ() <= 8.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001Func001Func001C takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('ANab', GetAttacker()) == 4 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001Func001Func002C takes nothing returns boolean
    if ( not ( GetRandomPercentageBJ() <= 6.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001Func001C takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('ANab', GetAttacker()) == 3 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001Func002C takes nothing returns boolean
    if ( not ( GetRandomPercentageBJ() <= 4.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func001C takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('ANab', GetAttacker()) == 2 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001Func002C takes nothing returns boolean
    if ( not ( GetRandomPercentageBJ() <= 2.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001C takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('ANab', GetAttacker()) == 1 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
    if ( Trig_Untitled_Trigger_001_Func001C() ) then
        if ( Trig_Untitled_Trigger_001_Func001Func002C() ) then
            call PauseUnitBJ( true, GetAttacker() )
            call SetUnitAnimation( GetAttacker(), "attack" )
            call UnitAddAbilityBJ( 'ANsh', GetAttacker() )
            call IssuePointOrderLocBJ( GetAttacker(), "shockwave", GetUnitLoc(GetAttackedUnitBJ()) )
            call SetUnitAnimation( GetAttacker(), "attack" )
            call UnitRemoveAbilityBJ( 'ANsh', GetTriggerUnit() )
            call PauseUnitBJ( false, GetAttacker() )
        else
            call DoNothing(  )
        endif
    else
        if ( Trig_Untitled_Trigger_001_Func001Func001C() ) then
            if ( Trig_Untitled_Trigger_001_Func001Func001Func002C() ) then
                call PauseUnitBJ( true, GetAttacker() )
                call SetUnitAnimation( GetAttacker(), "attack" )
                call UnitAddAbilityBJ( 'ANsh', GetAttacker() )
                call IssuePointOrderLocBJ( GetAttacker(), "shockwave", GetUnitLoc(GetAttackedUnitBJ()) )
                call UnitDamageTargetBJ( GetAttacker(), GetAttackedUnitBJ(), 75.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
                call SetUnitAnimation( GetAttacker(), "attack" )
                call UnitRemoveAbilityBJ( 'ANsh', GetTriggerUnit() )
                call PauseUnitBJ( false, GetAttacker() )
            else
                call DoNothing(  )
            endif
        else
            if ( Trig_Untitled_Trigger_001_Func001Func001Func001C() ) then
                if ( Trig_Untitled_Trigger_001_Func001Func001Func001Func002C() ) then
                    call PauseUnitBJ( true, GetAttacker() )
                    call SetUnitAnimation( GetAttacker(), "attack" )
                    call UnitAddAbilityBJ( 'ANsh', GetAttacker() )
                    call IssuePointOrderLocBJ( GetAttacker(), "shockwave", GetUnitLoc(GetAttackedUnitBJ()) )
                    call UnitDamageTargetBJ( GetAttacker(), GetAttackedUnitBJ(), 150.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
                    call SetUnitAnimation( GetAttacker(), "attack" )
                    call UnitRemoveAbilityBJ( 'ANsh', GetTriggerUnit() )
                    call PauseUnitBJ( false, GetAttacker() )
                else
                    call DoNothing(  )
                endif
            else
                if ( Trig_Untitled_Trigger_001_Func001Func001Func001Func001C() ) then
                    if ( Trig_Untitled_Trigger_001_Func001Func001Func001Func001Func002C() ) then
                        call PauseUnitBJ( true, GetAttacker() )
                        call SetUnitAnimation( GetAttacker(), "attack" )
                        call UnitAddAbilityBJ( 'ANsh', GetAttacker() )
                        call IssuePointOrderLocBJ( GetAttacker(), "shockwave", GetUnitLoc(GetAttackedUnitBJ()) )
                        call UnitDamageTargetBJ( GetAttacker(), GetAttackedUnitBJ(), 225.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
                        call SetUnitAnimation( GetAttacker(), "attack" )
                        call UnitRemoveAbilityBJ( 'ANsh', GetTriggerUnit() )
                        call PauseUnitBJ( false, GetAttacker() )
                    else
                        call DoNothing(  )
                    endif
                else
                    if ( Trig_Untitled_Trigger_001_Func001Func001Func001Func001Func001C() ) then
                        if ( Trig_Untitled_Trigger_001_Func001Func001Func001Func001Func001Func002C() ) then
                            call PauseUnitBJ( true, GetAttacker() )
                            call SetUnitAnimation( GetAttacker(), "attack" )
                            call UnitAddAbilityBJ( 'ANsh', GetAttacker() )
                            call IssuePointOrderLocBJ( GetAttacker(), "shockwave", GetUnitLoc(GetAttackedUnitBJ()) )
                            call UnitDamageTargetBJ( GetAttacker(), GetAttackedUnitBJ(), 300.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
                            call SetUnitAnimation( GetAttacker(), "attack" )
                            call UnitRemoveAbilityBJ( 'ANsh', GetTriggerUnit() )
                            call PauseUnitBJ( false, GetAttacker() )
                        else
                            call DoNothing(  )
                        endif
                    else
                        call DoNothing(  )
                    endif
                endif
            endif
        endif
    endif
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_001 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_001 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Untitled_Trigger_001, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddAction( gg_trg_Untitled_Trigger_001, function Trig_Untitled_Trigger_001_Actions )
endfunction


-GUI-
Trigger:
  • Untitled Trigger 001
    • Events
      • Unit - A unit is attacked
    • Conditions
    • Actions
      • If (All conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Ability for (Attacking unit)) Equal to 1
        • Then - Actions
          • If (All conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random percentage) Less than or equal to 2.00
            • Then - Actions
              • Unit - Pause (Attacking unit)
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Add Shockwave to (Attacking unit)
              • Unit - Order (Attacking unit) to Orc Tauren Chieftain - Shockwave (Position of (Attacked unit))
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Remove Shockwave from (Attacking unit)
              • Unit - Unpause (Attacking unit)
        • Else - Actions
          • Do Nothing
      • Else - Actions
        • If - Conditions
        • (Level of Ability for (Attacking unit)) Equal to 2
        • Then - Actions
          • If (All conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random percentage) Less than or equal to 4.00
            • Then - Actions
              • Unit - Pause (Attacking unit)
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Add Shockwave to (Attacking unit)
              • Unit - Order (Attacking unit) to Orc Tauren Chieftain - Shockwave (Position of (Attacked unit))
              • Unit - Cause (Attacking unit) to damage (Attacked unit), dealing 75 damage of attack type Spells and damage type Normal
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Remove Shockwave from (Attacking unit)
              • Unit - Unpause (Attacking unit)
        • Else - Actions
          • Do Nothing
      • Else - Actions
        • If - Conditions
        • (Level of Ability for (Attacking unit)) Equal to 3
        • Then - Actions
          • If (All conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random percentage) Less than or equal to 6.00
            • Then - Actions
              • Unit - Pause (Attacking unit)
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Add Shockwave to (Attacking unit)
              • Unit - Order (Attacking unit) to Orc Tauren Chieftain - Shockwave (Position of (Attacked unit))
              • Unit - Cause (Attacking unit) to damage (Attacked unit), dealing 150 damage of attack type Spells and damage type Normal
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Remove Shockwave from (Attacking unit)
              • Unit - Unpause (Attacking unit)
        • Else - Actions
          • Do Nothing
      • Else - Actions
        • If - Conditions
        • (Level of Ability for (Attacking unit)) Equal to 4
        • Then - Actions
          • If (All conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random percentage) Less than or equal to 8.00
            • Then - Actions
              • Unit - Pause (Attacking unit)
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Add Shockwave to (Attacking unit)
              • Unit - Order (Attacking unit) to Orc Tauren Chieftain - Shockwave (Position of (Attacked unit))
              • Unit - Cause (Attacking unit) to damage (Attacked unit), dealing 225 damage of attack type Spells and damage type Normal
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Remove Shockwave from (Attacking unit)
              • Unit - Unpause (Attacking unit)
        • Else - Actions
          • Do Nothing
      • Else - Actions
        • If - Conditions
        • (Level of Ability for (Attacking unit)) Equal to 5
        • Then - Actions
          • If (All conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random percentage) Less than or equal to 10.00
            • Then - Actions
              • Unit - Pause (Attacking unit)
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Add Shockwave to (Attacking unit)
              • Unit - Order (Attacking unit) to Orc Tauren Chieftain - Shockwave (Position of (Attacked unit))
              • Unit - Cause (Attacking unit) to damage (Attacked unit), dealing 300 damage of attack type Spells and damage type Normal
              • Animation - Play (Attacking unit)'s attack animation
              • Unit - Remove Shockwave from (Attacking unit)
              • Unit - Unpause (Attacking unit)
        • Else - Actions
          • Do Nothing
      • Else - Actions
        • Do Nothing



Edit : Ohh you are faster than me :p
 

Komaqtion

You can change this now in User CP.
Reaction score
469
But WHY !!!!!GameOver !!!! Why convert a trigger to JASS without changing anything to make it more efficient ?????!!!!
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Why do you convert a GUI trigger to JASS ??
There is no difference between a GUI trigger and a GUI converted JASS trigger XD
If you use JASS, you can optimize the trigger sooo much more, and stuff, but you just convert a un optimized GUI trigger to JASS, which is totally unnecessary.
Only use JASS if you know how to work with it, sorry for this but that's the truth :S not to be disrespectful about you helping out but still ;)
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
Probably to make it easier to import... but yeah, anyways if Nivius doesn't know jass then he can't use the appropriate spellid

Edit: haha, faster than me xD
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Ok then, here's the triggers, they're the only ones activated ;)
Click It!

Yeah i know, the import speed, but still he probably won't be able to change stuff anyways if it's JASS :S
 

Nivius

TH.net Regular
Reaction score
5
:( i dont understand any of this... i understand the first lines u put in komaqtion, but i dont seem to be abel to put it in, i dont have all the choices like your pic have
 

Komaqtion

You can change this now in User CP.
Reaction score
469
DL the map then, and just cope the variables first then the triggers ;)
And also, you must make new spells, like War Stomp and Shockwave, but without cooldown, mana cost or casting time, for the dummy units... and then you must also change the ability to your dummy ability in the triggers ;)
 

GameOver[GR]

New Member
Reaction score
11
No problem man , if you can not read jass you can use GUI , that's why i added both to my post :p



Edit : Lol , this thread is going to rock , so many posts , ideas , resources :p:p:p
 

Nivius

TH.net Regular
Reaction score
5
:( this is quite hard... i cant put in any of the triggers, theres alwaise somthing i miss... i realy need somon to do heroes whit me for my arena :/

if anyone loev to do this kind of things, don't hesitate to contact me :)

need someone to trow ideas whit, and maybe do the coding part... as i'm more into terrain

if anyone out there whud like to... pls check out my projekt

http://www.thehelper.net/forums/showthread.php?t=125288
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top