2009-04-29 01:58:41 +02:00
/*
* ============================================================================
*
* Zombie : Reloaded
*
2009-05-06 02:28:09 +02:00
* File : tools . inc
* Type : Core
* Description : Find offsets and signatures .
2009-04-29 01:58:41 +02:00
*
* ============================================================================
*/
/**
* Initialize global offset variables .
*/
new g_iToolsVelocity ;
new g_iToolsBaseVelocity ;
new g_iToolsLMV ;
new g_iToolsHasNightVision ;
new g_iToolsNightVisionOn ;
new g_iToolsDefaultFOV ;
2009-05-29 08:43:15 +02:00
2009-04-29 01:58:41 +02:00
/**
* @ endsection
*/
/**
* Initialize global SDKTools handles .
*/
new Handle : g_hToolsGameConfig = INVALID_HANDLE ;
new Handle : g_hToolsEyeAngles = INVALID_HANDLE ;
new Handle : g_hToolsTerminateRound = INVALID_HANDLE ;
new Handle : g_hToolsCSWeaponDrop = INVALID_HANDLE ;
/**
* @ endsection
*/
// Tools Functions (core)
#include "zr/tools_functions"
/**
* Tools module init function .
*/
ToolsInit ()
{
// Find offsets.
ToolsFindOffsets ();
// Setup SDKTools
ToolsSetupGameData ();
}
/**
* Finds all offset values for the plugin .
*/
ToolsFindOffsets ()
{
// If offset "m_vecVelocity[0]" can't be found, then stop the plugin.
g_iToolsVelocity = FindSendPropInfo ( " CBasePlayer " , " m_vecVelocity[0] " );
if ( g_iToolsVelocity == - 1 )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " Offsets " , " Offset \" CBasePlayer::m_vecVelocity[0] \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// If offset "m_vecBaseVelocity" can't be found, then stop the plugin.
g_iToolsBaseVelocity = FindSendPropInfo ( " CBasePlayer " , " m_vecBaseVelocity " );
if ( g_iToolsBaseVelocity == - 1 )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " Offsets " , " Offset \" CBasePlayer::m_vecBaseVelocity \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// If offset "m_flLaggedMovementValue" can't be found, then stop the plugin.
g_iToolsLMV = FindSendPropInfo ( " CCSPlayer " , " m_flLaggedMovementValue " );
if ( g_iToolsLMV == - 1 )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " Offsets " , " Offset \" CCSPlayer::m_flLaggedMovementValue \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// If offset "m_bHasNightVision" can't be found, then stop the plugin.
g_iToolsHasNightVision = FindSendPropInfo ( " CCSPlayer " , " m_bHasNightVision " );
if ( g_iToolsHasNightVision == - 1 )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " Offsets " , " Offset \" CCSPlayer::m_bHasNightVision \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// If offset "m_bNightVisionOn" can't be found, then stop the plugin.
g_iToolsNightVisionOn = FindSendPropInfo ( " CCSPlayer " , " m_bNightVisionOn " );
if ( g_iToolsNightVisionOn == - 1 )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " Offsets " , " Offset \" CCSPlayer::m_bNightVisionOn \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// If offset "m_iDefaultFOV" can't be found, then stop the plugin.
g_iToolsDefaultFOV = FindSendPropInfo ( " CBasePlayer " , " m_iDefaultFOV " );
if ( g_iToolsDefaultFOV == - 1 )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " Offsets " , " Offset \" CBasePlayer::m_iDefaultFOV \" was not found. " );
2009-04-29 01:58:41 +02:00
}
2009-05-29 08:43:15 +02:00
// Forward event to modules.
WeaponsOnOffsetsFound ();
AccountOnOffsetsFound ();
2009-06-08 06:05:50 +02:00
VEffectsOnOffsetsFound ();
2009-05-29 08:43:15 +02:00
AntiStickOnOffsetsFound ();
ZMarketOnOffsetsFound ();
2009-04-29 01:58:41 +02:00
}
/**
* Sets up gamedata for the plugin .
*/
ToolsSetupGameData ()
{
// Load game config file.
g_hToolsGameConfig = LoadGameConfigFile ( " plugin.zombiereloaded " );
// If gamedata file can't be loaded, then stop the plugin.
if ( g_hToolsGameConfig == INVALID_HANDLE )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " GameData " , " Can't load game config file (plugin.zombiereloaded.txt) from the gamedata directory. " );
2009-04-29 01:58:41 +02:00
}
// Prep the SDKCall for "EyeAngles."
StartPrepSDKCall ( SDKCall_Player );
PrepSDKCall_SetFromConf ( g_hToolsGameConfig , SDKConf_Virtual , " EyeAngles " );
PrepSDKCall_SetReturnInfo ( SDKType_QAngle , SDKPass_ByValue );
g_hToolsEyeAngles = EndPrepSDKCall ();
// If offset "EyeAngles" can't be found, then stop the plugin.
if ( g_hToolsEyeAngles == INVALID_HANDLE )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " GameData " , " Offset \" EyeAngles \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// Prep the SDKCall for "TerminateRound."
StartPrepSDKCall ( SDKCall_GameRules );
PrepSDKCall_SetFromConf ( g_hToolsGameConfig , SDKConf_Signature , " TerminateRound " );
PrepSDKCall_AddParameter ( SDKType_Float , SDKPass_Plain );
PrepSDKCall_AddParameter ( SDKType_PlainOldData , SDKPass_Plain );
g_hToolsTerminateRound = EndPrepSDKCall ();
// If offset "TerminateRound" can't be found, then stop the plugin.
if ( g_hToolsTerminateRound == INVALID_HANDLE )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " GameData " , " Signature \" CGameRules::TerminateRound \" was not found. " );
2009-04-29 01:58:41 +02:00
}
// Prep the SDKCall for "CSWeaponDrop."
StartPrepSDKCall ( SDKCall_Player );
PrepSDKCall_SetFromConf ( g_hToolsGameConfig , SDKConf_Signature , " CSWeaponDrop " );
PrepSDKCall_AddParameter ( SDKType_CBaseEntity , SDKPass_Pointer );
PrepSDKCall_AddParameter ( SDKType_Bool , SDKPass_Plain );
PrepSDKCall_AddParameter ( SDKType_Bool , SDKPass_Plain );
g_hToolsCSWeaponDrop = EndPrepSDKCall ();
// If offset "CSWeaponDrop" can't be found, then stop the plugin.
if ( g_hToolsCSWeaponDrop == INVALID_HANDLE )
{
2009-06-01 23:29:26 +02:00
LogEvent ( false , LogType_Fatal , LOG_CORE_EVENTS , LogModule_Tools , " GameData " , " Signature \" CBasePlaye::CSWeaponDrop \" was not found. " );
2009-04-29 01:58:41 +02:00
}
2009-05-01 11:22:45 +02:00
}