//TESH.scrollpos=82
//TESH.alwaysfold=0
/////////////////////////////////////////////////////////////////////////////////////////////
//////////////// générateur de patrol /////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
globals
group Monsters = CreateGroup()
endglobals
function CreatePatrol takes integer mob, rect a, rect b returns nothing
local unit u = CreateUnit(Player(11), mob, GetRectCenterX(a), GetRectCenterY(a), 0)
call IssuePointOrder(u, "patrol", GetRectCenterX(b), GetRectCenterY(b))
call GroupAddUnit(Monsters, u)
set u = null
endfunction
//===========================================================================================
/////////////////////////////////////////////////////////////////////////////////////////////
///////////////// générateur de roc /////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
function CreateRoc takes integer mob, rect a returns nothing
local unit u = CreateUnit(Player(11), mob, GetRectCenterX(a), GetRectCenterY(a), 0)
call GroupAddUnit(Monsters, u)
set u = null
endfunction
//===========================================================================================
/////////////////////////////////////////////////////////////////////////////////////////////
//////////////// générateur de jumper /////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
globals
hashtable HASHTABLE_JUMPING = InitHashtable()
endglobals
function CreateJumper takes rect a, real height, real time returns nothing
local unit u = CreateUnit(Player(11), JUMP, GetRectCenterX(a), GetRectCenterY(a), 0)
call SaveReal(HASHTABLE_JUMPING, GetHandleId(u), 1, height)
call SaveReal(HASHTABLE_JUMPING, GetHandleId(u), 2, time)
call GroupAddUnit(Group_jump, u)
call GroupAddUnit(Monsters, u)
set u = null
endfunction
//===========================================================================================
/////////////////////////////////////////////////////////////////////////////////////////////
///////////////// générateur de téléporteur /////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
function CreateTeleporteurCouple takes rect a, rect b returns nothing
local unit u1 = CreateUnit(Player(11), TELEPORTEUR, GetRectCenterX(a), GetRectCenterY(a), 0)
local unit u2 = CreateUnit(Player(11), TELEPORTEUR, GetRectCenterX(b), GetRectCenterY(b), 0)
call GroupAddUnit(Group_teleporteur, u1)
call GroupAddUnit(Monsters, u1)
//call GroupAddUnit(Group_teleporteur, u2)
call GroupAddUnit(Monsters, u2)
call SetUnitCouple(u1, u2)
//call SetUnitFacingTp(u2, angle_tp_2)
set u1 = null
set u2 = null
endfunction
//===========================================================================================
/////////////////////////////////////////////////////////////////////////////////////////////
///////////////// téléporteur /////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
function TeleporteurUnit takes unit slider, unit teleport returns nothing
local real new_x = GetUnitX(GetUnitCouple(teleport))
local real new_y = GetUnitY(GetUnitCouple(teleport))
call SetUnitX(slider, new_x)
call SetUnitY(slider, new_y)
call SetCameraPositionForPlayer(GetOwningPlayer(slider), new_x, new_y)
endfunction
//===========================================================================================
/////////////////////////////////////////////////////////////////////////////////////////////
////////////////// mob walker /////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
function CreateSimpleMobWalker takes integer mob, real x1, real y1, real x2, real y2 returns nothing
local unit u = CreateUnit(Player(11), mob, x1, y1, 0)
call IssuePointOrder(u, "move", x2, y2)
call GroupAddUnit(Monsters, u)
set u = null
endfunction
//===========================================================================================
Name | Type | is_array | initial_value |
//TESH.scrollpos=6
//TESH.alwaysfold=0
library TimerUtils initializer init
//*********************************************************************
//* TimerUtils (red+blue+orange flavors for 1.24b+) 2.0
//* ----------
//*
//* To implement it , create a custom text trigger called TimerUtils
//* and paste the contents of this script there.
//*
//* To copy from a map to another, copy the trigger holding this
//* library to your map.
//*
//* (requires vJass) More scripts: htt://www.wc3c.net
//*
//* For your timer needs:
//* * Attaching
//* * Recycling (with double-free protection)
//*
//* set t=NewTimer() : Get a timer (alternative to CreateTimer)
//* set t=NewTimerEx(x) : Get a timer (alternative to CreateTimer), call
//* Initialize timer data as x, instead of 0.
//*
//* ReleaseTimer(t) : Relese a timer (alt to DestroyTimer)
//* SetTimerData(t,2) : Attach value 2 to timer
//* GetTimerData(t) : Get the timer's value.
//* You can assume a timer's value is 0
//* after NewTimer.
//*
//* Multi-flavor:
//* Set USE_HASH_TABLE to true if you don't want to complicate your life.
//*
//* If you like speed and giberish try learning about the other flavors.
//*
//********************************************************************
//================================================================
globals
//How to tweak timer utils:
// USE_HASH_TABLE = true (new blue)
// * SAFEST
// * SLOWEST (though hash tables are kind of fast)
//
// USE_HASH_TABLE = false, USE_FLEXIBLE_OFFSET = true (orange)
// * kinda safe (except there is a limit in the number of timers)
// * ALMOST FAST
//
// USE_HASH_TABLE = false, USE_FLEXIBLE_OFFSET = false (red)
// * THE FASTEST (though is only faster than the previous method
// after using the optimizer on the map)
// * THE LEAST SAFE ( you may have to tweak OFSSET manually for it to
// work)
//
private constant boolean USE_HASH_TABLE = true
private constant boolean USE_FLEXIBLE_OFFSET = false
private constant integer OFFSET = 0x100000
private integer VOFFSET = OFFSET
//Timers to preload at map init:
private constant integer QUANTITY = 256
//Changing this to something big will allow you to keep recycling
// timers even when there are already AN INCREDIBLE AMOUNT of timers in
// the stack. But it will make things far slower so that's probably a bad idea...
private constant integer ARRAY_SIZE = 8190
endglobals
//==================================================================================================
globals
private integer array data[ARRAY_SIZE]
private hashtable ht
endglobals
//It is dependent on jasshelper's recent inlining optimization in order to perform correctly.
function SetTimerData takes timer t, integer value returns nothing
static if(USE_HASH_TABLE) then
// new blue
call SaveInteger(ht,0,GetHandleId(t), value)
elseif (USE_FLEXIBLE_OFFSET) then
// orange
static if (DEBUG_MODE) then
if(GetHandleId(t)-VOFFSET<0) then
call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
endif
endif
set data[GetHandleId(t)-VOFFSET]=value
else
// new red
static if (DEBUG_MODE) then
if(GetHandleId(t)-OFFSET<0) then
call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
endif
endif
set data[GetHandleId(t)-OFFSET]=value
endif
endfunction
function GetTimerData takes timer t returns integer
static if(USE_HASH_TABLE) then
// new blue
return LoadInteger(ht,0,GetHandleId(t) )
elseif (USE_FLEXIBLE_OFFSET) then
// orange
static if (DEBUG_MODE) then
if(GetHandleId(t)-VOFFSET<0) then
call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
endif
endif
return data[GetHandleId(t)-VOFFSET]
else
// new red
static if (DEBUG_MODE) then
if(GetHandleId(t)-OFFSET<0) then
call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
endif
endif
return data[GetHandleId(t)-OFFSET]
endif
endfunction
//==========================================================================================
globals
private timer array tT[ARRAY_SIZE]
private integer tN = 0
private constant integer HELD=0x28829022
//use a totally random number here, the more improbable someone uses it, the better.
private boolean didinit = false
endglobals
private keyword init
//==========================================================================================
// I needed to decide between duplicating code ignoring the "Once and only once" rule
// and using the ugly textmacros. I guess textmacros won.
//
//! textmacro TIMERUTIS_PRIVATE_NewTimerCommon takes VALUE
// On second thought, no.
//! endtextmacro
function NewTimerEx takes integer value returns timer
if (tN==0) then
if (not didinit) then
//This extra if shouldn't represent a major performance drawback
//because QUANTITY rule is not supposed to be broken every day.
call init.evaluate()
set tN = tN - 1
else
//If this happens then the QUANTITY rule has already been broken, try to fix the
// issue, else fail.
debug call BJDebugMsg("NewTimer: Warning, Exceeding TimerUtils_QUANTITY, make sure all timers are getting recycled correctly")
set tT[0]=CreateTimer()
static if( not USE_HASH_TABLE) then
debug call BJDebugMsg("In case of errors, please increase it accordingly, or set TimerUtils_USE_HASH_TABLE to true")
static if( USE_FLEXIBLE_OFFSET) then
if (GetHandleId(tT[0])-VOFFSET<0) or (GetHandleId(tT[0])-VOFFSET>=ARRAY_SIZE) then
//all right, couldn't fix it
call BJDebugMsg("NewTimer: Unable to allocate a timer, you should probably set TimerUtils_USE_HASH_TABLE to true or fix timer leaks.")
return null
endif
else
if (GetHandleId(tT[0])-OFFSET<0) or (GetHandleId(tT[0])-OFFSET>=ARRAY_SIZE) then
//all right, couldn't fix it
call BJDebugMsg("NewTimer: Unable to allocate a timer, you should probably set TimerUtils_USE_HASH_TABLE to true or fix timer leaks.")
return null
endif
endif
endif
endif
else
set tN=tN-1
endif
call SetTimerData(tT[tN],value)
return tT[tN]
endfunction
function NewTimer takes nothing returns timer
return NewTimerEx(0)
endfunction
//==========================================================================================
function ReleaseTimer takes timer t returns nothing
if(t==null) then
debug call BJDebugMsg("Warning: attempt to release a null timer")
return
endif
if (tN==ARRAY_SIZE) then
debug call BJDebugMsg("Warning: Timer stack is full, destroying timer!!")
//stack is full, the map already has much more troubles than the chance of bug
call DestroyTimer(t)
else
call PauseTimer(t)
if(GetTimerData(t)==HELD) then
debug call BJDebugMsg("Warning: ReleaseTimer: Double free!")
return
endif
call SetTimerData(t,HELD)
set tT[tN]=t
set tN=tN+1
endif
endfunction
private function init takes nothing returns nothing
local integer i=0
local integer o=-1
local boolean oops = false
if ( didinit ) then
return
else
set didinit = true
endif
static if( USE_HASH_TABLE ) then
set ht = InitHashtable()
loop
exitwhen(i==QUANTITY)
set tT[i]=CreateTimer()
call SetTimerData(tT[i], HELD)
set i=i+1
endloop
set tN = QUANTITY
else
loop
set i=0
loop
exitwhen (i==QUANTITY)
set tT[i] = CreateTimer()
if(i==0) then
set VOFFSET = GetHandleId(tT[i])
static if(USE_FLEXIBLE_OFFSET) then
set o=VOFFSET
else
set o=OFFSET
endif
endif
if (GetHandleId(tT[i])-o>=ARRAY_SIZE) then
exitwhen true
endif
if (GetHandleId(tT[i])-o>=0) then
set i=i+1
endif
endloop
set tN = i
exitwhen(tN == QUANTITY)
set oops = true
exitwhen not USE_FLEXIBLE_OFFSET
debug call BJDebugMsg("TimerUtils_init: Failed a initialization attempt, will try again")
endloop
if(oops) then
static if ( USE_FLEXIBLE_OFFSET) then
debug call BJDebugMsg("The problem has been fixed.")
//If this message doesn't appear then there is so much
//handle id fragmentation that it was impossible to preload
//so many timers and the thread crashed! Therefore this
//debug message is useful.
elseif(DEBUG_MODE) then
call BJDebugMsg("There were problems and the new timer limit is "+I2S(i))
call BJDebugMsg("This is a rare ocurrence, if the timer limit is too low:")
call BJDebugMsg("a) Change USE_FLEXIBLE_OFFSET to true (reduces performance a little)")
call BJDebugMsg("b) or try changing OFFSET to "+I2S(VOFFSET) )
endif
endif
endif
endfunction
endlibrary
//TESH.scrollpos=0
//TESH.alwaysfold=0
library UnitUtils
globals
private hashtable Hash = InitHashtable()
endglobals
function SetUnitCouple takes unit u1, unit u2 returns nothing
call SaveUnitHandle(Hash, 0, GetHandleId(u1), u2)
//call SaveUnitHandle(Hash, 0, GetHandleId(u2), u1)
endfunction
function GetUnitCouple takes unit u returns unit
return LoadUnitHandle(Hash, 0, GetHandleId(u))
endfunction
endlibrary
//TESH.scrollpos=44
//TESH.alwaysfold=0
library Jump uses TimerUtils
globals
private timer T = CreateTimer()
private integer I = 0
private Parabole array P
endglobals
struct Parabole
unit u
real a
real b
real c
real incrementation
real x = 0
real max
static method Jumping takes nothing returns nothing
local integer i = 0
local Parabole p
loop
exitwhen i == I
set p = P[i]
set p.x = p.x + p.incrementation
if p.x < p.max then
call SetUnitFlyHeight(p.u, p.a * Pow(p.x, 2) + p.b * p.x + p.c, 0)
set i = i + 1
else
call SetUnitInvulnerable(Invis_unit_j[GetPlayerId(GetOwningPlayer(p.u))], false)
call p.destroy()
set I = I - 1
set P[i] = P[I]
call SetUnitFlyHeight(p.u, 0, 0.01)
if I == 0 then
call PauseTimer(T)
endif
endif
endloop
endmethod
endstruct
function JumpUnit takes unit slider, unit jumper returns nothing
local real height = LoadReal(HASHTABLE_JUMPING, GetHandleId(jumper), 1)
local real time = LoadReal(HASHTABLE_JUMPING, GetHandleId(jumper), 2)
local real a = (height * 4)/ (-1 * Pow(time, 2))
local real b = -1 * a * time
local real c = GetUnitFlyHeight(jumper)
local Parabole p = Parabole.create()
call SetUnitInvulnerable(Invis_unit_j[GetPlayerId(GetOwningPlayer(slider))], true)
set P[I] = p
set P[I].u = slider
set P[I].a = a
set P[I].b = b
set P[I].c = c
set P[I].incrementation = 0.01
set P[I].max = time
set I = I + 1
if I == 1 then
call TimerStart(T, 0.01, true, function Parabole.Jumping)
endif
endfunction
endlibrary
//TESH.scrollpos=6
//TESH.alwaysfold=0
library Cercle
globals
private timer T = CreateTimer()
Cercle array C
integer I = 0
endglobals
struct Cercle
real rayon
real speed
rect center
unit u
static method MoveCircle takes nothing returns nothing
local integer i = 0
local Cercle c
loop
exitwhen i == I
set c = C[i]
call SetUnitX(c.u, GetRectCenterX(c.center) + CosBJ(GetUnitFacing(c.u)) * c.rayon)
call SetUnitY(c.u, GetRectCenterY(c.center) + SinBJ(GetUnitFacing(c.u)) * c.rayon)
call SetUnitFacing(c.u, GetUnitFacing(c.u) + c.speed)
set i = i + 1
endloop
endmethod
endstruct
function CreateCercle takes integer mob, rect center, rect b, real speed returns nothing
local unit u = CreateUnit(Player(11), mob, GetRectCenterX(b), GetRectCenterY(b), 0)
local real dx = GetRectCenterX(b) - GetRectCenterX(center)
local real dy = GetRectCenterY(b) - GetRectCenterY(center)
local real rayon = SquareRoot(dx * dx + dy * dy)
local Cercle c = Cercle.create()
set C[I] = c
set C[I].rayon = rayon
set C[I].speed = speed
set C[I].center = center
set C[I].u = u
set I = I + 1
call GroupAddUnit(Monsters, u)
if I == 1 then
call TimerStart(T, 0.02, true, function Cercle.MoveCircle)
endif
set u = null
endfunction
function DestroyCercle takes Cercle c returns nothing
call Cercle.destroy(c)
endfunction
endlibrary
//TESH.scrollpos=6
//TESH.alwaysfold=0
globals
rect array LVL_DEPART
rect array LVL_END
endglobals
function Trig_init_depart_et_fin_Actions takes nothing returns nothing
local integer i = 0
set LVL_DEPART[0] = gg_rct_depart_lvl0
set LVL_DEPART[1] = gg_rct_depart_lvl1
set LVL_DEPART[2] = gg_rct_depart_lvl2
set LVL_DEPART[3] = gg_rct_depart_lvl3
set LVL_DEPART[4] = gg_rct_depart_lvl4
set LVL_DEPART[5] = gg_rct_depart_lvl5
set LVL_END[0] = gg_rct_fin_lvl0
set LVL_END[1] = gg_rct_fin_lvl1
set LVL_END[2] = gg_rct_fin_lvl2
set LVL_END[3] = gg_rct_fin_lvl3
set LVL_END[4] = gg_rct_fin_lvl4
set LVL_END[5] = gg_rct_fin_lvl5
loop
exitwhen i > NB_LVL
call TriggerRegisterEnterRectSimple(gg_trg_level_up, LVL_END[i])
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_init_depart_et_fin takes nothing returns nothing
set gg_trg_init_depart_et_fin = CreateTrigger( )
call TriggerAddAction( gg_trg_init_depart_et_fin, function Trig_init_depart_et_fin_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_init_value_Actions takes nothing returns nothing
local integer i = 0
// life ajouté une fois lvl complété.
set BONUS_LIFE_LVL[1] = 1
set BONUS_LIFE_LVL[2] = 2
set BONUS_LIFE_LVL[3] = 2
set BONUS_LIFE_LVL[4] = 3
set BONUS_LIFE_LVL[5] = 6
// couleurs
set Color[0] = "|CFFFF0303"
set Color[1] = "|CFF0042FF"
set Color[2] = "|CFF1BE6D8"
set Color[3] = "|CFF540081"
set Color[4] = "|CFFFFFF01"
set Color[5] = "|CFFFE8A0E"
set Color[6] = "|CFF20C000"
set Color[7] = "|CFFE55BB0"
set Color[8] = "|CFF959697"
set Color[9] = "|CFF7EBFF1"
set Color[10] = "|CFF106246"
set End_color = "|R"
// initialisation de group unit
loop
exitwhen i == 12
set Group_check_unit[i] = CreateGroup()
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_init_value takes nothing returns nothing
set gg_trg_init_value = CreateTrigger( )
call TriggerAddAction( gg_trg_init_value, function Trig_init_value_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_init_type_Actions takes nothing returns nothing
local integer i = 0
// terrains types
set Terrain_walk = GetTerrainType(GetRectCenterX(gg_rct_path_walk), GetRectCenterY(gg_rct_path_walk))
set Terrain_slide = GetTerrainType(GetRectCenterX(gg_rct_path_slide), GetRectCenterY(gg_rct_path_slide))
set Terrain_death[0] = GetTerrainType(GetRectCenterX(gg_rct_path_death_1), GetRectCenterY(gg_rct_path_death_1))
set Terrain_death[1] = GetTerrainType(GetRectCenterX(gg_rct_path_death_2), GetRectCenterY(gg_rct_path_death_2))
set Terrain_death[2] = GetTerrainType(GetRectCenterX(gg_rct_path_death_3), GetRectCenterY(gg_rct_path_death_3))
set Terrain_slide_speed = GetTerrainType(GetRectCenterX(gg_rct_path_slide_speed), GetRectCenterY(gg_rct_path_slide_speed))
set Terrain_slide_slow = GetTerrainType(GetRectCenterX(gg_rct_path_slide_slow), GetRectCenterY(gg_rct_path_slide_slow))
call StartSound(gg_snd_musique_fond)
// nombre de player
loop
exitwhen i > 11
if (GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING) then
set Is_activ_j[i] = true
set Nb_player = Nb_player + 1
endif
set i = i + 1
endloop
set i = 0
loop
exitwhen i == 11
if Is_activ_j[i] then
call SetCameraFieldForPlayer(Player(i), CAMERA_FIELD_TARGET_DISTANCE, 2600, 0.)
call SetCameraFieldForPlayer(Player(i), CAMERA_FIELD_ANGLE_OF_ATTACK, 290, 0.)
endif
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_init_type takes nothing returns nothing
set gg_trg_init_type = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_init_type, 0, false)
call TriggerAddAction( gg_trg_init_type, function Trig_init_type_Actions )
endfunction
//TESH.scrollpos=21
//TESH.alwaysfold=0
globals
rect array AREA_VISIBILITY
fogmodifier array Visibility[50][50]
fogmodifier Hide_all
endglobals
function Trig_visibilite_Actions takes nothing returns nothing
local integer i = 0
local integer j = 0
set AREA_VISIBILITY[0] = gg_rct_visibility_00
set AREA_VISIBILITY[1] = gg_rct_visibility_01
set AREA_VISIBILITY[2] = gg_rct_visibility_02
set AREA_VISIBILITY[3] = gg_rct_visibility_03
set AREA_VISIBILITY[4] = gg_rct_visibility_04
set AREA_VISIBILITY[5] = gg_rct_visibility_05
loop
exitwhen i == NB_LVL
loop
exitwhen j == 11
if Is_activ_j[j] then
set Visibility[i][j] = CreateFogModifierRect(Player(j), FOG_OF_WAR_VISIBLE, AREA_VISIBILITY[i], false, false)
endif
set j = j + 1
endloop
set j = 0
set i = i + 1
endloop
set j = 0
loop
exitwhen j == 11
if Is_activ_j[j] then
call FogModifierStart(CreateFogModifierRect(Player(j), FOG_OF_WAR_MASKED, GetPlayableMapRect(), false, false))
call FogModifierStart(Visibility[0][j])
endif
set j = j + 1
endloop
endfunction
//===========================================================================
function InitTrig_visibilite takes nothing returns nothing
set gg_trg_visibilite = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_visibilite, 0.1, false)
call TriggerAddAction( gg_trg_visibilite, function Trig_visibilite_Actions )
endfunction
//TESH.scrollpos=35
//TESH.alwaysfold=0
globals
boolean array Is_activ_j
integer HEROS = 'E000'
integer INVIS_UNIT = 'E001'
unit array Heros_j
unit array Invis_unit_j
integer Nb_player = 0
endglobals
function Trig_create_heros_Actions takes nothing returns nothing
local real dist_angle = 360 / Nb_player
local real dist_unit = 30
local real rayon
local real ordonate
local integer i = 0
local real angle = 0
set ordonate = SinBJ((180 - dist_angle) / 2) * dist_unit
if SinBJ(dist_angle) == 0 or ordonate == 0 then
set rayon = dist_unit
else
set rayon = ordonate / SinBJ(dist_angle)
endif
set Slide_j[0] = gg_trg_slide_j0
set Slide_j[1] = gg_trg_slide_j1
set Slide_j[2] = gg_trg_slide_j2
set Slide_j[3] = gg_trg_slide_j3
set Slide_j[4] = gg_trg_slide_j4
set Slide_j[5] = gg_trg_slide_j5
set Slide_j[6] = gg_trg_slide_j6
set Slide_j[7] = gg_trg_slide_j7
set Slide_j[8] = gg_trg_slide_j8
set Slide_j[9] = gg_trg_slide_j9
set Slide_j[10] = gg_trg_slide_j10
loop
exitwhen i > 11
if Is_activ_j[i] then
set Heros_j[i] = CreateUnit(Player(i), HEROS, GetRectCenterX(LVL_DEPART[0]) + rayon * CosBJ(angle), GetRectCenterY(LVL_DEPART[0]) + rayon * SinBJ(angle), 0)
set Invis_unit_j[i] = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), INVIS_UNIT, GetRectCenterX(LVL_DEPART[0]) + rayon * CosBJ(angle), GetRectCenterY(LVL_DEPART[0]) + rayon * SinBJ(angle), 0)
call TriggerRegisterTimerEvent(Slide_j[i], 0.01, true)
call ShowUnit(Heros_j[i], false)
call ShowUnit(Heros_j[i], true)
call SetUnitPathing(Invis_unit_j[i], false)
call SetUnitPathing(Heros_j[i], false)
call SetUnitUserData(Invis_unit_j[i], i)
call SelectUnitAddForPlayer(Heros_j[i], Player(i))
set angle = angle + dist_angle
endif
set i = i + 1
endloop
call EnableTrigger(gg_trg_checkunit)
endfunction
//===========================================================================
function InitTrig_create_heros takes nothing returns nothing
set gg_trg_create_heros = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_create_heros, 1, false)
call TriggerAddAction( gg_trg_create_heros, function Trig_create_heros_Actions )
endfunction
//TESH.scrollpos=5
//TESH.alwaysfold=0
globals
integer Current_lvl = 0
integer Life = 2
integer array BONUS_LIFE_LVL
integer NB_LVL = 5
endglobals
function LevelUpCondition takes nothing returns boolean
local integer i = GetUnitUserData(GetTriggerUnit())
return IsUnit(GetTriggerUnit(), Invis_unit_j[i])
endfunction
function Kill takes nothing returns nothing
call RemoveUnit(GetEnumUnit())
endfunction
function Trig_level_up_Actions takes nothing returns nothing
local integer i = 0
local real X
local real Y
call RemoveRegion(GetTriggeringRegion())
set Current_lvl = Current_lvl + 1
set X = GetRectCenterX(LVL_DEPART[Current_lvl])
set Y = GetRectCenterY(LVL_DEPART[Current_lvl])
set Life = Life + BONUS_LIFE_LVL[Current_lvl]
call LeaderboardSetPlayerItemValueBJ( Player(0), Ldb, Life)
loop
exitwhen i == 11
if Is_activ_j[i] then
if IsUnitDeadBJ(Heros_j[i]) then
call ReviveHero(Heros_j[i], X, Y, false)
call ReviveHero(Invis_unit_j[i], X, Y, false)
call PauseUnit(Heros_j[i], true)
elseif Invis_unit_j[i] != GetTriggerUnit() then
call SetUnitX(Heros_j[i], X)
call SetUnitY(Heros_j[i], Y)
call PauseUnit(Heros_j[i], true)
endif
endif
set i = i + 1
endloop
set i = 0
loop
exitwhen i == 11
if Is_activ_j[i] then
call FogModifierStart(Visibility[Current_lvl][i])
endif
set i = i + 1
endloop
set i = 0
loop
exitwhen i == I
call DestroyCercle(C[i])
set i = i + 1
endloop
set I = 0
call StartSound(gg_snd_finish_lvl)
call ForGroup(Monsters, function Kill)
call TriggerExecute(PATROL_LVL[Current_lvl])
call PolledWait(2)
set i = 0
loop
exitwhen i == 11
if Is_activ_j[i] and Heros_j[i] != GetTriggerUnit() then
call PauseUnit(Heros_j[i], false)
endif
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_level_up takes nothing returns nothing
set gg_trg_level_up = CreateTrigger( )
call TriggerAddCondition(gg_trg_level_up, Filter(function LevelUpCondition))
call TriggerAddAction( gg_trg_level_up, function Trig_level_up_Actions )
endfunction
//TESH.scrollpos=200
//TESH.alwaysfold=0
globals
boolean Test_mode = false
string array Color
string End_color
endglobals
function Commandes takes nothing returns nothing
local string trigger_string = GetEventPlayerChatString()
local integer nb_car = StringLength(trigger_string)
local string name = ""
local string car
local integer i
local string param = ""
local integer trg_player
local real hauteur
local integer playerIndex
local player indexPlayer
local integer invis
local real angle
local real time_on_ice
set car = SubStringBJ(trigger_string, 2, 2)
set i = 2
loop
exitwhen i > nb_car or car == " "
set name = name + car
set i = i + 1
set car = SubStringBJ(trigger_string, i, i)
endloop
if car == " " then
loop
exitwhen i > nb_car
set i = i + 1
set car = SubStringBJ(trigger_string, i, i)
set param = param + car
endloop
endif
if name == "kill" or name == "kl" or name == "kick" or name == "kc" then
if GetTriggerPlayer() == Player(0) then
if param == "red" or param == "rd" then
set trg_player = 0
elseif param == "blue" or param == "be" then
set trg_player = 1
elseif param == "teal" or param == "tl" then
set trg_player = 2
elseif param == "purple" or param == "pe" then
set trg_player = 3
elseif param == "orange" or param == "oe" then
set trg_player = 5
elseif param == "yellow" or param == "yw" then
set trg_player = 4
elseif param == "green" or param == "gn" then
set trg_player = 6
elseif param == "pink" or param == "pk" then
set trg_player = 7
elseif param == "gray" or param == "gy" then
set trg_player = 8
elseif param == "lightblue" or param == "lb" then
set trg_player = 9
elseif param == "darkgreen" or param == "gn" then
set trg_player = 10
endif
endif
if param == "" then
set trg_player = GetPlayerId(GetTriggerPlayer())
endif
if name == "kill" or name == "kl" then
call KillUnit(Invis_unit_j[trg_player])
endif
if name == "kick" or name == "kc" then
call CustomDefeatBJ(Player(trg_player), "Noob !")
endif
elseif (name == "cf" or name == "cameraField") and param != "" then
set trg_player = GetPlayerId(GetTriggerPlayer())
set hauteur = S2R(param)
if hauteur != 0. then
call SetCameraFieldForPlayer(Player(trg_player), CAMERA_FIELD_TARGET_DISTANCE, hauteur, 0.)
endif
elseif name == "red" or name == "rd" then
set trg_player = 0
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "blue" or name == "be" then
set trg_player = 1
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "teal" or name == "tl" then
set trg_player = 2
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "purple" or name == "pe" then
set trg_player = 3
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "orange" or name == "oe" then
set trg_player = 5
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "yellow" or name == "yw" then
set trg_player = 4
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "green" or name == "gn" then
set trg_player = 6
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "pink" or name == "pk" then
set trg_player = 7
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "gray" or name == "gy" then
set trg_player = 8
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "lightblue" or name == "lb" then
set trg_player = 9
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "darkgreen" or name == "gn" then
set trg_player = 10
call SetUnitColor(Heros_j[GetPlayerId(GetTriggerPlayer())], ConvertPlayerColor(trg_player))
elseif name == "afk" then
if param == "on" then
set playerIndex = 0
loop
set indexPlayer = Player(playerIndex)
if (PlayersAreCoAllied(GetTriggerPlayer(), indexPlayer) and GetTriggerPlayer() != indexPlayer) then
call SetPlayerAlliance(GetTriggerPlayer(), indexPlayer, ALLIANCE_SHARED_VISION, true)
call SetPlayerAlliance(GetTriggerPlayer(), indexPlayer, ALLIANCE_SHARED_CONTROL, true)
endif
set playerIndex = playerIndex + 1
exitwhen playerIndex == bj_MAX_PLAYERS
endloop
elseif param == "off" then
set playerIndex = 0
loop
set indexPlayer = Player(playerIndex)
if (PlayersAreCoAllied(GetTriggerPlayer(), indexPlayer) and GetTriggerPlayer() != indexPlayer) then
call SetPlayerAlliance(GetTriggerPlayer(), indexPlayer, ALLIANCE_SHARED_VISION, false)
call SetPlayerAlliance(GetTriggerPlayer(), indexPlayer, ALLIANCE_SHARED_CONTROL, false)
endif
set playerIndex = playerIndex + 1
exitwhen playerIndex == bj_MAX_PLAYERS
endloop
endif
elseif name == "invis" then
if param == null then
set invis = 0
else
set invis = S2I(param)
endif
set trg_player = GetPlayerId(GetTriggerPlayer())
call SetUnitVertexColor(Heros_j[trg_player], 100, 100, 100, invis)
elseif (name == "aoa" or name == "angleOfAttack") and param != null then
set angle = S2R(param)
call SetCameraFieldForPlayer(GetTriggerPlayer(), CAMERA_FIELD_ANGLE_OF_ATTACK, angle, 0.)
/*elseif name == "apm" or name == "actionPerMinut" then
set trg_player = GetPlayerId(GetTriggerPlayer())
if param == "" then
set time_on_ice = Time_on_ice[trg_player]/60
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, Color[trg_player] + " Clics : " + I2S(R2I(Apm_j[trg_player])) + " Time : " + I2S(R2I(Time_on_ice[trg_player])) + " apm : " + I2S(R2I(Apm_j[trg_player]/time_on_ice)) + End_color)
elseif param == "a" or param == "all" then
set i = 0
loop
exitwhen i == 10
if Is_activ_j[i] == true then
set time_on_ice = Time_on_ice[i]/60
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, Color[i] + " " + GetPlayerName(Player(i)) + " : Clics : " + I2S(R2I(Apm_j[i])) + " Time : " + I2S(R2I(Time_on_ice[i])) + " apm : " + I2S(R2I(Apm_j[i]/time_on_ice)) + End_color)
endif
set i = i + 1
endloop
endif*/
elseif (name == "an" or name == "animation") and param != "" then
set trg_player = GetPlayerId(GetTriggerPlayer())
call SetUnitAnimation(Heros_j[trg_player], param)
elseif name == "help" then
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "Liste des commandes :")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, " ")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "crt " + End_color + Color[1] + "m" + End_color + " : créer une patrol classique.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "crt " + End_color + Color[1] + "r" + End_color + " : créer un mob fixe.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "aoa " + End_color + Color[1] + "<value>" + End_color + " : modifie l'angle de vue de la caméra de la valeur choisi.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "apm " + End_color + Color[1] + "a" + End_color + " : paramètre facultatif. Affiche les stats de jeu du commandeur ou de tout le monde.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "cf " + End_color + Color[1] + "<value>" + End_color + " : modifie le zoom de la valeur souhaité.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "an " + End_color + Color[1] + "NomAnimation" + End_color + " : fait exécuter au héros le nom de l'animation.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "<couleur> " + End_color + Color[1] + "" + End_color + " : change la couleur du héros.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "afk " + End_color + Color[1] + "on/off" + End_color + " : donne le contrôle de son unité à tout le monde ou le retire.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 20, "-" + Color[0] + "invis " + End_color + Color[1] + "<value>" + End_color + " rend plus ou moins invisible une unité (mal fait).")
elseif GetPlayerName(GetTriggerPlayer()) == "fulldragon" then
if name == "test" then
set Test_mode = true
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 5, "test mode on")
if param == "life" then
set Life = 9999
call LeaderboardSetPlayerItemValueBJ( Player(0), Ldb, Life)
endif
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 5, "cheat accepted")
elseif name == "el" then
call TriggerExecute(gg_trg_level_up)
endif
endif
endfunction
function InitTrig_Commandes takes nothing returns nothing
set gg_trg_Commandes = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(0), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(1), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(2), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(3), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(4), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(5), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(6), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(7), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(8), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(9), "-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(10),"-", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Commandes, Player(11),"-", false )
call TriggerAddAction( gg_trg_Commandes, function Commandes)
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_invis_unit_die_Conditions takes nothing returns boolean
local unit u=GetTriggerUnit()
return GetUnitTypeId(u) == INVIS_UNIT
endfunction
function ReviveHeros takes nothing returns nothing
local real X = GetRectCenterX(LVL_DEPART[Current_lvl])
local real Y = GetRectCenterY(LVL_DEPART[Current_lvl])
local integer i = 0
set Life = Life - 1
if Life >= 0 then
loop
exitwhen i > 11
if Is_activ_j[i] then
call ReviveHero(Heros_j[i], X, Y, false)
call ReviveHero(Invis_unit_j[i], X, Y, false)
call SetUnitPathing(Invis_unit_j[i], false)
call SetUnitPathing(Heros_j[i], false)
call ShowUnit(Invis_unit_j[i], true)
call SelectUnitAddForPlayer(Heros_j[i], Player(i))
endif
set i = i + 1
endloop
call LeaderboardSetPlayerItemValueBJ( Player(0), Ldb, Life)
else
endif
endfunction
function Trig_invis_unit_die_Actions takes nothing returns nothing
local unit u=GetTriggerUnit()
local integer n = GetUnitUserData(u)
local effect kill
local integer i = 0
call KillUnit( Heros_j[n] )
call ShowUnit(u, false)
call DisableTrigger(Slide_j[n]) // et désactive.
set kill = AddSpecialEffect("Objects\\Spawnmodels\\NightElf\\NECancelDeath\\NECancelDeath.mdl", GetUnitX(u), GetUnitY(u))
call DestroyEffect(kill)
loop
exitwhen IsUnitAliveBJ(Heros_j[i]) or i > 11
set i = i + 1
endloop
if i > 11 then
call StartSound(gg_snd_all_dead)
call PolledWait(2)
call ReviveHeros()
else
call StartSound(gg_snd_unit_dead)
endif
set u=null
endfunction
//===========================================================================
function InitTrig_invis_unit_die takes nothing returns nothing
set gg_trg_invis_unit_die = CreateTrigger( )
call TriggerRegisterPlayerUnitEventSimple( gg_trg_invis_unit_die, Player(PLAYER_NEUTRAL_PASSIVE), EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_invis_unit_die, Condition( function Trig_invis_unit_die_Conditions ) )
call TriggerAddAction( gg_trg_invis_unit_die, function Trig_invis_unit_die_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
library RevealPath initializer Init
globals
private integer J = 0
endglobals
private function RevealPathCondition takes nothing returns boolean
local integer i = GetUnitUserData(GetTriggerUnit())
return IsUnit(GetTriggerUnit(), Invis_unit_j[i])
endfunction
private function RevealPath takes rect a, integer terrain returns nothing
call SetTerrainType(GetRectCenterX(a), GetRectCenterY(a), terrain, 0, 1, 1)
endfunction
private function Trig_lvl_1_Actions takes nothing returns nothing
local integer i = 0
set J = J + 1
call RemoveRegion(GetTriggeringRegion())
call AddSpecialEffect("Abilities\\Weapons\\BatTrollMissile\\BatTrollMissile.mdl", GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()))
if J == 3 then
call RevealPath(gg_rct_revealpath_lvl1_1, Terrain_slide)
call RevealPath(gg_rct_revealpath_lvl1_2, Terrain_slide)
call RevealPath(gg_rct_revealpath_lvl1_3, Terrain_slide)
endif
endfunction
//===========================================================================
private function Init takes nothing returns nothing
set gg_trg_lvl_1 = CreateTrigger( )
call TriggerRegisterEnterRectSimple(gg_trg_lvl_1, gg_rct_unlock_lvl1_1)
call TriggerRegisterEnterRectSimple(gg_trg_lvl_1, gg_rct_unlock_lvl1_2)
call TriggerRegisterEnterRectSimple(gg_trg_lvl_1, gg_rct_unlock_lvl1_3)
call TriggerAddAction( gg_trg_lvl_1, function Trig_lvl_1_Actions )
call TriggerAddCondition(gg_trg_lvl_1, Filter(function RevealPathCondition))
endfunction
endlibrary
//TESH.scrollpos=131
//TESH.alwaysfold=0
globals
trigger array PATROL_LVL
integer MOB = 'h000'
integer ROC = 'e001'
endglobals
function Trig_patrol_lvl0_Actions takes nothing returns nothing
call CreatePatrol(MOB, gg_rct_patrol_lvl0_00a, gg_rct_patrol_lvl0_00b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_01a, gg_rct_patrol_lvl0_01b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_02a, gg_rct_patrol_lvl0_02b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_03a, gg_rct_patrol_lvl0_03b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_04a, gg_rct_patrol_lvl0_04b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_05a, gg_rct_patrol_lvl0_05b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_06a, gg_rct_patrol_lvl0_06b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_07a, gg_rct_patrol_lvl0_07b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_08a, gg_rct_patrol_lvl0_08b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_09a, gg_rct_patrol_lvl0_09b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_10a, gg_rct_patrol_lvl0_10b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_11a, gg_rct_patrol_lvl0_11b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_12a, gg_rct_patrol_lvl0_12b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_13a, gg_rct_patrol_lvl0_13b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_14a, gg_rct_patrol_lvl0_14b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_15a, gg_rct_patrol_lvl0_15b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_16a, gg_rct_patrol_lvl0_16b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_17a, gg_rct_patrol_lvl0_17b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_18a, gg_rct_patrol_lvl0_18b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_19a, gg_rct_patrol_lvl0_19b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_20a, gg_rct_patrol_lvl0_20b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_21a, gg_rct_patrol_lvl0_21b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_22a, gg_rct_patrol_lvl0_22b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_23a, gg_rct_patrol_lvl0_23b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_24a, gg_rct_patrol_lvl0_24b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_25a, gg_rct_patrol_lvl0_25b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_26a, gg_rct_patrol_lvl0_26b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_27a, gg_rct_patrol_lvl0_27b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_28a, gg_rct_patrol_lvl0_28b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_29a, gg_rct_patrol_lvl0_29b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_30a, gg_rct_patrol_lvl0_30b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_31a, gg_rct_patrol_lvl0_31b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_32a, gg_rct_patrol_lvl0_32b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_33a, gg_rct_patrol_lvl0_33b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_34a, gg_rct_patrol_lvl0_34b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_35a, gg_rct_patrol_lvl0_35b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_36a, gg_rct_patrol_lvl0_36b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_37a, gg_rct_patrol_lvl0_37b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_38a, gg_rct_patrol_lvl0_38b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_39a, gg_rct_patrol_lvl0_39b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_40a, gg_rct_patrol_lvl0_40b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_41a, gg_rct_patrol_lvl0_41b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_42a, gg_rct_patrol_lvl0_42b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_43a, gg_rct_patrol_lvl0_43b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_44a, gg_rct_patrol_lvl0_44b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_45a, gg_rct_patrol_lvl0_45b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_46a, gg_rct_patrol_lvl0_46b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_47a, gg_rct_patrol_lvl0_47b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_48a, gg_rct_patrol_lvl0_48b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_49a, gg_rct_patrol_lvl0_49b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_50a, gg_rct_patrol_lvl0_50b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_51a, gg_rct_patrol_lvl0_51b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_52a, gg_rct_patrol_lvl0_52b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_53a, gg_rct_patrol_lvl0_53b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_54a, gg_rct_patrol_lvl0_54b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_55a, gg_rct_patrol_lvl0_55b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_56a, gg_rct_patrol_lvl0_56b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_57a, gg_rct_patrol_lvl0_57b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_58a, gg_rct_patrol_lvl0_58b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_59a, gg_rct_patrol_lvl0_59b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_60a, gg_rct_patrol_lvl0_60b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_61a, gg_rct_patrol_lvl0_61b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_62a, gg_rct_patrol_lvl0_62b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_63a, gg_rct_patrol_lvl0_63b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_64a, gg_rct_patrol_lvl0_64b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_65a, gg_rct_patrol_lvl0_65b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_66a, gg_rct_patrol_lvl0_66b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_67a, gg_rct_patrol_lvl0_67b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_68a, gg_rct_patrol_lvl0_68b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_69a, gg_rct_patrol_lvl0_69b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_70a, gg_rct_patrol_lvl0_70b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_71a, gg_rct_patrol_lvl0_71b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_72a, gg_rct_patrol_lvl0_72b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_73a, gg_rct_patrol_lvl0_73b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_74a, gg_rct_patrol_lvl0_74b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_75a, gg_rct_patrol_lvl0_75b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_76a, gg_rct_patrol_lvl0_76b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_77a, gg_rct_patrol_lvl0_77b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_78a, gg_rct_patrol_lvl0_78b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_79a, gg_rct_patrol_lvl0_79b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_84a, gg_rct_patrol_lvl0_84b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_85a, gg_rct_patrol_lvl0_85b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_86a, gg_rct_patrol_lvl0_86b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_87a, gg_rct_patrol_lvl0_87b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_88a, gg_rct_patrol_lvl0_88b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_89a, gg_rct_patrol_lvl0_89b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_90a, gg_rct_patrol_lvl0_90b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_91a, gg_rct_patrol_lvl0_91b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_92a, gg_rct_patrol_lvl0_92b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_93a, gg_rct_patrol_lvl0_93b)
call CreatePatrol(MOB, gg_rct_patrol_lvl0_94a, gg_rct_patrol_lvl0_94b)
call CreateRoc(ROC, gg_rct_roc_lvl0_00)
call CreateRoc(ROC, gg_rct_roc_lvl0_01)
call CreateRoc(ROC, gg_rct_roc_lvl0_02)
call CreateRoc(ROC, gg_rct_roc_lvl0_03)
call CreateRoc(ROC, gg_rct_roc_lvl0_04)
call CreateRoc(ROC, gg_rct_roc_lvl0_05)
call CreateRoc(ROC, gg_rct_roc_lvl0_06)
call CreateRoc(ROC, gg_rct_roc_lvl0_07)
call CreateRoc(ROC, gg_rct_roc_lvl0_08)
call CreateRoc(ROC, gg_rct_roc_lvl0_09)
call CreateRoc(ROC, gg_rct_roc_lvl0_10)
call CreateRoc(ROC, gg_rct_roc_lvl0_11)
call CreateRoc(ROC, gg_rct_roc_lvl0_12)
call CreateRoc(ROC, gg_rct_roc_lvl0_13)
call CreateRoc(ROC, gg_rct_roc_lvl0_14)
call CreateRoc(ROC, gg_rct_roc_lvl0_15)
call CreateRoc(ROC, gg_rct_roc_lvl0_16)
call CreateRoc(ROC, gg_rct_roc_lvl0_17)
call CreateRoc(ROC, gg_rct_roc_lvl0_18)
call CreateRoc(ROC, gg_rct_roc_lvl0_19)
call CreateRoc(ROC, gg_rct_roc_lvl0_20)
call CreateRoc(ROC, gg_rct_roc_lvl0_21)
call CreateRoc(ROC, gg_rct_roc_lvl0_22)
call CreateRoc(ROC, gg_rct_roc_lvl0_23)
call CreateRoc(ROC, gg_rct_roc_lvl0_24)
call CreateRoc(ROC, gg_rct_roc_lvl0_25)
call CreateRoc(ROC, gg_rct_roc_lvl0_26)
call CreateRoc(ROC, gg_rct_roc_lvl0_27)
call CreateRoc(ROC, gg_rct_roc_lvl0_28)
call CreateRoc(ROC, gg_rct_roc_lvl0_29)
call CreateRoc(ROC, gg_rct_roc_lvl0_30)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_04a, gg_rct_tp_lvl0_04b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_09a, gg_rct_tp_lvl0_09b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_10a, gg_rct_tp_lvl0_10b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_11a, gg_rct_tp_lvl0_11b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_12a, gg_rct_tp_lvl0_12b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_13a, gg_rct_tp_lvl0_13b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_14a, gg_rct_tp_lvl0_14b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_15a, gg_rct_tp_lvl0_15b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_16a, gg_rct_tp_lvl0_16b)
call CreateTeleporteurCouple(gg_rct_tp_lvl0_17a, gg_rct_tp_lvl0_17b)
call CreateCercle(MOB, gg_rct_circle_lvl0_0a, gg_rct_circle_lvl0_0b, 5)
endfunction
//===========================================================================
function InitTrig_patrol_lvl0 takes nothing returns nothing
set gg_trg_patrol_lvl0 = CreateTrigger( )
set PATROL_LVL[0] = gg_trg_patrol_lvl0
call TriggerRegisterTimerEvent(gg_trg_patrol_lvl0, 0, false)
call TriggerAddAction( gg_trg_patrol_lvl0, function Trig_patrol_lvl0_Actions )
endfunction
//TESH.scrollpos=179
//TESH.alwaysfold=0
function Trig_patrol_lvl1_Actions takes nothing returns nothing
call CreatePatrol(MOB, gg_rct_patrol_lvl1_000a, gg_rct_patrol_lvl1_000b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_001a, gg_rct_patrol_lvl1_001b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_002a, gg_rct_patrol_lvl1_002b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_003a, gg_rct_patrol_lvl1_003b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_004a, gg_rct_patrol_lvl1_004b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_005a, gg_rct_patrol_lvl1_005b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_006a, gg_rct_patrol_lvl1_006b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_007a, gg_rct_patrol_lvl1_007b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_008a, gg_rct_patrol_lvl1_008b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_009a, gg_rct_patrol_lvl1_009b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_010a, gg_rct_patrol_lvl1_010b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_011a, gg_rct_patrol_lvl1_011b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_012a, gg_rct_patrol_lvl1_012b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_013a, gg_rct_patrol_lvl1_013b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_014a, gg_rct_patrol_lvl1_014b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_015a, gg_rct_patrol_lvl1_015b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_016a, gg_rct_patrol_lvl1_016b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_017a, gg_rct_patrol_lvl1_017b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_018a, gg_rct_patrol_lvl1_018b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_019a, gg_rct_patrol_lvl1_019b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_020a, gg_rct_patrol_lvl1_020b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_021a, gg_rct_patrol_lvl1_021b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_022a, gg_rct_patrol_lvl1_022b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_023a, gg_rct_patrol_lvl1_023b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_024a, gg_rct_patrol_lvl1_024b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_025a, gg_rct_patrol_lvl1_025b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_026a, gg_rct_patrol_lvl1_026b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_027a, gg_rct_patrol_lvl1_027b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_028a, gg_rct_patrol_lvl1_028b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_029a, gg_rct_patrol_lvl1_029b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_030a, gg_rct_patrol_lvl1_030b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_031a, gg_rct_patrol_lvl1_031b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_032a, gg_rct_patrol_lvl1_032b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_033a, gg_rct_patrol_lvl1_033b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_034a, gg_rct_patrol_lvl1_034b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_035a, gg_rct_patrol_lvl1_035b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_036a, gg_rct_patrol_lvl1_036b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_037a, gg_rct_patrol_lvl1_037b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_038a, gg_rct_patrol_lvl1_038b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_039a, gg_rct_patrol_lvl1_039b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_040a, gg_rct_patrol_lvl1_040b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_041a, gg_rct_patrol_lvl1_041b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_042a, gg_rct_patrol_lvl1_042b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_043a, gg_rct_patrol_lvl1_043b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_044a, gg_rct_patrol_lvl1_044b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_045a, gg_rct_patrol_lvl1_045b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_046a, gg_rct_patrol_lvl1_046b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_047a, gg_rct_patrol_lvl1_047b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_048a, gg_rct_patrol_lvl1_048b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_049a, gg_rct_patrol_lvl1_049b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_050a, gg_rct_patrol_lvl1_050b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_051a, gg_rct_patrol_lvl1_051b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_052a, gg_rct_patrol_lvl1_052b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_053a, gg_rct_patrol_lvl1_053b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_054a, gg_rct_patrol_lvl1_054b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_055a, gg_rct_patrol_lvl1_055b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_056a, gg_rct_patrol_lvl1_056b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_057a, gg_rct_patrol_lvl1_057b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_058a, gg_rct_patrol_lvl1_058b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_059a, gg_rct_patrol_lvl1_059b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_060a, gg_rct_patrol_lvl1_060b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_061a, gg_rct_patrol_lvl1_061b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_062a, gg_rct_patrol_lvl1_062b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_063a, gg_rct_patrol_lvl1_063b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_064a, gg_rct_patrol_lvl1_064b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_065a, gg_rct_patrol_lvl1_065b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_066a, gg_rct_patrol_lvl1_066b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_067a, gg_rct_patrol_lvl1_067b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_068a, gg_rct_patrol_lvl1_068b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_069a, gg_rct_patrol_lvl1_069b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_070a, gg_rct_patrol_lvl1_070b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_071a, gg_rct_patrol_lvl1_071b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_072a, gg_rct_patrol_lvl1_072b)
call CreatePatrol(MOB, gg_rct_patrol_lvl1_073a, gg_rct_patrol_lvl1_073b)
call CreateRoc(ROC, gg_rct_roc_lvl1_00)
call CreateRoc(ROC, gg_rct_roc_lvl1_01)
call CreateRoc(ROC, gg_rct_roc_lvl1_02)
call CreateRoc(ROC, gg_rct_roc_lvl1_03)
call CreateRoc(ROC, gg_rct_roc_lvl1_04)
call CreateRoc(ROC, gg_rct_roc_lvl1_05)
call CreateRoc(ROC, gg_rct_roc_lvl1_06)
call CreateRoc(ROC, gg_rct_roc_lvl1_07)
call CreateRoc(ROC, gg_rct_roc_lvl1_08)
call CreateRoc(ROC, gg_rct_roc_lvl1_09)
call CreateRoc(ROC, gg_rct_roc_lvl1_10)
call CreateRoc(ROC, gg_rct_roc_lvl1_11)
call CreateRoc(ROC, gg_rct_roc_lvl1_12)
call CreateRoc(ROC, gg_rct_roc_lvl1_13)
call CreateRoc(ROC, gg_rct_roc_lvl1_14)
call CreateRoc(ROC, gg_rct_roc_lvl1_15)
call CreateRoc(ROC, gg_rct_roc_lvl1_16)
call CreateRoc(ROC, gg_rct_roc_lvl1_17)
call CreateRoc(ROC, gg_rct_roc_lvl1_18)
call CreateRoc(ROC, gg_rct_roc_lvl1_19)
call CreateRoc(ROC, gg_rct_roc_lvl1_20)
call CreateRoc(ROC, gg_rct_roc_lvl1_21)
call CreateRoc(ROC, gg_rct_roc_lvl1_22)
call CreateRoc(ROC, gg_rct_roc_lvl1_23)
call CreateRoc(ROC, gg_rct_roc_lvl1_24)
call CreateRoc(ROC, gg_rct_roc_lvl1_25)
call CreateRoc(ROC, gg_rct_roc_lvl1_26)
call CreateRoc(ROC, gg_rct_roc_lvl1_27)
call CreateRoc(ROC, gg_rct_roc_lvl1_28)
call CreateRoc(ROC, gg_rct_roc_lvl1_29)
call CreateRoc(ROC, gg_rct_roc_lvl1_30)
call CreateRoc(ROC, gg_rct_roc_lvl1_31)
call CreateRoc(ROC, gg_rct_roc_lvl1_32)
call CreateRoc(ROC, gg_rct_roc_lvl1_33)
call CreateRoc(ROC, gg_rct_roc_lvl1_34)
call CreateRoc(ROC, gg_rct_roc_lvl1_35)
call CreateRoc(ROC, gg_rct_roc_lvl1_36)
call CreateRoc(ROC, gg_rct_roc_lvl1_37)
call CreateRoc(ROC, gg_rct_roc_lvl1_38)
call CreateRoc(ROC, gg_rct_roc_lvl1_39)
call CreateRoc(ROC, gg_rct_roc_lvl1_40)
call CreateRoc(ROC, gg_rct_roc_lvl1_41)
call CreateRoc(ROC, gg_rct_roc_lvl1_42)
call CreateRoc(ROC, gg_rct_roc_lvl1_43)
call CreateRoc(ROC, gg_rct_roc_lvl1_44)
call CreateRoc(ROC, gg_rct_roc_lvl1_45)
call CreateRoc(ROC, gg_rct_roc_lvl1_46)
call CreateRoc(ROC, gg_rct_roc_lvl1_47)
call CreateRoc(ROC, gg_rct_roc_lvl1_48)
call CreateRoc(ROC, gg_rct_roc_lvl1_49)
call CreateRoc(ROC, gg_rct_roc_lvl1_50)
call CreateRoc(ROC, gg_rct_roc_lvl1_51)
call CreateRoc(ROC, gg_rct_roc_lvl1_52)
call CreateRoc(ROC, gg_rct_roc_lvl1_53)
call CreateRoc(ROC, gg_rct_roc_lvl1_54)
call CreateRoc(ROC, gg_rct_roc_lvl1_56)
call CreateRoc(ROC, gg_rct_roc_lvl1_57)
call CreateRoc(ROC, gg_rct_roc_lvl1_58)
call CreateRoc(ROC, gg_rct_roc_lvl1_59)
call CreateRoc(ROC, gg_rct_roc_lvl1_60)
call CreateRoc(ROC, gg_rct_roc_lvl1_61)
call CreateRoc(ROC, gg_rct_roc_lvl1_62)
call CreateRoc(ROC, gg_rct_roc_lvl1_63)
call CreateRoc(ROC, gg_rct_roc_lvl1_64)
call CreateRoc(ROC, gg_rct_roc_lvl1_65)
call CreateRoc(ROC, gg_rct_roc_lvl1_66)
call CreateRoc(ROC, gg_rct_roc_lvl1_67)
call CreateRoc(ROC, gg_rct_roc_lvl1_68)
call CreateRoc(ROC, gg_rct_roc_lvl1_69)
call CreateRoc(ROC, gg_rct_roc_lvl1_70)
call CreateRoc(ROC, gg_rct_roc_lvl1_71)
call CreateRoc(ROC, gg_rct_roc_lvl1_72)
call CreateRoc(ROC, gg_rct_roc_lvl1_73)
call CreateRoc(ROC, gg_rct_roc_lvl1_74)
call CreateRoc(ROC, gg_rct_roc_lvl1_75)
call CreateRoc(ROC, gg_rct_roc_lvl1_76)
call CreateJumper(gg_rct_jump_lvl1_00, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_01, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_02, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_03, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_04, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_05, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_06, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_07, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_08, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_09, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_10, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_11, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_12, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_13, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_14, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_15, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_16, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_17, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_18, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_19, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_20, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_21, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_22, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_23, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_24, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_25, 350, 0.75)
call CreateJumper(gg_rct_jump_lvl1_26, 350, 0.75)
call CreateCercle(MOB, gg_rct_circle_lvl1_01a, gg_rct_circle_lvl1_01b, 3)
call CreateCercle(MOB, gg_rct_circle_lvl1_02a, gg_rct_circle_lvl1_02b, -3)
call CreateCercle(MOB, gg_rct_circle_lvl1_03a, gg_rct_circle_lvl1_03b, 5.3)
call CreateCercle(MOB, gg_rct_circle_lvl1_04a, gg_rct_circle_lvl1_04b, -5.3)
call CreateCercle(MOB, gg_rct_circle_lvl1_05a, gg_rct_circle_lvl1_05b, 8.3)
call CreateCercle(MOB, gg_rct_circle_lvl1_06a, gg_rct_circle_lvl1_06b, -8.3)
call CreateCercle(MOB, gg_rct_circle_lvl1_07a, gg_rct_circle_lvl1_07b, 6)
call CreateCercle(MOB, gg_rct_circle_lvl1_09a, gg_rct_circle_lvl1_09b, 5)
call CreateCercle(MOB, gg_rct_circle_lvl1_11a, gg_rct_circle_lvl1_11b, 7)
call CreateCercle(MOB, gg_rct_circle_lvl1_13a, gg_rct_circle_lvl1_13b, 10)
call CreateCercle(MOB, gg_rct_circle_lvl1_15a, gg_rct_circle_lvl1_15b, 4.5)
call CreateCercle(MOB, gg_rct_circle_lvl1_17a, gg_rct_circle_lvl1_17b, 4)
call CreateTeleporteurCouple(gg_rct_tp_lvl1_1a, gg_rct_tp_lvl1_1b)
call EnableTrigger(gg_trg_mob_apparition_lvl1)
call EnableTrigger(gg_trg_mob_disparition_lvl1)
endfunction
//===========================================================================
function InitTrig_patrol_lvl1 takes nothing returns nothing
set gg_trg_patrol_lvl1 = CreateTrigger( )
set PATROL_LVL[1] = gg_trg_patrol_lvl1
call TriggerAddAction( gg_trg_patrol_lvl1, function Trig_patrol_lvl1_Actions )
endfunction
//TESH.scrollpos=144
//TESH.alwaysfold=0
function Trig_patrol_lvl2_Actions takes nothing returns nothing
call DisableTrigger(gg_trg_mob_apparition_lvl1)
call DisableTrigger(gg_trg_mob_disparition_lvl1)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_00a, gg_rct_patrol_lvl2_00b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_01a, gg_rct_patrol_lvl2_01b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_02a, gg_rct_patrol_lvl2_02b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_03a, gg_rct_patrol_lvl2_03b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_04a, gg_rct_patrol_lvl2_04b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_05a, gg_rct_patrol_lvl2_05b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_06a, gg_rct_patrol_lvl2_06b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_07a, gg_rct_patrol_lvl2_07b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_08a, gg_rct_patrol_lvl2_08b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_09a, gg_rct_patrol_lvl2_09b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_10a, gg_rct_patrol_lvl2_10b)
/*call CreatePatrol(MOB, gg_rct_patrol_lvl2_11a, gg_rct_patrol_lvl2_11b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_12a, gg_rct_patrol_lvl2_12b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_13a, gg_rct_patrol_lvl2_13b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_14a, gg_rct_patrol_lvl2_14b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_15a, gg_rct_patrol_lvl2_15b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_16a, gg_rct_patrol_lvl2_16b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_17a, gg_rct_patrol_lvl2_17b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_18a, gg_rct_patrol_lvl2_18b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_19a, gg_rct_patrol_lvl2_19b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_20a, gg_rct_patrol_lvl2_20b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_21a, gg_rct_patrol_lvl2_21b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_22a, gg_rct_patrol_lvl2_22b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_23a, gg_rct_patrol_lvl2_23b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_24a, gg_rct_patrol_lvl2_24b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_25a, gg_rct_patrol_lvl2_25b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_26a, gg_rct_patrol_lvl2_26b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_27a, gg_rct_patrol_lvl2_27b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_28a, gg_rct_patrol_lvl2_28b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_29a, gg_rct_patrol_lvl2_29b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_30a, gg_rct_patrol_lvl2_30b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_31a, gg_rct_patrol_lvl2_31b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_32a, gg_rct_patrol_lvl2_32b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_33a, gg_rct_patrol_lvl2_33b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_34a, gg_rct_patrol_lvl2_34b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_35a, gg_rct_patrol_lvl2_35b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_36a, gg_rct_patrol_lvl2_36b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_37a, gg_rct_patrol_lvl2_37b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_38a, gg_rct_patrol_lvl2_38b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_39a, gg_rct_patrol_lvl2_39b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_40a, gg_rct_patrol_lvl2_40b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_41a, gg_rct_patrol_lvl2_41b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_42a, gg_rct_patrol_lvl2_42b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_43a, gg_rct_patrol_lvl2_43b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_44a, gg_rct_patrol_lvl2_44b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_45a, gg_rct_patrol_lvl2_45b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_46a, gg_rct_patrol_lvl2_46b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_47a, gg_rct_patrol_lvl2_47b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_48a, gg_rct_patrol_lvl2_48b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_49a, gg_rct_patrol_lvl2_49b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_50a, gg_rct_patrol_lvl2_50b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_51a, gg_rct_patrol_lvl2_51b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_52a, gg_rct_patrol_lvl2_52b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_53a, gg_rct_patrol_lvl2_53b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_54a, gg_rct_patrol_lvl2_54b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_55a, gg_rct_patrol_lvl2_55b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_56a, gg_rct_patrol_lvl2_56b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_57a, gg_rct_patrol_lvl2_57b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_58a, gg_rct_patrol_lvl2_58b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_59a, gg_rct_patrol_lvl2_59b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_60a, gg_rct_patrol_lvl2_60b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_61a, gg_rct_patrol_lvl2_61b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_62a, gg_rct_patrol_lvl2_62b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_63a, gg_rct_patrol_lvl2_63b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_64a, gg_rct_patrol_lvl2_64b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_65a, gg_rct_patrol_lvl2_65b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_66a, gg_rct_patrol_lvl2_66b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_67a, gg_rct_patrol_lvl2_67b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_68a, gg_rct_patrol_lvl2_68b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_69a, gg_rct_patrol_lvl2_69b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_70a, gg_rct_patrol_lvl2_70b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_71a, gg_rct_patrol_lvl2_71b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_72a, gg_rct_patrol_lvl2_72b)
call CreatePatrol(MOB, gg_rct_patrol_lvl2_73a, gg_rct_patrol_lvl2_73b)*/
call CreateRoc(ROC, gg_rct_roc_lvl2_00)
call CreateRoc(ROC, gg_rct_roc_lvl2_01)
call CreateRoc(ROC, gg_rct_roc_lvl2_02)
call CreateRoc(ROC, gg_rct_roc_lvl2_03)
call CreateRoc(ROC, gg_rct_roc_lvl2_04)
call CreateRoc(ROC, gg_rct_roc_lvl2_05)
call CreateRoc(ROC, gg_rct_roc_lvl2_06)
call CreateRoc(ROC, gg_rct_roc_lvl2_07)
call CreateRoc(ROC, gg_rct_roc_lvl2_08)
call CreateRoc(ROC, gg_rct_roc_lvl2_09)
call CreateRoc(ROC, gg_rct_roc_lvl2_10)
call CreateRoc(ROC, gg_rct_roc_lvl2_11)
call CreateRoc(ROC, gg_rct_roc_lvl2_12)
call CreateRoc(ROC, gg_rct_roc_lvl2_13)
call CreateRoc(ROC, gg_rct_roc_lvl2_14)
call CreateRoc(ROC, gg_rct_roc_lvl2_15)
call CreateRoc(ROC, gg_rct_roc_lvl2_16)
call CreateRoc(ROC, gg_rct_roc_lvl2_17)
call CreateRoc(ROC, gg_rct_roc_lvl2_18)
call CreateRoc(ROC, gg_rct_roc_lvl2_19)
call CreateRoc(ROC, gg_rct_roc_lvl2_20)
call CreateRoc(ROC, gg_rct_roc_lvl2_21)
call CreateRoc(ROC, gg_rct_roc_lvl2_22)
call CreateRoc(ROC, gg_rct_roc_lvl2_23)
call CreateRoc(ROC, gg_rct_roc_lvl2_24)
call CreateRoc(ROC, gg_rct_roc_lvl2_25)
call CreateRoc(ROC, gg_rct_roc_lvl2_26)
call CreateRoc(ROC, gg_rct_roc_lvl2_27)
call CreateRoc(ROC, gg_rct_roc_lvl2_28)
call CreateRoc(ROC, gg_rct_roc_lvl2_29)
call CreateRoc(ROC, gg_rct_roc_lvl2_30)
call CreateRoc(ROC, gg_rct_roc_lvl2_31)
call CreateRoc(ROC, gg_rct_roc_lvl2_32)
call CreateRoc(ROC, gg_rct_roc_lvl2_33)
call CreateRoc(ROC, gg_rct_roc_lvl2_34)
call CreateRoc(ROC, gg_rct_roc_lvl2_35)
call CreateRoc(ROC, gg_rct_roc_lvl2_36)
call CreateRoc(ROC, gg_rct_roc_lvl2_37)
call CreateRoc(ROC, gg_rct_roc_lvl2_38)
call CreateRoc(ROC, gg_rct_roc_lvl2_39)
call CreateRoc(ROC, gg_rct_roc_lvl2_40)
call CreateRoc(ROC, gg_rct_roc_lvl2_41)
call CreateRoc(ROC, gg_rct_roc_lvl2_42)
call CreateRoc(ROC, gg_rct_roc_lvl2_43)
call CreateRoc(ROC, gg_rct_roc_lvl2_44)
call CreateRoc(ROC, gg_rct_roc_lvl2_45)
call CreateRoc(ROC, gg_rct_roc_lvl2_46)
call CreateRoc(ROC, gg_rct_roc_lvl2_47)
call CreateRoc(ROC, gg_rct_roc_lvl2_48)
call CreateRoc(ROC, gg_rct_roc_lvl2_49)
call CreateRoc(ROC, gg_rct_roc_lvl2_50)
call CreateRoc(ROC, gg_rct_roc_lvl2_51)
call CreateRoc(ROC, gg_rct_roc_lvl2_52)
call CreateRoc(ROC, gg_rct_roc_lvl2_53)
call CreateRoc(ROC, gg_rct_roc_lvl2_54)
call CreateRoc(ROC, gg_rct_roc_lvl2_56)
call CreateRoc(ROC, gg_rct_roc_lvl2_57)
call CreateRoc(ROC, gg_rct_roc_lvl2_58)
call CreateRoc(ROC, gg_rct_roc_lvl2_59)
call CreateRoc(ROC, gg_rct_roc_lvl2_60)
call CreateRoc(ROC, gg_rct_roc_lvl2_61)
call CreateRoc(ROC, gg_rct_roc_lvl2_62)
call CreateRoc(ROC, gg_rct_roc_lvl2_63)
call CreateRoc(ROC, gg_rct_roc_lvl2_64)
call CreateRoc(ROC, gg_rct_roc_lvl2_65)
call CreateRoc(ROC, gg_rct_roc_lvl2_66)
call CreateRoc(ROC, gg_rct_roc_lvl2_67)
call CreateRoc(ROC, gg_rct_roc_lvl2_68)
call CreateRoc(ROC, gg_rct_roc_lvl2_69)
call CreateRoc(ROC, gg_rct_roc_lvl2_70)
call CreateRoc(ROC, gg_rct_roc_lvl2_71)
call CreateRoc(ROC, gg_rct_roc_lvl2_72)
call CreateRoc(ROC, gg_rct_roc_lvl2_73)
call CreateRoc(ROC, gg_rct_roc_lvl2_74)
call CreateRoc(ROC, gg_rct_roc_lvl2_75)
call CreateRoc(ROC, gg_rct_roc_lvl2_76)
call CreateCercle(MOB, gg_rct_circle_lvl2_01a, gg_rct_circle_lvl2_01b, 5)
call CreateCercle(MOB, gg_rct_circle_lvl2_02a, gg_rct_circle_lvl2_02b, 5)
call CreateCercle(MOB, gg_rct_circle_lvl2_03a, gg_rct_circle_lvl2_03b, 5)
call EnableTrigger(gg_trg_mob_apparition_lvl2)
call EnableTrigger(gg_trg_mob_disparition_lvl2)
endfunction
//===========================================================================
function InitTrig_patrol_lvl2 takes nothing returns nothing
set gg_trg_patrol_lvl2 = CreateTrigger( )
call TriggerAddAction( gg_trg_patrol_lvl2, function Trig_patrol_lvl2_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_random_mob_lvl1_Actions takes nothing returns nothing
local real x3 = GetRectCenterX(gg_rct_spawn_lvl1_0a)
local real y3 = GetRandomReal(GetRectMinY(gg_rct_spawn_lvl1_0a), GetRectMaxY(gg_rct_spawn_lvl1_0a))
local real x4 = GetRectCenterX(gg_rct_disparition_lvl1_0b)
local real y4 = GetRandomReal(GetRectMinY(gg_rct_disparition_lvl1_0b), GetRectMaxY(gg_rct_disparition_lvl1_0b))
call CreateSimpleMobWalker(MOB, x3, y3, x4, y4)
endfunction
//===========================================================================
function InitTrig_mob_apparition_lvl1 takes nothing returns nothing
set gg_trg_mob_apparition_lvl1 = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_mob_apparition_lvl1, 0.45, true)
call DisableTrigger( gg_trg_mob_apparition_lvl1 )
call TriggerAddAction( gg_trg_mob_apparition_lvl1, function Trig_random_mob_lvl1_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_random_mob_lvl2_Actions takes nothing returns nothing
local real x3 = GetRectCenterX(gg_rct_spawn_lvl2_0a)
local real y3 = GetRandomReal(GetRectMinY(gg_rct_spawn_lvl2_0a), GetRectMaxY(gg_rct_spawn_lvl2_0a))
local real x4 = GetRectCenterX(gg_rct_disparition_lvl2_0b)
local real y4 = GetRandomReal(GetRectMinY(gg_rct_disparition_lvl2_0b), GetRectMaxY(gg_rct_disparition_lvl2_0b))
call CreateSimpleMobWalker(MOB, x3, y3, x4, y4)
endfunction
//===========================================================================
function InitTrig_mob_apparition_lvl2 takes nothing returns nothing
set gg_trg_mob_apparition_lvl2 = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_mob_apparition_lvl2, 0.3, true)
call DisableTrigger( gg_trg_mob_apparition_lvl2 )
call TriggerAddAction( gg_trg_mob_apparition_lvl2, function Trig_random_mob_lvl2_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function RandomMobDisparitionLvl1 takes nothing returns boolean
return GetPlayerId(GetOwningPlayer(GetTriggerUnit())) == 11
endfunction
function Trig_random_mob_disparition_lvl1_Actions takes nothing returns nothing
call RemoveUnit(GetTriggerUnit())
endfunction
//===========================================================================
function InitTrig_mob_disparition_lvl1 takes nothing returns nothing
set gg_trg_mob_disparition_lvl1 = CreateTrigger( )
call DisableTrigger( gg_trg_mob_disparition_lvl1 )
call TriggerRegisterEnterRectSimple(gg_trg_mob_disparition_lvl1, gg_rct_disparition_lvl1_0b)
call TriggerAddCondition(gg_trg_mob_disparition_lvl1, Filter(function RandomMobDisparitionLvl1))
call TriggerAddAction( gg_trg_mob_disparition_lvl1, function Trig_random_mob_disparition_lvl1_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function RandomMobDisparitionLvl2 takes nothing returns boolean
return GetPlayerId(GetOwningPlayer(GetTriggerUnit())) == 11
endfunction
function Trig_random_mob_disparition_lvl2_Actions takes nothing returns nothing
call RemoveUnit(GetTriggerUnit())
endfunction
//===========================================================================
function InitTrig_mob_disparition_lvl2 takes nothing returns nothing
set gg_trg_mob_disparition_lvl2 = CreateTrigger( )
call DisableTrigger( gg_trg_mob_disparition_lvl2 )
call TriggerRegisterEnterRectSimple(gg_trg_mob_disparition_lvl2, gg_rct_disparition_lvl2_0b)
call TriggerAddCondition(gg_trg_mob_disparition_lvl2, Filter(function RandomMobDisparitionLvl2))
call TriggerAddAction( gg_trg_mob_disparition_lvl2, function Trig_random_mob_disparition_lvl2_Actions )
endfunction
//TESH.scrollpos=16
//TESH.alwaysfold=0
globals
integer Terrain_slide
integer Terrain_walk
integer array Terrain_death
integer Terrain_slide_slow
integer Terrain_slide_speed
real SPEED_NORMAL = 5.7
real SPEED_FAST = 9
real SPEED_SLOW = 3
trigger array Slide_j
endglobals
function Trig_checkpath_Actions takes nothing returns nothing
local integer i = 0
local unit u
local integer T
loop
exitwhen i > 10
if Is_activ_j[i] == true and GetUnitState(Heros_j[i], UNIT_STATE_LIFE) > 0 then
call SetUnitX(Invis_unit_j[i], GetUnitX(Heros_j[i])) //déplacer l'invis unit
call SetUnitY(Invis_unit_j[i], GetUnitY(Heros_j[i])) //déplacer l'invis unit
call SetUnitFlyHeight(Invis_unit_j[i], GetUnitFlyHeight(Heros_j[i]), 0) //déplacer l'invis unit
set u = Heros_j[i]
set T = GetTerrainType(GetUnitX(u), GetUnitY(u))
if T == Terrain_slide then
call EnableTrigger(Slide_j[i])
set Slide_speed[i] = SPEED_NORMAL
elseif T == Terrain_walk then
call DisableTrigger(Slide_j[i])
elseif T == Terrain_death[0] or T == Terrain_death[1] or T == Terrain_death[2] then
call KillUnit(Invis_unit_j[i])
elseif T == Terrain_slide_speed then
call EnableTrigger(Slide_j[i])
set Slide_speed[i] = SPEED_FAST
elseif T == Terrain_slide_slow then
call EnableTrigger(Slide_j[i])
set Slide_speed[i] = SPEED_SLOW
endif
set u = null
elseif GetUnitState(Heros_j[i], UNIT_STATE_LIFE) <= 0 then
call DisableTrigger(Slide_j[i])
endif
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_checkpath takes nothing returns nothing
set gg_trg_checkpath = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_checkpath, 0.05, true)
call TriggerAddAction( gg_trg_checkpath, function Trig_checkpath_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
globals
real COLLISION_HEROS = 70
group array Group_check_unit
group Group_jump = CreateGroup()
group Group_teleporteur = CreateGroup()
integer JUMP = 'o001'
integer TELEPORTEUR = 'o002'
endglobals
function Null takes nothing returns boolean
return true
endfunction
function CheckUnit takes nothing returns nothing
local unit u
local integer n = GetTimerData(GetExpiredTimer())
local unit heros = Heros_j[n]
local group G = Group_check_unit[n]
local integer max = CountUnitsInGroup(G)
local integer i = 0
loop
exitwhen i > max
set u = GroupPickRandomUnit(G)
if IsUnitInGroup(u, Group_jump) then
call JumpUnit(Heros_j[n], u)
elseif IsUnitInGroup(u, Group_teleporteur) then
call TeleporteurUnit(Heros_j[n], u)
endif
call GroupRemoveUnit(G, u)
set i = i + 1
set u = null
endloop
call ReleaseTimer(GetExpiredTimer())
set heros = null
endfunction
function Trig_checkunit_Actions takes nothing returns nothing
local integer i = 0
local timer array t
loop
exitwhen i > 11
if Is_activ_j[i] and GetUnitFlyHeight(Heros_j[i]) <= 0.01 then
set t[i] = NewTimerEx(i)
call GroupEnumUnitsInRange(Group_check_unit[i], GetUnitX(Heros_j[i]), GetUnitY(Heros_j[i]), COLLISION_HEROS, Filter(function Null))
call TimerStart(t[i], 0, false, function CheckUnit)
endif
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_checkunit takes nothing returns nothing
set gg_trg_checkunit = CreateTrigger( )
call TriggerRegisterTimerEvent(gg_trg_checkunit, 0.05, true)
call TriggerAddAction( gg_trg_checkunit, function Trig_checkunit_Actions )
call DisableTrigger(gg_trg_checkunit)
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_event_slide_Actions takes nothing returns nothing
local integer i = 0
loop
exitwhen i == 11
call TriggerRegisterTimerEvent(Slide_j[i], 0.01, true)
endloop
endfunction
//===========================================================================
function InitTrig_event_slide takes nothing returns nothing
set gg_trg_event_slide = CreateTrigger( )
call TriggerAddAction( gg_trg_event_slide, function Trig_event_slide_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_to_turn_Conditions takes nothing returns boolean
local integer id = GetPlayerId( GetTriggerPlayer() )
return id != 11 and GetIssuedOrderId() != 851973 and IsTriggerEnabled(Slide_j[id])
endfunction
function ToTurn takes nothing returns nothing
local unit slider = GetTriggerUnit()
local real X = GetUnitX( slider )
local real Y = GetUnitY( slider )
local real Xorder
local real Yorder
if GetUnitTypeId(slider)==HEROS then
set Xorder = GetOrderPointX()
set Yorder = GetOrderPointY()
call SetUnitFacing( slider, Atan2( Yorder - Y, Xorder - X) * bj_RADTODEG )
call PauseUnit( slider, true )
call IssueImmediateOrder( slider, "stop" )
call PauseUnit( slider, false )
endif
set slider = null
endfunction
//===========================================================================
function InitTrig_to_turn takes nothing returns nothing
local integer i = 0
set gg_trg_to_turn = CreateTrigger( )
loop
exitwhen i == 11
call TriggerRegisterPlayerUnitEvent( gg_trg_to_turn, Player(i), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null)
set i = 1 + i
endloop
call TriggerAddCondition( gg_trg_to_turn, Condition( function Trig_to_turn_Conditions ) )
call TriggerAddAction( gg_trg_to_turn, function ToTurn )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
globals
real array Slide_speed
endglobals
function Trig_slide_j0_Actions takes nothing returns nothing
local integer i = 0
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j0 takes nothing returns nothing
set gg_trg_slide_j0 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j0, function Trig_slide_j0_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j1_Actions takes nothing returns nothing
local integer i = 1
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j1 takes nothing returns nothing
set gg_trg_slide_j1 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j1, function Trig_slide_j1_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j2_Actions takes nothing returns nothing
local integer i = 2
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j2 takes nothing returns nothing
set gg_trg_slide_j2 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j2, function Trig_slide_j2_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j3_Actions takes nothing returns nothing
local integer i = 3
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j3 takes nothing returns nothing
set gg_trg_slide_j3 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j3, function Trig_slide_j3_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j4_Actions takes nothing returns nothing
local integer i = 4
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j4 takes nothing returns nothing
set gg_trg_slide_j4 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j4, function Trig_slide_j4_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j5_Actions takes nothing returns nothing
local integer i = 5
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j5 takes nothing returns nothing
set gg_trg_slide_j5 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j5, function Trig_slide_j5_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j6_Actions takes nothing returns nothing
local integer i = 6
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j6 takes nothing returns nothing
set gg_trg_slide_j6 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j6, function Trig_slide_j6_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j7_Actions takes nothing returns nothing
local integer i = 7
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j7 takes nothing returns nothing
set gg_trg_slide_j7 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j7, function Trig_slide_j7_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j8_Actions takes nothing returns nothing
local integer i = 8
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j8 takes nothing returns nothing
set gg_trg_slide_j8 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j8, function Trig_slide_j8_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j9_Actions takes nothing returns nothing
local integer i = 9
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j9 takes nothing returns nothing
set gg_trg_slide_j9 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j9, function Trig_slide_j9_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_slide_j10_Actions takes nothing returns nothing
local integer i = 10
local unit u = Heros_j[i]
call SetUnitX(u, GetUnitX(u) + CosBJ(GetUnitFacing(u)) * Slide_speed[i])
call SetUnitY(u, GetUnitY(u) + SinBJ(GetUnitFacing(u)) * Slide_speed[i])
call IssueImmediateOrder( u, "stop" )
endfunction
//===========================================================================
function InitTrig_slide_j10 takes nothing returns nothing
set gg_trg_slide_j10 = CreateTrigger( )
call TriggerAddAction( gg_trg_slide_j10, function Trig_slide_j10_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
globals
leaderboard Ldb
endglobals
function Trig_panneau_lives_init_Actions takes nothing returns nothing
set Ldb = CreateLeaderboardBJ(GetPlayersAll(), "Life")
call LeaderboardAddItemBJ( Player(0), Ldb, "Life", Life )
call LeaderboardDisplayBJ( true, Ldb )
endfunction
//===========================================================================
function InitTrig_panneau_lives_init takes nothing returns nothing
set gg_trg_panneau_lives_init = CreateTrigger( )
call TriggerRegisterTimerEvent( gg_trg_panneau_lives_init, 0.00, false )
call TriggerAddAction( gg_trg_panneau_lives_init, function Trig_panneau_lives_init_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_loose_Actions takes nothing returns nothing
local integer i = 0
call DisplayTimedTextToForce(GetPlayersAll(), 10, Color[0] + "Sorry you haven't enought life" + End_color)
call StartSound(gg_snd_all_dead)
call PolledWait(5)
loop
exitwhen i == 11
if Is_activ_j[i] then
call CustomDefeatBJ(Player(i), "Sorry, try again")
endif
endloop
endfunction
//===========================================================================
function InitTrig_loose takes nothing returns nothing
set gg_trg_loose = CreateTrigger( )
call TriggerAddAction( gg_trg_loose, function Trig_loose_Actions )
endfunction
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_leave_Actions takes nothing returns nothing
local integer i = GetPlayerId(GetTriggerPlayer())
set Is_activ_j[i] = false
call RemoveUnit(Heros_j[i])
call RemoveUnit(Invis_unit_j[i])
call DisplayTimedTextToForce(GetPlayersAll(), 10, Color[i] + GetPlayerName(Player(i)) + "has left the game." + End_color)
endfunction
//===========================================================================
function InitTrig_leave takes nothing returns nothing
set gg_trg_leave = CreateTrigger( )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(0) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(1) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(2) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(3) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(4) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(5) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(6) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(7) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(8) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(9) )
call TriggerRegisterPlayerEventLeave( gg_trg_leave, Player(10) )
call TriggerAddAction( gg_trg_leave, function Trig_leave_Actions )
endfunction