From ca7d54b6f3731804d7e06d40a4f868249469d857 Mon Sep 17 00:00:00 2001 From: Jackz Date: Mon, 27 Jun 2022 11:39:40 -0500 Subject: [PATCH] Add new trolls and things --- plugins/l4d2_feedthetrolls.smx | Bin 79434 -> 83242 bytes scripting/include/feedthetrolls/base.inc | 27 +- scripting/include/feedthetrolls/commands.inc | 68 ++- scripting/include/feedthetrolls/events.inc | 163 ++++-- scripting/include/feedthetrolls/menus.inc | 42 +- scripting/include/feedthetrolls/misc.inc | 92 ++-- scripting/include/feedthetrolls/timers.inc | 88 ++- scripting/include/feedthetrolls/trolls.inc | 549 ++++++++++--------- scripting/include/ftt.inc | 17 +- scripting/l4d2_feedthetrolls.sp | 52 +- 10 files changed, 673 insertions(+), 425 deletions(-) diff --git a/plugins/l4d2_feedthetrolls.smx b/plugins/l4d2_feedthetrolls.smx index 7bdc927bf0a965d3a46fd185f7d73a1a48f4a350..6d04f4588d7e7809653e5a0e7e178d245f06bd0e 100644 GIT binary patch literal 83242 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 literal 79434 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 z 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 AKmY&$ diff --git a/scripting/include/feedthetrolls/base.inc b/scripting/include/feedthetrolls/base.inc index c53913e..d21d430 100644 --- a/scripting/include/feedthetrolls/base.inc +++ b/scripting/include/feedthetrolls/base.inc @@ -4,7 +4,7 @@ //Allow MAX_TROLLS to be defined elsewhere #if defined MAX_TROLLS #else - #define MAX_TROLLS 40 + #define MAX_TROLLS 41 #endif enum trollModifier { @@ -298,11 +298,8 @@ bool IsAnyTrollActive(int victim) { } // Gets the Troll enum struct via key index // Returns index of troll enum -int GetTrollByKeyIndex(int index, Troll troll) { - // static char name[MAX_TROLL_NAME_LENGTH]; - // trollIds.GetKey(index, name, sizeof(name)); +void GetTrollByKeyIndex(int index, Troll troll) { troll = Trolls[index]; - // return GetTroll(name, troll); } void ToggleTroll(int client, const char[] name, int flags = 0) { @@ -365,8 +362,8 @@ void ApplyTroll(int victim, const char[] name, int activator, trollModifier modi // Log all actions, indicating if constant or single-fire, and if any flags if(!silent) { if(isActive) { - CShowActivityEx(activator, "[FTT] ", "deactivated {green}\"%s\"{default} on %N. ", troll.name, victim); - LogAction(activator, victim, "\"%L\" deactivated {green}\"%s\"{default} on \"%L\"", activator, troll.name, victim); + CShowActivityEx(activator, "[FTT] ", "deactivated {yellow}\"%s\"{default} on %N. ", troll.name, victim); + LogAction(activator, victim, "\"%L\" deactivated {yellow}\"%s\"{default} on \"%L\"", activator, troll.name, victim); } else { static char flagName[MAX_TROLL_FLAG_LENGTH]; flagName[0] = '\0'; @@ -387,25 +384,25 @@ void ApplyTroll(int victim, const char[] name, int activator, trollModifier modi if(modifier & TrollMod_Constant) { if(flags > 0) { if(flagName[0] != '\0') { - CShowActivityEx(activator, "[FTT] ", "activated constant {green}\"%s\"{default} ({yellow}%s{default}) for %N. ", troll.name, flagName, victim); + CShowActivityEx(activator, "[FTT] ", "activated constant {yellow}%s{default} ({yellow}%s{default}) for %N. ", troll.name, flagName, victim); } else { - CShowActivityEx(activator, "[FTT] ", "activated constant {green}\"%s\"{default} ({yellow}%d{default}) for %N. ", troll.name, flags, victim); + CShowActivityEx(activator, "[FTT] ", "activated constant {yellow}%s{default} ({yellow}%d{default}) for %N. ", troll.name, flags, victim); } } else - CShowActivityEx(activator, "[FTT] ", "activated constant {green}\"%s\"{default} for %N. ", troll.name, victim); + CShowActivityEx(activator, "[FTT] ", "activated constant {yellow}%s{default} for %N. ", troll.name, victim); } else if(flags > 0) { if(flagName[0] != '\0') { - CShowActivityEx(activator, "[FTT] ", "activated {green}\"%s\"{default} ({yellow}%s{default}) for %N. ", troll.name, flagName, victim); + CShowActivityEx(activator, "[FTT] ", "activated {yellow}%s{default} ({yellow}%s{default}) for %N. ", troll.name, flagName, victim); } else { - CShowActivityEx(activator, "[FTT] ", "activated {green}\"%s\"{default} ({yellow}%d{default}) for %N. ", troll.name, flags, victim); + CShowActivityEx(activator, "[FTT] ", "activated {yellow}%s{default} ({yellow}%d{default}) for %N. ", troll.name, flags, victim); } } else - CShowActivityEx(activator, "[FTT] ", "activated {green}\"%s\"{default} for %N. ", troll.name, victim); + CShowActivityEx(activator, "[FTT] ", "activated {yellow}%s{default} for %N. ", troll.name, victim); - LogAction(activator, victim, "\"%L\" activated {green}\"%s\"{default} ({yellow}%d{default}) for \"%L\"", activator, troll.name, flags, victim); + LogAction(activator, victim, "\"%L\" activated \"%s\" (%d) for \"%L\"", activator, troll.name, flags, victim); } } else { - CReplyToCommand(activator, "ftt: Applied {green}\"%s\"{default} on %N with flags=%d", troll.name, victim, flags); + CReplyToCommand(activator, "ftt: Applied {yellow}\"%s\"{default} on %N with flags=%d", troll.name, victim, flags); } } diff --git a/scripting/include/feedthetrolls/commands.inc b/scripting/include/feedthetrolls/commands.inc index f1cdd28..b42479b 100644 --- a/scripting/include/feedthetrolls/commands.inc +++ b/scripting/include/feedthetrolls/commands.inc @@ -36,7 +36,6 @@ public Action Command_InstaSpecial(int client, int args) { return Plugin_Handled; } SpecialType specialType = GetSpecialType(arg2); - static float pos[3]; if(specialType == Special_Invalid) { ReplyToCommand(client, "Unknown special \"%s\"", arg2); return Plugin_Handled; @@ -101,7 +100,6 @@ public Action Command_InstaSpecialFace(int client, int args) { return Plugin_Handled; } SpecialType specialType = GetSpecialType(arg2); - static float pos[3]; if(specialType == Special_Invalid) { ReplyToCommand(client, "Unknown special \"%s\"", arg2); return Plugin_Handled; @@ -337,7 +335,6 @@ public Action Command_ApplyUserSilent(int client, int args) { } public Action Command_ListModes(int client, int args) { - static char name[MAX_TROLL_NAME_LENGTH]; static Troll troll; for(int i = 0; i <= MAX_TROLLS; i++) { GetTrollByKeyIndex(i, troll); @@ -410,7 +407,6 @@ public Action Command_ListTheTrolls(int client, int args) { int count = 0; char[][] modeListArr = new char[MAX_TROLLS+1][MAX_TROLL_NAME_LENGTH]; static char modeList[255]; - static char name[MAX_TROLL_NAME_LENGTH]; for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && IsClientInGame(i) && GetClientTeam(i) > 1 && IsAnyTrollActive(i)) { if(IsFakeClient(i)) { @@ -612,4 +608,68 @@ public Action Command_SmartCharge(int client, int args) { ReplyToCommand(client, "syntax: sm_smartcharge [timeout or default 10s]"); } return Plugin_Handled; +} + +public Action Command_HealTarget(int client, int args) { + if(args > 0) { + char arg1[32], arg2[4]; + GetCmdArg(1, arg1, sizeof(arg1)); + GetCmdArg(2, arg2, sizeof(arg2)); + int target_list[1], target_count; + static char target_name[MAX_TARGET_LENGTH]; + bool tn_is_ml; + if ((target_count = ProcessTargetString( + arg1, + client, + target_list, + 1, + COMMAND_FILTER_ALIVE | COMMAND_FILTER_NO_MULTI, + target_name, + sizeof(target_name), + tn_is_ml)) <= 0 + ) { + /* This function replies to the admin with a failure message */ + ReplyToTargetError(client, target_count); + return Plugin_Handled; + } + + int target = target_list[0]; + int targetUserId = GetClientUserId(target); + if(targetUserId == healTargetPlayer) { + ShowActivity(client, "cleared bots healing for %N", target); + StopHealingBots(); + } else { + healTargetPlayer = targetUserId; + CreateTimer(3.0, Timer_UpdateHealTargetPos, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); + + int limit = StringToInt(arg2); + if(limit <= 0) limit = MaxClients; + for(int i = 1; i <= MaxClients; i++) { + if(IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2 && IsFakeClient(i)) { + int kit = GetPlayerWeaponSlot(i, 3); + if(kit > 0) { + GetEntityClassname(kit, arg1, sizeof(arg1)); + if(StrEqual(arg1, "weapon_first_aid_kit")) { + isTargettingHealer[i] = true; + + if(--limit == 0) { + break; + } + } + } + } + } + if(limit > 0) { + wasAbmAutoHard = hAbmAutoHard.IntValue; + hAbmAutoHard.IntValue = 0; + CreateTimer(0.2, Timer_SpawnBots, limit, TIMER_FLAG_NO_MAPCHANGE | TIMER_REPEAT); + } + ShowActivity(client, "made all bots heal %N", target); + wasSbFixEnabled = hSbFixEnabled.BoolValue; + hSbFixEnabled.BoolValue = false; + } + } else { + ReplyToCommand(client, "Usage: /healbots [# of bots or 0 for all]"); + } + return Plugin_Handled; } \ No newline at end of file diff --git a/scripting/include/feedthetrolls/events.inc b/scripting/include/feedthetrolls/events.inc index 4b820c8..6bb78e7 100644 --- a/scripting/include/feedthetrolls/events.inc +++ b/scripting/include/feedthetrolls/events.inc @@ -51,33 +51,40 @@ public Action Timer_CheckSpecial(Handle h, int specialID) { int special = GetClientOfUserId(specialID); // Check if new player is the spawned special: if(spIsActive && special > 0 && IsFakeClient(special) && GetClientTeam(special) == 3) { - SpecialType type = view_as(GetEntProp(special, Prop_Send, "m_zombieClass")); - if(type == spActiveRequest.type) { - // Ignore any fake clients with 'Bot' in name - static char buf[32]; - GetClientName(special, buf, sizeof(buf)); - if(StrContains(buf, "bot", false) == -1) { - if(spActiveRequest.targetUserId) { - g_iAttackerTarget[special] = spActiveRequest.targetUserId; - g_iSpecialAttackFlags[special] = spActiveRequest.flags; - } - - TeleportEntity(special, spActiveRequest.position, spActiveRequest.angle, NULL_VECTOR); - if(spActiveRequest.flags & view_as(SPI_KillOnSpawn)) { - if(type == Special_Spitter) { - float pos[3]; - GetClientEyePosition(special, pos); - L4D2_SpitterPrj(special, pos, SPIT_VEL); + //g_iPendingSurvivorAdd + if(GetClientTeam(special) == 2 && g_iPendingSurvivorAdd && GetEntProp(special, Prop_Send, "m_humanSpectatorUserID") == 0) { + g_iPendingSurvivorAdd = false; + isCustomSurvivor[special] = true; + } else if(GetClientTeam(special) == 3) { + SpecialType type = view_as(GetEntProp(special, Prop_Send, "m_zombieClass")); + if(type == spActiveRequest.type) { + // Ignore any fake clients with 'Bot' in name + static char buf[32]; + GetClientName(special, buf, sizeof(buf)); + if(StrContains(buf, "bot", false) == -1) { + if(spActiveRequest.targetUserId) { + g_iAttackerTarget[special] = spActiveRequest.targetUserId; + g_iSpecialAttackFlags[special] = spActiveRequest.flags; } - RequestFrame(Frame_Boom, special); + + TeleportEntity(special, spActiveRequest.position, spActiveRequest.angle, NULL_VECTOR); + if(spActiveRequest.flags & view_as(SPI_KillOnSpawn)) { + if(type == Special_Spitter) { + float pos[3]; + GetClientEyePosition(special, pos); + L4D2_SpitterPrj(special, pos, SPIT_VEL); + } + RequestFrame(Frame_Boom, special); + } + + g_iSpId++; + + ProcessSpecialQueue(); } - - g_iSpId++; - - ProcessSpecialQueue(); } } } + return Plugin_Handled; } public void Frame_Boom(int special) { SDKHooks_TakeDamage(special, special, special, 1000.0); @@ -98,7 +105,8 @@ public void OnClientAuthorized(int client, const char[] auth) { } } public void Event_PlayerDisconnect(Event event, const char[] name, bool dontBroadcast) { - int client = GetClientOfUserId(event.GetInt("userid")); + int userid = event.GetInt("userid"); + int client = GetClientOfUserId(userid); if(client > 0 && g_PendingBanTroll[client] > 0) { if(!IsFakeClient(client) && GetUserAdmin(client) == INVALID_ADMIN_ID) { BanIdentity(steamids[client], 0, BANFLAG_AUTHID, "Marked as Troll", "ftt", GetClientOfUserId(g_PendingBanTroll[client])); @@ -110,8 +118,13 @@ public void Event_PlayerDisconnect(Event event, const char[] name, bool dontBroa shootAtTarget[client] = 0; shootAtTargetLoops[client] = 0; shootAtTargetHP[client] = 0; + isTargettingHealer[client] = false; + isCustomSurvivor[client] = false; + if(healTargetPlayer == userid) { + healTargetPlayer = 0; + } } -public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) { +public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) { int userid = event.GetInt("userid"); int client = GetClientOfUserId(userid); if(client > 0) { @@ -166,6 +179,7 @@ public void Event_CarAlarm(Event event, const char[] name, bool dontBroadcast) { } public Action RushPlayer(Handle h, int user) { L4D2_RunScript("RushVictim(GetPlayerFromUserID(%d), %d)", user, 15000); + return Plugin_Handled; } public Action L4D2_OnChooseVictim(int attacker, int &curTarget) { static int spMagnetID, tankMagnetID; @@ -269,10 +283,10 @@ public Action OnClientSayCommand(int client, const char[] command, const char[] if(Trolls[honkID].IsActive(client) && Trolls[honkID].activeFlagClients[client] & 1) { // Honk Processing - static char strings[32][7]; + static char strings[32][8]; int words = ExplodeString(sArgs, " ", strings, sizeof(strings), 5); for(int i = 0; i < words; i++) { - if(GetRandomFloat() <= 0.8) strings[i] = "honk"; + if(GetRandomFloat() <= 0.8) strings[i] = "honk "; else strings[i] = "squeak"; } int length = 7 * words; @@ -306,7 +320,7 @@ public Action OnClientSayCommand(int client, const char[] command, const char[] PrintToServer("%N: %s", client, sArgs); return Plugin_Handled; }else if(IsTrollActive(client, "iCantSpellNoMore")) { - int type = GetRandomInt(1, 13 + 5); + int type = GetRandomInt(1, 14 + 3); char letterSrc, replaceChar; switch(type) { case 1: { @@ -513,6 +527,19 @@ public Action Event_ItemPickup(int client, int weapon) { public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2]) { // If 'KillMeSoftly' activated: + int healTarget = GetClientOfUserId(healTargetPlayer); + if(healTarget > 0 && isTargettingHealer[client] && healTarget != client) { + static float pos[3]; + GetClientAbsOrigin(client, pos); + LookAtClient(client, healTarget); + if(GetVectorDistance(pos, healTargetPos, true) < 10000.0) { + if(GetClientAimTarget(client, true) == healTarget) { + buttons |= IN_ATTACK2; + return Plugin_Changed; + } + } + } + if(g_bPendingItemGive[client] && !(buttons & IN_ATTACK2)) { int target = GetClientAimTarget(client, true); if(target > -1) { @@ -570,9 +597,16 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 public Action Event_TakeDamage(int victim, int& attacker, int& inflictor, float& damage, int& damagetype) { //Stop FF from marked: - static int reverseFF; + static int reverseFF, nerfGunIndex; if(reverseFF == 0) reverseFF = GetTrollID("Reverse FF"); - if(attacker > 0 && attacker <= MaxClients && GetClientTeam(attacker) == 4 && IsFakeClient(attacker)) return Plugin_Continue; + if(nerfGunIndex == 0) nerfGunIndex = GetTrollID("Nerf Gun"); + if(attacker > 0 && attacker <= MaxClients) { + if(GetClientTeam(attacker) == 4 && IsFakeClient(attacker)) return Plugin_Continue; + else if(Trolls[nerfGunIndex].IsActive(attacker)) { + damage = 0.0; + return Plugin_Changed; + } + } if(attacker > 0 && victim <= MaxClients && attacker <= MaxClients && IsClientInGame(attacker) && IsPlayerAlive(attacker)) { if(shootAtTarget[attacker] == victim) return Plugin_Continue; @@ -630,7 +664,50 @@ public Action Event_TakeDamage(int victim, int& attacker, int& inflictor, float& return Plugin_Continue; } -public Action SoundHook(int[] clients, int& numClients, char sample[PLATFORM_MAX_PATH], int& entity, int& channel, float& volume, int& level, int& pitch, int& flags, char[] soundEntry, int& seed) { +public Action OnVocalizeCommand(int client, const char[] vocalize, int initiator) { + static int vocalGagID; + if(vocalGagID == 0) vocalGagID = GetTrollID("Vocalize Gag"); + if(Trolls[vocalGagID].IsActive(client)) { + return Plugin_Handled; + } + return Plugin_Continue; +} + +public void OnSceneStageChanged(int scene, SceneStages stage) { + if(stage == SceneStage_Spawned) { + static int vocalGagID, vocalizeSpecials; + if(vocalizeSpecials == 0) vocalizeSpecials = GetTrollID("Vocalize Specials"); + + + int activator = GetSceneInitiator(scene); + if(activator > 0 && activator <= MaxClients) { + if(Trolls[vocalizeSpecials].IsActive(activator)) { + static char sceneFile[32]; + GetSceneFile(scene, sceneFile, sizeof(sceneFile)); + if(StrContains(sceneFile, "warnboomer") > -1) { + SpawnSpecialForTarget(Special_Boomer, activator, Special_OnTarget); + } else if(StrContains(sceneFile, "warnhunter") > -1) { + SpawnSpecialForTarget(Special_Hunter, activator, Special_OnTarget); + } else if(StrContains(sceneFile, "warnsmoker") > -1) { + SpawnSpecialForTarget(Special_Smoker, activator, Special_OnTarget); + } else if(StrContains(sceneFile, "warnspitter") > -1) { + SpawnSpecialForTarget(Special_Spitter, activator, Special_OnTarget); + } else if(StrContains(sceneFile, "warnjockey") > -1) { + SpawnSpecialForTarget(Special_Jockey, activator, Special_OnTarget); + } else if(StrContains(sceneFile, "warncharger") > -1) { + SpawnSpecialForTarget(Special_Charger, activator, Special_OnTarget); + } + if(Trolls[vocalizeSpecials].activeFlagClients[activator] & 1) { + CancelScene(scene); + } + } else if(Trolls[vocalGagID].IsActive(activator)) { + CancelScene(scene); + } + } + } +} + +public Action SoundHook(int clients[MAXPLAYERS], int& numClients, char sample[PLATFORM_MAX_PATH], int& entity, int& channel, float& volume, int& level, int& pitch, int& flags, char soundEntry[PLATFORM_MAX_PATH], int& seed) { static int honkID; static int vocalGagID; if(honkID == 0) honkID = GetTrollID("Honk / Meow"); @@ -657,7 +734,9 @@ public Action SoundHook(int[] clients, int& numClients, char sample[PLATFORM_MAX strcopy(sample, sizeof(sample), "player/footsteps/clown/concrete1.wav"); else if(Trolls[honkID].activeFlagClients[entity] & 2) strcopy(sample, sizeof(sample), "custom/meow1.mp3"); - else return Plugin_Changed; + else + return Plugin_Continue; + return Plugin_Changed; } else if(Trolls[vocalGagID].IsActive(entity)) { if(Trolls[vocalGagID].activeFlagClients[entity] & 2) { clients[0] = entity; @@ -671,7 +750,7 @@ public Action SoundHook(int[] clients, int& numClients, char sample[PLATFORM_MAX return Plugin_Continue; } -public Action Event_WitchVictimSet(Event event, const char[] name, bool dontBroadcast) { +public void Event_WitchVictimSet(Event event, const char[] name, bool dontBroadcast) { static int witchTrollID; if(witchTrollID == 0) witchTrollID = GetTrollID("Witch Magnet"); @@ -779,7 +858,7 @@ public Action L4D2_MeleeGetDamageForVictim(int client, int weapon, int victim, f return Plugin_Continue; } -int FindClosestVisibleClient(int source) { +stock int FindClosestVisibleClient(int source) { static float pos[3], ang[3]; GetClientEyePosition(source, pos); GetClientEyeAngles(source, ang); @@ -801,11 +880,12 @@ public Action OnAntiRush(int client, int &type, float distance) { PrintToConsoleAll("[FTT] Spawning anti-rush special on %N (dist=%f) (special=%N)", client, distance, SPECIAL_NAMES[view_as(special)-1]); } } + return Plugin_Continue; } public void L4D2_CInsectSwarm_CanHarm_Post(int acid, int spitter, int entity) { if(entity <= MaxClients) - iLastInSpit[entity] = GetGameTime(); + fLastInSpit[entity] = GetGameTime(); } public void Event_EnteredSpit(Event event, const char[] name, bool dontBroadcast) { @@ -816,8 +896,11 @@ public void Event_EnteredSpit(Event event, const char[] name, bool dontBroadcast else if(Trolls[stickyGooIndex].activeFlagClients[client] & 2) movement = 0.3; SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", movement); - iLastInSpit[client] = GetGameTime(); - CreateTimer(0.2, Timer_CheckIsInSpit, GetClientUserId(client), TIMER_REPEAT); + fLastInSpit[client] = GetGameTime(); + if(!hasSpitTimer[client]) { + CreateTimer(0.2, Timer_CheckIsInSpit, GetClientUserId(client), TIMER_REPEAT); + hasSpitTimer[client] = true; + } } } @@ -837,3 +920,11 @@ public void Event_BotPlayerSwap(Event event, const char[] name, bool dontBroadca PrintToServer("[FTT] Re-applied trolls for was-idle player %N", client); } } + +void Event_HealSuccess(Event event, const char[] name, bool dontBroadcast) { + int userid = event.GetInt("subject"); + int client = GetClientOfUserId(userid); + if(client > 0 && userid == healTargetPlayer) { + StopHealingBots(); + } +} \ No newline at end of file diff --git a/scripting/include/feedthetrolls/menus.inc b/scripting/include/feedthetrolls/menus.inc index 2d51c4c..fa446ba 100644 --- a/scripting/include/feedthetrolls/menus.inc +++ b/scripting/include/feedthetrolls/menus.inc @@ -12,6 +12,7 @@ public int Insta_PlayerHandler(Menu menu, MenuAction action, int client, int par ShowInstaSpecialChooser(client, userid, instaMode); } else if (action == MenuAction_End) delete menu; + return 0; } void ShowInstaSpecialChooser(int activator, int userid, int instaMode) { @@ -72,6 +73,7 @@ public int ChooseMarkedTroll(Menu menu, MenuAction action, int activator, int pa ToggleMarkPlayer(activator, target); } else if (action == MenuAction_End) delete menu; + return 0; } public int ChoosePlayerHandler(Menu menu, MenuAction action, int param1, int param2) { @@ -84,12 +86,13 @@ public int ChoosePlayerHandler(Menu menu, MenuAction action, int param1, int par if(client == 0) { ReplyToCommand(param1, "FTT: Could not acquire player"); - return; + return 0; } SetupCategoryMenu(param1, userid); } else if (action == MenuAction_End) delete menu; + return 0; } public int ChoosePlayerHandlerForCombos(Menu menu, MenuAction action, int client, int param2) { @@ -101,12 +104,13 @@ public int ChoosePlayerHandlerForCombos(Menu menu, MenuAction action, int client if(victim == 0) { ReplyToCommand(victim, "FTT: Could not acquire player"); - return; + return 0; } ShowTrollCombosMenu(client, userid); } else if (action == MenuAction_End) delete menu; + return 0; } public int ChooseComboHandler(Menu menu, MenuAction action, int client, int param2) { @@ -121,7 +125,7 @@ public int ChooseComboHandler(Menu menu, MenuAction action, int client, int para if(victim == 0) { ReplyToCommand(client, "FTT: Could not acquire player"); - return; + return 0; } static TrollCombo combo; @@ -129,6 +133,7 @@ public int ChooseComboHandler(Menu menu, MenuAction action, int client, int para combo.Activate(client, victim); } else if (action == MenuAction_End) delete menu; + return 0; } static int iMenuVictimID[MAXPLAYERS+1]; @@ -144,7 +149,7 @@ public int ChooseCategoryHandler(Menu menu, MenuAction action, int param1, int p int client = GetClientOfUserId(userid); if(client == 0) { ReplyToCommand(param1, "FTT: Could not acquire player"); - return; + return 0; } iMenuVictimID[param1] = userid; @@ -153,12 +158,13 @@ public int ChooseCategoryHandler(Menu menu, MenuAction action, int param1, int p // Reset troll: if(category == -1) { ApplyTroll(GetClientOfUserId(userid), "Reset User", param1, TrollMod_Instant); - return; + return 0; } ShowTrollsForCategory(param1, userid, category); } else if (action == MenuAction_End) delete menu; + return 0; } public int ChooseModeMenuHandler(Menu menu, MenuAction action, int param1, int param2) { @@ -178,7 +184,7 @@ public int ChooseModeMenuHandler(Menu menu, MenuAction action, int param1, int p int client = GetClientOfUserId(userid); if(client == 0) { ReplyToCommand(param1, "FTT: Could not acquire player"); - return; + return 0; } int keyIndex = StringToInt(str[1]); @@ -188,7 +194,7 @@ public int ChooseModeMenuHandler(Menu menu, MenuAction action, int param1, int p if(StrEqual(troll.name, "Throw It All")) { // Setup menu to call itself, but with an extra data point ShowThrowItAllMenu(param1, userid); - } else if(troll.HasMod(TrollMod_Instant) && troll.HasMod(TrollMod_Constant)) { + } else if(!troll.IsActive(client) && troll.HasMod(TrollMod_Instant) && troll.HasMod(TrollMod_Constant)) { Menu modiferMenu = new Menu(ChooseTrollModiferHandler); Format(info, sizeof(info), "%s: Choose Modifier", troll.name); modiferMenu.SetTitle(info); @@ -203,7 +209,7 @@ public int ChooseModeMenuHandler(Menu menu, MenuAction action, int param1, int p modiferMenu.ExitButton = true; modiferMenu.Display(param1, 0); } else if(troll.HasFlags() && !troll.IsActive(client)) { - ShowSelectFlagMenu(param1, userid, 0, troll); + ShowSelectFlagMenu(param1, userid, -1, troll); } else { troll.Activate(client, param1); ShowTrollsForCategory(param1, userid, troll.categoryID); @@ -211,6 +217,7 @@ public int ChooseModeMenuHandler(Menu menu, MenuAction action, int param1, int p } else if (action == MenuAction_End) delete menu; + return 0; } public int ChooseClumsySlotHandler(Menu menu, MenuAction action, int param1, int param2) { @@ -224,7 +231,7 @@ public int ChooseClumsySlotHandler(Menu menu, MenuAction action, int param1, int int slot = StringToInt(str[1]); if(client == 0) { ReplyToCommand(param1, "FTT: Could not acquire player"); - return; + return 0; }else if(slot == -1) { for(int i = 0; i <= 4; i++) { ThrowItemToPlayer(client, param1, i); @@ -238,6 +245,7 @@ public int ChooseClumsySlotHandler(Menu menu, MenuAction action, int param1, int ShowThrowItAllMenu(param1, userid); } else if (action == MenuAction_End) delete menu; + return 0; } public int ChooseTrollModiferHandler(Menu menu, MenuAction action, int param1, int param2) { @@ -253,7 +261,7 @@ public int ChooseTrollModiferHandler(Menu menu, MenuAction action, int param1, i if(client == 0) { ReplyToCommand(param1, "FTT: Could not acquire player"); - return; + return 0; } static Troll troll; @@ -272,6 +280,7 @@ public int ChooseTrollModiferHandler(Menu menu, MenuAction action, int param1, i } else if (action == MenuAction_End) delete menu; + return 0; } public int ChooseTrollFlagHandler(Menu menu, MenuAction action, int param1, int param2) { @@ -290,13 +299,12 @@ public int ChooseTrollFlagHandler(Menu menu, MenuAction action, int param1, int if(client == 0) { ReplyToCommand(param1, "FTT: Could not acquire player"); - return; + return 0; } static Troll troll; GetTrollByKeyIndex(keyIndex, troll); - static TrollFlagPrompt prompt; // If told to go to next prompt, find the next VALID prompt // Valid prompt is one where the required flags for it, are active @@ -305,12 +313,12 @@ public int ChooseTrollFlagHandler(Menu menu, MenuAction action, int param1, int // If there is a prompt available, show it, else fall down if(nextIndex != -1) { ShowSelectFlagMenu(param1, userid, modifiers, troll, flags, nextIndex); - return; + return 0; } // else fall through & apply } else { ShowSelectFlagMenu(param1, userid, modifiers, troll, flags, index); - return; + return 0; } // Done with prompts, apply flags & modifiers @@ -326,6 +334,7 @@ public int ChooseTrollFlagHandler(Menu menu, MenuAction action, int param1, int ShowTrollsForCategory(param1, userid, troll.categoryID); } else if (action == MenuAction_End) delete menu; + return 0; } @@ -428,7 +437,7 @@ void ShowTrollsForCategory(int client, int userid, int category) { } // Called with defaults on start, then recalled by ChooseTrollFlagHandler until prompt selection finished -void ShowSelectFlagMenu(int activator, int victimUserID, int modifiers, Troll troll, int prevFlags = 0, int promptIndex = 0) { +void ShowSelectFlagMenu(int activator, int victimUserID, int modifiers, Troll troll, int prevFlags = -1, int promptIndex = 0) { static char info[MAX_TROLL_NAME_LENGTH+16]; //victimUSERID|trollID|modifiers|flags||flagIndex static char name[32]; @@ -442,7 +451,7 @@ void ShowSelectFlagMenu(int activator, int victimUserID, int modifiers, Troll tr flagMenu.SetTitle(info); if(prompt.multiselect) { - if(prevFlags == 0) prevFlags = prompt.defaults; + if(prevFlags == -1) prevFlags = prompt.defaults; Format(info, sizeof(info), "%d|%d|%d|%d|%d|1", victimUserID, troll.id, modifiers, prevFlags, promptIndex); flagMenu.AddItem(info, "Apply / Next Prompt"); @@ -461,6 +470,7 @@ void ShowSelectFlagMenu(int activator, int victimUserID, int modifiers, Troll tr } } else { // Single choice only + if(prevFlags == -1) prevFlags = 0; for(int i = 0; i < troll.flagNames.Length; i++) { int a = 1 << i; if(prompt.flags & a) { diff --git a/scripting/include/feedthetrolls/misc.inc b/scripting/include/feedthetrolls/misc.inc index dc4a5ed..5bcbf8f 100644 --- a/scripting/include/feedthetrolls/misc.inc +++ b/scripting/include/feedthetrolls/misc.inc @@ -4,15 +4,15 @@ void ActivateAutoPunish(int client) { if(hAutoPunish.IntValue & 2 == 2) - ApplyTroll(lastButtonUser, "Special Magnet", 0, TrollMod_Constant); + ApplyTroll(client, "Special Magnet", 0, TrollMod_Constant); if(hAutoPunish.IntValue & 1 == 1) - ApplyTroll(lastButtonUser, "Tank Magnet", 0, TrollMod_Constant); + ApplyTroll(client, "Tank Magnet", 0, TrollMod_Constant); if(hAutoPunish.IntValue & 8 == 8) - ApplyTroll(lastButtonUser, "Vomit Player", 0, TrollMod_Instant); + ApplyTroll(client, "Vomit Player", 0, TrollMod_Instant); else if(hAutoPunish.IntValue & 4 == 4) - ApplyTroll(lastButtonUser, "Swarm", 0, TrollMod_Instant); + ApplyTroll(client, "Swarm", 0, TrollMod_Instant); if(hAutoPunishExpire.IntValue > 0) { - CreateTimer(60.0 * hAutoPunishExpire.FloatValue, Timer_ResetAutoPunish, GetClientOfUserId(lastButtonUser)); + CreateTimer(60.0 * hAutoPunishExpire.FloatValue, Timer_ResetAutoPunish, GetClientOfUserId(client)); } } @@ -137,7 +137,7 @@ ArrayList GetPhrasesArray(const char[] key) { } -int FindClosestClientAdminPriority(int source, bool ignoreBots, float pos[3]) { +stock int FindClosestClientAdminPriority(int source, bool ignoreBots, float pos[3]) { int c = FindClosestAdmin(source, ignoreBots, pos); if(c == -1) return FindClosestClient(source, ignoreBots, pos); else return c; @@ -170,7 +170,10 @@ int FindClosestAdmin(int source, bool ignoreBots, float pos[3]) { static float pos2[3]; GetClientAbsOrigin(source, pos); for(int i = 1; i <= MaxClients; i++) { - if(IsClientConnected(i) && IsClientInGame(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i) && (|ignoreBots || !IsFakeClient(i)) && GetUserAdmin(i) != INVALID_ADMIN_ID && i != source) { + if(IsClientConnected(i) && IsClientInGame(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i) && + (ignoreBots || !IsFakeClient(i)) + && GetUserAdmin(i) != INVALID_ADMIN_ID && i != source + ) { GetClientAbsOrigin(i, pos2); float dist = GetVectorDistance(pos1, pos2); if(minDist == -1.0 || dist <= minDist) { @@ -221,34 +224,6 @@ void ThrowItemToPlayer(int victim, int target, int slot) { } } -void ThrowItemToClosestPlayer(int victim, int slot) { - int wpn = GetPlayerWeaponSlot(victim, slot); - if(wpn > 0 && (slot != 1 || DoesClientHaveMelee(victim))) { - static float pos[3]; - int clients[4]; - GetClientAbsOrigin(victim, pos); - int clientCount = GetClientsInRange(pos, RangeType_Visibility, clients, sizeof(clients)); - for(int i = 0; i < clientCount; i++) { - if(clients[i] != victim) { - static float targPos[3]; - GetClientAbsOrigin(clients[i], targPos); - SDKHooks_DropWeapon(victim, wpn, targPos); - if(slot == 1) - CreateTimer(0.2, Timer_GivePistol, GetClientUserId(victim)); - return; - } - } - // No client found, drop on ground: - SDKHooks_DropWeapon(victim, wpn, NULL_VECTOR); - } -} - -void DropItem(int victim, int slot) { - int wpn = GetPlayerWeaponSlot(victim, slot); - if(slot != 1 || DoesClientHaveMelee(victim)) { - SDKHooks_DropWeapon(victim, wpn, NULL_VECTOR); - } -} stock void AddInFrontOf(float fVecOrigin[3], float fVecAngle[3], float fUnits, float fOutPut[3]) { @@ -450,4 +425,51 @@ bool SpawnCarToPlayer(int target, float distance) { int id = CreateProp("prop_physics", MODEL_CAR, endPos, ang, vel); CreateTimer(6.0, Timer_Delete, id); return true; +} + +bool g_iPendingSurvivorAdd; +int isCustomSurvivor[MAXPLAYERS+1]; + +bool AddSurvivor() { + if (GetClientCount(false) >= MaxClients - 1) { + return false; + } + + int i = CreateFakeClient("GuessWhoBot"); + bool result; + if (i > 0) { + if (DispatchKeyValue(i, "classname", "SurvivorBot")) { + ChangeClientTeam(i, 2); + + if (DispatchSpawn(i)) { + result = true; + } + } + + g_iPendingSurvivorAdd = true; + CreateTimer(0.2, Timer_KickBot, i); + } + return result; +} + +void ClearInventory(int client) { + for(int i = 0; i <= 5; i++) { + int item = GetPlayerWeaponSlot(client, i); + if(item > 0) { + AcceptEntityInput(item, "Kill"); + } + } +} + +void StopHealingBots() { + healTargetPlayer = 0; + for(int i = 1; i <= MaxClients; i++) { + isTargettingHealer[i] = false; + if(isCustomSurvivor[i]) { + ClearInventory(i); + KickClient(i); + } + } + hAbmAutoHard.IntValue = wasAbmAutoHard; + hSbFixEnabled.BoolValue = wasSbFixEnabled; } \ No newline at end of file diff --git a/scripting/include/feedthetrolls/timers.inc b/scripting/include/feedthetrolls/timers.inc index 97863aa..6431b76 100644 --- a/scripting/include/feedthetrolls/timers.inc +++ b/scripting/include/feedthetrolls/timers.inc @@ -9,18 +9,24 @@ public Action Timer_ThrowTimer(Handle timer) { } return count > 0 ? Plugin_Continue : Plugin_Stop; } +int instantCommonRef[MAXPLAYERS+1]; public Action Timer_Main(Handle timer) { static int loopTick; + static int slowDrainIndex; if(!slowDrainIndex) slowDrainIndex = GetTrollID("Slow Drain"); static int tempHealthQuickDrainIndex; if(!tempHealthQuickDrainIndex) tempHealthQuickDrainIndex = GetTrollID("Temp Health Quick Drain"); static int swarmIndex; if(!swarmIndex) swarmIndex = GetTrollID("Swarm"); + static int instantCommonIndex; + if(!instantCommonIndex) instantCommonIndex = GetTrollID("Instant Commons"); + static int randomizeAmmoIndex; + if(!randomizeAmmoIndex) randomizeAmmoIndex = GetTrollID("Randomize Clip Ammo"); for(int i = 1; i <= MaxClients; i++) { - if(IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i)) { + if(IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { if(Trolls[slowDrainIndex].IsActive(i)) { if(loopTick % 4 == 0) { int hp = GetClientHealth(i); @@ -31,11 +37,8 @@ public Action Timer_Main(Handle timer) { }else if(Trolls[tempHealthQuickDrainIndex].IsActive(i)) { if(loopTick % 2 == 0) { float bufferTime = GetEntPropFloat(i, Prop_Send, "m_healthBufferTime"); - float buffer = GetEntPropFloat(i, Prop_Send, "m_healthBuffer"); - float tempHealth = GetTempHealth(i); + float tempHealth = L4D_GetTempHealth(i); if(tempHealth > 0.0) { - PrintToConsole(i, "%f | %f %f", tempHealth, buffer, bufferTime); - //SetEntPropFloat(i, Prop_Send, "m_healthBuffer", buffer - 10.0); SetEntPropFloat(i, Prop_Send, "m_healthBufferTime", bufferTime - 7.0); } } @@ -45,6 +48,22 @@ public Action Timer_Main(Handle timer) { if(GetRandomFloat() <= 0.4) { L4D_StaggerPlayer(i, i, NULL_VECTOR); } + } else if(Trolls[instantCommonIndex].IsActive(i)) { + int common = EntRefToEntIndex(instantCommonRef[i]); + if(common <= 0 || !IsValidEntity(common)) { + static float pos[3]; + GetHorizontalPositionFromClient(i, Trolls[instantCommonIndex].activeFlagClients[i] & 1 ? -40.0 : 40.0, pos); + common = L4D_SpawnCommonInfected(pos); + instantCommonRef[i] = EntIndexToEntRef(common); + } + SetEntPropEnt(common, Prop_Send, "m_clientLookatTarget", i); + SetEntProp(common, Prop_Send, "m_nSequence", 96); + } else if(loopTick % 60 && Trolls[randomizeAmmoIndex].IsActive(i)) { + int primaryWpn = GetPlayerWeaponSlot(i, 0); + if(primaryWpn > 0) { + int maxCap = GetEntProp(primaryWpn, Prop_Send, "m_iClip1"); + SetEntProp(primaryWpn, Prop_Send, "m_iClip", GetRandomInt(0, maxCap)); + } } } } @@ -62,6 +81,7 @@ public Action Timer_GivePistol(Handle timer, int user) { FakeClientCommand(client, "give pistol"); SetCommandFlags("give", flags); } + return Plugin_Handled; } public Action Timer_ThrowWeapon(Handle timer, Handle pack) { @@ -88,6 +108,7 @@ public Action Timer_ThrowWeapon(Handle timer, Handle pack) { SDKHooks_DropWeapon(victim, wpn, dest); } } + return Plugin_Handled; } public Action Timer_ResetAutoPunish(Handle timer, int user) { @@ -98,6 +119,7 @@ public Action Timer_ResetAutoPunish(Handle timer, int user) { if(hAutoPunish.IntValue & 1 == 1) DisableTroll(client, "Tank Magnet"); } + return Plugin_Handled; } public Action Timer_NextWitchSet(Handle timer, DataPack pack) { @@ -105,16 +127,19 @@ public Action Timer_NextWitchSet(Handle timer, DataPack pack) { int client = GetClientOfUserId(pack.ReadCell()); int witch = pack.ReadCell(); SetWitchTarget(witch, client); + return Plugin_Handled; } public Action Timer_KickBot(Handle timer, int client) { if(IsClientInGame(client) && (!IsClientInKickQueue(client))) { if(IsFakeClient(client)) KickClient(client); } + return Plugin_Handled; } public Action Timer_Delete(Handle h, int id) { AcceptEntityInput(id, "Kill"); + return Plugin_Handled; } public Action Timer_ShootReverse(Handle h, DataPack pack) { @@ -152,12 +177,14 @@ public Action Timer_CheckSpecialSpawned(Handle h, int id) { g_iSpId++; ProcessSpecialQueue(); } + return Plugin_Handled; } public Action Timer_CheckIsInSpit(Handle h, int userid) { int client = GetClientOfUserId(userid); - if(client && GetGameTime() - iLastInSpit[userid] > 3.0) { + if(client && GetGameTime() - fLastInSpit[userid] > 3.0) { SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.0); + hasSpitTimer[client] = false; return Plugin_Stop; } return Plugin_Continue; @@ -204,4 +231,53 @@ public Action Timer_CheckForChargerOpportunity(Handle h, int userid) { public bool Filter_CheckChargerValid(int entity, int contentsMask, any data) { return entity <= 0 || entity >= MaxClients || (entity != data && GetClientTeam(entity) == 2); +} + +public Action Timer_UpdateHealTargetPos(Handle h) { + int healTarget = GetClientOfUserId(healTargetPlayer); + if(healTarget == 0) { + PrintToServer("[FTT] Lost heal target, stopping"); + return Plugin_Stop; + } + GetAbsOrigin(healTarget, healTargetPos); + int bots = 0; + for(int i = 1; i <= MaxClients; i++) { + if(IsClientConnected(i) && IsFakeClient(i) && isTargettingHealer[i]) { + bots++; + L4D2_RunScript("CommandABot({cmd=1,bot=GetPlayerFromUserID(%d),pos=Vector(%f,%f,%f)})", GetClientUserId(i), healTargetPos[0], healTargetPos[1], healTargetPos[2]); + int kit = GetPlayerWeaponSlot(i, 3); + if(kit > -1) { + SetEntPropEnt(i, Prop_Send, "m_hActiveWeapon", kit); + } + } + } + return bots > 0 ? Plugin_Continue : Plugin_Stop; +} + +Action Timer_SpawnBots(Handle h, int max) { + static int count; + if(count < max) { + if(!AddSurvivor()) return Plugin_Stop; + count++; + return Plugin_Continue; + } + count = 0; + CreateTimer(0.2, Timer_SpawnBotsPost); + return Plugin_Stop; +} + +Action Timer_SpawnBotsPost(Handle h) { + char classname[32]; + for(int i = 1; i <= MaxClients; i++) { + if(isCustomSurvivor[i]) { + int kit = GetPlayerWeaponSlot(i, 3); + if(kit > 0) { + GetEntityClassname(kit, classname, sizeof(classname)); + if(!StrEqual(classname, "weapon_first_aid_kit")) { + kit = GiveClientWeapon(i, "weapon_first_aid_kit"); + } + isTargettingHealer[i] = true; + } + } + } } \ No newline at end of file diff --git a/scripting/include/feedthetrolls/trolls.inc b/scripting/include/feedthetrolls/trolls.inc index bf0c964..1203fdf 100644 --- a/scripting/include/feedthetrolls/trolls.inc +++ b/scripting/include/feedthetrolls/trolls.inc @@ -6,285 +6,302 @@ int invertedTrollIndex; // int fireSpitMagnetTrollIndex; void SetupTrolls() { - trollKV = new StringMap(); - categories = new ArrayList(ByteCountToCells(16)); - gRandomClients = new ArrayList(); - int index; - SetupTroll("Reset User", "Resets the user, removes all troll effects", TrollMod_Instant); + trollKV = new StringMap(); + categories = new ArrayList(ByteCountToCells(16)); + gRandomClients = new ArrayList(); + int index; + SetupTroll("Reset User", "Resets the user, removes all troll effects", TrollMod_Instant); - /// CATEGORY: Magnets - SetCategory("Magnets"); - index = SetupTroll("Special Magnet", "Attracts ALL specials to any alive target with this troll enabled", TrollMod_Constant); - AddMagnetFlags(index); - index = SetupTroll("Tank Magnet", "Attracts ALL tanks to any alive target with this troll enabled", TrollMod_Constant); - AddMagnetFlags(index); - index = SetupTroll("Witch Magnet", "All witches when startled will target any player with this troll", TrollMod_Constant); - // fireSpitMagnetTrollIndex = SetupTroll("Fire & Acid Magnet", "Make the player gravitate toward danger", TRollMod_Constant); + /// CATEGORY: Magnets + SetCategory("Magnets"); + index = SetupTroll("Special Magnet", "Attracts ALL specials to any alive target with this troll enabled", TrollMod_Constant); + AddMagnetFlags(index); + index = SetupTroll("Tank Magnet", "Attracts ALL tanks to any alive target with this troll enabled", TrollMod_Constant); + AddMagnetFlags(index); + index = SetupTroll("Witch Magnet", "All witches when startled will target any player with this troll", TrollMod_Constant); + // fireSpitMagnetTrollIndex = SetupTroll("Fire & Acid Magnet", "Make the player gravitate toward danger", TRollMod_Constant); - /// CATEGORY: Infected - SetCategory("Infected"); - SetupTroll("Swarm", "Swarms a player with zombies. Requires swarm plugin", TrollMod_Instant | TrollMod_Constant); - SetupTroll("Vomit Player", "Shortcut to sm_vomitplayer. vomits the player.", TrollMod_Instant); - SetupTroll("Inface Special", "Shortcut to sm_inface", TrollMod_Instant); - SetupTroll("Insta Special", "Shortcut to sm_insta", TrollMod_Instant); - SetupTroll("Goo", "Spawns a spitter puddle underneath them", TrollMod_Instant); - index = SetupTroll("Sticky Goo", "Slows player down in goo", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("60% Movement Speed", true); - Trolls[index].AddFlag("30% Movement Speed", false); - Trolls[index].AddFlag("0% Movement Speed", false); - stickyGooIndex = index; - SetupTroll("Instant Commons", "Spawns commons behind or infront", TrollMod_Instant); + /// CATEGORY: Infected + SetCategory("Infected"); + SetupTroll("Swarm", "Swarms a player with zombies. Requires swarm plugin", TrollMod_Instant | TrollMod_Constant); + SetupTroll("Vomit Player", "Shortcut to sm_vomitplayer. vomits the player.", TrollMod_Instant); + SetupTroll("Inface Special", "Shortcut to sm_inface", TrollMod_Instant); + SetupTroll("Insta Special", "Shortcut to sm_insta", TrollMod_Instant); + SetupTroll("Goo", "Spawns a spitter puddle underneath them", TrollMod_Instant); + index = SetupTroll("Sticky Goo", "Slows player down in goo", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("60% Movement Speed", true); + Trolls[index].AddFlag("30% Movement Speed", false); + Trolls[index].AddFlag("0% Movement Speed", false); + stickyGooIndex = index; + index = SetupTroll("Vocalize Specials", "Spawn commons on special vocals", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("Mute Vocalization", true); + Trolls[index].AddFlag("Do not mute", false); + index = SetupTroll("Instant Commons", "Spawns commons behind or infront", TrollMod_Instant | TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("In Back", true); + Trolls[index].AddFlag("In Front", false); - // CATEGORY: Items - SetCategory("Items"); - index = SetupTroll("Throw It All", "Player throws their item(s) periodically to a nearby player", TrollMod_Instant); - //Can't add directly, is custom troll: - // Trolls[index].AddFlag("Throw to Admin", true); - // Trolls[index].AddFlag("Drop At Feet", false); - // Trolls[index].AddFlag("Drop At Admin", false); - index = SetupTroll("Bad Throw", "Player drops throwables on throw, and biles/molotovs themselves", TrollMod_Constant); - Trolls[index].AddFlagPrompt(true); - Trolls[index].AddFlag("Biles", true); - Trolls[index].AddFlag("Molotovs", true); - Trolls[index].AddFlag("Pipebombs", true); - index = SetupTroll("Spicy Gas", "Gascans player picks up just ignite. Magic.", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("Always (100%)", false); - Trolls[index].AddFlag("Half Time (50%)", true); - Trolls[index].AddFlag("Rare (10%)", false); - index = SetupTroll("No Pickup", "Prevents a player from picking up ANY (new) item. Use ThrowItAll to make them drop", TrollMod_Constant); - Trolls[index].AddFlagPrompt(true); - Trolls[index].AddFlag("No Primary", false); - Trolls[index].AddFlag("No Melee", false); - Trolls[index].AddFlag("No Throwables", true); - Trolls[index].AddFlag("No Kits", true); - Trolls[index].AddFlag("No Pills / Adr", true); - Trolls[index].AddFlag("No GASCANS", true); - index = SetupTroll("UziRules / AwpSmells", "Picking up a weapon gives them a UZI or AWP instead", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("UZI Only", true); - Trolls[index].AddFlag("AWP Only", false); - SetupTroll("Primary Disable", "Player cannot pickup any weapons, only melee/pistols", TrollMod_Constant); - index = SetupTroll("Dull Melee", "Player's melee weapon does 0 damage (based on %). Headshots still work", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("Always (100%)", false); - Trolls[index].AddFlag("Half Time (50%)", true); - Trolls[index].AddFlag("Rare (10%)", false); - SetupTroll("Half Primary Ammo", "Cuts their primary reserve ammo in half", TrollMod_Instant); - /// CATEGORY: Chat - SetCategory("Chat"); - SetupTroll("iCantSpellNoMore", "Chat messages letter will randomly changed with wrong letters", TrollMod_Constant); - index = SetupTroll("No Profanity", "Replaces some words with random phrases", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("Only Replace Swears", false); - Trolls[index].AddFlag("Replace Full Messages", true); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("Show Modified to Them", true); - Trolls[index].AddFlag("Show Original to Them", false); - index = SetupTroll("Vocalize Gag", "Prevents player from sending any vocalizations (even automatic)", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("Mute for All", true); - Trolls[index].AddFlag("Mute For All But Them", false); - index = SetupTroll("Honk / Meow", "Honk or Meow", TrollMod_Constant); - Trolls[index].AddCustomFlagPrompt("Choose Sound Type:"); - Trolls[index].AddFlag("Honk", true); - Trolls[index].AddFlag("Meow", false); - Trolls[index].AddCustomFlagPrompt("Choose Chat modifier:", false, 1); - Trolls[index].AddFlag("Show Modified to Them", true); - Trolls[index].AddFlag("Show Original to Them", false); - Trolls[index].AddFlag("Show Modified Only To Them", false); - SetupTroll("Reversed", "Reserves their message", TrollMod_Constant); - SetupTroll("Voice Mute", "Mutes from voice", TrollMod_Constant); + // CATEGORY: Items + SetCategory("Items"); + index = SetupTroll("Throw It All", "Player throws their item(s) periodically to a nearby player", TrollMod_Instant); + //Can't add directly, is custom troll: + // Trolls[index].AddFlag("Throw to Admin", true); + // Trolls[index].AddFlag("Drop At Feet", false); + // Trolls[index].AddFlag("Drop At Admin", false); + index = SetupTroll("Bad Throw", "Player drops throwables on throw, and biles/molotovs themselves", TrollMod_Constant); + Trolls[index].AddFlagPrompt(true); + Trolls[index].AddFlag("Biles", true); + Trolls[index].AddFlag("Molotovs", true); + Trolls[index].AddFlag("Pipebombs", true); + index = SetupTroll("Spicy Gas", "Gascans player picks up just ignite. Magic.", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("Always (100%)", false); + Trolls[index].AddFlag("Half Time (50%)", true); + Trolls[index].AddFlag("Rare (10%)", false); + index = SetupTroll("No Pickup", "Prevents a player from picking up ANY (new) item. Use ThrowItAll to make them drop", TrollMod_Constant); + Trolls[index].AddFlagPrompt(true); + Trolls[index].AddFlag("No Primary", false); + Trolls[index].AddFlag("No Melee", false); + Trolls[index].AddFlag("No Throwables", true); + Trolls[index].AddFlag("No Kits", true); + Trolls[index].AddFlag("No Pills / Adr", true); + Trolls[index].AddFlag("No GASCANS", true); + index = SetupTroll("UziRules / AwpSmells", "Picking up a weapon gives them a UZI or AWP instead", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("UZI Only", true); + Trolls[index].AddFlag("AWP Only", false); + SetupTroll("Primary Disable", "Player cannot pickup any weapons, only melee/pistols", TrollMod_Constant); + index = SetupTroll("Dull Melee", "Player's melee weapon does 0 damage (based on %). Headshots still work", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("Always (100%)", false); + Trolls[index].AddFlag("Half Time (50%)", true); + Trolls[index].AddFlag("Rare (10%)", false); + SetupTroll("Nerf Gun", "When they shoot it does no damage.", TrollMod_Constant); + SetupTroll("Randomize Clip Ammo", "Randomly changes their clip ammo downwards", TrollMod_Constant | TrollMod_Instant); - /// CATEGORY: Health - SetCategory("Health"); - SetupTroll("Damage Boost", "Makes a player take more damage than normal", TrollMod_Constant); - SetupTroll("Temp Health Quick Drain", "Makes a player's temporarily health drain very quickly", TrollMod_Constant); - SetupTroll("Slow Drain", "Will make the player slowly lose health over time", TrollMod_Constant); - SetupTroll("KillMeSoftly", "Make player eat or waste pills whenever possible", TrollMod_Instant | TrollMod_Constant); - index = SetupTroll("Reverse FF", "All damage dealt to a player is reversed", TrollMod_Constant); - Trolls[index].AddCustomFlagPrompt("Choose Reverse FF", false); - Trolls[index].AddFlag("1:1 Ratio", true); //1 - Trolls[index].AddFlag("2x Ratio", false); //2 - Trolls[index].AddFlag("0.5x Ratio", false); //4 - Trolls[index].AddFlag("0.0x Ratio (None)", false); //8 - Trolls[index].AddFlag("3x Ratio", false); //16 - Trolls[index].AddFlag("-2x Ratio", false); //16 + /// CATEGORY: Chat + SetCategory("Chat"); + SetupTroll("iCantSpellNoMore", "Chat messages letter will randomly changed with wrong letters", TrollMod_Constant); + index = SetupTroll("No Profanity", "Replaces some words with random phrases", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("Only Replace Swears", false); + Trolls[index].AddFlag("Replace Full Messages", true); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("Show Modified to Them", true); + Trolls[index].AddFlag("Show Original to Them", false); + index = SetupTroll("Vocalize Gag", "Prevents player from sending any vocalizations (even automatic)", TrollMod_Constant); + // Trolls[index].AddFlagPrompt(false); + // Trolls[index].AddFlag("Mute for All", true); + // Trolls[index].AddFlag("Mute For All But Them", false); + index = SetupTroll("Honk / Meow", "Honk or Meow", TrollMod_Constant); + Trolls[index].AddCustomFlagPrompt("Choose Sound:"); + Trolls[index].AddFlag("Honk", true); + Trolls[index].AddFlag("Meow", false); + Trolls[index].AddCustomFlagPrompt("Choose Chat modifier:", false, 1); + Trolls[index].AddFlag("Show Modified to Them", true); + Trolls[index].AddFlag("Show Original to Them", false); + Trolls[index].AddFlag("Show Modified Only To Them", false); + SetupTroll("Reversed", "Reserves their message", TrollMod_Constant); + SetupTroll("Voice Mute", "Mutes from voice", TrollMod_Constant); - /// CATEGORY: Movement - SetCategory("Movement"); - index = SetupTroll("Slow Speed", "Sets player speed to 0.8x of normal speed", TrollMod_Constant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("60% Movement Speed", true); - Trolls[index].AddFlag("30% Movement Speed", false); - Trolls[index].AddFlag("0% Movement Speed", false); - SetupTroll("Higher Gravity", "Sets player gravity to 1.3x of normal gravity", TrollMod_Constant); - invertedTrollIndex = SetupTroll("Inverted Controls", "Well, aint it obvious", TrollMod_Constant); - SetupTroll("Stagger", "Like a slap, but different", TrollMod_Instant); - index = SetupTroll("Slippery Shoes", "Periodically stumbles around.", TrollMod_Constant); - Trolls[index].AddFlagPrompt(true); - Trolls[index].AddFlag("Periodically", true); - Trolls[index].AddFlag("When using doors", false); - Trolls[index].AddFlag("On throwable use", false); - Trolls[index].AddFlag("On pills/adrenaline use", false); - Trolls[index].AddFlag("On zombie bite", false); - slipperyShoesIndex = index; + /// CATEGORY: Health + SetCategory("Health"); + SetupTroll("Damage Boost", "Makes a player take more damage than normal", TrollMod_Constant); + SetupTroll("Temp Health Quick Drain", "Makes a player's temporarily health drain very quickly", TrollMod_Constant); + SetupTroll("Slow Drain", "Will make the player slowly lose health over time", TrollMod_Constant); + SetupTroll("KillMeSoftly", "Make player eat or waste pills whenever possible", TrollMod_Instant | TrollMod_Constant); + index = SetupTroll("Reverse FF", "All damage dealt to a player is reversed", TrollMod_Constant); + Trolls[index].AddCustomFlagPrompt("Choose Reverse FF", false); + Trolls[index].AddFlag("1:1 Ratio", true); //1 + Trolls[index].AddFlag("2x Ratio", false); //2 + Trolls[index].AddFlag("0.5x Ratio", false); //4 + Trolls[index].AddFlag("0.0x Ratio (None)", false); //8 + Trolls[index].AddFlag("3x Ratio", false); //16 + Trolls[index].AddFlag("-2x Ratio", false); //16 - /// CATEGORY: MISC - SetCategory("Misc"); - SetupTroll("Gun Jam", "On reload, small chance their gun gets jammed - Can't reload.", TrollMod_Constant); - SetupTroll("No Shove", "Prevents a player from shoving", TrollMod_Constant); - SetupTroll("CameTooEarly", "When they shoot, random chance they empty whole clip", TrollMod_Constant); - index = SetupTroll("Car Splat", "Car. splats.", TrollMod_Instant); - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("On Top", true); - Trolls[index].AddFlag("Into (Infront)", false); - Trolls[index].AddFlag("Into (Behind)", false); - index = SetupTroll("Meta: Inverse", "Uhm you are not supposed to see this...", TrollMod_Instant); - Trolls[index].hidden = true; - Trolls[index].AddFlagPrompt(false); - Trolls[index].AddFlag("100%", true); - Trolls[index].AddFlag("50%", false); - Trolls[index].AddFlag("10%", false); + /// CATEGORY: Movement + SetCategory("Movement"); + index = SetupTroll("Slow Speed", "Sets player speed to 0.8x of normal speed", TrollMod_Constant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("60% Movement Speed", true); + Trolls[index].AddFlag("30% Movement Speed", false); + Trolls[index].AddFlag("0% Movement Speed", false); + SetupTroll("Higher Gravity", "Sets player gravity to 1.3x of normal gravity", TrollMod_Constant); + invertedTrollIndex = SetupTroll("Inverted Controls", "Well, aint it obvious", TrollMod_Constant); + SetupTroll("Stagger", "Like a slap, but different", TrollMod_Instant); + index = SetupTroll("Slippery Shoes", "Periodically stumbles around.", TrollMod_Constant); + Trolls[index].AddFlagPrompt(true); + Trolls[index].AddFlag("Periodically", true); + Trolls[index].AddFlag("When using doors", false); + Trolls[index].AddFlag("On throwable use", false); + Trolls[index].AddFlag("On pills/adrenaline use", false); + Trolls[index].AddFlag("On zombie bite", false); + slipperyShoesIndex = index; - + /// CATEGORY: MISC + SetCategory("Misc"); + SetupTroll("Gun Jam", "On reload, small chance their gun gets jammed - Can't reload.", TrollMod_Constant); + SetupTroll("No Shove", "Prevents a player from shoving", TrollMod_Constant); + index = SetupTroll("Car Splat", "Car. splats.", TrollMod_Instant); + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("On Top", true); + Trolls[index].AddFlag("Into (Infront)", false); + Trolls[index].AddFlag("Into (Behind)", false); + SetupTroll("CameTooEarly", "When they shoot, random chance they empty whole clip", TrollMod_Constant); + index = SetupTroll("Meta: Inverse", "Uhm you are not supposed to see this...", TrollMod_Instant); + Trolls[index].hidden = true; + Trolls[index].AddFlagPrompt(false); + Trolls[index].AddFlag("100%", true); + Trolls[index].AddFlag("50%", false); + Trolls[index].AddFlag("10%", false); - // Initialize the default flag values to -1 - for(int i = 0; i <= MAX_TROLLS; i++) { - for(int j = 1; j <= MAXPLAYERS; j++) { - Trolls[i].activeFlagClients[j] = -1; - } - } + + + // Initialize the default flag values to -1 + for(int i = 0; i <= MAX_TROLLS; i++) { + for(int j = 1; j <= MAXPLAYERS; j++) { + Trolls[i].activeFlagClients[j] = -1; + } + } } void AddMagnetFlags(int index) { - Trolls[index].AddCustomFlagPrompt("Choose Magnet Chance:", false); - Trolls[index].AddFlag("Always (100%)", true); - Trolls[index].AddFlag("Half Time (50%)", false); - Trolls[index].AddFlag("Rare (10%)", false); + Trolls[index].AddCustomFlagPrompt("Choose Magnet Chance:", false); + Trolls[index].AddFlag("Always (100%)", true); + Trolls[index].AddFlag("Half Time (50%)", false); + Trolls[index].AddFlag("Rare (10%)", false); } bool ApplyAffect(int victim, const Troll troll, int activator, trollModifier modifier, int flags) { - bool toActive = IsTrollActiveByRawID(victim, troll.id); - if(StrEqual(troll.name, "Reset User")) { - LogAction(activator, victim, "\"%L\" reset all effects for \"%L\"", activator, victim); - ShowActivityEx(activator, "[FTT] ", "reset effects for %N. ", victim); - for(int i = 0; i <= MAX_TROLLS; i++) { - Trolls[i].activeFlagClients[victim] = -1; - } - SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", 1.0); - SetEntityGravity(victim, 1.0); - SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", 1.0); - return false; - } else if(StrEqual(troll.name, "Slow Speed")) { - if(toActive) { - float movement = 0.0; - if(flags & 1) movement = 0.6; - else if(flags & 2) movement = 0.3; - SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", movement); - } else - SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", 1.0); - } else if(StrEqual(troll.name, "Higher Gravity")) - SetEntityGravity(victim, toActive ? 1.3 : 1.0); - else if(StrEqual(troll.name, "Half Primary Ammo")) { - int current = GetPrimaryReserveAmmo(victim); - SetPrimaryReserveAmmo(victim, current / 2); - } else if(StrEqual(troll.name, "UziRules / AwpSmells")) { - DisableTroll(victim, "No Pickup"); - DisableTroll(victim, "Primary Disable"); - } else if(StrEqual(troll.name, "Primary Disable")) { - DisableTroll(victim, "UziRules / AwpSmells"); - DisableTroll(victim, "No Pickup"); - SDKHook(victim, SDKHook_WeaponCanUse, Event_ItemPickup); - } else if(StrEqual(troll.name, "No Pickup")) { - DisableTroll(victim, "UziRules / AwpSmells"); - DisableTroll(victim, "Primary Disable"); - SDKHook(victim, SDKHook_WeaponCanUse, Event_ItemPickup); - } else if(StrEqual(troll.name, "CameTooEarly")) { - ReplyToCommand(activator, "This troll mode is not implemented."); - } else if(StrEqual(troll.name, "KillMeSoftly")) { - static char wpn[32]; - GetClientWeaponName(victim, 4, wpn, sizeof(wpn)); - if(StrEqual(wpn, "weapon_adrenaline") || StrEqual(wpn, "weapon_pain_pills")) { - ClientCommand(victim, "slot5"); - g_bPendingItemGive[victim] = true; - }else{ - ReplyToCommand(activator, "User does not have pills or adrenaline"); - return false; - } - //TODO: Implement TrollMod_Constant - return false; - } else if(StrEqual(troll.name, "Throw It All")) { - if(modifier & TrollMod_Instant) - ThrowAllItems(victim); - if(hThrowTimer == INVALID_HANDLE && modifier & TrollMod_Constant) { - hThrowTimer = CreateTimer(hThrowItemInterval.FloatValue, Timer_ThrowTimer, _, TIMER_REPEAT); - } - } else if(StrEqual(troll.name, "Swarm")) { - if(modifier & TrollMod_Instant) { - L4D2_RunScript("RushVictim(GetPlayerFromUserID(%d), %d)", victim, 15000); - } - return true; - } else if(StrEqual(troll.name, "Gun Jam")) { - int wpn = GetClientWeaponEntIndex(victim, 0); - if(wpn > -1) - SDKHook(wpn, SDKHook_Reload, Event_WeaponReload); - else { - ReplyToCommand(activator, "Victim does not have a primary weapon."); - return false; - } - } else if(StrEqual(troll.name, "Vomit Player")) - L4D_CTerrorPlayer_OnVomitedUpon(victim, victim); - else if(StrEqual(troll.name, "Inface Special")) { - FakeClientCommand(activator, "sm_inface"); - return false; - } else if(StrEqual(troll.name, "Insta Special")) { - FakeClientCommand(activator, "sm_insta"); - return false; - } else if(StrEqual(troll.name, "Goo")) { - static float pos[3], ang[3]; - GetClientAbsOrigin(victim, pos); - GetClientAbsAngles(victim, ang); - L4D2_SpitterPrj(victim, pos, ang); - } else if(StrEqual(troll.name, "Stagger")) { - L4D_StaggerPlayer(victim, victim, NULL_VECTOR); - } else if(StrEqual(troll.name, "Voice Mute")) { - BaseComm_SetClientMute(victim, toActive); - } else if(StrEqual(troll.name, "Spicy Gas")) { - SDKHook(victim, SDKHook_WeaponCanUse, Event_ItemPickup); - } else if(StrEqual(troll.name, "Car Splat")) { - if(flags & 1) { - if(!SpawnCarOnPlayer(victim)) { - ReplyToCommand(activator, "Could not find a suitable area to spawn a car. Requires vertical space above victim."); - return false; - } - } else if(flags & 2) { - if(!SpawnCarToPlayer(victim, 450.0)) { - ReplyToCommand(activator, "Could not find a suitable area to spawn a car. Requires space ahead of victim"); - return false; - } - } else if(flags & 4) { - if(!SpawnCarToPlayer(victim, -450.0)) { - ReplyToCommand(activator, "Could not find a suitable area to spawn a car. Requires space behind victim"); - return false; - } - } - } else if(StrEqual(troll.name, "Instant Commons")) { - float pos[3]; - GetHorizontalPositionFromClient(victim, -40.0, pos); - for(int i = 0; i < 30; i++) { - L4D_SpawnCommonInfected(pos); - } - CreateTimer(0.1, RushPlayer, victim); - } else if(modifier != TrollMod_Constant) { - PrintToServer("[FTT] Warn: Possibly invalid troll, no apply action defined for \"%s\"", troll.name); - #if defined DEBUG - ReplyToCommand(activator, "[FTT/Debug] If nothing occurs, this troll possibly was not implemented correctly. "); - #endif - } - return true; -} - + bool toActive = IsTrollActiveByRawID(victim, troll.id); + if(StrEqual(troll.name, "Reset User")) { + LogAction(activator, victim, "\"%L\" reset all effects for \"%L\"", activator, victim); + ShowActivityEx(activator, "[FTT] ", "reset effects for %N. ", victim); + for(int i = 0; i <= MAX_TROLLS; i++) { + Trolls[i].activeFlagClients[victim] = -1; + } + SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", 1.0); + SetEntityGravity(victim, 1.0); + SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", 1.0); + return false; + } else if(StrEqual(troll.name, "Slow Speed")) { + if(toActive) { + float movement = 0.0; + if(flags & 1) movement = 0.6; + else if(flags & 2) movement = 0.3; + SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", movement); + } else + SetEntPropFloat(victim, Prop_Send, "m_flLaggedMovementValue", 1.0); + } else if(StrEqual(troll.name, "Higher Gravity")) + SetEntityGravity(victim, toActive ? 1.3 : 1.0); + else if(StrEqual(troll.name, "UziRules / AwpSmells")) { + DisableTroll(victim, "No Pickup"); + DisableTroll(victim, "Primary Disable"); + } else if(StrEqual(troll.name, "Primary Disable")) { + DisableTroll(victim, "UziRules / AwpSmells"); + DisableTroll(victim, "No Pickup"); + SDKHook(victim, SDKHook_WeaponCanUse, Event_ItemPickup); + } else if(StrEqual(troll.name, "No Pickup")) { + DisableTroll(victim, "UziRules / AwpSmells"); + DisableTroll(victim, "Primary Disable"); + SDKHook(victim, SDKHook_WeaponCanUse, Event_ItemPickup); + } else if(StrEqual(troll.name, "CameTooEarly")) { + ReplyToCommand(activator, "This troll mode is not implemented."); + } else if(StrEqual(troll.name, "KillMeSoftly")) { + static char wpn[32]; + GetClientWeaponName(victim, 4, wpn, sizeof(wpn)); + if(StrEqual(wpn, "weapon_adrenaline") || StrEqual(wpn, "weapon_pain_pills")) { + ClientCommand(victim, "slot5"); + g_bPendingItemGive[victim] = true; + }else{ + ReplyToCommand(activator, "User does not have pills or adrenaline"); + return false; + } + //TODO: Implement TrollMod_Constant + return false; + } else if(StrEqual(troll.name, "Throw It All")) { + if(modifier & TrollMod_Instant) + ThrowAllItems(victim); + if(hThrowTimer == INVALID_HANDLE && modifier & TrollMod_Constant) { + hThrowTimer = CreateTimer(hThrowItemInterval.FloatValue, Timer_ThrowTimer, _, TIMER_REPEAT); + } + } else if(StrEqual(troll.name, "Swarm")) { + if(modifier & TrollMod_Instant) { + L4D2_RunScript("RushVictim(GetPlayerFromUserID(%d), %d)", victim, 15000); + } + return true; + } else if(StrEqual(troll.name, "Gun Jam")) { + int wpn = GetClientWeaponEntIndex(victim, 0); + if(wpn > -1) + SDKHook(wpn, SDKHook_Reload, Event_WeaponReload); + else { + ReplyToCommand(activator, "Victim does not have a primary weapon."); + return false; + } + } else if(StrEqual(troll.name, "Vomit Player")) + L4D_CTerrorPlayer_OnVomitedUpon(victim, victim); + else if(StrEqual(troll.name, "Inface Special")) { + ShowInstaSpecialChooser(activator, GetClientUserId(victim), 1); + return false; + } else if(StrEqual(troll.name, "Insta Special")) { + ShowInstaSpecialChooser(activator, GetClientUserId(victim), 0); + return false; + } else if(StrEqual(troll.name, "Goo")) { + static float pos[3], ang[3]; + GetClientAbsOrigin(victim, pos); + GetClientAbsAngles(victim, ang); + L4D2_SpitterPrj(victim, pos, ang); + } else if(StrEqual(troll.name, "Stagger")) { + L4D_StaggerPlayer(victim, victim, NULL_VECTOR); + } else if(StrEqual(troll.name, "Voice Mute")) { + BaseComm_SetClientMute(victim, toActive); + } else if(StrEqual(troll.name, "Spicy Gas")) { + SDKHook(victim, SDKHook_WeaponCanUse, Event_ItemPickup); + } else if(StrEqual(troll.name, "Car Splat")) { + if(flags & 1) { + if(!SpawnCarOnPlayer(victim)) { + ReplyToCommand(activator, "Could not find a suitable area to spawn a car. Requires vertical space above victim."); + return false; + } + } else if(flags & 2) { + if(!SpawnCarToPlayer(victim, 450.0)) { + ReplyToCommand(activator, "Could not find a suitable area to spawn a car. Requires space ahead of victim"); + return false; + } + } else if(flags & 4) { + if(!SpawnCarToPlayer(victim, -450.0)) { + ReplyToCommand(activator, "Could not find a suitable area to spawn a car. Requires space behind victim"); + return false; + } + } + } else if(StrEqual(troll.name, "Instant Commons")) { + if(modifier & TrollMod_Instant) { + float pos[3]; + GetHorizontalPositionFromClient(victim, flags & 1 ? -40.0 : 40.0, pos); + int victimId = GetClientUserId(victim); + for(int i = 0; i < 30; i++) { + int c = L4D_SpawnCommonInfected(pos); + L4D2_RunScript("CommandABot({cmd=0,bot=EntIndexToHScript(%i),target=GetPlayerFromUserID(%i)})", c, victimId); + SetEntPropEnt(c, Prop_Send, "m_hTargetEntity", victim); + } + } + } else if(StrEqual(troll.name, "Randomize Clip Ammo")) { + if(modifier & TrollMod_Instant) { + int primaryWpn = GetPlayerWeaponSlot(victim, 0); + if(primaryWpn > 0) { + int maxCap = GetEntProp(primaryWpn, Prop_Send, "m_iClip1"); + SetEntProp(primaryWpn, Prop_Send, "m_iClip", GetRandomInt(0, maxCap)); + } + } + } else if(~modifier & TrollMod_Constant) { + PrintToServer("[FTT] Warn: Possibly invalid troll, no apply action defined for \"%s\"", troll.name); + #if defined DEBUG + ReplyToCommand(activator, "[FTT/Debug] If nothing occurs, this troll possibly was not implemented correctly. "); + #endif + } + return true; +} \ No newline at end of file diff --git a/scripting/include/ftt.inc b/scripting/include/ftt.inc index ae02889..fcd6b5b 100644 --- a/scripting/include/ftt.inc +++ b/scripting/include/ftt.inc @@ -15,7 +15,6 @@ GlobalForward g_PlayerMarkedForward; Handle g_hWitchAttack; Handle hThrowTimer; -ConVar hVictimsList; ConVar hThrowItemInterval; ConVar hAutoPunish; ConVar hMagnetChance; @@ -30,15 +29,13 @@ ConVar hBotDefendChance; bool g_bPendingItemGive[MAXPLAYERS+1]; -int g_iAmmoTable; //Loads the ammo table to get max ammo for weapons -int autoPunished = -1; -int autoPunishMode; int lastButtonUser; int lastCrescendoUser; int g_iAttackerTarget[MAXPLAYERS+1]; int g_iSpecialAttackFlags[MAXPLAYERS+1]; int g_PendingBanTroll[MAXPLAYERS+1]; -float iLastInSpit[MAXPLAYERS+1]; +float fLastInSpit[MAXPLAYERS+1]; +bool hasSpitTimer[MAXPLAYERS+1]; char steamids[MAXPLAYERS+1][64]; @@ -61,6 +58,16 @@ enum SpecialInternalFlags { SPI_AlwaysTarget = 2 } +int healTargetPlayer; +bool isTargettingHealer[MAXPLAYERS+1]; +float healTargetPos[3]; + +bool wasSbFixEnabled; +ConVar hSbFixEnabled; + +ConVar hAbmAutoHard; +int wasAbmAutoHard; + #define MODEL_CAR "models/props_vehicles/cara_95sedan.mdl" #include diff --git a/scripting/l4d2_feedthetrolls.sp b/scripting/l4d2_feedthetrolls.sp index c58cd86..35d25ab 100644 --- a/scripting/l4d2_feedthetrolls.sp +++ b/scripting/l4d2_feedthetrolls.sp @@ -29,6 +29,7 @@ public Plugin myinfo = url = "" }; + //TODO: Trolls: Force take pills, Survivor Bot Magnet @@ -72,16 +73,18 @@ public void OnPluginStart() { hBotDefendChance = CreateConVar("sm_ftt_bot_defend_chance", "0.75", "% Chance bots will defend themselves.", FCVAR_NONE, true, 0.0, true, 1.0); hSbFriendlyFire = FindConVar("sb_friendlyfire"); + hSbFixEnabled = FindConVar("sb_fix_enabled"); + hAbmAutoHard = FindConVar("abm_autohard"); if(hBotReverseFFDefend.IntValue > 0) hSbFriendlyFire.BoolValue = true; hBotReverseFFDefend.AddChangeHook(Change_BotDefend); - RegAdminCmd("sm_ftl", Command_ListTheTrolls, ADMFLAG_KICK, "Lists all the trolls currently ingame."); + RegAdminCmd("sm_ftl", Command_ListTheTrolls, ADMFLAG_GENERIC, "Lists all the trolls currently ingame."); RegAdminCmd("sm_ftm", Command_ListModes, ADMFLAG_KICK, "Lists all the troll modes and their description"); - RegAdminCmd("sm_ftr", Command_ResetUser, ADMFLAG_KICK, "Resets user of any troll effects."); + RegAdminCmd("sm_ftr", Command_ResetUser, ADMFLAG_GENERIC, "Resets user of any troll effects."); RegAdminCmd("sm_fta", Command_ApplyUser, ADMFLAG_KICK, "Apply a troll mod to a player, or shows menu if no parameters."); - RegAdminCmd("sm_ftas", Command_ApplyUserSilent, ADMFLAG_CHEATS, "Apply a troll mod to a player, or shows menu if no parameters."); - RegAdminCmd("sm_ftt", Command_FeedTheTrollMenu, ADMFLAG_KICK, "Opens a list that shows all the commands"); + RegAdminCmd("sm_ftas", Command_ApplyUserSilent, ADMFLAG_ROOT, "Apply a troll mod to a player, or shows menu if no parameters."); + RegAdminCmd("sm_ftt", Command_FeedTheTrollMenu, ADMFLAG_GENERIC, "Opens a list that shows all the commands"); RegAdminCmd("sm_mark", Command_MarkPendingTroll, ADMFLAG_KICK, "Marks a player as to be banned on disconnect"); RegAdminCmd("sm_ftp", Command_FeedTheCrescendoTroll, ADMFLAG_KICK, "Applies a manual punish on the last crescendo activator"); RegAdminCmd("sm_ftc", Command_ApplyComboTrolls, ADMFLAG_KICK, "Applies predefined combinations of trolls"); @@ -92,6 +95,7 @@ public void OnPluginStart() { RegAdminCmd("sm_inface", Command_InstaSpecialFace, ADMFLAG_KICK, "Spawns a special that targets them, right in their face."); RegAdminCmd("sm_bots_attack", Command_BotsAttack, ADMFLAG_CHEATS, "Instructs all bots to attack a player until they have X health."); RegAdminCmd("sm_scharge", Command_SmartCharge, ADMFLAG_CHEATS, "Auto Smart charge"); + RegAdminCmd("sm_healbots", Command_HealTarget, ADMFLAG_CHEATS, "Make bots heal a player"); HookEvent("player_spawn", Event_PlayerSpawn); HookEvent("player_disconnect", Event_PlayerDisconnect); @@ -105,8 +109,9 @@ public void OnPluginStart() { HookEvent("pills_used", Event_SecondaryHealthUsed); HookEvent("entered_spit", Event_EnteredSpit); HookEvent("bot_player_replace", Event_BotPlayerSwap); + HookEvent("heal_success", Event_HealSuccess); - AddNormalSoundHook(view_as(SoundHook)); + AddNormalSoundHook(SoundHook); AutoExecConfig(true, "l4d2_feedthetrolls"); @@ -195,40 +200,3 @@ bool IsPlayerFarDistance(int client, float distance) { PrintToConsoleAll("Flow Check | Player2=%N Flow2=%f", secondClient, secondHighestFlow); return client == farthestClient && difference > distance; } - -stock int GetPrimaryReserveAmmo(int client) { - int weapon = GetPlayerWeaponSlot(client, 0); - if(weapon > 0) { - return GetEntProp(client, Prop_Send, "m_iAmmo", _, GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType")); - } - return -1; -} -stock bool SetPrimaryReserveAmmo(int client, int amount) { - int weapon = GetPlayerWeaponSlot(client, 0); - if(weapon > -1) { - SetEntProp(client, Prop_Send, "m_iAmmo", amount, _, GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType")); - } - return false; -} - -stock void SendChatToAll(int client, const char[] message) { - static char nameBuf[MAX_NAME_LENGTH]; - - for (int i = 1; i <= MaxClients; i++) { - if (IsClientInGame(i) && IsFakeClient(i)) { - FormatActivitySource(client, i, nameBuf, sizeof(nameBuf)); - PrintToChat(i, "\x03 %s : \x01%s", nameBuf, message); - } - } -} - -stock float GetTempHealth(int client) { - if(client <= 0 || !IsValidEntity(client) || !IsClientInGame(client)|| !IsPlayerAlive(client) || IsClientObserver(client)) return -1.0; - if(GetClientTeam(client) != 2) return 0.0; - - float buffer = GetEntPropFloat(client, Prop_Send, "m_healthBuffer"); - if(buffer <= 0.0) return 0.0; - float difference = GetGameTime() - GetEntPropFloat(client, Prop_Send, "m_healthBufferTime"); - float decay = FindConVar("pain_pills_decay_rate").FloatValue; - return buffer - (difference / (1.0 / decay)); -} \ No newline at end of file