sm-ext-dhooks2/sourcemod/gamedata/fbtools.games.txt
Peace-Maker aa3018a27d Add support to define function signatures in gamedata
A "Functions" section is parsed in gamedata files that allow you to define the signature of functions including metadata like the calling convention and specifying the register an argument is passed in.
A new native DHookCreateFromConf can be used to setup a hook or detour from one of that function sections in the "Functions" section.
2018-01-25 17:18:30 +01:00

77 lines
2.1 KiB
Plaintext

"Games"
{
"cstrike"
{
"Signatures"
{
"Deafen"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x2A\x89\x4D\x2A\x8B\x45\x2A\x8B\x10\x8B\x4D\x2A\x8B\x82\x2A\x2A\x2A\x2A\xFF\xD0\x85\xC0\x74"
"linux" "@_ZN9CCSPlayer6DeafenEf"
}
"CFlashbangProjectile::Detonate"
{
"library" "server"
"windows" "\x53\x56\x8B\xF1\x57\x8B\x86\x2A\x2A\x2A\x2A\xC1\xE8\x2A\xA8\x2A\x74\x2A\xE8\x2A\x2A\x2A\x2A\xD9\x05\x2A\x2A\x2A\x2A\x6A\x40\x6A\x00\x51\x8B\xCE"
"linux" "@_ZN20CFlashbangProjectile8DetonateEv"
}
"PercentageOfFlashForPlayer"
{
"library" "server"
"windows" "\x53\x8B\xDC\x83\xEC\x08\x83\xE4\x2A\x83\xC4\x2A\x55\x8B\x6B\x2A\x89\x6C\x2A\x2A\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\x56\x8B\x73\x08\x8D\x4D\xAC"
"linux" "@_Z26PercentageOfFlashForPlayerP11CBaseEntity6VectorS0_"
}
}
}
"csgo"
{
"Signatures"
{
// "tr_player_flashbanged" is in RadiusFlash which calls CCSPlayer::Deafen and PercentageOfFlashForPlayer
"Deafen"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x28\x56\x57\x8B\xF9\xF3\x0F\x11\x4D\xFC"
"linux" "\x55\x89\xE5\x83\xEC\x48\x89\x7D\xFC\x8B\x7D\x08\x89\x5D\xF4\x89\x75\xF8\x8B\x07"
}
// "flashbang_detonate" and "Scorch"
"CFlashbangProjectile::Detonate"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x6C\x53\x56\x57\x8B\xF1"
"linux" "\x55\x89\xE5\x57\x56\x53\x81\xEC\x0C\x01\x00\x00\x8B\x5D\x08\x89\x1C\x24\xE8\x2A\x2A\x2A\x2A\x85\xC0\x89\xC6"
}
"PercentageOfFlashForPlayer"
{
"library" "server"
"windows" "\x53\x8B\xDC\x83\xEC\x08\x83\xE4\xF0\x83\xC4\x04\x55\x8B\x6B\x04\x89\x6C\x24\x04\x8B\xEC\x81\xEC\x08\x01\x00\x00\x56\x8B\xF1"
"linux" "\x55\x89\xE5\x57\x56\x53\x81\xEC\x9C\x01\x00\x00\x8B\x5D\x08\x8B\x03"
}
}
"Functions"
{
"Deafen"
{
"signature" "Deafen"
"callconv" "thiscall"
"return" "void"
"this" "entity"
"arguments"
{
"distance"
{
"type" "float"
"windows"
{
"register" "xmm1"
}
}
}
}
}
}
}