From 4d18956ea1e49e01d2fa55b63f8219489a2a12d6 Mon Sep 17 00:00:00 2001 From: neon <> Date: Fri, 4 Oct 2019 13:31:37 +0200 Subject: [PATCH] Hitmarker: support for different skins + overall improvements --- Hitmarker/configs/Hitmarkers.cfg | 13 ++ .../unloze/hitmarker/hitmarker_guc.vmt | 7 + .../unloze/hitmarker/hitmarker_guc.vtf | Bin 0 -> 2097296 bytes .../unloze/hitmarker/hitmarker_nano.vmt | 5 + .../unloze/hitmarker/hitmarker_nano.vtf} | Bin Hitmarker/content/overlays/nano/hitmarker.vmt | 5 - Hitmarker/scripting/Hitmarker.sp | 157 +++++++++++++----- 7 files changed, 145 insertions(+), 42 deletions(-) create mode 100644 Hitmarker/configs/Hitmarkers.cfg create mode 100644 Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vmt create mode 100644 Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vtf create mode 100644 Hitmarker/content/materials/unloze/hitmarker/hitmarker_nano.vmt rename Hitmarker/content/{overlays/nano/hitmarker.vtf => materials/unloze/hitmarker/hitmarker_nano.vtf} (100%) delete mode 100644 Hitmarker/content/overlays/nano/hitmarker.vmt diff --git a/Hitmarker/configs/Hitmarkers.cfg b/Hitmarker/configs/Hitmarkers.cfg new file mode 100644 index 00000000..975715c2 --- /dev/null +++ b/Hitmarker/configs/Hitmarkers.cfg @@ -0,0 +1,13 @@ +"Hitmarkers" +{ + "0" // default one + { + "Path" "unloze/hitmarker/hitmarker_nano" + "Name" "Skin 1" + } + "1" + { + "Path" "unloze/hitmarker/hitmarker_guc" + "Name" "Skin 2" + } +} diff --git a/Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vmt b/Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vmt new file mode 100644 index 00000000..87d73c23 --- /dev/null +++ b/Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vmt @@ -0,0 +1,7 @@ +"MonitorScreen" +{ + "$basetexture" "unloze/hitmarker/hitmarker_guc" + "$alphatest" 1 + "$translucent" 1 + "$vertexalpha" 1 +} diff --git a/Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vtf b/Hitmarker/content/materials/unloze/hitmarker/hitmarker_guc.vtf new file mode 100644 index 0000000000000000000000000000000000000000..10cdd4340eada3253bab00e95fe6ac6c734c7451 GIT binary patch literal 2097296 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 literal 0 HcmV?d00001 diff --git a/Hitmarker/content/materials/unloze/hitmarker/hitmarker_nano.vmt b/Hitmarker/content/materials/unloze/hitmarker/hitmarker_nano.vmt new file mode 100644 index 00000000..d88ca024 --- /dev/null +++ b/Hitmarker/content/materials/unloze/hitmarker/hitmarker_nano.vmt @@ -0,0 +1,5 @@ +"UnlitGeneric" +{ + "$basetexture" "unloze/hitmarker/hitmarker_nano" + "$translucent" 1 +} \ No newline at end of file diff --git a/Hitmarker/content/overlays/nano/hitmarker.vtf b/Hitmarker/content/materials/unloze/hitmarker/hitmarker_nano.vtf similarity index 100% rename from Hitmarker/content/overlays/nano/hitmarker.vtf rename to Hitmarker/content/materials/unloze/hitmarker/hitmarker_nano.vtf diff --git a/Hitmarker/content/overlays/nano/hitmarker.vmt b/Hitmarker/content/overlays/nano/hitmarker.vmt deleted file mode 100644 index 38e6884f..00000000 --- a/Hitmarker/content/overlays/nano/hitmarker.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"UnlitGeneric" -{ - "$basetexture" "overlays/nano/hitmarker" - "$translucent" 1 -} \ No newline at end of file diff --git a/Hitmarker/scripting/Hitmarker.sp b/Hitmarker/scripting/Hitmarker.sp index f0c3a970..c519d809 100644 --- a/Hitmarker/scripting/Hitmarker.sp +++ b/Hitmarker/scripting/Hitmarker.sp @@ -18,6 +18,11 @@ bool g_bShowZombieHitmarker[MAXPLAYERS+1]; bool g_bHitmarkerSound[MAXPLAYERS+1]; int g_iHitmarkerSoundVolume[MAXPLAYERS+1] = {100,...}; +int g_iHitmarkerSkin[MAXPLAYERS+1]; + +#define MAXIMUMSKINS 6 +char g_sHitmarkerSkins[MAXIMUMSKINS][PLATFORM_MAX_PATH]; +char g_sHitmarkerSkinsNames[MAXIMUMSKINS][PLATFORM_MAX_PATH]; Handle g_hTimer[MAXPLAYERS+1] = {null,...}; @@ -25,18 +30,17 @@ Handle g_hCookie_ShowBossHitmarker; Handle g_hCookie_ShowZombieHitmarker; Handle g_hCookie_HitmarkerSound; Handle g_hCookie_HitmarkerSoundVolume; - -//Handle g_hHudText; +Handle g_hCookie_HitmarkerSkin; //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Plugin myinfo = { - name = "Htimarker", + name = "Hitmarker", author = "Neon & Nano", description = "Players can enable or disable their hitmarkers while shooting zombies or bosses", - version = "1.0.0", + version = "2.0.0", }; //---------------------------------------------------------------------------------------------------- @@ -48,8 +52,7 @@ public void OnPluginStart() g_hCookie_ShowZombieHitmarker = RegClientCookie("hitmarker_zombie", "", CookieAccess_Private); g_hCookie_HitmarkerSound = RegClientCookie("hitmarker_sound", "", CookieAccess_Private); g_hCookie_HitmarkerSoundVolume = RegClientCookie("hitmarker_sound_volume", "", CookieAccess_Private); - - //g_hHudText = CreateHudSynchronizer(); + g_hCookie_HitmarkerSkin = RegClientCookie("hitmarker_skin", "", CookieAccess_Private); RegConsoleCmd("sm_hm", OnHitmarkerSettings); RegConsoleCmd("sm_hitmarker", OnHitmarkerSettings); @@ -59,7 +62,7 @@ public void OnPluginStart() SetCookieMenuItem(MenuHandler_CookieMenu, 0, "Hitmarker"); - HookEvent("player_hurt", OnClientHurt); + HookEvent("player_hurt", OnClientHurt); } //---------------------------------------------------------------------------------------------------- @@ -67,10 +70,66 @@ public void OnPluginStart() //---------------------------------------------------------------------------------------------------- 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"); + for (int i = 0; i < MAXIMUMSKINS; i++) + { + g_sHitmarkerSkins[i] = ""; + g_sHitmarkerSkinsNames[i] = ""; + } + + char sConfigFile[PLATFORM_MAX_PATH]; + BuildPath(Path_SM, sConfigFile, sizeof(sConfigFile), "configs/Hitmarkers.cfg"); + + if (!FileExists(sConfigFile)) + SetFailState("Could not find: \"%s\"", sConfigFile); + + KeyValues Hitmarkers = new KeyValues("Hitmarkers"); + + if (!Hitmarkers.ImportFromFile(sConfigFile)) + { + delete Hitmarkers; + SetFailState("ImportFromFile() failed!"); + } + + if (!Hitmarkers.GotoFirstSubKey()) + { + delete Hitmarkers; + SetFailState("Unable to goto first sub key in: \"%s\"", sConfigFile); + } + + int i = 0; + do + { + char sPath[PLATFORM_MAX_PATH]; + Hitmarkers.GetString("Path", sPath, sizeof(sPath), "error"); + if (StrEqual(sPath, "error")) + { + delete Hitmarkers; + SetFailState("Unable to read Path"); + } + + char sName[32]; + Hitmarkers.GetString("Name", sName, sizeof(sName), "error"); + if (StrEqual(sName, "error")) + { + delete Hitmarkers; + SetFailState("Unable to read Name"); + } + + char sBuffer[PLATFORM_MAX_PATH]; + + Format(sBuffer, sizeof(sBuffer), "materials/%s.vmt", sPath); + PrecacheGeneric(sBuffer, true); + AddFileToDownloadsTable(sBuffer); + + Format(sBuffer, sizeof(sBuffer), "materials/%s.vtf", sPath); + PrecacheGeneric(sBuffer, true); + AddFileToDownloadsTable(sBuffer); + + g_sHitmarkerSkins[i] = sPath; + g_sHitmarkerSkinsNames[i] = sName; + i++; + } while(Hitmarkers.GotoNextKey()); + delete Hitmarkers; PrecacheSound("unloze/hm_v3.mp3"); AddFileToDownloadsTable("sound/unloze/hm_v3.mp3"); @@ -81,34 +140,46 @@ public void OnMapStart() //---------------------------------------------------------------------------------------------------- public void OnClientCookiesCached(int client) { - char sBuffer[4]; - GetClientCookie(client, g_hCookie_ShowBossHitmarker, sBuffer, sizeof(sBuffer)); + char sBuffer[PLATFORM_MAX_PATH]; + 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; GetClientCookie(client, g_hCookie_HitmarkerSound, sBuffer, sizeof(sBuffer)); - if (sBuffer[0]) g_bHitmarkerSound[client] = true; else g_bHitmarkerSound[client] = false; GetClientCookie(client, g_hCookie_HitmarkerSoundVolume, sBuffer, sizeof(sBuffer)); - if (sBuffer[0]) g_iHitmarkerSoundVolume[client] = StringToInt(sBuffer); else g_iHitmarkerSoundVolume[client] = 100; + + GetClientCookie(client, g_hCookie_HitmarkerSkin, sBuffer, sizeof(sBuffer)); + if (sBuffer[0]) + { + for (int i = 0; i < MAXIMUMSKINS; i++) + { + if (StrEqual(g_sHitmarkerSkins[i], sBuffer)) + { + g_iHitmarkerSkin[client] = i; + break; + } + } + } + else + g_iHitmarkerSkin[client] = 0; } //---------------------------------------------------------------------------------------------------- @@ -120,6 +191,7 @@ public void OnClientDisconnect(int client) g_bShowZombieHitmarker[client] = false; g_bHitmarkerSound[client] = false; g_iHitmarkerSoundVolume[client] = 100; + g_iHitmarkerSkin[client] = 0; } //---------------------------------------------------------------------------------------------------- @@ -149,6 +221,9 @@ public void ToggleBossHitmarker(int 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"); + + if (g_bShowBossHitmarker[client]) + ShowOverlay(client, 2.0); } //---------------------------------------------------------------------------------------------------- @@ -169,6 +244,9 @@ public void ToggleZombieHitmarker(int 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"); + + if (g_bShowZombieHitmarker[client]) + ShowOverlay(client, 2.0); } //---------------------------------------------------------------------------------------------------- @@ -189,6 +267,9 @@ public void ToggleHitmarkerSound(int client) SetClientCookie(client, g_hCookie_HitmarkerSound, g_bHitmarkerSound[client] ? "1" : ""); CPrintToChat(client, "{cyan}[Hitmarker] {white}%s.", g_bHitmarkerSound[client] ? "Hitmarker Sound Enabled" : "Hitmarker Sound Disabled"); + + if (g_bHitmarkerSound[client]) + ShowOverlay(client, 2.0); } //---------------------------------------------------------------------------------------------------- @@ -206,7 +287,22 @@ public void ToggleHitmarkerSoundVolume(int client) SetClientCookie(client, g_hCookie_HitmarkerSoundVolume, sBuffer); - //CPrintToChat(client, "{cyan}[Hitmarker] {white}Hitmarker Sound Volume: %d\%", g_iHitmarkerSoundVolume[client]); + ShowOverlay(client, 2.0); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void ToggleHitmarkerSkin(int client) +{ + g_iHitmarkerSkin[client]++; + + if (StrEqual(g_sHitmarkerSkins[g_iHitmarkerSkin[client]], "")) + g_iHitmarkerSkin[client] = 0; + + SetClientCookie(client, g_hCookie_HitmarkerSkin, g_sHitmarkerSkins[g_iHitmarkerSkin[client]]); + + ShowOverlay(client, 2.0); } //---------------------------------------------------------------------------------------------------- @@ -232,6 +328,9 @@ public void ShowSettingsMenu(int client) Format(sBuffer, sizeof(sBuffer), "Hitmarker Sound Volume: %d\%", g_iHitmarkerSoundVolume[client]); menu.AddItem("3", sBuffer); + Format(sBuffer, sizeof(sBuffer), "Hitmarker Skin: %s", g_sHitmarkerSkinsNames[g_iHitmarkerSkin[client]]); + menu.AddItem("4", sBuffer); + menu.ExitBackButton = true; menu.Display(client, MENU_TIME_FOREVER); @@ -270,6 +369,7 @@ public int MenuHandler_MainMenu(Menu menu, MenuAction action, int client, int se case(1): ToggleZombieHitmarker(client); case(2): ToggleHitmarkerSound(client); case(3): ToggleHitmarkerSoundVolume(client); + case(4): ToggleHitmarkerSkin(client); } ShowSettingsMenu(client); @@ -294,11 +394,7 @@ public void OnBossDamaged(CBoss Boss, CConfig Config, int client, float damage) return; if (g_bShowBossHitmarker[client]) - { - //SetHudTextParams(-1.0, -1.0, 0.3, 255, 0, 0, 255, 0, 0.0, 0.0, 0.0); - //ShowSyncHudText(client, g_hHudText, "∷"); ShowOverlay(client); - } for (int spec = 1; spec <= MaxClients; spec++) { @@ -309,11 +405,7 @@ public void OnBossDamaged(CBoss Boss, CConfig Config, int client, float damage) int specTarget = GetClientSpectatorTarget(spec); if ((specMode == SPECMODE_FIRSTPERSON) && specTarget == client) - { - //SetHudTextParams(-1.0, -1.0, 0.3, 255, 0, 0, 255, 0, 0.0, 0.0, 0.0); - //ShowSyncHudText(spec, g_hHudText, "∷"); ShowOverlay(spec); - } } } @@ -332,11 +424,7 @@ public void OnClientHurt(Event hEvent, const char[] sEvent, bool bDontBroadcast) return; if (g_bShowZombieHitmarker[client]) - { - //SetHudTextParams(-1.0, -1.0, 0.3, 255, 0, 0, 255, 0, 0.0, 0.0, 0.0); - //ShowSyncHudText(client, g_hHudText, "∷"); ShowOverlay(client); - } for (int spec = 1; spec <= MaxClients; spec++) { @@ -347,19 +435,14 @@ public void OnClientHurt(Event hEvent, const char[] sEvent, bool bDontBroadcast) int specTarget = GetClientSpectatorTarget(spec); if (specMode == SPECMODE_FIRSTPERSON && specTarget == client) - { - //SetHudTextParams(-1.0, -1.0, 0.3, 255, 0, 0, 255, 0, 0.0, 0.0, 0.0); - //ShowSyncHudText(spec, g_hHudText, "∷"); ShowOverlay(spec); - } } - } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- -public void ShowOverlay(int client) +void ShowOverlay(int client, float fTime = 0.3) { if (g_bHitmarkerSound[client]) { @@ -372,8 +455,8 @@ public void ShowOverlay(int client) 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); + ClientCommand(client, "r_screenoverlay \"%s\"", g_sHitmarkerSkins[g_iHitmarkerSkin[client]]); + g_hTimer[client] = CreateTimer(fTime, ClearOverlay, client, TIMER_FLAG_NO_MAPCHANGE); } //----------------------------------------------------------------------------------------------------