Advertisement
FlacoBey

Untitled

Feb 6th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.13 KB | None | 0 0
  1. #pragma semicolon 1
  2. #include <sourcemod>
  3.  
  4. char sMap[64];
  5. Handle Timers = null;
  6.  
  7. ConVar hMaxCountTanks;
  8.  
  9. ConVar hm_time_spawn_min;
  10. ConVar hm_time_spawn_max;
  11.  
  12. int TankCount = 0;
  13.  
  14. public Plugin myinfo =
  15. {
  16.     name = "[L4D2] Spawn Tank",
  17.     author = "dr_lex & BHaType",
  18.     description = "Spawn Tank)",
  19.     version = "0.2",
  20.     url = ""
  21. }
  22.  
  23. public void OnPluginStart()
  24. {
  25.     hm_time_spawn_min = CreateConVar("hm_time_spawn_min", "5.0", "Минимальное время спауна", FCVAR_NONE);
  26.     hm_time_spawn_max = CreateConVar("hm_time_spawn_max", "60.0", "Максимальное время спауна", FCVAR_NONE);
  27.    
  28.     hMaxCountTanks = CreateConVar("hCvarMaxTanks", "2", "Максимальное кол-во танков за карту", FCVAR_NONE);
  29.     AutoExecConfig(true, "tankspawnmaps");
  30.    
  31.     HookEvent("player_left_start_area", hLeftStart);
  32.     HookEvent("door_open", hLeftStart);
  33. }
  34.  
  35. public void OnMapStart()
  36. {
  37.     KillTimers();
  38. }
  39.  
  40. public hLeftStart(Event event, const char[] name, bool dontBroadcast)
  41. {
  42.     KillTimers();
  43.     GetCurrentMap(sMap, sizeof(sMap));
  44.     if (StrContains(sMap, "m1_", true) == -1)
  45.     {
  46.         SpawnTankStart();
  47.     }
  48. }
  49.  
  50. void SpawnTankStart()
  51. {
  52.     float TimerTank = GetRandomFloat(GetConVarFloat(hm_time_spawn_min), GetConVarFloat(hm_time_spawn_max));
  53.     Timers = CreateTimer(TimerTank, SpawnTank, _, TIMER_REPEAT);
  54. }
  55.  
  56. void KillTimers()
  57. {
  58.     if (Timers != null)
  59.     {
  60.         CloseHandle(Timers);
  61.         Timers = null;
  62.     }
  63. }
  64.  
  65. public Action SpawnTank(Handle timer)
  66. {
  67.     for (int i = 1; i <= MaxClients; ++i) if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i))
  68.     {
  69.         if(TankCount <= GetConVarInt(hMaxCountTanks))
  70.         {
  71.             HxFakeCHEAT(i, "z_spawn_old", "tank auto");
  72.             TankCount++;
  73.         }
  74.     }
  75.    
  76.     Timers = null;
  77.    
  78.     return Plugin_Stop;
  79. }
  80.  
  81. void HxFakeCHEAT(int &client, const char[] sCmd, const char[] sArg)
  82. {
  83.     int iFlags = GetCommandFlags(sCmd);
  84.     SetCommandFlags(sCmd, iFlags & ~FCVAR_CHEAT);
  85.     FakeClientCommand(client, "%s %s", sCmd, sArg);
  86.     SetCommandFlags(sCmd, iFlags);
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement