Advertisement
FlacoBey

Untitled

Feb 5th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.56 KB | None | 0 0
  1. #pragma semicolon 1
  2. #include <sourcemod>
  3.  
  4. char sMap[64];
  5. Handle Timers = null;
  6.  
  7. ConVar hm_only_the_first_map , 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_only_the_first_map = CreateConVar("hm_only_the_first_map", "0", "1-Только первая карта. 0-Все карты", FCVAR_NONE);
  26.    
  27.     hm_time_spawn_min = CreateConVar("hm_time_spawn_min", "5.0", "Минимальное время спауна", FCVAR_NONE);
  28.     hm_time_spawn_max = CreateConVar("hm_time_spawn_max", "60.0", "Максимальное время спауна", FCVAR_NONE);
  29.    
  30.     hMaxCountTanks = CreateConVar("hCvarMaxTanks", "2", "Максимальное кол-во танков за карту", FCVAR_NONE);
  31.     AutoExecConfig(true, "tankspawnmaps");
  32.    
  33.     HookEvent("player_left_start_area", hLeftStart);
  34.     HookEvent("door_open", hLeftStart);
  35. }
  36.  
  37. public void OnMapStart()
  38. {
  39.     KillTimers();
  40.    
  41.     if (hm_only_the_first_map.IntValue > 0)
  42.     {
  43.         GetCurrentMap(sMap, sizeof(sMap));
  44.         if (StrContains(sMap, "m1_", true) > 1)
  45.         {
  46.             SpawnTankStart();
  47.         }
  48.     }
  49.     else
  50.     {
  51.         SpawnTankStart();
  52.     }
  53.     TankCount = 0;
  54. }
  55.  
  56. public hLeftStart(Event event, const char[] name, bool dontBroadcast)
  57. {
  58.     KillTimers();
  59.    
  60.     GetCurrentMap(sMap, sizeof(sMap));
  61.     if (StrContains(sMap, "c1m1_", true) > 1)
  62.     {
  63.         return 0;
  64.     }
  65.     SpawnTankStart();
  66.     return 0;
  67. }
  68.  
  69. void SpawnTankStart()
  70. {
  71.     float TimerTank = GetRandomFloat(GetConVarFloat(hm_time_spawn_min), GetConVarFloat(hm_time_spawn_max));
  72.     Timers = CreateTimer(TimerTank, SpawnTank, _, TIMER_REPEAT);
  73. }
  74.  
  75. void KillTimers()
  76. {
  77.     if (Timers != null)
  78.     {
  79.         CloseHandle(Timers);
  80.         Timers = null;
  81.     }
  82. }
  83.  
  84. public Action SpawnTank(Handle timer)
  85. {
  86.     for (int i = 1; i <= MaxClients; ++i) if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i))
  87.     {
  88.         if(TankCount <= GetConVarInt(hMaxCountTanks))
  89.         {
  90.             HxFakeCHEAT(i, "z_spawn_old", "tank auto");
  91.             TankCount++;
  92.         }
  93.     }
  94.    
  95.     Timers = null;
  96.    
  97.     return Plugin_Stop;
  98. }
  99.  
  100. void HxFakeCHEAT(int &client, const char[] sCmd, const char[] sArg)
  101. {
  102.     int iFlags = GetCommandFlags(sCmd);
  103.     SetCommandFlags(sCmd, iFlags & ~FCVAR_CHEAT);
  104.     FakeClientCommand(client, "%s %s", sCmd, sArg);
  105.     SetCommandFlags(sCmd, iFlags);
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement