64bit gamedata fixes (#2141)

* save as of now

* save as of now

* progress

* hint towards comments

Please for the love of god, put comments for updating these in the future will be even more annoying.
i dont even know what LevelShutdown it wants.

* forgot

* fix

* fixes

* Update engine.ep2v.txt

* Update engine.ep2v.txt

* Update sm-tf2.games.txt

---------

Co-authored-by: Benoist <14257866+Kenzzer@users.noreply.github.com>
Co-authored-by: Nicholas Hastings <nshastings@gmail.com>
This commit is contained in:
Artvin 2024-05-05 18:13:39 +02:00 committed by GitHub
parent 343f64f6b7
commit 5a6b2c8ebf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 110 additions and 3 deletions

View File

@ -20,11 +20,13 @@
"gEntList"
{
"windows" "11"
"windows64" "81"
}
"EntInfo"
{
"windows" "4"
"windows64" "8"
"linux" "4"
"linux64" "8"
}
@ -34,8 +36,15 @@
{
"LevelShutdown"
{
/* not confirmed to be : CServerGameDLL:: LevelShutdown */
/* This comment is for 64xBit */
/* if you know the exact level shutdown function, please comment.*/
/* String : "VDebugOverlay003" -> one call up.*/
/* it only needs to know when the server shuts down, not the absolute correct signature.*/
/* incase it needs the exact function, please notify.*/
"library" "server"
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
"windows64" "\x40\x53\x48\x83\xEC\x20\xE8\x2A\x2A\x2A\x2A\x48\x8B\x05\x1E\x04\x9E\x00"
}
"gEntList"
{

View File

@ -5,159 +5,186 @@
{
"Offsets"
{
//This sucks, this comment HAS to stay, if you remove it, sourcemod WILl crash, why? Ask god.
"EntityListeners"
{
"windows" "131108"
"windows64" "262200"
"linux" "131108"
"linux64" "524432"
"linux64" "262200"
}
"CanBeAutobalanced"
{
"windows" "473"
"windows64" "473"
"linux" "474"
"linux64" "474"
}
"EndTouch"
{
"windows" "105"
"windows64" "105"
"linux" "106"
"linux64" "106"
}
"FireBullets"
{
"windows" "117"
"windows64" "117"
"linux" "118"
"linux64" "118"
}
"GetMaxHealth"
{
"windows" "122"
"windows64" "123"
"linux" "123"
"linux64" "123"
}
"GroundEntChanged"
{
"windows" "183"
"windows64" "183"
"linux" "185"
"linux64" "185"
}
"OnTakeDamage"
{
"windows" "64"
"windows64" "64"
"linux" "65"
"linux64" "65"
}
"OnTakeDamage_Alive"
{
"windows" "282"
"windows64" "282"
"linux" "283"
"linux64" "283"
}
"PreThink"
{
"windows" "343"
"windows64" "343"
"linux" "344"
"linux64" "344"
}
"PostThink"
{
"windows" "344"
"windows64" "344"
"linux" "345"
"linux64" "345"
}
"Reload"
{
"windows" "283"
"windows64" "283"
"linux" "289"
"linux64" "289"
}
"SetTransmit"
{
"windows" "22"
"windows64" "22"
"linux" "23"
"linux64" "23"
}
"ShouldCollide"
{
"windows" "17"
"windows64" "17"
"linux" "18"
"linux64" "18"
}
"Spawn"
{
"windows" "24"
"windows64" "24"
"linux" "25"
"linux64" "25"
}
"StartTouch"
{
"windows" "103"
"windows64" "103"
"linux" "104"
"linux64" "104"
}
"Think"
{
"windows" "49"
"windows64" "49"
"linux" "50"
"linux64" "50"
}
"Touch"
{
"windows" "104"
"windows64" "104"
"linux" "105"
"linux64" "105"
}
"TraceAttack"
{
"windows" "62"
"windows64" "62"
"linux" "63"
"linux64" "63"
}
"Use"
{
"windows" "102"
"windows64" "102"
"linux" "103"
"linux64" "103"
}
"VPhysicsUpdate"
{
"windows" "163"
"windows64" "163"
"linux" "164"
"linux64" "164"
}
"Blocked"
{
"windows" "107"
"windows64" "107"
"linux" "108"
"linux64" "108"
}
"Weapon_CanSwitchTo"
{
"windows" "276"
"windows64" "276"
"linux" "277"
"linux64" "277"
}
"Weapon_CanUse"
{
"windows" "270"
"windows64" "270"
"linux" "271"
"linux64" "271"
}
"Weapon_Drop"
{
"windows" "273"
"windows64" "273"
"linux" "274"
"linux64" "274"
}
"Weapon_Equip"
{
"windows" "271"
"windows64" "271"
"linux" "272"
"linux64" "272"
}
"Weapon_Switch"
{
"windows" "274"
"windows64" "274"
"linux" "275"
"linux64" "275"
}

View File

@ -19,18 +19,21 @@
"GetTEName"
{
"windows" "4"
"windows64" "8"
"linux" "4"
"linux64" "8"
}
"GetTENext"
{
"windows" "8"
"windows64" "16"
"linux" "8"
"linux64" "16"
}
"TE_GetServerClass"
{
"windows" "0"
"windows64" "0"
"linux" "0"
"linux64" "0"
}
@ -59,6 +62,7 @@
"sv"
{
"windows" "7"
"windows64" "7"
}
}
@ -87,8 +91,10 @@
{
"FireOutput"
{
/* String: "(%0.2f) output: (%s,%s) -> (%s,%s)(%s)" */
"library" "server"
"windows" "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\x53\x8B\xC1"
"windows64" "\x48\x8B\xC4\x48\x89\x50\x10\x48\x89\x48\x08\x41\x54"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
"linux64" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
@ -116,6 +122,7 @@
"SetUserCvar"
{
"windows" "18"
"windows64" "18"
"linux" "58"
"linux64" "58"
}
@ -127,6 +134,7 @@
"SetClientName"
{
"windows" "17"
"windows64" "17"
"linux" "57"
"linux64" "57"
}
@ -139,6 +147,7 @@
"InfoChanged"
{
"windows" "140"
"windows64" "140"
"linux" "140"
"linux64" "160"
}

View File

@ -19,102 +19,119 @@
"SetOwnerEntity"
{
"windows" "18"
"windows64" "18"
"linux" "19"
"linux64" "19"
}
"GiveNamedItem"
{
"windows" "412"
"windows64" "412"
"linux" "413"
"linux64" "413"
}
"RemovePlayerItem"
{
"windows" "280"
"windows64" "280"
"linux" "281"
"linux64" "281"
}
"Weapon_GetSlot"
{
"windows" "278"
"windows64" "278"
"linux" "279"
"linux64" "279"
}
"Ignite"
{
"windows" "219"
"windows64" "219"
"linux" "220"
"linux64" "220"
}
"Extinguish"
{
"windows" "223"
"windows64" "223"
"linux" "224"
"linux64" "224"
}
"Teleport"
{
"windows" "113"
"windows64" "113"
"linux" "114"
"linux64" "114"
}
"CommitSuicide"
{
"windows" "453"
"windows64" "453"
"linux" "453"
"linux64" "453"
}
"GetVelocity"
{
"windows" "146"
"windows64" "146"
"linux" "147"
"linux64" "147"
}
"EyeAngles"
{
"windows" "137"
"windows64" "137"
"linux" "138"
"linux64" "138"
}
"SetEntityModel"
{
"windows" "26"
"windows64" "26"
"linux" "27"
"linux64" "27"
}
"AcceptInput"
{
"windows" "38"
"windows64" "38"
"linux" "39"
"linux64" "39"
}
"WeaponEquip"
{
"windows" "271"
"windows64" "271"
"linux" "272"
"linux64" "272"
}
"Activate"
{
"windows" "35"
"windows64" "35"
"linux" "36"
"linux64" "36"
}
"PlayerRunCmd"
{
"windows" "430"
"windows64" "430"
"linux" "431"
"linux64" "431"
}
"GiveAmmo"
{
"windows" "262"
"windows64" "262"
"linux" "263"
"linux64" "263"
}
"GetAttachment"
{
"windows" "215"
"windows64" "215"
"linux" "216"
"linux64" "216"
}
@ -127,30 +144,34 @@
}
}
/* CBaseEntityOutput::FireOutput */
"#default"
{
"Signatures"
{
"FireOutput"
{
/* CBaseEntityOutput::FireOutput */
/* String: "(%0.2f) output: (%s,%s) -> (%s,%s,%.1f)" */
"library" "server"
"windows" "\x55\x8B\xEC\x81\xEC\x40\x01\x00\x00\x8B\xC1"
"windows64" "\x48\x8B\xC4\x48\x89\x50\x10\x48\x89\x48\x08\x41\x54"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
"linux64" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
}
}
/* CBaseAnimating::LookupAttachment */
"#default"
{
"Signatures"
{
"LookupAttachment"
{
/* CBaseAnimating::LookupAttachment */
/* String: "vehicle_driver_eyes", middle length top function, with 4 calls, pick the first one. */
"library" "server"
"windows" "\x55\x8B\xEC\x56\x8B\xF1\x80\xBE\x2A\x03\x00\x00\x00\x75\x2A\x83\xBE\x2A\x04\x00\x00\x00\x75\x2A\xE8\x2A\x2A\x2A\x2A\x85\xC0\x74\x2A\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x8B\x86\x2A\x04\x00\x00\x85\xC0\x74\x2A\x83\x38\x00\x74\x2A\xFF\x75\x08\x50\xE8\x2A\x2A\x2A\x2A\x83\xC4\x08\x40"
"windows64" "\x48\x89\x5C\x24\x08\x57\x48\x83\xEC\x20\x80\xB9\x65\x04\x00\x00\x00\x48\x8B\xFA\x48\x8B\xD9\x75\x2A\x48\x83\xB9\xC0\x05\x00\x00\x00\x75\x2A\xE8\x2A\x2A\x2A\x2A\x48\x85\xC0\x74\x2A\x48\x8B\xCB\xE8\x2A\x2A\x2A\x2A\x48\x8B\x8B\xC0\x05\x00\x00\x48\x85\xC9\x74\x2A\x48\x83\x39\x00\x74\x2A\x48\x8B\xD7\xE8\x2A\x2A\x2A\x2A"
"linux" "@_ZN14CBaseAnimating16LookupAttachmentEPKc"
"linux64" "@_ZN14CBaseAnimating16LookupAttachmentEPKc"
}

View File

@ -17,85 +17,121 @@
{
"Burn"
{
/* CTFPlayerShared::Burn (No clone.)*/
/* String : -> "afterburn_immunity"*/
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x08\x56\x8B\xF1\x8B\x8E\x8C\x01\x00\x00\x8B\x01"
"windows64" "\x40\x53\x41\x54\x41\x56\x48\x83\xEC\x60"
"linux" "@_ZN15CTFPlayerShared4BurnEP9CTFPlayerP13CTFWeaponBasef"
"linux64" "@_ZN15CTFPlayerShared4BurnEP9CTFPlayerP13CTFWeaponBasef"
}
"RemoveDisguise"
{
/* CTFPlayerShared::RemoveDisguise*/
/* String : "reveal_disguised_victim_on_hit", follow the xref, RemoveDisguise is the subroutine that's called if the return value of CALL_ATTRIB_HOOK_INT( iRevealDisguisedSpyOnHit, reveal_disguised_victim_on_hit ); was true */
"library" "server"
"windows" "\x55\x8B\xEC\x51\x56\x8B\xF1\x57\xF7\x86\xD0\x00\x00\x00\x00\x00\x02\x00"
"windows64" "\x48\x89\x5C\x24\x10\x48\x89\x74\x24\x18\x57\x48\x83\xEC\x20\x48\x8B\xD9\xBA\x03\x00\x00\x00"
"linux" "@_ZN15CTFPlayerShared14RemoveDisguiseEv"
"linux64" "@_ZN15CTFPlayerShared14RemoveDisguiseEv"
}
"Disguise"
{
/* CTFPlayerShared::Disguise */
/* String : "disguise", follow the xref to function that involves a lot of other commands "uncloak", "taunt", "despawn"... CTFPlayerShared::Disguise is the only subroutine that is called with the return value of RandomInt */
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x24\x56\x57\x8B\xF9\x8B\x8F\x8C\x01\x00\x00"
"windows64" "\x40\x53\x55\x56\x57\x41\x54\x48\x81\xEC\x90\x00\x00\x00"
"linux" "@_ZN15CTFPlayerShared8DisguiseEiiP9CTFPlayerb"
"linux64" "@_ZN15CTFPlayerShared8DisguiseEiiP9CTFPlayerb"
}
"Regenerate"
{
/* CTFPlayer::Regenerate */
/* String : "item_meter_resupply_denied" -> guessing game on which one, should be the one with "player_regenerate"*/
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x5C\x53\x56\x57\x8B\xF9\x8B\x07"
"windows64" "\x48\x8B\xC4\x88\x50\x10\x48\x81\xEC\xE8\x00\x00\x00"
"linux" "@_ZN9CTFPlayer10RegenerateEb"
"linux64" "@_ZN9CTFPlayer10RegenerateEb"
}
"AddCondition"
{
/* CTFPlayerShared::AddCond */
/* String: "mult_medigun_overheal_decay" -> most bottom function, its called twice in the same "cube" of function*/
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x08\x56\x8B\xF1\x8B\x8E\x2A\x2A\x2A\x2A\x85\xC9\x0F\x84\x2A\x2A\x2A\x2A\x8B\x01\x8B"
"windows64" "\x48\x89\x5C\x24\x18\x48\x89\x7C\x24\x20\x41\x56\x48\x83\xEC\x40"
"linux" "@_ZN15CTFPlayerShared7AddCondE7ETFCondfP11CBaseEntity"
"linux64" "@_ZN15CTFPlayerShared7AddCondE7ETFCondfP11CBaseEntity"
}
"RemoveCondition"
{
/* CTFPlayerShared::RemoveCond */
/* String: "damage_prevented" */
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x08\x53\x8B\x5D\x08\x56\x53"
"windows64" "\x40\x53\x57\x41\x56\x48\x83\xEC\x20"
"linux" "@_ZN15CTFPlayerShared10RemoveCondE7ETFCondb"
"linux64" "@_ZN15CTFPlayerShared10RemoveCondE7ETFCondb"
}
"SetPowerplayEnabled"
{
/* CTFPlayer::SetPowerplayEnabled */
/* String: "scenes/player/pyro/low/1485.vcd" -> Main fuction -> That main function again.*/
"library" "server"
"windows" "\x55\x8B\xEC\x51\x80\x7D\x08\x00\x56\x57"
"windows64" "\x48\x89\x5C\x24\x08\x57\x48\x83\xEC\x20\x48\x8D\x99\x60\x28\x00\x00"
"linux" "@_ZN9CTFPlayer19SetPowerplayEnabledEb"
"linux64" "@_ZN9CTFPlayer19SetPowerplayEnabledEb"
}
"SetInWaitingForPlayers"
{
/* CTeamplayRoundBasedRules::SetInWaitingForPlayers */
/* String: "teamplay_restart_round" -> first call on the most bottom "cube" of function */
"library" "server"
"windows" "\x55\x8B\xEC\x51\x56\x8B\xF1\xE8\x2A\x2A\x2A\x2A\x84\xC0\x0F\x85\x2A\x2A\x2A\x2A"
"windows64" "\x48\x89\x5C\x24\x08\x57\x48\x83\xEC\x20\x0F\xB6\xFA\x48\x8B\xD9\xE8\x2A\x2A\x2A\x2A\x84\xC0\x0F\x85\x2A\x2A\x2A\x2A"
"linux" "@_ZN24CTeamplayRoundBasedRules22SetInWaitingForPlayersEb"
"linux64" "@_ZN24CTeamplayRoundBasedRules22SetInWaitingForPlayersEb"
}
"StunPlayer"
{
/* CTFPlayerShared::StunPlayer */
/* String: "player_stunned" */
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x24\x57\x8B\xF9\x8B\x87\xDC\x04\x00\x00"
"windows64" "\x40\x57\x41\x57\x48\x81\xEC\x98\x00\x00\x00"
"linux" "@_ZN15CTFPlayerShared10StunPlayerEffiP9CTFPlayer"
"linux64" "@_ZN15CTFPlayerShared10StunPlayerEffiP9CTFPlayer"
}
"MakeBleed"
{
/* CTFPlayerShared::MakeBleed */
/* String: "spell_batball_red" follow the xref to the function that also has "spell_batball_blue", in graph view, pick the node that validates the dynamic cast, MakeBleed is the only subroutine called in that node.*/
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x10\x53\x8B\xD9\x89\x5D\xF8\x8B\x8B\x8C\x01\x00\x00"
"windows64" "\x40\x56\x41\x55\x41\x57"
"linux" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasefibi"
"linux64" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasefibi"
}
"IsPlayerInDuel"
{
/* DuelMiniGame_IsInDuel */
/* String: "CTFPlayer::ForceChangeTeam( %d ) - invalid team index.\n", follow the xref, go back to the top of the subroutine, DuelMiniGame_IsInDuel is the subroutine that is called with 3 arguments and a constant value of 1.*/
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x08\x81\x65\x2A\x2A\x2A\x2A\x2A\x8D\x45\xF8\x8B\x4D\x08\xC6\x45\xFF\x00\x81\x65\x2A\x2A\x2A\x2A\x2A\x50\xC7\x45\x2A\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x84\xC0\x75\x04"
"windows64" "\x48\x83\xEC\x28\x81\x64\x24\x3C\xFF\xFF\x0F\xFF"
"linux" "@_Z21DuelMiniGame_IsInDuelP9CTFPlayer"
"linux64" "@_Z21DuelMiniGame_IsInDuelP9CTFPlayer"
}
"CanPlayerTeleport"
{
/* String: "bidirectional_teleport" follow the xref, pick the function that doesn't involve another attribute, follow the graph view after 2 virtual function call, the first subroutine call is CanPlayerTeleport*/
"library" "server"
"windows" "\x55\x8B\xEC\x53\x56\x57\x8B\x7D\x08\x8B\xD9\x85\xFF\x0F\x84\x2A\x2A\x2A\x2A"
"windows64" "\x48\x89\x5C\x24\x08\x48\x89\x74\x24\x10\x57\x48\x83\xEC\x20\x48\x8B\xFA\x48\x8B\xF1\x48\x85\xD2\x0F\x84\x2A\x2A\x2A\x2A\x45\x33\xC0"
"linux" "@_ZN17CObjectTeleporter21PlayerCanBeTeleportedEP9CTFPlayer"
"linux64" "@_ZN17CObjectTeleporter21PlayerCanBeTeleportedEP9CTFPlayer"
}
@ -114,18 +150,21 @@
"ForceRespawn"
{
"windows" "336"
"windows64" "336"
"linux" "337"
"linux64" "337"
}
"CalcIsAttackCriticalHelper"
{
"windows" "398"
"windows64" "398"
"linux" "405"
"linux64" "405"
}
"CalcIsAttackCriticalHelperNoCrits"
{
"windows" "399"
"windows64" "399"
"linux" "406"
"linux64" "406"
}
@ -134,6 +173,7 @@
"IsHolidayActive"
{
"windows" "139"
"windows64" "139"
"linux" "140"
"linux64" "140"
}
@ -141,6 +181,7 @@
"RemoveWearable"
{
"windows" "439"
"windows64" "439"
"linux" "440"
"linux64" "440"
}