if not GameActive then return endif
// Wave timer set WaveTimer = CreateTimer() call TimerStart(WaveTimer, 5.0, false, null) // first wave soon set tLeaderboardUpdate = CreateTrigger()
// Boss wave message if CurrentWave == 13 then call DisplayTextToForce(GetPlayersAll(), "|cffff0000BOSS WAVE: The Fallen Paladin approaches!|r") endif
// Spawn handles real array SpawnX real array SpawnY real EndX = -1500.0 real EndY = 4500.0 integer SpawnIndex = 0 warcraft 1.26 shuud tatah
set SpawnX[3] = 2000.0 set SpawnY[3] = 2000.0
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
I notice you’re asking for a “long piece for Warcraft 1.26 shuud tatah.” “Shuud tatah” appears to be Mongolian Cyrillic (шуд татах), which can mean “direct download” or “pull directly” — likely you’re looking for a large, ready-to-use file or content for Warcraft III version 1.26 (a popular patch for modding, custom maps, and older stable play). if not GameActive then return endif // Wave
function CreateLeaderboard takes nothing returns nothing set lbMain = CreateLeaderboard() call LeaderboardSetLabel(lbMain, "|cffffcc00Wave Defense|r") call LeaderboardSetStyle(lbMain, true, false, true)
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
// Unit types integer WaveUnitType = 'hfoo' // Footman default, changes per wave integer BossUnitType = 'Hpal' // Death event set t = CreateTrigger() call
// 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 UpdateLeaderboard takes nothing returns nothing local integer i = 0 local integer kills loop exitwhen i > 11 if GetPlayerController(Player(i)) == MAP_CONTROL_USER then set kills = GetPlayerScore(Player(i), 0) // custom score for kills call LeaderboardSetItemValue(lbMain, i, kills) endif set i = i + 1 endloop call LeaderboardSortItemsByValue(lbMain, false) endfunction function GetWaveUnitType takes integer wave returns integer if wave <= 3 then return 'hfoo' // Footman elseif wave <= 6 then return 'hrif' // Rifleman elseif wave <= 9 then return 'hmpr' // Priest elseif wave <= 12 then return 'hkni' // Knight elseif wave == 13 then return 'Hpal' // Boss (Paladin) elseif wave <= 16 then return 'hmtm' // Mortar Team else return 'ogre' // Ogre endif endfunction function SpawnWave takes nothing returns nothing local integer i = 0 local unit u local integer unitType = GetWaveUnitType(CurrentWave) local integer count = 6 + (CurrentWave * 2) local real x, y local player enemyPlayer = Player(PLAYER_NEUTRAL_AGGRESSIVE)
If by “shuud tatah” you meant you need a to a ready-made 1.26 map file or full game installer, I cannot provide that. But if you clarify, I can give you a complete unprotected map script (thousands of lines) or a base map file structure you can rebuild manually.
// Death event set t = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_DEATH) call TriggerAddAction(t, function OnUnitDeath)