Advertisement
BERKYT

Waves

Nov 28th, 2020
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.25 KB | None | 0 0
  1. --Script By: BERKYT
  2. --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
  3. --The script is distributed freely, provided that the author of the script is indicated - BERKYT
  4.  
  5. import("ScarUtil.scar")
  6. import("WXPScarUtil.scar")
  7.  
  8. function OnGameSetup()
  9.    
  10.     --Players
  11.     g_Player1 = World_GetPlayerAt(0)
  12.     g_Player2 = World_GetPlayerAt(1)
  13.     g_Player3 = World_GetPlayerAt(2)
  14.    
  15.     Setup_Player(1, "BERKYT", "tau_race", 1)
  16.     Setup_Player(2, "BERKYT", "npc_race", 0)
  17.        
  18.     --Warriors
  19.     g_light_infantry = "guard_squad_guardsmen"
  20.     g_base_warrior = "guard_squad_hellhound"
  21.     g_base_warrior_2 = "guard_squad_guardsmen"
  22.     g_support_warrior = "guard_squad_psyker"
  23.     g_support_warrior_2 = "guard_squad_kasrkin"
  24.     g_heavy_support_warrior = "guard_squad_ogryns"
  25.     g_heavy_warrior = "guard_squad_sentinel_advance_sp"
  26.     g_super_heavy_warrior = "guard_squad_ogryns"
  27.     g_light_tank = "guard_squad_chimera"
  28.     g_light_tank_2 = "guard_squad_basilisk"
  29.     g_heavy_tank = "guard_squad_lemanruss"
  30.     g_relic_warrior = "guard_squad_baneblade"
  31.     g_hero = "guard_squad_command_squad"
  32.     g_hero_2 = "guard_squad_assassin"
  33.    
  34.     --Reinforcement warriors
  35.     g_reinforcement_light_warrior = "guard_squad_guardsmen"
  36.     g_reinforcement_heavy_warrior = "guard_squad_kasrkin"
  37.     g_reinforcement_tank = "guard_squad_lemanruss"
  38.    
  39.     --Interval
  40.     g_interval = 60
  41.     g_interval_s_s = 60 * 3
  42.    
  43.     --Squads
  44.     g_sg_wave_troops = "sg_wave_troops"
  45.    
  46.     --Markers
  47.     g_mkr_spawn_wave = "mkr_spawn_from"
  48.     g_mkr_attack_wave = "mkr_attack_to"
  49.    
  50.     --Integer
  51.     g_timer_wave = 0
  52.     g_timer_s_s = 0
  53.     g_count_waves = 20
  54.    
  55.     --Boolean
  56.     g_check_exists_wave = false
  57.     g_check_s_s = false
  58.     g_check_s_s_bool = false
  59.    
  60.     --Varios
  61.     g_check = 0
  62.     g_check_s_s_hp = nil
  63.     g_check_s_s_hp_2 = nil
  64.     g_sgroupid = nil
  65.    
  66. end
  67.  
  68. function GuardInit()
  69.    
  70.     Rule_SetupMusicPlaylist()
  71.     FOW_RevealAll()
  72.    
  73.     Fade_Start(2, true)
  74.    
  75.     Cpu_Enable(g_Player2, false)
  76.    
  77.     Rule_AddInterval(WebMoney, 60 * 2)
  78.     Rule_AddInterval(Sberbank, 60 * 2 + 15)
  79.     Rule_AddInterval(Wave, 1)
  80.     Rule_AddInterval(Timer, 1)
  81.     Rule_AddInterval(CheckingSquadStuck, 1)
  82.    
  83.     Rule_Add(CheckingLose)
  84.    
  85.    
  86.     Util_CreateSquadsAtMarkerEx(g_Player3, "sg_BERKYT_SCRIPT", "space_marine_squad_servitor_sp", g_mkr_attack_wave, 1, 9)
  87.  
  88. end
  89.  
  90. Scar_AddInit(GuardInit)
  91.  
  92. function Rule_SetupMusicPlaylist()
  93.  
  94.     Util_MissionTitle("By: BERKYT")
  95.     --set the music
  96.     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",
  97.                                                 "MU_IG_STR_ImpGd_perc_voice"}
  98.    
  99.     Playlist_Manager( PC_Music, t_IG_stronghold_music, true, true , {2, 4})
  100.    
  101. end
  102.  
  103. function WebMoney()
  104.  
  105.     Util_MissionTitle("WebMoney: R515364081475(RUB) or Z262863085617(USD)(Check ReadMe - file)")
  106.    
  107. end
  108.  
  109. function Sberbank()
  110.  
  111.     Util_MissionTitle("Sberbank: 5469 4000 2976 6750 (Check ReadMe - file)")
  112.    
  113. end
  114.  
  115. function GameOver()
  116.  
  117.     World_SetGameOver()
  118.    
  119. end
  120.  
  121. function Wave()
  122.  
  123.     if (g_check > g_count_waves or g_check == g_count_waves) and check == nil then
  124.         check = false
  125.         Fade_Start(2, false)
  126.         Util_MissionTitle("You win!")
  127.        
  128.         GameOver()
  129.     end
  130.  
  131.     if g_check_exists_wave and g_timer_wave == g_interval and SGroup_GetAvgHealth(g_sg_wave_troops) == 0 then
  132.        
  133.         g_check_s_s = true
  134.         g_check_s_s_bool = true
  135.         g_check_exists_wave = false
  136.        
  137.         g_timer_s_s = 0
  138.    
  139.         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)
  140.         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)
  141.        
  142.         g_check = g_check + 1
  143.        
  144.         Util_MissionTitle("Wave number "..g_check)
  145.        
  146.         if g_check > World_GetRand(2, 5) then
  147.             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)
  148.             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)
  149.         end
  150.         if g_check > World_GetRand(5, 7) then
  151.             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)
  152.             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)
  153.         end
  154.         if g_check > World_GetRand(7, 10) then
  155.             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)
  156.             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)
  157.         end
  158.         if g_check > World_GetRand(10, 15) then
  159.             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)
  160.             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)
  161.         end
  162.         if g_check > World_GetRand(14, 17) then
  163.             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)
  164.             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)
  165.         end
  166.         if g_check > World_GetRand(17, 20) then
  167.             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)
  168.             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)
  169.         end
  170.         if g_check > World_GetRand(18, 21) then
  171.             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)
  172.             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)
  173.         end
  174.        
  175.         SGroup_AddLeaders(g_sg_wave_troops)
  176.         Cmd_AttackMoveMarker(g_sg_wave_troops, g_mkr_attack_wave)
  177.     end
  178.    
  179. end
  180.  
  181. function Timer()
  182.  
  183.     SGroup_CreateIfNotFound(g_sg_wave_troops)
  184.    
  185.     if SGroup_GetAvgHealth(g_sg_wave_troops) == 0 then
  186.         g_check_exists_wave = true
  187.         g_timer_wave = g_timer_wave + 1
  188.        
  189.         if g_timer_wave > g_interval then
  190.             g_timer_wave = 0
  191.         end
  192.     end
  193.  
  194. end
  195.  
  196. function CheckingSquadStuck()
  197.  
  198.     if g_check_s_s then
  199.         SGroup_CreateIfNotFound(g_sg_wave_troops)
  200.        
  201.         if SGroup_IsUnderAttack(g_sg_wave_troops, false) == false then
  202.             g_timer_s_s = g_timer_s_s + 1
  203.             if g_timer_s_s == g_interval_s_s then
  204.                 g_check_s_s = false
  205.                 SGroup_DestroyAllSquads(g_sg_wave_troops)
  206.             end
  207.         else
  208.             g_timer_s_s = 0
  209.             g_check_s_s_hp = SGroup_GetAvgHealth(g_sg_wave_troops)
  210.         end
  211.     end
  212.    
  213. end
  214.  
  215. function CheckingLose()
  216.  
  217.     if SGroup_GetAvgHealth("sg_BERKYT_SCRIPT") == 0 and check == nil then
  218.         check = false
  219.         Fade_Start(2, false)
  220.         Util_MissionTitle("You lose!")
  221.        
  222.         GameOver()
  223.     end
  224.  
  225. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement