Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 28 мар 2024, 16:25

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 08 июн 2010, 12:21 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Информация по Half-Life (valve) pvPrivateData оффсетам

Что такое pvPrivateData можно узнать здесь.
Здесь приведен список найденных мною оффсетов для Half-Life (valve).

Код:
// CBasePlayerItem - linux dif 4
CBasePlayer*      m_pPlayer            28   // ( get_pdata_cbase() )
CBasePlayerItem*   m_pNext               29   // ( get_pdata_cbase() )
int               m_iId               30   // HLW_*.   

// CBasePlayerWeapon - linux dif 4
int             m_iPlayEmptySound      31   // None.
int             m_fFireOnEmpty         32   // None.
float             m_flPumpTime         33   // None.
int               m_fInSpecialReload      34   // Are we in the middle of a reload for the shotguns
float            m_flNextPrimaryAttack   35   // soonest time ItemPostFrame will call PrimaryAttack
float            m_flNextSecondaryAttack   36   // soonest time ItemPostFrame will call SecondaryAttack
float            m_flTimeWeaponIdle      37   // soonest time ItemPostFrame will call WeaponIdle
int               m_iPrimaryAmmoType      38   // "primary" ammo index into players m_rgAmmo[]
int               m_iSecondaryAmmoType   39   // "secondary" ammo index into players m_rgAmmo[]
int               m_iClip               40   // number of shots left in the primary weapon clip, -1 it not used
int               m_iClientClip         41   // the last version of m_iClip sent to hud dll
int               m_iClientWeaponState   42   // the last version of the weapon state sent to hud dll (is current weapon, is on target)
int               m_fInReload            43   // Are we in the middle of a reload;
int               m_iDefaultAmmo         44   // How much ammo you get when you pick up this weapon as placed by a level designer

// Weaponbox
int               iBPAmmo               60   // ammo in weapombox

// CPython (weapon_python) - linux dif 4
int               m_fInZoom            45   // Are we in zoom

// CCrossbow (weapon_crossbow) - linux dif 4
int               m_fInZoom            45   // Are we in zoom

// CGauss (weapon_gauss) - linux dif 4
int               m_fInAttack            19   // gauss attack mode
int               m_fPrimaryFire         49   // Is primary attack

// CRpg (weapon_rpg) - linux dif 4
CLaserSpot*         m_pSpot               45   // laserdot entity
int               m_fSpotActive         46   // is laserdot active

// CRpgRocket - linux dif 4
CRpg            m_pLauncher            168   // remember what RPG fired me

// CSqueakGrenade (monster_tripmine) - linux dif 4
float            m_flDie               166   // detonation time

// CSatchel (weapon_satchel) - linux dif 4
int               m_chargeReady         18

// CTripmineGrenade (monster_tripmine) - linux dif 4
float            m_flPowerUp            166
float            m_vecEnd            170-172
float            m_flBeamLength         173
CBeam*            m_pBeam               176
Vector            m_posOwner;            180
Vector            m_angleOwner;         192
edict_t*         m_pRealOwner;         204

// CBaseMonster - linux dif 5
Activity         m_Activity            88   // what the monster is doing (animation).
Activity         m_IdealActivity         89   // monster should switch to this activity.
int               m_LastHitGroup         90   // the last body region that took damage
float            m_flNextAttack         148   // cannot attack again until this time
int               m_bitsDamageType      149   // what types of damage has monster (player) taken
EHANDLE            m_hEnemy            244   // the entity that the monster is fighting.
int               m_lastDamageAmount      270   // Last damage taken

// CBasePlayer (player) - linux dif 5
int               m_iFlashBattery         178   // Flashlight Battery Draw
int               m_afButtonPressed      179
float            m_flSndRange         ??184   // dist from player to sound entity
float            m_flFallVelocity      185   // Player's fall speed
int               m_rgItems[MAX_ITEMS]   186-190
int               m_fKnownItem         191   // True when a new item needs to be added
int               m_fNewAmmo            192   // True when a new item has been added
unsigned int      m_afPhysicsFlags      193   // physics flags - set when 'normal' physics should be revisited or overriden
float            m_fNextSuicideTime      ??194   // the time after which the player can next use the suicide command
BOOL            m_fLongJump            291   // does this player have the longjump module?
int               m_iFOV               298   // Field of view.
int               m_iClientFOV          299   // Client's known FOV.
int               m_pActiveItem         306   // (get_pdata_cbase)
int               m_pClientActiveItem      307   // Client version of the active item. (get_pdata_cbase)
int               m_pLastItem            308   // (get_pdata_cbase)
int               m_rgAmmo            310-321   // Shared ammo slots.
int               m_rgAmmoLast         342-353   // Shared ammo slots.
int               m_iDeaths            377   // Player deaths

// CWallHealth (func_healthcharger) and CRecharge (func_recharge) - linux dif 4
int               m_iJuice            62   // healthcharger capacity
int               m_iOn               63   // 0 = off, 1 = startup, 2 = going
float            m_flSoundTime         64
При нахождения новых оффсетов информация будет обновляться

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 08 июн 2010, 12:29 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Это, имхо, лучше сразу в вики.


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 10 мар 2011, 08:36 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Код:
// CSqueakGrenade (monster_tripmine) - linux dif 4
float         m_flDie      166   // detonation time

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 21 июл 2011, 07:01 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Код:
//CBaseMonster - linux dif 5
float         m_flNextAttack      148

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 22 июл 2011, 11:58 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Код:
// CSatchel (weapon_satchel) - linux dif 4
int         m_chargeReady      18

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 22 июл 2011, 14:14 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Код:
// CTripmineGrenade (monster_tripmine) - linux dif 4
float         m_flPowerUp         166
float         m_flBeamLength         173
CBeam      m_pBeam         176

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 24 июл 2011, 16:13 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Код:
// CBasePlayer (player) - linux dif 5
int           m_afButtonPressed        179

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 30 июл 2011, 07:26 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Код:
// CBaseMonster - linux dif 5
Activity         m_Activity         88    // what the monster is doing (animation).
Activity         m_IdealActivity      89   // monster should switch to this activity.
int                 m_bitsDamageType   149  // what types of damage has monster (player) taken
EHANDLE (use get_pdata_ent)         m_hEnemy         244  // the entity that the monster is fighting.

Код:
// CBasePlayer (player) - linux dif 5
BOOL         m_fLongJump                  291  // does this player have the longjump module?

Код:
// CTripmineGrenade (monster_tripmine) - linux dif 4
Float                m_vecEnd         170-172

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 09 сен 2012, 09:54 
Не в сети
Зарегистрирован:
06 авг 2010, 10:25
Последнее посещение:
20 янв 2021, 16:32
Сообщения: 695
Откуда: Uzbekistan
Нашел два оффсета для ручных гранат.
  • m_flStartThrow - время начала броска (gametime), игрок снял чеку, но не кинул гранату
  • m_flReleaseThrow - время, когда игрок бросил гранату (gametime)

Код:
#define m_flReleaseThrow    15
#define m_flStartThrow       16

На практике польза будет только от m_flStartThrow.
Я использовал эти оффсеты для плагина таймера гранаты. Время до взрыва гранаты всего 3 секунды.

Небольшой stock для получения оставшегося времени удержания гранаты:
Код:
#define m_flStartThrow       16

stock Float:hl_get_hgrenade_fuse(ent){
   return (get_pdata_float(ent,m_flStartThrow,4)+3.0)-get_gametime()
}

Если полученное время пойдет в минус, а игрок еще не выбросил её, то граната взорвется у него в руках при броске.

Пример использования стока:
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define m_flStartThrow       16

public plugin_init() {
   register_plugin("GrenadeFuse Test","1337","GordonFreeman")
   
   RegisterHam(Ham_Weapon_PrimaryAttack,"weapon_handgrenade","fw_HandGrenadeIdle")
}

public fw_HandGrenadeIdle(ent){
   static id,Float:throw
   
   id = pev(ent,pev_owner)
   throw = hl_get_hgrenade_fuse(ent)
   
   if(throw>0)
      return HAM_IGNORED
      
   set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 0.5)
   show_hudmessage(id, "AHAHAHAHAHAHAHAH XDDD")
   
   return HAM_IGNORED
}

stock Float:hl_get_hgrenade_fuse(ent){
   return (get_pdata_float(ent,m_flStartThrow,4)+3.0)-get_gametime()
}

Если игрок передержал гранату, то выйдет следующее сообщение:
Вложение:
nade_fail.JPG
nade_fail.JPG [ 8.79 КБ | Просмотров: 8269 ]


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 29 июн 2014, 16:25 
Не в сети
Аватара пользователя
Зарегистрирован:
15 апр 2011, 22:26
Последнее посещение:
20 май 2018, 00:43
Сообщения: 164
Откуда: Астрахань
KORD_12.7 писал(а):
int m_rgAmmo 310-321 // Shared ammo slots.

Код:
int OFFSET_AMMO_SHOTGUN         310 // Max ammo: 125
int OFFSET_AMMO_9MM             311 // Max ammo: 250
int OFFSET_AMMO_ARGRENADE       312 // Max ammo: 10
int OFFSET_AMMO_357             313 // Max ammo: 36
int OFFSET_AMMO_GAUSS           314 // Max ammo: 100
int OFFSET_AMMO_RPG             315 // Max ammo: 5
int OFFSET_AMMO_CROSSBOW        316 // Max ammo: 50
int OFFSET_AMMO_TRIPMINE        317 // Max ammo: 10
int OFFSET_AMMO_SATCHEL         318 // Max ammo: 10
int OFFSET_AMMO_HANDGRENADE     319 // Max ammo: 10
int OFFSET_AMMO_SNARK           320 // Max ammo: 15
int OFFSET_AMMO_HORNETGUN       321 // Max ammo: 8

Пусть лежит здесь, может, кому-нибудь пригодится :)

_________________
Изображение


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB