This commit is contained in:
Juzlus 2025-02-25 01:49:34 +01:00
parent 68776c3382
commit 576cee8cfb
87 changed files with 4957 additions and 1558 deletions

View file

@ -0,0 +1,82 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using jRandomSkills.src.utils;
using static CounterStrikeSharp.API.Core.Listeners;
using static jRandomSkills.jRandomSkills;
namespace jRandomSkills
{
public static class PlayerOnTick
{
public static void Load()
{
Instance.RegisterListener<OnTick>(() =>
{
foreach (var player in Utilities.GetPlayers())
{
if (player != null && player.IsValid)
{
UpdatePlayerHud(player);
}
}
});
}
private static void UpdatePlayerHud(CCSPlayerController player)
{
if (player == null) return;
var skillPlayer = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
if (skillPlayer == null) return;
string infoLine = "";
string skillLine = "";
if (SkillData.Skills.Count == 0)
{
infoLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='#FFFFFF'>{Localization.GetTranslation("your_skill")}:</font> <br>";
skillLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='#FFFFFF'>{Localization.GetTranslation("none")}</font> <br>";
}
else if (skillPlayer.IsDrawing)
{
var randomSkill = SkillData.Skills[Instance.Random.Next(SkillData.Skills.Count)];
infoLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='#FFFFFF'>{Localization.GetTranslation("drawing_skill")}:</font> <br>";
skillLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='{randomSkill.Color}'>{randomSkill.Name}</font> <br>";
}
else if (!skillPlayer.IsDrawing)
{
if (player?.IsValid == true && player?.PawnIsAlive == true)
{
var skillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == skillPlayer.Skill);
if (skillInfo != null)
{
infoLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='#FFFFFF'>{Localization.GetTranslation("your_skill")}:</font> <br>";
skillLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='{skillInfo.Color}'>{skillInfo.Name}</font> <br>";
}
} else if (player?.IsValid == true)
{
var pawn = player.Pawn.Value;
if (pawn == null) return;
var observedPlayer = Utilities.GetPlayers().FirstOrDefault(p => p?.Pawn?.Value?.Handle == pawn?.ObserverServices?.ObserverTarget?.Value?.Handle);
if (observedPlayer == null) return;
var observeredPlayerSkill = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == observedPlayer.SteamID);
if (observeredPlayerSkill == null) return;
var observeredPlayerSkillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == observeredPlayerSkill.Skill);
if (observeredPlayerSkillInfo == null) return;
infoLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='#FFFFFF'>{Localization.GetTranslation("observer_skill")} {observeredPlayerSkill.PlayerName}:</font> <br>";
skillLine = $"<font class='fontSize-l' class='fontWeight-Bold' color='{observeredPlayerSkillInfo.Color}'>{observeredPlayerSkillInfo.Name}</font> <br>";
}
}
if (string.IsNullOrEmpty(infoLine) && string.IsNullOrEmpty(skillLine))
return;
var hudContent = infoLine + skillLine;
player.PrintToCenterHtml(hudContent);
}
}
}