Veteran Member
Join Date: Dec 2012
Location: Toronto, CA
|

02-27-2016
, 18:45
Re: [IDA/DHooks]How to get vtable offsets
|
#23
|
I'm trying to find the offset value for CTerrorGameRules::CalculateSurvivalMultiplier in L4D2, but failed every time. This is what I was able to extract from the vtable. Can anyone help me here?
PHP Code:
// Auto reconstructed from vtable block @ 0x00BB8BE0 // from "server_srv.so", by ida_vtables.idc 0 CGameRules::Name(void) 1 CMultiplayRules::Init(void) 2 CBaseGameSystemPerFrame::PostInit(void) 3 CBaseGameSystemPerFrame::Shutdown(void) 4 CTerrorGameRules::LevelInitPreEntity(void) 5 CTerrorGameRules::LevelInitPostEntity(void) 6 CBaseGameSystemPerFrame::LevelShutdownPreEntity(void) 7 CBaseGameSystemPerFrame::LevelShutdownPostEntity(void) 8 CBaseGameSystemPerFrame::OnSave(void) 9 CBaseGameSystemPerFrame::OnRestore(void) 10 CBaseGameSystemPerFrame::SafeRemoveIfDesired(void) 11 CBaseGameSystemPerFrame::IsPerFrame(void) 12 CTerrorGameRules::~CTerrorGameRules() 13 CTerrorGameRules::~CTerrorGameRules() 14 CBaseGameSystemPerFrame::FrameUpdatePreEntityThink(void) 15 CGameRules::FrameUpdatePostEntityThink(void) 16 CBaseGameSystemPerFrame::PreClientUpdate(void) 17 CMultiplayRules::Damage_IsTimeBased(int) 18 CMultiplayRules::Damage_ShouldGibCorpse(int) 19 CMultiplayRules::Damage_ShowOnHUD(int) 20 CMultiplayRules::Damage_NoPhysicsForce(int) 21 CMultiplayRules::Damage_ShouldNotBleed(int) 22 CTerrorGameRules::Damage_GetTimeBased(void) 23 CMultiplayRules::Damage_GetShouldGibCorpse(void) 24 CTerrorGameRules::Damage_GetShowOnHud(void) 25 CTerrorGameRules::Damage_GetNoPhysicsForce(void) 26 CMultiplayRules::Damage_GetShouldNotBleed(void) 27 CMultiplayRules::SwitchToNextBestWeapon(CBaseCombatCharacter *,CBaseCombatWeapon *) 28 CCSGameRules::GetNextBestWeapon(CBaseCombatCharacter *,CBaseCombatWeapon *) 29 CCSGameRules::ShouldCollide(int,int) 30 CCSGameRules::DefaultFOV(void) 31 CTerrorGameRules::GetViewVectors(void)const 32 CTerrorGameRules::GetAmmoDamage(CBaseEntity *,CBaseEntity *,int) 33 CGameRules::GetDamageMultiplier(void) 34 CMultiplayRules::IsMultiplayer(void) 35 CTerrorGameRules::GetEncryptionKey(void) 36 CTerrorGameRules::InRoundRestart(void) 37 CTerrorGameRules::CheckAchievementsEnabled(int) 38 CMultiplayRules::GetTaggedConVarList(KeyValues *) 39 CTerrorGameRules::OnBeginChangeLevel(char const*) 40 CCSGameRules::LevelShutdown(void) 41 CTeamplayRules::Precache(void) 42 CMultiplayRules::RefreshSkillData(bool) 43 CTerrorGameRules::Think(void) 44 CMultiplayRules::IsAllowedToSpawn(CBaseEntity *) 45 CCSGameRules::EndGameFrame(void) 46 CGameRules::IsSkillLevel(int) 47 CGameRules::GetSkillLevel(void) 48 CGameRules::OnSkillLevelChanged(int) 49 CGameRules::SetSkillLevel(int) 50 CMultiplayRules::FAllowFlashlight(void) 51 CTerrorGameRules::FShouldSwitchWeapon(CBasePlayer *,CBaseCombatWeapon *) 52 CMultiplayRules::IsDeathmatch(void) 53 CTeamplayRules::IsTeamplay(void) 54 CMultiplayRules::IsCoOp(void) 55 CTerrorGameRules::GetGameDescription(void) 56 CTerrorGameRules::ClientConnected(edict_t *,char const*,char const*,char *,int) 57 CTeamplayRules::InitHUD(CBasePlayer *) 58 CTerrorGameRules::ClientDisconnected(edict_t *) 59 CTerrorGameRules::FlPlayerFallDamage(CBasePlayer *) 60 CTeamplayRules::FPlayerCanTakeDamage(CBasePlayer *,CBaseEntity *) 61 CTeamplayRules::ShouldAutoAim(CBasePlayer *,edict_t *) 62 CGameRules::GetAutoAimScale(CBasePlayer *) 63 CTerrorGameRules::GetAutoAimMode(void) 64 CGameRules::ShouldUseRobustRadiusDamage(CBaseEntity *) 65 CCSGameRules::RadiusDamage(CTakeDamageInfo const&,Vector const&,float,int,CBaseEntity *) 66 CCSGameRules::FlPlayerFallDeathDoesScreenFade(CBasePlayer *) 67 CMultiplayRules::AllowDamage(CBaseEntity *,CTakeDamageInfo const&) 68 CTerrorGameRules::PlayerSpawn(CBasePlayer *) 69 CMultiplayRules::PlayerThink(CBasePlayer *) 70 CTerrorGameRules::FPlayerCanRespawn(CBasePlayer *) 71 CMultiplayRules::FlPlayerSpawnTime(CBasePlayer *) 72 CTerrorGameRules::GetPlayerSpawnSpot(CBasePlayer *) 73 CCSGameRules::IsSpawnPointValid(CBaseEntity *,CBasePlayer *) 74 CMultiplayRules::AllowAutoTargetCrosshair(void) 75 CCSGameRules::ClientCommand(CBaseEntity *,CCommand const&) 76 CTerrorGameRules::ClientSettingsChanged(CBasePlayer *) 77 CTeamplayRules::IPointsForKill(CBasePlayer *,CBasePlayer *) 78 CTerrorGameRules::PlayerKilled(CBasePlayer *,CTakeDamageInfo const&) 79 CCSGameRules::DeathNotice(CBasePlayer *,CTakeDamageInfo const&) 80 CGameRules::GetDamageCustomString(CTakeDamageInfo const&) 81 CGameRules::AdjustPlayerDamageInflicted(float) 82 CGameRules::AdjustPlayerDamageTaken(CTakeDamageInfo *) 83 CMultiplayRules::CanHavePlayerItem(CBasePlayer *,CBaseCombatWeapon *) 84 CMultiplayRules::WeaponShouldRespawn(CBaseCombatWeapon *) 85 CMultiplayRules::FlWeaponRespawnTime(CBaseCombatWeapon *) 86 CMultiplayRules::FlWeaponTryRespawn(CBaseCombatWeapon *) 87 CMultiplayRules::VecWeaponRespawnSpot(CBaseCombatWeapon *) 88 CMultiplayRules::CanHaveItem(CBasePlayer *,CItem *) 89 CMultiplayRules::PlayerGotItem(CBasePlayer *,CItem *) 90 CMultiplayRules::ItemShouldRespawn(CItem *) 91 CMultiplayRules::FlItemRespawnTime(CItem *) 92 CMultiplayRules::VecItemRespawnSpot(CItem *) 93 CMultiplayRules::VecItemRespawnAngles(CItem *) 94 CGameRules::CanHaveAmmo(CBaseCombatCharacter *,int) 95 CGameRules::CanHaveAmmo(CBaseCombatCharacter *,char const*) 96 CMultiplayRules::PlayerGotAmmo(CBaseCombatCharacter *,char *,int) 97 CGameRules::GetAmmoQuantityScale(int) 98 CCSGameRules::InitDefaultAIRelationships(void) 99 CCSGameRules::AIClassText(int) 100 CMultiplayRules::FlHealthChargerRechargeTime(void) 101 CMultiplayRules::FlHEVChargerRechargeTime(void) 102 CMultiplayRules::DeadPlayerWeapons(CBasePlayer *) 103 CMultiplayRules::DeadPlayerAmmo(CBasePlayer *) 104 CTeamplayRules::GetTeamID(CBaseEntity *) 105 CTeamplayRules::PlayerRelationship(CBaseEntity *,CBaseEntity *) 106 CTeamplayRules::PlayerCanHearChat(CBasePlayer *,CBasePlayer *) 107 CGameRules::CheckChatText(CBasePlayer *,char *) 108 CTeamplayRules::GetTeamIndex(char const*) 109 CTeamplayRules::GetIndexedTeamName(int) 110 CTeamplayRules::IsValidTeam(char const*) 111 CTeamplayRules::ChangePlayerTeam(CBasePlayer *,char const*,bool,bool) 112 CCSGameRules::SetDefaultPlayerTeam(CBasePlayer *) 113 CCSGameRules::UpdateClientData(CBasePlayer *) 114 CCSGameRules::PlayTextureSounds(void) 115 CMultiplayRules::PlayFootstepSounds(CBasePlayer *) 116 CGameRules::AllowSoundscapes(void) 117 CCSGameRules::FAllowNPCs(void) 118 CMultiplayRules::EndMultiplayerGame(void) 119 CTerrorGameRules::WeaponTraceEntity(CBaseEntity *,Vector const&,Vector const&,unsigned int,CGameTrace *) 120 CTerrorGameRules::InitScripts(void) 121 CTerrorGameRules::CreateStandardEntities(void) 122 CTerrorGameRules::GetChatPrefix(bool,CBasePlayer *) 123 CTerrorGameRules::GetChatLocation(bool,CBasePlayer *) 124 CTerrorGameRules::GetChatFormat(bool,CBasePlayer *) 125 CGameRules::ShouldBurningPropsEmitLight(void) 126 CGameRules::CanEntityBeUsePushed(CBaseEntity *) 127 CCSGameRules::CreateCustomNetworkStringTables(void) 128 CGameRules::MarkAchievement(IRecipientFilter &,char const*) 129 CMultiplayRules::ResetMapCycleTimeStamp(void) 130 CTerrorGameRules::UpdateGameplayStatsFromSteam(void) 131 CGameRules::DoFindClientInPVS(edict_t *,unsigned char *,unsigned int) 132 CGameRules::GetGameTypeName(void) 133 CGameRules::GetGameType(void) 134 CGameRules::ForceSplitScreenPlayersOnToSameTeam(void) 135 CGameRules::IsTopDown(void) 136 CGameRules::GetTopDownMovementAxis(void) 137 CTerrorGameRules::GetMaxHumanPlayers(void)const 138 CMultiplayRules::GetDeathScorer(CBaseEntity *,CBaseEntity *,CBaseEntity *) 139 CMultiplayRules::VoiceCommand(CBaseMultiplayerPlayer *,int,int) 140 CMultiplayRules::HandleTimeLimitChange(void) 141 CMultiplayRules::InitCustomResponseRulesDicts(void) 142 CMultiplayRules::ShutdownCustomResponseRulesDicts(void) 143 CMultiplayRules::UseSuicidePenalty(void) 144 CMultiplayRules::GetNextLevelName(char *,int,bool) 145 CMultiplayRules::ChangeLevel(void) 146 CCSGameRules::GoToIntermission(void) 147 CTeamplayRules::GetCaptureValueForPlayer(CBasePlayer *) 148 CTeamplayRules::TeamMayCapturePoint(int,int) 149 CTeamplayRules::PlayerMayCapturePoint(CBasePlayer *,int,char *,int) 150 CTeamplayRules::PlayerMayBlockPoint(CBasePlayer *,int,char *,int) 151 CTeamplayRules::PointsMayBeCaptured(void) 152 CTeamplayRules::SetLastCapPointChanged(int) 153 CTeamplayRules::TimerMayExpire(void) 154 CTeamplayRules::SetWinningTeam(int,int,bool,bool,bool) 155 CTeamplayRules::SetStalemate(int,bool,bool) 156 CTeamplayRules::SetSwitchTeams(bool) 157 CTeamplayRules::ShouldSwitchTeams(void) 158 CTeamplayRules::HandleSwitchTeams(void) 159 CTeamplayRules::SetScrambleTeams(bool) 160 CTeamplayRules::ShouldScrambleTeams(void) 161 CTeamplayRules::HandleScrambleTeams(void) 162 CTerrorGameRules::PlayersAllowedToAttack(void)const 163 CTerrorGameRules::GetBuyTimeLength(void)const 164 CTerrorGameRules::PopulateDeathEvent(IGameEvent *,CBaseEntity const*,CBaseCombatCharacter const*,CTakeDamageInfo const&) 165 CTerrorGameRules::DoesEntityBlockExplosions(CBaseEntity *)const 166 CCSGameRules::DeathNoticeForEntity(CBaseCombatCharacter *,CTakeDamageInfo const&) 167 CTerrorGameRules::CheckRoundTimeExpired(void) 168 CTerrorGameRules::CheckWinConditions(void) 169 CTerrorGameRules::TerminateRound(float,int) 170 CTerrorGameRules::TeamFull(int) 171 CCSGameRules::CheckGameOver(void) 172 CCSGameRules::CheckMaxRounds(void) 173 CCSGameRules::CheckWinLimit(void) 174 CCSGameRules::CheckFragLimit(void) 175 CTerrorGameRules::CheckRestartRound(void) 176 CTerrorGameRules::NeededPlayersCheck(bool &) 177 CCSGameRules::SetAllowWeaponSwitch(bool) 178 CCSGameRules::GetAllowWeaponSwitch(void) 179 CTerrorGameRules::RestartRound(void) 180 CTerrorGameRules::CleanUpMap(void) 181 CTerrorGameRules::PopulateDeathEvent(KeyValues *,CBaseEntity const*,CBaseCombatCharacter const*,CTakeDamageInfo const&) 182 CTerrorGameRules::TrackPlayerZombieDamage(CTerrorPlayer *,int,bool) 183 CTerrorGameRules::GetPlayerZombieDamage(ZombieClassType,bool) 184 CTerrorGameRules::ClearPlayerZombieDamage(void)
Am I looking at the wrong table?
__________________
|
|