New gamedata organization (bug 3546, r=ds,pred).

This commit is contained in:
David Anderson
2009-01-12 02:28:22 -05:00
parent bc3491c5bd
commit e31cbbfe21
30 changed files with 2873 additions and 2567 deletions
-180
View File
@@ -1,180 +0,0 @@
"Games"
{
"#default"
{
"Offsets"
{
"GetDataDescMap"
{
"windows" "13"
"linux" "14"
}
"m_lifeState"
{
"class" "CBasePlayer"
"prop" "m_lifeState"
}
}
}
"dod"
{
"Keys"
{
"RadioMenuTimeout" "4"
}
"Offsets"
{
"GetDataDescMap"
{
"windows" "11"
"linux" "12"
}
}
}
"ship"
{
"Offsets"
{
"GetDataDescMap"
{
"windows" "18"
"linux" "19"
}
}
}
"tf"
{
"Offsets"
{
"GetDataDescMap"
{
"windows" "11"
"linux" "12"
}
}
}
"ageofchivalry"
{
"Keys"
{
"RadioMenuTimeout" "4"
}
"Offsets"
{
"GetDataDescMap"
{
"windows" "11"
"linux" "12"
}
}
}
"left4dead"
{
"Offsets"
{
"GetDataDescMap"
{
"windows" "11"
"linux" "12"
}
}
}
/**
* Which games support ShowMenu?
*/
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "dod"
"game" "sourceforts"
"game" "insurgency"
"game" "Insurgency"
"game" "tf"
"game" "pvkii"
"game" "diprip"
"game" "synergy"
"game" "FortressForever"
"game" "left4dead"
"game" "ageofchivalry"
"game" "obsidian"
}
"Keys"
{
"HudRadioMenuMsg" "ShowMenu"
}
}
/**
* Which games support HudMsg?
*/
"#default"
{
"#supported"
{
"game" "hl2mp"
"game" "sourceforts"
"game" "tf"
"game" "ageofchivalry"
"game" "obsidian"
}
"Keys"
{
"HudTextMsg" "HudMsg"
}
}
/**
* Which games use an extra byte in the HintText
* message? Even though it's in the SDK, apparently
* only CS:S does this right now.
*/
"#default"
{
"#supported"
{
"game" "cstrike"
}
"Keys"
{
"HintTextPreByte" "yes"
}
}
"cstrike"
{
"Keys"
{
"GameExtension" "game.cstrike"
}
}
"tf"
{
"Keys"
{
"GameExtension" "game.tf2"
"RadioMenuTimeout" "4"
}
}
"synergy"
{
"Keys"
{
"RadioMenuTimeout" "4"
}
}
}
+143
View File
@@ -0,0 +1,143 @@
"Games"
{
"#default"
{
"Offsets"
{
"m_lifeState"
{
"class" "CBasePlayer"
"prop" "m_lifeState"
}
}
}
/* Original engine specifics */
"#default"
{
"#supported"
{
"engine" "original"
}
"Offsets"
{
"GetDataDescMap"
{
"windows" "13"
"linux" "14"
}
}
}
/* OB/L4D engine specifics */
"#default"
{
"#supported"
{
"engine" "orangebox"
"engine" "left4dead"
}
"Offsets"
{
"GetDataDescMap"
{
"windows" "11"
"linux" "12"
}
}
}
/* The Ship is completely different */
"ship"
{
"Offsets"
{
"GetDataDescMap"
{
"windows" "18"
"linux" "19"
}
}
}
/* Which games support ShowMenu? */
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "dod"
"game" "sourceforts"
"game" "insurgency"
"game" "tf"
"game" "pvkii"
"game" "diprip"
"game" "synergy"
"game" "FortressForever"
"game" "left4dead"
"game" "obsidian"
"game" "ageofchivalry"
}
"Keys"
{
"HudRadioMenuMsg" "ShowMenu"
}
}
/* Which games need a radio menu timeout? */
"#default"
{
"#supported"
{
"game" "tf"
"game" "synergy"
"game" "dod"
"game" "ageofchivalry"
}
"Keys"
{
"RadioMenuTimeout" "4"
}
}
/**
* Which games support HudMsg?
*/
"#default"
{
"#supported"
{
"game" "hl2mp"
"game" "sourceforts"
"game" "tf"
"game" "ageofchivalry"
"game" "obsidian"
}
"Keys"
{
"HudTextMsg" "HudMsg"
}
}
"cstrike"
{
"Keys"
{
"HintTextPreByte" "yes"
"GameExtension" "game.cstrike"
}
}
"tf"
{
"Keys"
{
"GameExtension" "game.tf2"
}
}
}
+6
View File
@@ -0,0 +1,6 @@
"Game Master"
{
"common.games.txt"
{
}
}
-635
View File
@@ -1,635 +0,0 @@
"Games"
{
/* Sounds */
"#default"
{
"Keys"
{
"SlapSoundCount" "3"
"SlapSound1" "player/pl_fallpain1.wav"
"SlapSound2" "player/pl_fallpain3.wav"
"SlapSound3" "player/pl_pain5.wav"
"m_iFrags" "m_iFrags"
}
"Offsets"
{
"m_iHealth"
{
"class" "CBasePlayer"
"prop" "m_iHealth"
}
"m_lifeState"
{
"class" "CBasePlayer"
"prop" "m_lifeState"
}
}
}
/* General Temp Entities */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Offsets"
{
/* Offset into CBaseTempEntity constructor */
"s_pTempEntities"
{
"windows" "17"
}
"GetTEName"
{
"windows" "4"
"linux" "4"
}
"GetTENext"
{
"windows" "8"
"linux" "8"
}
"TE_GetServerClass"
{
"windows" "0"
"linux" "0"
}
}
"Signatures"
{
"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"
}
"s_pTempEntities"
{
"library" "server"
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
}
}
}
/* Create Entity Signatures */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Signatures"
{
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x64\x8B\xCB"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
}
}
}
/* CGlobalEntityList */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Offsets"
{
/* Offset into LevelShutdown */
"gEntList"
{
"windows" "11"
}
}
"Signatures"
{
"LevelShutdown"
{
"library" "server"
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
}
"gEntList"
{
"library" "server"
"linux" "@gEntList"
}
/* Functions in CGlobalEntityList */
"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"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
}
}
/* General GameRules */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Offsets"
{
/* Offset into CreateGameRulesObject */
"g_pGameRules"
{
"windows" "2"
}
}
"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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
}
"g_pGameRules"
{
"library" "server"
"linux" "@g_pGameRules"
}
}
}
/* IServer interface pointer */
"#default"
{
"Offsets"
{
/* Offset into IVEngineServer::CreateFakeClient */
"sv"
{
"windows" "6"
}
}
"Signatures"
{
/* CBaseServer object for IServer interface */
"sv"
{
"library" "engine"
"linux" "@sv"
}
}
}
/* EntityFactoryDictionary function */
"#default"
{
"Signatures"
{
"EntityFactory"
{
"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"
}
}
}
/* CBaseEntityOutput::FireOutput */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Signatures"
{
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
}
"Offsets"
{
"FireOutputBackup"
{
"windows" "6"
"linux" "10"
}
}
}
/* 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)%-0.*s"
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
*/
"SetUserCvar"
{
"windows" "17"
"linux" "55"
}
/**
* 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+98h], 0
* Win: mov byte ptr [esi+0A4h], 0
*/
"InfoChanged"
{
"windows" "164"
"linux" "152"
}
}
}
/* Team Fortress 2 */
"tf"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "406"
"linux" "410"
}
"RemovePlayerItem"
{
"windows" "238"
"linux" "239"
}
"Weapon_GetSlot"
{
"windows" "236"
"linux" "237"
}
"Ignite"
{
"windows" "193"
"linux" "194"
}
"Extinguish"
{
"windows" "197"
"linux" "198"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "388"
"linux" "388"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"WeaponEquip"
{
"windows" "229"
"linux" "230"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
/* Day of Defeat: Source */
"dod"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "350"
"linux" "351"
}
"RemovePlayerItem"
{
"windows" "238"
"linux" "239"
}
"Weapon_GetSlot"
{
"windows" "236"
"linux" "237"
}
"Ignite"
{
"windows" "193"
"linux" "194"
}
"Extinguish"
{
"windows" "197"
"linux" "198"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "388"
"linux" "388"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "229"
"linux" "230"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
/* Afe of Chivalry */
"ageofchivalry"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "351"
"linux" "352"
}
"RemovePlayerItem"
{
"windows" "239"
"linux" "240"
}
"Weapon_GetSlot"
{
"windows" "237"
"linux" "238"
}
"Ignite"
{
"windows" "194"
"linux" "195"
}
"Extinguish"
{
"windows" "198"
"linux" "199"
}
"Teleport"
{
"windows" "101"
"linux" "102"
}
"CommitSuicide"
{
"windows" "389"
"linux" "389"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "230"
"linux" "231"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
/* Obsidian Conflict 1.3 */
"obsidian"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "350"
"linux" "351"
}
"RemovePlayerItem"
{
"windows" "237"
"linux" "238"
}
"Weapon_GetSlot"
{
"windows" "235"
"linux" "236"
}
"Ignite"
{
"windows" "190"
"linux" "191"
}
"Extinguish"
{
"windows" "194"
"linux" "195"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "393"
"linux" "393"
}
"GetVelocity"
{
"windows" "127"
"linux" "128"
}
"EyeAngles"
{
"windows" "119"
"linux" "120"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "228"
"linux" "229"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
}
File diff suppressed because it is too large Load Diff
+37
View File
@@ -0,0 +1,37 @@
"Games"
{
/* Sounds */
"#default"
{
"Keys"
{
"SlapSoundCount" "3"
"SlapSound1" "player/pl_fallpain1.wav"
"SlapSound2" "player/pl_fallpain3.wav"
"SlapSound3" "player/pl_pain5.wav"
}
}
/* Properties */
"#default"
{
"Keys"
{
"m_iFrags" "m_iFrags"
}
"Offsets"
{
"m_iHealth"
{
"class" "CBasePlayer"
"prop" "m_iHealth"
}
"m_lifeState"
{
"class" "CBasePlayer"
"prop" "m_lifeState"
}
}
}
}
+288
View File
@@ -0,0 +1,288 @@
"Games"
{
/* General Temp Entities */
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "hl2mp"
"game" "ship"
"game" "!Dystopia"
"game" "insurgency"
"game" "pvkii"
"game" "sourceforts"
"game" "FortressForever"
"game" "empires"
"game" "synergy"
"game" "hidden"
"game" "zombie_master"
}
"Offsets"
{
/* Offset into CBaseTempEntity constructor */
"s_pTempEntities"
{
"windows" "17"
}
"GetTEName"
{
"windows" "4"
"linux" "4"
}
"GetTENext"
{
"windows" "8"
"linux" "8"
}
"TE_GetServerClass"
{
"windows" "1"
"linux" "1"
}
}
"Signatures"
{
"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"
}
"s_pTempEntities"
{
"library" "server"
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
}
}
}
/* General GameRules */
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "garrysmod"
"game" "hl2mp"
"game" "ship"
"game" "!Dystopia"
"game" "insurgency"
"game" "pvkii"
"game" "sourceforts"
"game" "FortressForever"
"game" "empires"
"game" "synergy"
"game" "hidden"
}
"Offsets"
{
/* Offset into CreateGameRulesObject */
"g_pGameRules"
{
"windows" "2"
}
}
"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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50"
}
"g_pGameRules"
{
"library" "server"
"linux" "@g_pGameRules"
}
}
}
/* CGlobalEntityList */
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "garrysmod"
"game" "hl2mp"
"game" "ship"
"game" "insurgency"
"game" "pvkii"
"game" "sourceforts"
"game" "FortressForever"
"game" "empires"
"game" "synergy"
"game" "hidden"
"game" "zombie_master"
}
"Offsets"
{
/* Offset into LevelShutdown */
"gEntList"
{
"windows" "11"
}
}
"Signatures"
{
"LevelShutdown"
{
"library" "server"
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
}
"gEntList"
{
"library" "server"
"linux" "@gEntList"
}
/* Functions in CGlobalEntityList */
"FindEntityByClassname"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x85\xC9\x57\x74\x2A\x8B\x01\xFF\x50\x2A\x8B\x08\x81\xE1\x2A\x2A\x2A\x2A\x83\xC1\x2A\xC1\xE1\x2A\x8B\x3C\x31\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x24\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\x9B\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
}
}
/* Create Entity Signatures */
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "hl2mp"
"game" "insurgency"
"game" "pvkii"
"game" "sourceforts"
"game" "empires"
"game" "synergy"
"game" "hidden"
"game" "FortressForever"
}
"Signatures"
{
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\xCB\xFF\x50\x60"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x25\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x56\xFF\x50\x54\x85\xC0"
}
}
}
/* IServer interface pointer */
"#default"
{
"Offsets"
{
/* Offset into IVEngineServer::CreateFakeClient */
"sv"
{
"windows" "6"
}
}
"Signatures"
{
/* CBaseServer object for IServer interface */
"sv"
{
"library" "engine"
"linux" "@sv"
}
}
}
/* EntityFactoryDictionary function */
"#default"
{
"Signatures"
{
"EntityFactory"
{
"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"
}
}
}
/* CBaseEntityOutput::FireOutput */
"#default"
{
"#supported"
{
"game" "cstrike"
"game" "hl2mp"
}
"Signatures"
{
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x1C\x03\x00\x00\x53\x55\x56\x8B\x71\x14"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
}
"Offsets"
{
"FireOutputBackup"
{
"windows" "6"
"linux" "6"
}
}
}
/* 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)%-0.*s"
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
*/
"SetUserCvar"
{
"windows" "17"
"linux" "53"
}
/**
* 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+98h], 0
* Win: mov byte ptr [esi+0A4h], 0
*/
"InfoChanged"
{
"windows" "164"
"linux" "152"
}
}
}
}
+257
View File
@@ -0,0 +1,257 @@
"Games"
{
/* General Temp Entities */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Offsets"
{
/* Offset into CBaseTempEntity constructor */
"s_pTempEntities"
{
"windows" "17"
}
"GetTEName"
{
"windows" "4"
"linux" "4"
}
"GetTENext"
{
"windows" "8"
"linux" "8"
}
"TE_GetServerClass"
{
"windows" "0"
"linux" "0"
}
}
"Signatures"
{
"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"
}
"s_pTempEntities"
{
"library" "server"
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
}
}
}
/* Create Entity Signatures */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Signatures"
{
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x64\x8B\xCB"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
}
}
}
/* CGlobalEntityList */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Offsets"
{
/* Offset into LevelShutdown */
"gEntList"
{
"windows" "11"
}
}
"Signatures"
{
"LevelShutdown"
{
"library" "server"
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
}
"gEntList"
{
"library" "server"
"linux" "@gEntList"
}
/* Functions in CGlobalEntityList */
"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"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
}
}
/* General GameRules */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Offsets"
{
/* Offset into CreateGameRulesObject */
"g_pGameRules"
{
"windows" "2"
}
}
"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" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
}
"g_pGameRules"
{
"library" "server"
"linux" "@g_pGameRules"
}
}
}
/* IServer interface pointer */
"#default"
{
"Offsets"
{
/* Offset into IVEngineServer::CreateFakeClient */
"sv"
{
"windows" "6"
}
}
"Signatures"
{
/* CBaseServer object for IServer interface */
"sv"
{
"library" "engine"
"linux" "@sv"
}
}
}
/* EntityFactoryDictionary function */
"#default"
{
"Signatures"
{
"EntityFactory"
{
"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"
}
}
}
/* CBaseEntityOutput::FireOutput */
"#default"
{
"#supported"
{
"game" "dod"
"game" "tf"
"game" "ageofchivalry"
}
"Signatures"
{
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
}
"Offsets"
{
"FireOutputBackup"
{
"windows" "6"
"linux" "10"
}
}
}
/* 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)%-0.*s"
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
*/
"SetUserCvar"
{
"windows" "17"
"linux" "55"
}
/**
* 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+98h], 0
* Win: mov byte ptr [esi+0A4h], 0
*/
"InfoChanged"
{
"windows" "164"
"linux" "152"
}
}
}
}
@@ -8,20 +8,6 @@
"SlapSoundCount" "2"
"SlapSound1" "player/damage1.wav"
"SlapSound2" "player/damage2.wav"
"m_iFrags" "m_iFrags"
}
"Offsets"
{
"m_iHealth"
{
"class" "CBasePlayer"
"prop" "m_iHealth"
}
"m_lifeState"
{
"class" "CBasePlayer"
"prop" "m_lifeState"
}
}
}
+90
View File
@@ -0,0 +1,90 @@
"Games"
{
/* Age of Chivalry */
"ageofchivalry"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "351"
"linux" "352"
}
"RemovePlayerItem"
{
"windows" "239"
"linux" "240"
}
"Weapon_GetSlot"
{
"windows" "237"
"linux" "238"
}
"Ignite"
{
"windows" "194"
"linux" "195"
}
"Extinguish"
{
"windows" "198"
"linux" "199"
}
"Teleport"
{
"windows" "101"
"linux" "102"
}
"CommitSuicide"
{
"windows" "389"
"linux" "389"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "230"
"linux" "231"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
}
+98
View File
@@ -0,0 +1,98 @@
"Games"
{
/* Counter-Strike: Source */
"cstrike"
{
"Keys"
{
"SlapSoundCount" "3"
"SlapSound1" "player/damage1.wav"
"SlapSound2" "player/damage2.wav"
"SlapSound3" "player/damage3.wav"
}
"Offsets"
{
"GiveNamedItem"
{
"windows" "329"
"linux" "330"
}
"RemovePlayerItem"
{
"windows" "226"
"linux" "227"
}
"Weapon_GetSlot"
{
"windows" "224"
"linux" "225"
}
"Ignite"
{
"windows" "188"
"linux" "189"
}
"Extinguish"
{
"windows" "189"
"linux" "190"
}
"Teleport"
{
"windows" "98"
"linux" "99"
}
"CommitSuicide"
{
"windows" "357"
"linux" "358"
}
"GetVelocity"
{
"windows" "126"
"linux" "127"
}
"EyeAngles"
{
"windows" "118"
"linux" "119"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "217"
"linux" "218"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
}
}
+90
View File
@@ -0,0 +1,90 @@
"Games"
{
/* Day of Defeat: Source */
"dod"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "350"
"linux" "351"
}
"RemovePlayerItem"
{
"windows" "238"
"linux" "239"
}
"Weapon_GetSlot"
{
"windows" "236"
"linux" "237"
}
"Ignite"
{
"windows" "193"
"linux" "194"
}
"Extinguish"
{
"windows" "197"
"linux" "198"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "388"
"linux" "388"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "229"
"linux" "230"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
}
+125
View File
@@ -0,0 +1,125 @@
"Games"
{
/* Dsytopia */
"!Dystopia"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "331"
"linux" "332"
}
"RemovePlayerItem"
{
"windows" "229"
"linux" "230"
}
"Weapon_GetSlot"
{
"windows" "227"
"linux" "228"
}
"Ignite"
{
"windows" "191"
"linux" "192"
}
"Extinguish"
{
"windows" "192"
"linux" "193"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "360"
"linux" "361"
}
"GetVelocity"
{
"windows" "128"
"linux" "129"
}
"EyeAngles"
{
"windows" "120"
"linux" "121"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "220"
"linux" "221"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
/* Offset into CBaseTempEntity constructor.
* On Windows Dsytopia is heavily inlined; we use the function
* surrounding "aCouldnTFindTem" in IDA instead.
*/
"s_pTempEntities"
{
"windows" "70"
}
}
"Signatures"
{
/* On Windows Dsytopia is heavily inlined; we use the function
* surrounding "aCouldnTFindTem" in IDA instead.
*/
"CBaseTempEntity"
{
"library" "server"
"windows" "\x81\xEC\x84\x00\x00\x00\x56\x8B\xF1\x8B\x46\x6C\x57\x8D\x7E\x6C\x8D\x4C\x24\x08\x83\xC8\x20\x51\x89\x44\x24\x0C\xE8\x2A\x2A\x2A"
}
/* Dystopia always has to be different, doesn't it
*
* This is very similar to the general signature, except that
* it does "mov edx, [eax+2Ch]" before making a call rather than
* doing "call dword ptr [eax+2Ch]"
*/
"CreateGameRulesObject"
{
"library" "server"
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
}
}
}
}
+106
View File
@@ -0,0 +1,106 @@
"Games"
{
/* Empires 2 */
"empires"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "332"
"linux" "333"
}
"RemovePlayerItem"
{
"windows" "230"
"linux" "231"
}
"Weapon_GetSlot"
{
"windows" "228"
"linux" "229"
}
"Ignite"
{
"windows" "192"
"linux" "193"
}
"Extinguish"
{
"windows" "193"
"linux" "194"
}
"Teleport"
{
"windows" "102"
"linux" "103"
}
"CommitSuicide"
{
"windows" "360"
"linux" "361"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "36"
"linux" "37"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "221"
"linux" "222"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
/* Offset into LevelShutdown for CGlobalEntList */
"gEntList"
{
"windows" "64"
}
}
"Signatures"
{
"LevelShutdown"
{
"library" "server"
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2B\x56\xE8\x2A\x2A\x2A\x2A\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x8B\xF1\x74\x0E"
}
}
}
}
+114
View File
@@ -0,0 +1,114 @@
"Games"
{
/* Fortress Forever */
"FortressForever"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "338"
"linux" "339"
}
"RemovePlayerItem"
{
"windows" "236"
"linux" "237"
}
"Weapon_GetSlot"
{
"windows" "234"
"linux" "235"
}
"Ignite"
{
"windows" "198"
"linux" "199"
}
"Extinguish"
{
"windows" "199"
"linux" "200"
}
"Teleport"
{
"windows" "104"
"linux" "105"
}
"CommitSuicide"
{
"windows" "366"
"linux" "367"
}
"GetVelocity"
{
"windows" "136"
"linux" "137"
}
"EyeAngles"
{
"windows" "128"
"linux" "129"
}
"AcceptInput"
{
"windows" "39"
"linux" "40"
}
"DispatchKeyValue"
{
"windows" "35"
"linux" "34"
}
"DispatchKeyValueFloat"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValueVector"
{
"windows" "33"
"linux" "36"
}
"SetEntityModel"
{
"windows" "27"
"linux" "28"
}
"WeaponEquip"
{
"windows" "227"
"linux" "228"
}
"Activate"
{
"windows" "36"
"linux" "37"
}
}
"Signatures"
{
"CreateGameRulesObject"
{
"library" "server"
"windows" "8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x09\x8B\x01\x8B\x50\x2C\x6A\x01"
}
"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\x04\x00\x01\x00\x85\xFF\x74\x39\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x03"
}
"DispatchSpawn"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x60\x8B\xCB"
}
"CreateEntityByName"
{
"library" "server"
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
}
}
}
}
@@ -0,0 +1,66 @@
"Games"
{
/* Garry's Mod 10 - Windows only
* This mod is not officially supported, and the definitions are
* for Garry's Mod pre-Orange Box.
* (credits: Damaged Soul)
*/
"garrysmod"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "366"
}
"RemovePlayerItem"
{
"windows" "264"
}
"Weapon_GetSlot"
{
"windows" "262"
}
"Ignite"
{
"windows" "220"
}
"Extinguish"
{
"windows" "221"
}
"Teleport"
{
"windows" "99"
}
"CommitSuicide"
{
"windows" "394"
}
"GetVelocity"
{
"windows" "127"
}
"EyeAngles"
{
"windows" "119"
}
"AcceptInput"
{
"windows" "35"
}
"DispatchKeyValue"
{
"windows" "31"
}
"DispatchKeyValueFloat"
{
"windows" "30"
}
"DispatchKeyValueVector"
{
"windows" "29"
}
}
}
}
+101
View File
@@ -0,0 +1,101 @@
"Games"
{
/* Hidden:Source Beta 4b */
"hidden"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "348"
"linux" "349"
}
"RemovePlayerItem"
{
"windows" "207"
"linux" "208"
}
"Weapon_GetSlot"
{
"windows" "205"
"linux" "206"
}
"Ignite"
{
"windows" "170"
"linux" "171"
}
"Extinguish"
{
"windows" "171"
"linux" "172"
}
"Teleport"
{
"windows" "90"
"linux" "91"
}
"GetVelocity"
{
"windows" "114"
"linux" "115"
}
"EyeAngles"
{
"windows" "106"
"linux" "107"
}
"DispatchKeyValue"
{
"windows" "30"
"linux" "29"
}
"DispatchKeyValueFloat"
{
"windows" "29"
"linux" "30"
}
"DispatchKeyValueVector"
{
"windows" "28"
"linux" "31"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
"TE_GetServerClass"
{
"windows" "0"
"linux" "0"
}
"WeaponEquip"
{
"windows" "198"
"linux" "199"
}
}
"Signatures"
{
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x56\x8B\x74\x24\x0C\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\xCB\xFF\x50\x14"
}
}
}
}
+90
View File
@@ -0,0 +1,90 @@
"Games"
{
/* Half-Life 2: Deathmatch */
"hl2mp"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "328"
"linux" "329"
}
"RemovePlayerItem"
{
"windows" "226"
"linux" "227"
}
"Weapon_GetSlot"
{
"windows" "224"
"linux" "225"
}
"Ignite"
{
"windows" "188"
"linux" "189"
}
"Extinguish"
{
"windows" "189"
"linux" "190"
}
"Teleport"
{
"windows" "98"
"linux" "99"
}
"CommitSuicide"
{
"windows" "356"
"linux" "357"
}
"GetVelocity"
{
"windows" "126"
"linux" "127"
}
"EyeAngles"
{
"windows" "118"
"linux" "119"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "217"
"linux" "218"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
}
}
@@ -0,0 +1,71 @@
"Games"
{
/* Insurgency */
"insurgency"
{
"Offsets"
{
/* CBasePlayer */
"Ignite"
{
"windows" "174"
"linux" "175"
}
"Extinguish"
{
"windows" "175"
"linux" "176"
}
"Teleport"
{
"windows" "90"
"linux" "91"
}
"GetVelocity"
{
"windows" "115"
"linux" "116"
}
"EyeAngles"
{
"windows" "107"
"linux" "108"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "30"
"linux" "29"
}
"DispatchKeyValueFloat"
{
"windows" "29"
"linux" "30"
}
"DispatchKeyValueVector"
{
"windows" "28"
"linux" "31"
}
"SetEntityModel"
{
"windows" "24"
"linux" "25"
}
"WeaponEquip"
{
"windows" "215"
"linux" "216"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
}
+90
View File
@@ -0,0 +1,90 @@
"Games"
{
/* Obsidian Conflict 1.3 */
"obsidian"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "350"
"linux" "351"
}
"RemovePlayerItem"
{
"windows" "237"
"linux" "238"
}
"Weapon_GetSlot"
{
"windows" "235"
"linux" "236"
}
"Ignite"
{
"windows" "190"
"linux" "191"
}
"Extinguish"
{
"windows" "194"
"linux" "195"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "393"
"linux" "393"
}
"GetVelocity"
{
"windows" "127"
"linux" "128"
}
"EyeAngles"
{
"windows" "119"
"linux" "120"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "228"
"linux" "229"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
}
+91
View File
@@ -0,0 +1,91 @@
"Games"
{
/* Pirates, Vikings and Knights II */
"pvkii"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "328"
"linux" "329"
}
"RemovePlayerItem"
{
"windows" "226"
"linux" "227"
}
"Weapon_GetSlot"
{
"windows" "224"
"linux" "225"
}
"Ignite"
{
"windows" "188"
"linux" "189"
}
"Extinguish"
{
"windows" "189"
"linux" "190"
}
"Teleport"
{
"windows" "98"
"linux" "99"
}
"CommitSuicide"
{
"windows" "356"
"linux" "357"
}
"GetVelocity"
{
"windows" "126"
"linux" "127"
}
"EyeAngles"
{
"windows" "118"
"linux" "119"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "217"
"linux" "218"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
}
}
+114
View File
@@ -0,0 +1,114 @@
"Games"
{
/* The Ship */
"ship"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "316"
"linux" "317"
}
"RemovePlayerItem"
{
"windows" "220"
"linux" "221"
}
"Weapon_GetSlot"
{
"windows" "218"
"linux" "219"
}
"Ignite"
{
"windows" "180"
"linux" "181"
}
"Extinguish"
{
"windows" "181"
"linux" "182"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "343"
"linux" "344"
}
"GetVelocity"
{
"windows" "124"
"linux" "125"
}
"EyeAngles"
{
"windows" "116"
"linux" "117"
}
"DispatchKeyValue"
{
"windows" "35"
"linux" "34"
}
"DispatchKeyValueFloat"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValueVector"
{
"windows" "33"
"linux" "36"
}
"AcceptInput"
{
"windows" "39"
"linux" "40"
}
"SetEntityModel"
{
"windows" "30"
"linux" "31"
}
"WeaponEquip"
{
"windows" "211"
"linux" "212"
}
"Activate"
{
"windows" "37"
"linux" "38"
}
/* Temp Entities */
"TE_GetServerClass"
{
"windows" "0"
"linux" "0"
}
}
"Signatures"
{
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x56\x8B\x74\x24\x0C\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\xCB\xFF\x50\x60\x8B\0x16"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x25\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x56\xFF\x50\x54\x85\xC0"
}
}
}
}
@@ -0,0 +1,91 @@
"Games"
{
/* SourceForts */
"SourceForts"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "328"
"linux" "329"
}
"RemovePlayerItem"
{
"windows" "226"
"linux" "227"
}
"Weapon_GetSlot"
{
"windows" "224"
"linux" "225"
}
"Ignite"
{
"windows" "188"
"linux" "189"
}
"Extinguish"
{
"windows" "189"
"linux" "190"
}
"Teleport"
{
"windows" "98"
"linux" "99"
}
"CommitSuicide"
{
"windows" "356"
"linux" "357"
}
"GetVelocity"
{
"windows" "126"
"linux" "127"
}
"EyeAngles"
{
"windows" "118"
"linux" "119"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "217"
"linux" "218"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
}
}
+91
View File
@@ -0,0 +1,91 @@
"Games"
{
/* Synergy Release 1 */
"synergy"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "334"
"linux" "335"
}
"RemovePlayerItem"
{
"windows" "226"
"linux" "227"
}
"Weapon_GetSlot"
{
"windows" "224"
"linux" "225"
}
"Ignite"
{
"windows" "188"
"linux" "189"
}
"Extinguish"
{
"windows" "189"
"linux" "190"
}
"Teleport"
{
"windows" "98"
"linux" "99"
}
"CommitSuicide"
{
"windows" "362"
"linux" "363"
}
"GetVelocity"
{
"windows" "126"
"linux" "127"
}
"EyeAngles"
{
"windows" "118"
"linux" "119"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "217"
"linux" "218"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
}
}
+90
View File
@@ -0,0 +1,90 @@
"Games"
{
/* Team Fortress 2 */
"tf"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "406"
"linux" "410"
}
"RemovePlayerItem"
{
"windows" "238"
"linux" "239"
}
"Weapon_GetSlot"
{
"windows" "236"
"linux" "237"
}
"Ignite"
{
"windows" "193"
"linux" "194"
}
"Extinguish"
{
"windows" "197"
"linux" "198"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "388"
"linux" "388"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"WeaponEquip"
{
"windows" "229"
"linux" "230"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
}
}
}
+136
View File
@@ -0,0 +1,136 @@
"Games"
{
/* Zombie Master 1.1.3 */
"zombie_master"
{
"Offsets"
{
/* CBasePlayer */
"GiveNamedItem"
{
"windows" "329"
"linux" "330"
}
"RemovePlayerItem"
{
"windows" "226"
"linux" "227"
}
"Weapon_GetSlot"
{
"windows" "224"
"linux" "225"
}
"Ignite"
{
"windows" "188"
"linux" "189"
}
"Extinguish"
{
"windows" "189"
"linux" "190"
}
"Teleport"
{
"windows" "98"
"linux" "99"
}
"CommitSuicide"
{
"windows" "357"
"linux" "358"
}
"GetVelocity"
{
"windows" "126"
"linux" "127"
}
"EyeAngles"
{
"windows" "118"
"linux" "119"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"s_pTempEntities"
{
"windows" "30"
}
"g_pGameRules"
{
"windows" "7"
}
"WeaponEquip"
{
"windows" "198"
"linux" "199"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
"Signatures"
{
"CBaseTempEntity"
{
"library" "server"
"windows" "\x55\x8B\xEC\x51\x89\x4D\xFC\x8B\x45\xFC\xC7\x00\x2A\x2A\x2A\x2A\x8B\x4D\xFC\x8B\x55\x08\x89\x51\x04\x8B\x45\xFC\x8B\x0D\x2A\x2A"
}
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x55\x8B\xEC\x83\xEC\x20\x83\x7D\x08\x00\x0F\x84\x95\x01\x00\x00\xA1\x2A\x2A\x2A\x2A\x50\x8D\x4D\xF0\xE8\x2A\x2A\x2A\x2A\x8D\x4D"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x55\x8B\xEC\x83\xEC\x0C\x83\x7D\x0C\xFF\x74\x39\x8B\x45\x0C\x50\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x11\x8B\x0D\x2A\x2A\x2A\x2A\xFF\x52"
}
"FindEntityByClassname"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x10\x89\x4D\xF4\x83\x7D\x08\x00\x74\x1C\x8B\x45\x08\x8B\x10\x8B\x4D\x08\xFF\x52\x08\x50\x8B\x4D\xF4\xE8\x2A\x2A\x2A\x2A\x8B\x40\x0C\x89\x45\x\xF0\xEB\x0B\x8B\x4D\xF4\xE8\x2A\x2A\x2A\x2A\x89\x45\xF0\x8B\x4D\xF0\x89\x4D\xFC\xEB\x09\x8B\x55\xFC\x8B\x42\x0C\x89\x45\xFC\x83\x7D\xFC\x00\x74\x38\x8B\x4D\xFC\x8B\x11\x89"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
"CreateGameRulesObject"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x10\xA1\x2A\x2A\x2A\x2A\x89\x45\xF4\x8B\x4D\xF4\x89\x4D\xF8\x83\x7D\xF8\x00"
}
"g_pGameRules"
{
"library" "server"
"linux" "@g_pGameRules"
}
}
}
}
+120
View File
@@ -0,0 +1,120 @@
"Games"
{
/* Zombie Panic! Source 1.2b
* Note: This mod is not fully supported yet.
* The definitions below were supplied by a third party.
* (thanks "noob cannon lol")
*/
"$Zombie Panic! Source"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "333"
"linux" "334"
}
"RemovePlayerItem"
{
"windows" "230"
"linux" "231"
}
"Weapon_GetSlot"
{
"windows" "226"
"linux" "227"
}
"Ignite"
{
"windows" "190"
"linux" "191"
}
"Extinguish"
{
"windows" "191"
"linux" "192"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "361"
"linux" "362"
}
"GetVelocity"
{
"windows" "128"
"linux" "129"
}
"EyeAngles"
{
"windows" "120"
"linux" "121"
}
"AcceptInput"
{
"windows" "35"
"linux" "36"
}
"DispatchKeyValue"
{
"windows" "31"
"linux" "30"
}
"DispatchKeyValueFloat"
{
"windows" "30"
"linux" "31"
}
"DispatchKeyValueVector"
{
"windows" "29"
"linux" "32"
}
"SetEntityModel"
{
"windows" "25"
"linux" "26"
}
"WeaponEquip"
{
"windows" "219"
"linux" "220"
}
"Activate"
{
"windows" "32"
"linux" "33"
}
}
"Signatures"
{
"CreateGameRulesObject"
{
"library" "server"
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2C\x6A\x01"
}
"FindEntityByClassname"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x2A\x2A\x8B\x00\x25\xFF\x0F\x00\x00\x40\xC1\xC1\xE0\x04\x8B\x2A\x2A\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x24\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\xA4\x24\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x56\x8B\x74\x24\x2A\x57\x8B\x7C\x24\x2A\x83\xFE\xFF\x74\x2A\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x2A\x56\xFF\xD2"
}
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x2A\x85\xF6\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x60\x8B\xCB"
}
}
}
}
+112
View File
@@ -0,0 +1,112 @@
"Game Master"
{
"common.games.txt"
{
}
"engine.l4d.txt"
{
"engine" "left4dead"
}
"engine.ep2.txt"
{
"engine" "orangebox"
}
"engine.ep1.txt"
{
"engine" "original"
}
"game.tf.txt"
{
"game" "tf"
}
"game.dod.txt"
{
"game" "dod"
}
"game.cstrike.txt"
{
"game" "cstrike"
}
"game.hl2mp.txt"
{
"game" "hl2mp"
}
"game.ship.txt"
{
"game" "ship"
}
"game.dystopia.txt"
{
"game" "!Dystopia"
}
"game.insurgency.txt"
{
"game" "insurgency"
}
"game.pvkii.txt"
{
"game" "pvkii"
}
"game.ff.txt"
{
"game" "FortressForever"
}
"game.garrysmod.txt"
{
"engine" "original"
"game" "garrysmod"
}
"game.empires.txt"
{
"game" "empires"
}
"game.sourceforts.txt"
{
"game" "sourceforts"
}
"game.synergy.txt"
{
"game" "synergy"
}
"game.hidden.txt"
{
"game" "hidden"
}
"game.zm.txt"
{
"game" "zombie_master"
}
"game.zpanic.txt"
{
"game" "$Zombie Panic! Source"
}
"game.obsidian.txt"
{
"game" "obsidian"
}
"game.aoc.txt"
{
"game" "ageofchivalry"
}
}