Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cs_set_user_team crashes the server #1095

Open
6 tasks done
micadam opened this issue Mar 2, 2024 · 1 comment
Open
6 tasks done

cs_set_user_team crashes the server #1095

micadam opened this issue Mar 2, 2024 · 1 comment

Comments

@micadam
Copy link

micadam commented Mar 2, 2024

Help us help you

  • I have checked that my issue doesn't exist yet.
  • I have tried my absolute best to reduce the problem-space and have provided the absolute smallest test-case possible.
  • I can always reproduce the issue with the provided description below.

Environment

  • Operating System version: Windows 11
  • Game/AppID (with version if applicable): cstrike (90)
  • Current AMX Mod X version: 1.9.0-git5294
  • Current Metamod version:

Description

The HLDS crashes whenever cs_set_user_team is called. No error is produced in the console, and I couldn't find any logs with useful error messages. This behaviour is on the latest snapshot, Meanwhile on the latest stable release, the server crashes upon a player joining the game, which was also reported in #1086 (comment).

Problematic Code (or Steps to Reproduce)

  cs_set_user_team(0, CS_TEAM_T, 0, 0)

Logs

L 03/02/2024 - 11:18:44: -------- Mapchange to de_dust2 --------
L 03/02/2024 - 11:18:44: [CSTRIKE] BuyGunAmmo is not available
L 03/02/2024 - 11:18:44: [CSTRIKE] GiveNamedItem is not available
L 03/02/2024 - 11:18:44: [CSTRIKE] AddAccount is not available
L 03/02/2024 - 11:18:44: [CSTRIKE] CanPlayerBuy is not available
L 03/02/2024 - 11:18:44: [CSTRIKE] CanBuyThis is not available
L 03/02/2024 - 11:18:44: [CSTRIKE] Some functions are not available - forwards CS_OnBuy[Attempt] have been disabled
L 03/02/2024 - 11:18:44: [CSTRIKE] GiveDefaultItems is not available - native cs_set_no_knives has been disabled
L 03/02/2024 - 11:18:44: [CSTRIKE] CREATE_NAMED_ENITTY is not available - native cs_create_entity() has been disabled
L 03/02/2024 - 11:18:44: [CSTRIKE] UTIL_FindEntByString is not available - native cs_find_ent_by_class() has been disabled
L 03/02/2024 - 11:18:44: [CSTRIKE] AddEntityHashValue or RemoveEntityHashValue is not available - native cs_set_ent_class() has been disabled
L 03/02/2024 - 11:18:44: [CSTRIKE] GetWeaponInfo is not available - native cs_get_weapon_info() and forward CS_OnBuy have been disabled
L 03/02/2024 - 11:18:44: [CSTRIKE] sv global variable is not available
L 03/02/2024 - 11:18:44: [CSTRIKE] g_pGameRules is not available - Forward CS_OnBuy has been disabled
@ClaudiuHKS
Copy link
Contributor

I've tried finding all the missing signatures & offsets. If still something is wrong, say.

  1. /steamapps/common/Half-Life/cstrike/addons/amxmodx/data/gamedata/modules.games/game.cstrike.txt
/**
 * Do not edit this file.  Any changes will be overwritten by the gamedata
 * updater or by upgrading your AMX Mod X 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 AMXX's own.
 *
 * For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
 */

"Games"
{
    "#default"
    {
        "Signatures"
        {
            "CanPlayerBuy"          /// bool CBasePlayer::CanPlayerBuy(bool display) [__thiscall]
            {
                "library"           "server"
                /// "windows"       "\x51\x53\x55\x56\x57\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\xFF" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x51\x56\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\xFF\x2A\x2A\x85\x2A\x75\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x56\xE8\x2A\x2A\x2A\x2A\x5E\x8B\x2A\x5D\xC2" /// HLDS 2023
                "linux"             "@_ZN11CBasePlayer12CanPlayerBuyEb"
                "mac"               "@_ZN11CBasePlayer12CanPlayerBuyEb"
            }

            "CanBuyThis"            /// bool CanBuyThis(CBasePlayer *pPlayer, int iWeapon)
            {
                "library"           "server"
                /// "windows"       "\x53\x8B\x2A\x2A\x2A\x2A\x2A\x56\x8B\x2A\x2A\x2A\x57\x8B" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x53\x8B\x2A\x2A\x2A\x2A\x2A\x56\x8B\x2A\x2A\x8B\x2A\x57\xE8\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x84\x2A\x74\x2A\x83\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x84\x2A\x74\x2A\x83\x2A\x2A\x0F" /// HLDS 2023
                "linux"             "@_Z10CanBuyThisP11CBasePlayeri"
                "mac"               "@_Z10CanBuyThisP11CBasePlayeri"
            }

            "AddAccount"            /// void CBasePlayer::AddAccount(int amount, bool bTrackChange) [__thiscall]
            {
                "library"           "server"
                /// "windows"       "\x8B\x2A\x2A\x2A\x56\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x03" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x8B\x2A\x2A\x56\x8B\x2A\x01\x2A\x2A\x2A\x2A\x2A\x79\x2A\xC7\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\xEB\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\x3B\x2A\x0F\x2A\x2A\x89\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x6A\x2A\xFF" /// HLDS 2023
                "linux"             "@_ZN11CBasePlayer10AddAccountEib"
                "mac"               "@_ZN11CBasePlayer10AddAccountEib"
            }

            "GiveNamedItem"         /// void CBasePlayer::GiveNamedItem(const char *pszName) [__thiscall]
            {
                "library"           "server"
                /// "windows"       "\x8B\x2A\x2A\x2A\x56\x57\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x2B" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\xA1\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x56\x57\x2B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x52\xE8\x2A\x2A\x2A\x2A\x8B\x2A\x83\x2A\x2A\x85\x2A\x74\x2A\x56\xFF\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\x85\x2A\x74\x2A\x8B\x2A\x2A\x56\xF3\x2A\x2A\x2A\x2A\x66\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x89" /// HLDS 2023
                "linux"             "@_ZN11CBasePlayer13GiveNamedItemEPKc"
                "mac"               "@_ZN11CBasePlayer13GiveNamedItemEPKc"
            }

            "GiveDefaultItems"      /// void CBasePlayer::GiveDefaultItems() [__thiscall]
            {
                "library"           "server"
                /// "windows"       "\x56\x57\x6A\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xC6" /// HLDS 2020
                "windows"           "\x56\x6A\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\x75\x2A\x68\x2A\x2A\x2A\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x80\x2A\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x8B\x2A\x6A\x2A\x68" /// HLDS 2023
                "linux"             "@_ZN11CBasePlayer16GiveDefaultItemsEv"
                "mac"               "@_ZN11CBasePlayer16GiveDefaultItemsEv"
            }

            "GiveShield"            /// void CBasePlayer::GiveShield(bool bDeploy) [__thiscall]
            {
                "library"           "server"
                /// "windows"       "\x56\x8B\x2A\x57\x33\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xB0" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x56\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\x85\x2A\x74\x2A\x80\x2A\x2A\x2A\x75\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x7E\x2A\x8B\x2A\x6A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\xFF" /// HLDS 2023
                "linux"             "@_ZN11CBasePlayer10GiveShieldEb"
                "mac"               "@_ZN11CBasePlayer10GiveShieldEb"
            }

            "CreateNamedEntity"     /// edict_t* CREATE_NAMED_ENTITY(int iClass)
            {
                "library"           "server"
                /// "windows"       "\x56\x57\x8B\x2A\x2A\x2A\x57\xFF\x2A\x2A\x2A\x2A\x2A\x8B" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x56\xFF\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x83\x2A\x2A\x85\x2A\x74\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x6A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x03\x2A\x2A\x51\x8D\x2A\x2A\x2A\x2A\x2A\x51\xE8\x2A\x2A\x2A\x2A\x83\x2A\x2A\x8B\x2A\x5E\x5D\xC3" /// HLDS 2023
                "linux"             "@_Z19CREATE_NAMED_ENTITYj"
                "mac"               "@_Z19CREATE_NAMED_ENTITYj"
            }

            "FindEntityByString"    /// CBaseEntity *UTIL_FindEntityByString(CBaseEntity *pStartEntity, const char *szKeyword, const char *szValue)
            {
                "library"           "server"
                /// "windows"       "\x51\x8B\x2A\x2A\x2A\x53\x55\x56\x85\x2A\x57" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x51\x8B\x2A\x2A\x53\x56\x57\x85\x2A\x74\x2A\x8B\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xEB\x2A\x33\x2A\x56\xFF\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x83\x2A\x2A\x89\x2A\x2A\x80\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\xFF\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x8B" /// HLDS 2023
                "linux"             "@_Z23UTIL_FindEntityByStringP11CBaseEntityPKcS2_"
                "mac"               "@_Z23UTIL_FindEntityByStringP11CBaseEntityPKcS2_"
            }

            "AddEntityHashValue"    /// void AddEntityHashValue(entvars_t *pev, const char *value, hash_types_e fieldType)
            {
                "library"           "server"
                /// "windows"       "\x8B\x2A\x2A\x2A\x83\x2A\x2A\x85\x2A\x53\x55\x56\x57\x0F" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x51\x83\x2A\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x53\x8B\x2A\x2A\x83\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x56\x57\x50\xFF\x2A\x2A\x89\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x8B\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\x89\x2A\x2A\xB9\x2A\x2A\x2A\x2A\x56\xE8" /// HLDS 2023
                "linux"             "@_Z18AddEntityHashValueP9entvars_sPKc12hash_types_e"
                "mac"               "@_Z18AddEntityHashValueP9entvars_sPKc12hash_types_e"
            }

            "RemoveEntityHashValue" /// void RemoveEntityHashValue(entvars_t *pev, hash_item_t *value, hash_types_e fieldType)
            {
                "library"           "server"
                /// "windows"       "\x8B\x2A\x2A\x2A\x53\x8B\x2A\x55\x8A\x2A\x33" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x8B\x2A\x2A\x33\x2A\x56\x57\x8A\x2A\x84\x2A\x74\x2A\x0F\x2A\x2A\x03\x2A\x2C\x2A\x3C\x2A\x77\x2A\x83\x2A\x2A\x8A\x2A\x2A\x41\x03\x2A\x84\x2A\x75\x2A\x8B\x2A\x33\x2A\xF7\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x8B\x2A\xFF" /// HLDS 2023
                "linux"             "@_Z21RemoveEntityHashValueP9entvars_sPKc12hash_types_e"
                "mac"               "@_Z21RemoveEntityHashValueP9entvars_sPKc12hash_types_e"
            }

            "GetWeaponInfo"         /// const WeaponInfoStruct *GetWeaponInfo(int weaponID)
            {
                "library"           "server"
                /// "windows"       "\x8B\x2A\x2A\x2A\x2A\x2A\x33\x2A\x85\x2A\x56\x74\x2A\x8B" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\xA1\x2A\x2A\x2A\x2A\x33\x2A\x85\x2A\x74\x2A\x8B\x2A\x2A\x3B\x2A\x74\x2A\x41\x8B\x2A\xC1\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x85\x2A\x75\x2A\x33\x2A\x5D\xC3\xC1\x2A\x2A\x81\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x5D\xC3" /// HLDS 2023
                "linux"             "@_Z13GetWeaponInfoi"
                "mac"               "@_Z13GetWeaponInfoi"
            }

            "GetAmmoIndex"          /// int CBasePlayer::GetAmmoIndex(const char *psz) [__thiscall]
            {
                "library"           "server"
                /// "windows"       "\x56\x57\x8B\x2A\x2A\x2A\x85\x2A\x74\x2A\xBE" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x53\x56\x57\x8B\x2A\x2A\x85\x2A\x74\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xBE\x2A\x2A\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x2A\x85\x2A\x74\x2A\x50\x57\xFF\x2A\x83\x2A\x2A\x85\x2A\x74" /// HLDS 2023
                "linux"             "@_ZN11CBasePlayer12GetAmmoIndexEPKc"
                "mac"               "@_ZN11CBasePlayer12GetAmmoIndexEPKc"
            }

            "BuyGunAmmo"            /// bool BuyGunAmmo(CBasePlayer *const player, CBasePlayerItem *const weapon, bool bBlinkMoney)
            {
                "library"           "server"
                /// "windows"       "\x56\x57\x8B\x2A\x2A\x2A\x6A\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x84\x2A\x0F" /// HLDS 2020
                "windows"           "\x55\x8B\x2A\x56\x57\x8B\x2A\x2A\x8B\x2A\x6A\x2A\xE8\x2A\x2A\x2A\x2A\x84\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x8B\x2A\x8B\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x2A\x6B\x2A\x2A\x3B\x2A\x2A\x2A\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x8D\x2A\x2A\x83\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\xFF" /// HLDS 2023
                "linux"             "@_Z10BuyGunAmmoR11CBasePlayerR15CBasePlayerItemb"
                "mac"               "@_Z10BuyGunAmmoR11CBasePlayerR15CBasePlayerItemb"
            }
        }
    }

    "#default"
    {
        "Signatures"
        {
            "UseBotArgs"        /// bool UseBotArgs
            {
                "library"       "server"
                /// "windows"   "\x8B\x2A\x2A\x2A\x56\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x03" /// HLDS 2020
                "windows"       "\x55\x8B\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\x5D\xC2" /// HLDS 2023
                "linux"         "@UseBotArgs"
                "mac"           "@UseBotArgs"
            }                   /// void CBot::ClientCommand(const char *cmd, const char *arg1, const char *arg2, const char *arg3) [__thiscall]

            "BotArgs"           /// const char *BotArgs[4]
            {
                "library"       "server"
                /// "windows"   "\x8B\x2A\x2A\x2A\x56\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x03" /// HLDS 2020
                "windows"       "\x55\x8B\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xA3\x2A\x2A\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\x2A\x2A\xC6\x2A\x2A\x2A\x2A\x2A\x2A\x5D\xC2" /// HLDS 2023
                "linux"         "@BotArgs"
                "mac"           "@BotArgs"
            }                   /// void CBot::ClientCommand(const char *cmd, const char *arg1, const char *arg2, const char *arg3) [__thiscall]
        }

        "Offsets"
        {
            "UseBotArgs"        /// bool UseBotArgs
            {
                /// "windows"   "2" /// HLDS 2020
                "windows"       "37" /// HLDS 2023
            }

            "BotArgs"           /// const char *BotArgs[4]
            {
                /// "windows"   "22" /// HLDS 2020
                "windows"       "7" /// HLDS 2023
            }
        }
    }

    "#default"
    {
        "ItemInfos"
        {
            "BuyAliases"
            {
                ///
                /// Weapon
                ///

                "p228"
                {
                    "itemid"    "1" /// CSW/I_P228
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                    "altname"   "228compact"
                }
                "scout"
                {
                    "itemid"    "3" /// CSW/I_SCOUT
                    "classid"   "8" /// CS_WEAPONCLASS_SNIPERRIFLE
                }
                "xm1014"
                {
                    "itemid"    "5" /// CSW/I_XM1014
                    "classid"   "5" /// CS_WEAPONCLASS_SHOTGUN
                    "altname"   "autoshotgun"
                }
                "mac10"
                {
                    "itemid"    "7" /// CSW/I_MAC10
                    "classid"   "4" /// CS_WEAPONCLASS_SUBMACHINEGUN
                }
                "aug"
                {
                    "itemid"    "8" /// CSW/I_AUG
                    "classid"   "7" /// CS_WEAPONCLASS_RIFLE
                    "altname"   "bullpup"
                }
                "elites"
                {
                    "itemid"    "10" /// CSW/I_ELITE
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                }
                "fn57"
                {
                    "itemid"    "11" /// CSW/I_FIVESEVEN
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                    "altname"   "fiveseven"
                }
                "ump45"
                {
                    "itemid"    "12" /// CSW/I_UMP45
                    "classid"   "4" /// CS_WEAPONCLASS_SUBMACHINEGUN
                }
                "sg550"
                {
                    "itemid"    "13" /// CSW/I_SG550
                    "classid"   "8" /// CS_WEAPONCLASS_SNIPERRIFLE
                    "altname"   "krieg550"
                }
                "galil"
                {
                    "itemid"    "14" /// CSW/I_GALIL
                    "classid"   "7" /// CS_WEAPONCLASS_RIFLE
                    "altname"   "defender"
                }
                "famas"
                {
                    "itemid"    "15" /// CSW/I_FAMAS
                    "classid"   "7" /// CS_WEAPONCLASS_RIFLE
                    "altname"   "clarion"
                }
                "usp"
                {
                    "itemid"    "16" /// CSW/I_USP
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                    "altname"   "km45"
                }
                "glock"
                {
                    "itemid"    "17" /// CSW/I_GLOCK18
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                    "altname"   "9x19mm"
                }
                "awp"
                {
                    "itemid"    "18" /// CSW/I_AWP
                    "classid"   "8" /// CS_WEAPONCLASS_SNIPERRIFLE
                    "altname"   "magnum"
                }
                "mp5"
                {
                    "itemid"    "19" /// CSW/I_MP5NAVY
                    "classid"   "4" /// CS_WEAPONCLASS_SUBMACHINEGUN
                    "altname"   "smg"
                }
                "m249"
                {
                    "itemid"    "20" /// CSW/I_M249
                    "classid"   "6" /// CS_WEAPONCLASS_MACHINEGUN
                }
                "m3"
                {
                    "itemid"    "21" /// CSW/I_M3
                    "classid"   "5" /// CS_WEAPONCLASS_SHOTGUN
                    "altname"   "12gauge"
                }
                "m4a1"
                {
                    "itemid"    "22" /// CSW/I_M4A1
                    "classid"   "7" /// CS_WEAPONCLASS_RIFLE
                }
                "tmp"
                {
                    "itemid"    "23" /// CSW/I_TMP
                    "classid"   "4" /// CS_WEAPONCLASS_SUBMACHINEGUN
                    "altname"   "mp"
                }
                "g3sg1"
                {
                    "itemid"    "24" /// CSW/I_G3SG1
                    "classid"   "8" /// CS_WEAPONCLASS_SNIPERRIFLE
                    "altname"   "d3au1"
                }
                "deagle"
                {
                    "itemid"    "26" /// CSW/I_DEAGLE
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                    "altname"   "nighthawk"
                }
                "sg552"
                {
                    "itemid"    "27" /// CSW/I_SG552
                    "classid"   "7" /// CS_WEAPONCLASS_RIFLE
                    "altname"   "krieg552"
                }
                "ak47"
                {
                    "itemid"    "28" /// CSW/I_AK47
                    "classid"   "7" /// CS_WEAPONCLASS_RIFLE
                    "altname"   "cv47"
                }
                "p90"
                {
                    "itemid"    "30" /// CSW/I_P90
                    "classid"   "4" /// CS_WEAPONCLASS_SUBMACHINEGUN
                    "altname"   "c90"
                }

                ///
                /// Equipment
                ///

                "hegren"
                {
                    "itemid"    "4" /// CSW/I_HEGRENADE
                    "classid"   "3" /// CS_WEAPONCLASS_GRENADE
                    "price"     "300"
                }
                "sgren"
                {
                    "itemid"    "9" /// CSW/I_SMOKEGRENADE
                    "classid"   "3" /// CS_WEAPONCLASS_GRENADE
                    "price"     "300"
                }
                "flash"
                {
                    "itemid"    "25" /// CSW/I_FLASHBANG
                    "classid"   "3" /// CS_WEAPONCLASS_GRENADE
                    "price"     "200"
                }
                "vest"
                {
                    "itemid"    "31" /// CSW/I_VEST
                    "classname" "item_kevlar"
                    "price"     "650"
                }
                "vesthelm"
                {
                    "itemid"    "32" /// CSW/I_VESTHELM
                    "classname" "item_assaultsuit"
                    "price"     "1000"
                }
                "defuser"
                {
                    "itemid"    "33" /// CSI_DEFUSER
                    "classname" "item_thighpack"
                    "price"     "200"
                }
                "nvgs"
                {
                    "itemid"    "34" /// CSI_NVGS
                    "price"     "1250"
                }
                "shield"
                {
                    "itemid"    "35" /// CSI_SHIELD
                    "classid"   "2" /// CS_WEAPONCLASS_PISTOL
                    "classname" "weapon_shield"
                }

                ///
                /// Ammunition
                ///

                "primammo"
                {
                    "itemid"    "36" /// CSI_PRIAMMO
                    "altname"   "buyammo1"
                }
                "secammo"
                {
                    "itemid"    "37" /// CSI_SECAMMO
                    "altname"   "buyammo2"
                }
            }
        }
    }
}
  1. /steamapps/common/Half-Life/cstrike/addons/amxmodx/data/gamedata/common.games/functions.engine.txt
/**
 * Do not edit this file.  Any changes will be overwritten by the gamedata
 * updater or by upgrading your AMX Mod X 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 AMXX's own.
 *
 * For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
 */

"Games"
{
    "#default"
    {
        "Signatures"
        {
            "SV_DropClient"     /// void SV_DropClient(client_t *cl, qboolean crash, const char *fmt, ...);
            {
                ///
                "library"       "engine"
                ///
                /// "windows"   "\x55\x8B\x2A\x81\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x53\x56\x8D"                                                                                                          /// [ HLDS 2020 ] CS/ CZ, DOD, HL, ... ( OLD )
                ///
                "windows"       "\x55\x8B\x2A\x81\x2A\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x33\x2A\x89\x2A\x2A\x56\x57\x8B\x2A\x2A\x8D\x2A\x2A\x50\x33\x2A\x8D\x2A\x2A\x2A\x2A\x2A\x56\xFF\x2A\x2A\x68"  /// [ HLDS 2023 ] CS/ CZ, DOD, HL, ... ( NEW ) @ sub_101D1CB0()
                ///
                "linux"         "@SV_DropClient"
                "mac"           "@SV_DropClient"
                ///
            }

            "Cvar_DirectSet"    /// void Cvar_DirectSet(struct cvar_s *var, char *value);
            {
                ///
                "library"       "engine"
                ///
                /// "windows"   "\x55\x8B\x2A\x81\x2A\x2A\x2A\x2A\x2A\x56\x8B\x2A\x2A\x57\x8B\x2A\x2A\x85"                                                                                              /// [ HLDS 2020 ] CS/ CZ, DOD, HL, ... ( OLD )
                ///
                "windows"       "\x55\x8B\x2A\x81\x2A\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x33\x2A\x89\x2A\x2A\x56\x8B\x2A\x2A\x57\x8B\x2A\x2A\x85\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x85\x2A\x0F"              /// [ HLDS 2023 ] CS/ CZ, DOD, HL, ... ( NEW ) @ sub_101BDCF0()
                ///
                "linux"         "@Cvar_DirectSet"
                "mac"           "@Cvar_DirectSet"
                ///
            }
        }
    }
}
  1. /steamapps/common/Half-Life/cstrike/addons/amxmodx/data/gamedata/common.games/globalvars.engine.txt
/**
 * Do not edit this file.  Any changes will be overwritten by the gamedata
 * updater or by upgrading your AMX Mod X 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 AMXX's own.
 *
 * For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
 */

"Games"
{
    "#default"
    {
        "Offsets"
        {
            "svs"                   /// Used With   pfnGetCurrentPlayer     Base Address
            {
                ///
                /// "windows"       "8"     /// 2020 HLDS (CS/ CZ, DOD, HL, ...)
                ///
                "windows"           "13"    /// 2023 HLDS (CS/ CZ, DOD, HL, ...)
                ///
            }
        }

        "Addresses"
        {
            "realtime"
            {
                "windows"
                {
                    "signature"     "realtime"

                    "read"          "2"
                }
            }

            "sv"
            {
                "windows"
                {
                    "signature"     "sv"

                    "read"          "2"
                }
            }

            "g_pGameRules"
            {
                "signature"         "g_pGameRules"

                "windows"
                {
                    ///
                    /// "read"      "2"     /// [ HLDS 2020 ]   CS/ CZ
                    ///
                    "read"          "1"     /// [ HLDS 2023 ]   CS/ CZ, DOD, HL, ...
                    ///
                }

                "read"              "0"
            }
        }

        "Signatures"
        {
            "svs"                   /// server_static_t     svs
            {
                "library"           "engine"
                "linux"             "@svs"
                "mac"               "@svs"
            }

            "sv"                    /// server_t            sv
            {
                ///
                "library"           "engine"
                ///
                /// "windows"       "\x8B\x2A\x2A\x2A\x2A\x2A\x8D\x2A\x2A\x2A\x2A\x2A\x53\x33\x2A\x89"                                                                                                                      /// SVC_PlayerInfo()                [ 2020 HLDS ]   CS/ CZ, DOD, HL, ...
                ///
                "windows"           "\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x76\x2A\xA1\x2A\x2A\x2A\x2A\x85\x2A\x0F\x2A\x2A\x83\x2A\x2A\x74\x2A\x83\x2A\x2A\x2A\x2A\x2A\x2A\x74"                                  /// dword_10971F40 @ sub_101D1EF0() [ 2023 HLDS ]   CS/ CZ, DOD, HL, ...
                ///
                "linux"             "@sv"
                "mac"               "@sv"
                ///
            }

            "realtime"              /// double              realtime
            {
                ///
                "library"           "engine"
                ///
                /// "windows"       "\xDC\x2A\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x56"                                                                                                                                      /// SV_CheckTimeouts()              [ 2020 HLDS ]   CS/ CZ, DOD, HL, ...
                ///
                "windows"           "\xF2\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x66\x2A\x2A\x2A\x72\x2A\x3B\x2A\x7D\x2A\x8B\x2A\x8D\x2A\x2A\x2B\x2A\x8B\x2A\xC1\x2A\x2A\x81\x2A\x2A\x2A\x2A\x2A\xF3\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B"  /// qword_10B6A158 @ sub_10208750() [ 2023 HLDS ]   CS/ CZ, DOD, HL, ...
                ///
                "linux"             "@realtime"
                "mac"               "@realtime"
                ///
            }

            "g_pGameRules"          /// CGameRules *        g_pGameRules
            {
                ///
                "library"           "server"
                ///
                /// "windows"       "\x8B\x2A\x2A\x2A\x2A\x2A\x85\x2A\x74\x2A\x8B\x2A\xFF\x2A\x2A\xA1"                                                                                                                      /// StartFrame()                    [ 2020 HLDS ]   CS/ CZ
                ///
                "windows"           "\xA3\x2A\x2A\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x85\x2A\x75\x2A\x33\x2A\xEB"                                                                                                              /// dword_10130BA0 @ sub_100C2440() [ 2023 HLDS ]   CS/ CZ
                /// "windows"       "\xA3\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\xFF\x2A\x6A\x2A\xE8\x2A\x2A\x2A\x2A\x83\x2A\x2A\xA3\x2A\x2A\x2A\x2A\xA1"                                      /// dword_1013B31C @ sub_100BB790() [ 2023 HLDS ]   DOD
                /// "windows"       "\xA3\x2A\x2A\x2A\x2A\xFF\x2A\x2A\x2A\x2A\x2A\x85\x2A\x75\x2A\x33\x2A\xEB\x2A\x8D\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x89\x2A\x2A\x85\x2A\x74\x2A\x8B\x2A\x2A\x85\x2A\x75"      /// dword_100D74A4 @ sub_100985B0() [ 2023 HLDS ]   HL
                ///
                "linux"             "@g_pGameRules"
                "mac"               "@g_pGameRules"
                ///
            }
        }
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants