From 179eb41e47bd68d19a5e16ff58fe451009812ead Mon Sep 17 00:00:00 2001 From: originalaidn <45371311+originalaidn@users.noreply.github.com> Date: Fri, 18 Oct 2024 23:12:47 +0200 Subject: [PATCH] removed ViewAsFloatKillStreak & added killstreak sync to disconnect --- Events.cs | 38 +++++++++++++++++++++++++++++++++----- WeaponAction.cs | 15 ++------------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/Events.cs b/Events.cs index 049e154a..0b090149 100644 --- a/Events.cs +++ b/Events.cs @@ -97,6 +97,37 @@ namespace WeaponPaints CommandsCooldown.Remove(player.Slot); + var playerInfo = new PlayerInfo + { + UserId = player.UserId, + Slot = player.Slot, + Index = (int)player.Index, + SteamId = player.SteamID.ToString(), + Name = player.PlayerName, + IpAddress = player.IpAddress?.Split(":")[0] + }; + + if (!GPlayerWeaponsInfo.TryGetValue(player.Slot, out var weaponInfos)) + return HookResult.Continue; + + foreach (var weapon in weaponInfos) + { + var weaponDefIndex = weapon.Key; + var weaponInfo = weapon.Value; + + if (weaponInfo.Paint == 0) + continue; + + if (weaponInfo.StatTrak) + { + if (WeaponSync != null) + { + + _ = Task.Run(async () => await WeaponSync.SyncStatTrakToDatabase(playerInfo, weaponInfo.StatTrakCount, weaponDefIndex)); + } + } + } + return HookResult.Continue; } @@ -268,14 +299,11 @@ namespace WeaponPaints IpAddress = player.IpAddress?.Split(":")[0] }; - CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "kill eater", ViewAsFloatKillStreak(weaponInfo.StatTrakCount)); + CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "kill eater", ViewAsFloat((uint)weaponInfo.StatTrakCount)); CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "kill eater score type", 0); - CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.AttributeList.Handle, "kill eater", ViewAsFloatKillStreak(weaponInfo.StatTrakCount)); + CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.AttributeList.Handle, "kill eater", ViewAsFloat((uint)weaponInfo.StatTrakCount)); CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.AttributeList.Handle, "kill eater score type", 0); - - if (WeaponSync != null) - _ = Task.Run(async () => await WeaponSync.SyncStatTrakToDatabase(playerInfo, weaponInfo.StatTrakCount, weaponDefIndex)); } return HookResult.Continue; diff --git a/WeaponAction.cs b/WeaponAction.cs index d471fe00..5f13c1b2 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -89,10 +89,10 @@ namespace WeaponPaints if (weaponInfo.StatTrak) { - CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "kill eater", ViewAsFloatKillStreak(weaponInfo.StatTrakCount)); + CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "kill eater", ViewAsFloat((uint)weaponInfo.StatTrakCount)); CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "kill eater score type", 0); - CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.AttributeList.Handle, "kill eater", ViewAsFloatKillStreak(weaponInfo.StatTrakCount)); + CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.AttributeList.Handle, "kill eater", ViewAsFloat((uint)weaponInfo.StatTrakCount)); CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.AttributeList.Handle, "kill eater score type", 0); } @@ -536,16 +536,5 @@ namespace WeaponPaints { return BitConverter.Int32BitsToSingle((int)value); } - - public float ViewAsFloatKillStreak(T value) where T : struct - { - byte[] bytes = value switch - { - int intValue => BitConverter.GetBytes(intValue), - uint uintValue => BitConverter.GetBytes(uintValue), - _ => throw new ArgumentException("Unsupported type") - }; - return BitConverter.ToSingle(bytes, 0); - } } } \ No newline at end of file