From accb7234bf809bc08f177ba84b7bcdddb13a2d44 Mon Sep 17 00:00:00 2001 From: Jackz Date: Tue, 18 Feb 2020 19:21:41 -0600 Subject: [PATCH] Added autowarpbot --- AutoWarpBot.smx | Bin 0 -> 4876 bytes AutoWarpBot.sp | 78 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 3 files changed, 79 insertions(+) create mode 100644 AutoWarpBot.smx create mode 100644 AutoWarpBot.sp diff --git a/AutoWarpBot.smx b/AutoWarpBot.smx new file mode 100644 index 0000000000000000000000000000000000000000..c38c9c4fbc4187fdd787ca524b8646fb52597059 GIT binary patch literal 4876 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 QHvNg%N$@mr?ibJg1+NNPEdT%j literal 0 HcmV?d00001 diff --git a/AutoWarpBot.sp b/AutoWarpBot.sp new file mode 100644 index 0000000..b428d1a --- /dev/null +++ b/AutoWarpBot.sp @@ -0,0 +1,78 @@ +#pragma semicolon 1 +#pragma newdecls required + +#define DEBUG + +#define PLUGIN_NAME "L4D2 Auto Warp Survivors" +#define PLUGIN_DESCRIPTION "" +#define PLUGIN_AUTHOR "jackzmc" +#define PLUGIN_VERSION "1.0" +#define PLUGIN_URL "" + +#include +#include +//#include + +#pragma newdecls required + +public Plugin myinfo = +{ + name = PLUGIN_NAME, + author = PLUGIN_AUTHOR, + description = PLUGIN_DESCRIPTION, + version = PLUGIN_VERSION, + url = PLUGIN_URL +}; + +bool g_EnteredCheckpoint = false; + +public void OnPluginStart() +{ + EngineVersion g_Game = GetEngineVersion(); + if(g_Game != Engine_Left4Dead && g_Game != Engine_Left4Dead2) + { + SetFailState("This plugin is for L4D/L4D2 only."); + } + HookEvent("player_entered_checkpoint", Event_PlayerEnteredCheckpoint); + HookEvent("round_start",Event_RoundStart); +} + +public void Event_RoundStart(Event event, const char[] name, bool dontBroadcast) { + g_EnteredCheckpoint = false; +} +public void Event_PlayerEnteredCheckpoint(Event event, const char[] name, bool dontBroadcast) { + if(!g_EnteredCheckpoint) { + int client = GetClientOfUserId(event.GetInt("userid")); + bool playersLeft = false; + for (int i = 1; i < MaxClients;i++) { + if (client == i)continue; + if (!IsClientConnected(i)) continue; + if (GetClientTeam(i) != 2) continue; + + if(!IsFakeClient(i)) { + playersLeft = true; + break; + } + } + if(!playersLeft) { + g_EnteredCheckpoint = true; + CheatCommand(client,"warp_all_survivors_to_checkpoint","",""); + } + } +} +stock bool IsPlayerIncapped(int client) +{ + if (GetEntProp(client, Prop_Send, "m_isIncapacitated", 1)) return true; + return false; +} + +stock void CheatCommand(int client, char[] command, char[] argument1, char[] argument2) +{ + int userFlags = GetUserFlagBits(client); + SetUserFlagBits(client, ADMFLAG_ROOT); + int flags = GetCommandFlags(command); + SetCommandFlags(command, flags & ~FCVAR_CHEAT); + FakeClientCommand(client, "%s %s %s", command, argument1, argument2); + SetCommandFlags(command, flags); + SetUserFlagBits(client, userFlags); +} \ No newline at end of file diff --git a/README.md b/README.md index 1323197..7224da9 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,4 @@ All my sourcemod plugins... shitty probably 4,Francis,1,76,alive,0,,,,Francis 5,Louis,1,90,alive,0,,first_aid_kit,,Louis ``` +* `AutoWarpBot` - simple l4d2 plugin that will auto teleport everyone to checkpoint once all real players have reached the saferoom \ No newline at end of file