removed ViewAsFloatKillStreak & added killstreak sync to disconnect

This commit is contained in:
originalaidn
2024-10-18 23:12:47 +02:00
parent 8b4d9dc676
commit 179eb41e47
2 changed files with 35 additions and 18 deletions

View File

@@ -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;

View File

@@ -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>(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);
}
}
}