mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
VScript: add code class script globals and registraction callbacks
Will be used to register custom script class functions.
This commit is contained in:
parent
97fb6c91d3
commit
3b3127c2cf
src
@ -647,6 +647,12 @@ void DetourRegister() // Register detour classes to be searched and hooked.
|
||||
REGISTER(VSquirrel);
|
||||
REGISTER(VScript);
|
||||
REGISTER(VScriptShared);
|
||||
#ifndef CLIENT_DLL
|
||||
REGISTER(VScriptServer);
|
||||
#endif // !CLIENT_DLL
|
||||
#ifndef DEDICATED
|
||||
REGISTER(VScriptClient);
|
||||
#endif // !DEDICATED
|
||||
|
||||
// Squirrel
|
||||
REGISTER(VSquirrelAPI);
|
||||
|
@ -513,3 +513,98 @@ static ConVar promo_version_accepted("promo_version_accepted", "0", FCVAR_RELEAS
|
||||
|
||||
static ConVar player_setting_damage_closes_deathbox_menu("player_setting_damage_closes_deathbox_menu", "1", FCVAR_ARCHIVE | FCVAR_RELEASE, "Controls whether death box automatically closes when taking damage (used for menus).");
|
||||
static ConVar show_motd_on_server_first_join("show_motd_on_server_first_join", "0", FCVAR_ARCHIVE | FCVAR_RELEASE, "Controls whether or not the server message of the day shows on first join for that server.");
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Purpose: script code class function registration
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientEntityClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientPlayerClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientAIClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientWeaponClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientProjectileClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientTitanSoulClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientPlayerDecoyClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterClientFirstPersonProxyClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
void VScriptClient::Detour(const bool bAttach) const
|
||||
{
|
||||
DetourSetup(&v_Script_RegisterClientEntityClassFuncs, &Script_RegisterClientEntityClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientPlayerClassFuncs, &Script_RegisterClientPlayerClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientAIClassFuncs, &Script_RegisterClientAIClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientWeaponClassFuncs, &Script_RegisterClientWeaponClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientProjectileClassFuncs, &Script_RegisterClientProjectileClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientTitanSoulClassFuncs, &Script_RegisterClientTitanSoulClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientPlayerDecoyClassFuncs, &Script_RegisterClientPlayerDecoyClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterClientFirstPersonProxyClassFuncs, &Script_RegisterClientFirstPersonProxyClassFuncs, bAttach);
|
||||
}
|
||||
|
@ -37,4 +37,87 @@ void Script_RegisterCoreClientFunctions(CSquirrelVM* s);
|
||||
s->RegisterFunction(#functionName, MKSTRING(Script_##functionName), \
|
||||
helpString, returnType, parameters, VScriptCode::Client::##functionName); \
|
||||
|
||||
inline void (*v_Script_RegisterClientEntityClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientPlayerClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientAIClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientWeaponClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientProjectileClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientTitanSoulClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientPlayerDecoyClassFuncs)();
|
||||
inline void (*v_Script_RegisterClientFirstPersonProxyClassFuncs)();
|
||||
|
||||
inline ScriptClassDescriptor_t* g_clientScriptEntityStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptPlayerStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptAIStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptWeaponStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptProjectileStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptTitanSoulStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptPlayerDecoyStruct;
|
||||
inline ScriptClassDescriptor_t* g_clientScriptFirstPersonProxyStruct;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class VScriptClient : public IDetour
|
||||
{
|
||||
virtual void GetAdr(void) const
|
||||
{
|
||||
LogFunAdr("Script_RegisterClientEntityClassFuncs", v_Script_RegisterClientEntityClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientPlayerClassFuncs", v_Script_RegisterClientPlayerClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientAIClassFuncs", v_Script_RegisterClientAIClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientWeaponClassFuncs", v_Script_RegisterClientWeaponClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientProjectileClassFuncs", v_Script_RegisterClientProjectileClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientTitanSoulClassFuncs", v_Script_RegisterClientTitanSoulClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientPlayerDecoyClassFuncs", v_Script_RegisterClientPlayerDecoyClassFuncs);
|
||||
LogFunAdr("Script_RegisterClientFirstPersonProxyClassFuncs", v_Script_RegisterClientFirstPersonProxyClassFuncs);
|
||||
|
||||
LogVarAdr("g_clientScriptEntityStruct", g_clientScriptEntityStruct);
|
||||
LogVarAdr("g_clientScriptPlayerStruct", g_clientScriptPlayerStruct);
|
||||
LogVarAdr("g_clientScriptAIStruct", g_clientScriptAIStruct);
|
||||
LogVarAdr("g_clientScriptWeaponStruct", g_clientScriptWeaponStruct);
|
||||
LogVarAdr("g_clientScriptProjectileStruct", g_clientScriptProjectileStruct);
|
||||
LogVarAdr("g_clientScriptTitanSoulStruct", g_clientScriptTitanSoulStruct);
|
||||
LogVarAdr("g_clientScriptPlayerDecoyStruct", g_clientScriptPlayerDecoyStruct);
|
||||
LogVarAdr("g_clientScriptFirstPersonProxyStruct", g_clientScriptFirstPersonProxyStruct);
|
||||
}
|
||||
virtual void GetFun(void) const
|
||||
{
|
||||
g_GameDll.FindPatternSIMD("40 55 48 8B EC 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 C7 05")
|
||||
.GetPtr(v_Script_RegisterClientEntityClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("40 55 48 8B EC 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 C7 05 ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 48 6B C1 ?? 48 8D 0D ?? ?? ?? ?? 48 03 05 ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C6 40 ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 08 48 8D 0D ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 48 6B C1 ?? 48 8D 0D ?? ?? ?? ?? 48 03 05 ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C6 40 ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 08 48 8D 0D ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 4C 8D 45 ?? 48 6B D9 ?? 48 8D 05")
|
||||
.GetPtr(v_Script_RegisterClientPlayerClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 63 1D")
|
||||
.GetPtr(v_Script_RegisterClientAIClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("40 55 48 8B EC 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 C7 05 ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 48 6B C1 ?? 48 8D 0D ?? ?? ?? ?? 48 03 05 ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C6 40 ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 08 48 8D 0D ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 48 6B C1 ?? 48 8D 0D ?? ?? ?? ?? 48 03 05 ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C6 40 ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 89 08 48 8D 0D ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 4C 8D 45 ?? 48 6B D9 ?? C7 45")
|
||||
.GetPtr(v_Script_RegisterClientWeaponClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 8B C4 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 89 58 ?? 48 63 1D ?? ?? ?? ?? 48 89 68 ?? 33 ED 48 89 70 ?? 48 89 78 ?? 4C 89 60 ?? 4C 89 68 ?? 4C 89 70 ?? 44 8D 75 ?? 4C 89 78 ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 8D 43 ?? 4C 63 C8 49 8B C1 C6 05 ?? ?? ?? ?? ?? 48 2B C1 48 89 2D ?? ?? ?? ?? 48 85 C0 0F 8E ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 4D 85 C0 0F 88 ?? ?? ?? ?? 74 ?? 49 8D 49 ?? 48 8B C1 48 99 49 F7 F8 4C 2B C2 4C 03 C1 EB ?? 48 85 C9 4C 8B C1 4D 0F 44 C6 4D 3B C1 7D ?? 4D 03 C0 4D 3B C1 7C ?? 4D 3B C1 7D ?? 4D 85 C0 75 ?? 4D 85 C9 79 ?? 49 C7 C0 ?? ?? ?? ?? EB ?? 4B 8D 04 08 48 99 48 2B C2 48 D1 F8 4C 8B C0 49 3B C1 7C ?? 48 8B 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 4C 89 05 ?? ?? ?? ?? 48 85 D2 74 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 08 48 8B C8 4D 6B C0 ?? 41 FF 51 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 49 6B F8 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 00 48 8B D7 48 8B C8 41 FF 50 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 8B 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 4C 8D 2D")
|
||||
.GetPtr(v_Script_RegisterClientProjectileClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 6C 24 ?? 33 ED 48 89 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 89 74 24 ?? 48 89 7C 24 ?? 48 63 3D ?? ?? ?? ?? 4C 89 74 24 ?? 44 8D 75 ?? C6 05 ?? ?? ?? ?? ?? 48 89 2D ?? ?? ?? ?? 8D 47 ?? 4C 63 C0 49 8B C0 48 2B C1 48 85 C0 0F 8E ?? ?? ?? ?? 4C 8B 0D ?? ?? ?? ?? 4D 85 C9 0F 88 ?? ?? ?? ?? 74 ?? 49 8D 48 ?? 48 8B C1 48 99 49 F7 F9 48 2B CA 49 03 C9 EB ?? 48 85 C9 49 0F 44 CE 49 3B C8 7D ?? 48 03 C9 49 3B C8 7C ?? 49 3B C8 7D ?? 48 85 C9 75 ?? 4D 85 C0 79 ?? 48 C7 C1 ?? ?? ?? ?? EB ?? 0F 1F 40 ?? 0F 1F 84 00 ?? ?? ?? ?? 4A 8D 04 01 48 99 48 2B C2 48 D1 F8 48 8B C8 49 3B C0 7C ?? 48 8B 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 89 0D ?? ?? ?? ?? 48 85 D2 74 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 08 4C 6B C1 ?? 48 8B C8 41 FF 51 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 6B D9 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 00 48 8B D3 48 8B C8 41 FF 50 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 8B 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 48 8D 35")
|
||||
.GetPtr(v_Script_RegisterClientTitanSoulClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("80 3D ?? ?? ?? ?? ?? 75 ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 C7 05 ?? ?? ?? ?? ?? ?? ?? ?? C3 CC CC CC 48 8D 05 ?? ?? ?? ?? C3 CC CC CC CC CC CC CC CC 48 89 5C 24")
|
||||
.GetPtr(v_Script_RegisterClientPlayerDecoyClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 74 24 ?? 33 F6 48 89 05 ?? ?? ?? ?? 48 89 7C 24 ?? 48 63 3D ?? ?? ?? ?? 4C 89 74 24 ?? 8D 6E ?? 4C 8D 35 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 4C 89 35 ?? ?? ?? ?? 8D 47 ?? 48 89 35 ?? ?? ?? ?? 4C 63 C0")
|
||||
.GetPtr(v_Script_RegisterClientFirstPersonProxyClassFuncs);
|
||||
}
|
||||
virtual void GetVar(void) const
|
||||
{
|
||||
CMemory(v_Script_RegisterClientEntityClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptEntityStruct);
|
||||
CMemory(v_Script_RegisterClientPlayerClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptPlayerStruct);
|
||||
CMemory(v_Script_RegisterClientAIClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptAIStruct);
|
||||
CMemory(v_Script_RegisterClientWeaponClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptWeaponStruct);
|
||||
CMemory(v_Script_RegisterClientProjectileClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptProjectileStruct);
|
||||
CMemory(v_Script_RegisterClientTitanSoulClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptTitanSoulStruct);
|
||||
CMemory(v_Script_RegisterClientPlayerDecoyClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptPlayerDecoyStruct);
|
||||
CMemory(v_Script_RegisterClientFirstPersonProxyClassFuncs).FindPatternSelf("48 89 05", CMemory::Direction::DOWN, 150, 2).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_clientScriptFirstPersonProxyStruct);
|
||||
}
|
||||
virtual void GetCon(void) const { }
|
||||
virtual void Detour(const bool bAttach) const;
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif // VSCRIPT_CLIENT_H
|
||||
|
@ -334,3 +334,109 @@ void Script_RegisterAdminPanelFunctions(CSquirrelVM* s)
|
||||
|
||||
DEFINE_SERVER_SCRIPTFUNC_NAMED(s, UnbanPlayer, "Unbans a player from the server by nucleus id or ip address", "void", "string");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Purpose: script code class function registration
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerEntityClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerPlayerClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerAIClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerWeaponClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerProjectileClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerTitanSoulClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerPlayerDecoyClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerSpawnpointClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------
|
||||
static void Script_RegisterServerFirstPersonProxyClassFuncs()
|
||||
{
|
||||
static bool initialized = false;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
void VScriptServer::Detour(const bool bAttach) const
|
||||
{
|
||||
DetourSetup(&v_Script_RegisterServerEntityClassFuncs, &Script_RegisterServerEntityClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerPlayerClassFuncs, &Script_RegisterServerPlayerClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerAIClassFuncs, &Script_RegisterServerAIClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerWeaponClassFuncs, &Script_RegisterServerWeaponClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerProjectileClassFuncs, &Script_RegisterServerProjectileClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerTitanSoulClassFuncs, &Script_RegisterServerTitanSoulClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerPlayerDecoyClassFuncs, &Script_RegisterServerPlayerDecoyClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerSpawnpointClassFuncs, &Script_RegisterServerSpawnpointClassFuncs, bAttach);
|
||||
DetourSetup(&v_Script_RegisterServerFirstPersonProxyClassFuncs, &Script_RegisterServerFirstPersonProxyClassFuncs, bAttach);
|
||||
}
|
||||
|
@ -38,4 +38,95 @@ void Script_RegisterServerEnums(CSquirrelVM* const s);
|
||||
s->RegisterFunction(#functionName, MKSTRING(Script_##functionName), \
|
||||
helpString, returnType, parameters, VScriptCode::Server::##functionName); \
|
||||
|
||||
inline void (*v_Script_RegisterServerEntityClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerPlayerClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerAIClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerWeaponClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerProjectileClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerTitanSoulClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerPlayerDecoyClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerSpawnpointClassFuncs)();
|
||||
inline void (*v_Script_RegisterServerFirstPersonProxyClassFuncs)();
|
||||
|
||||
inline ScriptClassDescriptor_t* g_serverScriptEntityStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptPlayerStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptAIStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptWeaponStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptProjectileStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptTitanSoulStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptPlayerDecoyStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptSpawnpointStruct;
|
||||
inline ScriptClassDescriptor_t* g_serverScriptFirstPersonProxyStruct;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class VScriptServer : public IDetour
|
||||
{
|
||||
virtual void GetAdr(void) const
|
||||
{
|
||||
LogFunAdr("Script_RegisterServerEntityClassFuncs", v_Script_RegisterServerEntityClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerPlayerClassFuncs", v_Script_RegisterServerPlayerClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerAIClassFuncs", v_Script_RegisterServerAIClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerWeaponClassFuncs", v_Script_RegisterServerWeaponClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerProjectileClassFuncs", v_Script_RegisterServerProjectileClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerTitanSoulClassFuncs", v_Script_RegisterServerTitanSoulClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerPlayerDecoyClassFuncs", v_Script_RegisterServerPlayerDecoyClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerSpawnpointClassFuncs", v_Script_RegisterServerSpawnpointClassFuncs);
|
||||
LogFunAdr("Script_RegisterServerFirstPersonProxyClassFuncs", v_Script_RegisterServerFirstPersonProxyClassFuncs);
|
||||
|
||||
LogVarAdr("g_serverScriptEntityStruct", g_serverScriptEntityStruct);
|
||||
LogVarAdr("g_serverScriptPlayerStruct", g_serverScriptPlayerStruct);
|
||||
LogVarAdr("g_serverScriptAIStruct", g_serverScriptAIStruct);
|
||||
LogVarAdr("g_serverScriptWeaponStruct", g_serverScriptWeaponStruct);
|
||||
LogVarAdr("g_serverScriptProjectileStruct", g_serverScriptProjectileStruct);
|
||||
LogVarAdr("g_serverScriptTitanSoulStruct", g_serverScriptTitanSoulStruct);
|
||||
LogVarAdr("g_serverScriptPlayerDecoyStruct", g_serverScriptPlayerDecoyStruct);
|
||||
LogVarAdr("g_serverScriptSpawnpointStruct", g_serverScriptSpawnpointStruct);
|
||||
LogVarAdr("g_serverScriptFirstPersonProxyStruct", g_serverScriptFirstPersonProxyStruct);
|
||||
}
|
||||
virtual void GetFun(void) const
|
||||
{
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 D2 48 8D 05 ?? ?? ?? ?? 48 C7 05")
|
||||
.GetPtr(v_Script_RegisterServerEntityClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 D2 48 8D 05 ?? ?? ?? ?? 48 89 05")
|
||||
.GetPtr(v_Script_RegisterServerPlayerClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("40 55 48 8B EC 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 15 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05")
|
||||
.GetPtr(v_Script_RegisterServerAIClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 5C 24 ?? 48 89 05 ?? ?? ?? ?? 48 8D 15 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 C9 48 8D 05 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? B0 ?? 48 89 15 ?? ?? ?? ?? 48 0F BE C0 48 8D 52 ?? 48 03 C1 48 69 C8 ?? ?? ?? ?? 48 8B C1 48 C1 E8 ?? 48 33 C8 0F B6 02 84 C0 75 ?? 48 8D 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 48 6B C1 ?? 48 8D 0D ?? ?? ?? ?? 48 03 05 ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 89 08 48 8D 0D ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 89 48 ?? 48 8D 0D ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C6 40 ?? ?? 48 C7 40 ?? ?? ?? ?? ?? 48 C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? C7 40 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 C8 48 6B C1")
|
||||
.GetPtr(v_Script_RegisterServerWeaponClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 8B C4 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 89 58 ?? 48 8D 15 ?? ?? ?? ?? 48 89 68 ?? 33 ED 48 89 70 ?? 8B CD 48 89 78 ?? 4C 89 60 ?? 4C 89 68 ?? 4C 89 70 ?? 4C 89 78 ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? B0 ?? C6 05 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 0F BE C0 48 8D 52 ?? 48 03 C1 48 69 C8 ?? ?? ?? ?? 48 8B C1 48 C1 E8 ?? 48 33 C8 0F B6 02 84 C0 75 ?? 48 8D 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 1D ?? ?? ?? ?? 41 BE ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8D 43 ?? 4C 63 C8")
|
||||
.GetPtr(v_Script_RegisterServerProjectileClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 89 5C 24 ?? 48 8D 05 ?? ?? ?? ?? 48 89 6C 24 ?? 48 8D 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 ED 48 89 74 24 ?? 48 8D 05 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 8B CD 48 8D 05 ?? ?? ?? ?? 48 89 7C 24 ?? 48 89 05 ?? ?? ?? ?? B0 ?? 4C 89 74 24 ?? 4C 89 7C 24 ?? C6 05 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 0F 1F 44 00 ?? 48 0F BE C0 48 8D 52 ?? 48 03 C1 48 69 C8 ?? ?? ?? ?? 48 8B C1 48 C1 E8 ?? 48 33 C8 0F B6 02 84 C0 75 ?? 48 8D 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 1D")
|
||||
.GetPtr(v_Script_RegisterServerTitanSoulClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 89 5C 24 ?? 48 8D 05 ?? ?? ?? ?? 48 89 6C 24 ?? 48 8D 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 ED 48 8D 05 ?? ?? ?? ?? 48 89 74 24 ?? 48 89 05 ?? ?? ?? ?? 8B CD 48 8D 05 ?? ?? ?? ?? 48 89 7C 24 ?? 48 89 05 ?? ?? ?? ?? B0 ?? 4C 89 74 24 ?? C6 05 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 66 66 0F 1F 84 00 ?? ?? ?? ?? 48 0F BE C0 48 8D 52 ?? 48 03 C1 48 69 C8 ?? ?? ?? ?? 48 8B C1 48 C1 E8 ?? 48 33 C8 0F B6 02 84 C0 75 ?? 48 8D 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 3D ?? ?? ?? ?? 41 BE ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8D 47 ?? 4C 63 C8 49 8B C1 48 2B C1 48 85 C0 0F 8E ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 4D 85 C0 0F 88 ?? ?? ?? ?? 74 ?? 49 8D 49 ?? 48 8B C1 48 99 49 F7 F8 4C 2B C2 4C 03 C1 EB ?? 48 85 C9 4C 8B C1 4D 0F 44 C6 4D 3B C1 7D ?? 0F 1F 00 4D 03 C0 4D 3B C1 7C ?? 4D 3B C1 7D ?? 4D 85 C0 75 ?? 4D 85 C9 79 ?? 49 C7 C0 ?? ?? ?? ?? EB ?? 4B 8D 04 08 48 99 48 2B C2 48 D1 F8 4C 8B C0 49 3B C1 7C ?? 48 8B 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 4C 89 05 ?? ?? ?? ?? 48 85 D2 74 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 08 48 8B C8 4D 6B C0 ?? 41 FF 51 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 49 6B D8 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 00 48 8B D3 48 8B C8 41 FF 50 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 8B 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 48 6B CF ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 66 44 89 74 11 ?? C7 44 11 ?? ?? ?? ?? ?? 48 89 6C 11 ?? 89 6C 11 ?? 48 8D 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 89 54 01 ?? 48 8D 15 ?? ?? ?? ?? 48 89 14 01 48 8D 15 ?? ?? ?? ?? 48 89 54 01 ?? 48 8D 15 ?? ?? ?? ?? 48 89 54 01 ?? 48 89 6C 01 ?? 48 89 6C 01 ?? 40 88 6C 01 ?? 48 89 6C 01 ?? 48 89 6C 01 ?? 89 6C 01 ?? 48 63 3D ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8D 47 ?? 4C 63 C8 49 8B C1 48 2B C1 48 85 C0 0F 8E ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 4D 85 C0 0F 88 ?? ?? ?? ?? 74 ?? 49 8D 49 ?? 48 8B C1 48 99 49 F7 F8 4C 2B C2 4C 03 C1 EB ?? 48 85 C9 4C 8B C1 4D 0F 44 C6 4D 3B C1 7D ?? 90 4D 03 C0 4D 3B C1 7C ?? 4D 3B C1 7D ?? 4D 85 C0 75 ?? 4D 85 C9 79 ?? 49 C7 C0 ?? ?? ?? ?? EB ?? 4B 8D 04 08 48 99 48 2B C2 48 D1 F8 4C 8B C0 49 3B C1 7C ?? 48 8B 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 4C 89 05 ?? ?? ?? ?? 48 85 D2 74 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 08 48 8B C8 4D 6B C0 ?? 41 FF 51 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 49 6B D8 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 00 48 8B D3 48 8B C8 41 FF 50 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 8B 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 48 6B CF ?? 48 89 6C 11")
|
||||
.GetPtr(v_Script_RegisterServerPlayerDecoyClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 89 5C 24 ?? 48 8D 05 ?? ?? ?? ?? 48 89 6C 24 ?? 48 8D 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 ED 48 8D 05 ?? ?? ?? ?? 48 89 74 24 ?? 48 89 05 ?? ?? ?? ?? 8B CD 48 8D 05 ?? ?? ?? ?? 48 89 7C 24 ?? 48 89 05 ?? ?? ?? ?? B0 ?? 4C 89 74 24 ?? C6 05 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 66 66 0F 1F 84 00 ?? ?? ?? ?? 48 0F BE C0 48 8D 52 ?? 48 03 C1 48 69 C8 ?? ?? ?? ?? 48 8B C1 48 C1 E8 ?? 48 33 C8 0F B6 02 84 C0 75 ?? 48 8D 15 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 3D ?? ?? ?? ?? 41 BE ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8D 47 ?? 4C 63 C8 49 8B C1 48 2B C1 48 85 C0 0F 8E ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 4D 85 C0 0F 88 ?? ?? ?? ?? 74 ?? 49 8D 49 ?? 48 8B C1 48 99 49 F7 F8 4C 2B C2 4C 03 C1 EB ?? 48 85 C9 4C 8B C1 4D 0F 44 C6 4D 3B C1 7D ?? 0F 1F 00 4D 03 C0 4D 3B C1 7C ?? 4D 3B C1 7D ?? 4D 85 C0 75 ?? 4D 85 C9 79 ?? 49 C7 C0 ?? ?? ?? ?? EB ?? 4B 8D 04 08 48 99 48 2B C2 48 D1 F8 4C 8B C0 49 3B C1 7C ?? 48 8B 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 4C 89 05 ?? ?? ?? ?? 48 85 D2 74 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 08 48 8B C8 4D 6B C0 ?? 41 FF 51 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 49 6B D8 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 00 48 8B D3 48 8B C8 41 FF 50 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 8B 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 6B CF ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 66 44 89 74 11 ?? C7 44 11 ?? ?? ?? ?? ?? 48 89 6C 11 ?? 89 6C 11 ?? 49 8B D6 48 8B 1D ?? ?? ?? ?? 48 03 D9 48 89 43 ?? 48 8D 4B ?? 48 89 6B ?? 48 8D 05 ?? ?? ?? ?? 48 89 03 48 8D 05 ?? ?? ?? ?? 48 89 43 ?? 89 6B ?? 40 88 6B ?? 48 89 6B ?? 48 89 6B ?? 89 6B ?? C7 43 ?? ?? ?? ?? ?? 4C 89 73 ?? E8 ?? ?? ?? ?? 48 63 73 ?? 8D 46 ?? 48 63 D0 8B C6 48 2B 53 ?? 48 85 D2 7E ?? 48 8D 4B ?? E8 ?? ?? ?? ?? 8B 43 ?? FF C0 89 43 ?? 48 8B 43 ?? C7 04 B0 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 89 43 ?? 48 63 3D ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8D 47 ?? 4C 63 C8 49 8B C1 48 2B C1 48 85 C0 0F 8E ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 4D 85 C0 0F 88 ?? ?? ?? ?? 74 ?? 49 8D 49 ?? 48 8B C1 48 99 49 F7 F8 4C 2B C2 4C 03 C1 EB ?? 48 85 C9 4C 8B C1 4D 0F 44 C6 4D 3B C1 7D ?? 90 4D 03 C0 4D 3B C1 7C ?? 4D 3B C1 7D ?? 4D 85 C0 75 ?? 4D 85 C9 79 ?? 49 C7 C0 ?? ?? ?? ?? EB ?? 4B 8D 04 08 48 99 48 2B C2 48 D1 F8 4C 8B C0 49 3B C1 7C ?? 48 8B 15 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 4C 89 05 ?? ?? ?? ?? 48 85 D2 74 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 08 48 8B C8 4D 6B C0 ?? 41 FF 51 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 49 6B D8 ?? 48 85 C0 75 ?? E8 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 8B 00 48 8B D3 48 8B C8 41 FF 50 ?? 48 8B D0 48 89 05 ?? ?? ?? ?? EB ?? 48 8B 15 ?? ?? ?? ?? FF 05 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 48 6B CF ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 48 89 6C 11 ?? 66 44 89 74 11 ?? C7 44 11 ?? ?? ?? ?? ?? 48 89 6C 11 ?? 89 6C 11 ?? BA ?? ?? ?? ?? 48 8B 3D ?? ?? ?? ?? 48 03 F9 48 89 47 ?? 48 8D 4F ?? 48 89 6F ?? 48 8D 05 ?? ?? ?? ?? 48 89 07 48 8D 05 ?? ?? ?? ?? 48 89 47 ?? 89 6F ?? 40 88 6F ?? 48 89 6F ?? 48 89 6F ?? 89 6F ?? 44 89 77")
|
||||
.GetPtr(v_Script_RegisterServerSpawnpointClassFuncs);
|
||||
|
||||
g_GameDll.FindPatternSIMD("48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 89 6C 24 ?? 48 8D 05 ?? ?? ?? ?? 48 89 74 24 ?? 48 8D 15 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 33 F6 48 8D 05 ?? ?? ?? ?? 48 89 7C 24 ?? 4C 89 74 24 ?? 8B CE 4C 8D 35 ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 4C 89 35 ?? ?? ?? ?? B0 ?? C6 05 ?? ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 89 15 ?? ?? ?? ?? 48 0F BE C0 48 8D 52 ?? 48 03 C1 48 69 C8 ?? ?? ?? ?? 48 8B C1 48 C1 E8 ?? 48 33 C8 0F B6 02 84 C0 75 ?? 48 8D 15 ?? ?? ?? ?? 48 89 5C 24 ?? E8 ?? ?? ?? ?? 48 63 3D ?? ?? ?? ?? BD ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 8D 47 ?? 4C 63 C0")
|
||||
.GetPtr(v_Script_RegisterServerFirstPersonProxyClassFuncs);
|
||||
}
|
||||
virtual void GetVar(void) const
|
||||
{
|
||||
CMemory(v_Script_RegisterServerEntityClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptEntityStruct);
|
||||
CMemory(v_Script_RegisterServerPlayerClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptPlayerStruct);
|
||||
CMemory(v_Script_RegisterServerAIClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptAIStruct);
|
||||
CMemory(v_Script_RegisterServerWeaponClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptWeaponStruct);
|
||||
CMemory(v_Script_RegisterServerProjectileClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptProjectileStruct);
|
||||
CMemory(v_Script_RegisterServerTitanSoulClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptTitanSoulStruct);
|
||||
CMemory(v_Script_RegisterServerPlayerDecoyClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptPlayerDecoyStruct);
|
||||
CMemory(v_Script_RegisterServerSpawnpointClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptSpawnpointStruct);
|
||||
CMemory(v_Script_RegisterServerFirstPersonProxyClassFuncs).Offset(0x50).FindPatternSelf("48 8D 15", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_serverScriptFirstPersonProxyStruct);
|
||||
}
|
||||
virtual void GetCon(void) const { }
|
||||
virtual void Detour(const bool bAttach) const;
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif // VSCRIPT_SERVER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user