Re: offset for grenades, fakemeta
Quote:
Originally Posted by Hunter-Digital
(Post 778396)
thanks :P
but where did you get it from ? :-?
|
PHP Code:
#define EXTRAOFFSET_WEAPONS 4
#define OFFSET_ARMORTYPE 112 #define OFFSET_TEAM 114 #define OFFSET_CSMONEY 115 #define OFFSET_PRIMARYWEAPON 116 #define OFFSET_LASTACTIVITY 124 #define OFFSET_INTERNALMODEL 126 #define OFFSET_NVGOGGLES 129 #define OFFSET_DEFUSE_PLANT 193 #define OFFSET_VIP 209 #define OFFSET_TK 216 // 040926 #define OFFSET_HOSTAGEKILLS 217 #define OFFSET_MAPZONE 235 #define OFFSET_ISDRIVING 350 // 040926 #define OFFSET_STATIONARY 362 // 040927 (363 works also!) #define OFFSET_ZOOMTYPE 363
#define OFFSET_AWM_AMMO 377 // 041029: All of these *_AMMO:s were changed -5 #define OFFSET_SCOUT_AMMO 378 #define OFFSET_PARA_AMMO 379 #define OFFSET_FAMAS_AMMO 380 #define OFFSET_M3_AMMO 381 #define OFFSET_USP_AMMO 382 #define OFFSET_FIVESEVEN_AMMO 383 #define OFFSET_DEAGLE_AMMO 384 #define OFFSET_P228_AMMO 385 #define OFFSET_GLOCK_AMMO 386 #define OFFSET_FLASH_AMMO 387 #define OFFSET_HE_AMMO 388 #define OFFSET_SMOKE_AMMO 389 #define OFFSET_C4_AMMO 390
#define OFFSET_CSDEATHS 444 // 040926 #define OFFSET_SHIELD 510
// "weapon_*" entities #define OFFSET_WEAPONTYPE 43 #define OFFSET_CLIPAMMO 51 #define OFFSET_SILENCER_FIREMODE 74
// "hostage_entity" entities #define OFFSET_HOSTAGEFOLLOW 86 #define OFFSET_HOSTAGE_NEXTUSE 100 #define OFFSET_HOSTAGE_LASTUSE 483 #define OFFSET_HOSTAGEID 487
// "armoury_entity" #define OFFSET_ARMOURY_TYPE 34
// C4 offsets #define OFFSET_C4_EXPLODE_TIME 100 #define OFFSET_C4_DEFUSING 0x181
#define HAS_SHIELD (1<<24)
#define M4A1_SILENCED (1<<2) #define M4A1_ATTACHSILENCEANIM 6 #define M4A1_DETACHSILENCEANIM 13 #define USP_SILENCED (1<<0) #define USP_ATTACHSILENCEANIM 7 #define USP_DETACHSILENCEANIM 15
#define GLOCK_SEMIAUTOMATIC 0 #define GLOCK_BURSTMODE 2 #define FAMAS_AUTOMATIC 0 #define FAMAS_BURSTMODE 16
#define PLAYER_IS_VIP (1<<8)
#define PLAYER_IN_BUYZONE (1<<0)
#define CS_MAPZONE_BUY (1<<0) #define CS_MAPZONE_BOMBTARGET (1<<1) #define CS_MAPZONE_HOSTAGE_RESCUE (1<<2) #define CS_MAPZONE_ESCAPE (1<<3) #define CS_MAPZONE_VIP_SAFETY (1<<4)
/*#define TEAM_UNASSIGNED 0 *#define TEAM_T 1 *#define TEAM_CT 2 *#define TEAM_SPECTATOR 3*/
#define CAN_PLANT_BOMB (1<<8) // 256 #define HAS_DEFUSE_KIT (1<<16) // 65536
#define DEFUSER_COLOUR_R 0 #define DEFUSER_COLOUR_G 160 #define DEFUSER_COLOUR_B 0
#define HAS_NVGOGGLES (1<<0)
#define SCOREATTRIB_NOTHING 0 #define SCOREATTRIB_DEAD 1 #define SCOREATTRIB_BOMB 2 // t only #define SCOREATTRIB_VIP 4
/*#define CS_ARMOR_NONE 0 #define CS_ARMOR_KEVLAR 1*/ #define CS_ARMOR_ASSAULTSUIT 2
#define CS_FIRST_ZOOM 0x28 #define CS_SECOND_AWP_ZOOM 0xA #define CS_SECOND_NONAWP_ZOOM 0xF #define CS_AUGSG552_ZOOM 0x37 #define CS_NO_ZOOM 0x5A
#define cs_get_user_buyzone(%1) (get_pdata_int(%1,OFFSET_MAPZONE)&PLAYER_IN_BUYZONE) #define cs_get_user_hasprim(%1) get_pdata_int(%1,OFFSET_PRIMARYWEAPON) #define cs_get_user_mapzones(%1) get_pdata_int(%1,OFFSET_MAPZONE) #define cs_get_user_plant(%1) (get_pdata_int(%1,OFFSET_DEFUSE_PLANT)&CAN_PLANT_BOMB) #define cs_get_user_tked(%1) get_pdata_int(%1,OFFSET_TK) #define cs_get_user_deaths(%1) get_pdata_int(%1,OFFSET_CSDEATHS) #define cs_get_user_defuse(%1) (get_pdata_int(%1,OFFSET_DEFUSE_PLANT)&HAS_DEFUSE_KIT) #define cs_get_user_driving(%1) get_pdata_int(%1, OFFSET_ISDRIVING) #define cs_get_user_money(%1) get_pdata_int(%1,OFFSET_CSMONEY) #define cs_get_user_nvg(%1) (get_pdata_int(%1,OFFSET_NVGOGGLES) & HAS_NVGOGGLES) #define cs_get_user_shield(%1) (get_pdata_int(%1,OFFSET_SHIELD)&HAS_SHIELD) #define cs_get_user_stationary(%1) get_pdata_int(%1,OFFSET_STATIONARY) #define cs_get_user_vip(%1) (get_pdata_int(id, OFFSET_VIP) & PLAYER_IS_VIP)
#define cs_get_weapon_id(%1) get_pdata_int(%1,OFFSET_WEAPONTYPE,EXTRAOFFSET_WEAPONS) #define cs_get_weapon_ammo(%1) get_pdata_int(%1,OFFSET_CLIPAMMO,EXTRAOFFSET_WEAPONS) #define cs_set_weapon_ammo(%1,%2) set_pdata_int(%1,OFFSET_CLIPAMMO,%2,EXTRAOFFSET_WEAPONS)
enum CsTeams { CS_TEAM_UNASSIGNED, CS_TEAM_T, CS_TEAM_CT, CS_TEAM_SPECTATOR };
enum CS_Internal_Models { CS_DONTCHANGE = 0, CS_CT_URBAN = 1, CS_T_TERROR = 2, CS_T_LEET = 3, CS_T_ARCTIC = 4, CS_CT_GSG9 = 5, CS_CT_GIGN = 6, CS_CT_SAS = 7, CS_T_GUERILLA = 8, CS_CT_VIP = 9, CZ_T_MILITIA = 10, CZ_CT_SPETSNAZ = 11 };
enum { CS_RESET_ZOOM = 0, CS_SET_NO_ZOOM, CS_SET_FIRST_ZOOM, CS_SET_SECOND_ZOOM, CS_SET_AUGSG552_ZOOM, };
enum CsArmorType { CS_ARMOR_NONE = 0, // no armor CS_ARMOR_KEVLAR = 1, // armor CS_ARMOR_VESTHELM = 2 // armor and helmet };
stock cs_get_user_armor(id, &CsArmorType:iArmorType) { new Float:flArmorValue; pev(id, pev_armorvalue, flArmorValue);
iArmorType = CsArmorType:get_pdata_int(id, OFFSET_ARMORTYPE);
return floatround(flArmorValue); }
stock cs_set_user_armor(id, iArmorValue, CsArmorType:iArmorType) { set_pdata_int(id , OFFSET_ARMORTYPE, _:iArmorType); set_pev(id, pev_armorvalue, float(_:iArmorValue));
if ( iArmorType ) { static iMsgArmorType; if( !iMsgArmorType ) { iMsgArmorType = get_user_msgid("ArmorType"); } message_begin( MSG_ONE_UNRELIABLE , iMsgArmorType , _ , id ); write_byte( iArmorType == CS_ARMOR_VESTHELM ? 1 : 0 ); message_end(); } }
stock cs_get_user_bpammo(id, iWeapon) { new iOffset; switch(iWeapon) { case CSW_AWP: iOffset = OFFSET_AWM_AMMO; case CSW_SCOUT, CSW_AK47, CSW_G3SG1: iOffset = OFFSET_SCOUT_AMMO; case CSW_M249: iOffset = OFFSET_PARA_AMMO; case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: iOffset = OFFSET_FAMAS_AMMO; case CSW_M3, CSW_XM1014: iOffset = OFFSET_M3_AMMO; case CSW_USP, CSW_UMP45, CSW_MAC10: iOffset = OFFSET_USP_AMMO; case CSW_FIVESEVEN, CSW_P90: iOffset = OFFSET_FIVESEVEN_AMMO; case CSW_DEAGLE: iOffset = OFFSET_DEAGLE_AMMO; case CSW_P228: iOffset = OFFSET_P228_AMMO; case CSW_GLOCK18, CSW_MP5NAVY, CSW_TMP, CSW_ELITE: iOffset = OFFSET_GLOCK_AMMO; case CSW_FLASHBANG: iOffset = OFFSET_FLASH_AMMO; case CSW_HEGRENADE: iOffset = OFFSET_HE_AMMO; case CSW_SMOKEGRENADE: iOffset = OFFSET_SMOKE_AMMO; case CSW_C4: iOffset = OFFSET_C4_AMMO; default:return 0; } return get_pdata_int(id, iOffset); }
stock cs_set_user_bpammo(id, iWeapon, iAmount) { new iOffset; switch(iWeapon) { case CSW_AWP: iOffset = OFFSET_AWM_AMMO; case CSW_SCOUT, CSW_AK47, CSW_G3SG1: iOffset = OFFSET_SCOUT_AMMO; case CSW_M249: iOffset = OFFSET_PARA_AMMO; case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: iOffset = OFFSET_FAMAS_AMMO; case CSW_M3, CSW_XM1014: iOffset = OFFSET_M3_AMMO; case CSW_USP, CSW_UMP45, CSW_MAC10: iOffset = OFFSET_USP_AMMO; case CSW_FIVESEVEN, CSW_P90: iOffset = OFFSET_FIVESEVEN_AMMO; case CSW_DEAGLE: iOffset = OFFSET_DEAGLE_AMMO; case CSW_P228: iOffset = OFFSET_P228_AMMO; case CSW_GLOCK18, CSW_MP5NAVY, CSW_TMP, CSW_ELITE: iOffset = OFFSET_GLOCK_AMMO; case CSW_FLASHBANG: iOffset = OFFSET_FLASH_AMMO; case CSW_HEGRENADE: iOffset = OFFSET_HE_AMMO; case CSW_SMOKEGRENADE: iOffset = OFFSET_SMOKE_AMMO; case CSW_C4: iOffset = OFFSET_C4_AMMO; default:return; } set_pdata_int(id, iOffset, iAmount); }
stock cs_set_user_plant(id, plant = 1, showbombicon = 1, backpack = 0) { static iMsgStatusIcon; if( !iMsgStatusIcon ) { iMsgStatusIcon = get_user_msgid("StatusIcon"); }
if( plant ) { if(backpack) { set_pev(id, pev_body, 1); }
set_pdata_int(id,OFFSET_DEFUSE_PLANT, cs_get_user_plant(id) | CAN_PLANT_BOMB); if( showbombicon ) { message_begin(MSG_ONE_UNRELIABLE, iMsgStatusIcon, _, id); write_byte(1); write_string("c4"); write_byte(DEFUSER_COLOUR_R); write_byte(DEFUSER_COLOUR_G); write_byte(DEFUSER_COLOUR_B); message_end(); } } else { set_pdata_int(id,OFFSET_DEFUSE_PLANT, cs_get_user_plant(id) & ~CAN_PLANT_BOMB); message_begin(MSG_ONE_UNRELIABLE, iMsgStatusIcon, _, id); write_byte(0); write_string("c4"); message_end();
if(backpack) { set_pev(id, pev_body, 0); } } }
stock cs_set_user_tked(id, tk = 1, subtract = 1) { set_pdata_int(id, OFFSET_TK, tk ? 1 : 0);
if( substract ) { static Float:flFrags; pev(id, pev_frags, flFrags); flFrags -= float(subtract); set_pev(id, pev_frags, flFrags);
static iMsgScoreInfo; if( iMsgScoreInfo || (iMsgScoreInfo = get_user_msgid("ScoreInfo")) ) { message_begin(MSG_BROADCAST, iMsgScoreInfo); write_byte(id); write_short(floatround(flFrags)); write_short(cs_get_user_deaths(%1)); write_short(0); write_short(cs_get_user_team(id)); message_end(); } } }
stock cs_user_spawn(id) { set_pev(id, pev_deadflag, DEAD_RESPAWNABLE); dllfunc(DLLFunc_Spawn, id); set_pev(id, pev_iuser1, 0); }
stock cs_set_user_deaths(id, iDeaths) { set_pdata_int(id, OFFSET_CSDEATHS, iDeaths);
static iMsgScoreInfo;
static Float:flFrags; pev(id, pev_health, flFrags);
if( iMsgScoreInfo || (iMsgScoreInfo = get_user_msgid("ScoreInfo")) ) { message_begin(MSG_BROADCAST, iMsgScoreInfo); write_byte(id); write_short(floatround(flFrags)); write_short(iDeaths); write_short(0); write_short(_:cs_get_user_team(id)); message_end(); } }
stock cs_set_user_defuse(id, iDefusekit = 1, iRed = 0, iGreen = 160, iBlue = 0, icon[] = "defuser", iFlash = 0) { static iMsgStatusIcon; if( iMsgStatusIcon || (iMsgStatusIcon = get_user_msgid("StatusIcon")) ) {
if( iDefusekit ) { set_pev(id, pev_body, 1);
set_pdata_int(id, OFFSET_DEFUSE_PLANT, get_pdata_int(id, OFFSET_DEFUSE_PLANT) | HAS_DEFUSE_KIT);
message_begin(MSG_ONE_UNRELIABLE, iMsgStatusIcon, _, id); write_byte(iFlash ? 2 : 1); write_string(icon); write_byte(iRed); write_byte(iGreen); write_byte(iBlue); message_end(); } else { set_pdata_int(id, OFFSET_DEFUSE_PLANT, get_pdata_int(id, OFFSET_DEFUSE_PLANT) & ~HAS_DEFUSE_KIT);
message_begin(MSG_ONE_UNRELIABLE, iMsgStatusIcon, _, id); write_byte(0); write_string(icon); message_end();
set_pev(id, pev_body, 0); } } }
stock cs_set_user_money(id, iMoney, iFlash = 0) { set_pdata_int(id,OFFSET_CSMONEY,iMoney);
static iMsgMoney; if( iMsgMoney || (iMsgMoney = get_user_msgid("Money")) ) { message_begin(MSG_ONE_UNRELIABLE, iMsgMoney, _, id); write_long(iMoney); write_byte(iFlash ? 1 : 0); message_end(); } }
stock cs_set_user_nvg(id, nvgoggles = 1) { if( nvgoggles ) { set_pdata_int(id, OFFSET_NVGOGGLES, get_pdata_int(id,OFFSET_NVGOGGLES) | HAS_NVGOGGLES); } else { set_pdata_int(id, OFFSET_NVGOGGLES, get_pdata_int(id,OFFSET_NVGOGGLES) & ~HAS_NVGOGGLES); } }
stock CsTeams:cs_get_user_team(id, &{CsInternalModel,_}:iModel = CsInternalModel:CS_DONTCHANGE) { iModel = CsInternalModel:get_pdata_int(id, OFFSET_INTERNALMODEL); return CsTeams:get_pdata_int(id, OFFSET_TEAM); }
stock cs_set_user_team(id, {CsTeams,_}:iTeam, {CsInternalModel,_}:iModel = CsInternalModel:CS_DONTCHANGE) { if( iTeam > CS_TEAM_SPECTATOR ) return;
set_pdata_int(id, OFFSET_TEAM, _:iTeam);
if( iModel ) { set_pdata_int(id, OFFSET_INTERNALMODEL, _:iModel); }
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
static const szTeams[] = { "UNASSIGNED" , "TERRORIST" , "CT" , "SPECTATOR" };
static iMsgTeamInfo; if( iMsgTeamInfo || (iMsgTeamInfo = get_user_msgid("TeamInfo")) ) { emessage_begin(MSG_ALL, iMsgTeamInfo); ewrite_byte(id); ewrite_string(szTeams[_:iTeam]); emessage_end(); } }
stock cs_get_weapon_silen(index) { switch( cs_get_weapon_id(index) ) { case CSW_M4A1: { return (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) & M4A1_SILENCED); } case CSW_USP: { return (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) & USP_SILENCED); } } return 0; }
stock cs_set_weapon_silen(index, silence = 1, draw_animation = 1) { switch(cs_get_weapon_id(index)) { case CSW_M4A1: { new silencemode = get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS); if(silence) { if (!(silencemode & M4A1_SILENCED)) { silencemode |= M4A1_SILENCED; set_pdata_int(index,OFFSET_SILENCER_FIREMODE,silencemode,EXTRAOFFSET_WEAPONS);
if (draw_animation) { new id = pev(index, pev_owner); if( id ) { set_pev(id, pev_weaponanim, M4A1_ATTACHSILENCEANIM); } } } } else if(silencemode & M4A1_SILENCED) { silencemode &= ~M4A1_SILENCED; set_pdata_int(index,OFFSET_SILENCER_FIREMODE,silencemode,EXTRAOFFSET_WEAPONS);
if (draw_animation) { new id = pev(index, pev_owner); if( id ) { set_pev(id, pev_weaponanim, M4A1_DETACHSILENCEANIM); } } } } case CSW_USP: { new silencemode = get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS); if (silence) { if (!(silencemode & USP_SILENCED)) { silencemode |= USP_SILENCED; set_pdata_int(index,OFFSET_SILENCER_FIREMODE,silencemode,EXTRAOFFSET_WEAPONS);
if (draw_animation) { new id = pev(index, pev_owner); if( id ) { set_pev(id, pev_weaponanim, USP_ATTACHSILENCEANIM); } } } } else if (silencemode & USP_SILENCED) { silencemode &= ~USP_SILENCED; set_pdata_int(index,OFFSET_SILENCER_FIREMODE,silencemode,EXTRAOFFSET_WEAPONS);
if (draw_animation) { new id = pev(index, pev_owner); if( id ) { set_pev(id, pev_weaponanim, USP_DETACHSILENCEANIM); } } } } default:return 0; }
return 1; }
stock cs_get_weapon_burstmode(index) { switch(cs_get_weapon_id(index)) { case CSW_GLOCK18: { return (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) == GLOCK_BURSTMODE); } case CSW_FAMAS: { return (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) == FAMAS_BURSTMODE); } } return 0; }
stock cs_set_weapon_burst(index, burstmode = 1) { switch (cs_get_weapon_id(index)) { case CSW_GLOCK18: { if (burstmode) { if (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) != GLOCK_BURSTMODE) { set_pdata_int(index,OFFSET_SILENCER_FIREMODE,GLOCK_BURSTMODE,EXTRAOFFSET_WEAPONS);
new id = pev(index, pev_owner); if( id ) { client_print(id, print_center, "#Switch_To_BurstFire"); } } } else if (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) != GLOCK_SEMIAUTOMATIC) { set_pdata_int(index,OFFSET_SILENCER_FIREMODE,GLOCK_SEMIAUTOMATIC,EXTRAOFFSET_WEAPONS);
new id = pev(index, pev_owner); if( id ) { client_print(id, print_center, "#Switch_To_SemiAuto"); } } } case CSW_FAMAS: { if (burstmode) { if (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) != FAMAS_BURSTMODE) { set_pdata_int(index,OFFSET_SILENCER_FIREMODE,FAMAS_BURSTMODE,EXTRAOFFSET_WEAPONS);
new id = pev(index, pev_owner); if( id ) { client_print(id, print_center, "#Switch_To_BurstFire"); } } } else if (get_pdata_int(index,OFFSET_SILENCER_FIREMODE,EXTRAOFFSET_WEAPONS) != FAMAS_AUTOMATIC) { set_pdata_int(index,OFFSET_SILENCER_FIREMODE,FAMAS_AUTOMATIC,EXTRAOFFSET_WEAPONS);
new id = pev(index, pev_owner); if( id ) { client_print(id, print_center, "#Switch_To_FullAuto"); } } } default: { return 0; } }
return 1; }
stock cs_set_user_vip(index, vip = 1, updateModel = 1, updateScoreboard = 1) { if (vip) { set_pdata_int(id,OFFSET_VIP, get_pdata_int(id,OFFSET_VIP)|PLAYER_IS_VIP);
if (updateModel) { set_pdata_int(id,OFFSET_INTERNALMODEL, _:CS_CT_VIP); dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id)); }
if (updateScoreboard) { static iMsgScoreAttrib if( iMsgScoreAttrib || (iMsgScoreAttrib = get_user_msgid("ScoreAttrib")) ) { message_begin(MSG_BROADCAST, iMsgScoreAttrib); write_byte(id); write_byte(SCOREATTRIB_VIP); message_end(); } } } else { set_pdata_int(id,OFFSET_VIP, get_pdata_int(id,OFFSET_VIP) &= ~PLAYER_IS_VIP);
if (updateModel) { set_pdata_int(id,OFFSET_INTERNALMODEL, _:CS_CT_GIGN); // hardcoded to gign model dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id)); }
if (updateScoreboard) { static iMsgScoreAttrib if( iMsgScoreAttrib || (iMsgScoreAttrib = get_user_msgid("ScoreAttrib")) ) { message_begin(MSG_BROADCAST, iMsgScoreAttrib); write_byte(id); write_byte(is_user_alive(id) ? SCOREATTRIB_NOTHING : SCOREATTRIB_DEAD); message_end(); } } }
return 1; }
|