v1.2.2.b2
## GENERAL - Updated CSS to version 1.0.369. - Upgraded the project from .NET 8.0 to .NET 10.0. - Updated Turkish language translation by @ByDexterTR. - Added Russian language translation by @213sdfsdgf. - Fixed an issue with incorrect display of Arabic nicknames. - Used ForceFullUpdate to resolve the "FATAL ERROR: CopyExistingEntity" crash. - Disabled stale HandleCommandDrop hook to avoid crashes when a player joins a team (thanks to @vladimir214sd). - Added new signatures to gamedata. - Added the ability to configure the number of grenades for every skill that uses grenades as part of its ability (e.g., Miner, AntyFlash, MagneticDecoy, etc.). ## SKILL IMPROVEMENTS - Re-Zombie: -- Fixed weapon switching issues when a player is holding a Zeus and a knife. -- Weapons are now removed for bots in zombie mode. - Ghost: -- Blocked the ability to use the Zeus. - Thorns: -- Added a configurable maximum health limit (37 HP) for the damage that can be reflected. - Second Life / Phoenix / Re-Zombie: -- Fixed an issue where players would occasionally fail to respawn if they took too much damage too quickly. - Ghost / Chicken: -- Blocked the ability to use the SG556 (`weapon_sg556`). - Wallhack: -- Fixed a bug that caused temporary enemy highlighting right after death. - Cypher: -- Added camera position persistence. - God Mode: -- Fixed an issue with permanent immortality triggering after reaching exactly 0 HP. - Weapons Swap: -- The ammo count is now also transferred when weapons are swapped. - Muhammed: -- Renamed the skill to "DeathBomb". - Spectator: -- Fixed a bug where a player with the Chicken skill would still display as a ragdoll after death when spectated. - Friendly Fire: -- The skill now works even when the server's mp_friendlyfire setting is set to 0. - Baseball: -- Disabled teammate killing.
This commit is contained in:
parent
cba834e8f0
commit
91761f7376
84 changed files with 6894 additions and 1689 deletions
|
|
@ -12,7 +12,8 @@ namespace src.player.skills
|
|||
{
|
||||
private const Skills skillName = Skills.Wallhack;
|
||||
private static readonly ConcurrentDictionary<uint, byte> playersInAction = new();
|
||||
private static ConcurrentDictionary<uint, (uint RelayIndex, uint GlowIndex, CsTeam Team)> glows = new();
|
||||
private static readonly ConcurrentDictionary<uint, (uint RelayIndex, uint GlowIndex, CsTeam Team)> glows = new();
|
||||
private static readonly ConcurrentDictionary<uint, DateTime> temporaryBlockList = new();
|
||||
|
||||
public static void LoadSkill()
|
||||
{
|
||||
|
|
@ -21,6 +22,12 @@ namespace src.player.skills
|
|||
|
||||
public static void CheckTransmit([CastFrom(typeof(nint))] CCheckTransmitInfoList infoList)
|
||||
{
|
||||
foreach (var kvp in temporaryBlockList)
|
||||
{
|
||||
if (DateTime.Now > kvp.Value)
|
||||
temporaryBlockList.TryRemove(kvp.Key, out _);
|
||||
}
|
||||
|
||||
foreach (var (info, player) in infoList)
|
||||
{
|
||||
if (player == null || !player.IsValid) continue;
|
||||
|
|
@ -54,11 +61,20 @@ namespace src.player.skills
|
|||
|
||||
var glowEntity1 = Utilities.GetEntityFromIndex<CBaseEntity>((int)glowInfo.RelayIndex);
|
||||
if (glowEntity1 == null || !glowEntity1.IsValid) continue;
|
||||
|
||||
var glowEntity2 = Utilities.GetEntityFromIndex<CBaseEntity>((int)glowInfo.GlowIndex);
|
||||
if (glowEntity2 == null || !glowEntity2.IsValid) continue;
|
||||
info.TransmitEntities.Remove(glowEntity1.Index);
|
||||
info.TransmitEntities.Remove(glowEntity2.Index);
|
||||
|
||||
if (info.TransmitEntities.Contains(glowEntity1.Index))
|
||||
info.TransmitEntities.Remove(glowEntity1.Index);
|
||||
|
||||
if (info.TransmitEntities.Contains(glowEntity2.Index))
|
||||
info.TransmitEntities.Remove(glowEntity2.Index);
|
||||
}
|
||||
|
||||
foreach (var kvp in temporaryBlockList)
|
||||
if (info.TransmitEntities.Contains(kvp.Key))
|
||||
info.TransmitEntities.Remove(kvp.Key);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -71,6 +87,9 @@ namespace src.player.skills
|
|||
|
||||
SkillUtils.SafeKillEntity<CDynamicProp>(relayIndex);
|
||||
SkillUtils.SafeKillEntity<CDynamicProp>(glowIndex);
|
||||
|
||||
temporaryBlockList.TryAdd(relayIndex, DateTime.Now.AddSeconds(2));
|
||||
temporaryBlockList.TryAdd(glowIndex, DateTime.Now.AddSeconds(2));
|
||||
}
|
||||
|
||||
glows.Clear();
|
||||
|
|
@ -81,15 +100,21 @@ namespace src.player.skills
|
|||
{
|
||||
Event.EnableTransmit();
|
||||
playersInAction.TryAdd(player.Index, 0);
|
||||
|
||||
if (glows.IsEmpty)
|
||||
SetGlowEffectForAll();
|
||||
|
||||
SkillUtils.ForceFullUpdateToAll();
|
||||
}
|
||||
|
||||
public static void DisableSkill(CCSPlayerController player)
|
||||
{
|
||||
playersInAction.TryRemove(player.Index, out _);
|
||||
|
||||
if (playersInAction.IsEmpty)
|
||||
NewRound();
|
||||
|
||||
SkillUtils.ForceFullUpdateToAll();
|
||||
}
|
||||
|
||||
private static void SetGlowEffectForAll()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue