From 17fac0b9ecc763f3d15fbeada8e082fadddd3fe6 Mon Sep 17 00:00:00 2001 From: neon <> Date: Sun, 1 Sep 2019 17:22:03 +0200 Subject: [PATCH] new Plugin: Hitmarker --- .../materials/overlays/nano/hitmarker.vmt | 5 + .../materials/overlays/nano/hitmarker.vtf | Bin 0 -> 2796384 bytes Hitmarker/scripting/Hitmarker.sp | 303 ++++++++++++++++++ 3 files changed, 308 insertions(+) create mode 100644 Hitmarker/materials/overlays/nano/hitmarker.vmt create mode 100644 Hitmarker/materials/overlays/nano/hitmarker.vtf create mode 100644 Hitmarker/scripting/Hitmarker.sp diff --git a/Hitmarker/materials/overlays/nano/hitmarker.vmt b/Hitmarker/materials/overlays/nano/hitmarker.vmt new file mode 100644 index 00000000..38e6884f --- /dev/null +++ b/Hitmarker/materials/overlays/nano/hitmarker.vmt @@ -0,0 +1,5 @@ +"UnlitGeneric" +{ + "$basetexture" "overlays/nano/hitmarker" + "$translucent" 1 +} \ No newline at end of file diff --git a/Hitmarker/materials/overlays/nano/hitmarker.vtf b/Hitmarker/materials/overlays/nano/hitmarker.vtf new file mode 100644 index 0000000000000000000000000000000000000000..3bd9dddfb28ae59c72a80d074bd87588471f14bf GIT binary patch literal 2796384 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 S@PG$A;GyqnI|#o^5C0dh6Ai@x literal 0 HcmV?d00001 diff --git a/Hitmarker/scripting/Hitmarker.sp b/Hitmarker/scripting/Hitmarker.sp new file mode 100644 index 00000000..df15d869 --- /dev/null +++ b/Hitmarker/scripting/Hitmarker.sp @@ -0,0 +1,303 @@ +#include <sourcemod> +#include <sdktools> +#include <BossHP> +#include <zombiereloaded> +#include <clientprefs> +#include <multicolors> + +#define SPECMODE_NONE 0 +#define SPECMODE_FIRSTPERSON 4 +#define SPECMODE_THIRDPERSON 5 +#define SPECMODE_FREELOOK 6 + +#pragma newdecls required +#pragma semicolon 1 + +bool g_bShowBossHitmarker[MAXPLAYERS+1]; +bool g_bShowZombieHitmarker[MAXPLAYERS+1]; + +Handle g_hTimer[MAXPLAYERS+1] = {null,...}; + +Handle g_hCookie_ShowBossHitmarker; +Handle g_hCookie_ShowZombieHitmarker; + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Plugin myinfo = +{ + name = "Htimarker", + author = "Neon & Nano", + description = "Players can enable or disable their hitmarkers while shooting zombies or bosses", + version = "1.0.0", +}; + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnPluginStart() +{ + g_hCookie_ShowBossHitmarker = RegClientCookie("hitmarker_boss", "", CookieAccess_Private); + g_hCookie_ShowZombieHitmarker = RegClientCookie("hitmarker_zombie", "", CookieAccess_Private); + + RegConsoleCmd("sm_bhm", OnToggleBossHitmarker); + RegConsoleCmd("sm_zhm", OnToggleZombieHitmarker); + + SetCookieMenuItem(MenuHandler_CookieMenu, 0, "Hitmarker"); + + HookEvent("player_hurt", OnClientHurt); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnMapStart() +{ + PrecacheGeneric("overlays/nano/hitmarker.vtf", true); + PrecacheGeneric("overlays/nano/hitmarker.vmt", true); + AddFileToDownloadsTable("materials/overlays/nano/hitmarker.vtf"); + AddFileToDownloadsTable("materials/overlays/nano/hitmarker.vmt"); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnClientCookiesCached(int client) +{ + char sBuffer[4]; + GetClientCookie(client, g_hCookie_ShowBossHitmarker, sBuffer, sizeof(sBuffer)); + + if (sBuffer[0]) + g_bShowBossHitmarker[client] = true; + else + g_bShowBossHitmarker[client] = false; + + GetClientCookie(client, g_hCookie_ShowZombieHitmarker, sBuffer, sizeof(sBuffer)); + + if (sBuffer[0]) + g_bShowZombieHitmarker[client] = true; + else + g_bShowZombieHitmarker[client] = false; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnClientDisconnect(int client) +{ + g_bShowBossHitmarker[client] = false; + g_bShowZombieHitmarker[client] = false; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action OnToggleBossHitmarker(int client, int args) +{ + ToggleBossHitmarker(client); + return Plugin_Handled; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void ToggleBossHitmarker(int client) +{ + g_bShowBossHitmarker[client] = !g_bShowBossHitmarker[client]; + SetClientCookie(client, g_hCookie_ShowBossHitmarker, g_bShowBossHitmarker[client] ? "1" : ""); + + CPrintToChat(client, "{cyan}[Hitmarker] {white}%s", g_bShowBossHitmarker[client] ? "Boss Hitmarker Enabled" : "Boss Hitmarker Disabled"); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action OnToggleZombieHitmarker(int client, int args) +{ + ToggleZombieHitmarker(client); + return Plugin_Handled; +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void ToggleZombieHitmarker(int client) +{ + g_bShowZombieHitmarker[client] = !g_bShowZombieHitmarker[client]; + SetClientCookie(client, g_hCookie_ShowZombieHitmarker, g_bShowZombieHitmarker[client] ? "1" : ""); + + CPrintToChat(client, "{cyan}[Hitmarker] {white}%s", g_bShowZombieHitmarker[client] ? "Zombie Hitmarker Enabled" : "Zombie Hitmarker Disabled"); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void ShowSettingsMenu(int client) +{ + Menu menu = new Menu(MenuHandler_MainMenu); + + menu.SetTitle("Hitmarker Settings", client); + + char sBuffer[128]; + + Format(sBuffer, sizeof(sBuffer), "Boss Hitmarker: %s", g_bShowBossHitmarker[client] ? "Enabled" : "Disabled"); + menu.AddItem("0", sBuffer); + + Format(sBuffer, sizeof(sBuffer), "Zombie Hitmarker: %s", g_bShowZombieHitmarker[client] ? "Enabled" : "Disabled"); + menu.AddItem("1", sBuffer); + + menu.ExitBackButton = true; + + menu.Display(client, MENU_TIME_FOREVER); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void MenuHandler_CookieMenu(int client, CookieMenuAction action, any info, char[] buffer, int maxlen) +{ + switch(action) + { + case(CookieMenuAction_DisplayOption): + { + Format(buffer, maxlen, "Hitmarker", client); + } + case(CookieMenuAction_SelectOption): + { + ShowSettingsMenu(client); + } + } +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public int MenuHandler_MainMenu(Menu menu, MenuAction action, int client, int selection) +{ + switch(action) + { + case(MenuAction_Select): + { + switch(selection) + { + case(0): ToggleBossHitmarker(client); + case(1): ToggleZombieHitmarker(client); + } + + ShowSettingsMenu(client); + } + case(MenuAction_Cancel): + { + ShowCookieMenu(client); + } + case(MenuAction_End): + { + delete menu; + } + } +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnBossDamaged(any Boss, any Config, int client, float damage) +{ + if (!IsValidClient(client)) + return; + + if (g_bShowBossHitmarker[client]) + ShowOverlay(client); + + for (int spec = 1; spec <= MaxClients; spec++) + { + if (!IsClientInGame(spec) || !IsClientObserver(spec) || !g_bShowBossHitmarker[spec]) + continue; + + int specMode = GetClientSpectatorMode(spec); + int specTarget = GetClientSpectatorTarget(spec); + + if ((specMode == SPECMODE_FIRSTPERSON) && specTarget == client) + ShowOverlay(spec); + } +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnClientHurt(Event hEvent, const char[] sEvent, bool bDontBroadcast) +{ + int client = GetClientOfUserId(hEvent.GetInt("attacker")); + int victim = GetClientOfUserId(hEvent.GetInt("userid")); + + if (client < 1 || client > MaxClients || victim < 1 || victim > MaxClients) + return; + + if (client == victim || (IsPlayerAlive(client) && ZR_IsClientZombie(client))) + return; + + if (g_bShowZombieHitmarker[client]) + ShowOverlay(client); + + for (int spec = 1; spec <= MaxClients; spec++) + { + if (!IsClientInGame(spec) || !IsClientObserver(spec) || !g_bShowZombieHitmarker[spec]) + continue; + + int specMode = GetClientSpectatorMode(spec); + int specTarget = GetClientSpectatorTarget(spec); + + if (specMode == SPECMODE_FIRSTPERSON && specTarget == client) + ShowOverlay(spec); + } + +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void ShowOverlay(int client) +{ + if (g_hTimer[client] != null) + { + delete g_hTimer[client]; + g_hTimer[client] = null; + } + ClientCommand(client, "r_screenoverlay \"%s\"", "overlays/nano/hitmarker"); + g_hTimer[client] = CreateTimer(0.3, ClearOverlay, client, TIMER_FLAG_NO_MAPCHANGE); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public Action ClearOverlay(Handle timer, int client) +{ + g_hTimer[client] = null; + ClientCommand(client, "r_screenoverlay \"\""); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +stock int IsValidClient(int client, bool nobots = true) +{ + if (client <= 0 || client > MaxClients || !IsClientConnected(client) || (nobots && IsFakeClient(client))) + return false; + + return IsClientInGame(client); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +int GetClientSpectatorMode(int client) +{ + return GetEntProp(client, Prop_Send, "m_iObserverMode"); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +int GetClientSpectatorTarget(int client) +{ + return GetEntPropEnt(client, Prop_Send, "m_hObserverTarget"); +}