Hopefully fix epi hud

This commit is contained in:
Jackz 2022-06-27 11:40:23 -05:00
parent 4b058bf63d
commit 872c98afac
No known key found for this signature in database
GPG key ID: E0BBD94CF657F603
2 changed files with 17 additions and 17 deletions

Binary file not shown.

View file

@ -131,9 +131,9 @@ Restore from saved inventory
static StringMap weaponMaxClipSizes; static StringMap weaponMaxClipSizes;
static StringMap pInv; static StringMap pInv;
static char HUD_SCRIPT_DATA[] = "ExtraPlayerHUD <- { 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 } } };g_ModeScript"; static char HUD_SCRIPT_DATA[] = "g_ModeScript.ExtraPlayerHUD <- { 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 } } };HUDSetLayout( g_ModeScript.ExtraPlayerHUD );g_ModeScript";
static char HUD_SCRIPT_CLEAR[] = "ExtraPlayerHUD <- { Fields = { players = { slot = g_ModeScript.HUD_RIGHT_BOT, flags = g_ModeScript.HUD_FLAG_ALIGN_LEFT|g_ModeScript.HUD_FLAG_TEAM_SURVIVORS|g_ModeScript.HUD_FLAG_NOBG } } };HUDSetLayout( ExtraPlayerHUD );HUDPlace( g_ModeScript.HUD_RIGHT_BOT,0.72,0.78,0.3,0.3);g_ModeScript"; static char HUD_SCRIPT_CLEAR[] = "g_ModeScript.ExtraPlayerHUD <- { 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.ExtraPlayerHUD );g_ModeScript";
#define CABINET_ITEM_BLOCKS 4 #define CABINET_ITEM_BLOCKS 4
@ -220,7 +220,7 @@ public void OnPluginStart() {
int count = GetRealSurvivorsCount(); int count = GetRealSurvivorsCount();
abmExtraCount = count; abmExtraCount = count;
int threshold = hEPIHudState.IntValue == 1 ? 5 : 0; int threshold = hEPIHudState.IntValue == 1 ? 5 : 0;
if(hEPIHudState.IntValue > 0 && count > threshold && updateHudTimer == null) { if(true || hEPIHudState.IntValue > 0 && count > threshold && updateHudTimer == null) {
PrintToServer("[EPI] Creating new hud timer"); PrintToServer("[EPI] Creating new hud timer");
updateHudTimer = CreateTimer(EXTRA_PLAYER_HUD_UPDATE_INTERVAL, Timer_UpdateHud, _, TIMER_REPEAT); updateHudTimer = CreateTimer(EXTRA_PLAYER_HUD_UPDATE_INTERVAL, Timer_UpdateHud, _, TIMER_REPEAT);
} }
@ -305,6 +305,7 @@ public void Event_GamemodeChange(ConVar cvar, const char[] oldValue, const char[
public void OnPluginEnd() { public void OnPluginEnd() {
delete weaponMaxClipSizes; delete weaponMaxClipSizes;
delete ammoPacks; delete ammoPacks;
L4D2_ExecVScriptCode(HUD_SCRIPT_CLEAR);
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -613,6 +614,7 @@ public void Event_PlayerTeam(Event event, const char[] name, bool dontBroadcast)
public Action Timer_DropSurvivor(Handle h, int client) { public Action Timer_DropSurvivor(Handle h, int client) {
if(playerData[client].state == State_PendingEmpty) { if(playerData[client].state == State_PendingEmpty) {
playerData[client].state = State_Empty; playerData[client].state = State_Empty;
if(hMinPlayers != null) {
PrintToServer("[EPI] Dropping survivor %d. hMinPlayers-pre:%d", client, hMinPlayers.IntValue); PrintToServer("[EPI] Dropping survivor %d. hMinPlayers-pre:%d", client, hMinPlayers.IntValue);
PrintToConsoleAll("[EPI] Dropping survivor %d. hMinPlayers-pre:%d", client, hMinPlayers.IntValue); PrintToConsoleAll("[EPI] Dropping survivor %d. hMinPlayers-pre:%d", client, hMinPlayers.IntValue);
hMinPlayers.IntValue = --abmExtraCount; hMinPlayers.IntValue = --abmExtraCount;
@ -621,6 +623,7 @@ public Action Timer_DropSurvivor(Handle h, int client) {
PrintToConsoleAll("[EPI!!] hMinPlayers dropped below 4. This is a bug, please report to jackz."); PrintToConsoleAll("[EPI!!] hMinPlayers dropped below 4. This is a bug, please report to jackz.");
PrintToServer("[EPI!!] hMinPlayers dropped below 4. This is a bug, please report to jackz."); PrintToServer("[EPI!!] hMinPlayers dropped below 4. This is a bug, please report to jackz.");
} }
}
DropDroppedInventories(); DropDroppedInventories();
} }
} }
@ -735,7 +738,7 @@ public void Frame_SetupNewClient(int client) {
if(item) { if(item) {
GetEdictClassname(item, weaponName, sizeof(item)); GetEdictClassname(item, weaponName, sizeof(item));
SetEntProp(item, Prop_Send, "m_iClip1", L4D2_GetIntWeaponAttribute(weaponName, L4D2IWA_ClipSize)); L4D_SetReserveAmmo(client, item, L4D2_GetIntWeaponAttribute(weaponName, L4D2IWA_ClipSize));
EquipPlayerWeapon(client, item); EquipPlayerWeapon(client, item);
} else LogError("EPI Failed to give new late player weapon: %s", weaponName); } else LogError("EPI Failed to give new late player weapon: %s", weaponName);
} }
@ -1080,17 +1083,15 @@ void UnlockDoor(int entity, int flag) {
} }
public Action Timer_UpdateHud(Handle h) { public Action Timer_UpdateHud(Handle h) {
if(StrEqual(gamemode, "hideandseek")) return Plugin_Stop; if(!StrEqual(gamemode, "coop")) return Plugin_Stop;
int threshold = hEPIHudState.IntValue == 1 ? 4 : 0; int threshold = hEPIHudState.IntValue == 1 ? 4 : 0;
if(hEPIHudState.IntValue == 0 || abmExtraCount <= threshold) { if(hEPIHudState.IntValue == 0 || abmExtraCount <= threshold) {
PrintToServer("[EPI] Less than threshold, stopping hud timer"); PrintToServer("[EPI] Less than threshold, stopping hud timer (hudState=%d, abmExtraCount=%d)", hEPIHudState.IntValue, abmExtraCount);
L4D2_RunScript(HUD_SCRIPT_CLEAR); L4D2_RunScript(HUD_SCRIPT_CLEAR);
updateHudTimer = null; updateHudTimer = null;
return Plugin_Stop; return Plugin_Stop;
} }
static char players[512]; static char players[512], data[32], prefix[16];
static char data[32];
static char prefix[16];
players[0] = '\0'; players[0] = '\0';
for(int i = 1; i <= MaxClients; i++) { for(int i = 1; i <= MaxClients; i++) {
if(IsClientConnected(i) && IsClientInGame(i) && GetClientTeam(i) == 2) { if(IsClientConnected(i) && IsClientInGame(i) && GetClientTeam(i) == 2) {
@ -1107,7 +1108,6 @@ public Action Timer_UpdateHud(Handle h) {
}else{ }else{
Format(prefix, 8, "%N", i); Format(prefix, 8, "%N", i);
} }
//TOOD: Move to bool instead of ent prop
if(!IsPlayerAlive(i)) if(!IsPlayerAlive(i))
Format(data, sizeof(data), "xx"); Format(data, sizeof(data), "xx");
else if(GetEntProp(i, Prop_Send, "m_bIsOnThirdStrike") == 1) else if(GetEntProp(i, Prop_Send, "m_bIsOnThirdStrike") == 1)