Charapanga
New Member
- Reaction score
- 46
I'm trying to make a Slide ninja slide - like revive trigger...but it doesn't work...
the Unit/player variables are globals set in the init trigger..
the Unit/player variables are globals set in the init trigger..
JASS:
scope Revive initializer Init
private function FGg takes nothing returns nothing
local unit u = GetEnumUnit()
local player p = GetOwningPlayer(u)
local location l = GetUnitLoc(u)
local real x = GetLocationX(l)
local real y = GetLocationY(l)
local real face = GetUnitFacing(u)
if p == Red then
call ReviveHero(HeroRed, x, y, true)
call SetUnitFacing(HeroRed, face)
elseif p == Blue then
call ReviveHero(HeroBlue, x, y, true)
call SetUnitFacing(HeroBlue, face)
elseif p == Teal then
call ReviveHero(HeroTeal, x, y, true)
call SetUnitFacing(HeroTeal, face)
elseif p == Purple then
call ReviveHero(HeroPurple, x, y, true)
call SetUnitFacing(HeroPurple, face)
elseif p == Yellow then
call ReviveHero(HeroYellow, x, y, true)
call SetUnitFacing(HeroYellow, face)
elseif p == Orange then
call ReviveHero(HeroOrange, x, y, true)
call SetUnitFacing(HeroOrange, face)
elseif p == Green then
call ReviveHero(HeroGreen, x, y, true)
call SetUnitFacing(HeroGreen, face)
elseif p == Pink then
call ReviveHero(HeroPink, x, y, true)
call SetUnitFacing(HeroPink, face)
elseif p == Grey then
call ReviveHero(HeroGrey, x, y, true)
call SetUnitFacing(HeroGrey, face)
endif
set u = null
call RemoveLocation(l)
set l = null
endfunction
private function Matching takes nothing returns boolean
return GetUnitTypeId(GetFilterUnit()) == 039;hfoo039;
endfunction
private function Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local location l = GetUnitLoc(u)
local real x = GetLocationX(l)
local real y = GetLocationY(l)
local group g = CreateGroup()
call GroupEnumUnitsInRange(g, x, y, 32, Filter(function Matching))
call ForGroup(g, function FGg)
call RemoveLocation(l)
set l = null
set u = null
call DestroyGroup(g)
set g = null
endfunction
//===========================================================================
private function Init takes nothing returns nothing
set gg_trg_Revive = CreateTrigger( )
call TriggerAddAction( gg_trg_Revive, function Actions )
endfunction
endscope
JASS:
scope Replacer initializer DM
private function Trig_Death_Marker_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == 039;HERO039;
endfunction
private function Trig_Death_Marker_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local location l = GetUnitLoc(u)
call CreateNUnitsAtLoc( 1, 039;hfoo039;, GetOwningPlayer(u), l, GetRandomReal(1, 360))
call TriggerRegisterUnitInRange(gg_trg_Revive, bj_lastCreatedUnit, 32, CondTrue)
call RemoveLocation(l)
set l = null
set u = null
endfunction
//===========================================================================
private function DM takes nothing returns nothing
local integer index
local trigger t
set index = 0
set t = CreateTrigger( )
loop
call TriggerRegisterPlayerUnitEvent(t, Player(index), EVENT_PLAYER_UNIT_DEATH, CondTrue)
set index = index + 1
exitwhen index == bj_MAX_PLAYER_SLOTS
endloop
call TriggerAddCondition( t, Condition( function Trig_Death_Marker_Conditions ) )
call TriggerAddAction( t, function Trig_Death_Marker_Actions )
endfunction
endscope