From 48343610e0e1288480539e483bf3af6e78312a55 Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 20 Dec 2023 18:08:04 -0600 Subject: [PATCH] EPI: Improvements to item spawning, director --- plugins/l4d2_extraplayeritems.smx | Bin 56711 -> 58063 bytes scripting/include/epi/director.sp | 94 ++++--- scripting/l4d2_extraplayeritems.sp | 385 ++++++++++++++++------------- 3 files changed, 274 insertions(+), 205 deletions(-) diff --git a/plugins/l4d2_extraplayeritems.smx b/plugins/l4d2_extraplayeritems.smx index 73a09b46815e8099a33b89316bd70c351f2b0868..73fa09c3b042d40dd79041bac103e4d7f2b740d2 100644 GIT binary patch literal 58063 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 0 && g_extraFinaleTankEnabled) { - float duration = GetRandomFloat(EXTRA_TANK_MIN_SEC, EXTRA_TANK_MAX_SEC); - // Pass it 0, which doesnt make it a split tank, has default health - CreateTimer(duration, Timer_SpawnSplitTank, 0); - } - } - } else if(g_newTankHealth > 0) { + if(g_newTankHealth > 0) { // A split tank has spawned, set its health PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: split tank spawned, setting health to %d", g_newTankHealth); SetEntProp(client, Prop_Send, "m_iHealth", g_newTankHealth); g_newTankHealth = 0; - } else { - // This should not run on active finales (different than finale maps, such as swamp fever's, where finale isnt full map) - // Normal tank (not stage 2 / not secondary tank) spawned. Set its health and spawn split tank - int health = GetEntProp(client, Prop_Send, "m_iHealth"); - float additionalHealth = float(g_survivorCount - 4) * cvEPITankHealth.FloatValue; - health += RoundFloat(additionalHealth); - - // Only split if split tank chance, if enabled, and we aren't on 2nd finale tank - if(hExtraFinaleTank.IntValue & 1 && GetURandomFloat() <= hSplitTankChance.FloatValue) { + return; + } else if(g_realSurvivorCount >= hExtraTankThreshold.IntValue && g_extraFinaleTankEnabled && hExtraFinaleTank.IntValue > 1) { + // If we have hExtraTankThreshold or more and finale tanks enabled, spawn finale tanks: + if(g_finaleStage == Stage_Active) { + // 1st tank spawned + PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: [FINALE] 1st tank spawned"); + g_finaleStage = Stage_FirstTankSpawned; + return; + } else if(g_realSurvivorCount < 6 && g_finaleStage == Stage_FirstTankSpawned) { + // 2nd tank spawned + PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: [FINALE] 2nd tank spawned"); float duration = GetRandomFloat(EXTRA_TANK_MIN_SEC, EXTRA_TANK_MAX_SEC); - int splitHealth = health / 2; - PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: split tank in %.1fs, health=%d", duration, splitHealth); - CreateTimer(duration, Timer_SpawnSplitTank, splitHealth); - SetEntProp(client, Prop_Send, "m_iHealth", splitHealth); - } else { - PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: Setting tank health to %d", health); - SetEntProp(client, Prop_Send, "m_iHealth", health); + // Pass it 0, which doesnt make it a split tank, has default health + CreateTimer(duration, Timer_SpawnSplitTank, 0); + g_finaleStage = Stage_SecondTankSpawned; + return; } } + + // End finale logic: + if(g_finaleStage == Stage_SecondTankSpawned) { + PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: [FINALE] Health set, tank logic done"); + g_finaleStage = Stage_ActiveDone; + // We don't return, letting the 2nd 5+ finale tank get buffed: + } + // This should not run on active finales (different than finale maps, such as swamp fever's, where finale isnt full map) + // Normal tank (not stage 2 / not secondary tank) spawned. Set its health and spawn split tank + int health = GetEntProp(client, Prop_Send, "m_iHealth"); + float additionalHealth = float(g_survivorCount - 4) * cvEPITankHealth.FloatValue; + health += RoundFloat(additionalHealth); + + /* Split tank can only spawn if: + (1) not finale + (2) over threshold hExtraTankThreshold + (3) split tanks enabled + (4) random chance set by hSplitTankChance + Otherwise, just scale health based on survivor count + */ + if(g_finaleStage == Stage_Inactive && g_realSurvivorCount >= hExtraTankThreshold.IntValue && hExtraFinaleTank.IntValue & 1 && GetURandomFloat() <= hSplitTankChance.FloatValue) { + float duration = GetRandomFloat(EXTRA_TANK_MIN_SEC, EXTRA_TANK_MAX_SEC); + int splitHealth = health / 2; + PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: split tank in %.1fs, health=%d", duration, splitHealth); + CreateTimer(duration, Timer_SpawnSplitTank, splitHealth); + SetEntProp(client, Prop_Send, "m_iHealth", splitHealth); + } else { + PrintDebug(DEBUG_SPAWNLOGIC, "OnTankBotSpawn: Setting tank health to %d", health); + SetEntProp(client, Prop_Send, "m_iHealth", health); + } + } Action Timer_SpawnSplitTank(Handle h, int health) { @@ -267,7 +290,7 @@ void Director_PrintDebug(int client) { } PrintToConsole(client, "highestFlow = %f, g_minFlowSpawn = %f, current flow = %f", g_highestFlowAchieved, g_minFlowSpawn, L4D2Direct_GetFlowDistance(client)); PrintToConsole(client, "g_maxStressIntensity = %f, current avg = %f", g_maxStressIntensity, L4D_GetAvgSurvivorIntensity()); - PrintToConsole(client, "TankInPlay=%b, FinaleEscapeReady=%b, DirectorTankCheck:%b", L4D2_IsTankInPlay(), g_isFinaleEnding, L4D2_IsTankInPlay() && !g_isFinaleEnding); + PrintToConsole(client, "TankInPlay=%b, FinaleStage=%d, FinaleEscapeReady=%b, DirectorTankCheck:%b", L4D2_IsTankInPlay(), g_finaleStage, g_isFinaleEnding, L4D2_IsTankInPlay() && !g_isFinaleEnding); char buffer[128]; float time = GetGameTime(); PrintToConsole(client, "Last Spawn Deltas: (%.1f s) (min %f)", time - g_lastSpecialSpawnTime, DIRECTOR_MIN_SPAWN_TIME); @@ -291,6 +314,7 @@ void Director_RandomizeLimits() { g_spawnLimit[i] = GetRandomInt(0, max); // PrintDebug(DEBUG_SPAWNLOGIC, "new spawn limit (special=%d, b=[0,%d], limit=%d)", i, max, g_spawnLimit[i]); } + gd_maxSpecials = L4D2_GetScriptValueInt("MaxSpecials", 0); } void Director_RandomizeThings() { g_maxStressIntensity = GetRandomFloat(DIRECTOR_STRESS_CUTOFF, 1.0); @@ -351,6 +375,8 @@ directorState Director_Think() { // A. They reach minimum flow (little past start saferoom) // B. Under the total limited (equal to player count) // C. Special spawning is enabled + gd_maxSpecials = L4D2_GetScriptValueInt("MaxSpecials", 0); + if(gd_maxSpecials <= 0) return DState_MaxDirectorSpecials; if( ~cvEPISpecialSpawning.IntValue & 1 || !L4D_HasAnySurvivorLeftSafeArea() || g_highestFlowAchieved < g_minFlowSpawn) return DState_PendingMinFlowOrDisabled; // Check if a rest period is given @@ -360,7 +386,7 @@ directorState Director_Think() { // Only spawn more than one special within 2s at 10% // TODO: randomized time between spawns? 0, ?? instead of repeat timer? - if(time - g_lastSpecialSpawnTime < 2.0 && GetURandomFloat() > 0.5) return DState_MaxSpecialTime; + if(time - g_lastSpecialSpawnTime < 1.0 && GetURandomFloat() > 0.45) return DState_MaxSpecialTime; if(GetURandomFloat() < DIRECTOR_CHANGE_LIMIT_CHANCE) { Director_RandomizeLimits(); @@ -408,7 +434,8 @@ Action Timer_Director(Handle h) { Action Timer_DirectorWitch(Handle h) { - if(g_spawnCount[Special_Witch] < g_extraWitchCount) { //&& time - g_lastSpawnTimes.witch > DIRECTOR_WITCH_MIN_TIME + // TODO: instead of +1, do it when director spawned a witch + if(g_spawnCount[Special_Witch] < g_extraWitchCount + 1) { //&& time - g_lastSpawnTimes.witch > DIRECTOR_WITCH_MIN_TIME for(int i = 0; i <= g_extraWitchCount; i++) { if(g_extraWitchFlowPositions[i] > 0.0 && g_highestFlowAchieved >= g_extraWitchFlowPositions[i]) { // Reset the flow so we don't spawn another @@ -433,6 +460,7 @@ void DirectorSpawn(specialType special, int player = -1) { int bot = CreateFakeClient("EPI_BOT"); if (bot != 0) { ChangeClientTeam(bot, 3); + CreateTimer(0.1, Timer_Kick, bot); } } diff --git a/scripting/l4d2_extraplayeritems.sp b/scripting/l4d2_extraplayeritems.sp index a34d6b8..34e4a59 100644 --- a/scripting/l4d2_extraplayeritems.sp +++ b/scripting/l4d2_extraplayeritems.sp @@ -50,6 +50,8 @@ #include #include #include +#undef REQUIRE_PLUGIN +#include #define L4D2_WEPUPGFLAG_NONE (0 << 0) #define L4D2_WEPUPGFLAG_INCENDIARY (1 << 0) @@ -82,7 +84,7 @@ public Plugin myinfo = }; ConVar hExtraItemBasePercentage, hAddExtraKits, hMinPlayers, hUpdateMinPlayers, hMinPlayersSaferoomDoor, hSaferoomDoorWaitSeconds, hSaferoomDoorAutoOpen, hEPIHudState, hExtraFinaleTank, cvDropDisconnectTime, hSplitTankChance, cvFFDecreaseRate, cvZDifficulty, cvEPIHudFlags, cvEPISpecialSpawning, cvEPIGamemodes, hGamemode, cvEPITankHealth, cvEPIEnabledMode; -ConVar g_ffFactorCvar; +ConVar g_ffFactorCvar, hExtraTankThreshold; int g_extraKitsAmount, g_extraKitsStart, g_saferoomDoorEnt, g_prevPlayerCount; bool g_forcedSurvivorCount; static int g_currentChapter; @@ -143,9 +145,10 @@ stock int StrLenMB(const char[] str){ enum struct PlayerData { bool itemGiven; //Is player being given an item (such that the next pickup event is ignored) bool isUnderAttack; //Is the player under attack (by any special) - State state; + State state; // join state bool hasJoined; int joinTime; + float returnedIdleTime; char nameCache[64]; int scrollIndex; @@ -193,7 +196,7 @@ enum struct PlayerInventory { int timestamp; bool isAlive; - WeaponId itemID[6]; //int -> char? + WeaponId itemID[6]; MeleeWeaponId meleeID; // If itemID[1] == WeaponId_Melee, pull from this bool lasers; @@ -208,27 +211,13 @@ enum struct PlayerInventory { PlayerData playerData[MAXPLAYERS+1]; -/* -TODO: -1. Save player inventory on: - a. Disconnect (saferoom disconnect too) - b. Periodically? -2. On new map join (OnClientPutInServer¿) check following item matches: - a. primary weapon - b. secondary weapon (excl melee) -If a || b != saved items, then their character was dropped/swapped -Restore from saved inventory -*/ - static StringMap weaponMaxClipSizes; static StringMap pInv; static int g_lastInvSave[MAXPLAYERS+1]; static Handle g_saveTimer[MAXPLAYERS+1] = { null, ... }; static char HUD_SCRIPT_DATA[] = "eph <- { Fields = { players = { slot = g_ModeScript.HUD_RIGHT_BOT, dataval = \"%s\", flags = g_ModeScript.HUD_FLAG_ALIGN_LEFT | g_ModeScript.HUD_FLAG_TEAM_SURVIVORS | g_ModeScript.HUD_FLAG_NOBG } } }\nHUDSetLayout(eph)\nHUDPlace(g_ModeScript.HUD_RIGHT_BOT,0.78,0.77,0.3,0.3)\ng_ModeScript;"; - static char HUD_SCRIPT_CLEAR[] = "g_ModeScript._eph <- { Fields = { players = { slot = g_ModeScript.HUD_RIGHT_BOT, dataval = \"\", flags = g_ModeScript.HUD_FLAG_ALIGN_LEFT|g_ModeScript.HUD_FLAG_TEAM_SURVIVORS|g_ModeScript.HUD_FLAG_NOBG } } };HUDSetLayout( g_ModeScript._eph );g_ModeScript"; - static char HUD_SCRIPT_DEBUG[] = "g_ModeScript._ephdebug <- {Fields = {players = {slot = g_ModeScript.HUD_RIGHT_BOT, dataval = \"DEBUG!!! %s\", flags = g_ModeScript.HUD_FLAG_ALIGN_LEFT|g_ModeScript.HUD_FLAG_TEAM_SURVIVORS|g_ModeScript.HUD_FLAG_NOBG}}};HUDSetLayout(g_ModeScript._ephdebug);HUDPlace(g_ModeScript.HUD_RIGHT_BOT, 0.72,0.78,0.3,0.3);g_ModeScript"; @@ -239,22 +228,13 @@ enum struct Cabinet { } static Cabinet cabinets[10]; //Store 10 cabinets -#define FINALE_TANK 8 -#define FINALE_STARTED 1 -#define FINALE_RESCUE_READY 6 -#define FINALE_HORDE 7 -#define FINALE_WAIT 10 - enum FinaleStage { Stage_Inactive = 0, - Stage_FinaleActive = 1, - Stage_FinaleTank1 = 2, - Stage_FinaleTank2 = 3, - Stage_FinaleDuplicatePending = 4, - Stage_TankSplit = 5, - Stage_InactiveFinale = -1 + Stage_Active = 1, // Finale has started + Stage_FirstTankSpawned = 2, + Stage_SecondTankSpawned = 3, + Stage_ActiveDone = 10 // No more logic to be done } -int extraTankHP; FinaleStage g_finaleStage; //// Definitions completSe @@ -286,8 +266,7 @@ public void OnPluginStart() { HookEvent("map_transition", Event_MapTransition); HookEvent("game_start", Event_GameStart); HookEvent("game_end", Event_GameStart); - HookEvent("round_freeze_end", Event_RoundFreezeEnd); - HookEvent("tank_spawn", Event_TankSpawn); + HookEvent("finale_start", Event_FinaleStart); //Special Event Tracking HookEvent("player_info", Event_PlayerInfo); @@ -312,7 +291,8 @@ public void OnPluginStart() { HookEvent("witch_spawn", Event_WitchSpawn); HookEvent("finale_vehicle_incoming", Event_FinaleVehicleIncoming); HookEvent("player_bot_replace", Event_PlayerToIdle); - HookEvent("item_pickup", Event_ItemPickup); + HookEvent("bot_player_replace", Event_PlayerFromIdle); + @@ -324,7 +304,8 @@ public void OnPluginStart() { hSaferoomDoorAutoOpen = CreateConVar("epi_doorunlock_open", "0", "Controls when the door automatically opens after unlocked. Add bits together.\n0 = Never, 1 = When timer expires, 2 = When all players loaded in", FCVAR_NONE, true, 0.0); hEPIHudState = CreateConVar("epi_hudstate", "1", "Controls when the hud displays.\n0 -> OFF, 1 = When 5+ players, 2 = ALWAYS", FCVAR_NONE, true, 0.0, true, 3.0); hExtraFinaleTank = CreateConVar("epi_extra_tanks", "3", "Add bits together. 0 = Normal tank spawning, 1 = 50% tank split on non-finale (half health), 2 = Tank split (full health) on finale ", FCVAR_NONE, true, 0.0, true, 3.0); - hSplitTankChance = CreateConVar("epi_splittank_chance", "0.80", "The % chance of a split tank occurring in non-finales", FCVAR_NONE, true, 0.0, true, 1.0); + hExtraTankThreshold = CreateConVar("epi_extra_tanks_min_players", "6", "The minimum number of players for extra tanks to spawn. When disabled, normal 5+ tank health applies", FCVAR_NONE, true, 0.0); + hSplitTankChance = CreateConVar("epi_splittank_chance", "0.75", "The % chance of a split tank occurring in non-finales", FCVAR_NONE, true, 0.0, true, 1.0); cvDropDisconnectTime = CreateConVar("epi_disconnect_time", "120.0", "The amount of seconds after a player has actually disconnected, where their character slot will be void. 0 to disable", FCVAR_NONE, true, 0.0); cvFFDecreaseRate = CreateConVar("epi_ff_decrease_rate", "0.3", "The friendly fire factor is subtracted from the formula (playerCount-4) * this rate. Effectively reduces ff penalty when more players. 0.0 to subtract none", FCVAR_NONE, true, 0.0); cvEPIHudFlags = CreateConVar("epi_hud_flags", "3", "Add together.\n1 = Scrolling hud, 2 = Show ping", FCVAR_NONE, true, 0.0); @@ -360,6 +341,7 @@ public void OnPluginStart() { SaveInventory(i, true); } playerData[i].Setup(i); + SDKHook(i, SDKHook_WeaponEquip, Event_Pickup); } } TryStartHud(); @@ -374,7 +356,6 @@ public void OnPluginStart() { RegAdminCmd("sm_epi_setkits", Command_SetKitAmount, ADMFLAG_CHEATS, "Sets the amount of extra kits that will be provided"); RegAdminCmd("sm_epi_lock", Command_ToggleDoorLocks, ADMFLAG_CHEATS, "Toggle all toggle\'s lock state"); RegAdminCmd("sm_epi_kits", Command_GetKitAmount, ADMFLAG_CHEATS); - RegAdminCmd("sm_epi_items", Command_RunExtraItems, ADMFLAG_CHEATS); RegConsoleCmd("sm_epi_stats", Command_DebugStats); RegConsoleCmd("sm_epi_debug", Command_Debug); // RegAdminCmd("sm_epi_val", Command_EPIValue); @@ -613,6 +594,19 @@ Action Command_Trigger(int client, int args) { if(StrEqual(arg, "witches")) { InitExtraWitches(); ReplyToCommand(client, "Extra witches active."); + } else if(StrEqual(arg, "items")) { + g_areItemsPopulated = false; + PopulateItems(); + ReplyToCommand(client, "Items populated."); + } else if(StrEqual(arg, "addbot")) { + if(GetFeatureStatus(FeatureType_Native, "NextBotCreatePlayerBotSurvivorBot") != FeatureStatus_Available){ + ReplyToCommand(client, "Unsupported."); + return Plugin_Handled; + } + int bot = CreateSurvivorBot(); + if(IsValidEdict(bot)) { + ReplyToCommand(client, "Created SurvivorBot: %d", bot); + } } else { ReplyToCommand(client, "Unknown trigger"); } @@ -741,11 +735,6 @@ Action Command_GetKitAmount(int client, int args) { ReplyToCommand(client, "isCheckpointReached %b, g_isLateLoaded %b, firstGiven %b", g_isCheckpointReached, g_isLateLoaded, g_startCampaignGiven); return Plugin_Handled; } -Action Command_RunExtraItems(int client, int args) { - ReplyToCommand(client, "Running extra item count increaser..."); - PopulateItems(); - return Plugin_Handled; -} Action Command_Debug(int client, int args) { PrintToConsole(client, "g_survivorCount = %d | g_realSurvivorCount = %d", g_survivorCount, g_realSurvivorCount); Director_PrintDebug(client); @@ -808,78 +797,13 @@ void Event_PlayerToIdle(Event event, const char[] name, bool dontBroadcast) { if(GetClientTeam(client) != 2) return; PrintToServer("%N -> idle %N", client, bot); } -public void L4D2_OnChangeFinaleStage_PostHandled(int finaleType, const char[] arg) { - if(finaleType == FINALE_STARTED && g_realSurvivorCount > 4) { - g_finaleStage = Stage_FinaleActive; - PrintToConsoleAll("[EPI] Finale started and over threshold"); - } else if(finaleType == FINALE_TANK) { - if(g_finaleStage == Stage_FinaleActive) { - g_finaleStage = Stage_FinaleTank1; - PrintToConsoleAll("[EPI] First tank stage has started"); - } else if(g_finaleStage == Stage_FinaleTank1) { - g_finaleStage = Stage_FinaleTank2; - PrintToConsoleAll("[EPI] Second tank stage started. Waiting for tank"); - } - } +void Event_PlayerFromIdle(Event event, const char[] name, bool dontBroadcast) { + int bot = GetClientOfUserId(event.GetInt("bot")); + int client = GetClientOfUserId(event.GetInt("player")); + if(GetClientTeam(client) != 2) return; + playerData[client].returnedIdleTime = GetGameTime(); + PrintToServer("idle %N -> idle %N", bot, client); } - -void Event_TankSpawn(Event event, const char[] name, bool dontBroadcast) { - // Only run when we aren't touching tanks (ABM in control) - if(cvEPISpecialSpawning.IntValue & 4) return; - int user = event.GetInt("userid"); - int tank = GetClientOfUserId(user); - if(tank > 0 && IsFakeClient(tank) && g_realSurvivorCount > 4 && hExtraFinaleTank.IntValue > 0) { - PrintToConsoleAll("[EPI] Split tank is enabled, checking new spawned tank"); - if(g_finaleStage == Stage_FinaleTank2 && g_extraFinaleTankEnabled && hExtraFinaleTank.IntValue & 2) { - PrintToConsoleAll("[EPI] Second tank spawned, setting health."); - // Sets health in half, sets finaleStage to health - float duration = GetRandomFloat(EXTRA_TANK_MIN_SEC, EXTRA_TANK_MAX_SEC); - CreateTimer(duration, Timer_SpawnFinaleTank, user); - } else if(g_finaleStage == Stage_FinaleDuplicatePending) { - PrintToConsoleAll("[EPI] Third & final tank spawned"); - RequestFrame(Frame_SetExtraTankHealth, user); - } else if(g_finaleStage == Stage_Inactive && g_extraFinaleTankEnabled && hExtraFinaleTank.IntValue & 1 && g_survivorCount > 6) { - g_finaleStage = Stage_TankSplit; - if(GetRandomFloat() <= hSplitTankChance.FloatValue) { - // Half their HP, assign half to self and for next tank - int hp = GetEntProp(tank, Prop_Send, "m_iHealth") / 2; - PrintToConsoleAll("[EPI] Creating a split tank (hp=%d)", hp); - extraTankHP = hp; - CreateTimer(0.2, Timer_SetHealth, user); - CreateTimer(GetRandomFloat(10.0, 18.0), Timer_SpawnSplitTank, hp); - } else { - PrintToConsoleAll("[EPI] Random chance for split tank failed"); - } - // Then, summon the next tank - } else if(g_finaleStage == Stage_TankSplit) { - CreateTimer(0.2, Timer_SetHealth, user); - } - } -} -Action Timer_SpawnFinaleTank(Handle t, int user) { - if(g_finaleStage == Stage_FinaleTank2) { - DirectorSpawn(Special_Tank); - // ServerCommand("sm_forcespecial tank"); - g_finaleStage = Stage_Inactive; - } - return Plugin_Handled; -} -Action Timer_SetHealth(Handle h, int user) { - int client = GetClientOfUserId(user); - if(client > 0 ) { - SetEntProp(client, Prop_Send, "m_iHealth", extraTankHP); - } - return Plugin_Handled; -} - -void Frame_SetExtraTankHealth(int user) { - int tank = GetClientOfUserId(user); - if(tank > 0 && g_finaleStage == Stage_FinaleDuplicatePending) { - SetEntProp(tank, Prop_Send, "m_iHealth", extraTankHP); - g_finaleStage = Stage_InactiveFinale; - } -} - public void OnGetWeaponsInfo(int pThis, const char[] classname) { char clipsize[8]; InfoEditor_GetString(pThis, "clip_size", clipsize, sizeof(clipsize)); @@ -985,6 +909,7 @@ void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast) { } } CreateTimer(0.5, Timer_GiveClientKit, userid); + SDKHook(client, SDKHook_WeaponEquip, Event_Pickup); } TryStartHud(); UpdatePlayerInventory(client); @@ -1033,6 +958,30 @@ Action Timer_DropSurvivor(Handle h, int client) { /////// Events ///////////////////////////////////////// +Action Event_Pickup(int client, int weapon) { + if(g_extraKitsAmount <= 0 || playerData[client].itemGiven || playerData[client].returnedIdleTime < 0.5 ) return Plugin_Continue; + static char name[32]; + GetEntityClassname(weapon, name, sizeof(name)); + if(StrEqual(name, "weapon_first_aid_kit", true)) { + // Use extra kit in checkpoints + if((L4D_IsInFirstCheckpoint(client) || L4D_IsInLastCheckpoint(client))) { + return UseExtraKit(client) ? Plugin_Handled : Plugin_Continue; + } else if(L4D_IsMissionFinalMap()) { + // If kit is in finale zone, then use extra kits here: + float pos[3]; + GetEntPropVector(weapon, Prop_Data, "m_vecOrigin", pos); + Address address = L4D_GetNearestNavArea(pos); + if(address != Address_Null) { + int attributes = L4D_GetNavArea_SpawnAttributes(address); + if(attributes & NAV_SPAWN_FINALE) { + return UseExtraKit(client) ? Plugin_Handled : Plugin_Continue; + } + } + } + } + return Plugin_Continue; +} + void Event_ItemPickup(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); if(client > 0 && GetClientTeam(client) == 2 && !IsFakeClient(client)) { @@ -1071,12 +1020,7 @@ Action Timer_SetupNewClient(Handle h, int userid) { // TODO: restore } - - // Incase their bot snagged a kit before we could give them one: - if(!DoesClientHaveKit(client)) { - int item = GivePlayerItem(client, "weapon_first_aid_kit"); - EquipPlayerWeapon(client, item); - } + GiveWeapon(client, "weapon_first_aid_kit", 0.1); // Iterate all clients and get: // a) the client with the lowest intensity @@ -1117,10 +1061,12 @@ Action Timer_SetupNewClient(Handle h, int userid) { secondaryWeapons.PushString(weaponName); } - float intensity = L4D_GetPlayerIntensity(i); - if(intensity < lowestIntensity || lowestClient == -1) { - lowestIntensity = intensity; - lowestClient = i; + if (!GetEntProp(i, Prop_Send, "m_isHangingFromLedge") && !GetEntProp(client, Prop_Send, "m_isIncapacitated")) { + float intensity = L4D_GetPlayerIntensity(i); + if(intensity < lowestIntensity || lowestClient == -1) { + lowestIntensity = intensity; + lowestClient = i; + } } } } @@ -1147,7 +1093,7 @@ Action Timer_SetupNewClient(Handle h, int userid) { // Get a position behind the player, but not too far to put them in a wall. // Hopefully reducing the chance they shot for "appearing" infront of a player float pos[3]; - GetHorizontalPositionFromClient(lowestClient, -20.0, pos); + GetHorizontalPositionFromClient(lowestClient, -40.0, pos); TeleportEntity(client, pos, NULL_VECTOR, NULL_VECTOR); // Just incase they _are_ in a wall, let the game check: L4D_WarpToValidPositionIfStuck(client); @@ -1219,46 +1165,139 @@ Action Timer_GiveKits(Handle timer) { return Plugin_Continue; } +int SpawnItem(const char[] itemName, float pos[3], float ang[3] = NULL_VECTOR) { + static char classname[32]; + Format(classname, sizeof(classname), "weapon_%s", itemName); + int spawner = CreateEntityByName(classname); + if(spawner == -1) return -1; + DispatchKeyValue(spawner, "solid", "6"); + // DispatchKeyValue(entity_weapon, "model", g_bLeft4Dead2 ? g_sWeaponModels2[model] : g_sWeaponModels[model]); + DispatchKeyValue(spawner, "rendermode", "3"); + DispatchKeyValue(spawner, "disableshadows", "1"); + TeleportEntity(spawner, pos, ang, NULL_VECTOR); + DispatchSpawn(spawner); + TeleportEntity(spawner, pos, ang, NULL_VECTOR); + return spawner; +} + +void IncreaseKits() { + float pos[3]; + int entity = FindEntityByClassname(-1, "weapon_first_aid_kit_spawn"); + if(entity == INVALID_ENT_REFERENCE) { + PrintToServer("[EPI] Warn: No kit spawns (weapon_first_aid_kit_spawn) found"); + return; + } + + while(g_extraKitsAmount > 0) { + GetEntPropVector(entity, Prop_Data, "m_vecOrigin", pos); + if(L4D_IsPositionInLastCheckpoint(pos)) { + // Give it a little chance to nudge itself + pos[2] += 0.3; + SpawnItem("first_aid_kit", pos); + g_extraKitsAmount--; + } + entity = FindEntityByClassname(entity, "weapon_first_aid_kit_spawn"); + // Loop around + if(entity == INVALID_ENT_REFERENCE) { + entity = -1; + } + } +} + +void IncreaseFinaleKits() { + float pos[3]; + int entity = -1; + int spawnCount = g_survivorCount - 4; + while(spawnCount > 0) { + GetEntPropVector(entity, Prop_Data, "m_vecOrigin", pos); + Address address = L4D_GetNearestNavArea(pos); + if(address != Address_Null) { + int attributes = L4D_GetNavArea_SpawnAttributes(address); + if(attributes & NAV_SPAWN_FINALE) { + pos[2] += 0.3; + SpawnItem("first_aid_kit", pos); + spawnCount--; + } + } + entity = FindEntityByClassname(entity, "weapon_first_aid_kit_spawn"); + // Loop around + if(entity == INVALID_ENT_REFERENCE) { + entity = -1; + } + } +} + +char NAV_SPAWN_NAMES[32][] = { + "EMPTY", + "STOP_SCAN", // 1 << 1 + "", + "", + "", + "BATTLESTATION", // 1 << 5 + "FINALE", // 1 << 6 + "PLAYER_START", + "BATTLEFIELD", + "IGNORE_VISIBILITY", + "NOT_CLEARABLE", + "CHECKPOINT", // 1 << 11 + "OBSCURED", + "NO_MOBS", + "THREAT", + "RESCUE_VEHICLE", + "RESCUE_CLOSET", + "ESCAPE_ROUTE", + "DESTROYED_DOOR", + "NOTHREAT", + "LYINGDOWN", // 1 << 20 + "", + "", + "", + "COMPASS_NORTH", // 1 << 24 + "COMPASS_NORTHEAST", + "COMPASS_EAST", + "COMPASS_EASTSOUTH", + "COMPASS_SOUTH", + "COMPASS_SOUTHWEST", + "COMPASS_WEST", + "COMPASS_WESTNORTH" +}; + +void Debug_GetAttributes(int attributes, char[] output, int maxlen) { + output[0] = '\0'; + for(int i = 0; i < 32; i++) { + if(attributes & (1 << i)) { + Format(output, maxlen, "%s %s", output, NAV_SPAWN_NAMES[i]); + } + } +} + public void OnMapStart() { - char map[5]; + char map[32]; GetCurrentMap(map, sizeof(map)); // If map starts with c#m#, 98% an official map - if(map[0] == 'c' && IsCharNumeric(map[1]) && (map[2] == 'm' || map[3] == 'm')) { - g_isOfficialMap = true; - } + g_isOfficialMap = map[0] == 'c' && IsCharNumeric(map[1]) && (map[2] == 'm' || map[3] == 'm'); g_isCheckpointReached = false; //If previous round was a failure, restore the amount of kits that were left directly after map transition if(g_isFailureRound) { g_extraKitsAmount = g_extraKitsStart; //give kits if first - if(L4D_IsFirstMapInScenario()) { + if(L4D_IsFirstMapInScenario() && IsEPIActive()) { GiveStartingKits(); } g_isFailureRound = false; - } else if(!L4D_IsFirstMapInScenario()) { - g_currentChapter++; - } else if(L4D_IsMissionFinalMap()) { - //Add extra kits for finales - char curMap[64]; - GetCurrentMap(curMap, sizeof(curMap)); - - // Disable tank split on hard rain finale - g_extraFinaleTankEnabled = true; - if(StrEqual(curMap, "c4m5_milltown_escape")) { - g_extraFinaleTankEnabled = false; - } - - int extraKits = g_survivorCount - 4; - if(extraKits > 0) { - // Keep how many extra kits were left after we loaded in, for resetting on failure rounds - g_extraKitsAmount += extraKits; - g_extraKitsStart = g_extraKitsAmount; - } - g_currentChapter++; } else { g_currentChapter++; } + if(L4D_IsMissionFinalMap()) { + IncreaseFinaleKits(); + // Disable tank split on hard rain finale + g_extraFinaleTankEnabled = true; + if(StrEqual(map, "c4m5_milltown_escape")) { + g_extraFinaleTankEnabled = false; + } + } + //Lock the beginning door if(hMinPlayersSaferoomDoor.FloatValue > 0.0) { int entity = -1; @@ -1287,20 +1326,21 @@ public void OnMapStart() { L4D2_RunScript(HUD_SCRIPT_CLEAR); Director_OnMapStart(); + g_areItemsPopulated = false; + CreateTimer(30.0, Timer_Populate); + if(g_isLateLoaded) { UpdateSurvivorCount(); g_isLateLoaded = false; } } - public void OnConfigsExecuted() { if(hUpdateMinPlayers.BoolValue && hMinPlayers != null) { hMinPlayers.IntValue = g_realSurvivorCount; } } - public void OnMapEnd() { g_isFinaleEnding = false; // Reset the ammo packs, deleting the internal arraylist @@ -1320,8 +1360,8 @@ public void OnMapEnd() { Director_OnMapEnd(); } -public void Event_RoundFreezeEnd(Event event, const char[] name, bool dontBroadcast) { - CreateTimer(50.0, Timer_Populate); +void Event_FinaleStart(Event event, const char[] name, bool dontBroadcast) { + g_finaleStage = Stage_Active; } Action Timer_Populate(Handle h) { PopulateItems(); @@ -1340,29 +1380,31 @@ public void EntityOutput_OnStartTouchSaferoom(const char[] output, int caller, i g_isCheckpointReached = true; UpdateSurvivorCount(); if(IsEPIActive()) { - int extraPlayers = g_survivorCount - 4; - float averageTeamHP = GetAverageHP(); - if(averageTeamHP <= 30.0) extraPlayers += (extraPlayers / 2); //if perm. health < 30, give an extra 4 on top of the extra - else if(averageTeamHP <= 50.0) extraPlayers += (extraPlayers / 3); //if the team's average health is less than 50 (permament) then give another - //Chance to get an extra kit (might need to be nerfed or restricted to > 50 HP) - if(GetRandomFloat() < 0.3 && averageTeamHP <= 80.0) ++extraPlayers; - - - //If hAddExtraKits TRUE: Append to previous, FALSE: Overwrite - if(hAddExtraKits.BoolValue) - g_extraKitsAmount += extraPlayers; - else - g_extraKitsAmount = extraPlayers; - - g_extraKitsStart = g_extraKitsAmount; - - hMinPlayers.IntValue = g_survivorCount; - PrintToConsoleAll("[EPI] CHECKPOINT REACHED BY %N | EXTRA KITS: %d", client, extraPlayers); - PrintToServer("[EPI] Player entered saferoom. Providing %d extra kits", g_extraKitsAmount); + SetExtraKits(g_survivorCount); + IncreaseKits(); + PrintToServer("[EPI] Player entered saferoom. Extra Kits: %d", g_extraKitsAmount); } } } +void SetExtraKits(int playerCount) { + int extraPlayers = playerCount - 4; + float averageTeamHP = GetAverageHP(); + if(averageTeamHP <= 30.0) extraPlayers += (extraPlayers / 2); //if perm. health < 30, give an extra 4 on top of the extra + else if(averageTeamHP <= 50.0) extraPlayers += (extraPlayers / 3); //if the team's average health is less than 50 (permament) then give another + //Chance to get an extra kit (might need to be nerfed or restricted to > 50 HP) + if(GetRandomFloat() < 0.3 && averageTeamHP <= 80.0) ++extraPlayers; + + + //If hAddExtraKits TRUE: Append to previous, FALSE: Overwrite + if(hAddExtraKits.BoolValue) + g_extraKitsAmount += extraPlayers; + else + g_extraKitsAmount = extraPlayers; + + g_extraKitsStart = g_extraKitsAmount; +} + void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast) { if(!g_isFailureRound) g_isFailureRound = true; g_areItemsPopulated = false; @@ -1517,8 +1559,7 @@ void UnlockDoor(int flag) { SetVariantString("Unlock"); AcceptEntityInput(entity, "SetAnimation"); g_saferoomDoorEnt = INVALID_ENT_REFERENCE; - if(!g_areItemsPopulated) - PopulateItems(); + PopulateItems(); } }