mirror of
https://github.com/Nereziel/cs2-WeaponPaints.git
synced 2026-03-09 16:18:48 +00:00
Compare commits
4 Commits
build-386
...
c19f35a5ac
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c19f35a5ac | ||
|
|
be8633f82b | ||
|
|
191773fc5a | ||
|
|
40e18c9663 |
@@ -13,7 +13,7 @@ namespace WeaponPaints
|
|||||||
|
|
||||||
[GameEventHandler]
|
[GameEventHandler]
|
||||||
public HookResult OnClientFullConnect(EventPlayerConnectFull @event, GameEventInfo info)
|
public HookResult OnClientFullConnect(EventPlayerConnectFull @event, GameEventInfo info)
|
||||||
{
|
{
|
||||||
CCSPlayerController? player = @event.Userid;
|
CCSPlayerController? player = @event.Userid;
|
||||||
|
|
||||||
if (player is null || !player.IsValid || player.IsBot ||
|
if (player is null || !player.IsValid || player.IsBot ||
|
||||||
@@ -142,7 +142,10 @@ namespace WeaponPaints
|
|||||||
|
|
||||||
GivePlayerMusicKit(player);
|
GivePlayerMusicKit(player);
|
||||||
GivePlayerAgent(player);
|
GivePlayerAgent(player);
|
||||||
GivePlayerGloves(player);
|
Server.NextFrame(() =>
|
||||||
|
{
|
||||||
|
GivePlayerGloves(player);
|
||||||
|
});
|
||||||
GivePlayerPin(player);
|
GivePlayerPin(player);
|
||||||
|
|
||||||
return HookResult.Continue;
|
return HookResult.Continue;
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ namespace WeaponPaints
|
|||||||
|
|
||||||
weapon.AttributeManager.Item.ItemDefinitionIndex = (ushort)newDefIndex.Key;
|
weapon.AttributeManager.Item.ItemDefinitionIndex = (ushort)newDefIndex.Key;
|
||||||
weapon.AttributeManager.Item.EntityQuality = 3;
|
weapon.AttributeManager.Item.EntityQuality = 3;
|
||||||
|
|
||||||
|
weapon.AttributeManager.Item.AttributeList.Attributes.RemoveAll();
|
||||||
|
weapon.AttributeManager.Item.NetworkedDynamicAttributes.Attributes.RemoveAll();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -96,9 +99,8 @@ namespace WeaponPaints
|
|||||||
weapon.AttributeManager.Item.AttributeList.Attributes.RemoveAll();
|
weapon.AttributeManager.Item.AttributeList.Attributes.RemoveAll();
|
||||||
weapon.AttributeManager.Item.NetworkedDynamicAttributes.Attributes.RemoveAll();
|
weapon.AttributeManager.Item.NetworkedDynamicAttributes.Attributes.RemoveAll();
|
||||||
|
|
||||||
weapon.AttributeManager.Item.ItemID = 16384;
|
UpdatePlayerEconItemId(weapon.AttributeManager.Item);
|
||||||
weapon.AttributeManager.Item.ItemIDLow = 16384 & 0xFFFFFFFF;
|
|
||||||
weapon.AttributeManager.Item.ItemIDHigh = weapon.AttributeManager.Item.ItemIDLow >> 32;
|
|
||||||
weapon.AttributeManager.Item.CustomName = weaponInfo.Nametag;
|
weapon.AttributeManager.Item.CustomName = weaponInfo.Nametag;
|
||||||
weapon.FallbackPaintKit = weaponInfo.Paint;
|
weapon.FallbackPaintKit = weaponInfo.Paint;
|
||||||
|
|
||||||
@@ -137,27 +139,6 @@ namespace WeaponPaints
|
|||||||
UpdatePlayerWeaponMeshGroupMask(player, weapon, isLegacyModel);
|
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<int, float>());
|
|
||||||
|
|
||||||
float incrementedWear = playerWear.AddOrUpdate(
|
|
||||||
weaponDefIndex,
|
|
||||||
currentWear + wearIncrement,
|
|
||||||
(_, oldWear) => Math.Min(oldWear + wearIncrement, 1.0f)
|
|
||||||
);
|
|
||||||
|
|
||||||
weapon.FallbackWear = incrementedWear;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetStickers(CCSPlayerController? player, CBasePlayerWeapon weapon)
|
private void SetStickers(CCSPlayerController? player, CBasePlayerWeapon weapon)
|
||||||
{
|
{
|
||||||
if (player == null || !player.IsValid) return;
|
if (player == null || !player.IsValid) return;
|
||||||
@@ -215,7 +196,7 @@ namespace WeaponPaints
|
|||||||
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||||
"keychain slot 0 offset z", keyChain.OffsetZ);
|
"keychain slot 0 offset z", keyChain.OffsetZ);
|
||||||
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||||
"keychain slot 0 seed", keyChain.Seed);
|
"keychain slot 0 seed", ViewAsFloat(keyChain.Seed));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void GiveKnifeToPlayer(CCSPlayerController? player)
|
private static void GiveKnifeToPlayer(CCSPlayerController? player)
|
||||||
@@ -350,8 +331,6 @@ namespace WeaponPaints
|
|||||||
{
|
{
|
||||||
newWeapon.Clip1 = ammo.Item1;
|
newWeapon.Clip1 = ammo.Item1;
|
||||||
newWeapon.ReserveAmmo[0] = ammo.Item2;
|
newWeapon.ReserveAmmo[0] = ammo.Item2;
|
||||||
|
|
||||||
IncrementWearForWeaponWithStickers(player, newWeapon);
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -396,13 +375,19 @@ namespace WeaponPaints
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
item.ItemDefinitionIndex = gloveId;
|
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 prefab", weaponInfo.Paint);
|
||||||
CAttributeListSetOrAddAttributeValueByName.Invoke(item.NetworkedDynamicAttributes.Handle, "set item texture seed", weaponInfo.Seed);
|
CAttributeListSetOrAddAttributeValueByName.Invoke(item.NetworkedDynamicAttributes.Handle, "set item texture seed", weaponInfo.Seed);
|
||||||
CAttributeListSetOrAddAttributeValueByName.Invoke(item.NetworkedDynamicAttributes.Handle, "set item texture wear", weaponInfo.Wear);
|
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;
|
item.Initialized = true;
|
||||||
|
|
||||||
SetBodygroup(pawn, "default_gloves", 1);
|
SetBodygroup(pawn, "default_gloves", 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user