v1.1.8
This commit is contained in:
parent
555fc45d08
commit
d68896f181
22 changed files with 338 additions and 106 deletions
|
|
@ -40,6 +40,7 @@ namespace src.command
|
|||
{ SplitCommands(config.NormalCommands.UseSkillCommand.Alias), ("Use/Type skill", Command_UseTypeSkill) },
|
||||
{ SplitCommands(config.NormalCommands.ConsoleCommand.Alias), ("Console command", Command_CustomCommand) },
|
||||
{ SplitCommands(config.NormalCommands.HealCommand.Alias), ("Heal", Command_Heal) },
|
||||
{ SplitCommands(config.NormalCommands.HudCommand.Alias), ("Enable/Disable HUD", Command_HUD) },
|
||||
{ SplitCommands(config.NormalCommands.SetStaticSkillCommand.Alias), ("Set static skill", Command_SetStaticSkill) },
|
||||
{ SplitCommands(config.NormalCommands.ChangeLanguageCommand.Alias), ("Change language", Command_ChangeLanguage) },
|
||||
{ SplitCommands(config.NormalCommands.ReloadCommand.Alias), ("Reaload configs", Command_Reload) },
|
||||
|
|
@ -324,6 +325,21 @@ namespace src.command
|
|||
player.PrintToChat($" {ChatColors.Green}{player.GetTranslation("healed")}");
|
||||
}
|
||||
|
||||
[CommandHelper(minArgs: 0, whoCanExecute: CommandUsage.CLIENT_ONLY)]
|
||||
private static void Command_HUD(CCSPlayerController? player, CommandInfo command)
|
||||
{
|
||||
Debug.WriteToDebug($"Player {player?.PlayerPawn} used the css_hud {command.ArgString} command.");
|
||||
if (player == null || !player.IsValid || player.PlayerPawn.Value == null || !player.PlayerPawn.Value.IsValid) return;
|
||||
if (!AdminManager.PlayerHasPermissions(player, config.NormalCommands.HudCommand.Permissions)) return;
|
||||
|
||||
var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
|
||||
if (playerInfo == null) return;
|
||||
|
||||
playerInfo.DisplayHUD = !playerInfo.DisplayHUD;
|
||||
SkillUtils.CloseMenu(player);
|
||||
player.PrintToChat($" {(playerInfo.DisplayHUD ? ChatColors.Green : ChatColors.Red)}{player.GetTranslation(playerInfo.DisplayHUD ? "hud_on" : "hud_off")}");
|
||||
}
|
||||
|
||||
[CommandHelper(minArgs: 2, whoCanExecute: CommandUsage.CLIENT_AND_SERVER)]
|
||||
private static void Command_SetScore(CCSPlayerController? player, CommandInfo command)
|
||||
{
|
||||
|
|
@ -485,13 +501,23 @@ namespace src.command
|
|||
Localization.Load();
|
||||
Load();
|
||||
|
||||
foreach (var skill in SkillData.Skills)
|
||||
skill.Color = SkillsInfo.GetValue<string>(skill.Skill, "color");
|
||||
SkillData.Skills.Clear();
|
||||
foreach (var skill in Enum.GetValues(typeof(Skills)))
|
||||
if (SkillsInfo.GetValue<bool>(skill, "active"))
|
||||
Instance.SkillAction(skill.ToString()!, "LoadSkill");
|
||||
|
||||
if (player != null && player.IsValid)
|
||||
player.PrintToChat($" {ChatColors.Green}{player.GetTranslation("reload")}");
|
||||
else
|
||||
Server.PrintToConsole($" {ChatColors.Green}{Localization.GetTranslation("reload")}");
|
||||
|
||||
foreach (var target in Instance.SkillPlayer)
|
||||
{
|
||||
if (SkillsInfo.GetValue<bool>(target.Skill, "active") == false)
|
||||
target.Skill = Event.noneSkill.Skill;
|
||||
if (SkillsInfo.GetValue<bool>(target.SpecialSkill, "active") == false)
|
||||
target.SpecialSkill = Event.noneSkill.Skill;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace src
|
|||
public override string ModuleName => "[CS2] [ jRandomSkills ]";
|
||||
public override string ModuleAuthor => "D3X, Juzlus";
|
||||
public override string ModuleDescription => "Plugin adds random skills every round for CS2 by D3X. Modified by Juzlus.";
|
||||
public override string ModuleVersion => "1.1.7";
|
||||
public override string ModuleVersion => "1.1.8";
|
||||
|
||||
public override void Load(bool hotReload)
|
||||
{
|
||||
|
|
@ -104,6 +104,7 @@ namespace src
|
|||
public bool IsDrawing { get; set; }
|
||||
public DateTime SkillDescriptionHudExpired { get; set; }
|
||||
public string? PrintHTML { get; set; }
|
||||
public bool DisplayHUD { get; set; }
|
||||
}
|
||||
|
||||
public class jSkill_SkillInfo(Skills skill, string color, bool display)
|
||||
|
|
|
|||
|
|
@ -438,6 +438,8 @@
|
|||
"healed": "You have been healed.",
|
||||
"game_start": "Game started!",
|
||||
"reload": "Languages and configs have been reloaded.",
|
||||
"hud_on": "HUD has been enabled.",
|
||||
"hud_off": "HUD has been disabled.",
|
||||
|
||||
"vote_started": "Vote started: '{0}'",
|
||||
"vote_timeout": "Vote '{0}' timed out!",
|
||||
|
|
|
|||
|
|
@ -438,6 +438,8 @@
|
|||
"healed": "Vous avez été soigné.",
|
||||
"game_start": "La partie a commencé !",
|
||||
"reload": "Les langues et configurations ont été rechargées.",
|
||||
"hud_on": "Le HUD a été activé.",
|
||||
"hud_off": "Le HUD a été désactivé.",
|
||||
|
||||
"vote_started": "Vote lancé : « {0} »",
|
||||
"vote_timeout": "Le vote « {0} » a expiré !",
|
||||
|
|
|
|||
|
|
@ -438,6 +438,8 @@
|
|||
"healed": "Zostałeś uleczony.",
|
||||
"game_start": "Gra rozpoczęta!",
|
||||
"reload": "Tłumaczenia i konfigi zostały ponownie załadowane.",
|
||||
"hud_on": "HUD został włączony.",
|
||||
"hud_off": "HUD został wyłączony.",
|
||||
|
||||
"vote_started": "Głosowanie rozpoczęte: '{0}'",
|
||||
"vote_timeout": "Głosowanie '{0}' przekroczyło limit czasu!",
|
||||
|
|
|
|||
|
|
@ -438,6 +438,8 @@
|
|||
"healed": "Você foi curado.",
|
||||
"game_start": "Jogo iniciado!",
|
||||
"reload": "Os idiomas e as configurações foram recarregados.",
|
||||
"hud_on": "O HUD foi ativado.",
|
||||
"hud_off": "O HUD foi desativado.",
|
||||
|
||||
"vote_started": "Votação iniciada: '{0}'",
|
||||
"vote_timeout": "Votação '{0}' expirou!",
|
||||
|
|
|
|||
|
|
@ -438,6 +438,8 @@
|
|||
"healed": "你已被治疗。",
|
||||
"game_start": "游戏开始!",
|
||||
"reload": "语言和配置已重新加载。",
|
||||
"hud_on": "HUD已启用。",
|
||||
"hud_off": "HUD已禁用。",
|
||||
|
||||
"vote_started": "投票开始:'{0}'",
|
||||
"vote_timeout": "投票'{0}'超时!",
|
||||
|
|
|
|||
|
|
@ -283,6 +283,8 @@ namespace src.player
|
|||
SpecialSkill = Skills.None,
|
||||
IsDrawing = false,
|
||||
SkillChance = 1,
|
||||
PrintHTML = null,
|
||||
DisplayHUD = true,
|
||||
});
|
||||
|
||||
string welcomeMsg = player.GetTranslation("welcome_message", "welcome");
|
||||
|
|
@ -385,6 +387,24 @@ namespace src.player
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (Config.LoadedConfig.DisableSkillsOnRoundEnd)
|
||||
{
|
||||
isTransmitRegistered = false;
|
||||
Instance.AddTimer(1f, () =>
|
||||
{
|
||||
DisableAll();
|
||||
foreach (var player in Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist))
|
||||
{
|
||||
var skillPlayer = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
|
||||
if (skillPlayer == null) continue;
|
||||
skillPlayer.Skill = noneSkill.Skill;
|
||||
skillPlayer.SpecialSkill = noneSkill.Skill;
|
||||
skillPlayer.PrintHTML = null;
|
||||
}
|
||||
});
|
||||
Instance.RemoveListener<CheckTransmit>(CheckTransmit);
|
||||
}
|
||||
return HookResult.Continue;
|
||||
}
|
||||
}
|
||||
|
|
@ -559,6 +579,7 @@ namespace src.player
|
|||
if (randomSkill.Display)
|
||||
SkillUtils.PrintToChat(player, $"{ChatColors.DarkRed}{player.GetSkillName(randomSkill.Skill)}{ChatColors.Lime}: {player.GetSkillDescription(randomSkill.Skill)}", false);
|
||||
|
||||
Instance?.SkillAction(skillPlayer.Skill.ToString(), "DisableSkill", [player]);
|
||||
skillPlayer.Skill = randomSkill.Skill;
|
||||
skillPlayer.SpecialSkill = Skills.None;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using CounterStrikeSharp.API;
|
||||
using CounterStrikeSharp.API.Core;
|
||||
using CounterStrikeSharp.API.Modules.Admin;
|
||||
using CounterStrikeSharp.API.Modules.Utils;
|
||||
using src.utils;
|
||||
using static CounterStrikeSharp.API.Core.Listeners;
|
||||
|
|
@ -48,7 +49,7 @@ namespace src.player
|
|||
{
|
||||
if (player == null) return;
|
||||
var skillPlayer = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
|
||||
if (skillPlayer == null) return;
|
||||
if (skillPlayer == null || !skillPlayer.DisplayHUD) return;
|
||||
|
||||
string infoLine = "";
|
||||
string skillLine = "";
|
||||
|
|
@ -86,7 +87,7 @@ namespace src.player
|
|||
}
|
||||
} else if (player?.IsValid == true)
|
||||
{
|
||||
if (player.Team is CsTeam.Spectator or CsTeam.None && Config.LoadedConfig.DisableSpectateHUD)
|
||||
if ((player.Team is CsTeam.Spectator or CsTeam.None && Config.LoadedConfig.DisableSpectateHUD) || AdminManager.PlayerHasPermissions(player, Config.LoadedConfig.DisableHUDOnDeathPermission))
|
||||
return;
|
||||
|
||||
var pawn = player.Pawn.Value;
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ namespace src.player.skills
|
|||
{
|
||||
if (string.IsNullOrEmpty(model))
|
||||
model = player.Team == CsTeam.Terrorist ? defaultTModel : defaultCTModel;
|
||||
|
||||
|
||||
pawn.SetModel(model);
|
||||
var originalRender = pawn.Render;
|
||||
pawn.Render = Color.FromArgb(255, originalRender.R, originalRender.G, originalRender.B);
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace src.player.skills
|
|||
private static void CreateReplica(CCSPlayerController player)
|
||||
{
|
||||
var playerPawn = player.PlayerPawn.Value;
|
||||
var replica = Utilities.CreateEntityByName<CDynamicProp>("prop_dynamic");
|
||||
var replica = Utilities.CreateEntityByName<CDynamicProp>("prop_dynamic_override");
|
||||
if (replica == null || playerPawn == null || !playerPawn.IsValid || playerPawn.AbsOrigin == null || playerPawn.AbsRotation == null)
|
||||
return;
|
||||
|
||||
|
|
@ -105,12 +105,12 @@ namespace src.player.skills
|
|||
|
||||
replica.Flags = playerPawn.Flags;
|
||||
replica.Flags |= (uint)Flags_t.FL_DUCKING;
|
||||
replica.Collision.SolidType = SolidType_t.SOLID_VPHYSICS;
|
||||
replica.CBodyComponent!.SceneNode!.Owner!.Entity!.Flags = (uint)(replica.CBodyComponent!.SceneNode!.Owner!.Entity!.Flags & ~(1 << 2));
|
||||
replica.SetModel(playerPawn!.CBodyComponent!.SceneNode!.GetSkeletonInstance().ModelState.ModelName);
|
||||
replica.Entity!.Name = replica.Globalname = $"Replica_{Server.TickCount}_{(player.Team == CsTeam.CounterTerrorist ? "CT" : "TT")}";
|
||||
replica.Teleport(pos, playerPawn.AbsRotation, null);
|
||||
replica.DispatchSpawn();
|
||||
replica.AcceptInput("EnableCollision");
|
||||
}
|
||||
|
||||
public static void OnTakeDamage(DynamicHook h)
|
||||
|
|
@ -121,18 +121,21 @@ namespace src.player.skills
|
|||
if (param == null || param.Entity == null || param2 == null || param2.Attacker == null || param2.Attacker.Value == null)
|
||||
return;
|
||||
|
||||
CCSPlayerPawn attackerPawn = new(param2.Attacker.Value.Handle);
|
||||
if (string.IsNullOrEmpty(param.Entity.Name)) return;
|
||||
if (!param.Entity.Name.StartsWith("Replica_")) return;
|
||||
|
||||
var replica = param.As<CPhysicsPropMultiplayer>();
|
||||
if (replica == null || !replica.IsValid) return;
|
||||
replica.EmitSound("GlassBottle.BulletImpact", volume: 1f);
|
||||
|
||||
replica.AcceptInput("Kill");
|
||||
|
||||
CCSPlayerPawn attackerPawn = new(param2.Attacker.Value.Handle);
|
||||
if (attackerPawn.DesignerName != "player")
|
||||
return;
|
||||
|
||||
var attackerTeam = attackerPawn.TeamNum;
|
||||
var replicaTeam = replica.Globalname.EndsWith("CT") ? 3 : 2;
|
||||
SkillUtils.TakeHealth(attackerPawn, attackerTeam != replicaTeam ? 15 : 5);
|
||||
replica.AcceptInput("Kill");
|
||||
}
|
||||
|
||||
public class PlayerSkillInfo
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ namespace src.utils
|
|||
public bool DisableSpectateHUD { get; set; }
|
||||
public bool FlashingHtmlHudFix { get; set; }
|
||||
public bool CS2TraceRayDebug { get; set; }
|
||||
public string DisableHUDOnDeathPermission { get; set; }
|
||||
public bool DisableSkillsOnRoundEnd { get; set; }
|
||||
public LanguageSystem LanguageSystem { get; set; }
|
||||
public HtmlHudCustomisation HtmlHudCustomisation { get; set; }
|
||||
public NormalCommands NormalCommands { get; set; }
|
||||
|
|
@ -100,6 +102,8 @@ namespace src.utils
|
|||
FlashingHtmlHudFix = true;
|
||||
CS2TraceRayDebug = false;
|
||||
DisableSpectateHUD = false;
|
||||
DisableHUDOnDeathPermission = "@jRandmosSkills/death";
|
||||
DisableSkillsOnRoundEnd = false;
|
||||
|
||||
LanguageSystem = new LanguageSystem
|
||||
{
|
||||
|
|
@ -141,7 +145,8 @@ namespace src.utils
|
|||
SkillsListCommand = new NormalCommand("supermoc, skille, listamocy, supermoce, skills, listaHabilidades, habilidades, 技能列表, 超能力列表", "@jRandmosSkills/admin"),
|
||||
UseSkillCommand = new NormalCommand("t, useSkill, usarHabilidade, 技能使用, 使用技能", "@jRandmosSkills/admin"),
|
||||
HealCommand = new NormalCommand("heal, ulecz, curar, tratar, 治疗, 治愈", "@jRandmosSkills/admin"),
|
||||
ConsoleCommand = new NormalCommand("console, sv, 控制台, 服务器", "@jRandmosSkills/root"),
|
||||
ConsoleCommand = new NormalCommand("console, sv, 控制台, 服务器", "@jRandmosSkills/owner"),
|
||||
HudCommand = new NormalCommand("hud, hood", ""),
|
||||
SetStaticSkillCommand = new NormalCommand("ustawstatycznyskill, ustaw_statyczny_skill, setstaticskill, set_static_skill", "@jRandmosSkills/admin"),
|
||||
ChangeLanguageCommand = new NormalCommand("lang, language, changelang, change_lang, jezyk, język", ""),
|
||||
ReloadCommand = new NormalCommand("reload, refresh", "@jRandmosSkills/admin"),
|
||||
|
|
@ -154,7 +159,7 @@ namespace src.utils
|
|||
SwapCommand = new VotingCommand(true, "swap, zmiana, trocar, 交换, 切换", "@jRandmosSkills/admin", 15, 90, 15, 20, 2),
|
||||
ShuffleCommand = new VotingCommand(true, "shuffle, embaralhar, 随机排序, 洗牌", "@jRandmosSkills/admin", 15, 90, 15, 20, 2),
|
||||
PauseCommand = new VotingCommand(true, "pause, unpause, pausar, despausar, 暂停, 恢复", "@jRandmosSkills/admin", 15, 60, 15, 2, 2),
|
||||
SetScoreCommand = new VotingCommand(true, "setscore, wynik, definirPontuacao, configurarPontos, 设置分数, 调整分数", "@jRandmosSkills/root", 15, 90, 15, 90, 2),
|
||||
SetScoreCommand = new VotingCommand(true, "setscore, wynik, definirPontuacao, configurarPontos, 设置分数, 调整分数", "@jRandmosSkills/owner", 15, 90, 15, 90, 2),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -205,6 +210,7 @@ namespace src.utils
|
|||
public required NormalCommand UseSkillCommand { get; set; }
|
||||
public required NormalCommand HealCommand { get; set; }
|
||||
public required NormalCommand ConsoleCommand { get; set; }
|
||||
public required NormalCommand HudCommand { get; set; }
|
||||
public required NormalCommand SetStaticSkillCommand { get; set; }
|
||||
public required NormalCommand ChangeLanguageCommand { get; set; }
|
||||
public required NormalCommand ReloadCommand { get; set; }
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ namespace src.utils
|
|||
if (player == null || !player.IsValid) return;
|
||||
|
||||
var playerInfo = jRandomSkills.Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
|
||||
if (playerInfo == null) return;
|
||||
if (playerInfo == null || !playerInfo.DisplayHUD) return;
|
||||
|
||||
var skillData = SkillData.Skills.FirstOrDefault(s => s.Skill == playerInfo.Skill);
|
||||
if (skillData == null) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue