Passive/Auto cast abilities

Level 6
Joined
Apr 26, 2007
Messages
225
Stat spell damage

I searched for a while and i couldn't really find an answer... all i could find is something about damage detection systems wich i dont know, so i will ask it.

How can you make a passive ability (based on bash) deal strength x level of ability for unit? SOLVED

How can you make an auto cast ability (based on fire arrow) deal strength x level of ability for unit? SOLVED

How can you make a spell (based on shockwave) deal damage to units it hit (in a line toward where it fire it)? SOLVED

chain lightning problem in trigger SOLVED

frost barrage, problem in trigger... SOLVED

Tripple Elemental Arrow spell bug UNSOLVED

Basicaly, in my map, every spell will deal an extra primary attribute x spell level, heals will heal an extra primary attribute x spell lvl, passive and auto cast too, etc...

~Thanks
 
Last edited:
Level 11
Joined
Apr 6, 2008
Messages
760
How can you make a passive ability (based on bash) deal strength x level of ability for unit?

Make a dummy ability, like evasion with 0%. And every time the unit attack check if the damaging unit have that ability and run a integer check like

JASS:
if GetRandomInt(1,100) <= PRECENT_CHANCE then
    //STUN
endif

How can you make a spell (based on shockwave) deal damage to units it hit (in a line toward where it fire it)?

Regular shockwave does that? if you mean it deal damage based on str you need too make a custom shockwave trigger
 
Level 6
Joined
Apr 26, 2007
Messages
225
I dont know jass but i know what you mean i can do that in gui lol but it mean re making my spell wich iw as hoping to avoid.... guess ill have to do it...

shockwave deals its damage plus the primary stat of the caster wich is strength. I dont know how to make a trigger for that... it's not in range of the caster because it's not a circle around the caster, it's a line of about 125 area of effect to a distance of 800...

EDIT:
i came up with that for the bash ^^ i think it's pretty good
  • flame strike
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Unit-type of (Attacking unit)) Equal to Geomancer
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer number between 1 and 100) Equal to flamestrikechances
        • Then - Actions
          • Special Effect - Create a special effect attached to the origin of (Attacked unit) using Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Cause (Attacking unit) to damage circular area after 0.00 seconds of radius 100.00 at (Position of (Attacked unit)), dealing (flamestrikedamage + ((Real((Level of Flame Strike for (Attacking unit)))) x (Real((Strength of (Attacking unit) (Include bonuses)))))) damage of attack type Hero and damage type Fire
        • Else - Actions
I know it leaks but for some reason i dont fix leaks for now in my map... it takes more time to make the trigger and i just wan to advance right now so ill pass the whole codage through leak check later lol
 
Last edited:
Level 6
Joined
Apr 26, 2007
Messages
225
Yeah lol but hes the only hero with the ability so it doesnt matter. For the auto cast ability and shockwave is there a way? i'm compleately lost on this one...

EDIT: will this work for shockwave? (it's called fire burst, geomancer is a unit variable set uppon picking the hero. and the damage of the actual spell is in the object editor.)
  • fireburst cast
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Fire Burst
    • Actions
      • Trigger - Turn on fire burst <gen>
      • Wait 1.00 seconds
      • Trigger - Turn off fire burst <gen>
V not initially on V
  • fire burst
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Owner of (Attacking unit)) Equal to (Owner of geomancer)
    • Actions
      • Unit - Cause (Attacking unit) to damage (Attacked unit), dealing ((Real((Level of Fire Burst for (Attacking unit)))) x (Real((Strength of geomancer (Include bonuses))))) damage of attack type Spells and damage type Normal
 
Level 11
Joined
Apr 6, 2008
Messages
760
Thats not a shockwave spell, it will for one second after he cast the spell every attack the hero make (not spells) will deal more damage. A shockwave spell is much more advanced then that.

this is how a custon shockwave work. when the hero cast the spell.

You create a dummy unit (with locust, so it cant be targeted nor damaged), then every, lets day 0.03 second you move it some distance (not a high amount 5-30 distance depending on the speed you want), Also every time you move it you pick all enemy around the dummy unit and damage them (Damage circular area, damage all units. Even your own, allies and enemies). And when you have reach the distance you want you stop the timer and kill the dummy
 
Level 6
Joined
Apr 26, 2007
Messages
225
Oh ok i understand... Well i had hoped mine would pick every unit bein attacked my the spell but i guess it's harder than that hehe... Your spell will hit pultiple times the same target if it's every 0.03 sec that it deal damage right? I wan mine to damage every unit once, like the real spell.

Thanks btw for the help now all i need left is the auto cast spell to be able to deal aditional damage via trigger. Is that even possible?

EDIT: i dont get how you make the unit move in the direction you wan... am stuck now:
  • fire burst
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Casting unit) Equal to geomancer
      • (Ability being cast) Equal to Fire Burst
    • Actions
      • Set fireburstlocation = (Target point of ability being cast)
      • Unit - Create 1 fireburst for (Owner of geomancer) at (Position of geomancer) facing Default building facing degrees
      • Set fireburst = (Last created unit)
      • Unit - Cause geomancer to damage circular area after 0.00 seconds of radius (120.00 + (5.00 x (Real((Level of Fire Burst for geomancer))))) at (Position of fireburst), dealing ((Real((Strength of geomancer (Include bonuses)))) x (Real((Level of Fire Burst for geomancer)))) damage of attack type Spells and damage type Fire
      • Wait 0.03 seconds
 
Last edited:
Level 7
Joined
Jun 14, 2009
Messages
235
Oh ok i understand... Well i had hoped mine would pick every unit bein attacked my the spell but i guess it's harder than that hehe... Your spell will hit pultiple times the same target if it's every 0.03 sec that it deal damage right? I wan mine to damage every unit once, like the real spell.

Thanks btw for the help now all i need left is the auto cast spell to be able to deal aditional damage via trigger. Is that even possible?

EDIT: i dont get how you make the unit move in the direction you wan... am stuck now:
  • fire burst
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Casting unit) Equal to geomancer
      • (Ability being cast) Equal to Fire Burst
    • Actions
      • Set fireburstlocation = (Target point of ability being cast)
      • Unit - Create 1 fireburst for (Owner of geomancer) at (Position of geomancer) facing Default building facing degrees
      • Set fireburst = (Last created unit)
      • Unit - Cause geomancer to damage circular area after 0.00 seconds of radius (120.00 + (5.00 x (Real((Level of Fire Burst for geomancer))))) at (Position of fireburst), dealing ((Real((Strength of geomancer (Include bonuses)))) x (Real((Level of Fire Burst for geomancer)))) damage of attack type Spells and damage type Fire
      • Wait 0.03 seconds

One problem with "damage area" is that it hurts allies too (think) plus you use waits.

Make a missile, and have a second trigger move it every few seconds. Then with the same second trigger, have it check too see if there are any units in the area around it (the size of the missile), and damage them accordingly.
 
Level 6
Joined
Apr 26, 2007
Messages
225
What i'm asking for is how to move the dummy lol i think i figured it out tho but i got a problem with my trigger... i made it in jass bc am trying to learn it but i get an error saying "unexpected return" and i dont get why :s

EDIT:
How come this deals no damage to units from player gray?! (it's supose to damage only gray) I dont get it i'm working on it and reworking and nothing seems to work... can anyone tell me whats wrong with my code?
JASS:
function Trig_fire_burst_Conditions takes nothing returns boolean
    if ( GetSpellAbilityUnit() == udg_geomancer ) then
        return true
    endif
    if ( GetSpellAbilityId() == 'A004' ) then
        return true
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001001003 takes nothing returns boolean
    return ( GetOwningPlayer(GetEnumUnit()) == Player(9) )
endfunction

function Trig_Untitled_Trigger_001_Func001Func001C takes nothing returns boolean
    if ( IsUnitInGroup(GetEnumUnit(), udg_fireburstcheck) == true ) then
        return false
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Func001A takes nothing returns nothing
    if ( Trig_Untitled_Trigger_001_Func001Func001C() ) then
        call UnitDamageTargetBJ( udg_geomancer, GetEnumUnit(), ( udg_fireburstdamage + ( I2R(GetUnitAbilityLevelSwapped('A004', udg_geomancer)) * I2R(GetHeroStatBJ(bj_HEROSTAT_AGI, udg_geomancer, true)) ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE )
        call GroupAddUnitSimple( GetEnumUnit(), udg_fireburstcheck )
    else
    endif
endfunction

function Trig_fire_burst_movement takes nothing returns nothing
    call SetUnitPositionLoc( udg_fireburst, PolarProjectionBJ(GetUnitLoc(udg_fireburst), 40.00, AngleBetweenPoints(GetUnitLoc(udg_geomancer), udg_fireburstlocation)) )
    call ForGroupBJ( GetUnitsInRangeOfLocMatching(( 120.00 + ( 5.00 * I2R(GetUnitAbilityLevelSwapped('A004', udg_geomancer)) ) ), GetUnitLoc(udg_fireburst), Condition(function Trig_Untitled_Trigger_001_Func001001003)), function Trig_Untitled_Trigger_001_Func001A )
endfunction

function Trig_fire_burst_Actions takes nothing returns nothing
    local timer t
    set udg_fireburstlocation = GetSpellTargetLoc()
    set t = CreateTimer()
    call CreateNUnitsAtLoc( 1, 'h00J', GetOwningPlayer(udg_geomancer), GetUnitLoc(udg_geomancer), bj_UNIT_FACING )
    set udg_fireburst = GetLastCreatedUnit()
    call TimerStart(t,0.05,true,function Trig_fire_burst_movement)
    call TriggerSleepAction(1.00)
    call GroupRemoveGroup( udg_fireburstcheck, udg_fireburstcheck )
    call DestroyTimer(t)
    call RemoveUnit(udg_fireburst)
    set udg_fireburstcheck = null
    set udg_fireburst = null
    set t = null
endfunction

//===========================================================================
function InitTrig_fire_burst takes nothing returns nothing
    set gg_trg_fire_burst = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_fire_burst, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_fire_burst, Condition( function Trig_fire_burst_Conditions ) )
    call TriggerAddAction( gg_trg_fire_burst, function Trig_fire_burst_Actions )
endfunction

EDIT2:
hehe got it fully working now!
JASS:
function Trig_fire_burst_Conditions takes nothing returns boolean
    if ( GetSpellAbilityUnit() == udg_geomancer ) then
        return true
    endif
    if ( GetSpellAbilityId() == 'A004' ) then
        return true
    endif
    return true
endfunction

function Trig_Untitled_Trigger_001_Copy_Func001001003 takes nothing returns boolean
    return ( IsUnitInGroup(GetEnumUnit(), udg_fireburstcheck) == false )
endfunction

function Trig_fire_burst_movement takes nothing returns nothing
    local group g
    local unit u
    call SetUnitPositionLoc( udg_fireburst, PolarProjectionBJ(GetUnitLoc(udg_fireburst), 40.00, AngleBetweenPoints(GetUnitLoc(udg_fireburst), udg_fireburstlocation)) )
    set g = GetUnitsInRangeOfLocAll(( 150.00 + ( 5.00 * I2R(GetUnitAbilityLevelSwapped('A004', udg_geomancer)) ) ), GetUnitLoc(udg_fireburst))
    loop
        set u = FirstOfGroup(g)
        exitwhen u==null
        if  IsUnitInGroup(u, udg_fireburstcheck) == false then
            if  IsUnitEnemy( u, GetOwningPlayer(udg_geomancer))==true then
            call GroupRemoveUnit(g,u)
            call UnitDamageTargetBJ( udg_geomancer, u, ( udg_fireburstdamage + ( I2R(GetUnitAbilityLevelSwapped('A004', udg_geomancer)) * I2R(GetHeroStatBJ(bj_HEROSTAT_AGI, udg_geomancer, true)) ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE )
            call GroupAddUnit(udg_fireburstcheck, u)
            endif
        endif
    endloop
endfunction

function Trig_fire_burst_Actions takes nothing returns nothing
    local timer t
    set udg_fireburstlocation = GetSpellTargetLoc()
    set t = CreateTimer()
    call CreateNUnitsAtLoc( 1, 'h00J', GetOwningPlayer(udg_geomancer), GetUnitLoc(udg_geomancer), bj_UNIT_FACING )
    set udg_fireburst = GetLastCreatedUnit()
    call TimerStart(t,0.05,true,function Trig_fire_burst_movement)
    call TriggerSleepAction(1.00)
    call GroupRemoveGroup( udg_fireburstcheck, udg_fireburstcheck )
    call DestroyTimer(t)
    call RemoveUnit(udg_fireburst)
    set udg_fireburstcheck = null
    set udg_fireburst = null
    set t = null
endfunction

//===========================================================================
function InitTrig_fire_burst takes nothing returns nothing
    set gg_trg_fire_burst = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_fire_burst, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_fire_burst, Condition( function Trig_fire_burst_Conditions ) )
    call TriggerAddAction( gg_trg_fire_burst, function Trig_fire_burst_Actions )
endfunction
 
Last edited:
Level 14
Joined
Oct 18, 2008
Messages
1,588
"How can you make an auto cast ability (based on fire arrow) deal strength x level of ability for unit? SOLVED"

Way too easy... I've been working on things like these in the last days so...
  • FIRE ARROW TARGET
    • Events
      • Unit - A unit begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Fire Arrows
    • Actions
      • Set FATarget = (Target unit of ability being cast)
  • FIRE ARROW
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fire Arrows
    • Actions
      • Unit - Cause (Casting unit) to damage FATarget, dealing ((Real((Agility of FATarget (Include bonuses)))) x (Real((Level of Searing Arrows for (Casting unit))))) damage of attack type Normal and damage type Normal
I think that works
 
Level 17
Joined
Jun 17, 2010
Messages
2,275
  • Fire Arrow
    • Events
      • Unit - Unit starts the effect of an ability
    • Conditions
      • Ability being cast equal to Fire Arrow
    • Actions
      • Set LevelOfFireArrow = (level of ability being cast)
      • Set FireArrowDamage = (Real(LevelOfFire) x (strength of (triggering unit)
      • -------------------
      • Unit - Damage (target of ability being cast) for FireArrowDamage.....
Try that
 
Level 14
Joined
Oct 18, 2008
Messages
1,588
  • Fire Arrow
    • Events
      • Unit - Unit starts the effect of an ability
    • Conditions
      • Ability being cast equal to Fire Arrow
    • Actions
      • Set LevelOfFireArrow = (level of ability being cast)
      • Set FireArrowDamage = (Real(LevelOfFire) x (strength of (triggering unit)
      • -------------------
      • Unit - Damage (target of ability being cast) for FireArrowDamage.....
Try that

For me it's buggy because when the effect starts, the ability could do it's own removelocation and etc. So I usually make a pretarget trigger, but it can work too
 
Level 6
Joined
Apr 26, 2007
Messages
225
I solved it by making a spell based on battle roar and deactivated the buff. When the ability is cast, for 15 sec the hero dead extra dmg at the cost of mana with a cooldown of 30 sec. It's not an auto cast but i find it beter that way its more custom i prefer it that way. You cant deactivate it either and i also prefer it that way lol.

I got another question, i made a spell based on chain lightning that is called chain lightning arrow. the hero has an animation of attack and fire a chain lightning when casting it, it should bounce on 4 targets. I wan that spell to deal the damage it's supose to plus (agi x spell level) so i made a trigger for the whole spell, the actual spell cast only to one target and deals no damage. Here is the trigger (a bit of a mess but i dont know how to make it shorter)

The spell is a bit messy, there's alway a lightning that go hit the same door, even if i'm really far... Anyway to fix this or make a beter trigger? I was thinking about doing it in jass but with my knowlage it will take 1~2 hours and i dont have the time today nor tomorrow so i touth of asking if it can be working correctely in gui..
  • chain lightning arrow
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Chain Lightning Arrow
    • Actions
      • Animation - Play ranger's attack animation
      • Unit - Cause ranger to damage (Target unit of ability being cast), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
      • Set chainlightningarrowunit = (Target unit of ability being cast)
      • Wait 0.20 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Target unit of ability being cast)) matching ((Owner of (Target unit of ability being cast)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[1] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
      • Wait 0.20 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[2] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
      • Wait 0.20 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[3] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
      • Wait 0.20 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 4
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Triggering unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[4] = (Last created lightning effect)
              • Set chainlightningarrowunit = (Picked unit)
          • Wait 0.20 seconds
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 7
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Triggering unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[5] = (Last created lightning effect)
              • Set chainlightningarrowunit = (Picked unit)
          • Wait 0.20 seconds
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 10
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[6] = (Last created lightning effect)
          • Wait 0.20 seconds
        • Else - Actions
      • Wait 1.00 seconds
      • Lightning - Destroy chainlightningarrowspfx[1]
      • Lightning - Destroy chainlightningarrowspfx[2]
      • Lightning - Destroy chainlightningarrowspfx[3]
      • Lightning - Destroy chainlightningarrowspfx[4]
      • Lightning - Destroy chainlightningarrowspfx[5]
      • Lightning - Destroy chainlightningarrowspfx[6]
      • Set chainlightningarrowunit = No unit
 
Level 14
Joined
Oct 18, 2008
Messages
1,588
1: "Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)"

"(Position of (Picked unit))"

LEAKS LIKE HELL

2:(Position of (Target unit of ability being cast)) matching ((Owner of (Target unit of ability being cast)) Equal to Player 9 (Gray)))
ˇ ˇˇˇˇˇˇˇˇˇˇˇˇˇˇREPLACE WITHˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ
Owner of (MATCHING UNIT) Equal to Player 9 (Gray)
Set it to this else it'll do weird things-I'm wondering it even works! (1st Lightning effect's target)
 
Level 6
Joined
Apr 26, 2007
Messages
225
It doesn't matter... I dont fix leaks at the moment i'm waiting tioll i have a descent map because i;m not familiar with leaks (dont know how to fix them unless i have the page where it tells them) so it would take time and i just dont feel like it loll
 
Level 6
Joined
Apr 26, 2007
Messages
225
I guess i could... well i'll think about it... not that i dont trust you.. it's just that i had work stolen in the past and i put a lot of time in this map, with my skills it dont give something that great but i guess its still my best..

Still i'll really consider it because it would be great as i have a great deal of triggers in my map but i;m far to be done. i plan on having 6 hero each with 4 skill per spell book in 4 spell book, and 4 more skill epr spell book buyable with wood, each skill triggered as it deal stat damage..and thats just the heros

I'm thinking aobut waiting for an official release to remove leaks but there will be a lot of codage so it it a good idea?
 
Level 14
Joined
Oct 18, 2008
Messages
1,588
Well you can wait nearly until the release, but consider that when you finish the map you'll have to try it until the end, and with so many leaks your PC will freeze at half-time :D Anyway I'm making a map with the same style :) The differences are it'll have more heroes instead of 4spellbooks/heroes (lol) and it'll be an ORPG if I finish it :)

Edit: Could you tell me which lgightningh hit the door? (1st/2nd/3rd etc.)
 
Level 6
Joined
Apr 26, 2007
Messages
225
I'm not sure... It's weird... There's a lightning that goes from me to the first enemy, the second go to another enemy and so on but there's a lightning that go to the door but like it wasnt part of the chain, it break it. Maybe it's the alst one...(cant realy see it quick enough)

If there's a way to make this jass it would be great.
 
Level 6
Joined
Apr 26, 2007
Messages
225
Yeah your right ill try that and tell the results here when i got some. For now, i took a 2 days break from mapping for now, i dont know if i will be mapping today nor tomorow as i dont have much time right now. Thanks for helping me tho

EDIT: There's a problem i have i'd liek someone to explain it piss me off so dam bad!

The function: Unit - Pick every unit Matching condition seem to not work... Every time i try to make a trigger that pick every unit in a region owned by player gray, it just dont pick any unit even tho i'm surounded by gray's unit...Ex:

  • chain lightning arrow GUI
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Chain Lightning Arrow
    • Actions
      • Animation - Play ranger's attack animation
      • Unit - Cause ranger to damage (Target unit of ability being cast), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
      • Set chainlightningarrowunit = (Target unit of ability being cast)
      • Game - Display to (All players) the text: primary unit
      • Wait 2.00 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Target unit of ability being cast)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[1] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
          • Game - Display to (All players) the text: secondary unit
      • Wait 2.00 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[2] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
          • Game - Display to (All players) the text: third unit
      • Wait 2.00 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[3] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
          • Game - Display to (All players) the text: fourth unit
      • Wait 2.00 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 4
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Triggering unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[4] = (Last created lightning effect)
              • Set chainlightningarrowunit = (Picked unit)
              • Game - Display to (All players) the text: fifth unit |cffff00...
          • Wait 2.00 seconds
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 7
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Triggering unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[5] = (Last created lightning effect)
              • Set chainlightningarrowunit = (Picked unit)
              • Game - Display to (All players) the text: sixth unit |cffff00...
          • Wait 2.00 seconds
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 10
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[6] = (Last created lightning effect)
              • Game - Display to (All players) the text: seventh unit |cffff...
          • Wait 2.00 seconds
        • Else - Actions
      • Wait 5.00 seconds
      • Lightning - Destroy chainlightningarrowspfx[1]
      • Lightning - Destroy chainlightningarrowspfx[2]
      • Lightning - Destroy chainlightningarrowspfx[3]
      • Lightning - Destroy chainlightningarrowspfx[4]
      • Lightning - Destroy chainlightningarrowspfx[5]
      • Lightning - Destroy chainlightningarrowspfx[6]
      • Set chainlightningarrowunit = No unit
All that happens is my hero cast the spell, it hit an enemy with lightning and write "primary unit", nothing else happens...
 
Last edited:
Level 14
Joined
Oct 18, 2008
Messages
1,588
Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Target unit of ability being cast)) Equal to Player 9 (Gray)))) and do (Actions)

You write a wrong match... ((Owner of (Target unit of ability being cast)) Equal to Player 9 (Gray)))) It's wrong!
Try this: ((Owner of (Mathing unit) Equal to Player 9 (Gray))))
 
Level 6
Joined
Apr 26, 2007
Messages
225
I got it working!! I get all 4 debug text message and the others only occur when the spell is high level enough

  • chain lightning arrow GUI
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Chain Lightning Arrow
    • Actions
      • Animation - Play ranger's attack animation
      • Unit - Cause ranger to damage (Target unit of ability being cast), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
      • Set chainlightningarrowunit = (Target unit of ability being cast)
      • Game - Display to (All players) the text: primary unit
      • Wait 0.20 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[1] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
          • Game - Display to (All players) the text: secondary unit
      • Wait 0.20 seconds
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[2] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
          • Game - Display to (All players) the text: third unit
      • Wait 0.20 seconds
      • Lightning - Destroy chainlightningarrowspfx[1]
      • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
          • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
          • Set chainlightningarrowspfx[3] = (Last created lightning effect)
          • Set chainlightningarrowunit = (Picked unit)
          • Game - Display to (All players) the text: fourth unit
      • Wait 0.20 seconds
      • Lightning - Destroy chainlightningarrowspfx[2]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 4
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[4] = (Last created lightning effect)
              • Set chainlightningarrowunit = (Picked unit)
              • Game - Display to (All players) the text: fifth unit |cffff00...
        • Else - Actions
      • Wait 0.20 seconds
      • Lightning - Destroy chainlightningarrowspfx[3]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Greater than or equal to 7
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[5] = (Last created lightning effect)
              • Set chainlightningarrowunit = (Picked unit)
              • Game - Display to (All players) the text: sixth unit |cffff00...
        • Else - Actions
      • Wait 0.20 seconds
      • Lightning - Destroy chainlightningarrowspfx[4]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Chain Lightning Arrow for ranger) Equal to 10
        • Then - Actions
          • Unit Group - Pick every unit in (Random 1 units from (Units within 512.00 of (Position of chainlightningarrowunit) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (chainarrowdamage + ((Real((Level of Chain Lightning Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Lightning
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of chainlightningarrowunit) to target (Position of (Picked unit))
              • Set chainlightningarrowspfx[6] = (Last created lightning effect)
              • Game - Display to (All players) the text: seventh unit |cffff...
        • Else - Actions
      • Set chainlightningarrowunit = No unit
      • Wait 0.20 seconds
      • Lightning - Destroy chainlightningarrowspfx[5]
      • Wait 0.20 seconds
      • Lightning - Destroy chainlightningarrowspfx[6]
You actualy made me figure a bit more about unit groups like picked unit wont occur when the group is made you need to put matching unit. Thanks! You deserve 2 rep hehe

EDIT: I made a spell based on channel, it's a multi shot that you cast (has cooldown) and will freeze enemies. It attack 4 random units.

The spell start, the unit stop and play the animation attack, like it's supose to but nothing else happens after, my hero start attacking the creeps like nothing was supose to happen...Any idea?
  • frost barage
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Frost Barage
    • Actions
      • Wait 1.00 seconds
      • Unit - Order ranger to Stop
      • Animation - Play ranger's attack animation
      • Unit Group - Pick every unit in (Random 4 units from (Units within 512.00 of (Position of ranger) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Frost Arrow for (Owner of ranger) at (Position of ranger) facing Default building facing degrees
          • Unit Group - Add (Last created unit) to frostarrowgroup
          • Unit - Order (Last created unit) to Neutral Naga Sea Witch - Frost Arrows (Picked unit)
          • Unit Group - Add (Picked unit) to frostbarragetargets
      • Wait 0.25 seconds
      • Unit Group - Pick every unit in frostarrowgroup and do (Actions)
        • Loop - Actions
          • Unit - Remove (Picked unit) from the game
      • Unit Group - Pick every unit in frostarrowgroup and do (Actions)
        • Loop - Actions
          • Unit - Cause ranger to damage (Picked unit), dealing (frostarrowdamage + ((Real((Level of Frost Barage for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Cold
          • Unit - Pause (Picked unit)
          • Special Effect - Create a special effect attached to the origin of (Picked unit) using Doodads\Icecrown\Rocks\IceBlock\IceBlock.mdl
          • Special Effect - Destroy (Last created special effect)
      • Wait 1.00 seconds
      • Unit Group - Pick every unit in frostarrowgroup and do (Actions)
        • Loop - Actions
          • Unit - Unpause (Picked unit)
EDIT2: Fixed it by myself never mind hehe lol
 
Last edited:
Level 6
Joined
Apr 26, 2007
Messages
225
Sorry about double post but it's a new question so re editing a post doesnt mean it will be seen

I made a spell called tripple elemental arrow. You cast it based on forked lightning (chain is already used) and it will chain to 4 units, dealing damage to every units within (300 + 10 x spell level area) of each of these 4 units. The spell works, but it doesnt alway hit 4 units.
I set debug messages in the trigger, wich tells me on how many unit it bounced. I alway test it in the same group of monsters, wich i put in the map. They are testing creeps there are about 20 of them so it shouldnt be a problem to pick 4... Sometimes the spell hit all 4 units, sometimes 3, sometimes 2 but never just 1. Can anyone light me up on that one? Ive never seen that...

  • tripple elemental arrow
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Tripple Elemental Arrow
    • Actions
      • Set trippleelementalarrowunit = (Target unit of ability being cast)
      • Wait 0.10 seconds
      • Unit Group - Pick every unit in (Units within 700.00 of (Position of ranger) matching ((Matching unit) Equal to trippleelementalarrowunit)) and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
          • Special Effect - Destroy (Last created special effect)
          • Game - Display to (All players) the text: primary unit
          • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
          • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Picked unit)) Equal to Player 9 (Gray))) and do (Actions)
            • Loop - Actions
              • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
      • Wait 0.10 seconds
      • Unit Group - Pick every unit in trippleelementalarrowgroup and do (Actions)
        • Loop - Actions
          • Set trippleelementalarrowunit = (Picked unit)
          • Unit Group - Pick every unit in (Random 1 units from (Units within 600.00 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
              • Special Effect - Destroy (Last created special effect)
              • Game - Display to (All players) the text: secondary unit
              • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of trippleelementalarrowunit) to target (Position of (Picked unit))
              • Set trippleelementalarrowspfx[2] = (Last created lightning effect)
              • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray))) and do (Actions)
                • Loop - Actions
                  • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
          • Unit Group - Remove (Picked unit) from trippleelementalarrowgroup
      • Wait 0.10 seconds
      • Unit Group - Pick every unit in trippleelementalarrowgroup and do (Actions)
        • Loop - Actions
          • Set trippleelementalarrowunit = (Picked unit)
          • Unit Group - Pick every unit in (Random 1 units from (Units within 600.00 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
              • Special Effect - Destroy (Last created special effect)
              • Game - Display to (All players) the text: third unit
              • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of trippleelementalarrowunit) to target (Position of (Picked unit))
              • Set trippleelementalarrowspfx[3] = (Last created lightning effect)
              • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray))) and do (Actions)
                • Loop - Actions
                  • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
          • Unit Group - Remove (Picked unit) from trippleelementalarrowgroup
      • Wait 0.10 seconds
      • Unit Group - Pick every unit in trippleelementalarrowgroup and do (Actions)
        • Loop - Actions
          • Set trippleelementalarrowunit = (Picked unit)
          • Unit Group - Pick every unit in (Random 1 units from (Units within 600.00 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
              • Special Effect - Destroy (Last created special effect)
              • Game - Display to (All players) the text: fourth unit
              • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
              • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of trippleelementalarrowunit) to target (Position of (Picked unit))
              • Set trippleelementalarrowspfx[4] = (Last created lightning effect)
              • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray))) and do (Actions)
                • Loop - Actions
                  • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
          • Unit Group - Remove (Picked unit) from trippleelementalarrowgroup
      • Wait 0.10 seconds
      • Lightning - Destroy trippleelementalarrowspfx[2]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Acid Bomb for ranger) Greater than or equal to 4
        • Then - Actions
          • Unit Group - Pick every unit in trippleelementalarrowgroup and do (Actions)
            • Loop - Actions
              • Set trippleelementalarrowunit = (Picked unit)
              • Unit Group - Pick every unit in (Random 1 units from (Units within 600.00 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
                • Loop - Actions
                  • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
                  • Special Effect - Destroy (Last created special effect)
                  • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of trippleelementalarrowunit) to target (Position of (Picked unit))
                  • Set trippleelementalarrowspfx[5] = (Last created lightning effect)
                  • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
                  • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray))) and do (Actions)
                    • Loop - Actions
                      • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
              • Unit Group - Remove (Picked unit) from trippleelementalarrowgroup
        • Else - Actions
      • Wait 0.10 seconds
      • Lightning - Destroy trippleelementalarrowspfx[3]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Acid Bomb for ranger) Greater than or equal to 7
        • Then - Actions
          • Unit Group - Pick every unit in trippleelementalarrowgroup and do (Actions)
            • Loop - Actions
              • Set trippleelementalarrowunit = (Picked unit)
              • Unit Group - Pick every unit in (Random 1 units from (Units within 600.00 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
                • Loop - Actions
                  • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
                  • Special Effect - Destroy (Last created special effect)
                  • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of trippleelementalarrowunit) to target (Position of (Picked unit))
                  • Set trippleelementalarrowspfx[6] = (Last created lightning effect)
                  • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
                  • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray))) and do (Actions)
                    • Loop - Actions
                      • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
              • Unit Group - Remove (Picked unit) from trippleelementalarrowgroup
        • Else - Actions
      • Wait 0.10 seconds
      • Lightning - Destroy trippleelementalarrowspfx[4]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Acid Bomb for ranger) Equal to 10
        • Then - Actions
          • Unit Group - Pick every unit in trippleelementalarrowgroup and do (Actions)
            • Loop - Actions
              • Set trippleelementalarrowunit = (Picked unit)
              • Unit Group - Pick every unit in (Random 1 units from (Units within 600.00 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray)))) and do (Actions)
                • Loop - Actions
                  • Special Effect - Create a special effect at (Position of trippleelementalarrowunit) using war3mapImported\Firebomb.mdx
                  • Special Effect - Destroy (Last created special effect)
                  • Lightning - Create a Chain Lightning - Secondary lightning effect from source (Position of trippleelementalarrowunit) to target (Position of (Picked unit))
                  • Set trippleelementalarrowspfx[7] = (Last created lightning effect)
                  • Unit Group - Add (Picked unit) to trippleelementalarrowgroup
                  • Unit Group - Pick every unit in (Units within (300.00 + (10.00 x (Real((Level of Tripple Elemental Arrow for ranger))))) of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to Player 9 (Gray))) and do (Actions)
                    • Loop - Actions
                      • Unit - Cause ranger to damage (Picked unit), dealing (trippleelementalarrow + ((Real((Level of Tripple Elemental Arrow for ranger))) x (Real((Agility of ranger (Include bonuses)))))) damage of attack type Spells and damage type Fire
              • Unit Group - Remove (Picked unit) from trippleelementalarrowgroup
        • Else - Actions
      • Wait 0.10 seconds
      • Lightning - Destroy trippleelementalarrowspfx[5]
      • Wait 0.10 seconds
      • Lightning - Destroy trippleelementalarrowspfx[6]
      • Wait 0.10 seconds
      • Lightning - Destroy trippleelementalarrowspfx[7]
EDIT: i think i figured it out! i dont have time to test but it might be because the unit that is set to "trippleelementalarrowunit" dies during the spell, so it can't keep on chaining.
 
Last edited:
Top