--Script By: BERKYT --Links: VK: https://vk.com/b_e_r_k_y_t Discord: https://discord.gg/amMreCC YouTube: https://www.youtube.com/channel/UCaPBjmrAYO6p-ksHNaymwLg?view_as=subscriber --The script is distributed freely, provided that the author of the script is indicated - BERKYT import("ScarUtil.scar") import("WXPScarUtil.scar") function OnGameSetup() --Players g_Player1 = World_GetPlayerAt(0) g_Player2 = World_GetPlayerAt(1) g_Player3 = World_GetPlayerAt(2) Setup_Player(1, "BERKYT", "tau_race", 1) Setup_Player(2, "BERKYT", "npc_race", 0) --Warriors g_light_infantry = "guard_squad_guardsmen" g_base_warrior = "guard_squad_hellhound" g_base_warrior_2 = "guard_squad_guardsmen" g_support_warrior = "guard_squad_psyker" g_support_warrior_2 = "guard_squad_kasrkin" g_heavy_support_warrior = "guard_squad_ogryns" g_heavy_warrior = "guard_squad_sentinel_advance_sp" g_super_heavy_warrior = "guard_squad_ogryns" g_light_tank = "guard_squad_chimera" g_light_tank_2 = "guard_squad_basilisk" g_heavy_tank = "guard_squad_lemanruss" g_relic_warrior = "guard_squad_baneblade" g_hero = "guard_squad_command_squad" g_hero_2 = "guard_squad_assassin" --Reinforcement warriors g_reinforcement_light_warrior = "guard_squad_guardsmen" g_reinforcement_heavy_warrior = "guard_squad_kasrkin" g_reinforcement_tank = "guard_squad_lemanruss" --Interval g_interval = 60 g_interval_s_s = 60 * 3 --Squads g_sg_wave_troops = "sg_wave_troops" --Markers g_mkr_spawn_wave = "mkr_spawn_from" g_mkr_attack_wave = "mkr_attack_to" --Integer g_timer_wave = 0 g_timer_s_s = 0 g_count_waves = 20 --Boolean g_check_exists_wave = false g_check_s_s = false g_check_s_s_bool = false --Varios g_check = 0 g_check_s_s_hp = nil g_check_s_s_hp_2 = nil g_sgroupid = nil end function GuardInit() Rule_SetupMusicPlaylist() FOW_RevealAll() Fade_Start(2, true) Cpu_Enable(g_Player2, false) Rule_AddInterval(WebMoney, 60 * 2) Rule_AddInterval(Sberbank, 60 * 2 + 15) Rule_AddInterval(Wave, 1) Rule_AddInterval(Timer, 1) Rule_AddInterval(CheckingSquadStuck, 1) Rule_Add(CheckingLose) Util_CreateSquadsAtMarkerEx(g_Player3, "sg_BERKYT_SCRIPT", "space_marine_squad_servitor_sp", g_mkr_attack_wave, 1, 9) end Scar_AddInit(GuardInit) function Rule_SetupMusicPlaylist() Util_MissionTitle("By: BERKYT") --set the music t_IG_stronghold_music = { "MU_IG_STR_ImpGd_perc_brass", "MU_IG_STR_ImpGd", "MU_IG_STR_ImpGd_perc", "MU_IG_STR_ImpGd_perc_str", "MU_IG_STR_ImpGd_perc_voice"} Playlist_Manager( PC_Music, t_IG_stronghold_music, true, true , {2, 4}) end function WebMoney() Util_MissionTitle("WebMoney: R515364081475(RUB) or Z262863085617(USD)(Check ReadMe - file)") end function Sberbank() Util_MissionTitle("Sberbank: 5469 4000 2976 6750 (Check ReadMe - file)") end function GameOver() World_SetGameOver() end function Wave() if (g_check > g_count_waves or g_check == g_count_waves) and check == nil then check = false Fade_Start(2, false) Util_MissionTitle("You win!") GameOver() end if g_check_exists_wave and g_timer_wave == g_interval and SGroup_GetAvgHealth(g_sg_wave_troops) == 0 then g_check_s_s = true g_check_s_s_bool = true g_check_exists_wave = false g_timer_s_s = 0 Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_light_infantry, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_base_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) g_check = g_check + 1 Util_MissionTitle("Wave number "..g_check) if g_check > World_GetRand(2, 5) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_base_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_base_warrior_2, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end if g_check > World_GetRand(5, 7) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_support_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_support_warrior_2, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end if g_check > World_GetRand(7, 10) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_heavy_support_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_light_tank, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end if g_check > World_GetRand(10, 15) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_super_heavy_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_heavy_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end if g_check > World_GetRand(14, 17) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_light_tank_2, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_heavy_tank, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end if g_check > World_GetRand(17, 20) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_relic_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_hero, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end if g_check > World_GetRand(18, 21) then Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_hero_2, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) Util_CreateSquadsAtMarkerEx(g_Player2, g_sg_wave_troops, g_base_warrior, g_mkr_spawn_wave, World_GetRand(1, 3 + g_check), World_GetRand(4, 13) + g_check) end SGroup_AddLeaders(g_sg_wave_troops) Cmd_AttackMoveMarker(g_sg_wave_troops, g_mkr_attack_wave) end end function Timer() SGroup_CreateIfNotFound(g_sg_wave_troops) if SGroup_GetAvgHealth(g_sg_wave_troops) == 0 then g_check_exists_wave = true g_timer_wave = g_timer_wave + 1 if g_timer_wave > g_interval then g_timer_wave = 0 end end end function CheckingSquadStuck() if g_check_s_s then SGroup_CreateIfNotFound(g_sg_wave_troops) if SGroup_IsUnderAttack(g_sg_wave_troops, false) == false then g_timer_s_s = g_timer_s_s + 1 if g_timer_s_s == g_interval_s_s then g_check_s_s = false SGroup_DestroyAllSquads(g_sg_wave_troops) end else g_timer_s_s = 0 g_check_s_s_hp = SGroup_GetAvgHealth(g_sg_wave_troops) end end end function CheckingLose() if SGroup_GetAvgHealth("sg_BERKYT_SCRIPT") == 0 and check == nil then check = false Fade_Start(2, false) Util_MissionTitle("You lose!") GameOver() end end