mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-09 11:28:26 +00:00
add jank replay bot footstep sounds
This commit is contained in:
parent
6386098a00
commit
c4520b7ab8
@ -61,6 +61,10 @@
|
|||||||
"linux" "1"
|
"linux" "1"
|
||||||
"mac" "1"
|
"mac" "1"
|
||||||
}
|
}
|
||||||
|
"CBasePlayer::UpdateStepSound"
|
||||||
|
{
|
||||||
|
"windows" "408"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
"Addresses"
|
"Addresses"
|
||||||
|
|||||||
@ -149,6 +149,7 @@ Handle gH_Forwards_OnCheckpointMenuSelect = null;
|
|||||||
|
|
||||||
// dhooks
|
// dhooks
|
||||||
Handle gH_GetPlayerMaxSpeed = null;
|
Handle gH_GetPlayerMaxSpeed = null;
|
||||||
|
DynamicHook gH_UpdateStepSound = null;
|
||||||
DynamicHook gH_IsSpawnPointValid = null;
|
DynamicHook gH_IsSpawnPointValid = null;
|
||||||
|
|
||||||
// modules
|
// modules
|
||||||
@ -353,6 +354,18 @@ public void OnPluginStart()
|
|||||||
SetFailState("Couldn't get the offset for \"CCSPlayer::GetPlayerMaxSpeed\" - make sure your gamedata is updated!");
|
SetFailState("Couldn't get the offset for \"CCSPlayer::GetPlayerMaxSpeed\" - make sure your gamedata is updated!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((iOffset = GameConfGetOffset(hGameData, "CBasePlayer::UpdateStepSound")) != -1)
|
||||||
|
{
|
||||||
|
gH_UpdateStepSound = new DynamicHook(iOffset, HookType_Entity, ReturnType_Void, ThisPointer_CBaseEntity);
|
||||||
|
gH_UpdateStepSound.AddParam(HookParamType_Unknown);
|
||||||
|
gH_UpdateStepSound.AddParam(HookParamType_Unknown);
|
||||||
|
gH_UpdateStepSound.AddParam(HookParamType_Unknown);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetFailState("Couldn't get the offset for \"CBasePlayer::UpdateStepSound\" - make sure your gamedata is updated!");
|
||||||
|
}
|
||||||
|
|
||||||
if ((iOffset = GameConfGetOffset(hGameData, "CGameRules::IsSpawnPointValid")) != -1)
|
if ((iOffset = GameConfGetOffset(hGameData, "CGameRules::IsSpawnPointValid")) != -1)
|
||||||
{
|
{
|
||||||
gH_IsSpawnPointValid = new DynamicHook(iOffset, HookType_GameRules, ReturnType_Bool, ThisPointer_Ignore);
|
gH_IsSpawnPointValid = new DynamicHook(iOffset, HookType_GameRules, ReturnType_Bool, ThisPointer_Ignore);
|
||||||
@ -840,6 +853,30 @@ public MRESReturn CCSPlayer__GetPlayerMaxSpeed(int pThis, Handle hReturn)
|
|||||||
return MRES_Override;
|
return MRES_Override;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MRESReturn Hook_UpdateStepSound_Pre(int pThis, Handle hReturn)
|
||||||
|
{
|
||||||
|
if (GetEntityMoveType(pThis) == MOVETYPE_NOCLIP)
|
||||||
|
{
|
||||||
|
SetEntityMoveType(pThis, MOVETYPE_WALK);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetEntityFlags(pThis, GetEntityFlags(pThis) & ~FL_ATCONTROLS);
|
||||||
|
|
||||||
|
return MRES_Ignored;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MRESReturn Hook_UpdateStepSound_Post(int pThis, Handle hReturn)
|
||||||
|
{
|
||||||
|
if (GetEntityMoveType(pThis) == MOVETYPE_WALK)
|
||||||
|
{
|
||||||
|
SetEntityMoveType(pThis, MOVETYPE_NOCLIP);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetEntityFlags(pThis, GetEntityFlags(pThis) | FL_ATCONTROLS);
|
||||||
|
|
||||||
|
return MRES_Ignored;
|
||||||
|
}
|
||||||
|
|
||||||
public Action Timer_Cron(Handle timer)
|
public Action Timer_Cron(Handle timer)
|
||||||
{
|
{
|
||||||
if(gCV_HideRadar.BoolValue && gEV_Type == Engine_CSS)
|
if(gCV_HideRadar.BoolValue && gEV_Type == Engine_CSS)
|
||||||
@ -1188,6 +1225,8 @@ public void OnClientPutInServer(int client)
|
|||||||
|
|
||||||
if(IsFakeClient(client))
|
if(IsFakeClient(client))
|
||||||
{
|
{
|
||||||
|
gH_UpdateStepSound.HookEntity(Hook_Pre, client, Hook_UpdateStepSound_Pre);
|
||||||
|
gH_UpdateStepSound.HookEntity(Hook_Post, client, Hook_UpdateStepSound_Post);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user