sourcemod/gamedata/sm-cstrike.games/game.csgo.txt
2019-11-19 21:31:54 -08:00

268 lines
8.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Do not edit this file. Any changes will be overwritten by the gamedata
* updater or by upgrading your SourceMod install.
*
* To override data in this file, create a subdirectory named "custom" and
* place your own gamedata file(s) inside of it. Such files will be parsed
* after SM's own.
*
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(SourceMod)
*/
"Games"
{
"#default"
{
"Keys"
{
"PriceKey" "in game price"
}
"Offsets"
{
// Offset of szClassName in CCSWeaponData, szDefaultName is @ 140 which returns the default weapon class for the loadoutslot ignoring the users inventory.
"WeaponName"
{
"windows" "4"
"linux" "4"
"linux64" "8"
"mac64" "8"
}
// In HandleCommand_Buy_Internal
// -*(_DWORD *)(v34 + 8) in ida 7 -v34[52]
"WeaponPrice"
{
"windows" "208"
"linux" "208"
"linux64" "328"
"mac64" "328"
}
//Offset into CheckRestartRound
"CTTeamScoreOffset"
{
"windows" "98"
"linux" "115"
"linux64" "143"
"mac64" "148"
}
//Offset into CheckRestartRound
"TTeamScoreOffset"
{
"windows" "125"
"linux" "148"
"linux64" "174"
"mac64" "177"
}
//Offset into HandleCommand_Buy_Internal
"CCSPlayerInventoryOffset"
{
"windows" "60"
"linux" "97"
"linux64" "107"
"mac64" "73"
}
"GetItemInLoadout"
{
"windows" "8"
"linux" "9"
"linux64" "9"
"mac64" "9"
}
"GetItemDefintionByName" //_ZN15CEconItemSchema23GetItemDefinitionByNameEPKc
{
"windows" "42"
"linux" "41"
"linux64" "41"
"mac64" "41"
}
// Search for "%s (ID %llu) at backpack slot %d" (CCSPlayerInventory::DumpInventoryToConsole(bool))
// Jump to the vtable 2 functions above calls CCStrike15ItemDefinition::GetLoadoutSlot(CCStrike15ItemDefinition *this, int)
// This is an offset into CCStrike15ItemDefinition that contains the loadoutslot IGNORING the team param (the second param in the function)
"LoadoutSlotOffset"
{
"windows" "588"
"linux" "588"
"linux64" "908"
"mac64" "908"
}
// Offset into CEconItemSchema * to a hashmap of all itemdefs
// Offset can be found in... GetItemDefinitionMutable (easy to get offset on windows should be the same)
"ItemDefHashOffset"
{
"windows" "172"
"linux" "172"
"linux64" "232"
"mac64" "232"
}
}
"Signatures"
{
"GetItemSchema"
{
"library" "server"
"windows" "\xA1\x2A\x2A\x2A\x2A\x85\xC0\x75\x2A\xA1\x2A\x2A\x2A\x2A\x56\x68\x2A\x2A\x00\x00\x8B"
"linux" "\x55\x89\xE5\x83\xEC\x08\xE8\x2A\x2A\x2A\x2A\xC9\x83\xC0\x04\xC3"
"linux64" "\x55\x48\x89\xE5\xE8\x2A\x2A\x2A\x2A\x5D\x48\x83\xC0\x08\xC3"
"mac64" "\x55\x48\x89\xE5\x41\x56\x53\x48\x8B\x1D\x2A\x2A\x2A\x2A\x48\x85\xDB\x75"
}
"RoundRespawn"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x0C\x53\x56\x57\x8B\xF9\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01"
"linux" "\x55\x89\xE5\x57\x56\x53\x83\xEC\x4C\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x89\x04\x24"
"linux64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x89\xFB\x48\x83\xEC\x18\x4C\x8B\x25\x85\x17\xB4\x00"
"mac64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x54\x53\x48\x83\xEC\x10\x49\x89\xFC\x4C\x8D\x3D\xD7\xB9\x90\x00"
}
"SwitchTeam"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x10\x53\x56\x8B\x75\x08\x57\x8B\xF9\x85\xF6\x0F\x88\x2A\x2A\x2A\x2A\x3B\x35"
"linux" "\x55\x89\xE5\x83\xEC\x68\x89\x75\xF8\x8B\x75\x0C\x89\x5D\xF4\x8B\x5D\x08\x89\x7D\xFC\x89\x34\x24\xE8\x2A\x2A\x2A\x2A\x85\xC0"
"linux64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x49\x89\xFC\x89\xF7\x53\x89\xF3"
"mac64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x83\xEC\x18\x89\xF3\x49\x89\xFC"
}
"HandleCommand_Buy_Internal"//Wildcard first 6 bytes for getting address for weapon price.
{
"library" "server"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x83\xEC\x0C\x53\x56\x57\x6A\x01"
"linux" "\x2A\x2A\x2A\x2A\x2A\x2A\x0F\xB6\x55\x14\x89\x75\xF8\x8B\x75\x08"
"linux64" "\x2A\x2A\x2A\x2A\x2A\x2A\x41\x56\x41\x89\xCE\x41\x55\x49\x89\xD5\x41\x54\x41\x89\xF4"
"mac64" "\x2A\x2A\x2A\x2A\x2A\x2A\x41\x56\x41\x55\x41\x54\x53\x48\x83\xEC\x58\x41\x89\xCF\x49\x89\xD4"
}
"CSWeaponDropBB" //Revert back to using CSWeaponDrop(weapon, bool, bool)
{
"library" "server"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x83\xE4\xF8\x83\xC4\x04\x55\x8B\x6B\x04\x89\x6C\x24\x04\x8B\xEC\x83\xEC\x34\x56"
"linux" "\x2A\x2A\x2A\x2A\x2A\x2A\xEC\x70\x8B\x5D\x08\x0F\xB6\x75\x10"
"linux64" "\x2A\x2A\x2A\x2A\x2A\x2A\x41\x89\xCE\x41\x55\x41\x89\xD5\x41\x54\x49\x89\xF4"
"mac64" "\x2A\x2A\x2A\x2A\x2A\x2A\x41\x56\x41\x54\x53\x48\x83\xEC\x30\x41\x89\xCC\x41\x89\xD7"
}
"TerminateRound"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xE4\xF8\x83\xEC\x2A\x53\x8B\xD9\xF3\x0F\x2A\x2A\x2A\x2A\x56\x57\x89\x2A\x2A\x2A\x83\xBB"
"linux" "\x55\x89\xE5\x57\x56\x53\x81\xEC\xBC\x00\x00\x00\x8B\x7D\x08\x8B\x87\xB4\x0B\x00\x00"
//"linux64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x49\x89\xFE\x41\x55\x41\x54\x53\x48\x81\xEC\x98\x00\x00\x00\x89\xB5\x68\xFF\xFF\xFF"
"mac64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x81\xEC\x08\x01\x00\x00\x41\x89\xF6"
}
//In CS:GO this is actually CCSGameRules::CheckRestartRound(void) but to keep same gamedata as cs:s.
"CheckWinLimit"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xE4\xF8\x83\xEC\x2A\x53\x56\x57\x8B\xF9\x8B\x0D\x2A\x2A\x2A\x2A\x81\xF9"
"linux" "\x55\x89\xE5\x56\x53\x83\xEC\x70\xA1\x2A\x2A\x2A\x2A\x8B\x35\x2A\x2A\x2A\x2A\x8B"
"linux64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x89\xFB\x48\x83\xEC\x58\x64\x48\x8B\x04\x25\x28\x00\x00\x00\x48\x89\x45\xC8\x31\xC0\x4C\x8B\x2D\x46\xD3\xBB\x00"
"mac64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x83\xEC\x58\x49\x89\xFD\x48\x8B\x1D\x85\x76\x60\x00"
}
"SetModelFromClass"
{
"library" "server"
"windows" "\x53\x56\x57\x8B\xF9\x8B\x87\x14\x03\x00\x00"
"linux" "\x55\x89\xE5\x83\xEC\x28\x89\x5D\xF4\x8B\x5D\x08\x89\x75\xF8\x89\x7D\xFC\x89\x1C\x24\xE8\x2A\x2A\x2A\x2A\x83\xF8\x02"
"linux64" "\x55\x48\x89\xE5\x41\x55\x41\x54\x53\x48\x89\xFB\x48\x83\xEC\x18\xE8\x2A\x2A\x2A\x2A\x83\xF8\x02"
"mac64" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x54\x53\x49\x89\xFC\xE8\x2A\x2A\x2A\x2A\x83\xF8\x02"
}
//GetCCSWeaponData Found in HandleCommand_Buy_Internal
//Uses an econitemview
"GetCCSWeaponData"
{
"library" "server"
"windows" "\x85\xC9\x75\x2A\x33\xC0\xC3\xE8\x2A\x2A\x2A\x2A\x8B"
"linux" "\x55\x89\xE5\x83\xEC\x18\x8B\x45\x08\x85\xC0\x74\x2A\x89\x04\x24"
"linux64" "\x48\x85\xFF\x74\x2A\x55\x48\x89\xE5\xE8\x2A\x2A\x2A\x2A\x5D\x48\x89\xC7"
"mac64" "\x55\x48\x89\xE5\x41\x56\x53\x31\xC0\x48\x85\xFF\x74\x2A\xE8\x2A\x2A\x2A\x2A\x48"
}
}
}
"#default"
{
"Keys"
{
"AssistsBase" "m_iFrags"
}
"Offsets"
{
"Assists"
{
"windows" "4"
"linux" "4"
"linux64" "4"
"mac64" "4"
}
}
}
"#default"
{
"Keys"
{
"CScoreBase" "m_bIsHoldingLookAtWeapon"
}
"Offsets"
{
"CScore"
{
"windows" "59"
"linux" "59"
"linux64" "59"
"mac64" "59"
}
}
}
"#default"
{
"Keys"
{
"MVPsBase" "m_bIsHoldingLookAtWeapon"
}
"Offsets"
{
"MVPs"
{
"windows" "11"
"linux" "11"
"linux64" "11"
"mac64" "11"
}
}
}
// Used for SetClanTag and GetClanTag
// to find the ClanTag offset start with the string "ClanTagChanged". Inside the function there is 2 KeyValues::GetString, one for "tag", and one for "name"
// The respective function underneath each are SetClanTag and SetClanName.
// To get the offset of the base (m_flGroundAccelLinearFracLastTime) unqiue string is "------- accelspeed = %f, flGoalSpeed = %f, flStoredAccel = %f\n"
// Inside that function right above the debug message is an if with a call to CBaseEntity::NetworkStateChanged and a member set with the same offset.
// Do math.
// Note: Second offset can be skipped by simply dumping the netprops instead on each os although the distance will probably be the same on all.
"#default"
{
"Keys"
{
"ClanTagBase" "m_flGroundAccelLinearFracLastTime"
}
"Offsets"
{
"ClanTagSize"
{
"windows" "16"
"linux" "16"
"linux64" "16"
"mac64" "16"
}
"ClanTag"
{
"windows" "140"
"linux" "140"
"linux64" "140"
"mac64" "140"
}
}
}
}