View Single Post
Re: Is this possible to pass #define from makefile?
Old
  (#4)
KWo
Developer of PODBot mm
 
KWo's Avatar
 
Status: Offline
Posts: 3,425
Join Date: Apr 2004
Default Re: Is this possible to pass #define from makefile? - 20-05-2006

Quote:
Originally Posted by strelomet
In my oponion using offsets for pvPrivateData is not good idea, since they can be broken by newest cs update.
They are unchanged since CS1.5. I was afraiding the same way You are now, but the specialists from AMX and AMX X explained me that this stuff is safe. Of course - there are in my code some checks if the data contains really this what I'm expecting to get. Here is the table for all private data "OFFSETS" used by AMX and AMX X.
Quote:
Originally Posted by cstrike.h taken from AMX X 1.71
Code:
#if defined __linux__
    #define EXTRAOFFSET                    5 // offsets 5 higher in Linux builds
    #define EXTRAOFFSET_WEAPONS            4 // weapon offsets are obviously only 4 steps higher on Linux!
#else
    #define EXTRAOFFSET                    0 // no change in Windows builds
    #define EXTRAOFFSET_WEAPONS            0
#endif // defined __linux__
/*
    Offset history:
    041029:
    Confirmed (pretty much) ALL offsets for 32 bit Windows, 32 bit Linux and amd64 (yes that's all of them).
    Found out that weapon offsets are only +4 higher on Linux.
    Also backpack ammo offsets were all obviously 5 steps too high since unknown time...

*/

#define HAS_SHIELD      (1<<24) //16777216 

// "player" entities
#if !defined __amd64__
    // 32 bit offsets here
    #define OFFSET_ARMORTYPE            112 + EXTRAOFFSET
    #define OFFSET_TEAM                    114 + EXTRAOFFSET
    #define OFFSET_CSMONEY                115 + EXTRAOFFSET
    #define OFFSET_PRIMARYWEAPON        116 + EXTRAOFFSET
    #define OFFSET_INTERNALMODEL        126 + EXTRAOFFSET
    #define OFFSET_NVGOGGLES            129 + EXTRAOFFSET
    #define OFFSET_DEFUSE_PLANT            193 + EXTRAOFFSET
    #define OFFSET_VIP                    209 + EXTRAOFFSET
    #define OFFSET_TK                    216 + EXTRAOFFSET // 040926
    #define OFFSET_BUYZONE                235 + EXTRAOFFSET
    #define OFFSET_ISDRIVING            350 + EXTRAOFFSET // 040926
    #define OFFSET_STATIONARY            362 + EXTRAOFFSET // 040927 (363 works also!)

    #define OFFSET_AWM_AMMO                377 + EXTRAOFFSET // 041029: All of these *_AMMO:s were changed -5
    #define OFFSET_SCOUT_AMMO            378 + EXTRAOFFSET
    #define OFFSET_PARA_AMMO            379 + EXTRAOFFSET
    #define OFFSET_FAMAS_AMMO            380 + EXTRAOFFSET
    #define OFFSET_M3_AMMO                381 + EXTRAOFFSET
    #define OFFSET_USP_AMMO                382 + EXTRAOFFSET
    #define OFFSET_FIVESEVEN_AMMO        383 + EXTRAOFFSET
    #define OFFSET_DEAGLE_AMMO            384 + EXTRAOFFSET
    #define OFFSET_P228_AMMO            385 + EXTRAOFFSET
    #define OFFSET_GLOCK_AMMO            386 + EXTRAOFFSET
    #define OFFSET_FLASH_AMMO            387 + EXTRAOFFSET
    #define OFFSET_HE_AMMO                388 + EXTRAOFFSET
    #define OFFSET_SMOKE_AMMO            389 + EXTRAOFFSET
    #define OFFSET_C4_AMMO                390    + EXTRAOFFSET

    #define OFFSET_CSDEATHS                444 + EXTRAOFFSET // 040926
    #define OFFSET_SHIELD                510 + EXTRAOFFSET
    // "weapon_*" entities
    #define OFFSET_WEAPONTYPE            43 + EXTRAOFFSET_WEAPONS
    #define OFFSET_CLIPAMMO                51 + EXTRAOFFSET_WEAPONS
    #define OFFSET_SILENCER_FIREMODE    74 + EXTRAOFFSET_WEAPONS
    // "hostage_entity" entities
    #define OFFSET_HOSTAGEFOLLOW        86 + EXTRAOFFSET
    #define OFFSET_HOSTAGEID            487 + EXTRAOFFSET
    // "armoury_entity"
    #define OFFSET_ARMOURY_TYPE            34 + EXTRAOFFSET_WEAPONS
#else
    // Amd64 offsets here
    #define OFFSET_ARMORTYPE            137 + EXTRAOFFSET
    #define OFFSET_TEAM                    139 + EXTRAOFFSET // +25
    #define OFFSET_CSMONEY                140 + EXTRAOFFSET // +25
    #define OFFSET_PRIMARYWEAPON        141 + EXTRAOFFSET // +25
    #define OFFSET_INTERNALMODEL        152 + EXTRAOFFSET // +26
    #define OFFSET_NVGOGGLES            155 + EXTRAOFFSET // +26
    #define OFFSET_DEFUSE_PLANT            219 + EXTRAOFFSET // +26
    #define OFFSET_VIP                    242 + EXTRAOFFSET // +27
    #define OFFSET_TK                    249 + EXTRAOFFSET // +33 040927
    #define OFFSET_BUYZONE                268 + EXTRAOFFSET // +27
    #define OFFSET_ISDRIVING            386 + EXTRAOFFSET // 040927
    #define OFFSET_STATIONARY            400 + EXTRAOFFSET // 040927 (401 works also)

    #define OFFSET_AWM_AMMO                426 + EXTRAOFFSET // +44
    #define OFFSET_SCOUT_AMMO            427 + EXTRAOFFSET // +44
    #define OFFSET_PARA_AMMO            428 + EXTRAOFFSET // +44
    #define OFFSET_FAMAS_AMMO            429 + EXTRAOFFSET // +44
    #define OFFSET_M3_AMMO                430 + EXTRAOFFSET // +44
    #define OFFSET_USP_AMMO                431 + EXTRAOFFSET // +44
    #define OFFSET_FIVESEVEN_AMMO        432 + EXTRAOFFSET // +44
    #define OFFSET_DEAGLE_AMMO            433 + EXTRAOFFSET // +44
    #define OFFSET_P228_AMMO            434 + EXTRAOFFSET // +44
    #define OFFSET_GLOCK_AMMO            435 + EXTRAOFFSET // +44
    #define OFFSET_FLASH_AMMO            436 + EXTRAOFFSET // +44
    #define OFFSET_HE_AMMO                437 + EXTRAOFFSET // +44
    #define OFFSET_SMOKE_AMMO            438 + EXTRAOFFSET // +44
    #define OFFSET_C4_AMMO                439    + EXTRAOFFSET // +44

    #define OFFSET_CSDEATHS                493 + EXTRAOFFSET // +49
    #define OFFSET_SHIELD                559 + EXTRAOFFSET
    // "weapon_*" entities
    #define OFFSET_WEAPONTYPE            57 + EXTRAOFFSET // +14
    #define OFFSET_CLIPAMMO                65 + EXTRAOFFSET // +14
    #define OFFSET_SILENCER_FIREMODE    88 + EXTRAOFFSET // +14
    // "hostage_entity" entities
    #define OFFSET_HOSTAGEFOLLOW        51 + EXTRAOFFSET // +21, long=51, int=107! (must use the long* offset because pointers on amd64 are stored the size of longs, 8 bytes, instead of the usual int 4 bytes.)
    #define OFFSET_HOSTAGEID            516 + EXTRAOFFSET // +29
#endif
  
Reply With Quote