From 191773fc5acfea9838a5d761d1b51f31baa8a4eb Mon Sep 17 00:00:00 2001 From: stefanx111 Date: Sun, 10 Aug 2025 20:12:14 +0300 Subject: [PATCH] fix gloves and knives --- Events.cs | 7 +++++-- WeaponAction.cs | 18 +++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Events.cs b/Events.cs index ab49894c..62e3652a 100644 --- a/Events.cs +++ b/Events.cs @@ -13,7 +13,7 @@ namespace WeaponPaints [GameEventHandler] public HookResult OnClientFullConnect(EventPlayerConnectFull @event, GameEventInfo info) - { + { CCSPlayerController? player = @event.Userid; if (player is null || !player.IsValid || player.IsBot || @@ -142,7 +142,10 @@ namespace WeaponPaints GivePlayerMusicKit(player); GivePlayerAgent(player); - GivePlayerGloves(player); + Server.NextFrame(() => + { + GivePlayerGloves(player); + }); GivePlayerPin(player); return HookResult.Continue; diff --git a/WeaponAction.cs b/WeaponAction.cs index 8037cef1..44d8cd7d 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -37,6 +37,9 @@ namespace WeaponPaints weapon.AttributeManager.Item.ItemDefinitionIndex = (ushort)newDefIndex.Key; weapon.AttributeManager.Item.EntityQuality = 3; + + weapon.AttributeManager.Item.AttributeList.Attributes.RemoveAll(); + weapon.AttributeManager.Item.NetworkedDynamicAttributes.Attributes.RemoveAll(); break; } default: @@ -96,9 +99,8 @@ namespace WeaponPaints weapon.AttributeManager.Item.AttributeList.Attributes.RemoveAll(); weapon.AttributeManager.Item.NetworkedDynamicAttributes.Attributes.RemoveAll(); - weapon.AttributeManager.Item.ItemID = 16384; - weapon.AttributeManager.Item.ItemIDLow = 16384 & 0xFFFFFFFF; - weapon.AttributeManager.Item.ItemIDHigh = weapon.AttributeManager.Item.ItemIDLow >> 32; + UpdatePlayerEconItemId(weapon.AttributeManager.Item); + weapon.AttributeManager.Item.CustomName = weaponInfo.Nametag; weapon.FallbackPaintKit = weaponInfo.Paint; @@ -373,13 +375,19 @@ namespace WeaponPaints return; item.ItemDefinitionIndex = gloveId; - item.ItemIDLow = 16384 & 0xFFFFFFFF; - item.ItemIDHigh = 16384; + + UpdatePlayerEconItemId(item); + item.NetworkedDynamicAttributes.Attributes.RemoveAll(); CAttributeListSetOrAddAttributeValueByName.Invoke(item.NetworkedDynamicAttributes.Handle, "set item texture prefab", weaponInfo.Paint); CAttributeListSetOrAddAttributeValueByName.Invoke(item.NetworkedDynamicAttributes.Handle, "set item texture seed", weaponInfo.Seed); CAttributeListSetOrAddAttributeValueByName.Invoke(item.NetworkedDynamicAttributes.Handle, "set item texture wear", weaponInfo.Wear); + item.AttributeList.Attributes.RemoveAll(); + CAttributeListSetOrAddAttributeValueByName.Invoke(item.AttributeList.Handle, "set item texture prefab", weaponInfo.Paint); + CAttributeListSetOrAddAttributeValueByName.Invoke(item.AttributeList.Handle, "set item texture seed", weaponInfo.Seed); + CAttributeListSetOrAddAttributeValueByName.Invoke(item.AttributeList.Handle, "set item texture wear", weaponInfo.Wear); + item.Initialized = true; SetBodygroup(pawn, "default_gloves", 1);