View Single Post
cravenge
Veteran Member
Join Date: Nov 2015
Location: Chocolate Factory
Old 12-26-2016 , 09:57   Re: [L4D2] ABM: A L4D2 5+ Player Enhancement for Campaign
Reply With Quote #22

Quote:
Originally Posted by NgBUCKWANGS View Post
I uploaded a new and important update [0.1.9] that resolves issues with crashing on Windows servers. It turns out it was Zoey and how ABM handles remembering characters. Hopefully, this update is a good one. If you've been using ABM from the beginning, you'll need the new abm.txt gamedata file.

For those of you using ABM, how's it working? What's your server OS and if you're comparing 0.1.9 to an older version, how is it? I'd like to know
Using Zoey in L4D2 campaigns already crashes the server/game in Windows after The Sacrifice DLC update was released.

Until Valve finally fixes the issue, we use FakeZoey by DeathChaos as the only temporary fix atm.

Edit: Couldn't help but look at the signatures. I do wonder how you get them. Anyways, if others are using this and the plugin fails to load, here are updated signatures for Windows:
PHP Code:
"SetHumanSpec"
{
    
"library"  "server"
    "linux"    "@_ZN11SurvivorBot17SetHumanSpectatorEP13CTerrorPlayer"
    "windows"  "\x55\x8B\xEC\x56\x8B\xF1\x83\xBE\x2A\x2A\x2A\x2A\x00\x7E\x07\x32\xC0\x5E\x5D\xC2\x04\x00\x8B\x0D"
    
/* 55 8B EC 56 8B F1 83 BE ? ? ? ? 00 7E 07 32 C0 5E 5D C2 04 00 8B 0D */
}

"TakeOverBot"
{
    
"library"  "server"
    "linux"    "@_ZN13CTerrorPlayer11TakeOverBotEb"
    "windows"  "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x33\xC5\x89\x45\xFC\x53\x56\x8D\x85"
    
/* 55 8B EC 81 EC ? ? ? ? A1 ? ? ? ? 33 C5 89 45 FC 53 56 8D 85 */

2nd Edit: Just looked at the source. May I try suggesting preparing the signatures in OnPluginStart rather than every time? It might cause 1-3 seconds of freezing on clients.
PHP Code:
Handle hGameConf nullhRoundRespawn null;

public 
void OnPluginStart()
{
    
// call signatures here first
    // then your codes afterwards
    
    // example:
    
Handle hGameConf LoadGameConfigFile("abm");
    if (
hGameConf == null)
    {
        
SetFailState("[ABM] Game data missing!");
    }
    
    
StartPrepSDKCall(SDKCall_Player);
    
PrepSDKCall_SetFromConf(hGameConfSDKConf_Signature"RoundRespawn");
    
hRoundRespawn EndPrepSDKCall();
    if (
hRoundRespawn == null)
    {
        
SetFailState("[ABM] Incorrect RoundRespawn signature!");
    }
    
    
delete hGameConf;
}

void RoundRespawnSig(int client)
{
    
SDKCall(hRoundRespawnclient);

3rd Edit: However, Windows-based clients doesn't crash when using Zoey on Linux-based servers. Also, I'll try to help out in cleaning the source code. It's quite messy.

Last edited by cravenge; 12-26-2016 at 10:21.
cravenge is offline