Open gaejuck opened 4 months ago
I've received the same error as well, despite the new release.
Same error, running on a Linux server with the latest plugin release.
Thanks for the report; this particular issue should be fixed in the latest build.
I did update gamedata. but it can't still load plugin.
] sm_rcon sm plugins load tf2attribute_support.smx
L 04/21/2024 - 01:07:07: [SM] Exception reported: Failed to validate patch CTFPlayer::CanAirDash()::PatchRequiredDeployTime
L 04/21/2024 - 01:07:07: [SM] Blaming: tf2attribute_support.smx
L 04/21/2024 - 01:07:07: [SM] Call stack trace:
L 04/21/2024 - 01:07:07: [SM] [0] SetFailState
L 04/21/2024 - 01:07:07: [SM] [1] Line 251, scripting/tf2attribute_support.sp::OnPluginStart
L 04/21/2024 - 01:07:07: [SM] [3] ServerCommandEx
L 04/21/2024 - 01:07:07: [SM] [4] Line 402, /home/builds/sourcemod/debian11-1.12/build/plugins/basecommands.sp::Command_Rcon
[SM] Plugin tf2attribute_support.smx failed to load: Error detected in plugin startup (see error logs).
I did update gamedata. but it can't still load plugin.
] sm_rcon sm plugins load tf2attribute_support.smx L 04/21/2024 - 01:07:07: [SM] Exception reported: Failed to validate patch CTFPlayer::CanAirDash()::PatchRequiredDeployTime L 04/21/2024 - 01:07:07: [SM] Blaming: tf2attribute_support.smx L 04/21/2024 - 01:07:07: [SM] Call stack trace: L 04/21/2024 - 01:07:07: [SM] [0] SetFailState L 04/21/2024 - 01:07:07: [SM] [1] Line 251, scripting/tf2attribute_support.sp::OnPluginStart L 04/21/2024 - 01:07:07: [SM] [3] ServerCommandEx L 04/21/2024 - 01:07:07: [SM] [4] Line 402, /home/builds/sourcemod/debian11-1.12/build/plugins/basecommands.sp::Command_Rcon [SM] Plugin tf2attribute_support.smx failed to load: Error detected in plugin startup (see error logs).
Me too. Exact same issue. I am running a Linux server.
I have the exact same issue
Too lazy to make PRs, the following applies for Linux servers only: tf2attribute.gamedata.txt
@@ -282,15 +282,18 @@
"signature" "CTFPlayer::CanAirDash()"
"linux"
{
- "offset" "B6h"
+ "offset" "B7h"
+ "verify" "\x0F\x2F\x05\x2A\x2A\x2A\x2A\x2A"
+ "patch" "\x0F\x2F\x05\x00\x00\x00\x00\x00"
+ "preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
}
"windows"
{
"offset" "A2h"
+ "verify" "\xF3\x0F\x10\x2A\x2A\x2A\x2A\x2A"
+ "patch" "\xF3\x0F\x10\x00\x00\x00\x00\x00"
+ "preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
}
- "verify" "\xF3\x0F\x10\x2A\x2A\x2A\x2A\x2A"
- "patch" "\xF3\x0F\x10\x00\x00\x00\x00\x00"
- "preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
}
}
"Offsets"
_tf2attributesupport.sp
@@ -253,7 +253,7 @@ public void OnPluginStart() {
}
patchAirDashDeployTime.Enable();
- Address ppValue = patchAirDashDeployTime.Address + view_as<Address>(4);
+ Address ppValue = patchAirDashDeployTime.Address + view_as<Address>(3);
Address pValue = DereferencePointer(ppValue);
float value = view_as<float>(LoadFromAddress(pValue, NumberType_Int32));
if (value != DEFAULT_REQUIRED_DEPLOY_FOR_AIR_DASH) {
Doing this should allow the plugin to load.
Forgot to fix the verification when I did that last commit; whoops. I'd rather offset by -1 and wildcard the first byte to keep the match instead of recompiling the plugin.
Yea, i realised that at the end.
Too lazy to make PRs, the following applies for Linux servers only: tf2attribute.gamedata.txt
@@ -282,15 +282,18 @@ "signature" "CTFPlayer::CanAirDash()" "linux" { - "offset" "B6h" + "offset" "B7h" + "verify" "\x0F\x2F\x05\x2A\x2A\x2A\x2A\x2A" + "patch" "\x0F\x2F\x05\x00\x00\x00\x00\x00" + "preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" } "windows" { "offset" "A2h" + "verify" "\xF3\x0F\x10\x2A\x2A\x2A\x2A\x2A" + "patch" "\xF3\x0F\x10\x00\x00\x00\x00\x00" + "preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" } - "verify" "\xF3\x0F\x10\x2A\x2A\x2A\x2A\x2A" - "patch" "\xF3\x0F\x10\x00\x00\x00\x00\x00" - "preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" } } "Offsets"
_tf2attributesupport.sp
@@ -253,7 +253,7 @@ public void OnPluginStart() { } patchAirDashDeployTime.Enable(); - Address ppValue = patchAirDashDeployTime.Address + view_as<Address>(4); + Address ppValue = patchAirDashDeployTime.Address + view_as<Address>(3); Address pValue = DereferencePointer(ppValue); float value = view_as<float>(LoadFromAddress(pValue, NumberType_Int32)); if (value != DEFAULT_REQUIRED_DEPLOY_FOR_AIR_DASH) {
Doing this should allow the plugin to load.
I tried this and it caused my server to crash during startup entirely. Did you test this, and did it work for you? I might have just inserted these lines wrong.
I'm really looking forward to this plugin being patched so that I can use the Pomson and Bison again.
It's working in a production server, so not sure why you got problems
It's working in a production server, so not sure why you got problems
It also crashes for me with the same fixes here, getting segmentation faults on boot.
Ok, so did what nosoop told me, new linux gamedata for CTFPlayer::CanAirDash()::PatchRequiredDeployTime
which doesn't seemingly crash and no plugin modification required:
"MemPatches"
{
"CTFPlayer::CanAirDash()::PatchRequiredDeployTime"
{
"signature" "CTFPlayer::CanAirDash()"
"linux"
{
"verify" "\x2A\x0F\x2F\x05\x2A\x2A\x2A\x2A\x2A"
"patch" "\x2A\x0F\x2F\x05\x00\x00\x00\x00\x00"
"preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
"offset" "B6h"
}
"windows"
{
"verify" "\xF3\x0F\x10\x2A\x2A\x2A\x2A\x2A"
"patch" "\xF3\x0F\x10\x00\x00\x00\x00\x00"
"preserve" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
"offset" "A2h"
}
}
}
error logs
SourceMod Version Information
Metamod:Source Version Information
Additionally, it's running in linux server