Advertisement
FlacoBey

Untitled

Feb 9th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 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("round_start", Event_RoundStart);
  32. }
  33.  
  34. public void OnMapStart()
  35. {
  36.     KillTimers();
  37. }
  38.  
  39. public Event_RoundStart(Event event, const char[] name, bool dontBroadcast)
  40. {
  41.     KillTimers();
  42.     GetCurrentMap(sMap, sizeof(sMap));
  43.     if (StrContains(sMap, "c1m1_", true) == -1)
  44.     {
  45.         SpawnTankStart();
  46.     }
  47. }
  48.  
  49. void SpawnTankStart()
  50. {
  51.     float TimerTank = GetRandomFloat(GetConVarFloat(hm_time_spawn_min), GetConVarFloat(hm_time_spawn_max));
  52.     Timers = CreateTimer(TimerTank, SpawnTank, _, TIMER_REPEAT);
  53. }
  54.  
  55. void KillTimers()
  56. {
  57.     if (Timers != null)
  58.     {
  59.         CloseHandle(Timers);
  60.         Timers = null;
  61.     }
  62. }
  63.  
  64. public Action SpawnTank(Handle timer)
  65. {
  66.     for (int i = 1; i <= MaxClients; ++i) if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i))
  67.     {
  68.         if(TankCount <= GetConVarInt(hMaxCountTanks))
  69.         {
  70.             HxFakeCHEAT(i, "z_spawn_old", "tank auto");
  71.             TankCount++;
  72.         }
  73.     }
  74.    
  75.     Timers = null;
  76.    
  77.     return Plugin_Stop;
  78. }
  79.  
  80. void HxFakeCHEAT(int &client, const char[] sCmd, const char[] sArg)
  81. {
  82.     int iFlags = GetCommandFlags(sCmd);
  83.     SetCommandFlags(sCmd, iFlags & ~FCVAR_CHEAT);
  84.     FakeClientCommand(client, "%s %s", sCmd, sArg);
  85.     SetCommandFlags(sCmd, iFlags);
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement