- Joined
- Jul 17, 2013
- Messages
- 544
Hi guys im trying to fix old map, this is what appears once i click to test map anyone knows how to fix it ? i got completly no idea View attachment 338174
and heres the map code
and heres the map code
JASS:
function s__HeroesData__allocate takes nothing returns integer
local integer this=udg_integer23
if(this!=0)then
set udg_integer23=udg_integers18[this]
else
set udg_integer24=udg_integer24+1
set this=udg_integer24
endif
if(this>1637)then
return 0
endif
set udg_integers19[this]=(this-1)*5
set udg_items02[this]=null
set udg_units04[this]=null
set udg_integers20[this]=0
set udg_booleans02[this]=false
set udg_booleans03[this]=false
set udg_booleans04[this]=false
set udg_reals01[this]=0
set udg_reals02[this]=0
set udg_integers21[this]=0
set udg_booleans05[this]=false
set udg_booleans06[this]=false
set udg_units06[this]=null
set udg_triggers06[this]=null
set udg_triggers07[this]=null
set udg_integers18[this]=-1
return this
endfunction
function s__HeroesData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers18[this]!=-1)then
return
endif
set udg_integers18[this]=udg_integer23
set udg_integer23=this
endfunction
function sc__Kananmuna__Data_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger75)
endfunction
function s__Kananmuna__Data__allocate takes nothing returns integer
local integer this=udg_integer57
if(this!=0)then
set udg_integer57=udg_integers49[this]
else
set udg_integer58=udg_integer58+1
set this=udg_integer58
endif
if(this>8190)then
return 0
endif
set udg_booleans19[this]=false
set udg_integers49[this]=-1
return this
endfunction
function sc__Kananmuna__Data_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers49[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger75)
set udg_integers49[this]=udg_integer57
set udg_integer57=this
endfunction
function sc__Stupefy__StupefySlideData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger74)
endfunction
function s__Stupefy__StupefySlideData__allocate takes nothing returns integer
local integer this=udg_integer55
if(this!=0)then
set udg_integer55=udg_integers48[this]
else
set udg_integer56=udg_integer56+1
set this=udg_integer56
endif
if(this>8190)then
return 0
endif
set udg_integers48[this]=-1
return this
endfunction
function sc__Stupefy__StupefySlideData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers48[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger74)
set udg_integers48[this]=udg_integer55
set udg_integer55=this
endfunction
function sc__Stupefy__StupefyData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger73)
endfunction
function s__Stupefy__StupefyData__allocate takes nothing returns integer
local integer this=udg_integer53
if(this!=0)then
set udg_integer53=udg_integers47[this]
else
set udg_integer54=udg_integer54+1
set this=udg_integer54
endif
if(this>8190)then
return 0
endif
set udg_triggers15[this]=CreateTrigger()
set udg_booleans18[this]=false
set udg_integers47[this]=-1
return this
endfunction
function sc__Stupefy__StupefyData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers47[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger73)
set udg_integers47[this]=udg_integer53
set udg_integer53=this
endfunction
function sc__Sektumsempra__SektumsempraBleedingData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger72)
endfunction
function s__Sektumsempra__SektumsempraBleedingData__allocate takes nothing returns integer
local integer this=udg_integer51
if(this!=0)then
set udg_integer51=udg_integers45[this]
else
set udg_integer52=udg_integer52+1
set this=udg_integer52
endif
if(this>8190)then
return 0
endif
set udg_integers45[this]=-1
return this
endfunction
function sc__Sektumsempra__SektumsempraBleedingData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers45[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger72)
set udg_integers45[this]=udg_integer51
set udg_integer51=this
endfunction
function sc__Sektumsempra__SektumsempraData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger71)
endfunction
function s__Sektumsempra__SektumsempraData__allocate takes nothing returns integer
local integer this=udg_integer49
if(this!=0)then
set udg_integer49=udg_integers44[this]
else
set udg_integer50=udg_integer50+1
set this=udg_integer50
endif
if(this>8190)then
return 0
endif
set udg_triggers14[this]=CreateTrigger()
set udg_booleans17[this]=false
set udg_integers44[this]=-1
return this
endfunction
function sc__Sektumsempra__SektumsempraData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers44[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger71)
set udg_integers44[this]=udg_integer49
set udg_integer49=this
endfunction
function s__Imperio__ImperioConfuseData__allocate takes nothing returns integer
local integer this=udg_integer47
if(this!=0)then
set udg_integer47=udg_integers43[this]
else
set udg_integer48=udg_integer48+1
set this=udg_integer48
endif
if(this>8190)then
return 0
endif
set udg_integers43[this]=-1
return this
endfunction
function s__Imperio__ImperioConfuseData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers43[this]!=-1)then
return
endif
set udg_integers43[this]=udg_integer47
set udg_integer47=this
endfunction
function sc__Imperio__ImperioData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger70)
endfunction
function s__Imperio__ImperioData__allocate takes nothing returns integer
local integer this=udg_integer45
if(this!=0)then
set udg_integer45=udg_integers42[this]
else
set udg_integer46=udg_integer46+1
set this=udg_integer46
endif
if(this>8190)then
return 0
endif
set udg_triggers12[this]=CreateTrigger()
set udg_booleans16[this]=false
set udg_integers42[this]=-1
return this
endfunction
function sc__Imperio__ImperioData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers42[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger70)
set udg_integers42[this]=udg_integer45
set udg_integer45=this
endfunction
function sc__Impedimenta__ImpedimentaFlyData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger69)
endfunction
function s__Impedimenta__ImpedimentaFlyData__allocate takes nothing returns integer
local integer this=udg_integer43
if(this!=0)then
set udg_integer43=udg_integers39[this]
else
set udg_integer44=udg_integer44+1
set this=udg_integer44
endif
if(this>8190)then
return 0
endif
set udg_booleans15[this]=false
set udg_integers39[this]=-1
return this
endfunction
function sc__Impedimenta__ImpedimentaFlyData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers39[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger69)
set udg_integers39[this]=udg_integer43
set udg_integer43=this
endfunction
function sc__Impedimenta__ImpedimentaData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger68)
endfunction
function s__Impedimenta__ImpedimentaData__allocate takes nothing returns integer
local integer this=udg_integer41
if(this!=0)then
set udg_integer41=udg_integers38[this]
else
set udg_integer42=udg_integer42+1
set this=udg_integer42
endif
if(this>8190)then
return 0
endif
set udg_triggers11[this]=CreateTrigger()
set udg_booleans14[this]=false
set udg_integers38[this]=-1
return this
endfunction
function sc__Impedimenta__ImpedimentaData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers38[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger68)
set udg_integers38[this]=udg_integer41
set udg_integer41=this
endfunction
function sc__Expelliarmus__FlyingWandData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger67)
endfunction
function s__Expelliarmus__FlyingWandData__allocate takes nothing returns integer
local integer this=udg_integer39
if(this!=0)then
set udg_integer39=udg_integers35[this]
else
set udg_integer40=udg_integer40+1
set this=udg_integer40
endif
if(this>8190)then
return 0
endif
set udg_booleans13[this]=false
set udg_integers35[this]=-1
return this
endfunction
function sc__Expelliarmus__FlyingWandData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers35[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger67)
set udg_integers35[this]=udg_integer39
set udg_integer39=this
endfunction
function sc__Expelliarmus__ExpelliarmusData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger66)
endfunction
function s__Expelliarmus__ExpelliarmusData__allocate takes nothing returns integer
local integer this=udg_integer37
if(this!=0)then
set udg_integer37=udg_integers34[this]
else
set udg_integer38=udg_integer38+1
set this=udg_integer38
endif
if(this>8190)then
return 0
endif
set udg_triggers10[this]=CreateTrigger()
set udg_booleans12[this]=false
set udg_integers34[this]=-1
return this
endfunction
function sc__Expelliarmus__ExpelliarmusData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers34[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger66)
set udg_integers34[this]=udg_integer37
set udg_integer37=this
endfunction
function sc__Crucio__Crucio_TortureData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger65)
endfunction
function s__Crucio__Crucio_TortureData__allocate takes nothing returns integer
local integer this=udg_integer35
if(this!=0)then
set udg_integer35=udg_integers32[this]
else
set udg_integer36=udg_integer36+1
set this=udg_integer36
endif
if(this>8190)then
return 0
endif
set udg_integers32[this]=-1
return this
endfunction
function sc__Crucio__Crucio_TortureData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers32[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger65)
set udg_integers32[this]=udg_integer35
set udg_integer35=this
endfunction
function sc__Crucio__CrucioData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger64)
endfunction
function s__Crucio__CrucioData__allocate takes nothing returns integer
local integer this=udg_integer33
if(this!=0)then
set udg_integer33=udg_integers31[this]
else
set udg_integer34=udg_integer34+1
set this=udg_integer34
endif
if(this>8190)then
return 0
endif
set udg_triggers09[this]=CreateTrigger()
set udg_booleans10[this]=false
set udg_integers31[this]=-1
return this
endfunction
function sc__Crucio__CrucioData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers31[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger64)
set udg_integers31[this]=udg_integer33
set udg_integer33=this
endfunction
function sc__AvadaKedavra__AvadaKedavraData_onDestroy takes integer this returns nothing
set udg_integer59=this
call TriggerEvaluate(udg_trigger63)
endfunction
function s__AvadaKedavra__AvadaKedavraData__allocate takes nothing returns integer
local integer this=udg_integer31
if(this!=0)then
set udg_integer31=udg_integers30[this]
else
set udg_integer32=udg_integer32+1
set this=udg_integer32
endif
if(this>8190)then
return 0
endif
set udg_triggers08[this]=CreateTrigger()
set udg_booleans09[this]=false
set udg_integers30[this]=-1
return this
endfunction
function sc__AvadaKedavra__AvadaKedavraData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers30[this]!=-1)then
return
endif
set udg_integer59=this
call TriggerEvaluate(udg_trigger63)
set udg_integers30[this]=udg_integer31
set udg_integer31=this
endfunction
function s__Casters__allocate takes nothing returns integer
local integer this=udg_integer29
if(this!=0)then
set udg_integer29=udg_integers28[this]
else
set udg_integer30=udg_integer30+1
set this=udg_integer30
endif
if(this>8190)then
return 0
endif
set udg_integers28[this]=-1
return this
endfunction
function s__Casters_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers28[this]!=-1)then
return
endif
set udg_integers28[this]=udg_integer29
set udg_integer29=this
endfunction
function s__vector__allocate takes nothing returns integer
local integer this=udg_integer27
if(this!=0)then
set udg_integer27=udg_integers27[this]
else
set udg_integer28=udg_integer28+1
set this=udg_integer28
endif
if(this>8190)then
return 0
endif
set udg_integers27[this]=-1
return this
endfunction
function s__vector_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers27[this]!=-1)then
return
endif
set udg_integers27[this]=udg_integer27
set udg_integer27=this
endfunction
function s__MissileData__allocate takes nothing returns integer
local integer this=udg_integer25
if(this!=0)then
set udg_integer25=udg_integers26[this]
else
set udg_integer26=udg_integer26+1
set this=udg_integer26
endif
if(this>8190)then
return 0
endif
set udg_booleans07[this]=false
set udg_booleans08[this]=false
set udg_integers26[this]=-1
return this
endfunction
function s__MissileData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers26[this]!=-1)then
return
endif
set udg_integers26[this]=udg_integer25
set udg_integer25=this
endfunction
function ABC_H2I takes handle h returns integer
return GetHandleId(h)
endfunction
function GetTimerCollisionA takes nothing returns integer
return udg_integer07
endfunction
function SetTimerStructA takes timer t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_timers04[i]==null then
set udg_integers05[i]=s
set udg_timers04[i]=t
return
endif
loop
set i=i+1
exitwhen udg_timers04[i]==null
endloop
set udg_integers05[i]=s
set udg_timers04[i]=t
return
endfunction
function GetTimerStructA takes timer t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_timers04[i]==t then
return udg_integers05[i]
endif
loop
set i=i+1
exitwhen udg_timers04[i]==t
endloop
return udg_integers05[i]
endfunction
function ClearTimerStructA takes timer t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_timers04[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers05[ik]
loop
set i=i+1
exitwhen udg_timers04[i]==null
endloop
set udg_timers04[ik]=udg_timers04[i-1]
set udg_integers05[ik]=udg_integers05[i-1]
set udg_timers04[i-1]=null
return ret
endfunction
function GetTimerCollisionB takes nothing returns integer
return udg_integer08
endfunction
function SetTimerStructB takes timer t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_timers05[i]==null then
set udg_integers06[i]=s
set udg_timers05[i]=t
return
endif
loop
set i=i+1
exitwhen udg_timers05[i]==null
endloop
set udg_integers06[i]=s
set udg_timers05[i]=t
return
endfunction
function GetTimerStructB takes timer t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_timers05[i]==t then
return udg_integers06[i]
endif
loop
set i=i+1
exitwhen udg_timers05[i]==t
endloop
return udg_integers06[i]
endfunction
function ClearTimerStructB takes timer t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_timers05[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers06[ik]
loop
set i=i+1
exitwhen udg_timers05[i]==null
endloop
set udg_timers05[ik]=udg_timers05[i-1]
set udg_integers06[ik]=udg_integers06[i-1]
set udg_timers05[i-1]=null
return ret
endfunction
function GetTimerCollisionC takes nothing returns integer
return udg_integer09
endfunction
function SetTimerStructC takes timer t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_timers06[i]==null then
set udg_integers07[i]=s
set udg_timers06[i]=t
return
endif
loop
set i=i+1
exitwhen udg_timers06[i]==null
endloop
set udg_integers07[i]=s
set udg_timers06[i]=t
return
endfunction
function GetTimerStructC takes timer t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_timers06[i]==t then
return udg_integers07[i]
endif
loop
set i=i+1
exitwhen udg_timers06[i]==t
endloop
return udg_integers07[i]
endfunction
function ClearTimerStructC takes timer t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_timers06[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers07[ik]
loop
set i=i+1
exitwhen udg_timers06[i]==null
endloop
set udg_timers06[ik]=udg_timers06[i-1]
set udg_integers07[ik]=udg_integers07[i-1]
set udg_timers06[i-1]=null
return ret
endfunction
function GetTriggerCollisionA takes nothing returns integer
return udg_integer10
endfunction
function SetTriggerStructA takes trigger t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_triggers02[i]==null then
set udg_integers08[i]=s
set udg_triggers02[i]=t
return
endif
loop
set i=i+1
exitwhen udg_triggers02[i]==null
endloop
set udg_integers08[i]=s
set udg_triggers02[i]=t
return
endfunction
function GetTriggerStructA takes trigger t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_triggers02[i]==t then
return udg_integers08[i]
endif
loop
set i=i+1
exitwhen udg_triggers02[i]==t
endloop
return udg_integers08[i]
endfunction
function ClearTriggerStructA takes trigger t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_triggers02[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers08[ik]
loop
set i=i+1
exitwhen udg_triggers02[i]==null
endloop
set udg_triggers02[ik]=udg_triggers02[i-1]
set udg_integers08[ik]=udg_integers08[i-1]
set udg_triggers02[i-1]=null
return ret
endfunction
function GetTriggerCollisionB takes nothing returns integer
return udg_integer11
endfunction
function SetTriggerStructB takes trigger t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_triggers03[i]==null then
set udg_integers09[i]=s
set udg_triggers03[i]=t
return
endif
loop
set i=i+1
exitwhen udg_triggers03[i]==null
endloop
set udg_integers09[i]=s
set udg_triggers03[i]=t
return
endfunction
function GetTriggerStructB takes trigger t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_triggers03[i]==t then
return udg_integers09[i]
endif
loop
set i=i+1
exitwhen udg_triggers03[i]==t
endloop
return udg_integers09[i]
endfunction
function ClearTriggerStructB takes trigger t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_triggers03[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers09[ik]
loop
set i=i+1
exitwhen udg_triggers03[i]==null
endloop
set udg_triggers03[ik]=udg_triggers03[i-1]
set udg_integers09[ik]=udg_integers09[i-1]
set udg_triggers03[i-1]=null
return ret
endfunction
function GetTriggerCollisionC takes nothing returns integer
return udg_integer12
endfunction
function SetTriggerStructC takes trigger t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_triggers04[i]==null then
set udg_integers10[i]=s
set udg_triggers04[i]=t
return
endif
loop
set i=i+1
exitwhen udg_triggers04[i]==null
endloop
set udg_integers10[i]=s
set udg_triggers04[i]=t
return
endfunction
function GetTriggerStructC takes trigger t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_triggers04[i]==t then
return udg_integers10[i]
endif
loop
set i=i+1
exitwhen udg_triggers04[i]==t
endloop
return udg_integers10[i]
endfunction
function ClearTriggerStructC takes trigger t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_triggers04[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers10[ik]
loop
set i=i+1
exitwhen udg_triggers04[i]==null
endloop
set udg_triggers04[ik]=udg_triggers04[i-1]
set udg_integers10[ik]=udg_integers10[i-1]
set udg_triggers04[i-1]=null
return ret
endfunction
function GetDialogCollisionA takes nothing returns integer
return udg_integer13
endfunction
function SetDialogStructA takes dialog t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_dialogs01[i]==null then
set udg_integers11[i]=s
set udg_dialogs01[i]=t
return
endif
loop
set i=i+1
exitwhen udg_dialogs01[i]==null
endloop
set udg_integers11[i]=s
set udg_dialogs01[i]=t
return
endfunction
function GetDialogStructA takes dialog t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_dialogs01[i]==t then
return udg_integers11[i]
endif
loop
set i=i+1
exitwhen udg_dialogs01[i]==t
endloop
return udg_integers11[i]
endfunction
function ClearDialogStructA takes dialog t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_dialogs01[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers11[ik]
loop
set i=i+1
exitwhen udg_dialogs01[i]==null
endloop
set udg_dialogs01[ik]=udg_dialogs01[i-1]
set udg_integers11[ik]=udg_integers11[i-1]
set udg_dialogs01[i-1]=null
return ret
endfunction
function GetDialogCollisionB takes nothing returns integer
return udg_integer14
endfunction
function SetDialogStructB takes dialog t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_dialogs02[i]==null then
set udg_integers12[i]=s
set udg_dialogs02[i]=t
return
endif
loop
set i=i+1
exitwhen udg_dialogs02[i]==null
endloop
set udg_integers12[i]=s
set udg_dialogs02[i]=t
return
endfunction
function GetDialogStructB takes dialog t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_dialogs02[i]==t then
return udg_integers12[i]
endif
loop
set i=i+1
exitwhen udg_dialogs02[i]==t
endloop
return udg_integers12[i]
endfunction
function ClearDialogStructB takes dialog t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_dialogs02[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers12[ik]
loop
set i=i+1
exitwhen udg_dialogs02[i]==null
endloop
set udg_dialogs02[ik]=udg_dialogs02[i-1]
set udg_integers12[ik]=udg_integers12[i-1]
set udg_dialogs02[i-1]=null
return ret
endfunction
function GetDialogCollisionC takes nothing returns integer
return udg_integer15
endfunction
function SetDialogStructC takes dialog t,integer s returns nothing
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_dialogs03[i]==null then
set udg_integers13[i]=s
set udg_dialogs03[i]=t
return
endif
loop
set i=i+1
exitwhen udg_dialogs03[i]==null
endloop
set udg_integers13[i]=s
set udg_dialogs03[i]=t
return
endfunction
function GetDialogStructC takes dialog t returns integer
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
if udg_dialogs03[i]==t then
return udg_integers13[i]
endif
loop
set i=i+1
exitwhen udg_dialogs03[i]==t
endloop
return udg_integers13[i]
endfunction
function ClearDialogStructC takes dialog t returns integer
local integer ik
local integer ret
local integer i=(ABC_H2I(t)*ABC_HASH_UP)/ABC_HASH_DOWN+ABC_HASH_BIAS
loop
exitwhen udg_dialogs03[i]==t
set i=i+1
endloop
set ik=i
set ret=udg_integers13[ik]
loop
set i=i+1
exitwhen udg_dialogs03[i]==null
endloop
set udg_dialogs03[ik]=udg_dialogs03[i-1]
set udg_integers13[ik]=udg_integers13[i-1]
set udg_dialogs03[i-1]=null
return ret
endfunction
function ABC___Init takes nothing returns nothing
set udg_timers04[ABC_HASH_INDEX_LIMIT]=null
set udg_integers05[ABC_HASH_INDEX_LIMIT]=0
set udg_timers05[ABC_HASH_INDEX_LIMIT]=null
set udg_integers06[ABC_HASH_INDEX_LIMIT]=0
set udg_timers06[ABC_HASH_INDEX_LIMIT]=null
set udg_integers07[ABC_HASH_INDEX_LIMIT]=0
set udg_triggers02[ABC_HASH_INDEX_LIMIT]=null
set udg_integers08[ABC_HASH_INDEX_LIMIT]=0
set udg_triggers03[ABC_HASH_INDEX_LIMIT]=null
set udg_integers09[ABC_HASH_INDEX_LIMIT]=0
set udg_triggers04[ABC_HASH_INDEX_LIMIT]=null
set udg_integers10[ABC_HASH_INDEX_LIMIT]=0
set udg_dialogs01[ABC_HASH_INDEX_LIMIT]=null
set udg_integers11[ABC_HASH_INDEX_LIMIT]=0
set udg_dialogs02[ABC_HASH_INDEX_LIMIT]=null
set udg_integers12[ABC_HASH_INDEX_LIMIT]=0
set udg_dialogs03[ABC_HASH_INDEX_LIMIT]=null
set udg_integers13[ABC_HASH_INDEX_LIMIT]=0
endfunction
function ABCT___H2I takes handle h returns integer
return GetHandleId(h)
endfunction
function ABCT___NewTimerIndex takes nothing returns integer
local timer t
local integer i
if(udg_integer04==0)then
loop
set t=CreateTimer()
set i=(ABCT___H2I(t)*ABCT_HASH_UP)/ABCT_HASH_DOWN+ABCT_HASH_BIAS
if udg_timers03[i]==null then
set udg_timers03[i]=t
return i
else
set udg_timers02[udg_integer05]=t
set udg_integer05=udg_integer05+1
endif
endloop
endif
set udg_integer04=udg_integer04-1
return(ABCT___H2I(udg_timers01[udg_integer04])*ABCT_HASH_UP)/ABCT_HASH_DOWN+ABCT_HASH_BIAS
endfunction
function ABCT___Periodic takes nothing returns nothing
local integer i=(ABCT___H2I(GetExpiredTimer())*ABCT_HASH_UP)/ABCT_HASH_DOWN+ABCT_HASH_BIAS
set udg_integer06=udg_integers04[i]
if TriggerEvaluate(udg_triggers01[i])then
call TriggerClearConditions(udg_triggers01[i])
call PauseTimer(udg_timers03[i])
set udg_timers01[udg_integer04]=udg_timers03[i]
set udg_integer04=udg_integer04+1
endif
endfunction
function ABCT_Start takes code userFunc,integer data,real period returns nothing
local integer i
set i=ABCT___NewTimerIndex()
if udg_triggers01[i]==null then
set udg_triggers01[i]=CreateTrigger()
endif
call TriggerAddCondition(udg_triggers01[i],Condition(userFunc))
set udg_integers04[i]=data
call TimerStart(udg_timers03[i],period,true,function ABCT___Periodic)
endfunction
function ABCT_Zero takes code userFunc,integer data returns nothing
local integer i
set i=ABCT___NewTimerIndex()
if udg_triggers01[i]==null then
set udg_triggers01[i]=CreateTrigger()
endif
call TriggerAddCondition(udg_triggers01[i],Condition(userFunc))
set udg_integers04[i]=data
call TimerStart(udg_timers03[i],.0,false,function ABCT___Periodic)
endfunction
function ABCT_GetData takes nothing returns integer
return udg_integer06
endfunction
function ABCT___Init takes nothing returns nothing
set udg_timers01[ABCT_HASH_SIZE-1]=null
set udg_timers02[ABCT_HASH_SIZE-1]=null
set udg_timers03[ABCT_HASH_SIZE-1]=null
set udg_triggers01[ABCT_HASH_SIZE-1]=null
set udg_integers04[ABCT_HASH_SIZE-1]=0
endfunction
function ShowOrderTeam takes boolean b returns nothing
local integer i=0
local integer pl=6
loop
exitwhen i>5
loop
exitwhen pl>11
call UnitShareVision(udg_units02[i],Player(pl),b)
set pl=pl+1
endloop
set pl=6
set i=i+1
endloop
endfunction
function ShowEaterTeam takes boolean b returns nothing
local integer i=6
local integer pl=0
loop
exitwhen i>11
loop
exitwhen pl>5
call UnitShareVision(udg_units02[i],Player(pl),b)
set pl=pl+1
endloop
set pl=0
set i=i+1
endloop
endfunction
function DistanceBetweenXY takes real x1,real y1,real x2,real y2 returns real
local real dx=x2-x1
local real dy=y2-y1
return SquareRoot(dx*dx+dy*dy)
endfunction
function UnitHasItemOfType takes unit whichUnit,integer itemId returns boolean
local integer index
local item indexItem
set index=0
loop
set indexItem=UnitItemInSlot(whichUnit,index)
if(indexItem!=null)and(GetItemTypeId(indexItem)==itemId)then
set indexItem=null
return true
endif
set index=index+1
exitwhen index>=6
endloop
set indexItem=null
return false
endfunction
function HeroConfused takes nothing returns nothing
local unit u=GetTriggerUnit()
local real x=GetUnitX(u)+GetRandomReal(-1000,1000)
local real y=GetUnitY(u)+GetRandomReal(-1000,1000)
local trigger t=GetTriggeringTrigger()
if GetUnitAbilityLevel(u,'BPSE')<=0 and GetUnitFlyHeight(u)<=10 then
call DisableTrigger(t)
call IssuePointOrderById(u,851986,x,y)
call EnableTrigger(t)
endif
set u=null
set t=null
endfunction
function Hero_OrderIssued takes nothing returns nothing
local integer H=GetTriggerStructA(GetTriggeringTrigger())
if udg_booleans03[H]then
set udg_booleans03[H]=false
endif
endfunction
function SetHeroReady takes unit u returns nothing
local integer i=GetPlayerId(GetOwningPlayer(u))
local integer H=s__HeroesData__allocate()
set udg_units02[i]=u
set udg_triggers06[H]=CreateTrigger()
call TriggerRegisterUnitEvent(udg_triggers06[H],udg_units02[i],EVENT_UNIT_ISSUED_ORDER)
call TriggerRegisterUnitEvent(udg_triggers06[H],udg_units02[i],EVENT_UNIT_ISSUED_TARGET_ORDER)
call TriggerRegisterUnitEvent(udg_triggers06[H],udg_units02[i],EVENT_UNIT_ISSUED_POINT_ORDER)
call TriggerAddAction(udg_triggers06[H],function HeroConfused)
set udg_triggers07[H]=CreateTrigger()
call TriggerRegisterUnitEvent(udg_triggers07[H],udg_units02[i],EVENT_UNIT_ISSUED_ORDER)
call TriggerRegisterUnitEvent(udg_triggers07[H],udg_units02[i],EVENT_UNIT_ISSUED_TARGET_ORDER)
call TriggerRegisterUnitEvent(udg_triggers07[H],udg_units02[i],EVENT_UNIT_ISSUED_POINT_ORDER)
call TriggerAddAction(udg_triggers07[H],function Hero_OrderIssued)
call DisableTrigger(udg_triggers06[H])
set udg_items02[H]=CreateItem(MAGIC_WAND_ITEM_ID,0,0)
set udg_items01[i]=udg_items02[H]
set udg_booleans05[H]=true
set udg_integers15[i]=0
call UnitAddItem(udg_units02[i],udg_items02[H])
set udg_booleans02[H]=true
set udg_reals01[H]=GetUnitX(udg_units02[i])
set udg_reals02[H]=GetUnitY(udg_units02[i])
set udg_integers21[H]=i
set udg_integers16[i]=H
call SetUnitUserData(udg_units02[i],H)
set udg_units06[H]=CreateUnit(Player(15),'hgry',STORAGE_AREA_X,STORAGE_AREA_Y,0)
call PauseUnit(udg_units06[H],true)
set udg_units03[i]=udg_units06[H]
call SetItemUserData(udg_items02[H],i)
call SetTriggerStructA(udg_triggers07[H],H)
set udg_integers25[H]=255
set udg_integers23[H]=255
set udg_integers24[H]=255
set udg_integers22[H]=255
endfunction
function OnMoveSet takes nothing returns nothing
local integer H
local integer i=0
local real x
local real y
loop
exitwhen i>11
set H=udg_integers16[i]
set x=GetUnitX(udg_units02[i])
set y=GetUnitY(udg_units02[i])
if x==udg_reals01[H]and y==udg_reals02[H]then
set udg_booleans04[H]=false
else
set udg_booleans04[H]=true
endif
set udg_reals01[H]=x
set udg_reals02[H]=y
set i=i+1
endloop
endfunction
function IsUnitMoving takes unit u returns boolean
local integer H=GetUnitUserData(u)
return udg_booleans04[H]
endfunction
function IsUnitAlive takes unit u returns boolean
local integer H=GetUnitUserData(u)
return udg_booleans02[H]
endfunction
function IsUnitMindControlled takes unit u returns boolean
local integer H=GetUnitUserData(u)
if udg_units04[H]==null then
return false
endif
return true
endfunction
function Heroes__FadeIn takes integer p returns nothing
local player pl=Player(p)
set udg_booleans01=false
if GetLocalPlayer()==pl then
call SetCineFilterTexture("ReplaceableTextures\\CameraMasks\\Black_mask.blp")
call SetCineFilterBlendMode(BLEND_MODE_BLEND)
call SetCineFilterTexMapFlags(TEXMAP_FLAG_NONE)
call SetCineFilterStartUV(0,0,1,1)
call SetCineFilterEndUV(0,0,1,1)
call SetCineFilterStartColor(0,0,0,255)
call SetCineFilterEndColor(0,0,0,0)
call SetCineFilterDuration(1.)
call DisplayCineFilter(true)
endif
set pl=null
endfunction
function Heroes__FadeOff takes integer p returns nothing
local player pl=Player(p)
set udg_booleans01=true
if GetLocalPlayer()==pl then
call SetCineFilterTexture("ReplaceableTextures\\CameraMasks\\Black_mask.blp")
call SetCineFilterBlendMode(BLEND_MODE_BLEND)
call SetCineFilterTexMapFlags(TEXMAP_FLAG_NONE)
call SetCineFilterStartUV(0,0,1,1)
call SetCineFilterEndUV(0,0,1,1)
call SetCineFilterStartColor(0,0,0,0)
call SetCineFilterEndColor(0,0,0,255)
call SetCineFilterDuration(1.)
call DisplayCineFilter(true)
endif
set pl=null
endfunction
function Filttemellarung takes nothing returns boolean
return GetUnitTypeId(GetFilterUnit())=='N000'or GetUnitTypeId(GetFilterUnit())=='N001'
endfunction
function ClearGroup takes group udg_integer20 returns nothing
local unit u
loop
set u=FirstOfGroup(udg_integer20)
exitwhen u==null
call GroupRemoveUnit(udg_integer20,u)
endloop
endfunction
function ShowSet takes nothing returns nothing
local integer i=0
local integer i2=0
local texttag t
local real x
local real y
local real x2
local real y2
local real d
local real endi
local string msg="clap clap"
local boolean b
loop
exitwhen i>11
if UnitHasItemOfType(udg_units02[i],'I001')and IsUnitMoving(udg_units02[i])then
set x=GetUnitX(udg_units02[i])
set y=GetUnitY(udg_units02[i])
set t=CreateTextTag()
set i2=0
loop
exitwhen i2>11
set x2=GetUnitX(udg_units02[i2])
set y2=GetUnitY(udg_units02[i2])
set d=DistanceBetweenXY(x,y,x2,y2)
if d>900.then
if GetLocalPlayer()==Player(i2)and GetLocalPlayer()!=Player(i)then
set msg=""
endif
endif
set i2=i2+1
endloop
call SetTextTagText(t,msg,9.*.023/10)
call SetTextTagPos(t,x,y,.5)
call SetTextTagColor(t,'d','d','d',175)
call SetTextTagPermanent(t,false)
call SetTextTagVisibility(t,true)
call SetTextTagVelocity(t,.0,.02)
call SetTextTagLifespan(t,6.)
call SetTextTagFadepoint(t,5.)
endif
set i=i+1
endloop
set t=null
set i=0
loop
exitwhen i>11
if UnitHasItemOfType(udg_units02[i],'I002')and IsUnitAlive(udg_units02[i])then
if(GetUnitTypeId(udg_units02[i])=='N000')then
set i2=0
set endi=5
else
set i2=6
set endi=11
endif
loop
exitwhen i2>endi
set x=GetUnitX(udg_units02[i2])
set y=GetUnitY(udg_units02[i2])
if IsUnitAlive(udg_units02[i2])then
if GetLocalPlayer()==Player(i)then
call PingMinimap(x,y,.89)
endif
endif
set i2=i2+1
endloop
endif
set i=i+1
endloop
set i=0
loop
exitwhen i>11
if udg_booleans01[i]and GetUnitAbilityLevel(udg_units02[i],Peruan_BUFF_ID)<=0 then
call Heroes__FadeIn(i)
elseif udg_booleans01[i]==false and GetUnitAbilityLevel(udg_units02[i],Peruan_BUFF_ID)>0 then
call Heroes__FadeOff(i)
endif
set i=i+1
endloop
if udg_boolean01 then
if udg_real01==0 then
call ShowOrderTeam(false)
set udg_boolean01=false
endif
else
if udg_real01>0 then
call ShowOrderTeam(true)
set udg_boolean01=true
endif
endif
if udg_boolean02 then
if udg_real02==0 then
call ShowEaterTeam(false)
set udg_boolean02=false
endif
else
if udg_real02>0 then
call ShowEaterTeam(true)
set udg_boolean02=true
endif
endif
if udg_real02>0 then
set udg_real02=udg_real02-1
endif
if udg_real01>0 then
set udg_real01=udg_real01-1
endif
endfunction
function TT__Handler takes nothing returns nothing
local trigger swap
local integer i=udg_integer17
loop
exitwhen i<=0
set udg_integer16=udg_integers14[i]
if TriggerEvaluate(udg_triggers05[i])then
set swap=udg_triggers05[i]
call TriggerClearConditions(swap)
set udg_triggers05[i]=udg_triggers05[udg_integer17]
set udg_triggers05[udg_integer17]=swap
set udg_integers14[i]=udg_integers14[udg_integer17]
set udg_integer17=udg_integer17-1
endif
set i=i-1
endloop
endfunction
function TT_Start takes code userFunc,integer data returns nothing
set udg_integer17=udg_integer17+1
if udg_triggers05[udg_integer17]==null then
set udg_triggers05[udg_integer17]=CreateTrigger()
endif
call TriggerAddCondition(udg_triggers05[udg_integer17],Condition(userFunc))
set udg_integers14[udg_integer17]=data
endfunction
function TT_GetData takes nothing returns integer
return udg_integer16
endfunction
function TT__Init takes nothing returns nothing
call TimerStart(udg_timer01,TT_PERIOD,true,function TT__Handler)
endfunction
function s__vector_create takes real x,real y,real z returns integer
local integer v=s__vector__allocate()
set udg_reals05[v]=x
set udg_reals06[v]=y
set udg_reals07[v]=z
return v
endfunction
function s__vector_getLength takes integer this returns real
return SquareRoot(udg_reals05[this]*udg_reals05[this]+udg_reals06[this]*udg_reals06[this]+udg_reals07[this]*udg_reals07[this])
endfunction
function s__vector_sum takes integer augend,integer addend returns integer
local integer v=s__vector__allocate()
set udg_reals05[v]=udg_reals05[augend]+udg_reals05[addend]
set udg_reals06[v]=udg_reals06[augend]+udg_reals06[addend]
set udg_reals07[v]=udg_reals07[augend]+udg_reals07[addend]
return v
endfunction
function s__vector_add takes integer this,integer addend returns nothing
set udg_reals05[this]=udg_reals05[this]+udg_reals05[addend]
set udg_reals06[this]=udg_reals06[this]+udg_reals06[addend]
set udg_reals07[this]=udg_reals07[this]+udg_reals07[addend]
endfunction
function s__vector_difference takes integer minuend,integer subtrahend returns integer
local integer v=s__vector__allocate()
set udg_reals05[v]=udg_reals05[minuend]-udg_reals05[subtrahend]
set udg_reals06[v]=udg_reals06[minuend]-udg_reals06[subtrahend]
set udg_reals07[v]=udg_reals07[minuend]-udg_reals07[subtrahend]
return v
endfunction
function s__vector_subtract takes integer this,integer subtrahend returns nothing
set udg_reals05[this]=udg_reals05[this]-udg_reals05[subtrahend]
set udg_reals06[this]=udg_reals06[this]-udg_reals06[subtrahend]
set udg_reals07[this]=udg_reals07[this]-udg_reals07[subtrahend]
endfunction
function s__vector_scale takes integer this,real factor returns nothing
set udg_reals05[this]=udg_reals05[this]*factor
set udg_reals06[this]=udg_reals06[this]*factor
set udg_reals07[this]=udg_reals07[this]*factor
endfunction
function s__vector_setLength takes integer this,real length returns nothing
local real l=SquareRoot(udg_reals05[this]*udg_reals05[this]+udg_reals06[this]*udg_reals06[this]+udg_reals07[this]*udg_reals07[this])
if l==.0 then
return
endif
set l=length/l
set udg_reals05[this]=udg_reals05[this]*l
set udg_reals06[this]=udg_reals06[this]*l
set udg_reals07[this]=udg_reals07[this]*l
endfunction
function s__vector_dotProduct takes integer a,integer b returns real
return(udg_reals05[a]*udg_reals05[b]+udg_reals06[a]*udg_reals06[b]+udg_reals07[a]*udg_reals07[b])
endfunction
function s__vector_crossProduct takes integer a,integer b returns integer
local integer v=s__vector__allocate()
set udg_reals05[v]=udg_reals06[a]*udg_reals07[b]-udg_reals07[a]*udg_reals06[b]
set udg_reals06[v]=udg_reals07[a]*udg_reals05[b]-udg_reals05[a]*udg_reals07[b]
set udg_reals07[v]=udg_reals05[a]*udg_reals06[b]-udg_reals06[a]*udg_reals05[b]
return v
endfunction
function s__vector_projectionVector takes integer projected,integer direction returns integer
local integer v=s__vector__allocate()
local real l=udg_reals05[direction]*udg_reals05[direction]+udg_reals06[direction]*udg_reals06[direction]+udg_reals07[direction]*udg_reals07[direction]
if l==.0 then
call s__vector_destroy(v)
return null
endif
set l=(udg_reals05[projected]*udg_reals05[direction]+udg_reals06[projected]*udg_reals06[direction]+udg_reals07[projected]*udg_reals07[direction])/l
set udg_reals05[v]=udg_reals05[direction]*l
set udg_reals06[v]=udg_reals06[direction]*l
set udg_reals07[v]=udg_reals07[direction]*l
return v
endfunction
function s__vector_projectVector takes integer this,integer direction returns nothing
local real l=udg_reals05[direction]*udg_reals05[direction]+udg_reals06[direction]*udg_reals06[direction]+udg_reals07[direction]*udg_reals07[direction]
if l==.0 then
return
endif
set l=(udg_reals05[this]*udg_reals05[direction]+udg_reals06[this]*udg_reals06[direction]+udg_reals07[this]*udg_reals07[direction])/l
set udg_reals05[this]=udg_reals05[direction]*l
set udg_reals06[this]=udg_reals06[direction]*l
set udg_reals07[this]=udg_reals07[direction]*l
endfunction
function s__vector_projectionPlane takes integer projected,integer normal returns integer
local integer v=s__vector__allocate()
local real l=udg_reals05[normal]*udg_reals05[normal]+udg_reals06[normal]*udg_reals06[normal]+udg_reals07[normal]*udg_reals07[normal]
if l==.0 then
call s__vector_destroy(v)
return null
endif
set l=(udg_reals05[projected]*udg_reals05[normal]+udg_reals06[projected]*udg_reals06[normal]+udg_reals07[projected]*udg_reals07[normal])/l
set udg_reals05[v]=udg_reals05[projected]-udg_reals05[normal]*l
set udg_reals06[v]=udg_reals06[projected]-udg_reals06[normal]*l
set udg_reals07[v]=udg_reals07[projected]-udg_reals07[normal]*l
return v
endfunction
function s__vector_projectPlane takes integer this,integer normal returns nothing
local real l=udg_reals05[normal]*udg_reals05[normal]+udg_reals06[normal]*udg_reals06[normal]+udg_reals07[normal]*udg_reals07[normal]
if l==.0 then
return
endif
set l=(udg_reals05[this]*udg_reals05[normal]+udg_reals06[this]*udg_reals06[normal]+udg_reals07[this]*udg_reals07[normal])/l
set udg_reals05[this]=udg_reals05[this]-udg_reals05[normal]*l
set udg_reals06[this]=udg_reals06[this]-udg_reals06[normal]*l
set udg_reals07[this]=udg_reals07[this]-udg_reals07[normal]*l
endfunction
function s__vector_getAngle takes integer a,integer b returns real
local real l=SquareRoot(udg_reals05[a]*udg_reals05[a]+udg_reals06[a]*udg_reals06[a]+udg_reals07[a]*udg_reals07[a])*SquareRoot(udg_reals05[b]*udg_reals05[b]+udg_reals06[b]*udg_reals06[b]+udg_reals07[b]*udg_reals07[b])
if l==0 then
return.0
endif
return Acos((udg_reals05[a]*udg_reals05[b]+udg_reals06[a]*udg_reals06[b]+udg_reals07[a]*udg_reals07[b])/l)
endfunction
function s__vector_rotate takes integer this,integer axis,real angle returns nothing
local real xx
local real xy
local real xz
local real yx
local real yy
local real yz
local real zx
local real zy
local real zz
local real al=udg_reals05[axis]*udg_reals05[axis]+udg_reals06[axis]*udg_reals06[axis]+udg_reals07[axis]*udg_reals07[axis]
local real f
local real c=Cos(angle)
local real s=Sin(angle)
if al==.0 then
return
endif
set f=(udg_reals05[this]*udg_reals05[axis]+udg_reals06[this]*udg_reals06[axis]+udg_reals07[this]*udg_reals07[axis])/al
set zx=udg_reals05[axis]*f
set zy=udg_reals06[axis]*f
set zz=udg_reals07[axis]*f
set xx=udg_reals05[this]-zx
set xy=udg_reals06[this]-zy
set xz=udg_reals07[this]-zz
set al=SquareRoot(al)
set yx=(udg_reals06[axis]*xz-udg_reals07[axis]*xy)/al
set yy=(udg_reals07[axis]*xx-udg_reals05[axis]*xz)/al
set yz=(udg_reals05[axis]*xy-udg_reals06[axis]*xx)/al
set udg_reals05[this]=xx*c+yx*s+zx
set udg_reals06[this]=xy*c+yy*s+zy
set udg_reals07[this]=xz*c+yz*s+zz
endfunction
function s__vector_createTerrainPoint takes real x,real y returns integer
local integer v=s__vector__allocate()
call MoveLocation(udg_location01,x,y)
set udg_reals05[v]=x
set udg_reals06[v]=y
set udg_reals07[v]=GetLocationZ(udg_location01)
return v
endfunction
function s__vector_getTerrainPoint takes integer this,real x,real y returns nothing
call MoveLocation(udg_location01,x,y)
set udg_reals05[this]=x
set udg_reals06[this]=y
set udg_reals07[this]=GetLocationZ(udg_location01)
endfunction
function s__vector_createTerrainNormal takes real x,real y,real sampleRadius returns integer
local integer v=s__vector__allocate()
local real z1
local real z2
local real z3
local real z4
call MoveLocation(udg_location01,x-sampleRadius,y)
set z1=GetLocationZ(udg_location01)
call MoveLocation(udg_location01,x+sampleRadius,y)
set z2=GetLocationZ(udg_location01)
call MoveLocation(udg_location01,x,y-sampleRadius)
set z3=GetLocationZ(udg_location01)
call MoveLocation(udg_location01,x,y+sampleRadius)
set z4=GetLocationZ(udg_location01)
set sampleRadius=2*sampleRadius
set udg_reals05[v]=(z1-z2)*sampleRadius
set udg_reals06[v]=(z3-z4)*sampleRadius
set udg_reals07[v]=sampleRadius*sampleRadius
return v
endfunction
function s__vector_getTerrainNormal takes integer this,real x,real y,real sampleRadius returns nothing
local real z1
local real z2
local real z3
local real z4
call MoveLocation(udg_location01,x-sampleRadius,y)
set z1=GetLocationZ(udg_location01)
call MoveLocation(udg_location01,x+sampleRadius,y)
set z2=GetLocationZ(udg_location01)
call MoveLocation(udg_location01,x,y-sampleRadius)
set z3=GetLocationZ(udg_location01)
call MoveLocation(udg_location01,x,y+sampleRadius)
set z4=GetLocationZ(udg_location01)
set sampleRadius=2*sampleRadius
set udg_reals05[this]=(z1-z2)*sampleRadius
set udg_reals06[this]=(z3-z4)*sampleRadius
set udg_reals07[this]=sampleRadius*sampleRadius
endfunction
function s__vector_isInCylinder takes integer this,integer cylinderOrigin,integer cylinderHeight,real cylinderRadius returns boolean
local real l
local real x=udg_reals05[this]-udg_reals05[cylinderOrigin]
local real y=udg_reals06[this]-udg_reals06[cylinderOrigin]
local real z=udg_reals07[this]-udg_reals07[cylinderOrigin]
if x*udg_reals05[cylinderHeight]+y*udg_reals06[cylinderHeight]+z*udg_reals07[cylinderHeight]<.0 then
return false
endif
set x=x-udg_reals05[cylinderHeight]
set y=y-udg_reals06[cylinderHeight]
set z=z-udg_reals07[cylinderHeight]
if x*udg_reals05[cylinderHeight]+y*udg_reals06[cylinderHeight]+z*udg_reals07[cylinderHeight]>.0 then
return false
endif
set l=udg_reals05[cylinderHeight]*udg_reals05[cylinderHeight]+udg_reals06[cylinderHeight]*udg_reals06[cylinderHeight]+udg_reals07[cylinderHeight]*udg_reals07[cylinderHeight]
if l==.0 then
return false
endif
set l=(x*udg_reals05[cylinderHeight]+y*udg_reals06[cylinderHeight]+z*udg_reals07[cylinderHeight])/l
set x=x-udg_reals05[cylinderHeight]*l
set y=y-udg_reals06[cylinderHeight]*l
set z=z-udg_reals07[cylinderHeight]*l
if x*x+y*y+z*z>cylinderRadius*cylinderRadius then
return false
endif
return true
endfunction
function s__vector_isInCone takes integer this,integer coneOrigin,integer coneHeight,real coneRadius returns boolean
local real l
local real x=udg_reals05[this]-udg_reals05[coneOrigin]
local real y=udg_reals06[this]-udg_reals06[coneOrigin]
local real z=udg_reals07[this]-udg_reals07[coneOrigin]
if x*udg_reals05[coneHeight]+y*udg_reals06[coneHeight]+z*udg_reals07[coneHeight]<.0 then
return false
endif
set l=udg_reals05[coneHeight]*udg_reals05[coneHeight]+udg_reals06[coneHeight]*udg_reals06[coneHeight]+udg_reals07[coneHeight]*udg_reals07[coneHeight]
if l==.0 then
return false
endif
set l=(x*udg_reals05[coneHeight]+y*udg_reals06[coneHeight]+z*udg_reals07[coneHeight])/l
set x=x-udg_reals05[coneHeight]*l
set y=y-udg_reals06[coneHeight]*l
set z=z-udg_reals07[coneHeight]*l
if SquareRoot(x*x+y*y+z*z)>coneRadius*(1.-l)then
return false
endif
return true
endfunction
function s__vector_isInSphere takes integer this,integer sphereOrigin,real sphereRadius returns boolean
return(not(sphereRadius*sphereRadius<((udg_reals05[this]-udg_reals05[sphereOrigin])*(udg_reals05[this]-udg_reals05[sphereOrigin])+(udg_reals06[this]-udg_reals06[sphereOrigin])*(udg_reals06[this]-udg_reals06[sphereOrigin])+(udg_reals07[this]-udg_reals07[sphereOrigin])*(udg_reals07[this]-udg_reals07[sphereOrigin]))))
endfunction
function True takes nothing returns boolean
return true
endfunction
function Nothing takes nothing returns nothing
return
endfunction
function AbsValue takes real A returns real
if A<0 then
return-A
endif
return A
endfunction
function ModuloInt takes integer dividend,integer divisor returns integer
local integer modulus=dividend-(dividend/divisor)*divisor
if(modulus<0)then
set modulus=modulus+divisor
endif
return modulus
endfunction
function Modulo takes real dividend,real divisor returns real
local real modulus=dividend-I2R(R2I(dividend/divisor))*divisor
if(modulus<0)then
set modulus=modulus+divisor
endif
return modulus
endfunction
function GetXYLocationZ takes real x,real y returns real
call MoveLocation(udg_location02,x,y)
return GetLocationZ(udg_location02)
endfunction
function CorrectAngle takes real deg returns real
local integer A=R2I(deg/360)
local real Angle=deg-I2R(360*A)
return Angle
endfunction
function SimError takes player ForPlayer,string msg returns nothing
local sound error=CreateSoundFromLabel("InterfaceError",false,false,false,10,10)
if(GetLocalPlayer()==ForPlayer)then
if(msg!="")and(msg!=null)then
call ClearTextMessages()
call DisplayTimedTextToPlayer(ForPlayer,.52,-1.,2.,"|cffffcc00"+msg+"|r")
endif
call StartSound(error)
endif
call KillSoundWhenDone(error)
set error=null
endfunction
function LocalSound takes player ForPlayer,sound PlayedSound returns nothing
local sound Lsound=PlayedSound
if(GetLocalPlayer()==ForPlayer)then
call StartSound(Lsound)
endif
call KillSoundWhenDone(Lsound)
set Lsound=null
endfunction
function IsUnitSpellProjectile takes unit u returns boolean
local integer id
local integer i=1
local boolean b=false
local integer id2=GetUnitTypeId(u)
loop
exitwhen i>7
set id=udg_integers17[i]
if id==id2 then
set b=true
endif
set i=i+1
endloop
return b
endfunction
function IsXinMap takes real x returns boolean
return(x>udg_real03 and x<udg_real05)
endfunction
function IsYinMap takes real y returns boolean
return(y>udg_real04 and y<udg_real06)
endfunction
function InitMap takes nothing returns nothing
local rect Map=bj_mapInitialPlayableArea
set udg_real03=GetRectMinX(Map)
set udg_real04=GetRectMinY(Map)
set udg_real05=GetRectMaxX(Map)
set udg_real06=GetRectMaxY(Map)
endfunction
function CheckPathabilityTrickGet takes nothing returns nothing
set bj_rescueChangeColorUnit=bj_rescueChangeColorUnit or GetEnumItem()!=udg_item01
endfunction
function CheckPathabilityTrick takes real x,real y returns boolean
local integer i=30
local real X
local real Y
local rect r
call SetItemPosition(udg_item01,x,y)
set X=GetItemX(udg_item01)-x
set Y=GetItemY(udg_item01)-y
if X*X+Y*Y<='d'then
return true
endif
set r=Rect(x-i,y-i,x+i,y+i)
set bj_rescueChangeColorUnit=false
call EnumItemsInRect(r,null,function CheckPathabilityTrickGet)
call RemoveRect(r)
set r=null
return bj_rescueChangeColorUnit
endfunction
function CheckPathability takes real x,real y returns boolean
local boolean b=CheckPathabilityTrick(x,y)
call SetItemVisible(udg_item01,false)
return b
endfunction
function InitCasters takes nothing returns nothing
local integer i=1
local unit u
set udg_group01=CreateGroup()
loop
exitwhen i>'d'
set u=CreateUnit(Player(12),'n003',STORAGE_AREA_X,STORAGE_AREA_Y,0)
call GroupAddUnit(udg_group01,u)
call SetUnitPathing(u,false)
set i=i+1
endloop
set u=null
endfunction
function UseCaster takes nothing returns unit
local unit u=FirstOfGroup(udg_group01)
if u!=null then
call GroupRemoveUnit(udg_group01,u)
set udg_unit16=u
set u=null
return udg_unit16
endif
return CreateUnit(Player(12),'n003',STORAGE_AREA_X,STORAGE_AREA_Y,0)
endfunction
function CasterBackHome takes nothing returns boolean
local integer C=TT_GetData()
if udg_integers29[C]>60 then
call GroupAddUnit(udg_group01,udg_units07[C])
call s__Casters_destroy(C)
return true
endif
set udg_integers29[C]=udg_integers29[C]+1
return false
endfunction
function UnitResetColor takes unit u returns nothing
local integer H=GetUnitUserData(u)
call SetUnitVertexColor(u,udg_integers22[H],udg_integers24[H],udg_integers23[H],udg_integers25[H])
endfunction
function StopUsingCaster takes unit u returns nothing
local integer C=s__Casters__allocate()
set udg_units07[C]=u
set udg_integers29[C]=0
call TT_Start(function CasterBackHome,C)
endfunction
function ProjectileImpactWithProjectile takes unit projectile1,unit projectile2 returns nothing
local integer M1=GetUnitUserData(projectile1)
local integer M2=GetUnitUserData(projectile2)
local real dxR=GetUnitX(projectile1)-GetUnitX(projectile2)
local real dyR=GetUnitY(projectile1)-GetUnitY(projectile2)
local real dxR2=GetUnitX(projectile2)-GetUnitX(projectile1)
local real dyR2=GetUnitY(projectile2)-GetUnitY(projectile1)
local real angle=bj_RADTODEG*Atan2(dyR-udg_reals04[M1],dxR-udg_reals03[M1])
local real angle2=bj_RADTODEG*Atan2(dyR2-udg_reals04[M2],dxR2-udg_reals03[M2])
local real dxN
local real dyN
local real dxN2
local real dyN2
local real factor=(360-AbsValue(angle))*.01
local real factor2=(360-AbsValue(angle2))*.01
if udg_booleans08[M1]and udg_booleans08[M2]==false then
set factor=0
elseif udg_booleans08[M1]==false and udg_booleans08[M2]then
set factor2=0
endif
set dxN=udg_reals03[M1]+(dxR*factor)
set dyN=udg_reals04[M1]+(dyR*factor)
set dxN2=udg_reals03[M2]+(dxR2*factor2)
set dyN2=udg_reals04[M2]+(dyR2*factor2)
set udg_reals03[M1]=dxN
set udg_reals04[M1]=dyN
set udg_reals03[M2]=dxN2
set udg_reals04[M2]=dyN2
set udg_booleans07[M1]=true
set udg_booleans07[M2]=true
endfunction
function ProjectileImpactWithProtegoUnit takes unit projectile,unit u returns nothing
local integer M=GetUnitUserData(projectile)
local real dxR=GetUnitX(projectile)-GetUnitX(u)
local real dyR=GetUnitY(projectile)-GetUnitY(u)
local real angle=bj_RADTODEG*Atan2(dyR-udg_reals04[M],dxR-udg_reals03[M])
local real dxN
local real dyN
local real factor=(360-AbsValue(angle))*.01
set dxN=udg_reals03[M]+(dxR*factor)
set dyN=udg_reals04[M]+(dyR*factor)
set udg_reals03[M]=dxN
set udg_reals04[M]=dyN
set udg_booleans07[M]=true
endfunction
function GuessBounce takes real f,real x,real y returns real
local integer i='d'
local real h=1.4142136*i
local real r
local boolean b1
local boolean b2
local boolean b3
local boolean b4
local boolean b5
local real cos1
local real sin1
local real cos2
local real sin2
local real cos3
local real sin3
local real cos4
local real sin4
local real cos5
local real sin5
set f=Modulo(f,6.283185)
if(f>=4.712389)then
set r=4.712389
elseif(f>=bj_PI)then
set r=bj_PI
elseif(f>=1.570796)then
set r=1.570796
else
set r=0
endif
set cos1=x+h*Cos(r-.785398)
set sin1=y+h*Sin(r-.785398)
set cos2=x+i*Cos(r)
set sin2=y+i*Sin(r)
set cos3=x+h*Cos(r+.785398)
set sin3=y+h*Sin(r+.785398)
set cos4=x+i*Cos(r+1.570796)
set sin4=y+i*Sin(r+1.570796)
set cos5=x+h*Cos(r+2.356194)
set sin5=y+h*Sin(r+2.356194)
if(CheckPathability(cos1,sin1)==false or GetXYLocationZ(cos1,sin1)>TERRAIN_COLLIDE_HEIGHT)then
set b1=true
else
set b1=false
endif
if(CheckPathability(cos2,sin2)==false or GetXYLocationZ(cos2,sin2)>TERRAIN_COLLIDE_HEIGHT)then
set b2=true
else
set b2=false
endif
if(CheckPathability(cos3,sin3)==false or GetXYLocationZ(cos3,sin3)>TERRAIN_COLLIDE_HEIGHT)then
set b3=true
else
set b3=false
endif
if(CheckPathability(cos4,sin4)==false or GetXYLocationZ(cos4,sin4)>TERRAIN_COLLIDE_HEIGHT)then
set b4=true
else
set b4=false
endif
if(CheckPathability(cos5,sin5)==false or GetXYLocationZ(cos5,sin5)>TERRAIN_COLLIDE_HEIGHT)then
set b5=true
else
set b5=false
endif
if b2 and b3 and b4 then
set r=f+bj_PI
elseif(b3 and b4 and b5)or(b1 and b2 and b3)then
set r=-f+bj_PI
else
set r=GetRandomReal(.00001,bj_PI*2)
endif
return r+GetRandomReal(-.01,.01)
endfunction
function ReleaseImperioUnits takes unit imperior returns nothing
local integer H=GetUnitUserData(imperior)
local integer H2
local unit u
loop
exitwhen udg_integers20[H]==0
set u=udg_units05[udg_integers19[H]+udg_integers20[H]]
set H2=GetUnitUserData(u)
call SetUnitOwner(u,Player(udg_integers21[H2]),false)
set udg_units04[H2]=null
if udg_integers20[H2]>0 then
call ReleaseImperioUnits(u)
endif
set udg_units05[udg_integers19[H]+udg_integers20[H]]=null
set udg_integers20[H]=udg_integers20[H]-1
endloop
set u=null
endfunction
function PolledWait2 takes real duration returns nothing
local real timeRemaining
local real st=TimerGetElapsed(bj_gameStartedTimer)
if st<=0 then
set bj_gameStartedTimer=CreateTimer()
call TimerStart(bj_gameStartedTimer,0xF4240,false,null)
endif
if(duration>0)then
loop
set timeRemaining=duration-TimerGetElapsed(bj_gameStartedTimer)+st
exitwhen timeRemaining<=0
if(timeRemaining>bj_POLLED_WAIT_SKIP_THRESHOLD)then
call TriggerSleepAction(.1*timeRemaining)
else
call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
endif
endloop
endif
endfunction
function Msg2All takes string msg,real time returns nothing
local integer i=0
loop
call DisplayTimedTextToPlayer(Player(i),0,0,time,msg)
set i=i+1
exitwhen i>11
endloop
endfunction
function HeroDieAction takes nothing returns nothing
local unit u=GetTriggerUnit()
local integer H=GetUnitUserData(u)
set udg_booleans02[H]=false
call ReleaseImperioUnits(u)
call SetUnitTimeScale(u,1.)
set u=null
endfunction
function InitHeroDeath takes nothing returns nothing
local integer i=0
set udg_trigger48=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger48,udg_units02[i],EVENT_UNIT_DEATH)
set i=i+1
endloop
call TriggerAddAction(udg_trigger48,function HeroDieAction)
endfunction
function PauseAllHeroes takes boolean b returns nothing
local integer i=0
loop
exitwhen i>11
if IsUnitAlive(udg_units02[i])then
call PauseUnit(udg_units02[i],b)
endif
set i=i+1
endloop
endfunction
function UnitGetItemOfType takes unit whichUnit,integer itemId returns item
local integer index
local item indexItem
set index=0
loop
set indexItem=UnitItemInSlot(whichUnit,index)
if(indexItem!=null)and(GetItemTypeId(indexItem)==itemId)then
set udg_item02=indexItem
set indexItem=null
return udg_item02
endif
set index=index+1
exitwhen index>=6
endloop
set indexItem=null
return null
endfunction
function AntiStupefyCondition takes nothing returns boolean
return GetSpellAbilityId()=='A00B'
endfunction
function AntiStupefyAction takes nothing returns nothing
local unit u=GetSpellTargetUnit()
local integer i=GetUnitAbilityLevel(u,'BPSE')
local real x=GetUnitX(u)
local real y=GetUnitY(u)
local player p=GetOwningPlayer(GetTriggerUnit())
local integer i2=GetPlayerId(p)
if i>0 then
call UnitRemoveAbility(u,'BPSE')
call SetUnitTimeScale(u,1)
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Items\\AItb\\AItbTarget.mdl",x+GetRandomReal(-200,200),y+GetRandomReal(-200,200)))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Items\\AItb\\AItbTarget.mdl",x+GetRandomReal(-200,200),y+GetRandomReal(-200,200)))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Items\\AItb\\AItbTarget.mdl",x+GetRandomReal(-200,200),y+GetRandomReal(-200,200)))
if IsUnitAlly(u,p)==false then
set udg_integers15[i2]=udg_integers15[i2]-10
else
set udg_integers15[i2]=udg_integers15[i2]+10
endif
endif
set p=null
set u=null
endfunction
function InitAntiStupefy takes nothing returns nothing
local integer i=0
set udg_trigger60=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger60,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger60,Condition(function AntiStupefyCondition))
call TriggerAddAction(udg_trigger60,function AntiStupefyAction)
endfunction
function s__AvadaKedavra__AvadaKedavraData_onDestroy takes integer this returns nothing
call ClearTriggerStructA(udg_triggers08[this])
call DestroyTrigger(udg_triggers08[this])
endfunction
function s__AvadaKedavra__AvadaKedavraData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers30[this]!=-1)then
return
endif
call s__AvadaKedavra__AvadaKedavraData_onDestroy(this)
set udg_integers30[this]=udg_integer31
set udg_integer31=this
endfunction
function AvadaKedavra__AvadaKedavraTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==AvadaKedavra__AVADA_KEDAVRA_SPELL_ID or GetSpellAbilityId()=='A00I'
endfunction
function AvadaKedavra__AvadaKedavra_Effect takes nothing returns boolean
local integer A=GetTriggerStructA(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units08[A])
local unit u=GetTriggerUnit()
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units08[A])
local real my=GetUnitY(udg_units08[A])
local player p=GetOwningPlayer(udg_units09[A])
local integer i=GetPlayerId(p)
if GetUnitState(udg_units08[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans09[A]==false and u==udg_units09[A]then
set udg_booleans09[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units08[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units08[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units08[A],u)
else
call DestroyEffect(AddSpecialEffect(AvadaKedavra__AVADA_KEDAVRA_IMPACT_EFFECT,ux,uy))
call UnitDamageTarget(udg_units09[A],u,10000,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
call KillUnit(udg_units08[A])
if IsUnitAlly(u,p)then
set udg_integers15[i]=udg_integers15[i]-50
else
set udg_integers15[i]=udg_integers15[i]+50
endif
endif
endif
endif
set u=null
set p=null
return false
endfunction
function AvadaKedavra__AvadaKedavra_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units08[A])
local real x1=GetUnitX(udg_units08[A])
local real y1=GetUnitY(udg_units08[A])
local real x2=x1+AvadaKedavra__AVADA_KEDAVRA_MOVE_SPEED*Cos(udg_reals08[A])
local real y2=y1+AvadaKedavra__AVADA_KEDAVRA_MOVE_SPEED*Sin(udg_reals08[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=false
if GetUnitState(udg_units08[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals08[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+AvadaKedavra__AVADA_KEDAVRA_MOVE_SPEED*Cos(udg_reals08[A])
set y2=y1+AvadaKedavra__AVADA_KEDAVRA_MOVE_SPEED*Sin(udg_reals08[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if z2>TERRAIN_COLLIDE_HEIGHT or CheckPathability(x2,y2)==false then
set angle=GuessBounce(udg_reals08[A],x1,y1)
set udg_booleans09[A]=true
set udg_reals08[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units08[A],x2)
call SetUnitY(udg_units08[A],y2)
call SetUnitFlyHeight(udg_units08[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals09[A]>AvadaKedavra__AVADA_KEDAVRA_TOTAL_RANGE then
call KillUnit(udg_units08[A])
endif
set udg_reals09[A]=udg_reals09[A]+AvadaKedavra__AVADA_KEDAVRA_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__AvadaKedavra__AvadaKedavraData_destroy(A)
return true
endif
return false
endfunction
function AvadaKedavra__AvadaKedavraTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__AvadaKedavra__AvadaKedavraData__allocate()
set M=s__MissileData__allocate()
set udg_units08[A]=CreateUnit(GetOwningPlayer(u),AvadaKedavra__AVADA_KEDAVRA_MISSILE_ID,x1,y1,0)
set udg_units09[A]=u
set udg_reals08[A]=angle
set udg_reals09[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00I'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units08[A],1.5,1.5,1.5)
endif
call SetUnitUserData(udg_units08[A],M)
call PauseUnit(udg_units08[A],true)
call SetUnitFlyHeight(udg_units08[A],75.,.0)
call SetUnitInvulnerable(udg_units08[A],true)
call TT_Start(function AvadaKedavra__AvadaKedavra_Move,A)
call TriggerRegisterUnitInRange(udg_triggers08[A],udg_units08[A],AvadaKedavra__AVADA_KEDAVRA_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers08[A],Condition(function AvadaKedavra__AvadaKedavra_Effect))
call SetTriggerStructA(udg_triggers08[A],A)
call RemoveLocation(target)
set u=null
set target=null
endfunction
function InitAvadaKedavra takes nothing returns nothing
local integer i=0
set udg_trigger50=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger50,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger50,Condition(function AvadaKedavra__AvadaKedavraTrigger_Condition))
call TriggerAddAction(udg_trigger50,function AvadaKedavra__AvadaKedavraTrigger_Action)
endfunction
function s__Crucio__CrucioData_onDestroy takes integer this returns nothing
call ClearTriggerStructB(udg_triggers09[this])
call DestroyTrigger(udg_triggers09[this])
endfunction
function s__Crucio__CrucioData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers31[this]!=-1)then
return
endif
call s__Crucio__CrucioData_onDestroy(this)
set udg_integers31[this]=udg_integer33
set udg_integer33=this
endfunction
function s__Crucio__Crucio_TortureData_onDestroy takes integer this returns nothing
call SetTextTagLifespan(udg_texttags02[this],6.)
call SetTextTagLifespan(udg_texttags03[this],8.)
call SetTextTagFadepoint(udg_texttags02[this],5.)
call SetTextTagFadepoint(udg_texttags03[this],6.)
call SetUnitAnimation(udg_units13[this],"stand")
call PauseUnit(udg_units12[this],false)
call SetUnitFlyHeight(udg_units12[this],.0,.0)
endfunction
function s__Crucio__Crucio_TortureData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers32[this]!=-1)then
return
endif
call s__Crucio__Crucio_TortureData_onDestroy(this)
set udg_integers32[this]=udg_integer35
set udg_integer35=this
endfunction
function Crucio__CrucioTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==Crucio__CRUCIO_SPELL_ID or GetSpellAbilityId()=='A00J'
endfunction
function Crucio_Torture takes nothing returns boolean
local integer C=TT_GetData()
local integer H=GetUnitUserData(udg_units13[C])
local integer i
local string p
local integer i2
if udg_integers33[C]==0 then
call IssueImmediateOrderById(udg_units13[C],851972)
set udg_booleans03[H]=true
call UnitAddAbility(udg_units12[C],'Amrf')
call UnitRemoveAbility(udg_units12[C],'Amrf')
call SetUnitFlyHeight(udg_units12[C],200.,20.)
call UnitRemoveAbility(udg_units12[C],'BPSE')
call SetUnitTimeScale(udg_units12[C],1)
call UnitDamageTarget(udg_units13[C],udg_units12[C],200,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
call SetUnitAnimation(udg_units12[C],"death")
elseif ModuloInt(udg_integers33[C],50)==0 then
call UnitDamageTarget(udg_units13[C],udg_units12[C],70,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
if GetRandomInt(0,1)==0 then
call SetUnitAnimation(udg_units12[C],"death")
endif
endif
if ModuloInt(udg_integers33[C],60)==0 then
if(GetUnitTypeId(udg_units13[C])=='N000')then
call SetUnitAnimationByIndex(udg_units13[C],1)
else
call SetUnitAnimationByIndex(udg_units13[C],2)
endif
endif
if GetUnitState(udg_units12[C],UNIT_STATE_LIFE)<GetUnitState(udg_units12[C],UNIT_STATE_MAX_LIFE)*.22 and udg_booleans11[C]then
set udg_texttags02[C]=CreateTextTag()
set udg_texttags03[C]=CreateTextTag()
call SetTextTagText(udg_texttags02[C],"Tell us the information !!",10.*.023/10)
call SetTextTagText(udg_texttags03[C],"NOOooOo... !!",12.12*.023/10)
call SetTextTagPosUnit(udg_texttags02[C],udg_units13[C],.0)
call SetTextTagPosUnit(udg_texttags03[C],udg_units12[C],.3)
call SetTextTagColor(udg_texttags02[C],200,140,140,200)
call SetTextTagColor(udg_texttags03[C],255,200,'d',200)
call SetTextTagPermanent(udg_texttags02[C],false)
call SetTextTagPermanent(udg_texttags03[C],false)
call SetTextTagVisibility(udg_texttags02[C],true)
call SetTextTagVisibility(udg_texttags03[C],true)
call SetTextTagVelocity(udg_texttags02[C],.04,.02)
call SetTextTagVelocity(udg_texttags03[C],.03,.01)
set udg_booleans11[C]=false
set i=GetPlayerId(GetOwningPlayer(udg_units12[C]))
set i2=GetPlayerId(GetOwningPlayer(udg_units13[C]))
set udg_integers15[i2]=udg_integers15[i2]+150
if i<=5 then
set udg_real01=udg_real01+30
else
set udg_real02=udg_real02+30
endif
set p=GetPlayerName(GetOwningPlayer(udg_units12[C]))
call Msg2All(p+" has revealed his allies to his enemies !",25.)
endif
if udg_booleans04[H]or udg_booleans03[H]==false or GetUnitAbilityLevel(udg_units13[C],'BPSE')!=0 or IsUnitAlive(udg_units13[C])==false or GetUnitFlyHeight(udg_units13[C])>5 then
call s__Crucio__Crucio_TortureData_destroy(C)
return true
endif
set udg_integers33[C]=udg_integers33[C]+1
if IsUnitAlive(udg_units12[C])then
return false
endif
call s__Crucio__Crucio_TortureData_destroy(C)
return true
endfunction
function Crucio__Crucio_Effect takes nothing returns boolean
local integer A=GetTriggerStructB(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units10[A])
local integer C
local unit u=GetTriggerUnit()
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units10[A])
local real my=GetUnitY(udg_units10[A])
local real cx
local real cy
local player targetplayer=GetOwningPlayer(u)
local integer i=GetPlayerId(GetOwningPlayer(udg_units11[A]))
if GetUnitState(udg_units10[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans10[A]==false and u==udg_units11[A]then
set udg_booleans10[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units10[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units10[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units10[A],u)
else
call DestroyEffect(AddSpecialEffect(Crucio__CRUCIO_IMPACT_EFFECT,ux,uy))
call KillUnit(udg_units10[A])
if IsUnitEnemy(udg_units11[A],targetplayer)==false then
call SetUnitAnimation(u,"death")
call UnitDamageTarget(udg_units11[A],u,500,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
set udg_integers15[i]=udg_integers15[i]-30
else
set cx=GetUnitX(udg_units11[A])
set cy=GetUnitY(udg_units11[A])
if DistanceBetweenXY(cx,cy,ux,uy)>1000 then
call SetUnitAnimation(u,"death")
call UnitDamageTarget(udg_units11[A],u,500,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
set udg_integers15[i]=udg_integers15[i]+30
else
set C=s__Crucio__Crucio_TortureData__allocate()
set udg_units13[C]=udg_units11[A]
set udg_units12[C]=u
set udg_integers33[C]=0
set udg_booleans11[C]=true
call PauseUnit(u,true)
call TT_Start(function Crucio_Torture,C)
endif
endif
endif
endif
endif
set u=null
set targetplayer=null
return false
endfunction
function Crucio__Crucio_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units10[A])
local real x1=GetUnitX(udg_units10[A])
local real y1=GetUnitY(udg_units10[A])
local real x2=x1+Crucio__CRUCIO_MOVE_SPEED*Cos(udg_reals10[A])
local real y2=y1+Crucio__CRUCIO_MOVE_SPEED*Sin(udg_reals10[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=false
if GetUnitState(udg_units10[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals10[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+Crucio__CRUCIO_MOVE_SPEED*Cos(udg_reals10[A])
set y2=y1+Crucio__CRUCIO_MOVE_SPEED*Sin(udg_reals10[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if z2>TERRAIN_COLLIDE_HEIGHT or CheckPathability(x2,y2)==false then
set angle=GuessBounce(udg_reals10[A],x1,y1)
set udg_booleans10[A]=true
set udg_reals10[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units10[A],x2)
call SetUnitY(udg_units10[A],y2)
call SetUnitFlyHeight(udg_units10[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals11[A]>Crucio__CRUCIO_TOTAL_RANGE then
call KillUnit(udg_units10[A])
endif
set udg_reals11[A]=udg_reals11[A]+Crucio__CRUCIO_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__Crucio__CrucioData_destroy(A)
return true
endif
return false
endfunction
function Crucio__CrucioTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__Crucio__CrucioData__allocate()
set M=s__MissileData__allocate()
set udg_units10[A]=CreateUnit(GetOwningPlayer(u),Crucio__CRUCIO_MISSILE_ID,x1,y1,0)
set udg_units11[A]=u
set udg_reals10[A]=angle
set udg_reals11[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00J'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units10[A],1.3,1.3,1.3)
endif
call SetUnitUserData(udg_units10[A],M)
call PauseUnit(udg_units10[A],true)
call SetUnitFlyHeight(udg_units10[A],75.,.0)
call SetUnitInvulnerable(udg_units10[A],true)
call TT_Start(function Crucio__Crucio_Move,A)
call TriggerRegisterUnitInRange(udg_triggers09[A],udg_units10[A],Crucio__CRUCIO_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers09[A],Condition(function Crucio__Crucio_Effect))
call SetTriggerStructB(udg_triggers09[A],A)
call RemoveLocation(target)
set u=null
set target=null
endfunction
function InitCrucio takes nothing returns nothing
local integer i=0
set udg_trigger51=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger51,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger51,Condition(function Crucio__CrucioTrigger_Condition))
call TriggerAddAction(udg_trigger51,function Crucio__CrucioTrigger_Action)
endfunction
function CrystalBallCondition takes nothing returns boolean
return GetSpellAbilityId()=='A00E'
endfunction
function CrystalBallAction takes nothing returns nothing
local unit u=GetTriggerUnit()
local player p=GetOwningPlayer(u)
local integer pn=GetPlayerId(p)
local integer i=0
local integer ep=0
local lightning array l
local string path="MFPB"
local real x=GetUnitX(u)
local real y=GetUnitY(u)
local real x2=x
local real y2=y
if pn<6 then
set ep=6
else
set ep=0
endif
loop
exitwhen i>5
if(GetLocalPlayer()!=p)then
set path=""
endif
if IsUnitAlive(udg_units02[ep])and UnitHasItemOfType(udg_units02[ep],'I001')==false then
set x2=GetUnitX(udg_units02[ep])
set y2=GetUnitY(udg_units02[ep])
endif
set l[i]=AddLightning(path,true,x,y,x2,y2)
set ep=ep+1
set i=i+1
set path="MFPB"
set x2=x
set y2=y
endloop
call PolledWait2(1.)
set i=0
loop
exitwhen i>5
call DestroyLightning(l[i])
set l[i]=null
set i=i+1
endloop
set p=null
set u=null
endfunction
function InitCrystalBall takes nothing returns nothing
local integer i=0
set udg_trigger62=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger62,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger62,Condition(function CrystalBallCondition))
call TriggerAddAction(udg_trigger62,function CrystalBallAction)
endfunction
function s__Expelliarmus__ExpelliarmusData_onDestroy takes integer this returns nothing
call ClearTriggerStructA(udg_triggers10[this])
call DestroyTrigger(udg_triggers10[this])
endfunction
function s__Expelliarmus__ExpelliarmusData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers34[this]!=-1)then
return
endif
call s__Expelliarmus__ExpelliarmusData_onDestroy(this)
set udg_integers34[this]=udg_integer37
set udg_integer37=this
endfunction
function s__Expelliarmus__FlyingWandData_move takes integer this returns nothing
local integer v
call s__vector_add(udg_integers37[this],udg_integer21)
call s__vector_add(udg_integers36[this],udg_integers37[this])
call s__vector_add(udg_integers37[this],udg_integer21)
call s__vector_getTerrainPoint(udg_integer22,udg_reals05[udg_integers36[this]],udg_reals06[udg_integers36[this]])
if IsXinMap(udg_reals05[udg_integers36[this]])and IsYinMap(udg_reals06[udg_integers36[this]])and GetXYLocationZ(udg_reals05[udg_integers36[this]],udg_reals06[udg_integers36[this]])<TERRAIN_COLLIDE_HEIGHT then
call SetUnitX(udg_units16[this],udg_reals05[udg_integers36[this]])
call SetUnitY(udg_units16[this],udg_reals06[udg_integers36[this]])
endif
call SetUnitFlyHeight(udg_units16[this],udg_reals07[udg_integers36[this]]-udg_reals07[udg_integer22],.0)
if GetXYLocationZ(udg_reals05[udg_integers36[this]],udg_reals06[udg_integers36[this]])>TERRAIN_COLLIDE_HEIGHT then
set udg_reals05[udg_integers37[this]]=udg_reals05[udg_integers37[this]]*-1
set udg_reals06[udg_integers37[this]]=udg_reals06[udg_integers37[this]]*-1
set udg_reals07[udg_integers37[this]]=udg_reals07[udg_integers37[this]]*-1
endif
if udg_reals07[udg_integer22]>=udg_reals07[udg_integers36[this]]then
call DestroyEffect(AddSpecialEffect("Units\\Creeps\\HeroTinkerFactory\\HeroTinkerFactoryMissle.mdl",GetUnitX(udg_units16[this]),GetUnitY(udg_units16[this])))
set udg_booleans13[this]=true
endif
endfunction
function s__Expelliarmus__FlyingWandData_onDestroy takes integer this returns nothing
call SetUnitX(udg_units16[this],STORAGE_AREA_X)
call SetUnitY(udg_units16[this],STORAGE_AREA_Y)
call SetItemPosition(udg_items03[this],udg_reals05[udg_integers36[this]],udg_reals06[udg_integers36[this]])
call s__vector_destroy(udg_integers36[this])
call s__vector_destroy(udg_integers37[this])
endfunction
function s__Expelliarmus__FlyingWandData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers35[this]!=-1)then
return
endif
call s__Expelliarmus__FlyingWandData_onDestroy(this)
set udg_integers35[this]=udg_integer39
set udg_integer39=this
endfunction
function Expelliarmus__ExpelliarmusTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==Expelliarmus__EXPELLIARMUS_SPELL_ID or GetSpellAbilityId()=='A00K'
endfunction
function Expelliarmus_Fly takes nothing returns boolean
local integer W=TT_GetData()
if udg_booleans13[W]then
call s__Expelliarmus__FlyingWandData_destroy(W)
return true
endif
call s__Expelliarmus__FlyingWandData_move(W)
return false
endfunction
function Expelliarmus__Expelliarmus_Effect takes nothing returns boolean
local integer A=GetTriggerStructA(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units14[A])
local integer W
local unit u=GetTriggerUnit()
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units14[A])
local real my=GetUnitY(udg_units14[A])
local item w
local integer i=0
local player p=GetOwningPlayer(udg_units15[A])
local integer pl=GetPlayerId(p)
if GetUnitState(udg_units14[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans12[A]==false and u==udg_units15[A]then
set udg_booleans12[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units14[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units14[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 then
call ProjectileImpactWithProtegoUnit(udg_units14[A],u)
elseif GetUnitAbilityLevel(u,PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units14[A],u)
elseif UnitHasItemOfType(u,'I003')and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units14[A],u)
call DestroyEffect(AddSpecialEffectTarget(PROTEGO_HAT_EFFECT,u,"head"))
call RemoveItem(UnitGetItemOfType(u,'I003'))
else
loop
exitwhen i>5
set w=UnitItemInSlot(u,i)
if w!=null then
if GetItemTypeId(w)=='ssil'or GetItemTypeId(w)=='I004'then
set W=s__Expelliarmus__FlyingWandData__allocate()
set udg_items03[W]=w
set udg_units16[W]=udg_units03[GetItemUserData(udg_items03[W])]
set udg_integers36[W]=s__vector_create(GetUnitX(u),GetUnitY(u),TERRAIN_COLLIDE_HEIGHT+'d')
set udg_integers37[W]=s__vector_create(GetRandomReal(-15,15),GetRandomReal(-15,15),GetRandomReal(20,30))
call SetItemPosition(udg_items03[W],STORAGE_AREA_X,STORAGE_AREA_Y)
call TT_Start(function Expelliarmus_Fly,W)
endif
endif
set i=i+1
endloop
call DestroyEffect(AddSpecialEffectTarget(Expelliarmus__EXPELLIARMUS_IMPACT_EFFECT,u,"hand - right"))
call KillUnit(udg_units14[A])
if IsUnitAlly(u,p)then
set udg_integers15[pl]=udg_integers15[pl]-2
else
set udg_integers15[pl]=udg_integers15[pl]+2
endif
endif
endif
endif
set u=null
set w=null
set p=null
return false
endfunction
function Expelliarmus__Expelliarmus_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units14[A])
local real x1=GetUnitX(udg_units14[A])
local real y1=GetUnitY(udg_units14[A])
local real x2=x1+Expelliarmus__EXPELLIARMUS_MOVE_SPEED*Cos(udg_reals12[A])
local real y2=y1+Expelliarmus__EXPELLIARMUS_MOVE_SPEED*Sin(udg_reals12[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=true
if GetUnitState(udg_units14[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals12[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+Expelliarmus__EXPELLIARMUS_MOVE_SPEED*Cos(udg_reals12[A])
set y2=y1+Expelliarmus__EXPELLIARMUS_MOVE_SPEED*Sin(udg_reals12[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if z2>TERRAIN_COLLIDE_HEIGHT or CheckPathability(x2,y2)==false then
set angle=GuessBounce(udg_reals12[A],x1,y1)
set udg_booleans12[A]=true
set udg_reals12[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units14[A],x2)
call SetUnitY(udg_units14[A],y2)
call SetUnitFlyHeight(udg_units14[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals13[A]>Expelliarmus__EXPELLIARMUS_TOTAL_RANGE then
call KillUnit(udg_units14[A])
endif
set udg_reals13[A]=udg_reals13[A]+Expelliarmus__EXPELLIARMUS_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__Expelliarmus__ExpelliarmusData_destroy(A)
return true
endif
return false
endfunction
function Expelliarmus__ExpelliarmusTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__Expelliarmus__ExpelliarmusData__allocate()
set M=s__MissileData__allocate()
set udg_units14[A]=CreateUnit(GetOwningPlayer(u),Expelliarmus__EXPELLIARMUS_MISSILE_ID,x1,y1,0)
set udg_units15[A]=u
set udg_reals12[A]=angle
set udg_reals13[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00K'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units14[A],1.5,1.5,1.5)
endif
call SetUnitUserData(udg_units14[A],M)
call PauseUnit(udg_units14[A],true)
call SetUnitFlyHeight(udg_units14[A],75.,.0)
call SetUnitInvulnerable(udg_units14[A],true)
call TT_Start(function Expelliarmus__Expelliarmus_Move,A)
call TriggerRegisterUnitInRange(udg_triggers10[A],udg_units14[A],Expelliarmus__EXPELLIARMUS_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers10[A],Condition(function Expelliarmus__Expelliarmus_Effect))
call SetTriggerStructA(udg_triggers10[A],A)
call RemoveLocation(target)
set target=null
set u=null
endfunction
function InitExpelliarmus takes nothing returns nothing
local integer i=0
set udg_trigger56=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger56,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger56,Condition(function Expelliarmus__ExpelliarmusTrigger_Condition))
call TriggerAddAction(udg_trigger56,function Expelliarmus__ExpelliarmusTrigger_Action)
endfunction
function HaavaParannusSpelli__AntiHaavaCondition takes nothing returns boolean
return GetSpellAbilityId()=='A00C'
endfunction
function HaavaParannusSpelli__AntiHaavaAction takes nothing returns nothing
local unit u=GetSpellTargetUnit()
local integer i=GetUnitAbilityLevel(u,'B000')
local player p=GetOwningPlayer(GetTriggerUnit())
local integer i2=GetPlayerId(p)
if i>0 then
call UnitRemoveAbility(u,'B000')
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Orc\\HealingWave\\HealingWaveTarget.mdl",u,"chest"))
if IsUnitAlly(u,p)==false then
set udg_integers15[i2]=udg_integers15[i2]-10
else
set udg_integers15[i2]=udg_integers15[i2]+10
endif
endif
set u=null
set p=null
endfunction
function HaavaParannusSpelli__AntiHaavaChannel takes nothing returns nothing
local unit t=GetSpellTargetUnit()
local unit c=GetTriggerUnit()
local boolean b=(GetUnitTypeId(c)=='N000')
local effect e=AddSpecialEffectTarget("Abilities\\Spells\\Other\\HealTarget2\\HealTarget2.mdl",t,"chest")
if b then
call SetUnitAnimationByIndex(c,1)
else
call SetUnitAnimationByIndex(c,2)
endif
call PolledWait2(1.)
if b then
call SetUnitAnimationByIndex(c,1)
else
call SetUnitAnimationByIndex(c,2)
endif
call PolledWait2(1.)
if b then
call SetUnitAnimationByIndex(c,1)
else
call SetUnitAnimationByIndex(c,2)
endif
call PolledWait2(1.)
if b then
call SetUnitAnimationByIndex(c,1)
else
call SetUnitAnimationByIndex(c,2)
endif
call PolledWait2(1.)
if b then
call SetUnitAnimationByIndex(c,1)
else
call SetUnitAnimationByIndex(c,2)
endif
call PolledWait2(1.)
if b then
call SetUnitAnimationByIndex(c,1)
else
call SetUnitAnimationByIndex(c,2)
endif
call DestroyEffect(e)
set e=null
set c=null
set t=null
endfunction
function InitAntiHaava takes nothing returns nothing
local integer i=0
set udg_trigger57=CreateTrigger()
set udg_trigger58=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger57,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
call TriggerRegisterUnitEvent(udg_trigger58,udg_units02[i],EVENT_UNIT_SPELL_CHANNEL)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger57,Condition(function HaavaParannusSpelli__AntiHaavaCondition))
call TriggerAddCondition(udg_trigger58,Condition(function HaavaParannusSpelli__AntiHaavaCondition))
call TriggerAddAction(udg_trigger57,function HaavaParannusSpelli__AntiHaavaAction)
call TriggerAddAction(udg_trigger58,function HaavaParannusSpelli__AntiHaavaChannel)
endfunction
function s__Impedimenta__ImpedimentaData_onDestroy takes integer this returns nothing
call ClearTriggerStructB(udg_triggers11[this])
call DestroyTrigger(udg_triggers11[this])
endfunction
function s__Impedimenta__ImpedimentaData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers38[this]!=-1)then
return
endif
call s__Impedimenta__ImpedimentaData_onDestroy(this)
set udg_integers38[this]=udg_integer41
set udg_integer41=this
endfunction
function s__Impedimenta__ImpedimentaFlyData_move takes integer this returns nothing
local integer v
call s__vector_add(udg_integers41[this],udg_integer21)
call s__vector_add(udg_integers40[this],udg_integers41[this])
call s__vector_add(udg_integers41[this],udg_integer21)
call s__vector_getTerrainPoint(udg_integer22,udg_reals05[udg_integers40[this]],udg_reals06[udg_integers40[this]])
if IsXinMap(udg_reals05[udg_integers40[this]])and IsYinMap(udg_reals06[udg_integers40[this]])and GetXYLocationZ(udg_reals05[udg_integers40[this]],udg_reals06[udg_integers40[this]])<TERRAIN_COLLIDE_HEIGHT then
call SetUnitX(udg_units19[this],udg_reals05[udg_integers40[this]])
call SetUnitY(udg_units19[this],udg_reals06[udg_integers40[this]])
endif
call SetUnitFlyHeight(udg_units19[this],udg_reals07[udg_integers40[this]]-udg_reals07[udg_integer22],.0)
if GetXYLocationZ(udg_reals05[udg_integers40[this]],udg_reals06[udg_integers40[this]])>TERRAIN_COLLIDE_HEIGHT then
set udg_reals05[udg_integers41[this]]=udg_reals05[udg_integers41[this]]*-.5
set udg_reals06[udg_integers41[this]]=udg_reals06[udg_integers41[this]]*-.5
set udg_reals07[udg_integers41[this]]=udg_reals07[udg_integers41[this]]*-.5
call UnitDamageTarget(udg_units20[this],udg_units19[this],udg_reals16[this],true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
endif
if IsUnitAlive(udg_units19[this])==false then
set udg_booleans15[this]=true
endif
if udg_reals07[udg_integer22]>=udg_reals07[udg_integers40[this]]then
call UnitDamageTarget(udg_units20[this],udg_units19[this],udg_reals16[this],true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\GryphonRiderMissile\\GryphonRiderMissileTarget.mdl",GetUnitX(udg_units19[this]),GetUnitY(udg_units19[this])))
set udg_booleans15[this]=true
endif
endfunction
function s__Impedimenta__ImpedimentaFlyData_onDestroy takes integer this returns nothing
call SetUnitFlyHeight(udg_units19[this],.0,.0)
call SetUnitPosition(udg_units19[this],GetUnitX(udg_units19[this]),GetUnitY(udg_units19[this]))
call s__vector_destroy(udg_integers40[this])
call s__vector_destroy(udg_integers41[this])
endfunction
function s__Impedimenta__ImpedimentaFlyData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers39[this]!=-1)then
return
endif
call s__Impedimenta__ImpedimentaFlyData_onDestroy(this)
set udg_integers39[this]=udg_integer43
set udg_integer43=this
endfunction
function Impedimenta__ImpedimentaTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==Impedimenta__IMPEDIMENTA_SPELL_ID or GetSpellAbilityId()=='A00L'
endfunction
function Impedimenta_Fly takes nothing returns boolean
local integer F=TT_GetData()
if udg_booleans15[F]then
call s__Impedimenta__ImpedimentaFlyData_destroy(F)
return true
endif
call s__Impedimenta__ImpedimentaFlyData_move(F)
return false
endfunction
function Impedimenta__Impedimenta_Effect takes nothing returns boolean
local integer A=GetTriggerStructB(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units17[A])
local integer F
local unit u=GetTriggerUnit()
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units17[A])
local real my=GetUnitY(udg_units17[A])
local integer i=0
local real hx
local real hy
local real dx
local real dy
local real d
local real angle
local player p=GetOwningPlayer(udg_units18[A])
local integer pl=GetPlayerId(p)
if GetUnitState(udg_units17[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans14[A]==false and u==udg_units18[A]then
set udg_booleans14[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units17[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units17[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 then
call ProjectileImpactWithProtegoUnit(udg_units17[A],u)
elseif GetUnitAbilityLevel(u,PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units17[A],u)
elseif UnitHasItemOfType(u,'I003')and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units17[A],u)
call DestroyEffect(AddSpecialEffectTarget(PROTEGO_HAT_EFFECT,u,"head"))
call RemoveItem(UnitGetItemOfType(u,'I003'))
else
loop
exitwhen i>11
set hx=GetUnitX(udg_units02[i])
set hy=GetUnitY(udg_units02[i])
set dx=hx-mx
set dy=hy-my
set d=SquareRoot(dx*dx+dy*dy)
set angle=Atan2(dy,dx)
if d<250 and udg_units02[i]!=null and GetUnitFlyHeight(udg_units02[i])<'d'then
if GetUnitAbilityLevel(udg_units02[i],ELDER_PROTEGO_BUFF_ID)>0 then
call ProjectileImpactWithProtegoUnit(udg_units17[A],udg_units02[i])
elseif GetUnitAbilityLevel(udg_units02[i],PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units17[A],udg_units02[i])
elseif UnitHasItemOfType(udg_units02[i],'I003')and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units17[A],udg_units02[i])
call DestroyEffect(AddSpecialEffectTarget(PROTEGO_HAT_EFFECT,udg_units02[i],"head"))
call RemoveItem(UnitGetItemOfType(udg_units02[i],'I003'))
else
set F=s__Impedimenta__ImpedimentaFlyData__allocate()
set udg_units19[F]=udg_units02[i]
set udg_units20[F]=udg_units18[A]
set udg_integers40[F]=s__vector_create(GetUnitX(udg_units19[F]),GetUnitY(udg_units19[F]),TERRAIN_COLLIDE_HEIGHT+'d')
set udg_integers41[F]=s__vector_create(((251-d)*Cos(angle)*.1),((251-d)*Sin(angle))*.1,10-d*.07)
set udg_reals16[F]=300-d
call UnitAddAbility(udg_units19[F],'Amrf')
call UnitRemoveAbility(udg_units19[F],'Amrf')
call TT_Start(function Impedimenta_Fly,F)
if IsUnitAlly(udg_units02[i],p)then
set udg_integers15[pl]=udg_integers15[pl]-1
else
set udg_integers15[pl]=udg_integers15[pl]+1
endif
endif
endif
set i=i+1
endloop
call DestroyEffect(AddSpecialEffect(Impedimenta__IMPEDIMENTA_IMPACT_EFFECT,ux,uy))
call KillUnit(udg_units17[A])
endif
endif
endif
set p=null
set u=null
return false
endfunction
function Impedimenta__Impedimenta_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units17[A])
local real x1=GetUnitX(udg_units17[A])
local real y1=GetUnitY(udg_units17[A])
local real x2=x1+Impedimenta__IMPEDIMENTA_MOVE_SPEED*Cos(udg_reals14[A])
local real y2=y1+Impedimenta__IMPEDIMENTA_MOVE_SPEED*Sin(udg_reals14[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=false
if GetUnitState(udg_units17[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals14[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+Impedimenta__IMPEDIMENTA_MOVE_SPEED*Cos(udg_reals14[A])
set y2=y1+Impedimenta__IMPEDIMENTA_MOVE_SPEED*Sin(udg_reals14[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if CheckPathability(x2,y2)==false or z2>TERRAIN_COLLIDE_HEIGHT then
set angle=GuessBounce(udg_reals14[A],x1,y1)
set udg_booleans14[A]=true
set udg_reals14[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units17[A],x2)
call SetUnitY(udg_units17[A],y2)
call SetUnitFlyHeight(udg_units17[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals15[A]>Impedimenta__IMPEDIMENTA_TOTAL_RANGE then
call KillUnit(udg_units17[A])
endif
set udg_reals15[A]=udg_reals15[A]+Impedimenta__IMPEDIMENTA_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__Impedimenta__ImpedimentaData_destroy(A)
return true
endif
return false
endfunction
function Impedimenta__ImpedimentaTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__Impedimenta__ImpedimentaData__allocate()
set M=s__MissileData__allocate()
set udg_units17[A]=CreateUnit(GetOwningPlayer(u),Impedimenta__IMPEDIMENTA_MISSILE_ID,x1,y1,0)
set udg_units18[A]=u
set udg_reals14[A]=angle
set udg_reals15[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00L'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units17[A],1.5,1.5,1.5)
endif
call SetUnitUserData(udg_units17[A],M)
call PauseUnit(udg_units17[A],true)
call SetUnitFlyHeight(udg_units17[A],75.,.0)
call SetUnitInvulnerable(udg_units17[A],true)
call TT_Start(function Impedimenta__Impedimenta_Move,A)
call TriggerRegisterUnitInRange(udg_triggers11[A],udg_units17[A],Impedimenta__IMPEDIMENTA_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers11[A],Condition(function Impedimenta__Impedimenta_Effect))
call SetTriggerStructB(udg_triggers11[A],A)
call RemoveLocation(target)
set target=null
set u=null
endfunction
function InitImpedimenta takes nothing returns nothing
local integer i=0
set udg_trigger54=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger54,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger54,Condition(function Impedimenta__ImpedimentaTrigger_Condition))
call TriggerAddAction(udg_trigger54,function Impedimenta__ImpedimentaTrigger_Action)
set udg_integer20=s__vector_create(.0,.0,-1000.*.03125*.03125)
set udg_integer21=s__vector_create(udg_reals05[udg_integer20]/2,udg_reals06[udg_integer20]/2,udg_reals07[udg_integer20]/2)
set udg_integer22=s__vector_create(0,0,0)
endfunction
function s__Imperio__ImperioData_onDestroy takes integer this returns nothing
call ClearTriggerStructC(udg_triggers12[this])
call DestroyTrigger(udg_triggers12[this])
endfunction
function s__Imperio__ImperioData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers42[this]!=-1)then
return
endif
call s__Imperio__ImperioData_onDestroy(this)
set udg_integers42[this]=udg_integer45
set udg_integer45=this
endfunction
function Imperio__ImperioTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==Imperio__IMPERIO_SPELL_ID or GetSpellAbilityId()=='A00M'
endfunction
function Imperio__EndHeroConfuce takes nothing returns boolean
local integer C=ABCT_GetData()
local integer H=GetUnitUserData(udg_units23[C])
set udg_booleans06[H]=false
call DestroyEffect(udg_effects01[C])
call DisableTrigger(udg_triggers13[C])
call s__Imperio__ImperioConfuseData_destroy(C)
return true
endfunction
function Imperio__Imperio_Effect takes nothing returns boolean
local integer A=GetTriggerStructC(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units21[A])
local integer H
local integer H2
local integer C
local unit u=GetTriggerUnit()
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units21[A])
local real my=GetUnitY(udg_units21[A])
local player oldowner=GetOwningPlayer(u)
local player imperior=GetOwningPlayer(udg_units21[A])
local integer i2=GetPlayerId(imperior)
local integer i=GetPlayerId(oldowner)
if GetUnitState(udg_units21[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans16[A]==false and u==udg_units22[A]then
set udg_booleans16[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units21[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units21[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units21[A],u)
else
set H=GetUnitUserData(u)
set C=s__Imperio__ImperioConfuseData__allocate()
call DestroyEffect(AddSpecialEffectTarget(Imperio__IMPERIO_IMPACT_EFFECT,u,"head"))
call KillUnit(udg_units21[A])
if IsUnitAlive(udg_units22[A])then
if IsUnitAlly(u,imperior)or oldowner==imperior then
if udg_booleans06[H]then
call UnitDamageTarget(udg_units22[A],u,200,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
else
call EnableTrigger(udg_triggers06[H])
set udg_triggers13[C]=udg_triggers06[H]
set udg_units23[C]=u
set udg_booleans06[H]=true
set udg_effects01[C]=AddSpecialEffectTarget("Abilities\\Spells\\Human\\Thunderclap\\ThunderclapTarget.mdl",u,"overhead")
call ABCT_Start(function Imperio__EndHeroConfuce,C,30.)
endif
else
if udg_units04[H]==null and IsUnitAlive(udg_units22[A])then
call SetUnitOwner(u,imperior,false)
call UnitShareVision(u,oldowner,true)
set udg_units04[H]=udg_units22[A]
set H2=GetUnitUserData(udg_units22[A])
set udg_integers20[H2]=udg_integers20[H2]+1
set udg_units05[udg_integers19[H2]+udg_integers20[H2]]=u
set udg_integers15[i2]=udg_integers15[i2]+60
else
if udg_booleans06[H]then
call UnitDamageTarget(udg_units22[A],u,200,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
else
call EnableTrigger(udg_triggers06[H])
set udg_triggers13[C]=udg_triggers06[H]
set udg_units23[C]=u
set udg_booleans06[H]=true
set udg_effects01[C]=AddSpecialEffectTarget("Abilities\\Spells\\Human\\Thunderclap\\ThunderclapTarget.mdl",u,"overhead")
call ABCT_Start(function Imperio__EndHeroConfuce,C,15.)
endif
endif
endif
endif
endif
endif
endif
set u=null
set oldowner=null
set imperior=null
return false
endfunction
function Imperio__Imperio_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units21[A])
local real x1=GetUnitX(udg_units21[A])
local real y1=GetUnitY(udg_units21[A])
local real x2=x1+Imperio__IMPERIO_MOVE_SPEED*Cos(udg_reals17[A])
local real y2=y1+Imperio__IMPERIO_MOVE_SPEED*Sin(udg_reals17[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=false
if GetUnitState(udg_units21[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals17[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+Imperio__IMPERIO_MOVE_SPEED*Cos(udg_reals17[A])
set y2=y1+Imperio__IMPERIO_MOVE_SPEED*Sin(udg_reals17[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if z2>TERRAIN_COLLIDE_HEIGHT or CheckPathability(x2,y2)==false then
set angle=GuessBounce(udg_reals17[A],x1,y1)
set udg_booleans16[A]=true
set udg_reals17[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units21[A],x2)
call SetUnitY(udg_units21[A],y2)
call SetUnitFlyHeight(udg_units21[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals18[A]>Imperio__IMPERIO_TOTAL_RANGE then
call KillUnit(udg_units21[A])
endif
set udg_reals18[A]=udg_reals18[A]+Imperio__IMPERIO_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__Imperio__ImperioData_destroy(A)
return true
endif
return false
endfunction
function Imperio__ImperioTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__Imperio__ImperioData__allocate()
set M=s__MissileData__allocate()
set udg_units21[A]=CreateUnit(GetOwningPlayer(u),Imperio__IMPERIO_MISSILE_ID,x1,y1,0)
set udg_units22[A]=u
set udg_reals17[A]=angle
set udg_reals18[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00M'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units21[A],1.3,1.3,1.3)
endif
call SetUnitUserData(udg_units21[A],M)
call PauseUnit(udg_units21[A],true)
call SetUnitFlyHeight(udg_units21[A],75.,.0)
call SetUnitInvulnerable(udg_units21[A],true)
call TT_Start(function Imperio__Imperio_Move,A)
call TriggerRegisterUnitInRange(udg_triggers12[A],udg_units21[A],Imperio__IMPERIO_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers12[A],Condition(function Imperio__Imperio_Effect))
call SetTriggerStructC(udg_triggers12[A],A)
call RemoveLocation(target)
set u=null
set target=null
endfunction
function InitImperio takes nothing returns nothing
local integer i=0
set udg_trigger52=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger52,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger52,Condition(function Imperio__ImperioTrigger_Condition))
call TriggerAddAction(udg_trigger52,function Imperio__ImperioTrigger_Action)
endfunction
function RunVictoryCheckForOrder takes nothing returns boolean
local integer i=0
local integer alive=0
local integer H
loop
exitwhen i==6
set H=udg_integers16[i]
if IsUnitAlive(udg_units02[i])and udg_units04[H]==null and GetUnitAbilityLevel(udg_units02[i],'BPSE')==0 then
set alive=alive+1
endif
set i=i+1
endloop
if alive==0 then
return true
endif
return false
endfunction
function Rounds__DumbleddoreFade takes nothing returns nothing
set udg_integer19=udg_integer19-1
call SetUnitVertexColor(udg_unit15,255,2555,255,udg_integer19)
if udg_integer19==0 then
call PauseTimer(udg_timer03)
call DestroyTimer(udg_timer03)
call SetUnitX(udg_unit15,STORAGE_AREA_X)
call SetUnitY(udg_unit15,STORAGE_AREA_Y)
call PauseUnit(udg_unit15,true)
endif
endfunction
function Rounds__DumbledoreE takes nothing returns nothing
local texttag t=CreateTextTag()
call DestroyTrigger(udg_trigger47)
set udg_timer03=CreateTimer()
call SetTextTagText(t,"Oh it´s you.. Please Take this wand..",9.*.023/10)
call SetTextTagPosUnit(t,udg_unit15,.5)
call SetTextTagColor(t,240,240,50,205)
call SetTextTagPermanent(t,false)
call SetTextTagVisibility(t,true)
call SetTextTagVelocity(t,.0,.02)
call SetTextTagLifespan(t,12.)
call SetTextTagFadepoint(t,10.)
set udg_items01[12]=CreateItem('I004',GetUnitX(udg_unit15),GetUnitY(udg_unit15))
set udg_units03[12]=CreateUnit(Player(15),'h007',STORAGE_AREA_X,STORAGE_AREA_Y,0)
call PauseUnit(udg_units03[12],true)
call SetItemUserData(udg_items01[12],12)
call TimerStart(udg_timer03,.04,true,function Rounds__DumbleddoreFade)
endfunction
function Rounds__Dumbledore takes nothing returns nothing
local real x
local real y
local integer i=GetRandomInt(0,3)
if i==0 then
set x=5590.
set y=-284.
elseif i==1 then
set x=717.
set y=-1086.
elseif i==2 then
set x=-1471.
set y=3884.
else
set x=3056.
set y=4009.
endif
set udg_trigger47=CreateTrigger()
set udg_unit15=CreateUnit(Player(15),'n00A',x,y,0)
call TriggerRegisterUnitInRange(udg_trigger47,udg_unit15,200.,Filter(function Filttemellarung))
call TriggerAddAction(udg_trigger47,function Rounds__DumbledoreE)
endfunction
function RunVictoryCheckForEaters takes nothing returns boolean
local integer i=6
local integer alive=0
local integer H
loop
exitwhen i==12
set H=udg_integers16[i]
if IsUnitAlive(udg_units02[i])and udg_units04[H]==null and GetUnitAbilityLevel(udg_units02[i],'BPSE')==0 then
set alive=alive+1
endif
set i=i+1
endloop
if alive==0 then
return true
endif
return false
endfunction
function StartNewRound takes nothing returns nothing
local integer i=0
local real x
local real y
local integer H
call PauseTimer(udg_timer02)
loop
exitwhen i>11
if GetPlayerSlotState(Player(i))==PLAYER_SLOT_STATE_PLAYING then
if IsUnitAlive(udg_units02[i])and GetUnitAbilityLevel(udg_units02[i],'BPSE')<=0 and IsUnitMindControlled(udg_units02[i])==false then
set udg_integers15[i]=udg_integers15[i]+50
endif
set udg_integers15[i]=udg_integers15[i]+10
if udg_integers15[i]>0 then
call SetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD)+udg_integers15[i])
endif
set udg_integers15[i]=0
if i<=5 then
set x=GetRandomReal(-5064.9,-3704.5)
set y=GetRandomReal(122.4,1821.5)
else
set x=GetRandomReal(2417.3,4297.6)
set y=GetRandomReal(-8977.,-7064.7)
endif
call ReviveHero(udg_units02[i],x,y,false)
set H=udg_integers16[i]
set udg_booleans02[H]=true
call PauseUnit(udg_units02[i],false)
call SetUnitPosition(udg_units02[i],x,y)
call SetItemPosition(udg_items01[i],x,y)
call UnitAddItem(udg_units02[i],udg_items01[i])
call UnitRemoveBuffs(udg_units02[i],true,true)
call SetUnitState(udg_units02[i],UNIT_STATE_LIFE,GetUnitState(udg_units02[i],UNIT_STATE_MAX_LIFE))
call SetUnitTimeScale(udg_units02[i],1)
call ReleaseImperioUnits(udg_units02[i])
elseif GetPlayerSlotState(Player(i))==PLAYER_SLOT_STATE_LEFT and IsUnitAlive(udg_units02[i])then
call KillUnit(udg_units02[i])
endif
set i=i+1
endloop
set udg_real01=0
set udg_real02=0
call EnableTrigger(udg_trigger46)
set udg_integer18=udg_integer18+1
if udg_integer18==R2I(udg_integer03/2)then
call Rounds__Dumbledore()
endif
call Msg2All("Round "+I2S(udg_integer18),15.)
endfunction
function CheckSituation takes nothing returns nothing
local boolean bOrder=RunVictoryCheckForOrder()
local boolean bEaters=RunVictoryCheckForEaters()
if bOrder==false and bEaters==false then
return
endif
if bOrder and bEaters then
call Msg2All("EVEN MATCH!!!",20)
call PauseAllHeroes(true)
call DisableTrigger(udg_trigger46)
call TimerStart(udg_timer02,5.,false,function StartNewRound)
return
endif
if bOrder and bEaters==false then
set udg_integer01=udg_integer01+1
call TriggerExecute(udg_trigger05)
if udg_integer01==udg_integer03 then
call PauseAllHeroes(true)
call BJDebugMsg("EATERS WIN")
call BJDebugMsg("Game ends in 20 seconds")
call DestroyTimer(udg_timer02)
call DestroyTrigger(udg_trigger46)
call TriggerSleepAction(20.)
call CustomVictoryBJ(Player(6),true,true)
call CustomDefeatBJ(Player(0),"The End")
call CustomVictoryBJ(Player(7),true,true)
call CustomDefeatBJ(Player(1),"The End")
call CustomVictoryBJ(Player(8),true,true)
call CustomDefeatBJ(Player(2),"The End")
call CustomVictoryBJ(Player(9),true,true)
call CustomDefeatBJ(Player(3),"The End")
call CustomVictoryBJ(Player(10),true,true)
call CustomDefeatBJ(Player(4),"The End")
call CustomVictoryBJ(Player(11),true,true)
call CustomDefeatBJ(Player(5),"The End")
return
endif
call Msg2All("|c00008000Death Eaters Wins the Round!|r",10)
call PauseAllHeroes(true)
call DisableTrigger(udg_trigger46)
call TimerStart(udg_timer02,5.,false,function StartNewRound)
return
endif
if bOrder==false and bEaters then
set udg_integer02=udg_integer02+1
call TriggerExecute(udg_trigger05)
if udg_integer02==udg_integer03 then
call PauseAllHeroes(true)
call BJDebugMsg("ORDER WIN")
call BJDebugMsg("Game ends in 20 seconds")
call DestroyTimer(udg_timer02)
call DestroyTrigger(udg_trigger46)
call TriggerSleepAction(20.)
call CustomVictoryBJ(Player(0),true,true)
call CustomDefeatBJ(Player(6),"The End")
call CustomVictoryBJ(Player(1),true,true)
call CustomDefeatBJ(Player(7),"The End")
call CustomVictoryBJ(Player(2),true,true)
call CustomDefeatBJ(Player(8),"The End")
call CustomVictoryBJ(Player(3),true,true)
call CustomDefeatBJ(Player(9),"The End")
call CustomVictoryBJ(Player(4),true,true)
call CustomDefeatBJ(Player(10),"The End")
call CustomVictoryBJ(Player(5),true,true)
call CustomDefeatBJ(Player(11),"The End")
return
endif
call Msg2All("|c00FF0000Order of the Phoenix Wins the Round!|r",10)
call PauseAllHeroes(true)
call DisableTrigger(udg_trigger46)
call TimerStart(udg_timer02,5.,false,function StartNewRound)
endif
endfunction
function s__Sektumsempra__SektumsempraData_onDestroy takes integer this returns nothing
call ClearTriggerStructC(udg_triggers14[this])
call DestroyTrigger(udg_triggers14[this])
endfunction
function s__Sektumsempra__SektumsempraData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers44[this]!=-1)then
return
endif
call s__Sektumsempra__SektumsempraData_onDestroy(this)
set udg_integers44[this]=udg_integer49
set udg_integer49=this
endfunction
function s__Sektumsempra__SektumsempraBleedingData_onDestroy takes integer this returns nothing
local integer H=GetUnitUserData(udg_units26[this])
set udg_integers24[H]=255
set udg_integers23[H]=255
call UnitResetColor(udg_units26[this])
endfunction
function s__Sektumsempra__SektumsempraBleedingData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers45[this]!=-1)then
return
endif
call s__Sektumsempra__SektumsempraBleedingData_onDestroy(this)
set udg_integers45[this]=udg_integer51
set udg_integer51=this
endfunction
function Sektumsempra__SektumsempraTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==Sektumsempra__SEKTUMSEMPRA_SPELL_ID or GetSpellAbilityId()=='A00N'
endfunction
function Sektumsempra__Sektumsempra_Bleed takes nothing returns boolean
local integer B=ABCT_GetData()
local integer H=GetUnitUserData(udg_units26[B])
local boolean b=IsUnitAlive(udg_units26[B])and GetUnitAbilityLevel(udg_units26[B],'B000')>0
local integer color=R2I(255*(GetUnitState(udg_units26[B],UNIT_STATE_LIFE)/GetUnitState(udg_units26[B],UNIT_STATE_MAX_LIFE)))
if b==false then
call s__Sektumsempra__SektumsempraBleedingData_destroy(B)
return true
endif
call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl",udg_units26[B],"head"))
call UnitDamageTarget(udg_units27[B],udg_units26[B],40,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
set udg_integers24[H]=color
set udg_integers23[H]=color
call UnitResetColor(udg_units26[B])
return false
endfunction
function Sektumsempra__Sektumsempra_Effect takes nothing returns boolean
local integer A=GetTriggerStructC(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units24[A])
local integer B
local unit u=GetTriggerUnit()
local unit c=null
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units24[A])
local real my=GetUnitY(udg_units24[A])
local player p=GetOwningPlayer(udg_units25[A])
local player p2=GetOwningPlayer(u)
local integer pl=GetPlayerId(p)
if GetUnitState(udg_units24[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans17[A]==false and u==udg_units25[A]then
set udg_booleans17[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units24[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units24[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 then
call ProjectileImpactWithProtegoUnit(udg_units24[A],u)
elseif GetUnitAbilityLevel(u,PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units24[A],u)
elseif UnitHasItemOfType(u,'I003')and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units24[A],u)
call DestroyEffect(AddSpecialEffectTarget(PROTEGO_HAT_EFFECT,u,"head"))
call RemoveItem(UnitGetItemOfType(u,'I003'))
else
set c=UseCaster()
call SetUnitX(c,ux)
call SetUnitY(c,uy)
call IssueTargetOrderById(c,852075,u)
call StopUsingCaster(c)
call DestroyEffect(AddSpecialEffectTarget(Sektumsempra__SEKTUMSEMPRA_IMPACT_EFFECT,u,"chest"))
call UnitDamageTarget(udg_units25[A],u,200,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
call KillUnit(udg_units24[A])
set B=s__Sektumsempra__SektumsempraBleedingData__allocate()
set udg_units26[B]=u
set udg_integers46[B]=GetPlayerId(p2)
set udg_units27[B]=udg_units25[A]
call ABCT_Start(function Sektumsempra__Sektumsempra_Bleed,B,2.)
if IsUnitAlly(u,p)then
set udg_integers15[pl]=udg_integers15[pl]-10
else
set udg_integers15[pl]=udg_integers15[pl]+10
endif
endif
endif
endif
set u=null
set c=null
set p=null
set p2=null
return false
endfunction
function Sektumsempra__Sektumsempra_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units24[A])
local real x1=GetUnitX(udg_units24[A])
local real y1=GetUnitY(udg_units24[A])
local real x2=x1+Sektumsempra__SEKTUMSEMPRA_MOVE_SPEED*Cos(udg_reals19[A])
local real y2=y1+Sektumsempra__SEKTUMSEMPRA_MOVE_SPEED*Sin(udg_reals19[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=false
if GetUnitState(udg_units24[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals19[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+Sektumsempra__SEKTUMSEMPRA_MOVE_SPEED*Cos(udg_reals19[A])
set y2=y1+Sektumsempra__SEKTUMSEMPRA_MOVE_SPEED*Sin(udg_reals19[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if z2>TERRAIN_COLLIDE_HEIGHT or CheckPathability(x2,y2)==false then
set angle=GuessBounce(udg_reals19[A],x1,y1)
set udg_booleans17[A]=true
set udg_reals19[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units24[A],x2)
call SetUnitY(udg_units24[A],y2)
call SetUnitFlyHeight(udg_units24[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals20[A]>Sektumsempra__SEKTUMSEMPRA_TOTAL_RANGE then
call KillUnit(udg_units24[A])
endif
set udg_reals20[A]=udg_reals20[A]+Sektumsempra__SEKTUMSEMPRA_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__Sektumsempra__SektumsempraData_destroy(A)
return true
endif
return false
endfunction
function Sektumsempra__SektumsempraTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__Sektumsempra__SektumsempraData__allocate()
set M=s__MissileData__allocate()
set udg_units24[A]=CreateUnit(GetOwningPlayer(u),Sektumsempra__SEKTUMSEMPRA_MISSILE_ID,x1,y1,0)
set udg_units25[A]=u
set udg_reals19[A]=angle
set udg_reals20[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00N'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units24[A],1.5,1.5,1.5)
endif
call SetUnitUserData(udg_units24[A],M)
call PauseUnit(udg_units24[A],true)
call SetUnitFlyHeight(udg_units24[A],75.,.0)
call SetUnitInvulnerable(udg_units24[A],true)
call TT_Start(function Sektumsempra__Sektumsempra_Move,A)
call TriggerRegisterUnitInRange(udg_triggers14[A],udg_units24[A],Sektumsempra__SEKTUMSEMPRA_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers14[A],Condition(function Sektumsempra__Sektumsempra_Effect))
call SetTriggerStructC(udg_triggers14[A],A)
call RemoveLocation(target)
set target=null
set u=null
endfunction
function InitSektumsempra takes nothing returns nothing
local integer i=0
set udg_trigger55=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger55,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger55,Condition(function Sektumsempra__SektumsempraTrigger_Condition))
call TriggerAddAction(udg_trigger55,function Sektumsempra__SektumsempraTrigger_Action)
endfunction
function s__Stupefy__StupefyData_onDestroy takes integer this returns nothing
call ClearTriggerStructA(udg_triggers15[this])
call DestroyTrigger(udg_triggers15[this])
endfunction
function s__Stupefy__StupefyData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers47[this]!=-1)then
return
endif
call s__Stupefy__StupefyData_onDestroy(this)
set udg_integers47[this]=udg_integer53
set udg_integer53=this
endfunction
function s__Stupefy__StupefySlideData_onDestroy takes integer this returns nothing
call DestroyEffect(udg_effects02[this])
call PauseUnit(udg_units30[this],false)
endfunction
function s__Stupefy__StupefySlideData_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers48[this]!=-1)then
return
endif
call s__Stupefy__StupefySlideData_onDestroy(this)
set udg_integers48[this]=udg_integer55
set udg_integer55=this
endfunction
function Stupefy__StupefyTrigger_Condition takes nothing returns boolean
return GetSpellAbilityId()==Stupefy__STUPEFY_SPELL_ID or GetSpellAbilityId()=='A00O'
endfunction
function Stupefy__Stupefy_Slide takes nothing returns boolean
local integer S=TT_GetData()
local real x1=GetUnitX(udg_units30[S])
local real y1=GetUnitY(udg_units30[S])
local real x2=x1+6*Cos(udg_reals23[S])
local real y2=y1+6*Sin(udg_reals23[S])
if IsYinMap(y2)and IsXinMap(x2)and CheckPathability(x2,y2)then
call SetUnitX(udg_units30[S],x2)
call SetUnitY(udg_units30[S],y2)
else
call UnitDamageTarget(udg_units31[S],udg_units30[S],2.5,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
endif
set udg_reals24[S]=udg_reals24[S]+6
if udg_reals24[S]<300 then
return false
endif
call s__Stupefy__StupefySlideData_destroy(S)
return true
endfunction
function Stupefy__Stupefy_Effect takes nothing returns boolean
local integer A=GetTriggerStructA(GetTriggeringTrigger())
local integer M=GetUnitUserData(udg_units28[A])
local integer S
local unit u=GetTriggerUnit()
local unit c=null
local real ux=GetUnitX(u)
local real uy=GetUnitY(u)
local real mx=GetUnitX(udg_units28[A])
local real my=GetUnitY(udg_units28[A])
local real damage=0
local player p=GetOwningPlayer(udg_units29[A])
local integer pl=GetPlayerId(p)
if GetUnitState(udg_units28[A],UNIT_STATE_LIFE)>0 and GetUnitFlyHeight(u)<'d'then
if udg_booleans18[A]==false and u==udg_units29[A]then
set udg_booleans18[A]=true
elseif IsUnitSpellProjectile(u)then
if mx>ux then
call ProjectileImpactWithProjectile(udg_units28[A],u)
elseif mx<ux then
else
if my>uy then
call ProjectileImpactWithProjectile(udg_units28[A],u)
elseif my<uy then
endif
endif
else
if GetUnitAbilityLevel(u,ELDER_PROTEGO_BUFF_ID)>0 then
call ProjectileImpactWithProtegoUnit(udg_units28[A],u)
elseif GetUnitAbilityLevel(u,PROTEGO_BUFF_ID)>0 and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units28[A],u)
elseif UnitHasItemOfType(u,'I003')and udg_booleans08[M]==false then
call ProjectileImpactWithProtegoUnit(udg_units28[A],u)
call DestroyEffect(AddSpecialEffectTarget(PROTEGO_HAT_EFFECT,u,"head"))
call RemoveItem(UnitGetItemOfType(u,'I003'))
else
if GetUnitState(u,UNIT_STATE_LIFE)<GetUnitState(u,UNIT_STATE_MAX_LIFE)*.3 then
set damage=damage+200
endif
if GetUnitAbilityLevel(u,'BPSE')>0 then
set damage=damage+200
endif
set c=UseCaster()
call SetUnitX(c,ux)
call SetUnitY(c,uy)
call IssueTargetOrderById(c,852095,u)
call StopUsingCaster(c)
if damage>0 then
call UnitDamageTarget(udg_units29[A],u,damage,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_DIVINE,WEAPON_TYPE_WHOKNOWS)
endif
call DestroyEffect(AddSpecialEffect(Stupefy__STUPEFY_IMPACT_EFFECT,ux,uy))
call KillUnit(udg_units28[A])
set S=s__Stupefy__StupefySlideData__allocate()
set udg_units30[S]=u
set udg_reals23[S]=udg_reals21[A]
set udg_units31[S]=udg_units29[A]
set udg_reals24[S]=0
set udg_effects02[S]=AddSpecialEffectTarget("Abilities\\Spells\\Undead\\Cripple\\CrippleTarget.mdl",u,"chest")
call PauseUnit(udg_units30[S],true)
call SetUnitTimeScale(udg_units30[S],0)
call TT_Start(function Stupefy__Stupefy_Slide,S)
if IsUnitAlly(u,p)then
set udg_integers15[pl]=udg_integers15[pl]-10
else
set udg_integers15[pl]=udg_integers15[pl]+10
endif
endif
endif
endif
set u=null
set c=null
set p=null
return false
endfunction
function Stupefy__Stupefy_Move takes nothing returns boolean
local integer A=TT_GetData()
local integer M=GetUnitUserData(udg_units28[A])
local real x1=GetUnitX(udg_units28[A])
local real y1=GetUnitY(udg_units28[A])
local real x2=x1+Stupefy__STUPEFY_MOVE_SPEED*Cos(udg_reals21[A])
local real y2=y1+Stupefy__STUPEFY_MOVE_SPEED*Sin(udg_reals21[A])
local real dx=x2-x1
local real dy=y2-y1
local real z2=GetXYLocationZ(x2,y2)
local real angle
local boolean b=false
local integer i=0
local boolean impact=false
if GetUnitState(udg_units28[A],UNIT_STATE_LIFE)>0 then
if udg_booleans07[M]==false then
set udg_reals03[M]=dx
set udg_reals04[M]=dy
else
set udg_reals21[A]=Atan2(udg_reals04[M],udg_reals03[M])
set udg_booleans07[M]=false
set x2=x1+Stupefy__STUPEFY_MOVE_SPEED*Cos(udg_reals21[A])
set y2=y1+Stupefy__STUPEFY_MOVE_SPEED*Sin(udg_reals21[A])
set dx=x2-x1
set dy=y2-y1
set z2=GetXYLocationZ(x2,y2)
endif
if z2>TERRAIN_COLLIDE_HEIGHT or CheckPathability(x2,y2)==false then
set angle=GuessBounce(udg_reals21[A],x1,y1)
set udg_booleans18[A]=true
set udg_reals21[A]=angle
set impact=true
endif
if(IsYinMap(y2)and IsYinMap(x2))or impact then
call SetUnitX(udg_units28[A],x2)
call SetUnitY(udg_units28[A],y2)
call SetUnitFlyHeight(udg_units28[A],(z2-(z2*z2/10)),.0)
endif
if udg_reals22[A]>Stupefy__STUPEFY_TOTAL_RANGE then
call KillUnit(udg_units28[A])
endif
set udg_reals22[A]=udg_reals22[A]+Stupefy__STUPEFY_MOVE_SPEED
else
call s__MissileData_destroy(M)
call s__Stupefy__StupefyData_destroy(A)
return true
endif
return false
endfunction
function Stupefy__StupefyTrigger_Action takes nothing returns nothing
local location target=GetSpellTargetLoc()
local unit u=GetTriggerUnit()
local real x1=GetUnitX(u)
local real y1=GetUnitY(u)
local real x2=GetLocationX(target)
local real y2=GetLocationY(target)
local real dx=x2-x1
local real dy=y2-y1
local real angle=Atan2(dy,dx)
local integer M
local integer A
set A=s__Stupefy__StupefyData__allocate()
set M=s__MissileData__allocate()
set udg_units28[A]=CreateUnit(GetOwningPlayer(u),Stupefy__STUPEFY_MISSILE_ID,x1,y1,0)
set udg_units29[A]=u
set udg_reals21[A]=angle
set udg_reals22[A]=0
set udg_reals03[M]=dx
set udg_reals04[M]=dy
if GetSpellAbilityId()=='A00O'then
set udg_booleans08[M]=true
call SetUnitScale(udg_units28[A],1.5,1.5,1.5)
endif
call SetUnitUserData(udg_units28[A],M)
call PauseUnit(udg_units28[A],true)
call SetUnitFlyHeight(udg_units28[A],75.,.0)
call SetUnitInvulnerable(udg_units28[A],true)
call TT_Start(function Stupefy__Stupefy_Move,A)
call TriggerRegisterUnitInRange(udg_triggers15[A],udg_units28[A],Stupefy__STUPEFY_IMPACT_RADIUS,Condition(function True))
call TriggerAddCondition(udg_triggers15[A],Condition(function Stupefy__Stupefy_Effect))
call SetTriggerStructA(udg_triggers15[A],A)
call RemoveLocation(target)
set target=null
set u=null
endfunction
function InitStupefy takes nothing returns nothing
local integer i=0
set udg_trigger53=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger53,udg_units02[i],EVENT_UNIT_SPELL_EFFECT)
set i=i+1
endloop
call TriggerAddCondition(udg_trigger53,Condition(function Stupefy__StupefyTrigger_Condition))
call TriggerAddAction(udg_trigger53,function Stupefy__StupefyTrigger_Action)
endfunction
function WandPick__WandPickTrigger_Action takes nothing returns nothing
local unit u=GetTriggerUnit()
local item w=GetManipulatedItem()
local integer H=GetUnitUserData(u)
call TriggerSleepAction(.0)
if udg_booleans05[H]then
if UnitHasItemOfType(u,'ssil')and GetItemTypeId(w)=='I004'then
call UnitRemoveAbility(u,COMBAT_SPELL_BOOK_ID)
call UnitAddAbility(u,COMBAT_SPELL_BOOK_ID_ELDER)
endif
else
if GetItemTypeId(w)=='I004'then
call UnitAddAbility(u,COMBAT_SPELL_BOOK_ID_ELDER)
call UnitAddAbility(u,SPELL_BOOK_ID)
set udg_booleans05[H]=true
elseif GetItemTypeId(w)=='ssil'then
call UnitAddAbility(u,COMBAT_SPELL_BOOK_ID)
call UnitAddAbility(u,SPELL_BOOK_ID)
set udg_booleans05[H]=true
endif
endif
set u=null
set w=null
endfunction
function WandPick__WandDropTrigger_Action takes nothing returns nothing
local unit u=GetTriggerUnit()
local integer H=GetUnitUserData(u)
call TriggerSleepAction(.0)
if UnitHasItemOfType(u,'I004')==false then
if udg_booleans05[H]then
call UnitRemoveAbility(u,COMBAT_SPELL_BOOK_ID_ELDER)
call UnitAddAbility(u,COMBAT_SPELL_BOOK_ID)
endif
endif
if UnitHasItemOfType(u,'ssil')==false and UnitHasItemOfType(u,'I004')==false then
if udg_booleans05[H]then
call UnitRemoveAbility(u,SPELL_BOOK_ID)
call UnitRemoveAbility(u,COMBAT_SPELL_BOOK_ID)
set udg_booleans05[H]=false
endif
endif
set u=null
endfunction
function WandPick__WandPickInit takes nothing returns nothing
local integer i=0
set udg_trigger44=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger44,udg_units02[i],EVENT_UNIT_PICKUP_ITEM)
set i=i+1
endloop
call TriggerAddAction(udg_trigger44,function WandPick__WandPickTrigger_Action)
endfunction
function WandPick__WandDropInit takes nothing returns nothing
local integer i=0
set udg_trigger45=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterUnitEvent(udg_trigger45,udg_units02[i],EVENT_UNIT_DROP_ITEM)
set i=i+1
endloop
call TriggerAddAction(udg_trigger45,function WandPick__WandDropTrigger_Action)
endfunction
function InitGlobals2 takes nothing returns nothing
local integer i=0
set udg_multiboard01=CreateMultiboard()
set i=0
loop
exitwhen(i>12)
set udg_integers01[i]=0
set udg_integers02[i]=0
set i=i+1
endloop
set i=0
loop
exitwhen(i>2)
set udg_integers03[i]=0
set i=i+1
endloop
endfunction
function CreateUnitsForPlayer0 takes nothing returns nothing
local player p=Player(0)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit03=CreateUnit(p,'N001',-4737.,524.1,49.517)
call SetUnitColor(udg_unit03,ConvertPlayerColor(0))
endfunction
function CreateUnitsForPlayer1 takes nothing returns nothing
local player p=Player(1)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit04=CreateUnit(p,'N001',-4379.9,1852.1,83.938)
call SetUnitColor(udg_unit04,ConvertPlayerColor(0))
endfunction
function CreateUnitsForPlayer2 takes nothing returns nothing
local player p=Player(2)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit05=CreateUnit(p,'N001',-4625.1,1593.4,295.486)
call SetUnitColor(udg_unit05,ConvertPlayerColor(0))
endfunction
function CreateUnitsForPlayer3 takes nothing returns nothing
local player p=Player(3)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit06=CreateUnit(p,'N001',-4578.9,1966.9,14.755)
call SetUnitColor(udg_unit06,ConvertPlayerColor(0))
endfunction
function CreateUnitsForPlayer4 takes nothing returns nothing
local player p=Player(4)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit07=CreateUnit(p,'N001',-4205.3,1435.8,5.68)
call SetUnitColor(udg_unit07,ConvertPlayerColor(0))
endfunction
function CreateUnitsForPlayer5 takes nothing returns nothing
local player p=Player(5)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit08=CreateUnit(p,'N001',-4779.7,1194.6,256.044)
call SetUnitColor(udg_unit08,ConvertPlayerColor(0))
endfunction
function CreateUnitsForPlayer6 takes nothing returns nothing
local player p=Player(6)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit09=CreateUnit(p,'N000',4044.2,-7732.9,337.137)
call SetUnitColor(udg_unit09,ConvertPlayerColor(10))
endfunction
function CreateUnitsForPlayer7 takes nothing returns nothing
local player p=Player(7)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit10=CreateUnit(p,'N000',3432.2,-7618.3,53.34)
call SetUnitColor(udg_unit10,ConvertPlayerColor(10))
endfunction
function CreateUnitsForPlayer8 takes nothing returns nothing
local player p=Player(8)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit11=CreateUnit(p,'N000',3742.9,-7611.2,253.4)
call SetUnitColor(udg_unit11,ConvertPlayerColor(10))
endfunction
function CreateUnitsForPlayer9 takes nothing returns nothing
local player p=Player(9)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit12=CreateUnit(p,'N000',3471.3,-7957.5,294.89)
call SetUnitColor(udg_unit12,ConvertPlayerColor(10))
endfunction
function CreateUnitsForPlayer10 takes nothing returns nothing
local player p=Player(10)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit01=CreateUnit(p,'N000',4026.,-7984.8,276.23)
call SetUnitColor(udg_unit01,ConvertPlayerColor(10))
endfunction
function CreateUnitsForPlayer11 takes nothing returns nothing
local player p=Player(11)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit02=CreateUnit(p,'N000',3768.6,-8246.1,35.87)
call SetUnitColor(udg_unit02,ConvertPlayerColor(10))
endfunction
function CreateNeutralPassiveBuildings2 takes nothing returns nothing
local player p=Player(15)
local unit u
local integer unitID
local trigger t
local real life
set u=CreateUnit(p,'n006',-3456.,-1792.,270.)
call SetUnitColor(u,ConvertPlayerColor(9))
set u=CreateUnit(p,'n007',7104.,-1280.,270.)
call SetUnitColor(u,ConvertPlayerColor(10))
set u=CreateUnit(p,'n008',832.,4672.,270.)
call SetUnitColor(u,ConvertPlayerColor(3))
endfunction
function CreateNeutralPassive2 takes nothing returns nothing
local player p=Player(15)
local unit u
local integer unitID
local trigger t
local real life
set udg_unit13=CreateUnit(p,'n004',-3303.3,-3854.8,245.633)
set u=CreateUnit(p,'nrat',-2986.8,-2382.5,140.157)
set u=CreateUnit(p,'nrat',-3358.8,-1909.1,344.014)
set u=CreateUnit(p,'nrat',-2601.2,-2457.8,95.09)
set u=CreateUnit(p,'nrat',-3306.,-2293.4,274.337)
set u=CreateUnit(p,'nrat',-2936.3,-4269.8,28.159)
set u=CreateUnit(p,'nrat',-2957.1,-1387.9,225.128)
set u=CreateUnit(p,'nrat',-3225.7,-1342.1,228.248)
set u=CreateUnit(p,'nrat',-2485.2,-1782.2,149.99)
set u=CreateUnit(p,'nrat',-2598.1,-3881.4,157.648)
set u=CreateUnit(p,'n002',-416.7,-2957.9,345.388)
set u=CreateUnit(p,'n002',-489.5,-2255.2,341.905)
set u=CreateUnit(p,'n002',-223.,-2014.6,12.756)
set u=CreateUnit(p,'n002',-788.5,-2488.8,281.797)
set u=CreateUnit(p,'n002',-224.,-2715.1,196.947)
set u=CreateUnit(p,'n002',-160.,-3155.1,252.869)
set u=CreateUnit(p,'n002',363.8,-2541.6,126.874)
set u=CreateUnit(p,'n002',197.3,-3049.2,185.883)
set u=CreateUnit(p,'n002',-37.5,-2127.7,100.034)
set u=CreateUnit(p,'n002',-1318.9,-2656.2,.11)
set u=CreateUnit(p,'n002',-964.3,-3968.7,46.298)
set u=CreateUnit(p,'n002',323.6,-4046.3,15.755)
set u=CreateUnit(p,'n002',3.2,-4668.7,227.995)
set u=CreateUnit(p,'n002',316.6,-1361.1,187.652)
set u=CreateUnit(p,'n002',-775.7,-1293.7,165.547)
set u=CreateUnit(p,'n002',794.7,-1792.4,308.56)
set u=CreateUnit(p,'ndwm',8491.6,-1607.3,320.36)
set u=CreateUnit(p,'ndwm',8612.3,-1627.7,15.557)
set u=CreateUnit(p,'ndwm',8680.6,-1682.7,328.172)
set u=CreateUnit(p,'ndwm',8145.4,-2625.,91.98)
set u=CreateUnit(p,'ndwm',8112.2,-2576.9,136.004)
set u=CreateUnit(p,'ndwm',8335.,-3105.8,108.878)
set u=CreateUnit(p,'ndwm',8425.2,-3114.4,213.789)
set u=CreateUnit(p,'ndwm',7005.,-2304.9,44.804)
set u=CreateUnit(p,'ndwm',6968.,-2376.4,254.781)
set u=CreateUnit(p,'ndwm',7534.7,-930.5,171.59)
set u=CreateUnit(p,'nrat',-4753.9,1230.3,67.568)
set u=CreateUnit(p,'nrat',-8038.,-6710.,242.684)
set u=CreateUnit(p,'nrat',-7887.8,-3911.1,129.126)
set u=CreateUnit(p,'nrat',-8044.8,-4011.4,147.848)
set u=CreateUnit(p,'nrat',-8099.6,-4578.4,327.194)
set u=CreateUnit(p,'nrat',-7937.6,-5629.6,70.732)
set u=CreateUnit(p,'nrat',-8049.2,-5438.4,158.702)
set u=CreateUnit(p,'nrat',-8047.9,-5322.3,32.762)
set u=CreateUnit(p,'nrat',-7901.2,-5047.5,124.347)
set u=CreateUnit(p,'nrat',-7871.6,-4887.9,233.719)
set u=CreateUnit(p,'nrat',-7914.7,-6106.7,137.476)
set u=CreateUnit(p,'nrat',-8241.6,-6381.5,263.735)
set u=CreateUnit(p,'nrat',-8020.9,-6666.1,34.949)
set u=CreateUnit(p,'nrat',-8071.6,-7010.6,236.103)
set u=CreateUnit(p,'nrat',-7987.7,-7251.1,302.43)
set u=CreateUnit(p,'nrat',-7832.,-7638.2,205.242)
set u=CreateUnit(p,'nrat',-7668.7,-7396.7,230.226)
set u=CreateUnit(p,'nrat',-7966.7,-7162.7,336.192)
set u=CreateUnit(p,'nrat',-7225.4,-7496.,8.581)
set u=CreateUnit(p,'nrat',-6862.1,-7496.3,265.394)
set u=CreateUnit(p,'nrat',-6729.4,-7503.5,276.842)
set u=CreateUnit(p,'nrat',-6683.3,-7481.9,223.205)
set u=CreateUnit(p,'nrat',-6243.3,-7550.2,144.859)
set u=CreateUnit(p,'nrat',-6610.6,-7358.5,67.447)
set u=CreateUnit(p,'nrat',-6599.8,-7459.7,115.909)
set u=CreateUnit(p,'nrat',-6449.8,-7502.6,62.459)
set u=CreateUnit(p,'nrat',-6251.3,-7527.4,262.944)
set u=CreateUnit(p,'nrat',-5409.3,-7624.8,198.54)
set u=CreateUnit(p,'nrat',-5470.1,-7614.,259.45)
set u=CreateUnit(p,'nrat',-5487.6,-7624.,346.585)
set u=CreateUnit(p,'nrat',-5173.5,-7830.4,323.041)
set u=CreateUnit(p,'nrat',-3827.9,-7772.4,120.095)
set u=CreateUnit(p,'nrat',-3956.6,-7811.,333.006)
set u=CreateUnit(p,'nrat',-4293.8,-7878.8,108.087)
set u=CreateUnit(p,'nrat',-4556.,-7888.4,277.161)
set u=CreateUnit(p,'nrat',-4759.1,-7903.6,358.)
set u=CreateUnit(p,'nrat',-3765.5,-7885.6,189.168)
set u=CreateUnit(p,'nrat',-3802.1,-7814.5,208.164)
set u=CreateUnit(p,'nrat',-3861.8,-7820.8,112.009)
set u=CreateUnit(p,'nrat',-3919.3,-7784.9,275.524)
set u=CreateUnit(p,'nrat',-3937.1,-7815.5,154.385)
set u=CreateUnit(p,'nrat',-3833.,-7867.4,152.165)
set u=CreateUnit(p,'nrat',-3821.5,-7877.9,104.593)
set u=CreateUnit(p,'nrat',-4425.1,-7746.8,98.32)
set u=CreateUnit(p,'nrat',-4298.7,-7750.4,182.214)
set u=CreateUnit(p,'nrat',-4396.3,-8004.7,333.907)
set u=CreateUnit(p,'nrat',-4323.8,-8015.5,169.964)
set u=CreateUnit(p,'nrat',-3482.7,-8193.3,203.616)
set u=CreateUnit(p,'nrat',-3574.5,-8308.2,155.406)
set u=CreateUnit(p,'nrat',-3582.3,-8354.1,109.032)
set u=CreateUnit(p,'nrat',-3707.1,-8212.6,313.57)
set u=CreateUnit(p,'nrat',-5391.5,-8054.5,237.334)
set u=CreateUnit(p,'nrat',-5941.8,-8072.2,333.951)
set u=CreateUnit(p,'nrat',-5986.3,-8096.2,283.005)
set u=CreateUnit(p,'nrat',-6693.4,-7006.6,81.664)
set u=CreateUnit(p,'nrat',-6792.7,-7032.1,140.673)
set u=CreateUnit(p,'nrat',-6996.3,-7557.2,334.841)
set udg_unit14=CreateUnit(p,'n009',-2506.3,-5016.2,107.087)
endfunction
function CreatePlayerUnits2 takes nothing returns nothing
local player p
local unit u
local integer unitID
local trigger t
local real life
set p=Player(0)
set udg_unit03=CreateUnit(p,'N001',-4737.,524.1,49.517)
call SetUnitColor(udg_unit03,ConvertPlayerColor(0))
set p=Player(1)
set udg_unit04=CreateUnit(p,'N001',-4379.9,1852.1,83.938)
call SetUnitColor(udg_unit04,ConvertPlayerColor(0))
set p=Player(2)
set udg_unit05=CreateUnit(p,'N001',-4625.1,1593.4,295.486)
call SetUnitColor(udg_unit05,ConvertPlayerColor(0))
set p=Player(3)
set udg_unit06=CreateUnit(p,'N001',-4578.9,1966.9,14.755)
call SetUnitColor(udg_unit06,ConvertPlayerColor(0))
set p=Player(4)
set udg_unit07=CreateUnit(p,'N001',-4205.3,1435.8,5.68)
call SetUnitColor(udg_unit07,ConvertPlayerColor(0))
set p=Player(5)
set udg_unit08=CreateUnit(p,'N001',-4779.7,1194.6,256.044)
call SetUnitColor(udg_unit08,ConvertPlayerColor(0))
set p=Player(6)
set udg_unit09=CreateUnit(p,'N000',4044.2,-7732.9,337.137)
call SetUnitColor(udg_unit09,ConvertPlayerColor(10))
set p=Player(7)
set udg_unit10=CreateUnit(p,'N000',3432.2,-7618.3,53.34)
call SetUnitColor(udg_unit10,ConvertPlayerColor(10))
set p=Player(8)
set udg_unit11=CreateUnit(p,'N000',3742.9,-7611.2,253.4)
call SetUnitColor(udg_unit11,ConvertPlayerColor(10))
set p=Player(9)
set udg_unit12=CreateUnit(p,'N000',3471.3,-7957.5,294.89)
call SetUnitColor(udg_unit12,ConvertPlayerColor(10))
set p=Player(10)
set udg_unit01=CreateUnit(p,'N000',4026.,-7984.8,276.23)
call SetUnitColor(udg_unit01,ConvertPlayerColor(10))
set p=Player(11)
set udg_unit02=CreateUnit(p,'N000',3768.6,-8246.1,35.87)
call SetUnitColor(udg_unit02,ConvertPlayerColor(10))
endfunction
function CreateAllUnits2 takes nothing returns nothing
call CreateNeutralPassiveBuildings2()
call CreateNeutralPassive2()
call CreatePlayerUnits2()
endfunction
function CreateRegions2 takes nothing returns nothing
local weathereffect we
set udg_rect02=Rect(1408.,-9760.,5504.,-6912.)
set we=AddWeatherEffect(udg_rect02,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect03=Rect(928.,2752.,3456.,4768.)
set we=AddWeatherEffect(udg_rect03,'SNls')
call EnableWeatherEffect(we,true)
set udg_rect04=Rect(-3616.,-5152.,-2400.,-800.)
set we=AddWeatherEffect(udg_rect04,'FDrh')
call EnableWeatherEffect(we,true)
set udg_rect05=Rect(-2048.,2656.,32.,4768.)
set we=AddWeatherEffect(udg_rect05,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect06=Rect(-1376.,4928.,-1024.,5184.)
set udg_rect07=Rect(-2656.,4768.,-1664.,6272.)
set udg_rect08=Rect(-1664.,5376.,-512.,6240.)
set udg_rect09=Rect(5024.,-5792.,6208.,-1792.)
set we=AddWeatherEffect(udg_rect09,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect10=Rect(6336.,-5952.,8640.,-3904.)
set we=AddWeatherEffect(udg_rect10,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect11=Rect(6912.,-3168.,8672.,-640.)
set we=AddWeatherEffect(udg_rect11,'FDrl')
call EnableWeatherEffect(we,true)
set udg_rect12=Rect(-1632.,-4768.,928.,-768.)
set we=AddWeatherEffect(udg_rect12,'LRma')
call EnableWeatherEffect(we,true)
set udg_rect13=Rect(-8288.,-7744.,-7616.,-2560.)
set we=AddWeatherEffect(udg_rect13,'FDgh')
call EnableWeatherEffect(we,true)
set udg_rect14=Rect(-7648.,-8512.,-3072.,-7104.)
set we=AddWeatherEffect(udg_rect14,'FDgh')
call EnableWeatherEffect(we,true)
set udg_rect15=Rect(2912.,4704.,3104.,4896.)
set udg_rect16=Rect(2912.,4576.,3104.,4704.)
set udg_rect17=Rect(-1888.,-4512.,-1696.,-4320.)
set udg_rect18=Rect(-1696.,-4480.,-1568.,-4352.)
set udg_rect19=Rect(-2624.,-1056.,-2464.,-960.)
set udg_rect20=Rect(-2656.,-1184.,-2528.,-1088.)
set udg_rect21=Rect(-8160.,-3168.,-7808.,-2976.)
set udg_rect22=Rect(-8064.,-3296.,-7904.,-3168.)
set udg_rect23=Rect(-3552.,-8416.,-3424.,-7712.)
set udg_rect24=Rect(-3680.,-8000.,-3552.,-7872.)
set udg_rect25=Rect(8320.,-864.,8672.,-704.)
set udg_rect26=Rect(8320.,-1056.,8448.,-896.)
set udg_rect27=Rect(2976.,3136.,3072.,3232.)
set udg_rect28=Rect(-6688.,-6912.,-6400.,-6816.)
endfunction
function Trig_StartteriJaMultiboard_Actions takes nothing returns nothing
call CreateQuestBJ(0,"TRIGSTR_303","TRIGSTR_304","ReplaceableTextures\\CommandButtons\\BTNAmbush.blp")
call CreateQuestBJ(2,"Map fixer","I fixed the bugs post-patch to make this lovely map playable again, kiss players! <3 |n -Vortigon","ReplaceableTextures\\CommandButtons\\BTNTimberWolf.blp")
call DisplayTextToForce(bj_FORCE_PLAYER[0],"TRIGSTR_302")
call FogMaskEnableOff()
call SetTimeOfDay(.0)
call UseTimeOfDayBJ(false)
call FogMaskEnableOn()
call CreateMultiboardBJ(4,16,"TRIGSTR_262")
set udg_multiboard01=bj_lastCreatedMultiboard
call MultiboardSetItemStyleBJ(udg_multiboard01,1,0,true,false)
call MultiboardSetItemStyleBJ(udg_multiboard01,2,0,true,false)
call MultiboardSetItemStyleBJ(udg_multiboard01,3,0,true,false)
call MultiboardSetItemStyleBJ(udg_multiboard01,4,0,true,false)
call MultiboardSetItemWidthBJ(udg_multiboard01,1,0,10.5)
call MultiboardSetItemWidthBJ(udg_multiboard01,2,0,6.)
call MultiboardSetItemWidthBJ(udg_multiboard01,3,0,4.)
call MultiboardSetItemWidthBJ(udg_multiboard01,4,0,4.)
call MultiboardSetItemValueBJ(udg_multiboard01,3,1,"TRIGSTR_263")
call MultiboardSetItemValueBJ(udg_multiboard01,4,1,"TRIGSTR_264")
call MultiboardSetItemValueBJ(udg_multiboard01,1,2,"TRIGSTR_265")
call MultiboardSetItemValueBJ(udg_multiboard01,2,0,"TRIGSTR_266")
call MultiboardSetItemValueBJ(udg_multiboard01,1,3,GetPlayerName(Player(0)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,4,GetPlayerName(Player(1)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,5,GetPlayerName(Player(2)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,6,GetPlayerName(Player(3)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,7,GetPlayerName(Player(4)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,8,GetPlayerName(Player(5)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,10,"TRIGSTR_267")
call MultiboardSetItemValueBJ(udg_multiboard01,1,11,GetPlayerName(Player(6)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,12,GetPlayerName(Player(7)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,13,GetPlayerName(Player(8)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,14,GetPlayerName(Player(9)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,15,GetPlayerName(Player(10)))
call MultiboardSetItemValueBJ(udg_multiboard01,1,16,GetPlayerName(Player(11)))
call MultiboardSetItemColorBJ(udg_multiboard01,0,1,'d',80,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,2,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,3,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,4,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,5,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,6,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,7,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,8,80.,20.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,10,20.,80.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,11,20.,80.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,12,20.,80.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,13,20.,80.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,14,20.,80.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,15,20.,80.,20,0)
call MultiboardSetItemColorBJ(udg_multiboard01,0,16,20.,80.,20,0)
call MultiboardSetItemValueBJ(udg_multiboard01,3,3,I2S(udg_integers01[1]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,4,I2S(udg_integers01[2]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,5,I2S(udg_integers01[3]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,6,I2S(udg_integers01[4]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,7,I2S(udg_integers01[5]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,8,I2S(udg_integers01[6]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,11,I2S(udg_integers01[7]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,12,I2S(udg_integers01[8]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,13,I2S(udg_integers01[9]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,14,I2S(udg_integers01[10]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,15,I2S(udg_integers01[11]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,16,I2S(udg_integers01[12]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,3,I2S(udg_integers02[1]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,4,I2S(udg_integers02[2]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,5,I2S(udg_integers02[3]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,6,I2S(udg_integers02[4]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,7,I2S(udg_integers02[5]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,8,I2S(udg_integers02[6]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,11,I2S(udg_integers02[7]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,12,I2S(udg_integers02[8]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,13,I2S(udg_integers02[9]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,14,I2S(udg_integers02[10]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,15,I2S(udg_integers02[11]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,16,I2S(udg_integers02[12]))
call MultiboardSetItemValueBJ(udg_multiboard01,2,1,"TRIGSTR_268")
call MultiboardSetItemValueBJ(udg_multiboard01,2,9,"TRIGSTR_269")
call MultiboardSetItemValueBJ(udg_multiboard01,2,2,I2S(udg_integer02))
call MultiboardSetItemValueBJ(udg_multiboard01,2,10,I2S(udg_integer01))
call TriggerSleepAction(.2)
call ConditionalTriggerExecute(udg_trigger02)
endfunction
function Trig_AlotusMultiSetNRemover_Func001C takes nothing returns boolean
return(GetPlayerSlotState(Player(0))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func002C takes nothing returns boolean
return(GetPlayerSlotState(Player(1))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func003C takes nothing returns boolean
return(GetPlayerSlotState(Player(2))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func004C takes nothing returns boolean
return(GetPlayerSlotState(Player(3))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func005C takes nothing returns boolean
return(GetPlayerSlotState(Player(4))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func006C takes nothing returns boolean
return(GetPlayerSlotState(Player(5))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func007C takes nothing returns boolean
return(GetPlayerSlotState(Player(6))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func008C takes nothing returns boolean
return(GetPlayerSlotState(Player(7))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func009C takes nothing returns boolean
return(GetPlayerSlotState(Player(8))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func010C takes nothing returns boolean
return(GetPlayerSlotState(Player(9))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func011C takes nothing returns boolean
return(GetPlayerSlotState(Player(10))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Func012C takes nothing returns boolean
return(GetPlayerSlotState(Player(11))==PLAYER_SLOT_STATE_EMPTY)
endfunction
function Trig_AlotusMultiSetNRemover_Actions takes nothing returns nothing
if(Trig_AlotusMultiSetNRemover_Func001C())then
call RemoveUnit(udg_unit03)
call MultiboardSetItemValueBJ(udg_multiboard01,0,3,"TRIGSTR_250")
endif
if(Trig_AlotusMultiSetNRemover_Func002C())then
call RemoveUnit(udg_unit04)
call MultiboardSetItemValueBJ(udg_multiboard01,0,4,"TRIGSTR_251")
endif
if(Trig_AlotusMultiSetNRemover_Func003C())then
call RemoveUnit(udg_unit05)
call MultiboardSetItemValueBJ(udg_multiboard01,0,5,"TRIGSTR_252")
endif
if(Trig_AlotusMultiSetNRemover_Func004C())then
call RemoveUnit(udg_unit06)
call MultiboardSetItemValueBJ(udg_multiboard01,0,6,"TRIGSTR_253")
endif
if(Trig_AlotusMultiSetNRemover_Func005C())then
call RemoveUnit(udg_unit07)
call MultiboardSetItemValueBJ(udg_multiboard01,0,7,"TRIGSTR_254")
endif
if(Trig_AlotusMultiSetNRemover_Func006C())then
call RemoveUnit(udg_unit08)
call MultiboardSetItemValueBJ(udg_multiboard01,0,8,"TRIGSTR_255")
endif
if(Trig_AlotusMultiSetNRemover_Func007C())then
call RemoveUnit(udg_unit09)
call MultiboardSetItemValueBJ(udg_multiboard01,0,11,"TRIGSTR_256")
endif
if(Trig_AlotusMultiSetNRemover_Func008C())then
call RemoveUnit(udg_unit10)
call MultiboardSetItemValueBJ(udg_multiboard01,0,12,"TRIGSTR_257")
endif
if(Trig_AlotusMultiSetNRemover_Func009C())then
call RemoveUnit(udg_unit11)
call MultiboardSetItemValueBJ(udg_multiboard01,0,13,"TRIGSTR_258")
endif
if(Trig_AlotusMultiSetNRemover_Func010C())then
call RemoveUnit(udg_unit12)
call MultiboardSetItemValueBJ(udg_multiboard01,0,14,"TRIGSTR_259")
endif
if(Trig_AlotusMultiSetNRemover_Func011C())then
call RemoveUnit(udg_unit01)
call MultiboardSetItemValueBJ(udg_multiboard01,0,15,"TRIGSTR_260")
endif
if(Trig_AlotusMultiSetNRemover_Func012C())then
call RemoveUnit(udg_unit02)
call MultiboardSetItemValueBJ(udg_multiboard01,0,16,"TRIGSTR_261")
endif
endfunction
function GameLenghtSet takes nothing returns nothing
local string s=GetEventPlayerChatString()
local integer i=S2I(s)
if i>0 then
set udg_integer03=i
call DestroyTrigger(udg_trigger49)
call Msg2All("Number of Rounds needed for victory is now "+I2S(i),15)
set udg_item01=CreateItem('ciri',0,0)
call SetItemVisible(udg_item01,false)
set udg_integers17[1]='h006'
set udg_integers17[2]='h002'
set udg_integers17[3]='h001'
set udg_integers17[4]='h004'
set udg_integers17[5]='h005'
set udg_integers17[6]='h000'
set udg_integers17[7]='h003'
call InitMap()
call InitCasters()
call TimerStart(udg_timer04,.035,true,function OnMoveSet)
call InitHeroDeath()
call TriggerSleepAction(.1)
call DestroyEffect(AddSpecialEffect("Objects\\Spawnmodels\\Undead\\UCancelDeath\\UCancelDeath.mdl",STORAGE_AREA_X,STORAGE_AREA_Y))
call DestroyEffect(AddSpecialEffect("\\NetherInferno.mdl",STORAGE_AREA_X,STORAGE_AREA_Y))
call TriggerSleepAction(.1)
call WandPick__WandPickInit()
call WandPick__WandDropInit()
call InitAntiStupefy()
call InitAntiHaava()
call TriggerSleepAction(.1)
call InitAvadaKedavra()
call InitStupefy()
call InitSektumsempra()
call InitImpedimenta()
call InitExpelliarmus()
call InitImperio()
call InitCrucio()
call TriggerSleepAction(.1)
call TimerStart(udg_timer05,1.,true,function ShowSet)
set udg_trigger46=CreateTrigger()
call TriggerRegisterTimerEvent(udg_trigger46,3.,true)
call TriggerAddAction(udg_trigger46,function CheckSituation)
set udg_integer18=1
call Msg2All("Round "+I2S(udg_integer18),15.)
call PauseAllHeroes(false)
call Msg2All("Let The Game Begin ! ",30)
endif
endfunction
function Trig_Init_Actions takes nothing returns nothing
call CinematicFadeBJ(1,.0,"ReplaceableTextures\\CameraMasks\\Black_mask.blp",100.,100.,100.,.0)
call CinematicModeBJ(true,bj_FORCE_ALL_PLAYERS)
call SetHeroReady(udg_unit03)
call SetHeroReady(udg_unit04)
call SetHeroReady(udg_unit05)
call SetHeroReady(udg_unit06)
call SetHeroReady(udg_unit07)
call SetHeroReady(udg_unit08)
call SetHeroReady(udg_unit09)
call SetHeroReady(udg_unit10)
call SetHeroReady(udg_unit11)
call SetHeroReady(udg_unit12)
call SetHeroReady(udg_unit01)
call SetHeroReady(udg_unit02)
call PauseAllHeroes(true)
call TriggerSleepAction(.1)
call ConditionalTriggerExecute(udg_trigger01)
call SetUnitTimeScale(udg_unit13,-1.9)
call SetUnitTimeScale(udg_unit14,3.)
set udg_trigger49=CreateTrigger()
call TriggerRegisterPlayerChatEvent(udg_trigger49,Player(0),"",false)
call TriggerAddAction(udg_trigger49,function GameLenghtSet)
call CinematicFadeBJ(0,5.,"ReplaceableTextures\\CameraMasks\\Black_mask.blp",100.,100.,100.,.0)
call TriggerSleepAction(5.)
call InitCrystalBall()
call CinematicModeBJ(false,bj_FORCE_ALL_PLAYERS)
endfunction
function Trig_LeaveriILMOSTUS_Actions takes nothing returns nothing
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,(GetPlayerName(GetTriggerPlayer())+" has left the game."))
endfunction
function Trig_RoundiMultiBoardPaivitys_Actions takes nothing returns nothing
call MultiboardSetItemValueBJ(udg_multiboard01,2,0,"TRIGSTR_279")
call MultiboardSetItemValueBJ(udg_multiboard01,2,1,"TRIGSTR_282")
call MultiboardSetItemValueBJ(udg_multiboard01,2,9,"TRIGSTR_283")
call MultiboardSetItemValueBJ(udg_multiboard01,2,2,I2S(udg_integer02))
call MultiboardSetItemValueBJ(udg_multiboard01,2,10,I2S(udg_integer01))
endfunction
function Trig_MultiBoardPisteLaittaja_Conditions takes nothing returns boolean
return(IsUnitType(GetDyingUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_MultiBoardPisteLaittaja_Func001Func001Func001Func001C takes nothing returns boolean
return((1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))>=7)and((1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))>=7)and(GetUnitTypeId(GetDyingUnit())!='N001')
endfunction
function Trig_MultiBoardPisteLaittaja_Func001Func001Func001C takes nothing returns boolean
return((1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))<=6)and((1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))<=6)and(GetUnitTypeId(GetDyingUnit())!='N000')
endfunction
function Trig_MultiBoardPisteLaittaja_Func001Func001C takes nothing returns boolean
return((1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))>=7)and((1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))<=6)
endfunction
function Trig_MultiBoardPisteLaittaja_Func001C takes nothing returns boolean
return((1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))<=6)and((1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))>=7)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit02)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit01)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit12)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit11)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit10)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit09)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit08)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit07)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit06)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit05)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026Func001C takes nothing returns boolean
return(GetDyingUnit()==udg_unit04)
endfunction
function Trig_MultiBoardPisteLaittaja_Func026C takes nothing returns boolean
return(GetDyingUnit()==udg_unit03)
endfunction
function Trig_MultiBoardPisteLaittaja_Actions takes nothing returns nothing
if(Trig_MultiBoardPisteLaittaja_Func001C())then
set udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+1)
set udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]=(udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]+1)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,4.5,(("|c00FF0000"+GetPlayerName(GetOwningPlayer(GetKillingUnit())))+((" has killed "+GetPlayerName(GetOwningPlayer(GetDyingUnit())))+"|r")))
else
if(Trig_MultiBoardPisteLaittaja_Func001Func001C())then
set udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+1)
set udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]=(udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]+1)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,4.5,(("|c0000FF00"+GetPlayerName(GetOwningPlayer(GetKillingUnit())))+((" has killed "+GetPlayerName(GetOwningPlayer(GetDyingUnit())))+"|r")))
else
if(Trig_MultiBoardPisteLaittaja_Func001Func001Func001C())then
set udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]-1)
set udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]=(udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]+1)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,5.5,(("|c00FF0000"+GetPlayerName(GetOwningPlayer(GetKillingUnit())))+((" has TEAMKILLED "+GetPlayerName(GetOwningPlayer(GetDyingUnit())))+"|r")))
else
if(Trig_MultiBoardPisteLaittaja_Func001Func001Func001Func001C())then
set udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(udg_integers01[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]-1)
set udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]=(udg_integers02[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]+1)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,5.5,(("|c0000FF00"+GetPlayerName(GetOwningPlayer(GetKillingUnit())))+((" has TEAMKILLED "+GetPlayerName(GetOwningPlayer(GetDyingUnit())))+"|r")))
endif
endif
endif
endif
call MultiboardSetItemValueBJ(udg_multiboard01,3,3,I2S(udg_integers01[1]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,4,I2S(udg_integers01[2]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,5,I2S(udg_integers01[3]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,6,I2S(udg_integers01[4]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,7,I2S(udg_integers01[5]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,8,I2S(udg_integers01[6]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,11,I2S(udg_integers01[7]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,12,I2S(udg_integers01[8]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,13,I2S(udg_integers01[9]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,14,I2S(udg_integers01[10]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,15,I2S(udg_integers01[11]))
call MultiboardSetItemValueBJ(udg_multiboard01,3,16,I2S(udg_integers01[12]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,3,I2S(udg_integers02[1]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,4,I2S(udg_integers02[2]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,5,I2S(udg_integers02[3]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,6,I2S(udg_integers02[4]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,7,I2S(udg_integers02[5]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,8,I2S(udg_integers02[6]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,11,I2S(udg_integers02[7]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,12,I2S(udg_integers02[8]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,13,I2S(udg_integers02[9]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,14,I2S(udg_integers02[10]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,15,I2S(udg_integers02[11]))
call MultiboardSetItemValueBJ(udg_multiboard01,4,16,I2S(udg_integers02[12]))
if(Trig_MultiBoardPisteLaittaja_Func026C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,3,"TRIGSTR_071")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,4,"TRIGSTR_072")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,5,"TRIGSTR_073")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,6,"TRIGSTR_074")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,7,"TRIGSTR_075")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,8,"TRIGSTR_076")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,11,"TRIGSTR_082")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,12,"TRIGSTR_081")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,13,"TRIGSTR_080")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,14,"TRIGSTR_079")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(udg_multiboard01,2,15,"TRIGSTR_078")
else
if(Trig_MultiBoardPisteLaittaja_Func026Func001Func001Func001Func001Func001Func001Func001Func001Func001Func001Func001C())then
call MultiboardSetItemValueBJ(bj_lastCreatedMultiboard,2,16,"TRIGSTR_077")
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endfunction
function Trig_Huudot_Conditions takes nothing returns boolean
return(IsUnitType(GetSpellAbilityUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_Huudot_Func001Func001Func001Func001Func001Func001Func002C takes nothing returns boolean
return(GetSpellAbilityId()=='A009')
endfunction
function Trig_Huudot_Func001Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetSpellAbilityId()=='A001')
endfunction
function Trig_Huudot_Func001Func001Func001Func001Func001C takes nothing returns boolean
return(GetSpellAbilityId()=='A004')
endfunction
function Trig_Huudot_Func001Func001Func001Func001C takes nothing returns boolean
return(GetSpellAbilityId()=='A00A')
endfunction
function Trig_Huudot_Func001Func001Func001C takes nothing returns boolean
return(GetSpellAbilityId()=='A005')
endfunction
function Trig_Huudot_Func001Func001C takes nothing returns boolean
return(GetSpellAbilityId()=='A008')
endfunction
function Trig_Huudot_Func001C takes nothing returns boolean
return(GetSpellAbilityId()=='A000')
endfunction
function Trig_Huudot_Actions takes nothing returns nothing
if(Trig_Huudot_Func001C())then
call CreateTextTagUnitBJ("TRIGSTR_135",GetSpellAbilityUnit(),0,9.,30.,75.,20.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
else
if(Trig_Huudot_Func001Func001C())then
call CreateTextTagUnitBJ("TRIGSTR_136",GetSpellAbilityUnit(),0,9.,90.,20.,20.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
else
if(Trig_Huudot_Func001Func001Func001C())then
call CreateTextTagUnitBJ("TRIGSTR_137",GetSpellAbilityUnit(),0,9.,36.,36.,65.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
else
if(Trig_Huudot_Func001Func001Func001Func001C())then
call CreateTextTagUnitBJ("TRIGSTR_138",GetSpellAbilityUnit(),0,9.,100.,100.,100.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
else
if(Trig_Huudot_Func001Func001Func001Func001Func001C())then
call CreateTextTagUnitBJ("TRIGSTR_139",GetSpellAbilityUnit(),0,9.,65.,20.,70.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
else
if(Trig_Huudot_Func001Func001Func001Func001Func001Func001C())then
call CreateTextTagUnitBJ("TRIGSTR_140",GetSpellAbilityUnit(),0,9.,80.,30.,30.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
else
if(Trig_Huudot_Func001Func001Func001Func001Func001Func001Func002C())then
call CreateTextTagUnitBJ("TRIGSTR_278",GetSpellAbilityUnit(),0,9.,63.,45.,25.,20.)
set udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))]=bj_lastCreatedTextTag
call SetTextTagPermanentBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],false)
call SetTextTagFadepointBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],.8)
call SetTextTagLifespanBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],1.2)
call PolledWait(.85)
call SetTextTagPosUnitBJ(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))],GetSpellAbilityUnit(),10.)
call PolledWait(.3)
call DestroyTextTag(udg_texttags01[((1+GetPlayerId(GetOwningPlayer(GetSpellAbilityUnit())))+StringLength(GetObjectName(GetSpellAbilityId())))])
endif
endif
endif
endif
endif
endif
endif
endfunction
function Trig_Keeper_Func001Func001Func001Func001C takes nothing returns boolean
return(GetRandomInt(0,1)==0)
endfunction
function Trig_Keeper_Func001Func001Func001C takes nothing returns boolean
return(GetRandomInt(0,2)==0)
endfunction
function Trig_Keeper_Func001Func001Func002C takes nothing returns boolean
return(GetUnitTypeId(GetLeavingUnit())=='ndwm')
endfunction
function Trig_Keeper_Func001Func001C takes nothing returns boolean
return(GetUnitTypeId(GetLeavingUnit())=='nrat')
endfunction
function Trig_Keeper_Func001C takes nothing returns boolean
return(GetUnitTypeId(GetLeavingUnit())=='n002')
endfunction
function Trig_Keeper_Actions takes nothing returns nothing
if(Trig_Keeper_Func001C())then
call SetUnitPositionLoc(GetLeavingUnit(),GetRandomLocInRect(udg_rect12))
else
if(Trig_Keeper_Func001Func001C())then
if(Trig_Keeper_Func001Func001Func001C())then
call SetUnitPositionLoc(GetLeavingUnit(),GetRandomLocInRect(udg_rect14))
else
if(Trig_Keeper_Func001Func001Func001Func001C())then
call SetUnitPositionLoc(GetLeavingUnit(),GetRandomLocInRect(udg_rect04))
else
call SetUnitPositionLoc(GetLeavingUnit(),GetRandomLocInRect(udg_rect13))
endif
endif
else
if(Trig_Keeper_Func001Func001Func002C())then
call SetUnitPositionLoc(GetLeavingUnit(),GetRandomLocInRect(udg_rect11))
endif
endif
endif
endfunction
function Trig_Sight_Conditions takes nothing returns boolean
return(IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_Sight_Actions takes nothing returns nothing
local player p=GetOwningPlayer(GetTriggerUnit())
local integer i=GetPlayerId(p)
call KillUnit(udg_units01[i])
set udg_units01[i]=CreateUnit(p,'n005',-2610.6,6624.3,0)
set p=null
endfunction
function Trig_UnSight_Conditions takes nothing returns boolean
return(IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_UnSight_Actions takes nothing returns nothing
local player p=GetOwningPlayer(GetTriggerUnit())
local integer i=GetPlayerId(p)
call KillUnit(udg_units01[i])
set p=null
endfunction
function Trig_TakkaLibaToSnow_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_TakkaLibaToSnow_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call AddSpecialEffectTargetUnitBJ("origin",GetEnteringUnit(),"Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl")
call DestroyEffect(bj_lastCreatedEffect)
call PolledWait(.5)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect16))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call SetUnitFacingTimed(GetEnteringUnit(),270.,0)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function Trig_Back1_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_Back1_Actions takes nothing returns nothing
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect06))
endfunction
function Trig_Back2_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_Back2_Actions takes nothing returns nothing
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect06))
endfunction
function Trig_PutkestaSnowman_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_PutkestaSnowman_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect27))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call AddSpecialEffectTargetUnitBJ("origin",GetEnteringUnit(),"Objects\\Spawnmodels\\Naga\\NagaDeath\\NagaDeath.mdl")
call DestroyEffect(bj_lastCreatedEffect)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function Trig_TakkaSnowToLiba_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_TakkaSnowToLiba_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call AddSpecialEffectTargetUnitBJ("origin",GetEnteringUnit(),"Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl")
call DestroyEffect(bj_lastCreatedEffect)
call PolledWait(.5)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect18))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call SetUnitFacingTimed(GetEnteringUnit(),270.,0)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function Trig_ShitPipeInKasvi_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_ShitPipeInKasvi_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect24))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function Trig_ShitPipeInDungeon_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_ShitPipeInDungeon_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect22))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function Trig_ShitPipeOutKasvi_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_ShitPipeOutKasvi_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect26))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function Trig_ShitPipeOutDungeon_Conditions takes nothing returns boolean
return(IsUnitType(GetEnteringUnit(),UNIT_TYPE_HERO)!=null)
endfunction
function Trig_ShitPipeOutDungeon_Actions takes nothing returns nothing
call SetUnitFacingTimed(GetEnteringUnit(),180.,0)
call PauseUnit(GetEnteringUnit(),true)
call PolledWait(1.2)
call SetUnitPositionLoc(GetEnteringUnit(),GetRectCenter(udg_rect20))
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetEnteringUnit()),GetUnitLoc(GetEnteringUnit()),0)
call PauseUnit(GetEnteringUnit(),false)
endfunction
function s__Kananmuna__Data_onDestroy takes integer this returns nothing
local integer H=GetUnitUserData(udg_units32[this])
set udg_integers25[H]=255
call UnitResetColor(udg_units32[this])
call UnitRemoveAbility(udg_units32[this],Kananmuna__BUFF_ID)
endfunction
function s__Kananmuna__Data_destroy takes integer this returns nothing
if this==null then
return
elseif(udg_integers49[this]!=-1)then
return
endif
call s__Kananmuna__Data_onDestroy(this)
set udg_integers49[this]=udg_integer57
set udg_integer57=this
endfunction
function Kananmuna__Conditioni takes nothing returns boolean
return GetSpellAbilityId()==Kananmuna__SPELL_ID and GetUnitAbilityLevel(GetTriggerUnit(),Kananmuna__BUFF_ID)<=0
endfunction
function Kananmuna__FadeIn takes nothing returns boolean
local integer D=TT_GetData()
local integer H=GetUnitUserData(udg_units32[D])
set udg_integers50[D]=udg_integers50[D]+1
set udg_integers25[H]=udg_integers50[D]
call UnitResetColor(udg_units32[D])
if udg_integers50[D]==255 or IsUnitAlive(udg_units32[D])==false then
call s__Kananmuna__Data_destroy(D)
return true
endif
return false
endfunction
function Kananmuna__endSpell takes nothing returns boolean
local integer D=ABCT_GetData()
set udg_integers52[D]=udg_integers52[D]+1
if IsUnitAlive(udg_units32[D])==false then
call s__Kananmuna__Data_destroy(D)
return true
endif
if udg_integers52[D]>5 then
call TT_Start(function Kananmuna__FadeIn,D)
return true
endif
return false
endfunction
function Kananmuna__FadeOut takes nothing returns boolean
local integer D=TT_GetData()
local integer H=GetUnitUserData(udg_units32[D])
set udg_integers50[D]=udg_integers50[D]-1
set udg_integers25[H]=udg_integers50[D]
call UnitResetColor(udg_units32[D])
if IsUnitAlive(udg_units32[D])==false then
call s__Kananmuna__Data_destroy(D)
return true
endif
if udg_integers50[D]==0 then
call UnitResetColor(udg_units32[D])
set udg_booleans19[D]=true
call ABCT_Start(function Kananmuna__endSpell,D,2.)
return true
endif
return false
endfunction
function Kananmuna__Actioni takes nothing returns nothing
local unit u=GetSpellTargetUnit()
local integer D=s__Kananmuna__Data__allocate()
local player p=GetOwningPlayer(u)
local unit c=UseCaster()
local real x=GetUnitX(u)
local real y=GetUnitY(u)
call SetUnitX(c,x)
call SetUnitY(c,y)
call IssueTargetOrderById(c,852066,u)
call StopUsingCaster(c)
set udg_units32[D]=u
set udg_integers51[D]=GetPlayerId(p)
set udg_integers52[D]=0
set udg_integers50[D]=255
call TT_Start(function Kananmuna__FadeOut,D)
set p=null
endfunction
function Kananmuna__Init takes nothing returns nothing
local integer i=0
set udg_trigger59=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterPlayerUnitEvent(udg_trigger59,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,Filter(function True))
set i=i+1
endloop
call TriggerAddCondition(udg_trigger59,Condition(function Kananmuna__Conditioni))
call TriggerAddAction(udg_trigger59,function Kananmuna__Actioni)
endfunction
function Peruan__Conditioni takes nothing returns boolean
return GetSpellAbilityId()==Peruan_ABILITY_ID
endfunction
function Peruan__Actioni takes nothing returns nothing
local integer looppaaja=0
local unit u=GetTriggerUnit()
local location t=GetSpellTargetLoc()
local real x=GetLocationX(t)
local real y=GetLocationY(t)
local real x2=GetUnitX(u)
local real y2=GetUnitY(u)
local real d=DistanceBetweenXY(x,y,x2,y2)
call PolledWait2(d/900)
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\Feedback\\ArcaneTowerAttack.mdl",x,y))
loop
exitwhen looppaaja>3
set x2=x+GetRandomReal(-400,400)
set y2=y+GetRandomReal(-400,400)
set u=CreateUnit(Player(12),Peruan_UNIT_ID,x2,y2,0)
call UnitApplyTimedLife(u,'BTLF',50.)
set looppaaja=looppaaja+1
endloop
set u=null
endfunction
function Peruan__Init takes nothing returns nothing
local integer i=0
set udg_trigger61=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterPlayerUnitEvent(udg_trigger61,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,Filter(function True))
set udg_booleans01[i]=false
set i=i+1
endloop
call TriggerAddCondition(udg_trigger61,Condition(function Peruan__Conditioni))
call TriggerAddAction(udg_trigger61,function Peruan__Actioni)
endfunction
function InitCustomTriggers2 takes nothing returns nothing
set udg_trigger01=CreateTrigger()
call TriggerAddAction(udg_trigger01,function Trig_StartteriJaMultiboard_Actions)
set udg_trigger02=CreateTrigger()
call TriggerAddAction(udg_trigger02,function Trig_AlotusMultiSetNRemover_Actions)
set udg_trigger03=CreateTrigger()
call TriggerRegisterTimerEvent(udg_trigger03,.0,false)
call TriggerAddAction(udg_trigger03,function Trig_Init_Actions)
set udg_trigger04=CreateTrigger()
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(0))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(1))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(2))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(3))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(4))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(5))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(6))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(7))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(8))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(9))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(10))
call TriggerRegisterPlayerEventLeave(udg_trigger04,Player(11))
call TriggerAddAction(udg_trigger04,function Trig_LeaveriILMOSTUS_Actions)
set udg_trigger05=CreateTrigger()
call TriggerAddAction(udg_trigger05,function Trig_RoundiMultiBoardPaivitys_Actions)
set udg_trigger06=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger06,EVENT_PLAYER_UNIT_DEATH)
call TriggerAddCondition(udg_trigger06,Condition(function Trig_MultiBoardPisteLaittaja_Conditions))
call TriggerAddAction(udg_trigger06,function Trig_MultiBoardPisteLaittaja_Actions)
set udg_trigger08=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(udg_trigger08,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(udg_trigger08,Condition(function Trig_Huudot_Conditions))
call TriggerAddAction(udg_trigger08,function Trig_Huudot_Actions)
set udg_trigger09=CreateTrigger()
call TriggerRegisterLeaveRectSimple(udg_trigger09,udg_rect12)
call TriggerRegisterLeaveRectSimple(udg_trigger09,udg_rect14)
call TriggerRegisterLeaveRectSimple(udg_trigger09,udg_rect13)
call TriggerRegisterLeaveRectSimple(udg_trigger09,udg_rect04)
call TriggerRegisterLeaveRectSimple(udg_trigger09,udg_rect11)
call TriggerAddAction(udg_trigger09,function Trig_Keeper_Actions)
set udg_trigger10=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger10,udg_rect06)
call TriggerAddCondition(udg_trigger10,Condition(function Trig_Sight_Conditions))
call TriggerAddAction(udg_trigger10,function Trig_Sight_Actions)
set udg_trigger11=CreateTrigger()
call TriggerRegisterLeaveRectSimple(udg_trigger11,udg_rect06)
call TriggerAddCondition(udg_trigger11,Condition(function Trig_UnSight_Conditions))
call TriggerAddAction(udg_trigger11,function Trig_UnSight_Actions)
set udg_trigger12=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger12,udg_rect17)
call TriggerAddCondition(udg_trigger12,Condition(function Trig_TakkaLibaToSnow_Conditions))
call TriggerAddAction(udg_trigger12,function Trig_TakkaLibaToSnow_Actions)
set udg_trigger13=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger13,udg_rect07)
call TriggerAddCondition(udg_trigger13,Condition(function Trig_Back1_Conditions))
call TriggerAddAction(udg_trigger13,function Trig_Back1_Actions)
set udg_trigger14=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger14,udg_rect08)
call TriggerAddCondition(udg_trigger14,Condition(function Trig_Back2_Conditions))
call TriggerAddAction(udg_trigger14,function Trig_Back2_Actions)
set udg_trigger15=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger15,udg_rect28)
call TriggerAddCondition(udg_trigger15,Condition(function Trig_PutkestaSnowman_Conditions))
call TriggerAddAction(udg_trigger15,function Trig_PutkestaSnowman_Actions)
set udg_trigger16=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger16,udg_rect15)
call TriggerAddCondition(udg_trigger16,Condition(function Trig_TakkaSnowToLiba_Conditions))
call TriggerAddAction(udg_trigger16,function Trig_TakkaSnowToLiba_Actions)
set udg_trigger17=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger17,udg_rect25)
call TriggerAddCondition(udg_trigger17,Condition(function Trig_ShitPipeInKasvi_Conditions))
call TriggerAddAction(udg_trigger17,function Trig_ShitPipeInKasvi_Actions)
set udg_trigger18=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger18,udg_rect19)
call TriggerAddCondition(udg_trigger18,Condition(function Trig_ShitPipeInDungeon_Conditions))
call TriggerAddAction(udg_trigger18,function Trig_ShitPipeInDungeon_Actions)
set udg_trigger19=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger19,udg_rect23)
call TriggerAddCondition(udg_trigger19,Condition(function Trig_ShitPipeOutKasvi_Conditions))
call TriggerAddAction(udg_trigger19,function Trig_ShitPipeOutKasvi_Actions)
set udg_trigger20=CreateTrigger()
call TriggerRegisterEnterRectSimple(udg_trigger20,udg_rect21)
call TriggerAddCondition(udg_trigger20,Condition(function Trig_ShitPipeOutDungeon_Conditions))
call TriggerAddAction(udg_trigger20,function Trig_ShitPipeOutDungeon_Actions)
endfunction
function InitCustomPlayerSlots2 takes nothing returns nothing
call SetPlayerStartLocation(Player(0),0)
call ForcePlayerStartLocation(Player(0),0)
call SetPlayerColor(Player(0),ConvertPlayerColor(0))
call SetPlayerRacePreference(Player(0),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(0),false)
call SetPlayerController(Player(0),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(1),1)
call ForcePlayerStartLocation(Player(1),1)
call SetPlayerColor(Player(1),ConvertPlayerColor(1))
call SetPlayerRacePreference(Player(1),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(1),false)
call SetPlayerController(Player(1),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(2),2)
call ForcePlayerStartLocation(Player(2),2)
call SetPlayerColor(Player(2),ConvertPlayerColor(2))
call SetPlayerRacePreference(Player(2),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(2),false)
call SetPlayerController(Player(2),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(3),3)
call ForcePlayerStartLocation(Player(3),3)
call SetPlayerColor(Player(3),ConvertPlayerColor(3))
call SetPlayerRacePreference(Player(3),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(3),false)
call SetPlayerController(Player(3),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(4),4)
call ForcePlayerStartLocation(Player(4),4)
call SetPlayerColor(Player(4),ConvertPlayerColor(4))
call SetPlayerRacePreference(Player(4),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(4),false)
call SetPlayerController(Player(4),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(5),5)
call ForcePlayerStartLocation(Player(5),5)
call SetPlayerColor(Player(5),ConvertPlayerColor(5))
call SetPlayerRacePreference(Player(5),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(5),false)
call SetPlayerController(Player(5),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(6),6)
call ForcePlayerStartLocation(Player(6),6)
call SetPlayerColor(Player(6),ConvertPlayerColor(6))
call SetPlayerRacePreference(Player(6),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(6),false)
call SetPlayerController(Player(6),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(7),7)
call ForcePlayerStartLocation(Player(7),7)
call SetPlayerColor(Player(7),ConvertPlayerColor(7))
call SetPlayerRacePreference(Player(7),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(7),false)
call SetPlayerController(Player(7),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(8),8)
call ForcePlayerStartLocation(Player(8),8)
call SetPlayerColor(Player(8),ConvertPlayerColor(8))
call SetPlayerRacePreference(Player(8),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(8),false)
call SetPlayerController(Player(8),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(9),9)
call ForcePlayerStartLocation(Player(9),9)
call SetPlayerColor(Player(9),ConvertPlayerColor(9))
call SetPlayerRacePreference(Player(9),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(9),false)
call SetPlayerController(Player(9),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(10),10)
call ForcePlayerStartLocation(Player(10),10)
call SetPlayerColor(Player(10),ConvertPlayerColor(10))
call SetPlayerRacePreference(Player(10),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(10),false)
call SetPlayerController(Player(10),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(11),11)
call ForcePlayerStartLocation(Player(11),11)
call SetPlayerColor(Player(11),ConvertPlayerColor(11))
call SetPlayerRacePreference(Player(11),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(11),false)
call SetPlayerController(Player(11),MAP_CONTROL_USER)
endfunction
function InitCustomTeams2 takes nothing returns nothing
call SetPlayerTeam(Player(0),0)
call SetPlayerTeam(Player(1),0)
call SetPlayerTeam(Player(2),0)
call SetPlayerTeam(Player(3),0)
call SetPlayerTeam(Player(4),0)
call SetPlayerTeam(Player(5),0)
call SetPlayerAllianceStateAllyBJ(Player(0),Player(1),true)
call SetPlayerAllianceStateAllyBJ(Player(0),Player(2),true)
call SetPlayerAllianceStateAllyBJ(Player(0),Player(3),true)
call SetPlayerAllianceStateAllyBJ(Player(0),Player(4),true)
call SetPlayerAllianceStateAllyBJ(Player(0),Player(5),true)
call SetPlayerAllianceStateAllyBJ(Player(1),Player(0),true)
call SetPlayerAllianceStateAllyBJ(Player(1),Player(2),true)
call SetPlayerAllianceStateAllyBJ(Player(1),Player(3),true)
call SetPlayerAllianceStateAllyBJ(Player(1),Player(4),true)
call SetPlayerAllianceStateAllyBJ(Player(1),Player(5),true)
call SetPlayerAllianceStateAllyBJ(Player(2),Player(0),true)
call SetPlayerAllianceStateAllyBJ(Player(2),Player(1),true)
call SetPlayerAllianceStateAllyBJ(Player(2),Player(3),true)
call SetPlayerAllianceStateAllyBJ(Player(2),Player(4),true)
call SetPlayerAllianceStateAllyBJ(Player(2),Player(5),true)
call SetPlayerAllianceStateAllyBJ(Player(3),Player(0),true)
call SetPlayerAllianceStateAllyBJ(Player(3),Player(1),true)
call SetPlayerAllianceStateAllyBJ(Player(3),Player(2),true)
call SetPlayerAllianceStateAllyBJ(Player(3),Player(4),true)
call SetPlayerAllianceStateAllyBJ(Player(3),Player(5),true)
call SetPlayerAllianceStateAllyBJ(Player(4),Player(0),true)
call SetPlayerAllianceStateAllyBJ(Player(4),Player(1),true)
call SetPlayerAllianceStateAllyBJ(Player(4),Player(2),true)
call SetPlayerAllianceStateAllyBJ(Player(4),Player(3),true)
call SetPlayerAllianceStateAllyBJ(Player(4),Player(5),true)
call SetPlayerAllianceStateAllyBJ(Player(5),Player(0),true)
call SetPlayerAllianceStateAllyBJ(Player(5),Player(1),true)
call SetPlayerAllianceStateAllyBJ(Player(5),Player(2),true)
call SetPlayerAllianceStateAllyBJ(Player(5),Player(3),true)
call SetPlayerAllianceStateAllyBJ(Player(5),Player(4),true)
call SetPlayerAllianceStateVisionBJ(Player(0),Player(1),true)
call SetPlayerAllianceStateVisionBJ(Player(0),Player(2),true)
call SetPlayerAllianceStateVisionBJ(Player(0),Player(3),true)
call SetPlayerAllianceStateVisionBJ(Player(0),Player(4),true)
call SetPlayerAllianceStateVisionBJ(Player(0),Player(5),true)
call SetPlayerAllianceStateVisionBJ(Player(1),Player(0),true)
call SetPlayerAllianceStateVisionBJ(Player(1),Player(2),true)
call SetPlayerAllianceStateVisionBJ(Player(1),Player(3),true)
call SetPlayerAllianceStateVisionBJ(Player(1),Player(4),true)
call SetPlayerAllianceStateVisionBJ(Player(1),Player(5),true)
call SetPlayerAllianceStateVisionBJ(Player(2),Player(0),true)
call SetPlayerAllianceStateVisionBJ(Player(2),Player(1),true)
call SetPlayerAllianceStateVisionBJ(Player(2),Player(3),true)
call SetPlayerAllianceStateVisionBJ(Player(2),Player(4),true)
call SetPlayerAllianceStateVisionBJ(Player(2),Player(5),true)
call SetPlayerAllianceStateVisionBJ(Player(3),Player(0),true)
call SetPlayerAllianceStateVisionBJ(Player(3),Player(1),true)
call SetPlayerAllianceStateVisionBJ(Player(3),Player(2),true)
call SetPlayerAllianceStateVisionBJ(Player(3),Player(4),true)
call SetPlayerAllianceStateVisionBJ(Player(3),Player(5),true)
call SetPlayerAllianceStateVisionBJ(Player(4),Player(0),true)
call SetPlayerAllianceStateVisionBJ(Player(4),Player(1),true)
call SetPlayerAllianceStateVisionBJ(Player(4),Player(2),true)
call SetPlayerAllianceStateVisionBJ(Player(4),Player(3),true)
call SetPlayerAllianceStateVisionBJ(Player(4),Player(5),true)
call SetPlayerAllianceStateVisionBJ(Player(5),Player(0),true)
call SetPlayerAllianceStateVisionBJ(Player(5),Player(1),true)
call SetPlayerAllianceStateVisionBJ(Player(5),Player(2),true)
call SetPlayerAllianceStateVisionBJ(Player(5),Player(3),true)
call SetPlayerAllianceStateVisionBJ(Player(5),Player(4),true)
call SetPlayerTeam(Player(6),1)
call SetPlayerTeam(Player(7),1)
call SetPlayerTeam(Player(8),1)
call SetPlayerTeam(Player(9),1)
call SetPlayerTeam(Player(10),1)
call SetPlayerTeam(Player(11),1)
call SetPlayerAllianceStateAllyBJ(Player(6),Player(7),true)
call SetPlayerAllianceStateAllyBJ(Player(6),Player(8),true)
call SetPlayerAllianceStateAllyBJ(Player(6),Player(9),true)
call SetPlayerAllianceStateAllyBJ(Player(6),Player(10),true)
call SetPlayerAllianceStateAllyBJ(Player(6),Player(11),true)
call SetPlayerAllianceStateAllyBJ(Player(7),Player(6),true)
call SetPlayerAllianceStateAllyBJ(Player(7),Player(8),true)
call SetPlayerAllianceStateAllyBJ(Player(7),Player(9),true)
call SetPlayerAllianceStateAllyBJ(Player(7),Player(10),true)
call SetPlayerAllianceStateAllyBJ(Player(7),Player(11),true)
call SetPlayerAllianceStateAllyBJ(Player(8),Player(6),true)
call SetPlayerAllianceStateAllyBJ(Player(8),Player(7),true)
call SetPlayerAllianceStateAllyBJ(Player(8),Player(9),true)
call SetPlayerAllianceStateAllyBJ(Player(8),Player(10),true)
call SetPlayerAllianceStateAllyBJ(Player(8),Player(11),true)
call SetPlayerAllianceStateAllyBJ(Player(9),Player(6),true)
call SetPlayerAllianceStateAllyBJ(Player(9),Player(7),true)
call SetPlayerAllianceStateAllyBJ(Player(9),Player(8),true)
call SetPlayerAllianceStateAllyBJ(Player(9),Player(10),true)
call SetPlayerAllianceStateAllyBJ(Player(9),Player(11),true)
call SetPlayerAllianceStateAllyBJ(Player(10),Player(6),true)
call SetPlayerAllianceStateAllyBJ(Player(10),Player(7),true)
call SetPlayerAllianceStateAllyBJ(Player(10),Player(8),true)
call SetPlayerAllianceStateAllyBJ(Player(10),Player(9),true)
call SetPlayerAllianceStateAllyBJ(Player(10),Player(11),true)
call SetPlayerAllianceStateAllyBJ(Player(11),Player(6),true)
call SetPlayerAllianceStateAllyBJ(Player(11),Player(7),true)
call SetPlayerAllianceStateAllyBJ(Player(11),Player(8),true)
call SetPlayerAllianceStateAllyBJ(Player(11),Player(9),true)
call SetPlayerAllianceStateAllyBJ(Player(11),Player(10),true)
call SetPlayerAllianceStateVisionBJ(Player(6),Player(7),true)
call SetPlayerAllianceStateVisionBJ(Player(6),Player(8),true)
call SetPlayerAllianceStateVisionBJ(Player(6),Player(9),true)
call SetPlayerAllianceStateVisionBJ(Player(6),Player(10),true)
call SetPlayerAllianceStateVisionBJ(Player(6),Player(11),true)
call SetPlayerAllianceStateVisionBJ(Player(7),Player(6),true)
call SetPlayerAllianceStateVisionBJ(Player(7),Player(8),true)
call SetPlayerAllianceStateVisionBJ(Player(7),Player(9),true)
call SetPlayerAllianceStateVisionBJ(Player(7),Player(10),true)
call SetPlayerAllianceStateVisionBJ(Player(7),Player(11),true)
call SetPlayerAllianceStateVisionBJ(Player(8),Player(6),true)
call SetPlayerAllianceStateVisionBJ(Player(8),Player(7),true)
call SetPlayerAllianceStateVisionBJ(Player(8),Player(9),true)
call SetPlayerAllianceStateVisionBJ(Player(8),Player(10),true)
call SetPlayerAllianceStateVisionBJ(Player(8),Player(11),true)
call SetPlayerAllianceStateVisionBJ(Player(9),Player(6),true)
call SetPlayerAllianceStateVisionBJ(Player(9),Player(7),true)
call SetPlayerAllianceStateVisionBJ(Player(9),Player(8),true)
call SetPlayerAllianceStateVisionBJ(Player(9),Player(10),true)
call SetPlayerAllianceStateVisionBJ(Player(9),Player(11),true)
call SetPlayerAllianceStateVisionBJ(Player(10),Player(6),true)
call SetPlayerAllianceStateVisionBJ(Player(10),Player(7),true)
call SetPlayerAllianceStateVisionBJ(Player(10),Player(8),true)
call SetPlayerAllianceStateVisionBJ(Player(10),Player(9),true)
call SetPlayerAllianceStateVisionBJ(Player(10),Player(11),true)
call SetPlayerAllianceStateVisionBJ(Player(11),Player(6),true)
call SetPlayerAllianceStateVisionBJ(Player(11),Player(7),true)
call SetPlayerAllianceStateVisionBJ(Player(11),Player(8),true)
call SetPlayerAllianceStateVisionBJ(Player(11),Player(9),true)
call SetPlayerAllianceStateVisionBJ(Player(11),Player(10),true)
endfunction
function InitAllyPriorities2 takes nothing returns nothing
call SetStartLocPrioCount(0,1)
call SetStartLocPrio(0,0,5,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(1,2)
call SetStartLocPrio(1,0,2,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(1,1,3,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(2,3)
call SetStartLocPrio(2,0,1,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(2,1,3,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(2,2,4,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(3,2)
call SetStartLocPrio(3,0,1,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(3,1,2,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(4,2)
call SetStartLocPrio(4,0,1,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(4,1,2,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(5,3)
call SetStartLocPrio(5,0,0,MAP_LOC_PRIO_LOW)
call SetStartLocPrio(5,1,2,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(5,2,4,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(6,2)
call SetStartLocPrio(6,0,8,MAP_LOC_PRIO_LOW)
call SetStartLocPrio(6,1,10,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(7,1)
call SetStartLocPrio(7,0,8,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(8,2)
call SetStartLocPrio(8,0,6,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(8,1,7,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(9,3)
call SetStartLocPrio(9,0,7,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(9,1,8,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(9,2,11,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(10,2)
call SetStartLocPrio(10,0,6,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(10,1,11,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(11,2)
call SetStartLocPrio(11,0,9,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(11,1,10,MAP_LOC_PRIO_HIGH)
endfunction
function main2 takes nothing returns nothing
local weathereffect we
local integer i
local player p
local unit u
local integer unitID
local trigger t
local real life
call SetCameraBounds(-9472.+GetCameraMargin(CAMERA_MARGIN_LEFT),-9728.+GetCameraMargin(CAMERA_MARGIN_BOTTOM),9472.-GetCameraMargin(CAMERA_MARGIN_RIGHT),9216.-GetCameraMargin(CAMERA_MARGIN_TOP),-9472.+GetCameraMargin(CAMERA_MARGIN_LEFT),9216.-GetCameraMargin(CAMERA_MARGIN_TOP),9472.-GetCameraMargin(CAMERA_MARGIN_RIGHT),-9728.+GetCameraMargin(CAMERA_MARGIN_BOTTOM))
call SetDayNightModels("Environment\\DNC\\DNCDalaran\\DNCDalaranTerrain\\DNCDalaranTerrain.mdl","Environment\\DNC\\DNCDalaran\\DNCDalaranUnit\\DNCDalaranUnit.mdl")
call SetTerrainFogEx(0,200.,11200.,.0,.435,.145,.514)
call NewSoundEnvironment("Default")
call SetAmbientDaySound("DungeonDay")
call SetAmbientNightSound("DungeonNight")
call SetMapMusic("Music",true,0)
set udg_rect02=Rect(1408.,-9760.,5504.,-6912.)
set we=AddWeatherEffect(udg_rect02,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect03=Rect(928.,2752.,3456.,4768.)
set we=AddWeatherEffect(udg_rect03,'SNls')
call EnableWeatherEffect(we,true)
set udg_rect04=Rect(-3616.,-5152.,-2400.,-800.)
set we=AddWeatherEffect(udg_rect04,'FDrh')
call EnableWeatherEffect(we,true)
set udg_rect05=Rect(-2048.,2656.,32.,4768.)
set we=AddWeatherEffect(udg_rect05,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect06=Rect(-1376.,4928.,-1024.,5184.)
set udg_rect07=Rect(-2656.,4768.,-1664.,6272.)
set udg_rect08=Rect(-1664.,5376.,-512.,6240.)
set udg_rect09=Rect(5024.,-5792.,6208.,-1792.)
set we=AddWeatherEffect(udg_rect09,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect10=Rect(6336.,-5952.,8640.,-3904.)
set we=AddWeatherEffect(udg_rect10,'FDbh')
call EnableWeatherEffect(we,true)
set udg_rect11=Rect(6912.,-3168.,8672.,-640.)
set we=AddWeatherEffect(udg_rect11,'FDrl')
call EnableWeatherEffect(we,true)
set udg_rect12=Rect(-1632.,-4768.,928.,-768.)
set we=AddWeatherEffect(udg_rect12,'LRma')
call EnableWeatherEffect(we,true)
set udg_rect13=Rect(-8288.,-7744.,-7616.,-2560.)
set we=AddWeatherEffect(udg_rect13,'FDgh')
call EnableWeatherEffect(we,true)
set udg_rect14=Rect(-7648.,-8512.,-3072.,-7104.)
set we=AddWeatherEffect(udg_rect14,'FDgh')
call EnableWeatherEffect(we,true)
set udg_rect15=Rect(2912.,4704.,3104.,4896.)
set udg_rect16=Rect(2912.,4576.,3104.,4704.)
set udg_rect17=Rect(-1888.,-4512.,-1696.,-4320.)
set udg_rect18=Rect(-1696.,-4480.,-1568.,-4352.)
set udg_rect19=Rect(-2624.,-1056.,-2464.,-960.)
set udg_rect20=Rect(-2656.,-1184.,-2528.,-1088.)
set udg_rect21=Rect(-8160.,-3168.,-7808.,-2976.)
set udg_rect22=Rect(-8064.,-3296.,-7904.,-3168.)
set udg_rect23=Rect(-3552.,-8416.,-3424.,-7712.)
set udg_rect24=Rect(-3680.,-8000.,-3552.,-7872.)
set udg_rect25=Rect(8320.,-864.,8672.,-704.)
set udg_rect26=Rect(8320.,-1056.,8448.,-896.)
set udg_rect27=Rect(2976.,3136.,3072.,3232.)
set udg_rect28=Rect(-6688.,-6912.,-6400.,-6816.)
set p=Player(15)
set u=CreateUnit(p,'n006',-3456.,-1792.,270.)
call SetUnitColor(u,ConvertPlayerColor(9))
set u=CreateUnit(p,'n007',7104.,-1280.,270.)
call SetUnitColor(u,ConvertPlayerColor(10))
set u=CreateUnit(p,'n008',832.,4672.,270.)
call SetUnitColor(u,ConvertPlayerColor(3))
set p=Player(15)
set udg_unit13=CreateUnit(p,'n004',-3303.3,-3854.8,245.633)
set u=CreateUnit(p,'nrat',-2986.8,-2382.5,140.157)
set u=CreateUnit(p,'nrat',-3358.8,-1909.1,344.014)
set u=CreateUnit(p,'nrat',-2601.2,-2457.8,95.09)
set u=CreateUnit(p,'nrat',-3306.,-2293.4,274.337)
set u=CreateUnit(p,'nrat',-2936.3,-4269.8,28.159)
set u=CreateUnit(p,'nrat',-2957.1,-1387.9,225.128)
set u=CreateUnit(p,'nrat',-3225.7,-1342.1,228.248)
set u=CreateUnit(p,'nrat',-2485.2,-1782.2,149.99)
set u=CreateUnit(p,'nrat',-2598.1,-3881.4,157.648)
set u=CreateUnit(p,'n002',-416.7,-2957.9,345.388)
set u=CreateUnit(p,'n002',-489.5,-2255.2,341.905)
set u=CreateUnit(p,'n002',-223.,-2014.6,12.756)
set u=CreateUnit(p,'n002',-788.5,-2488.8,281.797)
set u=CreateUnit(p,'n002',-224.,-2715.1,196.947)
set u=CreateUnit(p,'n002',-160.,-3155.1,252.869)
set u=CreateUnit(p,'n002',363.8,-2541.6,126.874)
set u=CreateUnit(p,'n002',197.3,-3049.2,185.883)
set u=CreateUnit(p,'n002',-37.5,-2127.7,100.034)
set u=CreateUnit(p,'n002',-1318.9,-2656.2,.11)
set u=CreateUnit(p,'n002',-964.3,-3968.7,46.298)
set u=CreateUnit(p,'n002',323.6,-4046.3,15.755)
set u=CreateUnit(p,'n002',3.2,-4668.7,227.995)
set u=CreateUnit(p,'n002',316.6,-1361.1,187.652)
set u=CreateUnit(p,'n002',-775.7,-1293.7,165.547)
set u=CreateUnit(p,'n002',794.7,-1792.4,308.56)
set u=CreateUnit(p,'ndwm',8491.6,-1607.3,320.36)
set u=CreateUnit(p,'ndwm',8612.3,-1627.7,15.557)
set u=CreateUnit(p,'ndwm',8680.6,-1682.7,328.172)
set u=CreateUnit(p,'ndwm',8145.4,-2625.,91.98)
set u=CreateUnit(p,'ndwm',8112.2,-2576.9,136.004)
set u=CreateUnit(p,'ndwm',8335.,-3105.8,108.878)
set u=CreateUnit(p,'ndwm',8425.2,-3114.4,213.789)
set u=CreateUnit(p,'ndwm',7005.,-2304.9,44.804)
set u=CreateUnit(p,'ndwm',6968.,-2376.4,254.781)
set u=CreateUnit(p,'ndwm',7534.7,-930.5,171.59)
set u=CreateUnit(p,'nrat',-4753.9,1230.3,67.568)
set u=CreateUnit(p,'nrat',-8038.,-6710.,242.684)
set u=CreateUnit(p,'nrat',-7887.8,-3911.1,129.126)
set u=CreateUnit(p,'nrat',-8044.8,-4011.4,147.848)
set u=CreateUnit(p,'nrat',-8099.6,-4578.4,327.194)
set u=CreateUnit(p,'nrat',-7937.6,-5629.6,70.732)
set u=CreateUnit(p,'nrat',-8049.2,-5438.4,158.702)
set u=CreateUnit(p,'nrat',-8047.9,-5322.3,32.762)
set u=CreateUnit(p,'nrat',-7901.2,-5047.5,124.347)
set u=CreateUnit(p,'nrat',-7871.6,-4887.9,233.719)
set u=CreateUnit(p,'nrat',-7914.7,-6106.7,137.476)
set u=CreateUnit(p,'nrat',-8241.6,-6381.5,263.735)
set u=CreateUnit(p,'nrat',-8020.9,-6666.1,34.949)
set u=CreateUnit(p,'nrat',-8071.6,-7010.6,236.103)
set u=CreateUnit(p,'nrat',-7987.7,-7251.1,302.43)
set u=CreateUnit(p,'nrat',-7832.,-7638.2,205.242)
set u=CreateUnit(p,'nrat',-7668.7,-7396.7,230.226)
set u=CreateUnit(p,'nrat',-7966.7,-7162.7,336.192)
set u=CreateUnit(p,'nrat',-7225.4,-7496.,8.581)
set u=CreateUnit(p,'nrat',-6862.1,-7496.3,265.394)
set u=CreateUnit(p,'nrat',-6729.4,-7503.5,276.842)
set u=CreateUnit(p,'nrat',-6683.3,-7481.9,223.205)
set u=CreateUnit(p,'nrat',-6243.3,-7550.2,144.859)
set u=CreateUnit(p,'nrat',-6610.6,-7358.5,67.447)
set u=CreateUnit(p,'nrat',-6599.8,-7459.7,115.909)
set u=CreateUnit(p,'nrat',-6449.8,-7502.6,62.459)
set u=CreateUnit(p,'nrat',-6251.3,-7527.4,262.944)
set u=CreateUnit(p,'nrat',-5409.3,-7624.8,198.54)
set u=CreateUnit(p,'nrat',-5470.1,-7614.,259.45)
set u=CreateUnit(p,'nrat',-5487.6,-7624.,346.585)
set u=CreateUnit(p,'nrat',-5173.5,-7830.4,323.041)
set u=CreateUnit(p,'nrat',-3827.9,-7772.4,120.095)
set u=CreateUnit(p,'nrat',-3956.6,-7811.,333.006)
set u=CreateUnit(p,'nrat',-4293.8,-7878.8,108.087)
set u=CreateUnit(p,'nrat',-4556.,-7888.4,277.161)
set u=CreateUnit(p,'nrat',-4759.1,-7903.6,358.)
set u=CreateUnit(p,'nrat',-3765.5,-7885.6,189.168)
set u=CreateUnit(p,'nrat',-3802.1,-7814.5,208.164)
set u=CreateUnit(p,'nrat',-3861.8,-7820.8,112.009)
set u=CreateUnit(p,'nrat',-3919.3,-7784.9,275.524)
set u=CreateUnit(p,'nrat',-3937.1,-7815.5,154.385)
set u=CreateUnit(p,'nrat',-3833.,-7867.4,152.165)
set u=CreateUnit(p,'nrat',-3821.5,-7877.9,104.593)
set u=CreateUnit(p,'nrat',-4425.1,-7746.8,98.32)
set u=CreateUnit(p,'nrat',-4298.7,-7750.4,182.214)
set u=CreateUnit(p,'nrat',-4396.3,-8004.7,333.907)
set u=CreateUnit(p,'nrat',-4323.8,-8015.5,169.964)
set u=CreateUnit(p,'nrat',-3482.7,-8193.3,203.616)
set u=CreateUnit(p,'nrat',-3574.5,-8308.2,155.406)
set u=CreateUnit(p,'nrat',-3582.3,-8354.1,109.032)
set u=CreateUnit(p,'nrat',-3707.1,-8212.6,313.57)
set u=CreateUnit(p,'nrat',-5391.5,-8054.5,237.334)
set u=CreateUnit(p,'nrat',-5941.8,-8072.2,333.951)
set u=CreateUnit(p,'nrat',-5986.3,-8096.2,283.005)
set u=CreateUnit(p,'nrat',-6693.4,-7006.6,81.664)
set u=CreateUnit(p,'nrat',-6792.7,-7032.1,140.673)
set u=CreateUnit(p,'nrat',-6996.3,-7557.2,334.841)
set udg_unit14=CreateUnit(p,'n009',-2506.3,-5016.2,107.087)
set p=Player(0)
set udg_unit03=CreateUnit(p,'N001',-4737.,524.1,49.517)
call SetUnitColor(udg_unit03,ConvertPlayerColor(0))
set p=Player(1)
set udg_unit04=CreateUnit(p,'N001',-4379.9,1852.1,83.938)
call SetUnitColor(udg_unit04,ConvertPlayerColor(0))
set p=Player(2)
set udg_unit05=CreateUnit(p,'N001',-4625.1,1593.4,295.486)
call SetUnitColor(udg_unit05,ConvertPlayerColor(0))
set p=Player(3)
set udg_unit06=CreateUnit(p,'N001',-4578.9,1966.9,14.755)
call SetUnitColor(udg_unit06,ConvertPlayerColor(0))
set p=Player(4)
set udg_unit07=CreateUnit(p,'N001',-4205.3,1435.8,5.68)
call SetUnitColor(udg_unit07,ConvertPlayerColor(0))
set p=Player(5)
set udg_unit08=CreateUnit(p,'N001',-4779.7,1194.6,256.044)
call SetUnitColor(udg_unit08,ConvertPlayerColor(0))
set p=Player(6)
set udg_unit09=CreateUnit(p,'N000',4044.2,-7732.9,337.137)
call SetUnitColor(udg_unit09,ConvertPlayerColor(10))
set p=Player(7)
set udg_unit10=CreateUnit(p,'N000',3432.2,-7618.3,53.34)
call SetUnitColor(udg_unit10,ConvertPlayerColor(10))
set p=Player(8)
set udg_unit11=CreateUnit(p,'N000',3742.9,-7611.2,253.4)
call SetUnitColor(udg_unit11,ConvertPlayerColor(10))
set p=Player(9)
set udg_unit12=CreateUnit(p,'N000',3471.3,-7957.5,294.89)
call SetUnitColor(udg_unit12,ConvertPlayerColor(10))
set p=Player(10)
set udg_unit01=CreateUnit(p,'N000',4026.,-7984.8,276.23)
call SetUnitColor(udg_unit01,ConvertPlayerColor(10))
set p=Player(11)
set udg_unit02=CreateUnit(p,'N000',3768.6,-8246.1,35.87)
call SetUnitColor(udg_unit02,ConvertPlayerColor(10))
call ExecuteFunc("jasshelper__initstructs8942437")
call ExecuteFunc("ABC___Init")
call ExecuteFunc("ABCT___Init")
call ExecuteFunc("TT__Init")
set i=0
set Kananmuna__T=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterPlayerUnitEvent(Kananmuna__T,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,Filter(function True))
set i=i+1
endloop
call TriggerAddCondition(Kananmuna__T,Condition(function Kananmuna__Conditioni))
call TriggerAddAction(Kananmuna__T,function Kananmuna__Actioni)
set i=0
set Peruan__T=CreateTrigger()
loop
exitwhen i>11
call TriggerRegisterPlayerUnitEvent(Peruan__T,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,Filter(function True))
set Peruan_B[i]=false
set i=i+1
endloop
call TriggerAddCondition(Peruan__T,Condition(function Peruan__Conditioni))
call TriggerAddAction(Peruan__T,function Peruan__Actioni)
set i=0
set udg_KillsDeathsMulti=CreateMultiboard()
set i=0
loop
exitwhen(i>12)
set udg_PlayersKills[i]=0
set udg_PlayersDeaths[i]=0
set i=i+1
endloop
set i=0
loop
exitwhen(i>2)
set udg_TeamRoundWins[i]=0
set i=i+1
endloop
set gg_trg_StartteriJaMultiboard=CreateTrigger()
call TriggerAddAction(gg_trg_StartteriJaMultiboard,function Trig_StartteriJaMultiboard_Actions)
set gg_trg_AlotusMultiSetNRemover=CreateTrigger()
call TriggerAddAction(gg_trg_AlotusMultiSetNRemover,function Trig_AlotusMultiSetNRemover_Actions)
set gg_trg_Init=CreateTrigger()
call TriggerRegisterTimerEvent(gg_trg_Init,.0,false)
call TriggerAddAction(gg_trg_Init,function Trig_Init_Actions)
set gg_trg_LeaveriILMOSTUS=CreateTrigger()
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(0))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(1))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(2))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(3))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(4))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(5))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(6))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(7))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(8))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(9))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(10))
call TriggerRegisterPlayerEventLeave(gg_trg_LeaveriILMOSTUS,Player(11))
call TriggerAddAction(gg_trg_LeaveriILMOSTUS,function Trig_LeaveriILMOSTUS_Actions)
set gg_trg_RoundiMultiBoardPaivitys=CreateTrigger()
call TriggerAddAction(gg_trg_RoundiMultiBoardPaivitys,function Trig_RoundiMultiBoardPaivitys_Actions)
set gg_trg_MultiBoardPisteLaittaja=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_MultiBoardPisteLaittaja,EVENT_PLAYER_UNIT_DEATH)
call TriggerAddCondition(gg_trg_MultiBoardPisteLaittaja,Condition(function Trig_MultiBoardPisteLaittaja_Conditions))
call TriggerAddAction(gg_trg_MultiBoardPisteLaittaja,function Trig_MultiBoardPisteLaittaja_Actions)
set gg_trg_Huudot=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Huudot,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(gg_trg_Huudot,Condition(function Trig_Huudot_Conditions))
call TriggerAddAction(gg_trg_Huudot,function Trig_Huudot_Actions)
set gg_trg_Keeper=CreateTrigger()
call TriggerRegisterLeaveRectSimple(gg_trg_Keeper,gg_rct_JokuHuoneRegion)
call TriggerRegisterLeaveRectSimple(gg_trg_Keeper,gg_rct_PaskaPutki2)
call TriggerRegisterLeaveRectSimple(gg_trg_Keeper,gg_rct_PaskaPutki1)
call TriggerRegisterLeaveRectSimple(gg_trg_Keeper,gg_rct_Dungeon)
call TriggerRegisterLeaveRectSimple(gg_trg_Keeper,gg_rct_Kasvihuone)
call TriggerAddAction(gg_trg_Keeper,function Trig_Keeper_Actions)
set gg_trg_Sight=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_Sight,gg_rct_LookOut)
call TriggerAddCondition(gg_trg_Sight,Condition(function Trig_Sight_Conditions))
call TriggerAddAction(gg_trg_Sight,function Trig_Sight_Actions)
set gg_trg_UnSight=CreateTrigger()
call TriggerRegisterLeaveRectSimple(gg_trg_UnSight,gg_rct_LookOut)
call TriggerAddCondition(gg_trg_UnSight,Condition(function Trig_UnSight_Conditions))
call TriggerAddAction(gg_trg_UnSight,function Trig_UnSight_Actions)
set gg_trg_TakkaLibaToSnow=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_TakkaLibaToSnow,gg_rct_LibaTakkaIn)
call TriggerAddCondition(gg_trg_TakkaLibaToSnow,Condition(function Trig_TakkaLibaToSnow_Conditions))
call TriggerAddAction(gg_trg_TakkaLibaToSnow,function Trig_TakkaLibaToSnow_Actions)
set gg_trg_Back1=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_Back1,gg_rct_Siirto1)
call TriggerAddCondition(gg_trg_Back1,Condition(function Trig_Back1_Conditions))
call TriggerAddAction(gg_trg_Back1,function Trig_Back1_Actions)
set gg_trg_Back2=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_Back2,gg_rct_Siirto2)
call TriggerAddCondition(gg_trg_Back2,Condition(function Trig_Back2_Conditions))
call TriggerAddAction(gg_trg_Back2,function Trig_Back2_Actions)
set gg_trg_PutkestaSnowman=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_PutkestaSnowman,gg_rct_PutkestaPihalle)
call TriggerAddCondition(gg_trg_PutkestaSnowman,Condition(function Trig_PutkestaSnowman_Conditions))
call TriggerAddAction(gg_trg_PutkestaSnowman,function Trig_PutkestaSnowman_Actions)
set gg_trg_TakkaSnowToLiba=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_TakkaSnowToLiba,gg_rct_SnowTakkaIn)
call TriggerAddCondition(gg_trg_TakkaSnowToLiba,Condition(function Trig_TakkaSnowToLiba_Conditions))
call TriggerAddAction(gg_trg_TakkaSnowToLiba,function Trig_TakkaSnowToLiba_Actions)
set gg_trg_ShitPipeInKasvi=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_ShitPipeInKasvi,gg_rct_KasviIn)
call TriggerAddCondition(gg_trg_ShitPipeInKasvi,Condition(function Trig_ShitPipeInKasvi_Conditions))
call TriggerAddAction(gg_trg_ShitPipeInKasvi,function Trig_ShitPipeInKasvi_Actions)
set gg_trg_ShitPipeInDungeon=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_ShitPipeInDungeon,gg_rct_DungeonIn)
call TriggerAddCondition(gg_trg_ShitPipeInDungeon,Condition(function Trig_ShitPipeInDungeon_Conditions))
call TriggerAddAction(gg_trg_ShitPipeInDungeon,function Trig_ShitPipeInDungeon_Actions)
set gg_trg_ShitPipeOutKasvi=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_ShitPipeOutKasvi,gg_rct_ShitKasviOut)
call TriggerAddCondition(gg_trg_ShitPipeOutKasvi,Condition(function Trig_ShitPipeOutKasvi_Conditions))
call TriggerAddAction(gg_trg_ShitPipeOutKasvi,function Trig_ShitPipeOutKasvi_Actions)
set gg_trg_ShitPipeOutDungeon=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_ShitPipeOutDungeon,gg_rct_ShitDungeonIn)
call TriggerAddCondition(gg_trg_ShitPipeOutDungeon,Condition(function Trig_ShitPipeOutDungeon_Conditions))
call TriggerAddAction(gg_trg_ShitPipeOutDungeon,function Trig_ShitPipeOutDungeon_Actions)
endfunction
function config takes nothing returns nothing
call SetMapName("TRIGSTR_001")
call SetMapDescription("TRIGSTR_003")
call SetPlayers(12)
call SetTeams(12)
call SetGamePlacement(MAP_PLACEMENT_TEAMS_TOGETHER)
call DefineStartLocation(0,-4736.,512.)
call DefineStartLocation(1,-4416.,1728.)
call DefineStartLocation(2,-4608.,1536.)
call DefineStartLocation(3,-4608.,1856.)
call DefineStartLocation(4,-4224.,1408.)
call DefineStartLocation(5,-4800.,1152.)
call DefineStartLocation(6,4032.,-7744.)
call DefineStartLocation(7,3456.,-7616.)
call DefineStartLocation(8,3712.,-7680.)
call DefineStartLocation(9,3456.,-8064.)
call DefineStartLocation(10,4032.,-8000.)
call DefineStartLocation(11,3776.,-8256.)
call SetPlayerStartLocation(Player(0),0)
call ForcePlayerStartLocation(Player(0),0)
call SetPlayerColor(Player(0),ConvertPlayerColor(0))
call SetPlayerRacePreference(Player(0),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(0),false)
call SetPlayerController(Player(0),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(1),1)
call ForcePlayerStartLocation(Player(1),1)
call SetPlayerColor(Player(1),ConvertPlayerColor(1))
call SetPlayerRacePreference(Player(1),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(1),false)
call SetPlayerController(Player(1),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(2),2)
call ForcePlayerStartLocation(Player(2),2)
call SetPlayerColor(Player(2),ConvertPlayerColor(2))
call SetPlayerRacePreference(Player(2),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(2),false)
call SetPlayerController(Player(2),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(3),3)
call ForcePlayerStartLocation(Player(3),3)
call SetPlayerColor(Player(3),ConvertPlayerColor(3))
call SetPlayerRacePreference(Player(3),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(3),false)
call SetPlayerController(Player(3),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(4),4)
call ForcePlayerStartLocation(Player(4),4)
call SetPlayerColor(Player(4),ConvertPlayerColor(4))
call SetPlayerRacePreference(Player(4),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(4),false)
call SetPlayerController(Player(4),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(5),5)
call ForcePlayerStartLocation(Player(5),5)
call SetPlayerColor(Player(5),ConvertPlayerColor(5))
call SetPlayerRacePreference(Player(5),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(5),false)
call SetPlayerController(Player(5),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(6),6)
call ForcePlayerStartLocation(Player(6),6)
call SetPlayerColor(Player(6),ConvertPlayerColor(6))
call SetPlayerRacePreference(Player(6),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(6),false)
call SetPlayerController(Player(6),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(7),7)
call ForcePlayerStartLocation(Player(7),7)
call SetPlayerColor(Player(7),ConvertPlayerColor(7))
call SetPlayerRacePreference(Player(7),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(7),false)
call SetPlayerController(Player(7),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(8),8)
call ForcePlayerStartLocation(Player(8),8)
call SetPlayerColor(Player(8),ConvertPlayerColor(8))
call SetPlayerRacePreference(Player(8),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(8),false)
call SetPlayerController(Player(8),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(9),9)
call ForcePlayerStartLocation(Player(9),9)
call SetPlayerColor(Player(9),ConvertPlayerColor(9))
call SetPlayerRacePreference(Player(9),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(9),false)
call SetPlayerController(Player(9),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(10),10)
call ForcePlayerStartLocation(Player(10),10)
call SetPlayerColor(Player(10),ConvertPlayerColor(10))
call SetPlayerRacePreference(Player(10),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(10),false)
call SetPlayerController(Player(10),MAP_CONTROL_USER)
call SetPlayerStartLocation(Player(11),11)
call ForcePlayerStartLocation(Player(11),11)
call SetPlayerColor(Player(11),ConvertPlayerColor(11))
call SetPlayerRacePreference(Player(11),RACE_PREF_HUMAN)
call SetPlayerRaceSelectable(Player(11),false)
call SetPlayerController(Player(11),MAP_CONTROL_USER)
call InitCustomTeams()
call SetStartLocPrioCount(0,1)
call SetStartLocPrio(0,0,5,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(1,2)
call SetStartLocPrio(1,0,2,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(1,1,3,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(2,3)
call SetStartLocPrio(2,0,1,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(2,1,3,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(2,2,4,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(3,2)
call SetStartLocPrio(3,0,1,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(3,1,2,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(4,2)
call SetStartLocPrio(4,0,1,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(4,1,2,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(5,3)
call SetStartLocPrio(5,0,0,MAP_LOC_PRIO_LOW)
call SetStartLocPrio(5,1,2,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(5,2,4,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(6,2)
call SetStartLocPrio(6,0,8,MAP_LOC_PRIO_LOW)
call SetStartLocPrio(6,1,10,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(7,1)
call SetStartLocPrio(7,0,8,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(8,2)
call SetStartLocPrio(8,0,6,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(8,1,7,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(9,3)
call SetStartLocPrio(9,0,7,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(9,1,8,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(9,2,11,MAP_LOC_PRIO_HIGH)
call SetStartLocPrioCount(10,2)
call SetStartLocPrio(10,0,6,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(10,1,11,MAP_LOC_PRIO_LOW)
call SetStartLocPrioCount(11,2)
call SetStartLocPrio(11,0,9,MAP_LOC_PRIO_HIGH)
call SetStartLocPrio(11,1,10,MAP_LOC_PRIO_HIGH)
endfunction
function sa__Kananmuna__Data_onDestroy takes nothing returns boolean
local integer this=f__arg_this
local integer H=GetUnitUserData(s__Kananmuna__Data_u[this])
set s__HeroesData_alpha[H]=255
call UnitResetColor(s__Kananmuna__Data_u[this])
call UnitRemoveAbility(s__Kananmuna__Data_u[this],Kananmuna__BUFF_ID)
return true
endfunction
function sa__Stupefy__StupefySlideData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call DestroyEffect(s__Stupefy__StupefySlideData_e[this])
call PauseUnit(s__Stupefy__StupefySlideData_u[this],false)
return true
endfunction
function sa__Stupefy__StupefyData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call ClearTriggerStructA(s__Stupefy__StupefyData_impact[this])
call DestroyTrigger(s__Stupefy__StupefyData_impact[this])
return true
endfunction
function sa__Sektumsempra__SektumsempraBleedingData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
local integer H=GetUnitUserData(s__Sektumsempra__SektumsempraBleedingData_u[this])
set s__HeroesData_green[H]=255
set s__HeroesData_blue[H]=255
call UnitResetColor(s__Sektumsempra__SektumsempraBleedingData_u[this])
return true
endfunction
function sa__Sektumsempra__SektumsempraData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call ClearTriggerStructC(s__Sektumsempra__SektumsempraData_impact[this])
call DestroyTrigger(s__Sektumsempra__SektumsempraData_impact[this])
return true
endfunction
function sa__Imperio__ImperioData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call ClearTriggerStructC(s__Imperio__ImperioData_impact[this])
call DestroyTrigger(s__Imperio__ImperioData_impact[this])
return true
endfunction
function sa__Impedimenta__ImpedimentaFlyData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call SetUnitFlyHeight(s__Impedimenta__ImpedimentaFlyData_u[this],.0,.0)
call SetUnitPosition(s__Impedimenta__ImpedimentaFlyData_u[this],GetUnitX(s__Impedimenta__ImpedimentaFlyData_u[this]),GetUnitY(s__Impedimenta__ImpedimentaFlyData_u[this]))
call s__vector_destroy(s__Impedimenta__ImpedimentaFlyData_position[this])
call s__vector_destroy(s__Impedimenta__ImpedimentaFlyData_velocity[this])
return true
endfunction
function sa__Impedimenta__ImpedimentaData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call ClearTriggerStructB(s__Impedimenta__ImpedimentaData_impact[this])
call DestroyTrigger(s__Impedimenta__ImpedimentaData_impact[this])
return true
endfunction
function sa__Expelliarmus__FlyingWandData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call SetUnitX(s__Expelliarmus__FlyingWandData_u[this],STORAGE_AREA_X)
call SetUnitY(s__Expelliarmus__FlyingWandData_u[this],STORAGE_AREA_Y)
call SetItemPosition(s__Expelliarmus__FlyingWandData_w[this],s__vector_x[s__Expelliarmus__FlyingWandData_position[this]],s__vector_y[s__Expelliarmus__FlyingWandData_position[this]])
call s__vector_destroy(s__Expelliarmus__FlyingWandData_position[this])
call s__vector_destroy(s__Expelliarmus__FlyingWandData_velocity[this])
return true
endfunction
function sa__Expelliarmus__ExpelliarmusData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call ClearTriggerStructA(s__Expelliarmus__ExpelliarmusData_impact[this])
call DestroyTrigger(s__Expelliarmus__ExpelliarmusData_impact[this])
return true
endfunction
function sa__Crucio__Crucio_TortureData_onDestroy takes nothing returns boolean
local integer this=f__arg_this
call SetTextTagLifespan(s__Crucio__Crucio_TortureData_t1[this],6.)
call SetTextTagLifespan(s__Crucio__Crucio_TortureData_t2[this],8.)
call SetTextTagFadepoint(s__Crucio__Crucio_TortureData_t1[this],5.)
call SetTextTagFadepoint(s__Crucio__Crucio_TortureData_t2[this],6.)
call SetUnitAnimation(s__Crucio__Crucio_TortureData_torturer[this],"stand")
call PauseUnit(udg_units12[this],false)
call SetUnitFlyHeight(udg_units12[this],.0,.0)
return true
endfunction
function sa__Crucio__CrucioData_onDestroy takes nothing returns boolean
local integer this=udg_integer59
call ClearTriggerStructB(udg_triggers09[this])
call DestroyTrigger(udg_triggers09[this])
return true
endfunction
function sa__AvadaKedavra__AvadaKedavraData_onDestroy takes nothing returns boolean
local integer this=udg_integer59
call ClearTriggerStructA(udg_triggers08[this])
call DestroyTrigger(udg_triggers08[this])
return true
endfunction
function jasshelper__initstructs8942437 takes nothing returns nothing
set udg_trigger75=CreateTrigger()
call TriggerAddCondition(udg_trigger75,Condition(function sa__Kananmuna__Data_onDestroy))
set udg_trigger74=CreateTrigger()
call TriggerAddCondition(udg_trigger74,Condition(function sa__Stupefy__StupefySlideData_onDestroy))
set udg_trigger73=CreateTrigger()
call TriggerAddCondition(udg_trigger73,Condition(function sa__Stupefy__StupefyData_onDestroy))
set udg_trigger72=CreateTrigger()
call TriggerAddCondition(udg_trigger72,Condition(function sa__Sektumsempra__SektumsempraBleedingData_onDestroy))
set udg_trigger71=CreateTrigger()
call TriggerAddCondition(udg_trigger71,Condition(function sa__Sektumsempra__SektumsempraData_onDestroy))
set udg_trigger70=CreateTrigger()
call TriggerAddCondition(udg_trigger70,Condition(function sa__Imperio__ImperioData_onDestroy))
set udg_trigger69=CreateTrigger()
call TriggerAddCondition(udg_trigger69,Condition(function sa__Impedimenta__ImpedimentaFlyData_onDestroy))
set udg_trigger68=CreateTrigger()
call TriggerAddCondition(udg_trigger68,Condition(function sa__Impedimenta__ImpedimentaData_onDestroy))
set udg_trigger67=CreateTrigger()
call TriggerAddCondition(udg_trigger67,Condition(function sa__Expelliarmus__FlyingWandData_onDestroy))
set udg_trigger66=CreateTrigger()
call TriggerAddCondition(udg_trigger66,Condition(function sa__Expelliarmus__ExpelliarmusData_onDestroy))
set udg_trigger65=CreateTrigger()
call TriggerAddCondition(udg_trigger65,Condition(function sa__Crucio__Crucio_TortureData_onDestroy))
set udg_trigger64=CreateTrigger()
call TriggerAddCondition(udg_trigger64,Condition(function sa__Crucio__CrucioData_onDestroy))
set udg_trigger63=CreateTrigger()
call TriggerAddCondition(udg_trigger63,Condition(function sa__AvadaKedavra__AvadaKedavraData_onDestroy))
endfunction
function InitTrig_init takes nothing returns nothing
set udg_location01 = Location(.0,.0)
set udg_location02 = Location(.0,.0)
call ExecuteFunc("main2")
endfunction
Last edited: