mirror of
https://github.com/Nereziel/cs2-WeaponPaints.git
synced 2026-02-17 18:39:07 +00:00
Compare commits
8 Commits
207946e7c9
...
6e5895c323
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e5895c323 | ||
|
|
b026ce1e7d | ||
|
|
634d0e4c1d | ||
|
|
f345a46090 | ||
|
|
bde0666313 | ||
|
|
95d53f4216 | ||
|
|
d9280f6608 | ||
|
|
a8f813b4db |
@@ -93,10 +93,11 @@ public partial class WeaponPaints
|
||||
|
||||
private static readonly MemoryFunctionVoid<nint, string, float> CAttributeListSetOrAddAttributeValueByName = new(GameData.GetSignature("CAttributeList_SetOrAddAttributeValueByName"));
|
||||
|
||||
private static readonly MemoryFunctionWithReturn<nint, string, int, int> SetBodygroupFunc = new(
|
||||
GameData.GetSignature("CBaseModelEntity_SetBodygroup"));
|
||||
//we dont need anymore because we use AcceptInput
|
||||
//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()
|
||||
{
|
||||
|
||||
@@ -285,7 +285,6 @@ namespace WeaponPaints
|
||||
if (!weapon.Value.OwnerEntity.IsValid) continue;
|
||||
if (gun.Entity == null) continue;
|
||||
if (!gun.IsValid) continue;
|
||||
if (!gun.VisibleinPVS) continue;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -406,7 +405,7 @@ namespace WeaponPaints
|
||||
|
||||
item.Initialized = true;
|
||||
|
||||
SetBodygroup(pawn.Handle, "default_gloves", 1);
|
||||
SetBodygroup(pawn, "default_gloves", 1);
|
||||
}
|
||||
catch (Exception) { }
|
||||
}, TimerFlags.STOP_ON_MAPCHANGE);
|
||||
@@ -430,13 +429,15 @@ namespace WeaponPaints
|
||||
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>(
|
||||
GameData.GetSignature("ChangeSubclass")
|
||||
);
|
||||
weapon.AcceptInput("ChangeSubclass", value: itemD.ToString());
|
||||
}
|
||||
|
||||
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)
|
||||
@@ -454,13 +455,6 @@ namespace WeaponPaints
|
||||
private static void UpdatePlayerWeaponMeshGroupMask(CCSPlayerController player, CBasePlayerWeapon weapon, bool 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)
|
||||
@@ -558,16 +552,6 @@ namespace WeaponPaints
|
||||
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)
|
||||
{
|
||||
knifeValue = null;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<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="MySqlConnector" Version="2.4.0-beta.1" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
|
||||
@@ -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 55 41 54 49 89 F4 53 48 89 FB 48 83 EC ? E8 ? ? ? ? 84 C0 74"
|
||||
}
|
||||
},
|
||||
"CAttributeList_SetOrAddAttributeValueByName": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "40 53 41 56 41 57 48 81 EC 90 00 00 00 0F 29 74 24 70",
|
||||
"linux": "55 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 49 89 F4 53 48 83 EC 78"
|
||||
}
|
||||
},
|
||||
"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 55 49 89 F5 41 54 41 89 D4 53 48 89 FB 48 83 EC 08 E8 ? ? ? ? 48 85 C0"
|
||||
"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 53 48 89 F3 48 83 EC ? F3 0F 11 85"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
50
lang/lv.json
50
lang/lv.json
@@ -1,30 +1,30 @@
|
||||
{
|
||||
"wp_prefix": "{lightblue}[WeaponPaints] {default}",
|
||||
"wp_info_website": "Apmeklē {lime}{0}{default}, kur varat mainīt ādas",
|
||||
"wp_info_refresh": "Ievadiet {lime}!wp{default}, lai sinhronizētu izvēlētās ādas",
|
||||
"wp_info_knife": "Ievadiet {lime}!knife{default}, lai atvērtu nazis izvēlni",
|
||||
"wp_info_glove": "Ievadiet {lime}!gloves{default}, lai atvērtu cimdi izvēlni",
|
||||
"wp_info_agent": "Ievadiet {lime}!agents{default}, lai atvērtu aģentu izvēlni",
|
||||
"wp_info_music": "Ievadiet {lime}!music{default}, lai atvērtu mūzikas izvēlni",
|
||||
"wp_info_pin": "Ierakstiet {lime}!pins{default}, lai atvērtu piespraudes izvēlni",
|
||||
"wp_command_cooldown": "{lightred}Šobrīd nevarat atsvaidzināt ieroča krāsas",
|
||||
"wp_command_refresh_done": "{lime}Atsvaidzinot ieroča krāsas",
|
||||
"wp_knife_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu nazi",
|
||||
"wp_info_website": "Apmeklē {lime}{0}{default}, kur vari mainīt skinus",
|
||||
"wp_info_refresh": "Ieraksti {lime}!wp{default}, lai sinhronizētu izvēlētos skinus",
|
||||
"wp_info_knife": "Ieraksti {lime}!knife{default}, lai atvērtu nažu izvēlni",
|
||||
"wp_info_glove": "Ieraksti {lime}!gloves{default}, lai atvērtu cimdu izvēlni",
|
||||
"wp_info_agent": "Ieraksti {lime}!agents{default}, lai atvērtu aģentu izvēlni",
|
||||
"wp_info_music": "Ieraksti {lime}!music{default}, lai atvērtu mūzikas izvēlni",
|
||||
"wp_info_pin": "Ieraksti {lime}!pins{default}, lai atvērtu nozīmīšu izvēlni",
|
||||
"wp_command_cooldown": "{lightred}Šobrīd nevar atjaunot weapon paints",
|
||||
"wp_command_refresh_done": "{lime}Weapon paints tiek atjaunoti",
|
||||
"wp_knife_menu_select": "Tu izvēlējies {lime}{0}{default} kā savu nazi",
|
||||
"wp_knife_menu_kill": "",
|
||||
"wp_knife_menu_title": "Nazi Izvēlne",
|
||||
"wp_glove_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu cimdu",
|
||||
"wp_glove_menu_title": "Cimdu Izvēlne",
|
||||
"wp_agent_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu aģentu",
|
||||
"wp_agent_menu_title": "Aģentu Izvēlne",
|
||||
"wp_music_menu_title": "Mūzikas Izvēlne",
|
||||
"wp_music_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu mūzikas komplektu",
|
||||
"wp_pins_menu_title": "Piespraužu izvēlne",
|
||||
"wp_pins_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu piespraudi",
|
||||
"wp_skin_menu_weapon_title": "Ieroču Izvēlne",
|
||||
"wp_skin_menu_skin_title": "Izvēlieties ādu priekš {lime}{0}{default}",
|
||||
"wp_skin_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu ādu",
|
||||
|
||||
"wp_stattrak_action": "Jūs veiksmīgi mainījāt stattrak iestatījumu",
|
||||
"wp_knife_menu_title": "Nažu izvēlne",
|
||||
"wp_glove_menu_select": "Tu izvēlējies {lime}{0}{default} kā savus cimdus",
|
||||
"wp_glove_menu_title": "Cimdu izvēlne",
|
||||
"wp_agent_menu_select": "Tu izvēlējies {lime}{0}{default} kā savu aģentu",
|
||||
"wp_agent_menu_title": "Aģentu izvēlne",
|
||||
"wp_music_menu_title": "Mūzikas izvēlne",
|
||||
"wp_music_menu_select": "Tu izvēlējies {lime}{0}{default} kā savu mūzikas komplektu",
|
||||
"wp_pins_menu_title": "Nozīmīšu izvēlne",
|
||||
"wp_pins_menu_select": "Tu izvēlējies {lime}{0}{default} kā savu nozīmīti",
|
||||
"wp_skin_menu_weapon_title": "Ieroču izvēlne",
|
||||
"wp_skin_menu_skin_title": "Izvēlies skinu priekš {lime}{0}{default}",
|
||||
"wp_skin_menu_select": "Tu izvēlējies {lime}{0}{default} kā savu skinu",
|
||||
|
||||
"wp_stattrak_action": "Tu veiksmīgi nomainīji stattrak iestatījumu",
|
||||
|
||||
"None": "Nav"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user