Compare commits

...

7 Commits

Author SHA1 Message Date
Dawid Bepierszcz
b026ce1e7d Merge pull request #425 from stefanx111/fix-patch
Fix update
2025-08-05 00:25:25 +02:00
stefanx111
634d0e4c1d fix sigs 2025-08-05 01:18:43 +03:00
stefanx111
f345a46090 removed unused signatures 2025-08-05 01:09:31 +03:00
stefanx111
bde0666313 bodygroup and subclass change method to use AcceptInput 2025-08-05 01:08:43 +03:00
stefanx111
95d53f4216 CBaseViewModel removed 2025-08-05 00:59:22 +03:00
stefanx111
d9280f6608 update css version 2025-08-05 00:58:38 +03:00
Dawid Bepierszcz
c1cd229ea8 Update weaponpaints.json // linux 2025-07-29 02:31:07 +02:00
4 changed files with 15 additions and 44 deletions

View File

@@ -93,10 +93,11 @@ public partial class WeaponPaints
private static readonly MemoryFunctionVoid<nint, string, float> CAttributeListSetOrAddAttributeValueByName = new(GameData.GetSignature("CAttributeList_SetOrAddAttributeValueByName")); private static readonly MemoryFunctionVoid<nint, string, float> CAttributeListSetOrAddAttributeValueByName = new(GameData.GetSignature("CAttributeList_SetOrAddAttributeValueByName"));
private static readonly MemoryFunctionWithReturn<nint, string, int, int> SetBodygroupFunc = new( //we dont need anymore because we use AcceptInput
GameData.GetSignature("CBaseModelEntity_SetBodygroup")); //private static readonly MemoryFunctionWithReturn<nint, string, int, int> SetBodygroupFunc = new(
// GameData.GetSignature("CBaseModelEntity_SetBodygroup"));
private static readonly Func<nint, string, int, int> SetBodygroup = SetBodygroupFunc.Invoke; //private static readonly Func<nint, string, int, int> SetBodygroup = SetBodygroupFunc.Invoke;
private static Dictionary<int, string> WeaponDefindex { get; } = new() private static Dictionary<int, string> WeaponDefindex { get; } = new()
{ {

View File

@@ -285,7 +285,6 @@ namespace WeaponPaints
if (!weapon.Value.OwnerEntity.IsValid) continue; if (!weapon.Value.OwnerEntity.IsValid) continue;
if (gun.Entity == null) continue; if (gun.Entity == null) continue;
if (!gun.IsValid) continue; if (!gun.IsValid) continue;
if (!gun.VisibleinPVS) continue;
try try
{ {
@@ -406,7 +405,7 @@ namespace WeaponPaints
item.Initialized = true; item.Initialized = true;
SetBodygroup(pawn.Handle, "default_gloves", 1); SetBodygroup(pawn, "default_gloves", 1);
} }
catch (Exception) { } catch (Exception) { }
}, TimerFlags.STOP_ON_MAPCHANGE); }, TimerFlags.STOP_ON_MAPCHANGE);
@@ -430,13 +429,15 @@ namespace WeaponPaints
return int.TryParse(randomWeapon["paint"]?.ToString(), out var paintValue) ? paintValue : 0; return int.TryParse(randomWeapon["paint"]?.ToString(), out var paintValue) ? paintValue : 0;
} }
private static void SubclassChange(CBasePlayerWeapon weapon, ushort itemD) //xstage idea on css discord
public static void SubclassChange(CBasePlayerWeapon weapon, ushort itemD)
{ {
var subclassChangeFunc = VirtualFunction.Create<nint, string, int>( weapon.AcceptInput("ChangeSubclass", value: itemD.ToString());
GameData.GetSignature("ChangeSubclass") }
);
subclassChangeFunc(weapon.Handle, itemD.ToString()); public static void SetBodygroup(CCSPlayerPawn pawn, string group, int value)
{
pawn.AcceptInput("SetBodygroup", value:$"{group},{value}");
} }
private static void UpdateWeaponMeshGroupMask(CBaseEntity weapon, bool isLegacy = false) private static void UpdateWeaponMeshGroupMask(CBaseEntity weapon, bool isLegacy = false)
@@ -454,13 +455,6 @@ namespace WeaponPaints
private static void UpdatePlayerWeaponMeshGroupMask(CCSPlayerController player, CBasePlayerWeapon weapon, bool isLegacy) private static void UpdatePlayerWeaponMeshGroupMask(CCSPlayerController player, CBasePlayerWeapon weapon, bool isLegacy)
{ {
UpdateWeaponMeshGroupMask(weapon, isLegacy); UpdateWeaponMeshGroupMask(weapon, isLegacy);
var viewModel = GetPlayerViewModel(player);
if (viewModel == null || viewModel.Weapon.Value == null ||
viewModel.Weapon.Value.Index != weapon.Index) return;
UpdateWeaponMeshGroupMask(viewModel, isLegacy);
Utilities.SetStateChanged(viewModel, "CBaseEntity", "m_CBodyComponent");
} }
private static void GivePlayerAgent(CCSPlayerController player) private static void GivePlayerAgent(CCSPlayerController player)
@@ -558,16 +552,6 @@ namespace WeaponPaints
return !Utility.IsPlayerValid(player) ? null : player; return !Utility.IsPlayerValid(player) ? null : player;
} }
private static unsafe CBaseViewModel? GetPlayerViewModel(CCSPlayerController player)
{
if (player.PlayerPawn.Value == null || player.PlayerPawn.Value.ViewModelServices == null) return null;
CCSPlayer_ViewModelServices viewModelServices = new(player.PlayerPawn.Value.ViewModelServices!.Handle);
var ptr = viewModelServices.Handle + Schema.GetSchemaOffset("CCSPlayer_ViewModelServices", "m_hViewModel");
var references = MemoryMarshal.CreateSpan(ref ptr, 3);
var viewModel = (CHandle<CBaseViewModel>)Activator.CreateInstance(typeof(CHandle<CBaseViewModel>), references[0])!;
return viewModel.Value == null ? null : viewModel.Value;
}
private static bool HasChangedKnife(CCSPlayerController player, out string? knifeValue) private static bool HasChangedKnife(CCSPlayerController player, out string? knifeValue)
{ {
knifeValue = null; knifeValue = null;

View File

@@ -9,7 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.281" /> <PackageReference Include="CounterStrikeSharp.API" Version="1.0.331" />
<PackageReference Include="Dapper" Version="2.1.35" /> <PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="MySqlConnector" Version="2.4.0-beta.1" /> <PackageReference Include="MySqlConnector" Version="2.4.0-beta.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />

View File

@@ -1,23 +1,9 @@
{ {
"ChangeSubclass": {
"signatures": {
"library": "server",
"windows": "48 89 6C 24 ? 56 48 83 EC ? 48 8B EA 48 8B F1 E8 ? ? ? ? 84 C0 0F 84",
"linux": "55 48 89 E5 41 57 41 56 41 55 49 89 F5 41 54 49 89 FC 53 48 81 EC A8 00 00 00"
}
},
"CAttributeList_SetOrAddAttributeValueByName": { "CAttributeList_SetOrAddAttributeValueByName": {
"signatures": { "signatures": {
"library": "server", "library": "server",
"windows": "40 53 41 56 41 57 48 81 EC 90 00 00 00 0F 29 74 24 70", "windows": "40 53 55 41 56 48 81 EC 90 00 00 00",
"linux": "55 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 49 89 F4 53 48 83 EC 78" "linux": "55 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 53 48 89 F3 48 83 EC ? F3 0F 11 85"
}
},
"CBaseModelEntity_SetBodygroup": {
"signatures": {
"library": "server",
"windows": "48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 41 8B F8 48 8B F2 48 8B D9 E8 ? ? ? ?",
"linux": "55 48 89 E5 41 56 49 89 F6 41 55 41 89 D5 41 54 49 89 FC 48 83 EC 08"
} }
} }
} }