// 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
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 warcraft 1.26 shuud tatah
function GameOver takes boolean victory returns nothing set GameActive = false call PauseTimer(WaveTimer) if victory then call DisplayTextToForce(GetPlayersAll(), "|cff00ff00VICTORY! You defeated all waves!|r") else call DisplayTextToForce(GetPlayersAll(), "|cffff0000GAME OVER - All heroes fallen.|r") endif endfunction function InitTrig_GameSystem takes nothing returns nothing local trigger t = CreateTrigger() local integer i = 0 call InitSpawnPoints() call InitHeroes() call CreateLeaderboard() // Timers timer WaveTimer = null timer GameTimer
set SpawnX[2] = -2000.0 set SpawnY[2] = 2000.0 270) call SetHeroLevel(u