HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Help
M16 с глушаком
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
MadKing
Частый гость

Дата регистрации: Jun 2009
Проживает: (void)
Сообщений: 90

Рейтинг



Post Help

Всем хай, давно у вас не писал...
Я тут делаю М16... всё работает отлично, но у меня глюки с глушителем(моделька из CSCZ) в сервере у меня там на этот счёт все правильно написано, за это я ручаюсь (переменная для глушака - int Silincer - правдо она, если мне не изменяет память, приватная) а вот на клиенте я вообще не упоминал про глушитель, вопрос - как это там "упоминуть"?
И можно ли там использовать Silincer???

Сообщить модератору | IP: Записан
Сообщение: 49797

Старое сообщение 28-12-2009 02:31
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35003
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Не знаю, как ты делал код, но если как в СДК 2.3, то инфу о глушителе на клиент надо передавать. Скажем, через параметр евента.

__________________

Сообщить модератору | IP: Записан
Сообщение: 49798

Старое сообщение 28-12-2009 04:58
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33014
Нанёс повреждений: 392 ед.

Рейтинг



MadKing глушитель - чисто серверная фишка.
На клиент надо передавать разве что изменившийся боди вьюмодели.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 49803

Старое сообщение 28-12-2009 07:43
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35003
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


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

__________________

Сообщить модератору | IP: Записан
Сообщение: 49805

Старое сообщение 28-12-2009 08:58
-
MadKing
Частый гость

Дата регистрации: Jun 2009
Проживает: (void)
Сообщений: 90

Рейтинг



XaeroX спасибо, но тыж знаешь шо я не очень силён в кодинге и то шо для профи кажется обычным делом для меня - по этому прошу написать какие именно команды надо писать и с каким синтаксисом
Буду преблагодарен!

Сообщить модератору | IP: Записан
Сообщение: 49807

Старое сообщение 28-12-2009 09:08
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33014
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX так это на сервере все делается.
Глушак в первую очередь должен быть виден другим игрокам - отсюда и яркость вспышки и громкость звука - погляди недописанный код в glock.cpp

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 49809

Старое сообщение 28-12-2009 09:57
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35003
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Дядя Миша все прекрасно будет видно другим игрокам. Через евенты. Не парь мне мозг.

__________________

Сообщить модератору | IP: Записан
Сообщение: 49812

Старое сообщение 28-12-2009 11:14
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33014
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX нефиг парить мозг этими эвентами - и без них все прекрасно фурычит.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 49814

Старое сообщение 28-12-2009 12:06
-
MadKing
Частый гость

Дата регистрации: Jun 2009
Проживает: (void)
Сообщений: 90

Рейтинг



Дядя Миша не фурычит, в том то и дело...
Вот код:

C++ Source Code:
1
#if !defined( OEM_BUILD ) && !defined( HLDEMO_BUILD )
2
#include "extdll.h"
3
#include "util.h"
4
#include "cbase.h"
5
#include "weapons.h"
6
#include "monsters.h"
7
#include "player.h"
8
#include "gamerules.h"
9
 
10
enum M16_e {
11
  M16_IDLE_S = 0,
12
  M16_SHOOT1_S,
13
  M16_SHOOT2_S,
14
  M16_SHOOT3_S,
15
  M16_RELOAD_S,
16
  M16_DRAW_S,
17
  M16_ATTACH,
18
  M16_IDLE,
19
  M16_SHOOT1,
20
  M16_SHOOT2,
21
  M16_SHOOT3,
22
  M16_RELOAD,
23
  M16_DRAW,
24
  M16_DETACH
25
};
26
 
27
LINK_ENTITY_TO_CLASS( weapon_m16, CM16 );
28
LINK_ENTITY_TO_CLASS( weapon_m16a2, CM16 );
29
LINK_ENTITY_TO_CLASS( weapon_m4a1, CM16 );
30
 
31
int CM16::GetItemInfo(ItemInfo *p)
32
{
33
  p->pszName = STRING(pev->classname);
34
  p->pszAmmo1 = "556";
35
  p->iMaxAmmo1 = _556_MAX_CARRY;
36
  p->pszAmmo2 = NULL;
37
  p->iMaxAmmo2 = -1;
38
  p->iMaxClip = M16_MAX_CLIP;
39
  p->iFlags = 0;
40
  p->iSlot = 2;
41
  p->iPosition = 5;
42
  p->iId = m_iId = WEAPON_M16;
43
  p->iWeight = M16_WEIGHT;
44
 
45
  return 1;
46
}
47
 
48
int CM16::AddToPlayer( CBasePlayer *pPlayer )
49
{
50
  if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) )
51
  {
52
    MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev );
53
    WRITE_BYTE( m_iId );
54
    MESSAGE_END();
55
    return TRUE;
56
  }
57
  return FALSE;
58
}
59
 
60
void CM16::Spawn( )
61
{
62
  pev->classname = MAKE_STRING("weapon_m16"); // hack to allow for old names
63
  Precache( );
64
  m_iId = WEAPON_M16;
65
  SET_MODEL(ENT(pev), "models/w_m16.mdl");
66
  m_iDefaultAmmo = M16_DEFAULT_GIVE;
67
  FallInit();// get ready to fall down.
68
}
69
 
70
 
71
void CM16::Precache( void )
72
{
73
  PRECACHE_MODEL("models/v_m16.mdl");
74
  PRECACHE_MODEL("models/w_m16.mdl");
75
  PRECACHE_MODEL("models/p_m16.mdl");
76
 
77
  PRECACHE_SOUND("items/9mmclip1.wav");
78
  PRECACHE_SOUND ("weapons/357_cock1.wav");
79
  PRECACHE_SOUND ("weapons/m16-1.wav");
80
  PRECACHE_SOUND ("weapons/m16_unsil-2.wav");
81
  PRECACHE_SOUND ("weapons/m16_unsil-1.wav");
82
 
83
 
84
  m_iShell = PRECACHE_MODEL ("models/saw_shell.mdl");
85
  m_usFireM16 = PRECACHE_EVENT( 1, "events/m16.sc" );
86
}
87
 
88
BOOL CM16::Deploy( )
89
{
90
  if (!Silincer)
91
    return DefaultDeploy( "models/v_m16.mdl", "models/p_m16.mdl", M16_DRAW, "M16", UseDecrement(), pev->body );
92
  else
93
    return DefaultDeploy( "models/v_m16.mdl", "models/p_m16.mdl", M16_DRAW_S, "M16", UseDecrement(), pev->body );
94
}
95
 
96
 
97
void CM16::Holster( int skiplocal /* = 0 */ )
98
{
99
  m_fInReload = FALSE;// cancel any reload in progress.
100
  m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0;
101
  m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
102
  //SendWeaponAnim( M16_HOLSTER );
103
}
104
 
105
void CM16::PrimaryAttack()
106
{
107
  if (m_iClip <= 0)
108
  {
109
    if (!m_fFireOnEmpty)
110
      Reload( );
111
    else
112
    {
113
      EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/357_cock1.wav", 0.8, ATTN_NORM);
114
      m_flNextPrimaryAttack = 0.2;
115
    }
116
    return;
117
  }
118
  /*SPREAD*/
119
  if ((Spread<0.06)&&((gpGlobals->time - lastshottime)<2))
120
  {
121
    lastshottime = gpGlobals->time;
122
    if(!Silincer) Spread+=0.005;//Increase the shotcone
123
      else Spread+=0.003;//With silencer we have less spread
124
      }
125
      else
126
      {
127
        lastshottime = gpGlobals->time;
128
        Spread=0.01;//First shot have to be perfect
129
      }
130
    //vect_ = Vector(Spread,Spread,Spread);
131
    /*/SPREAD*/
132
    if (!Silincer)//No silincer
133
    {
134
      m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME;
135
      m_pPlayer->m_iWeaponFlash = BRIGHT_GUN_FLASH;
136
      m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
137
    }
138
  else//Silincer is on
139
  {
140
    m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;
141
    m_pPlayer->m_iWeaponFlash = DIM_GUN_FLASH;
142
    //	m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
143
  }
144
  m_iClip--;
145
 
146
  // player "shoot" animation
147
  m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
148
  //UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );
149
  Vector vecSrc	 = m_pPlayer->GetGunPosition( );
150
  Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );
151
  Vector vecDir;
152
  vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, Vector(Spread,Spread,Spread), 8192, BULLET_PLAYER_M16, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
153
  int flags;
154
#if defined( CLIENT_WEAPONS )
155
  flags = FEV_NOTHOST;
156
#else
157
  flags = 0;
158
#endif
159
  //Shells and Links for M16 gun
160
#if defined( OLD_WEAPONS )
161
  Vector	vecShellVelocity = m_pPlayer->pev->velocity + gpGlobals->v_right * RANDOM_FLOAT(50,70) + gpGlobals->v_up * RANDOM_FLOAT(100,150) + gpGlobals->v_forward * 25;
162
  EjectBrass ( pev->origin + m_pPlayer->pev->view_ofs + gpGlobals->v_up * -12 + gpGlobals->v_forward * 32 + gpGlobals->v_right * 6 , vecShellVelocity, pev->angles.y, m_iShell, TE_BOUNCE_SHELL );
163
 
164
#endif
165
  //END of SHELLS
166
  PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usFireM16, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );
167
 
168
  if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)
169
    // HEV suit - indicate out of ammo condition
170
  m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);
171
 
172
  m_flNextPrimaryAttack = 0.10;
173
  m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
174
}
175
 
176
void CM16::SecondaryAttack()
177
{
178
  if (!Silincer)
179
  {
180
    SendWeaponAnim( M16_ATTACH );
181
    Silincer=1;
182
  }
183
  else
184
  {
185
    SendWeaponAnim( M16_DETACH );
186
    Silincer=0;
187
  }
188
  m_flNextPrimaryAttack = 0.8;
189
}
190
 
191
void CM16::Reload( void )
192
{
193
  if ( m_pPlayer->ammo_556 <= 0 )
194
    return;
195
  if ( m_pPlayer->pev->fov != 0 )
196
  {
197
    m_pPlayer->pev->fov = m_pPlayer->m_iFOV = 0;  // 0 means reset to default fov
198
  }
199
  if (!Silincer)
200
  {
201
    if (DefaultReload( 30, M16_RELOAD, 2.0, 0 ))
202
    {
203
      SendWeaponAnim( M16_RELOAD );
204
      m_flSoundDelay = 1.5;
205
    }
206
  }
207
  else
208
  {
209
    if (DefaultReload( 30, M16_RELOAD_S, 2.0, 0 ))
210
    {
211
      SendWeaponAnim( M16_RELOAD_S );
212
      m_flSoundDelay = 1.5;
213
    }
214
  }
215
}
216
 
217
 
218
void CM16::WeaponIdle( void )
219
{
220
  ResetEmptySound( );
221
  m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
222
  // ALERT( at_console, "%.2f\n", gpGlobals->time - m_flSoundDelay );
223
  if (m_flSoundDelay != 0 && m_flSoundDelay <= UTIL_WeaponTimeBase() )
224
  {
225
    EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/762_reload2.wav", RANDOM_FLOAT(0.8, 0.9), ATTN_NORM);
226
    m_flSoundDelay = 0;
227
  }
228
  if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
229
    return;
230
 
231
  m_flTimeWeaponIdle = (60.0/30.0);
232
  if (!Silincer) SendWeaponAnim( M16_IDLE, UseDecrement() ? 1 : 0, 0 );
233
  else SendWeaponAnim( M16_IDLE_S, UseDecrement() ? 1 : 0, 0 );
234
  if (Spread>0) Spread-=0.01;
235
}
236
#endif


Не пугайтесь, лучше изучите...
Меня там немного смущает SecondaryAttack своей простотой, но ничего более рабатющего я так и не придумал....

Кста, прошу обратить внимание на мой Spread - всё придумал сам, без туторов, можно по этому М16 статью про спрэд написать...
Всё со спрэдом работает превосходно, при стрельбе увеличение конуса зависит еще и от наличия глушителя... Один минус, или просто особенность -
- я не стал делать два вида пуль - запарно больно было

Отредактировано MadKing 29-12-2009 в 02:24

Сообщить модератору | IP: Записан
Сообщение: 49824

Старое сообщение 29-12-2009 02:13
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35003
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Ты объясни нам русским ртом - что у тебя конкретно не фурычит?

Добавлено 29-12-2009 в 13:56:

Со spread-ом - молодец

__________________

Сообщить модератору | IP: Записан
Сообщение: 49825

Старое сообщение 29-12-2009 07:56
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33014
Нанёс повреждений: 392 ед.

Рейтинг



MadKing дать бы тебе плюсов за оверквотинг, но раз уж сам spread придумал - не буду.
Насчет того, что у тебя там шо-то неработает - это есть ваши смешные фантазии, я в первом ксаш делал именно такой глок с глушителем и все превосходно работало.
Вот его код

C++ Source Code:
1
void CGlock::SecondaryAttack( void )
2
{
3
  if(pev->body == 0)
4
  {
5
    SendWeaponAnim( GLOCK_HOLSTER2);
6
    pev->body = 1;
7
    SetThink (AddSilencer);
8
    SetNextThink (1);
9
  }
10
  else
11
  {
12
    SendWeaponAnim( GLOCK_DEL_SILENCER);
13
    pev->body = 0;
14
    SetThink (AddSilencer);
15
    SetNextThink (3.2);
16
  }
17
  m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 4.5;
18
  m_flNextSecondaryAttack = m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 4.0;
19
}
20
 
21
void CGlock::AddSilencer( void )
22
{
23
  if(pev->body)
24
  {
25
    SendWeaponAnim( GLOCK_ADD_SILENCER );
26
    return;
27
    SetNextThink (3.2);
28
  }
29
  else
30
  {	SendWeaponAnim( GLOCK_DRAW );
31
  return;
32
  SetNextThink (1);
33
}
34
}
35
 
36
void CGlock:: PrimaryAttack( void )
37
{
38
  if ( m_iClip && m_pPlayer->pev->waterlevel != 3)//don't fire underwater
39
  {
40
    // player "shoot" animation
41
    m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
42
 
43
    // silenced
44
    if (pev->body == 1)
45
    {
46
      m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;
47
      m_pPlayer->m_iWeaponFlash = DIM_GUN_FLASH;
48
    }
49
    else
50
    {
51
      // non-silenced
52
      m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
53
      m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;
54
    }
55
 
56
    m_iClip--;
57
 
58
    Vector vecSrc	 = m_pPlayer->GetGunPosition( );
59
    Vector vecAiming;
60
 
61
    vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
62
 
63
    Vector vecDir;
64
    vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, Vector( 0.02, 0.02, 0.02 ), 8192, BULLET_PLAYER_9MM, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
65
 
66
    PLAYBACK_EVENT_FULL( 0, m_pPlayer->edict(), m_usFireGlock, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, ( m_iClip == 0 ) ? 1 : 0, pev->body );
67
 
68
    m_flNextPrimaryAttack = m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.35;
69
    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + RANDOM_FLOAT ( 10, 15 );
70
  }
71
  else
72
  {
73
    PlayEmptySound();
74
    m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.7;
75
  }
76
}

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 49826

Старое сообщение 29-12-2009 08:22
-
MadKing
Частый гость

Дата регистрации: Jun 2009
Проживает: (void)
Сообщений: 90

Рейтинг



XaeroX, всё отлично работает кроме глушака, стреляешь когда - он сам меняет себе глушак - как то стрелял без глушака - бах - и он появился, стреляю с глушаком - всё отлично - с глушаком.
Дядя Миша, чё за think`и?
Чё это за фень? Она мне поможет, как ты думаешь??? у меня её нед.....

Добавлено 30-12-2009 в 05:05:

Кста, я у себя одну ошибочку нашёл в Секондари....

Цитата:
MadKing писал:
m_flNextPrimaryAttack = 0.8;
,,
Я забыл gpGlobals->time+

Дядя Миша , а как у тебя с cl_dll? там то как? (Меня интересует EV_Fire...)?

Сообщить модератору | IP: Записан
Сообщение: 49831

Старое сообщение 30-12-2009 02:05
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33014
Нанёс повреждений: 392 ед.

Рейтинг



MadKing анимации надевания и снятия глушителя.
ну вот эвент с клиента

C++ Source Code:
1
void EV_FireGlock( event_args_t *args )
2
{
3
  int idx;
4
  vec3_t origin;
5
  vec3_t angles;
6
  vec3_t velocity;
7
  int empty;
8
 
9
  vec3_t ShellVelocity;
10
  vec3_t ShellOrigin;
11
  int shell;
12
  vec3_t vecSrc, vecAiming;
13
  vec3_t up, right, forward;
14
 
15
  idx = args->entindex;
16
  VectorCopy( args->origin, origin );
17
  VectorCopy( args->angles, angles );
18
  VectorCopy( args->velocity, velocity );
19
 
20
  empty = args->bparam1;
21
  AngleVectors( angles, forward, right, up );
22
 
23
  shell = gEngfuncs.pEventAPI->EV_FindModelIndex ("models/shell.mdl");// brass shell
24
 
25
  if ( EV_IsLocal( idx ) )
26
  {
27
    cl_entity_s *view = gEngfuncs.GetViewModel();
28
    gEngfuncs.pEventAPI->EV_WeaponAnimation( empty ? 4 : 3, args->bparam2 );//3 - is GLOCK_SHOOT animation
29
    EV_MuzzleFlash();							//4 - is GLOCK_SHOOT_EMPTY
30
    if(args->bparam2)//silence mode
31
      gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&view->attachment[1], 17 );
32
    else//normal flash
33
      gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&view->attachment[0], 11 );
34
    V_PunchAxis( 0, -2.0 );
35
  }
36
 
37
  EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 20, -12, 4 );
38
 
39
  EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHELL );
40
 
41
  if(args->bparam2)
42
  {
43
    switch( gEngfuncs.pfnRandomLong( 0, 1 ) )
44
    {
45
    case 0:
46
        gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/pl_gun1.wav", gEngfuncs.pfnRandomFloat(0.92, 1.0), ATTN_NORM, 0, 98 + gEngfuncs.pfnRandomLong( 0, 2 ) );
47
      break;
48
    case 1:
49
        gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/pl_gun2.wav", gEngfuncs.pfnRandomFloat(0.92, 1.0), ATTN_NORM, 0, 98 + gEngfuncs.pfnRandomLong( 0, 2 ) );
50
      break;
51
    }
52
  }
53
  else
54
    gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/pl_gun3.wav", gEngfuncs.pfnRandomFloat(0.92, 1.0), ATTN_NORM, 0, 98 + gEngfuncs.pfnRandomLong( 0, 3 ) );
55
 
56
  EV_GetGunPosition( args, vecSrc, origin );
57
 
58
  VectorCopy( forward, vecAiming );
59
 
60
  EV_HLDM_FireBullets( idx, forward, right, up, 1, vecSrc, vecAiming, 8192, BULLET_PLAYER_9MM, 0, 0, args->fparam1, args->fparam2 );
61
}


Добавлено 30-12-2009 в 12:41:

Кстати. Вся эта хрень должна быть в спирите 1.7
Не парьте мне мозг.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 49833

Старое сообщение 30-12-2009 09:41
-
MadKing
Частый гость

Дата регистрации: Jun 2009
Проживает: (void)
Сообщений: 90

Рейтинг



Цитата:
Дядя Миша писал:
if ( EV_IsLocal( idx ) )
{
cl_entity_s *view = gEngfuncs.GetViewModel();
gEngfuncs.pEventAPI->EV_WeaponAnimation( empty ? 4 : 3, args->bparam2 );//3 - is GLOCK_SHOOT animation
EV_MuzzleFlash();//4 - is GLOCK_SHOOT_EMPTY
if(args->bparam2)//silence mode
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&view->attachment[1], 17 );
else//normal flash
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&view->attachment[0], 11 );
V_PunchAxis( 0, -2.0 );
}

Как я понимаю, весь прикол в этих строчках? Попробуем....

Добавлено 31-12-2009 в 05:44:

C:\HLSDK\MaxLife\cl_dll\ev_hldm.cpp(1462) : error C2065: 'empty' : undeclared identifier

Сообщить модератору | IP: Записан
Сообщение: 49834

Старое сообщение 31-12-2009 02:44
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35003
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
MadKing писал:
Как я понимаю, весь прикол в этих строчках?

Цитата:
MadKing писал:
error C2065: 'empty' : undeclared identifier

__________________

Сообщить модератору | IP: Записан
Сообщение: 49835

Старое сообщение 31-12-2009 06:55
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 11:39. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Help
M16 с глушаком
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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