Documentation | ActivID® ActivClient® 7.4.1

Warcraft 1.26 Shuud Tatah Direct

set SpawnIndex = 4 endfunction

// Wave timer set WaveTimer = CreateTimer() call TimerStart(WaveTimer, 5.0, false, null) // first wave soon set tLeaderboardUpdate = CreateTrigger()

function InitHeroes takes nothing returns nothing local integer i = 0 local real startX = -500.0 local real startY = -3000.0 local real offset = 150.0 local player p warcraft 1.26 shuud tatah

loop exitwhen i > 11 set p = Player(i) if GetPlayerController(p) == MAP_CONTROL_USER and GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING then call CreateCustomHero(p, startX + (i * offset), startY) endif set i = i + 1 endloop endfunction function OnUnitDeath takes nothing returns nothing local unit killed = GetDyingUnit() local unit killer = GetKillingUnit() local player owner = GetOwningPlayer(killer) if IsUnitType(killed, UNIT_TYPE_HERO) then // Hero died set PlayersRemaining = PlayersRemaining - 1 call DisplayTextToForce(GetPlayersAll(), GetPlayerName(owner) + "'s hero has fallen!") if PlayersRemaining <= 0 then call GameOver(false) endif else // Enemy died set KillsTotal = KillsTotal + 1 if owner != null then call SetPlayerScore(owner, 0, GetPlayerScore(owner, 0) + 1) call UpdateLeaderboard() endif endif set killed = null set killer = null endfunction

// Timers timer WaveTimer = null timer GameTimer = null real WaveDelay = 15.0 endglobals function InitSpawnPoints takes nothing returns nothing // Set 4 spawn points set SpawnX[0] = -2000.0 set SpawnY[0] = -2000.0 set SpawnX[1] = 2000.0 set SpawnY[1] = -2000.0 set SpawnIndex = 4 endfunction // Wave timer

function OnWaveTimerExpired takes nothing returns nothing call NextWave() endfunction function CreateCustomHero takes player p, real x, real y returns unit local unit u = CreateUnit(p, 'Obla', x, y, 270) call SetHeroLevel(u, 1, false) call SelectHeroForPlayer(u, p) // Add custom abilities (using base IDs) call UnitAddAbility(u, 'AInv') // Inventory call UnitAddAbility(u, 'AHbz') // Bladestorm (customizable) call UnitAddAbility(u, 'AOcr') // Critical Strike call UnitAddAbility(u, 'AOwk') // Wind Walk

function NextWave takes nothing returns nothing set CurrentWave = CurrentWave + 1 call SpawnWave() endfunction startX + (i * offset)

call DisplayTextToForce(GetPlayersAll(), "|cff00ff00Wave " + I2S(CurrentWave) + " begins!|r") call StartTimer(WaveTimer, WaveDelay, false, null) endfunction