Advertisement
FlacoBey

Untitled

Feb 5th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. #include <sourcemod>
  2.  
  3. char sMap[64];
  4. Handle TimerFirstTank = null, TimerSecondTank = null;
  5.  
  6. ConVar hMaxCountTanks, hMinTimeFirstTank, hMaxTimeFirstTank, hMaxTimeSecondTank, hMinTimeSecondTank;
  7.  
  8. int TankCount = 0;
  9.  
  10. public Plugin myinfo =
  11. {
  12.     name = "[L4D2] Spawn Tank",
  13.     author = "dr_lex & BHaType",
  14.     description = "Spawn Tank)",
  15.     version = "0.2",
  16.     url = ""
  17. }
  18.  
  19. public OnPluginStart()
  20. {
  21.    
  22.     hMinTimeFirstTank = CreateConVar("FirstTankMinSpawn", "5.0", "Минимальное время спауна 1 танка", FCVAR_NONE);
  23.     hMaxTimeFirstTank = CreateConVar("FirstTankMaxSpawn", "60.0", "Максимальное время спауна 1 танка", FCVAR_NONE);
  24.    
  25.     hMaxTimeSecondTank = CreateConVar("SecondTankMinSpawn", "5.0", "Минимальное время спауна 2 танка", FCVAR_NONE);
  26.     hMinTimeSecondTank = CreateConVar("SecondTankMaxSpawn", "60.0", "Максимальное время спауна 2 танка", 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 hLeftStart(Event event, const char[] name, bool dontBroadcast)
  36. {
  37.     GetCurrentMap(sMap, sizeof(sMap));
  38.     if (StrContains(sMap, "c1m1_", true) == -1)
  39.     {
  40.         CreateTimer(2.0, MainTimerForTanks, _, TIMER_FLAG_NO_MAPCHANGE);
  41.     }
  42. }
  43.  
  44. public Action:MainTimerForTanks(Handle timer, fuck)
  45. {
  46.     if(TimerFirstTank == INVALID_HANDLE && TimerSecondTank == INVALID_HANDLE)
  47.     {
  48.         float TimeFirstTank = GetRandomFloat(GetConVarFloat(hMinTimeFirstTank), GetConVarFloat(hMaxTimeFirstTank))
  49.         float TimeSecondTank = GetRandomFloat(GetConVarFloat(hMinTimeSecondTank), GetConVarFloat(hMaxTimeSecondTank))
  50.         CreateTimer(TimeFirstTank, FirstTank, _, TIMER_REPEAT)
  51.         CreateTimer(TimeSecondTank, SecondTank, _, TIMER_REPEAT)
  52.     }
  53. }
  54.  
  55. public Action:FirstTank(Handle timer, fuck)
  56. {
  57.     if(TankCount <= GetConVarInt(hMaxCountTanks))
  58.     {
  59.         TankCount++;
  60.         new anyclient = GetAnyClient()
  61.         SpawnCommand(anyclient, "z_spawn", "tank auto");
  62.     }
  63. }
  64.  
  65. public Action:SecondTank(Handle timer, any fuck)
  66. {
  67.     if(TankCount <= GetConVarInt(hMaxCountTanks))
  68.     {
  69.         TankCount++;
  70.         new anyclient = GetAnyClient()
  71.         SpawnCommand(anyclient, "z_spawn", "tank auto");
  72.     }
  73. }
  74.  
  75. stock SpawnCommand(client, String:command[], String:arguments[] = "") // version 1.1
  76. {
  77.     if (client)
  78.     {      
  79.         new flags = GetCommandFlags(command);
  80.         SetCommandFlags(command, flags & ~FCVAR_CHEAT);
  81.         FakeClientCommand(client, "%s %s", command, arguments);
  82.         SetCommandFlags(command, flags);
  83.     }
  84. }
  85.  
  86. stock GetAnyClient()
  87. {
  88.     new i;
  89.     for (i = 1; i <= GetMaxClients(); i++)
  90.         if (IsClientConnected(i) && IsClientInGame(i) && (!IsFakeClient(i)))
  91.             return i;
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement