Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma semicolon 1
- #include <sourcemod>
- char sMap[64];
- Handle Timers = null;
- ConVar hm_only_the_first_map , hMaxCountTanks;
- ConVar hm_time_spawn_min;
- ConVar hm_time_spawn_max;
- int TankCount = 0;
- public Plugin myinfo =
- {
- name = "[L4D2] Spawn Tank",
- author = "dr_lex & BHaType",
- description = "Spawn Tank)",
- version = "0.2",
- url = ""
- }
- public void OnPluginStart()
- {
- hm_only_the_first_map = CreateConVar("hm_only_the_first_map", "0", "1-Только первая карта. 0-Все карты", FCVAR_NONE);
- hm_time_spawn_min = CreateConVar("hm_time_spawn_min", "5.0", "Минимальное время спауна", FCVAR_NONE);
- hm_time_spawn_max = CreateConVar("hm_time_spawn_max", "60.0", "Максимальное время спауна", FCVAR_NONE);
- hMaxCountTanks = CreateConVar("hCvarMaxTanks", "2", "Максимальное кол-во танков за карту", FCVAR_NONE);
- AutoExecConfig(true, "tankspawnmaps");
- HookEvent("player_left_start_area", hLeftStart);
- HookEvent("door_open", hLeftStart);
- }
- public void OnMapStart()
- {
- KillTimers();
- if (hm_only_the_first_map.IntValue > 0)
- {
- GetCurrentMap(sMap, sizeof(sMap));
- if (StrContains(sMap, "m1_", true) > 1)
- {
- SpawnTankStart();
- }
- }
- else
- {
- SpawnTankStart();
- }
- TankCount = 0;
- }
- public hLeftStart(Event event, const char[] name, bool dontBroadcast)
- {
- KillTimers();
- GetCurrentMap(sMap, sizeof(sMap));
- if (StrContains(sMap, "c1m1_", true) > 1)
- {
- return 0;
- }
- SpawnTankStart();
- return 0;
- }
- void SpawnTankStart()
- {
- float TimerTank = GetRandomFloat(GetConVarFloat(hm_time_spawn_min), GetConVarFloat(hm_time_spawn_max));
- Timers = CreateTimer(TimerTank, SpawnTank, _, TIMER_REPEAT);
- }
- void KillTimers()
- {
- if (Timers != null)
- {
- CloseHandle(Timers);
- Timers = null;
- }
- }
- public Action SpawnTank(Handle timer)
- {
- for (int i = 1; i <= MaxClients; ++i) if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i))
- {
- if(TankCount <= GetConVarInt(hMaxCountTanks))
- {
- HxFakeCHEAT(i, "z_spawn_old", "tank auto");
- TankCount++;
- }
- }
- Timers = null;
- return Plugin_Stop;
- }
- void HxFakeCHEAT(int &client, const char[] sCmd, const char[] sArg)
- {
- int iFlags = GetCommandFlags(sCmd);
- SetCommandFlags(sCmd, iFlags & ~FCVAR_CHEAT);
- FakeClientCommand(client, "%s %s", sCmd, sArg);
- SetCommandFlags(sCmd, iFlags);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement