This commit is contained in:
Juzlus 2025-08-21 02:12:25 +02:00
parent e44af68309
commit 6b8988ade4
77 changed files with 3033 additions and 391 deletions

View file

@ -1,4 +1,5 @@
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions;
using jRandomSkills.src.player;
@ -17,7 +18,7 @@ namespace jRandomSkills
if (Config.config.SkillsInfo.FirstOrDefault(s => s.Name == skillName.ToString())?.Active != true)
return;
Utils.RegisterSkill(skillName, "#ff0000");
SkillUtils.RegisterSkill(skillName, "#ff0000");
VirtualFunctions.CBaseEntity_TakeDamageOldFunc.Hook(OnTakeDamage, HookMode.Pre);
}
@ -26,16 +27,16 @@ namespace jRandomSkills
CEntityInstance param = h.GetParam<CEntityInstance>(0);
CTakeDamageInfo param2 = h.GetParam<CTakeDamageInfo>(1);
if (param == null || param2 == null || param2.Attacker == null)
if (param == null || param.Entity == null || param2 == null || param2.Attacker == null || param2.Attacker.Value == null)
return HookResult.Continue;
CCSPlayerPawn attackerPawn = new CCSPlayerPawn(param2.Attacker.Value.Handle);
CCSPlayerPawn victimPawn = new CCSPlayerPawn(param.Handle);
if (attackerPawn == null || attackerPawn.Controller?.Value == null || victimPawn == null || victimPawn.Controller?.Value == null)
if (attackerPawn.DesignerName != "player" || victimPawn.DesignerName != "player")
return HookResult.Continue;
if (attackerPawn.DesignerName != "player" || victimPawn.DesignerName != "player")
if (attackerPawn == null || attackerPawn.Controller?.Value == null || victimPawn == null || victimPawn.Controller?.Value == null)
return HookResult.Continue;
CCSPlayerController attacker = attackerPawn.Controller.Value.As<CCSPlayerController>();
@ -45,8 +46,8 @@ namespace jRandomSkills
if (playerInfo == null) return HookResult.Continue;
if (attacker.PawnIsAlive)
{
IntPtr hitGroupPointer = Marshal.ReadIntPtr(param2.Handle, 0x78);
{
IntPtr hitGroupPointer = Marshal.ReadIntPtr(param2.Handle, GameData.GetOffset("CTakeDamageInfo_HitGroup"));
if (hitGroupPointer != nint.Zero)
{
IntPtr hitGroupOffset = Marshal.ReadIntPtr(hitGroupPointer, 16);