1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  5. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  8. The raddest synthwave tracks were chosen - Check out our Music Contest #12 - Results and congratulate the winners!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

Omnislash from DotA 1.30.w3x
Variables
Initialization
Reveal
heal
revive
Omnislash
Omnislash
Slash
Below is a recent version of the spell
Slash Copy

		
Name Type Is Array Initial Value
gg group No
zetor unit No
Reveal
  Events
    Map initialization
  Conditions
  Actions
    Visibility - Create an initially Enabled visibility modifier for Player 1 (Red) emitting Visibility across (Playable map area)
heal
  Events
    Player - Player 1 (Red) skips a cinematic sequence
  Conditions
  Actions
    Unit Group - Pick every unit in (Units owned by Player 1 (Red)) and do (Actions)
      Loop - Actions
        Unit - Set mana of (Picked unit) to 100%
        Unit - Set life of (Picked unit) to 100%
        Unit - Reset ability cooldowns for (Picked unit)
revive
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
  Conditions
  Actions
    Wait 5.00 seconds
    Unit - Create 1 (Unit-type of (Triggering unit)) for Player 2 (Blue) at (Random point in (Playable map area)) facing Default building facing degrees
By Barathrum (Dark_Lord_12)


To import the spell:

Create a new trigger, convert it and replace the whole code with myne.

You will also need an ability, you can copy mine or create your own.

I used the ID A000, if you use an other, just change it.
This should have all functions of the DotA Omnislash spell.
//TESH.scrollpos=0
//TESH.alwaysfold=0

////////////////////////////////////////////////////////////////////////////
// By Barathrum (Dark_Lord_12)                                            //
//                                                                        //
//                                                                        //
// To import the spell:                                                   //
//                                                                        //
// Create a new trigger, convert it and replace the whole code with myne. //
//                                                                        //
// You will also need an ability, you can copy mine or create your own.   //
//                                                                        //
// I used the ID A000, if you use an other, just change it.               //
////////////////////////////////////////////////////////////////////////////

function Slash_Condition takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction
function Death takes nothing returns boolean
    return ( GetWidgetLife(GetFilterUnit()) <= 0) == false
endfunction

function Slash_Actions takes nothing returns nothing
 local unit caster = GetSpellAbilityUnit() // casting unit
 local location start_position = GetUnitLoc(caster)  // casting units original location when casted
 local group enemies = CreateGroup() // the group of units that will be hit by the spell
 local unit temp // the current slashed target
 local integer count = GetUnitAbilityLevel (caster, 'A000') * 5 // number of slashes (currently set to do 5 slashes x level of omnislash)
 local location temp_loc //location of temp (current slashed unit)
 local effect blinkEffect // the effect of caster (blink)
 local effect targetEffect // the effect of slashed unit (phoenix misle)
 local real delay = 0.10 // this is the delay between slashes. Currently 0.10
 
    call GroupEnumUnitsInRangeOfLoc(enemies, start_position, 750.0, Condition(function Death)) // the range of caster wich units will be picked for targets (currently 750 )
   
    call DestroyEffect( AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", GetUnitLoc (caster)))
        loop
        call TriggerSleepAction (delay)
        set temp = null
        set temp = GroupPickRandomUnit(enemies)
        loop
        if GetWidgetLife(temp) <= 0 then
        set temp = null
        set temp = GroupPickRandomUnit(enemies)
        else
        exitwhen caster != null
        endif
        endloop
        exitwhen temp == null or count <= 0
        if IsUnitEnemy(temp, GetOwningPlayer(caster)) then
            set temp_loc = GetUnitLoc(temp)
            call DestroyEffect( AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", GetUnitLoc (caster)))
            call SetUnitPositionLoc(caster, temp_loc)
            call SetUnitAnimation( caster, "attack" )
            call UnitDamageTarget(caster, temp, GetUnitAbilityLevel (caster, 'A000') * 50, true, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL, null) // the demage dealt (currently 75 x level of spell omnislash)
            set targetEffect = AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile_mini.mdl",temp,"chest")
            call DestroyEffect (targetEffect)
            set count = count - 1
            call RemoveLocation(temp_loc)
        endif
        //call GroupRemoveUnit(enemies, temp)
        endloop
        call RemoveLocation(start_position)
    call DestroyGroup(enemies)
    set caster = null
set start_position = null
set enemies = null
set temp = null
call RemoveLocation (temp_loc)
set temp_loc = null
call DestroyEffect (blinkEffect)
call DestroyEffect (targetEffect)
endfunction
function InitTrig_Slash takes nothing returns nothing
 set gg_trg_Slash = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Slash, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(gg_trg_Slash, Condition(function Slash_Condition))
    call TriggerAddAction(gg_trg_Slash, function Slash_Actions)
endfunction
 
This version does not go multiple times on the same target.
//TESH.scrollpos=0
//TESH.alwaysfold=0

////////////////////////////////////////////////////////////////////////////
// By Barathrum (Dark_Lord_12)                                            //
//                                                                        //
//                                                                        //
// To import the spell:                                                   //
//                                                                        //
// Create a new trigger, convert it and replace the whole code with myne. //
//                                                                        //
// You will also need an ability, you can copy mine or create your own.   //
//                                                                        //
// I used the ID A000, if you use an other, just change it.               //
////////////////////////////////////////////////////////////////////////////

function Slash_Condition takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction
function Trig_Untitled_Trigger_001_Func001002003 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Slash_Actions takes nothing returns nothing
 local unit caster = GetSpellAbilityUnit() // casting unit
 local location start_position = GetUnitLoc(caster)  // casting units original location when casted
 local group enemies = CreateGroup() // the group of units that will be hit by the spell
 local unit temp // the current slashed target
 local integer count = GetUnitAbilityLevel (caster, 'A000') * 5 // number of slashes (currently set to do 5 slashes x level of omnislash)
 local location temp_loc //location of temp (current slashed unit)
 local effect blinkEffect // the effect of caster (blink)
 local effect targetEffect // the effect of slashed unit (phoenix misle)
 local real delay = 0.10 // this is the delay between slashes. Currently 0.10
 
    call GroupEnumUnitsInRangeOfLoc(enemies, start_position, 750.0, Condition(function Trig_Untitled_Trigger_001_Func001002003)) // the range of caster wich units will be picked for targets (currently 750 )
   
    set blinkEffect = AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", GetUnitLoc (caster))
    call DestroyEffect (blinkEffect)
    loop
        call TriggerSleepAction (delay)
        set temp = FirstOfGroup(enemies)
        exitwhen temp == null or count == 0
        if IsUnitEnemy(temp, GetOwningPlayer(caster)) then
            set temp_loc = GetUnitLoc(temp)
            set blinkEffect = AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl", GetUnitLoc (caster))
            call DestroyEffect (blinkEffect)
            call SetUnitPositionLoc(caster, temp_loc)
            call SetUnitAnimation( caster, "attack" )
            call UnitDamageTarget(caster, temp, GetUnitAbilityLevel (caster, 'A000') * 75, true, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL, null) // the demage dealt (currently 75 x level of spell omnislash)
            set targetEffect = AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile_mini.mdl",temp,"chest")
            call DestroyEffect (targetEffect)
            set count = count - 1
            call RemoveLocation(temp_loc)
        endif
        call GroupRemoveUnit(enemies, temp)
        endloop
        call RemoveLocation(start_position)
    call DestroyGroup(enemies)
    set caster = null
set start_position = null
set enemies = null
set temp = null
call RemoveLocation (temp_loc)
endfunction
function InitTrig_Slash_Copy takes nothing returns nothing
 set gg_trg_Slash_Copy = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Slash_Copy, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(gg_trg_Slash_Copy, Condition(function Slash_Condition))
    call TriggerAddAction(gg_trg_Slash_Copy, function Slash_Actions)
endfunction