HLFX.Ru Forum
Показать все 5 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Получение кол-ва патронов на клиенте (https://hlfx.ru/forum/showthread.php?threadid=2921)


Отправлено Alex_Gordon 14-07-2011 в 09:36:

Получение кол-ва патронов на клиенте

Помогите пожалуйста.
Пытаюсь получить кол-во патронов на клиенте. Написал для этого такую функцию:

C++ Source Code:
1
int getAmmoCount()
2
{
3
  if( gHUD.m_Ammo.m_pWeapon )
4
  {
5
    return gHUD.m_Ammo.m_pWeapon->iClip;
6
  }
7
  else
8
  {
9
    return 0;
10
  }
11
}


Но компилятро выдает ошибки:
C++ Source Code:
C:\src\cl_dll\tri.cpp(356) : error C2248: 'm_pWeapon' : cannot access private member declared in class 'CHudAmmo'
C:\src\cl_dll\hud.h(145) : see declaration of 'm_pWeapon'


Подскажите, как получить это количество?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 14-07-2011 в 10:43:

Alex_Gordon в hud.h

C++ Source Code:
1
class CHudAmmo: public CHudBase
2
{
3
public:
4
  int Init( void );
5
  int VidInit( void );
6
  int Draw(float flTime);
7
  void Think(void);
8
  void Reset(void);
9
  int DrawWList(float flTime);
10
  int MsgFunc_CurWeapon(const char *pszName, int iSize, void *pbuf);
11
  int MsgFunc_WeaponList(const char *pszName, int iSize, void *pbuf);
12
  int MsgFunc_AmmoX(const char *pszName, int iSize, void *pbuf);
13
  int MsgFunc_AmmoPickup( const char *pszName, int iSize, void *pbuf );
14
  int MsgFunc_WeapPickup( const char *pszName, int iSize, void *pbuf );
15
  int MsgFunc_ItemPickup( const char *pszName, int iSize, void *pbuf );
16
  int MsgFunc_HideWeapon( const char *pszName, int iSize, void *pbuf );
17
 
18
  void SlotInput( int iSlot );
19
  void _cdecl UserCmd_Slot1( void );
20
  void _cdecl UserCmd_Slot2( void );
21
  void _cdecl UserCmd_Slot3( void );
22
  void _cdecl UserCmd_Slot4( void );
23
  void _cdecl UserCmd_Slot5( void );
24
  void _cdecl UserCmd_Slot6( void );
25
  void _cdecl UserCmd_Slot7( void );
26
  void _cdecl UserCmd_Slot8( void );
27
  void _cdecl UserCmd_Slot9( void );
28
  void _cdecl UserCmd_Slot10( void );
29
  void _cdecl UserCmd_Close( void );
30
  void _cdecl UserCmd_NextWeapon( void );
31
  void _cdecl UserCmd_PrevWeapon( void );
32
 
33
  int getAmmoCount()
34
  {
35
    if( m_pWeapon )
36
      return m_pWeapon->iClip;
37
    return 0;
38
  }
39
 
40
private:
41
  float m_fFade;
42
  RGBA  m_rgba;
43
  WEAPON *m_pWeapon;
44
  int	m_HUD_bucket0;
45
  int m_HUD_selection;
46
 
47
};

Вызывать, например так:
C++ Source Code:
gEngfuncs.Con_Printf( "cur ammo %i\n", gHUD.m_Ammo.getAmmoCount());

Правда сложно?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено KiQ 16-07-2011 в 09:36:

Хм. А если сделать m_pWeapon public?

__________________
-Brain is dead-


Отправлено Alex_Gordon 16-07-2011 в 10:16:

Дядя Миша, KiQ, буквально через 10 минут после того, как я создал тему, я разобрался. Спасибо всем.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 16-07-2011 в 10:34:

Alex_Gordon
Надеюсь, в будущем, перед тем, как создавать тему, ты будешь выжидать как минимум 10 минут.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 00:58.
Показать все 5 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024