From 23cd692032656bda4aeab86a2428f30545d49098 Mon Sep 17 00:00:00 2001 From: stefanx111 Date: Mon, 11 Aug 2025 10:20:11 +0300 Subject: [PATCH] revert IncrementWearForWeaponWithStickers --- WeaponAction.cs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/WeaponAction.cs b/WeaponAction.cs index 7ba36456..c0352b5c 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -138,6 +138,27 @@ namespace WeaponPaints UpdatePlayerWeaponMeshGroupMask(player, weapon, isLegacyModel); } + + // silly method to update sticker when call RefreshWeapons() + private void IncrementWearForWeaponWithStickers(CCSPlayerController player, CBasePlayerWeapon weapon) + { + int weaponDefIndex = weapon.AttributeManager.Item.ItemDefinitionIndex; + if (!HasChangedPaint(player, weaponDefIndex, out var weaponInfo) || weaponInfo == null || + weaponInfo.Stickers.Count <= 0) return; + + float wearIncrement = 0.001f; + float currentWear = weaponInfo.Wear; + + var playerWear = _temporaryPlayerWeaponWear.GetOrAdd(player.Slot, _ => new ConcurrentDictionary()); + + float incrementedWear = playerWear.AddOrUpdate( + weaponDefIndex, + currentWear + wearIncrement, + (_, oldWear) => Math.Min(oldWear + wearIncrement, 1.0f) + ); + + weapon.FallbackWear = incrementedWear; + } private void SetStickers(CCSPlayerController? player, CBasePlayerWeapon weapon) { @@ -151,7 +172,7 @@ namespace WeaponPaints foreach (var sticker in weaponInfo.Stickers) { int stickerSlot = weaponInfo.Stickers.IndexOf(sticker); - + CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, $"sticker slot {stickerSlot} id", ViewAsFloat(sticker.Id)); if (sticker.OffsetX != 0 || sticker.OffsetY != 0) @@ -168,7 +189,7 @@ namespace WeaponPaints CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, $"sticker slot {stickerSlot} rotation", sticker.Rotation); } - + if (_temporaryPlayerWeaponWear.TryGetValue(player.Slot, out var playerWear) && playerWear.TryGetValue(weaponDefIndex, out float storedWear)) { @@ -331,6 +352,8 @@ namespace WeaponPaints { newWeapon.Clip1 = ammo.Item1; newWeapon.ReserveAmmo[0] = ammo.Item2; + + IncrementWearForWeaponWithStickers(player, newWeapon); } catch (Exception ex) {