@@ -37,6 +37,9 @@ private void GivePlayerWeaponSkin(CCSPlayerController player, CBasePlayerWeapon
3737
3838 weapon . AttributeManager . Item . ItemDefinitionIndex = ( ushort ) newDefIndex . Key ;
3939 weapon . AttributeManager . Item . EntityQuality = 3 ;
40+
41+ weapon . AttributeManager . Item . AttributeList . Attributes . RemoveAll ( ) ;
42+ weapon . AttributeManager . Item . NetworkedDynamicAttributes . Attributes . RemoveAll ( ) ;
4043 break ;
4144 }
4245 default :
@@ -96,9 +99,8 @@ private void GivePlayerWeaponSkin(CCSPlayerController player, CBasePlayerWeapon
9699 weapon . AttributeManager . Item . AttributeList . Attributes . RemoveAll ( ) ;
97100 weapon . AttributeManager . Item . NetworkedDynamicAttributes . Attributes . RemoveAll ( ) ;
98101
99- weapon . AttributeManager . Item . ItemID = 16384 ;
100- weapon . AttributeManager . Item . ItemIDLow = 16384 & 0xFFFFFFFF ;
101- weapon . AttributeManager . Item . ItemIDHigh = weapon . AttributeManager . Item . ItemIDLow >> 32 ;
102+ UpdatePlayerEconItemId ( weapon . AttributeManager . Item ) ;
103+
102104 weapon . AttributeManager . Item . CustomName = weaponInfo . Nametag ;
103105 weapon . FallbackPaintKit = weaponInfo . Paint ;
104106
@@ -136,7 +138,7 @@ private void GivePlayerWeaponSkin(CCSPlayerController player, CBasePlayerWeapon
136138
137139 UpdatePlayerWeaponMeshGroupMask ( player , weapon , isLegacyModel ) ;
138140 }
139-
141+
140142 // silly method to update sticker when call RefreshWeapons()
141143 private void IncrementWearForWeaponWithStickers ( CCSPlayerController player , CBasePlayerWeapon weapon )
142144 {
@@ -170,7 +172,7 @@ private void SetStickers(CCSPlayerController? player, CBasePlayerWeapon weapon)
170172 foreach ( var sticker in weaponInfo . Stickers )
171173 {
172174 int stickerSlot = weaponInfo . Stickers . IndexOf ( sticker ) ;
173-
175+
174176 CAttributeListSetOrAddAttributeValueByName . Invoke ( weapon . AttributeManager . Item . NetworkedDynamicAttributes . Handle ,
175177 $ "sticker slot { stickerSlot } id", ViewAsFloat ( sticker . Id ) ) ;
176178 if ( sticker . OffsetX != 0 || sticker . OffsetY != 0 )
@@ -187,7 +189,7 @@ private void SetStickers(CCSPlayerController? player, CBasePlayerWeapon weapon)
187189 CAttributeListSetOrAddAttributeValueByName . Invoke ( weapon . AttributeManager . Item . NetworkedDynamicAttributes . Handle ,
188190 $ "sticker slot { stickerSlot } rotation", sticker . Rotation ) ;
189191 }
190-
192+
191193 if ( _temporaryPlayerWeaponWear . TryGetValue ( player . Slot , out var playerWear ) &&
192194 playerWear . TryGetValue ( weaponDefIndex , out float storedWear ) )
193195 {
@@ -215,7 +217,7 @@ private void SetKeychain(CCSPlayerController? player, CBasePlayerWeapon weapon)
215217 CAttributeListSetOrAddAttributeValueByName . Invoke ( weapon . AttributeManager . Item . NetworkedDynamicAttributes . Handle ,
216218 "keychain slot 0 offset z" , keyChain . OffsetZ ) ;
217219 CAttributeListSetOrAddAttributeValueByName . Invoke ( weapon . AttributeManager . Item . NetworkedDynamicAttributes . Handle ,
218- "keychain slot 0 seed" , keyChain . Seed ) ;
220+ "keychain slot 0 seed" , ViewAsFloat ( keyChain . Seed ) ) ;
219221 }
220222
221223 private static void GiveKnifeToPlayer ( CCSPlayerController ? player )
@@ -378,9 +380,14 @@ private void GivePlayerGloves(CCSPlayerController player)
378380 pawn . SetModel ( model ) ;
379381 }
380382
383+ CEconItemView item = pawn . EconGloves ;
384+
385+ item . NetworkedDynamicAttributes . Attributes . RemoveAll ( ) ;
386+ item . AttributeList . Attributes . RemoveAll ( ) ;
387+
388+
381389 Instance . AddTimer ( 0.08f , ( ) =>
382- {
383- CEconItemView item = pawn . EconGloves ;
390+ {
384391 try
385392 {
386393 if ( ! player . IsValid )
@@ -396,13 +403,19 @@ private void GivePlayerGloves(CCSPlayerController player)
396403 return ;
397404
398405 item . ItemDefinitionIndex = gloveId ;
399- item . ItemIDLow = 16384 & 0xFFFFFFFF ;
400- item . ItemIDHigh = 16384 ;
406+
407+ UpdatePlayerEconItemId ( item ) ;
401408
409+ item . NetworkedDynamicAttributes . Attributes . RemoveAll ( ) ;
402410 CAttributeListSetOrAddAttributeValueByName . Invoke ( item . NetworkedDynamicAttributes . Handle , "set item texture prefab" , weaponInfo . Paint ) ;
403411 CAttributeListSetOrAddAttributeValueByName . Invoke ( item . NetworkedDynamicAttributes . Handle , "set item texture seed" , weaponInfo . Seed ) ;
404412 CAttributeListSetOrAddAttributeValueByName . Invoke ( item . NetworkedDynamicAttributes . Handle , "set item texture wear" , weaponInfo . Wear ) ;
405413
414+ item . AttributeList . Attributes . RemoveAll ( ) ;
415+ CAttributeListSetOrAddAttributeValueByName . Invoke ( item . AttributeList . Handle , "set item texture prefab" , weaponInfo . Paint ) ;
416+ CAttributeListSetOrAddAttributeValueByName . Invoke ( item . AttributeList . Handle , "set item texture seed" , weaponInfo . Seed ) ;
417+ CAttributeListSetOrAddAttributeValueByName . Invoke ( item . AttributeList . Handle , "set item texture wear" , weaponInfo . Wear ) ;
418+
406419 item . Initialized = true ;
407420
408421 SetBodygroup ( pawn , "default_gloves" , 1 ) ;
0 commit comments