diff --git a/gamedata/sdkhooks.games/game.pvkii.txt b/gamedata/sdkhooks.games/game.pvkii.txt index cfaae04e..7e11436d 100644 --- a/gamedata/sdkhooks.games/game.pvkii.txt +++ b/gamedata/sdkhooks.games/game.pvkii.txt @@ -1,119 +1,153 @@ "Games" { - /* Pirates, Vikings and Knights II 2.3 */ + /* Pirates, Vikings and Knights II */ "pvkii" { "Offsets" { + "Blocked" + { + "windows" "103" + "linux" "104" + "mac" "104" + } "EndTouch" { - "windows" "93" - "linux" "94" + "windows" "101" + "linux" "102" + "mac" "102" } "FireBullets" { - "windows" "105" - "linux" "106" + "windows" "113" + "linux" "114" + "mac" "114" + } + "GetMaxHealth" + { + "windows" "118" + "linux" "119" + "mac" "119" + } + "GroundEntChanged" + { + "windows" "178" + "linux" "180" + "mac" "180" } "OnTakeDamage" { - "windows" "61" - "linux" "62" + "windows" "63" + "linux" "64" + "mac" "64" + } + "OnTakeDamage_Alive" + { + "windows" "274" + "linux" "275" + "mac" "275" } "PreThink" { - "windows" "292" - "linux" "293" + "windows" "335" + "linux" "336" + "mac" "336" } "PostThink" { - "windows" "293" - "linux" "294" + "windows" "336" + "linux" "337" + "mac" "337" + } + "Reload" + { + "windows" "272" + "linux" "273" + "mac" "273" } "SetTransmit" { - "windows" "20" - "linux" "21" + "windows" "21" + "linux" "22" + "mac" "22" } "ShouldCollide" { - "windows" "15" - "linux" "16" + "windows" "16" + "linux" "17" + "mac" "17" } "Spawn" { - "windows" "22" - "linux" "23" + "windows" "23" + "linux" "24" + "mac" "24" } "StartTouch" { - "windows" "91" - "linux" "92" + "windows" "99" + "linux" "100" + "mac" "100" } "Think" { - "windows" "46" - "linux" "47" + "windows" "48" + "linux" "49" + "mac" "49" } "Touch" { - "windows" "92" - "linux" "93" + "windows" "100" + "linux" "101" + "mac" "101" } "TraceAttack" { - "windows" "59" - "linux" "60" - } - "UpdateOnRemove" - { - "windows" "98" - "linux" "99" + "windows" "61" + "linux" "62" + "mac" "62" } "Use" { - "windows" "90" - "linux" "91" + "windows" "98" + "linux" "99" + "mac" "99" } "VPhysicsUpdate" { - "windows" "145" - "linux" "146" + "windows" "158" + "linux" "159" + "mac" "159" } "Weapon_CanSwitchTo" { - "windows" "237" - "linux" "238" + "windows" "268" + "linux" "269" + "mac" "269" } "Weapon_CanUse" { - "windows" "231" - "linux" "232" + "windows" "262" + "linux" "263" + "mac" "263" } "Weapon_Drop" { - "windows" "234" - "linux" "235" + "windows" "265" + "linux" "266" + "mac" "266" } "Weapon_Equip" { - "windows" "232" - "linux" "233" + "windows" "263" + "linux" "264" + "mac" "264" } "Weapon_Switch" { - "windows" "235" - "linux" "236" - } - } - - "Signatures" - { - "IEntityFactoryDictionary" - { - "library" "server" - "windows" "\xB8\x01\x00\x00\x00\x84\x2A\x2A\x2A\x2A\x2A\x75\x1D\x09\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8\x2A\x2A\x2A\x2A\xC3" - "linux" "@_Z23EntityFactoryDictionaryv" + "windows" "266" + "linux" "267" + "mac" "267" } } } diff --git a/gamedata/sdktools.games/engine.ep2.txt b/gamedata/sdktools.games/engine.ep2.txt index 190bacde..07e9c9b2 100644 --- a/gamedata/sdktools.games/engine.ep2.txt +++ b/gamedata/sdktools.games/engine.ep2.txt @@ -18,10 +18,8 @@ { "game" "ageofchivalry" "game" "bg2" - "game" "pvkii" "game" "gesource" "game" "fas" - "game" "fistful_of_frags" "game" "cspromod" "game" "ag2" } @@ -71,8 +69,6 @@ "#supported" { "game" "ageofchivalry" - "game" "pvkii" - "game" "fistful_of_frags" "game" "cspromod" "game" "ag2" } @@ -97,12 +93,10 @@ "game" "ageofchivalry" "game" "zps" "game" "bg2" - "game" "pvkii" "game" "gesource" "game" "RnLBeta" "game" "obsidian" "game" "fas" - "game" "fistful_of_frags" "game" "cspromod" "game" "ag2" } diff --git a/gamedata/sdktools.games/engine.sdk2013.txt b/gamedata/sdktools.games/engine.sdk2013.txt index f0a13025..f6a1fbc3 100644 --- a/gamedata/sdktools.games/engine.sdk2013.txt +++ b/gamedata/sdktools.games/engine.sdk2013.txt @@ -11,6 +11,32 @@ "Games" { + /* General Temp Entities */ + "#default" + { + "Offsets" + { + "GetTEName" + { + "windows" "4" + "linux" "4" + "mac" "4" + } + "GetTENext" + { + "windows" "8" + "linux" "8" + "mac" "8" + } + "TE_GetServerClass" + { + "windows" "0" + "linux" "0" + "mac" "0" + } + } + } + /* IServer interface pointer */ "#default" { diff --git a/gamedata/sdktools.games/game.pvkii.txt b/gamedata/sdktools.games/game.pvkii.txt index 3f5120f3..85430473 100644 --- a/gamedata/sdktools.games/game.pvkii.txt +++ b/gamedata/sdktools.games/game.pvkii.txt @@ -12,6 +12,59 @@ "Games" { /* Pirates, Vikings and Knights II */ + + /* GameRules */ + "#default" + { + "Offsets" + { + /* Offset into CreateGameRulesObject */ + "g_pGameRules" + { + "windows" "5" + "linux" "9" + } + } + + "Signatures" + { + /* This signature sometimes has multiple matches, but this + * does not matter as g_pGameRules is involved in all of them. + * The same g_pGameRules offset applies to each match. + * + * Sometimes this block of bytes is at the beginning of the static + * CreateGameRulesObject function and sometimes it is in the middle + * of an entirely different function. This depends on the game. + */ + "CreateGameRulesObject" + { + "library" "server" + "windows" "\x55\x8B\xEC\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x07" + "linux" "\x55\x89\xE5\x56\x53\x83\xEC\x2A\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x85\xC0\x74\x08\x8B\x10\x89" + } + "g_pGameRules" + { + "library" "server" + "mac" "@g_pGameRules" + } + } + } + + /* CBaseEntityOutput::FireOutput */ + "pvkii" + { + "Signatures" + { + "FireOutput" + { + "library" "server" + "windows" "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\x53\x8B\xC1\xC7\x2A\x2A\x2A\x2A\x2A\x00\x56\x57\x89" + "linux" "\x55\x89\xE5\x57\x56\x53\x81\xEC\x2A\x2A\x2A\x2A\x8B\x55\x08\x8B\x75\x14\x8B\x5A\x14\x85\xDB\x0F\x84" + "mac" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" + } + } + } + "pvkii" { "Offsets" @@ -19,80 +72,101 @@ /* CBasePlayer */ "GiveNamedItem" { - "windows" "354" - "linux" "355" + "windows" "403" + "linux" "404" + "mac" "404" } "RemovePlayerItem" { - "windows" "241" - "linux" "242" + "windows" "272" + "linux" "273" + "mac" "273" } "Weapon_GetSlot" { - "windows" "239" - "linux" "240" + "windows" "270" + "linux" "271" + "mac" "271" } "Ignite" { - "windows" "196" - "linux" "197" + "windows" "211" + "linux" "212" + "mac" "212" } "Extinguish" { - "windows" "200" - "linux" "201" + "windows" "215" + "linux" "216" + "mac" "216" } "Teleport" { - "windows" "101" - "linux" "102" + "windows" "109" + "linux" "110" + "mac" "110" } "CommitSuicide" { - "windows" "395" - "linux" "395" + "windows" "442" + "linux" "442" + "mac" "442" } "GetVelocity" { - "windows" "131" - "linux" "132" + "windows" "141" + "linux" "142" + "mac" "142" } "EyeAngles" { - "windows" "123" - "linux" "124" + "windows" "132" + "linux" "133" + "mac" "133" } "AcceptInput" { - "windows" "35" - "linux" "36" + "windows" "37" + "linux" "38" + "mac" "38" } "SetEntityModel" { - "windows" "24" - "linux" "25" + "windows" "25" + "linux" "26" + "mac" "26" } "WeaponEquip" { - "windows" "232" - "linux" "233" + "windows" "263" + "linux" "264" + "mac" "264" } "Activate" { - "windows" "32" - "linux" "33" + "windows" "34" + "linux" "35" + "mac" "35" } "PlayerRunCmd" { - "windows" "374" - "linux" "375" + "windows" "421" + "linux" "422" + "mac" "422" } - "FireOutputBackup" + "GiveAmmo" { - "windows" "6" - "linux" "10" + "windows" "254" + "linux" "255" + "mac" "255" } } + + "Keys" + { + "GameRulesProxy" "CPVK2GameRulesProxy" + } + "Signatures" { "FireOutput"