From 7248ad9aba2f9b5a8349eb1ca2c43486fc827250 Mon Sep 17 00:00:00 2001 From: Nicholas Hastings Date: Sun, 20 Apr 2014 21:38:40 -0400 Subject: [PATCH] Update Nuclear Dawn gamedata. --- gamedata/sdkhooks.games/game.nucleardawn.txt | 56 ++++++------ gamedata/sdktools.games/engine.l4d2.txt | 5 ++ gamedata/sdktools.games/game.nucleardawn.txt | 95 +++++++++++++------- 3 files changed, 98 insertions(+), 58 deletions(-) diff --git a/gamedata/sdkhooks.games/game.nucleardawn.txt b/gamedata/sdkhooks.games/game.nucleardawn.txt index b20d9fcf..a5432dd0 100644 --- a/gamedata/sdkhooks.games/game.nucleardawn.txt +++ b/gamedata/sdkhooks.games/game.nucleardawn.txt @@ -24,9 +24,9 @@ } "GroundEntChanged" { - "windows" "198" - "linux" "199" - "mac" "199" + "windows" "199" + "linux" "200" + "mac" "200" } "OnTakeDamage" { @@ -35,22 +35,22 @@ "mac" "73" } "PreThink" - { - "windows" "367" - "linux" "368" - "mac" "368" - } - "PostThink" { "windows" "368" "linux" "369" "mac" "369" } + "PostThink" + { + "windows" "369" + "linux" "370" + "mac" "370" + } "Reload" { - "windows" "291" - "linux" "292" - "mac" "292" + "windows" "292" + "linux" "293" + "mac" "293" } "SetTransmit" { @@ -114,34 +114,34 @@ } "Weapon_CanSwitchTo" { - "windows" "296" - "linux" "297" - "mac" "297" + "windows" "297" + "linux" "298" + "mac" "298" } "Weapon_CanUse" - { - "windows" "290" - "linux" "291" - "mac" "291" - } - "Weapon_Drop" - { - "windows" "293" - "linux" "294" - "mac" "294" - } - "Weapon_Equip" { "windows" "291" "linux" "292" "mac" "292" } - "Weapon_Switch" + "Weapon_Drop" { "windows" "294" "linux" "295" "mac" "295" } + "Weapon_Equip" + { + "windows" "292" + "linux" "293" + "mac" "293" + } + "Weapon_Switch" + { + "windows" "295" + "linux" "296" + "mac" "296" + } } "Signatures" diff --git a/gamedata/sdktools.games/engine.l4d2.txt b/gamedata/sdktools.games/engine.l4d2.txt index 016832cf..1a0a3090 100644 --- a/gamedata/sdktools.games/engine.l4d2.txt +++ b/gamedata/sdktools.games/engine.l4d2.txt @@ -82,6 +82,11 @@ /* SetUserInfo data */ "#default" { + "#supported" + { + "game" "left4dead2" + } + "Offsets" { /** diff --git a/gamedata/sdktools.games/game.nucleardawn.txt b/gamedata/sdktools.games/game.nucleardawn.txt index 7e10d35b..fefe5cd5 100644 --- a/gamedata/sdktools.games/game.nucleardawn.txt +++ b/gamedata/sdktools.games/game.nucleardawn.txt @@ -10,7 +10,7 @@ /* Offset into CBaseTempEntity constructor */ "s_pTempEntities" { - "windows" "17" + "windows" "19" } "GetTEName" { @@ -37,7 +37,7 @@ "CBaseTempEntity" { "library" "server" - "windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00" + "windows" "\x55\x8B\xEC\x8B\xC1\x8B\x4D\x08\xC7\x2A\x2A\x2A\x2A\x2A\x89\x48\x04\x8B" } "s_pTempEntities" { @@ -63,7 +63,7 @@ "FindEntityByClassname" { "library" "server" - "windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x85\xC9\x57\x74\x19\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x83\xC0\x01\xC1\xE0\x04\x8B\x3C\x30\xEB\x06\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x39\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x03" + "windows" "\x55\x8B\xEC\x53\x56\x8B\xF1\x8B\x4D\x08\x57\x85\xC9\x74\x16\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x40\x03\xC0\x8B\x3C\xC6\xEB\x06\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x31\x8B" "linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" "mac" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" } @@ -83,7 +83,7 @@ * the expected code. A pointer to sv (IServer interface) is used * here. */ - "CreateFakeClient_Windows" "\x8B\x44\x24\x2A\x50\xB9\x2A\x2A\x2A\x2A\xE8" + "CreateFakeClient_Windows" "\x55\x8B\xEC\x8B\x45\x08\x50\xB9" } "Offsets" @@ -91,7 +91,7 @@ /* Offset into IVEngineServer::CreateFakeClient */ "sv" { - "windows" "6" + "windows" "8" } } @@ -107,39 +107,74 @@ } } + /* SetUserInfo data */ + "#default" + { + "Offsets" + { + /** + * CBaseClient::SetUserCVar(char const*,char const*); + * Linux offset straight from VTable dump. + * Windows offset is crazy. Found the windows SetName function using string "(%d)%-.*s" (aD_S in IDA) + * Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1) + */ + "SetUserCvar" + { + /* Not 100% sure on this, why would windows change and not linux - TEST ME */ + "windows" "17" + "linux" "63" + "mac" "63" + } + /** + * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. + * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. + * Linux: mov byte ptr [esi+0B0h], 0 + * Win: mov byte ptr [esi+0B0h], 0 + * + * L4D2: This has been moved into CBaseClient::UpdateUserSettings(), rest of the details are still relevant. + */ + "InfoChanged" + { + "windows" "164" + "linux" "164" + "mac" "164" + } + } + } + "nucleardawn" { "Offsets" { "GiveNamedItem" { - "windows" "442" - "linux" "443" - "mac" "443" + "windows" "443" + "linux" "444" + "mac" "444" } "RemovePlayerItem" { - "windows" "300" - "linux" "301" - "mac" "301" + "windows" "301" + "linux" "302" + "mac" "302" } "Weapon_GetSlot" { - "windows" "298" - "linux" "299" - "mac" "299" + "windows" "299" + "linux" "300" + "mac" "300" } "Ignite" { - "windows" "233" - "linux" "234" - "mac" "234" + "windows" "234" + "linux" "235" + "mac" "235" } "Extinguish" { - "windows" "236" - "linux" "237" - "mac" "237" + "windows" "237" + "linux" "238" + "mac" "238" } "Teleport" { @@ -149,9 +184,9 @@ } "CommitSuicide" { - "windows" "487" - "linux" "487" - "mac" "487" + "windows" "488" + "linux" "488" + "mac" "488" } "GetVelocity" { @@ -179,9 +214,9 @@ } "WeaponEquip" { - "windows" "291" - "linux" "292" - "mac" "292" + "windows" "292" + "linux" "293" + "mac" "293" } "Activate" { @@ -191,9 +226,9 @@ } "PlayerRunCmd" { - "windows" "465" - "linux" "466" - "mac" "466" + "windows" "466" + "linux" "467" + "mac" "467" } } @@ -207,7 +242,7 @@ "FireOutput" { "library" "server" - "windows" "\x81\x2A\x2A\x2A\x2A\x2A\x53\x55\x56\x8B\x2A\x2A\x85" + "windows" "\x55\x8B\xEC\x83\xEC\x14\xD9\x45\x10\x8B\x45\x0C\x56\x8B" "linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" "mac" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f" }