HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Винчестер
пробный код
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
NorthWanderer
Странник по коду

Дата регистрации: Jun 2007
Проживает: Развалины City 17
Сообщений: 30
Возраст: 35

Рейтинг



Винчестер

здрасте товариши кодеры вот пробовал я написать код винчестера, так вот код я написал все скомпелил вроде ошибок нет но при вводе кода give weapon_winch иногда игра вылитает, и при перезарядки анимация WINCH_PUMP не проигровается вчем дело может кто подскажет ниже сам код и вставки в другие файлы:
winch.cpp

C++ Source Code:
1
#define VECTOR_CONE_DM_SHOTGUN	Vector( 0.08716, 0.04362, 0.00  )// 10 degrees by 5 degrees
2
#define VECTOR_CONE_DM_DOUBLESHOTGUN Vector( 0.17365, 0.04362, 0.00 ) // 20 degrees by 5 degree
3
 
4
#include "extdll.h"
5
#include "util.h"
6
#include "cbase.h"
7
#include "monsters.h"
8
#include "weapons.h"
9
#include "nodes.h"
10
#include "player.h"
11
#include "gamerules.h"
12
 
13
enum winch_e {
14
  WINCH_IDLE = 0,
15
  WINCH_DRAW,
16
  WINCH_FIRE,
17
  WINCH_START_RELOAD,
18
  WINCH_RELOAD,
19
  WINCH_PUMP,
20
  WINCH_HOLSTER,
21
};
22
 
23
LINK_ENTITY_TO_CLASS( weapon_winch, CWinch );
24
 
25
void CWinch::Spawn( )
26
{
27
  Precache( );
28
  m_iId = WEAPON_WINCH;
29
  SET_MODEL(ENT(pev), "models/w_winch.mdl");
30
 
31
  m_iDefaultAmmo = WINCH_DEFAULT_GIVE;
32
 
33
  FallInit();// get ready to fall
34
}
35
 
36
 
37
void CWinch::Precache( void )
38
{
39
  PRECACHE_MODEL("models/v_winch.mdl");
40
  PRECACHE_MODEL("models/w_winch.mdl");
41
  PRECACHE_MODEL("models/p_winch.mdl");
42
 
43
  m_iShell = PRECACHE_MODEL ("models/shell.mdl");// shotgun shell
44
 
45
  PRECACHE_SOUND("items/9mmclip1.wav");
46
 
47
  PRECACHE_SOUND ("weapons/dbarrel1.wav");//shotgun
48
  PRECACHE_SOUND ("weapons/sbarrel1.wav");//shotgun
49
 
50
  PRECACHE_SOUND ("weapons/reload1.wav");	// shotgun reload
51
  PRECACHE_SOUND ("weapons/reload3.wav");	// shotgun reload
52
 
53
  //	PRECACHE_SOUND ("weapons/sshell1.wav");	// shotgun reload - played on client
54
  //	PRECACHE_SOUND ("weapons/sshell3.wav");	// shotgun reload - played on client
55
 
56
  PRECACHE_SOUND ("weapons/357_cock1.wav"); // gun empty sound
57
  PRECACHE_SOUND ("weapons/scock1.wav");	// cock gun
58
 
59
  m_usWinchFire = PRECACHE_EVENT( 1, "events/winch.sc" );
60
}
61
 
62
int CWinch::AddToPlayer( CBasePlayer *pPlayer )
63
{
64
  if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) )
65
  {
66
    MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev );
67
    WRITE_BYTE( m_iId );
68
    MESSAGE_END();
69
    return TRUE;
70
  }
71
  return FALSE;
72
}
73
 
74
 
75
int CWinch::GetItemInfo(ItemInfo *p)
76
{
77
  p->pszName = STRING(pev->classname);
78
  p->pszAmmo1 = "9mm";
79
  p->iMaxAmmo1 = _9MM_MAX_CARRY;
80
  p->pszAmmo2 = NULL;
81
  p->iMaxAmmo2 = -1;
82
  p->iMaxClip = WINCH_MAX_CLIP;
83
  p->iSlot = 2;
84
  p->iPosition = 4;
85
  p->iFlags = 0;
86
  p->iId = m_iId = WEAPON_WINCH;
87
  p->iWeight = WINCH_WEIGHT;
88
 
89
  return 1;
90
}
91
 
92
 
93
 
94
BOOL CWinch::Deploy( )
95
{
96
  return DefaultDeploy( "models/v_winch.mdl", "models/p_winch.mdl", WINCH_DRAW, "winch" );
97
}
98
 
99
//void CWinch::PrimaryAttack()
100
//{
101
  //	// don't fire underwater
102
  //	if (m_pPlayer->pev->waterlevel == 3)
103
  //	{
104
    //		PlayEmptySound( );
105
    //		m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.15;
106
    //		return;
107
    //	}
108
    //
109
    //	if (m_iClip <= 0)
110
    //	{
111
      //		Reload( );
112
      //		if (m_iClip == 0)
113
      //			PlayEmptySound( );
114
      //		return;
115
      //	}
116
      //
117
      //	m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME;
118
      //	m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;
119
      //
120
      //	m_iClip--;
121
      //
122
      //	int flags;
123
      //#if defined( CLIENT_WEAPONS )
124
      //	flags = FEV_NOTHOST;
125
      //#else
126
      //	flags = 0;
127
      //#endif
128
      //
129
      //
130
      //	m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
131
      //
132
      //	Vector vecSrc	 = m_pPlayer->GetGunPosition( );
133
      //	Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );
134
      //
135
      //	Vector vecDir;
136
      //
137
      //#ifdef CLIENT_DLL
138
      //	if ( bIsMultiplayer() )
139
      //#else
140
      //	if ( g_pGameRules->IsMultiplayer() )
141
      //#endif
142
      //	{
143
        //		vecDir = m_pPlayer->FireBulletsPlayer( 4, vecSrc, vecAiming, VECTOR_CONE_DM_SHOTGUN, 2048, BULLET_PLAYER_9MM, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
144
        //	}
145
        //	else
146
        //	{
147
          //		// regular old, untouched spread.
148
          //		vecDir = m_pPlayer->FireBulletsPlayer( 6, vecSrc, vecAiming, VECTOR_CONE_10DEGREES, 2048, BULLET_PLAYER_9MM, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
149
          //	}
150
          //
151
          //	PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usWinchFire, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );
152
          //
153
          ///
154
          //	if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)
155
          //		// HEV suit - indicate out of ammo condition
156
          //		m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);
157
          //
158
          //	if (m_iClip != 0)
159
          //		m_flPumpTime = gpGlobals->time + 0.5;
160
          //
161
          //	m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.75;
162
          //	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.75;
163
          //	if (m_iClip != 0)
164
          //		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 5.0;
165
          //	else
166
          //		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.75;
167
          //	m_fInSpecialReload = 0;
168
          //}
169
          //
170
          void CWinch::PrimaryAttack()
171
          {
172
            // don't fire underwater
173
            if (m_pPlayer->pev->waterlevel == 3)
174
            {
175
              PlayEmptySound( );
176
              m_flNextPrimaryAttack = 0.15;
177
              return;
178
            }
179
 
180
            if (m_iClip <= 0)
181
            {
182
              if (!m_fFireOnEmpty)
183
                Reload( );
184
              else
185
              {
186
                EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/357_cock1.wav", 0.8, ATTN_NORM);
187
                m_flNextPrimaryAttack = 0.15;
188
              }
189
 
190
              return;
191
            }
192
 
193
            m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME;
194
            m_pPlayer->m_iWeaponFlash = BRIGHT_GUN_FLASH;
195
 
196
            m_iClip--;
197
 
198
            m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
199
 
200
            // player "shoot" animation
201
            m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
202
 
203
 
204
            UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );
205
 
206
            Vector vecSrc	 = m_pPlayer->GetGunPosition( );
207
            Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
208
 
209
            Vector vecDir;
210
            vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_1DEGREES, 8192, BULLET_PLAYER_9MM, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
211
 
212
            int flags;
213
#if defined( CLIENT_WEAPONS )
214
            flags = FEV_NOTHOST;
215
#else
216
            flags = 0;
217
#endif
218
 
219
            PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usWinchFire, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );
220
 
221
            if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)
222
              // HEV suit - indicate out of ammo condition
223
            m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);
224
 
225
            m_flNextPrimaryAttack = 0.75;
226
            m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
227
          }
228
 
229
 
230
          void CWinch::SecondaryAttack( void )
231
          {
232
            return;
233
          }
234
 
235
 
236
          void CWinch::Reload( void )
237
          {
238
            if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 || m_iClip == WINCH_MAX_CLIP)
239
              return;
240
 
241
            // don't reload until recoil is done
242
            if (m_flNextPrimaryAttack > UTIL_WeaponTimeBase())
243
              return;
244
 
245
            // check to see if we're ready to reload
246
            if (m_fInSpecialReload == 0)
247
            {
248
              SendWeaponAnim( WINCH_START_RELOAD );
249
              m_fInSpecialReload = 1;
250
              m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.6;
251
              m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.6;
252
              m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 1.0;
253
              m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1.0;
254
              return;
255
            }
256
            else if (m_fInSpecialReload == 1)
257
            {
258
              if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase())
259
                return;
260
              // was waiting for gun to move to side
261
              m_fInSpecialReload = 2;
262
 
263
              if (RANDOM_LONG(0,1))
264
                EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload1.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));
265
              else
266
                EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload3.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));
267
 
268
              SendWeaponAnim( WINCH_RELOAD );
269
 
270
              m_flNextReload = UTIL_WeaponTimeBase() + 0.5;
271
              m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.5;
272
            }
273
            else
274
            {
275
              // Add them to the clip
276
              m_iClip += 1;
277
              m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 1;
278
              m_fInSpecialReload = 1;
279
            }
280
          }
281
 
282
 
283
          void CWinch::WeaponIdle( void )
284
          {
285
            ResetEmptySound( );
286
 
287
            m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );
288
 
289
            if ( m_flPumpTime && m_flPumpTime < gpGlobals->time )
290
            {
291
              // play pumping sound
292
              EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/scock1.wav", 1, ATTN_NORM, 0, 95 + RANDOM_LONG(0,0x1f));
293
              m_flPumpTime = 0;
294
            }
295
 
296
            if (m_flTimeWeaponIdle <  UTIL_WeaponTimeBase() )
297
            {
298
              if (m_iClip == 0 && m_fInSpecialReload == 0 && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType])
299
              {
300
                Reload( );
301
              }
302
              else if (m_fInSpecialReload != 0)
303
              {
304
                if (m_iClip != 8 && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType])
305
                {
306
                  Reload( );
307
                }
308
                else
309
                {
310
                  // reload debounce has timed out
311
                  SendWeaponAnim( WINCH_PUMP );
312
 
313
                  // play cocking sound
314
                  EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/scock1.wav", 1, ATTN_NORM, 0, 95 + RANDOM_LONG(0,0x1f));
315
                  m_fInSpecialReload = 0;
316
                  m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.5;
317
                }
318
              }
319
              else
320
              {
321
                int iAnim;
322
                float flRand = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 0, 1 );
323
                if (flRand <= 0.8)
324
                {
325
                  iAnim = WINCH_IDLE;
326
                  m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + (60.0/12.0);// * RANDOM_LONG(2, 5);
327
                }
328
                SendWeaponAnim( iAnim );
329
              }
330
            }
331
          }
332
 
333
 
334
 
335
          class CWinchAmmoClip : public CBasePlayerAmmo
336
          {
337
            void Spawn( void )
338
            {
339
              Precache( );
340
              SET_MODEL(ENT(pev), "models/w_9mmARclip.mdl");
341
              CBasePlayerAmmo::Spawn( );
342
            }
343
            void Precache( void )
344
            {
345
              PRECACHE_MODEL ("models/w_9mmARclip.mdl");
346
              PRECACHE_SOUND("items/9mmclip1.wav");
347
            }
348
            BOOL AddAmmo( CBaseEntity *pOther )
349
            {
350
              int bResult = (pOther->GiveAmmo( AMMO_WINCHCLIP_GIVE, "9mm", _9MM_MAX_CARRY) != -1);
351
              if (bResult)
352
              {
353
                EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM);
354
              }
355
              return bResult;
356
            }
357
          };
358
          LINK_ENTITY_TO_CLASS( ammo_winchclip, CWinchAmmoClip );
359
 

ниже класс в weapon.h

C++ Source Code:
1
class CWinch : public CBasePlayerWeapon
2
{
3
public:
4
 
5
  //#ifndef CLIENT_DLL
6
  //	int		Save( CSave &save );
7
  //	int		Restore( CRestore &restore );
8
  //	static	TYPEDESCRIPTION m_SaveData[];
9
  //#endif
10
 
11
 
12
  void Spawn( void );
13
  void Precache( void );
14
  int iItemSlot( ) { return 3; }
15
  int GetItemInfo(ItemInfo *p);
16
  int AddToPlayer( CBasePlayer *pPlayer );
17
 
18
  void PrimaryAttack( void );
19
  void SecondaryAttack( void );
20
  BOOL Deploy( );
21
  void Reload( void );
22
  void WeaponIdle( void );
23
  int m_fInReload;
24
  float m_flNextReload;
25
  int m_iShell;
26
 
27
  virtual BOOL UseDecrement( void )
28
  {
29
#if defined( CLIENT_WEAPONS )
30
    return TRUE;
31
#else
32
    return FALSE;
33
#endif
34
  }
35
 
36
private:
37
  unsigned short m_usWinchFire;
38
};
39
 


на клиенте ev_hldm.cpp

C++ Source Code:
1
//======================
2
//	  WINCH START
3
//======================
4
void EV_FireWinch( event_args_t *args )
5
{
6
  int idx;
7
  vec3_t origin;
8
  vec3_t angles;
9
  vec3_t velocity;
10
 
11
  vec3_t ShellVelocity;
12
  vec3_t ShellOrigin;
13
  int shell;
14
  vec3_t vecSrc, vecAiming;
15
  vec3_t vecSpread;
16
  vec3_t up, right, forward;
17
  float flSpread = 0.01;
18
 
19
  idx = args->entindex;
20
  VectorCopy( args->origin, origin );
21
  VectorCopy( args->angles, angles );
22
  VectorCopy( args->velocity, velocity );
23
 
24
  AngleVectors( angles, forward, right, up );
25
 
26
  shell = gEngfuncs.pEventAPI->EV_FindModelIndex ("models/shell.mdl");// brass shell
27
 
28
  if ( EV_IsLocal( idx ) )
29
  {
30
    // Add muzzle flash to current weapon model
31
    EV_MuzzleFlash();
32
    gEngfuncs.pEventAPI->EV_WeaponAnimation( WINCH_FIRE, 2 );
33
 
34
    V_PunchAxis( 0, -5.0 );
35
  }
36
 
37
  EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 32, -12, 6 );
38
 
39
  EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHOTSHELL );
40
 
41
  gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/sbarrel1.wav", gEngfuncs.pfnRandomFloat(0.95, 1.0), ATTN_NORM, 0, 93 + gEngfuncs.pfnRandomLong( 0, 0x1f ) );
42
 
43
  EV_GetGunPosition( args, vecSrc, origin );
44
  EV_HLDM_MuzzleFlash( vecSrc, 2.5 + gEngfuncs.pfnRandomFloat( -0.2, 0.2 ) );
45
 
46
  VectorCopy( forward, vecAiming );
47
 
48
  if ( gEngfuncs.GetMaxClients() > 1 )
49
  {
50
    EV_HLDM_FireBullets( idx, forward, right, up, 4, vecSrc, vecAiming, 2048, BULLET_PLAYER_9MM, 0, &tracerCount[idx-1], 0.08716, 0.04362 );
51
  }
52
  else
53
  {
54
    EV_HLDM_FireBullets( idx, forward, right, up, 6, vecSrc, vecAiming, 2048, BULLET_PLAYER_9MM, 0, &tracerCount[idx-1], 0.08716, 0.08716 );
55
  }
56
}
57
//======================
58
//	   WINCH END
59
//======================
60
 

ну вроде все вписал где можно совершитть ошибку

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

Старое сообщение 19-10-2007 16:05
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



NorthWanderer его по моему еще в player.cpp
Там что то типа GiveNamedItem( "weapon_winch" );
прописать нада ...

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

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

Старое сообщение 19-10-2007 16:16
- За что?
NorthWanderer
Странник по коду

Дата регистрации: Jun 2007
Проживает: Развалины City 17
Сообщений: 30
Возраст: 35

Рейтинг



там я прописал.
у меня вылетает тоже после того как я ввожу impulse 101
и give weapon_winch но не всегда вчем проблема не знаю
да и еше винчестер мажет это наверное осталось от дробовика

[ Вложение ]
t0a00004.jpg

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

Старое сообщение 19-10-2007 16:32
- За что?
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



C++ Source Code:
#define VECTOR_CONE_DM_SHOTGUN    Vector( 0.08716, 0.04362, 0.00  )// 10 degrees by 5 degrees
#define VECTOR_CONE_DM_DOUBLESHOTGUN Vector( 0.17365, 0.04362, 0.00 ) // 20 degrees by 5 degree


Этим помойму задаётся точность

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 19-10-2007 16:51
- За что?
NorthWanderer
Странник по коду

Дата регистрации: Jun 2007
Проживает: Развалины City 17
Сообщений: 30
Возраст: 35

Рейтинг



а я то думал для чего эти строчки

Добавлено 19-10-2007 в 23:12:

хотя ствол не мажет мажет декаль которая ресуется на стине

[ Вложение ]
c3a10000.jpg

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

Старое сообщение 19-10-2007 17:12
- За что?
ToMMuK
SmallHabit'at

Дата регистрации: Jun 2006
Проживает: Рига
Сообщений: 634
Возраст: 32

Рейтинг



Где-то в PrimaryAttack посмотри

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.

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

Старое сообщение 19-10-2007 19:51
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



А мне две последние цифры в EV_HLDM_FireBullets не нравятся.
Внутри EV_HLDM_FireBullets и рисуются декали.
Если делаешь что-то наподобие дробовика тебе прийдётся рандомизировать попадения пули в void EV_HLDM_FireBullets...

Добавлено 20-10-2007 в 09:46:

Да, последние два параметра в EV_HLDM_FireBullets означают "распостронение" по оси х и по оси у.

__________________
Хотелось бы, чтобы не только хотелось...

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

Старое сообщение 20-10-2007 05:46
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 17:29. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Винчестер
пробный код
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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