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

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



Unhappy кодеры помогите не работает displacer

displacer сам стреляет но анимации выстрела так самого нет и звука выстрела нет уже целый день пытаюсь исправить данный баг никак не получается справиться с этой проблемой вот сам код дисплекера:

C++ Source Code:
1
/***
2
*
3
*   Copyright © 2004
4
*   Code by Shambler Team.
5
*   Op4-realm modify by Demiurge.
6
*   All rights reserved.
7
*
8
****/
9
 
10
 
11
/*
12
//=========================================================
13
//
14
//    CODE PART FOR CLIENT SIDE
15
//
16
//======================
17
//      DISPLACER START
18
//======================
19
enum displacer_e
20
{
21
    DISPLACER_IDLE1,
22
    DISPLACER_IDLE2,
23
    DISPLACER_SPINUP,
24
    DISPLACER_SPIN,
25
    DISPLACER_FIRE,
26
    DISPLACER_DRAW,
27
    DISPLACER_HOLSTER,
28
};
29
void EV_SpinDisplacer(event_args_t *args)//Original code idea by Xwider
30
{
31
    if (EV_IsLocal(args->entindex))
32
    {
33
        gEngfuncs.pEventAPI->EV_WeaponAnimation(DISPLACER_SPINUP, 2);
34
        cl_entity_t *view = gEngfuncs.GetViewModel();
35
        if (view != NULL)
36
        {
37
            float life = 1.14;
38
 
39
            gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x2000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0);
40
            gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x3000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0);
41
            gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x4000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0);
42
        }
43
    }
44
 
45
    if (args->bparam2 == 0)// sound mode
46
        gEngfuncs.pEventAPI->EV_PlaySound(args->entindex, args->origin, CHAN_WEAPON, "weapons/displacer_spin.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
47
    else
48
        gEngfuncs.pEventAPI->EV_PlaySound(args->entindex, args->origin, CHAN_WEAPON, "weapons/displacer_spin2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
49
 
50
}
51
//======================
52
//       DISPLACER END
53
//======================
54
*/
55
 
56
#include "extdll.h"
57
#include "util.h"
58
#include "cbase.h"
59
#include "monsters.h"
60
#include "weapons.h"
61
#include "nodes.h"
62
#include "player.h"
63
#include "gamerules.h"
64
#include "shake.h"
65
#include "effects.h"
66
 
67
enum displacer_e
68
{
69
  DISPLACER_IDLE1 = 0,
70
  DISPLACER_IDLE2,
71
  DISPLACER_SPINUP,
72
  DISPLACER_SPIN,
73
  DISPLACER_FIRE,
74
  DISPLACER_DRAW,
75
  DISPLACER_HOLSTER,
76
};
77
 
78
class CDisplacer : public CBasePlayerWeapon
79
{
80
public:
81
  int    Save( CSave &save );
82
  int    Restore( CRestore &restore );
83
  static    TYPEDESCRIPTION m_SaveData[];
84
 
85
  void Spawn( void );
86
  void Precache( void );
87
  int iItemSlot( void ) { return 4; }
88
  int GetItemInfo(ItemInfo *p);
89
  int AddToPlayer( CBasePlayer *pPlayer );
90
 
91
  BOOL Deploy( void );
92
  void Holster( int skiplocal = 0 );
93
 
94
  void PrimaryAttack( void );
95
  void SecondaryAttack (void);
96
  void EXPORT SpinUp( void );
97
  void EXPORT Teleport( void );
98
  void EXPORT Fire( void );
99
  void WeaponIdle( void );
100
 
101
  int m_iAttackMode;//no need save/restore this. g-cont
102
private:
103
  unsigned short m_usDisplacer;
104
  int m_iBeam;
105
  int m_iPlace;
106
};
107
 
108
LINK_ENTITY_TO_CLASS( weapon_displacer, CDisplacer );
109
 
110
//===========================
111
//
112
//  TeleBall code
113
//
114
//===========================
115
 
116
//class CDispBall : public CGrenade
117
class CDispBall : public CBaseEntity//Special for Ghoul [BB] :devil:
118
{
119
public:
120
  void Spawn( void );
121
  void Precache( void );
122
  void Explode( TraceResult *pTrace );
123
  void RemoveBall (void);
124
  void EXPORT ExplodeTouch( CBaseEntity *pOther );
125
 
126
  void EXPORT BallThink( void );
127
  static CDispBall *CreateDispBall( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CDisplacer *pLauncher );
128
 
129
  int m_iDispRing;
130
  BOOL LockRing;
131
};
132
 
133
LINK_ENTITY_TO_CLASS( dispball, CDispBall );
134
 
135
CDispBall *CDispBall::CreateDispBall( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CDisplacer *pLauncher )
136
{
137
  CDispBall *pDispBall = GetClassPtr( (CDispBall *)NULL );
138
 
139
  UTIL_SetOrigin( pDispBall->pev, vecOrigin );
140
  pDispBall->pev->angles = vecAngles;
141
  pDispBall->Spawn();
142
  pDispBall->SetTouch( CDispBall::ExplodeTouch );
143
  pDispBall->pev->owner = pOwner->edict();
144
 
145
  return pDispBall;
146
}
147
 
148
void CDispBall :: Spawn( void )
149
{
150
  Precache( );
151
  pev->movetype = MOVETYPE_FLY;
152
  pev->solid = SOLID_BBOX;
153
 
154
  SET_MODEL(ENT(pev), "sprites/exit1.spr");
155
  pev->scale = .5;
156
 
157
  UTIL_SetSize(pev, Vector ( 0, 0, 0 ), Vector ( 0, 0, 0 ) );
158
  UTIL_SetOrigin( pev, pev->origin );
159
  pev->rendermode = kRenderTransAdd;
160
  pev->renderamt = 255;
161
 
162
  pev->classname = MAKE_STRING("dispball");
163
 
164
  SetThink( BallThink );
165
  SetTouch( ExplodeTouch );
166
 
167
  pev->angles.x -= 0;
168
  UTIL_MakeVectors( pev->angles );
169
  pev->angles.x = -(pev->angles.x + 0);
170
  pev->velocity = gpGlobals->v_forward * 500;
171
  pev->nextthink = 0.5;
172
 
173
  pev->dmg = 1000;
174
}
175
 
176
void CDispBall :: Precache( void )
177
{
178
  PRECACHE_MODEL("sprites/exit1.spr");
179
  PRECACHE_MODEL ("sprites/plasma.spr");
180
 
181
  PRECACHE_SOUND("weapons/displacer_teleport.wav");
182
  m_iDispRing = PRECACHE_MODEL ("sprites/displacer_ring.spr");
183
}
184
 
185
void CDispBall :: BallThink( void )
186
{
187
  CBeam *pBeam;
188
  TraceResult tr;
189
  Vector vecDest;
190
  float flDist = 1.0;
191
 
192
  for (int i = 0; i < 10; i++)
193
  {
194
    Vector vecDir = Vector( RANDOM_FLOAT( -1.0, 1.0 ), RANDOM_FLOAT( -1.0, 1.0 ),RANDOM_FLOAT( -1.0, 1.0 ) );
195
    vecDir = vecDir.Normalize();
196
    TraceResult tr1;
197
    UTIL_TraceLine( pev->origin, pev->origin + vecDir * 1024, ignore_monsters, ENT(pev), &tr1 );
198
    if (flDist > tr1.flFraction)
199
    {
200
      tr = tr1;
201
      flDist = tr.flFraction;
202
    }
203
  }
204
 
205
  if ( flDist == 1.0 ) return;
206
 
207
  pBeam = CBeam::BeamCreate("sprites/plasma.spr",200);
208
  pBeam-> PointEntInit( tr.vecEndPos, entindex() );
209
  pBeam->SetStartPos( tr.vecEndPos );
210
  pBeam->SetEndEntity( entindex() );
211
  pBeam->SetColor( 90, 170, 16 );
212
  pBeam->SetNoise( 65 );
213
  pBeam->SetBrightness( 255 );
214
  pBeam->SetWidth( 30 );
215
  pBeam->SetScrollRate( 35 );
216
  pBeam->LiveForTime( 1 );
217
 
218
  pev->frame += 1; //animate teleball
219
  if(pev->frame > 24)
220
    pev->frame = fmod( pev->frame, 24 );
221
 
222
  pev->nextthink = gpGlobals->time + 0.1;
223
}
224
 
225
void CDispBall::ExplodeTouch( CBaseEntity *pOther )
226
{
227
  TraceResult tr;
228
  Vector    vecSpot;// trace starts here!
229
 
230
  pev->enemy = pOther->edict();
231
 
232
  vecSpot = pev->origin - pev->velocity.Normalize() * 32;
233
  UTIL_TraceLine( vecSpot, vecSpot + pev->velocity.Normalize() * 64, dont_ignore_monsters, ENT(pev), &tr );
234
 
235
  Explode( &tr );
236
}
237
 
238
void CDispBall::Explode( TraceResult *pTrace )
239
{
240
  if(!LockRing)//for partially fix strange bug in HL engine (for full fix teleball MUST be moved to client side). g-cont
241
  {
242
    MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, pev->origin );
243
    WRITE_BYTE( TE_BEAMCYLINDER );
244
    WRITE_COORD( pev->origin.x);
245
    WRITE_COORD( pev->origin.y);
246
    WRITE_COORD( pev->origin.z);
247
    WRITE_COORD( pev->origin.x);
248
    WRITE_COORD( pev->origin.y);
249
    WRITE_COORD( pev->origin.z + 800);
250
    WRITE_SHORT( m_iDispRing );
251
    WRITE_BYTE( 0 ); // startframe
252
    WRITE_BYTE( 10 ); // framerate
253
    WRITE_BYTE( 3 ); // life
254
    WRITE_BYTE( 20 );  // width
255
    WRITE_BYTE( 0 );   // noise
256
    WRITE_BYTE( 255 );   // r, g, b
257
    WRITE_BYTE( 255 );   // r, g, b
258
    WRITE_BYTE( 255 );   // r, g, b
259
    WRITE_BYTE( 255 ); //brightness
260
    WRITE_BYTE( 0 );// speed
261
    MESSAGE_END();
262
  }
263
 
264
  LockRing = TRUE;
265
  pev->velocity = g_vecZero;
266
 
267
  SetThink (RemoveBall);
268
  pev->nextthink = gpGlobals->time + 0.6;
269
 
270
}
271
 
272
void CDispBall::RemoveBall( void )
273
{
274
  EMIT_SOUND(ENT(pev), CHAN_VOICE, "weapons/displacer_teleport.wav", 0.9, ATTN_NORM);
275
  pev->effects |= EF_NODRAW;
276
 
277
  entvars_t *pevOwner;
278
  if ( pev->owner )
279
    pevOwner = VARS( pev->owner );
280
  else
281
    pevOwner = NULL;
282
  pev->owner = NULL;
283
 
284
  UTIL_Remove( this );
285
  ::RadiusDamage( pev->origin, pev, pevOwner, pev->dmg, 200, CLASS_NONE, DMG_ENERGYBEAM );
286
}
287
 
288
//===========================
289
//
290
//  Displacer code
291
//
292
//===========================
293
 
294
void CDisplacer::Spawn( )
295
{
296
  Precache( );
297
  m_iId = WEAPON_DISPLACER;
298
  SET_MODEL(ENT(pev), "models/w_displacer.mdl");
299
 
300
  m_iDefaultAmmo = 60;
301
  FallInit();// get ready to fall down.
302
}
303
 
304
TYPEDESCRIPTION    CDisplacer::m_SaveData[] =
305
{
306
  DEFINE_FIELD( CDisplacer, m_iPlace, FIELD_INTEGER ),//Remember last teleportation point. g-cont
307
};
308
IMPLEMENT_SAVERESTORE( CDisplacer, CBasePlayerWeapon );
309
 
310
int CDisplacer::AddToPlayer( CBasePlayer *pPlayer )
311
{
312
  if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) )
313
  {
314
    MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev );
315
    WRITE_BYTE( m_iId );
316
    MESSAGE_END();
317
    return TRUE;
318
  }
319
  return FALSE;
320
}
321
 
322
BOOL CDisplacer::Deploy( void )
323
{
324
  return DefaultDeploy( "models/v_displacer.mdl", "models/p_displacer.mdl", DISPLACER_DRAW, "gauss" );
325
}
326
 
327
void CDisplacer::Holster( int skiplocal )
328
{
329
  m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.5;
330
  SendWeaponAnim( DISPLACER_HOLSTER );
331
}
332
 
333
int CDisplacer::GetItemInfo(ItemInfo *p)
334
{
335
  p->pszName = STRING(pev->classname);
336
  p->pszAmmo1 = "uranium";
337
  p->iMaxAmmo1 = URANIUM_MAX_CARRY;
338
  p->pszAmmo2 = NULL;
339
  p->iMaxAmmo2 = -1;
340
  p->iMaxClip = WEAPON_NOCLIP;
341
  p->iSlot = 3;
342
  p->iPosition = 4;
343
  p->iId = m_iId = WEAPON_DISPLACER;
344
  p->iFlags = 0;
345
  p->iWeight = DISPLACER_WEIGHT;
346
 
347
  return 1;
348
}
349
 
350
void CDisplacer::Precache( void )
351
{
352
  PRECACHE_MODEL("models/w_displacer.mdl");
353
  PRECACHE_MODEL("models/v_displacer.mdl");
354
  PRECACHE_MODEL("models/p_displacer.mdl");
355
 
356
  PRECACHE_SOUND("weapons/displacer_fire.wav");
357
  PRECACHE_SOUND ("buttons/button10.wav");
358
  PRECACHE_SOUND ("weapons/displacer_self.wav");
359
 
360
  UTIL_PrecacheOther( "dispball" );
361
 
362
  m_iBeam = PRECACHE_MODEL("sprites/plasma.spr");
363
  m_usDisplacer = PRECACHE_EVENT( 1, "events/displacer.sc" );
364
}
365
 
366
void CDisplacer::SpinUp ( void )
367
{
368
  int flags;
369
  flags = 0;
370
 
371
  if (!m_iAttackMode) SetThink (CDisplacer::Fire);
372
  else SetThink (CDisplacer::Teleport);
373
 
374
  //spinup event
375
  PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usDisplacer, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, 0, m_iBeam, 0, m_iAttackMode);
376
 
377
  pev->nextthink = gpGlobals->time + 1.1;
378
  m_flTimeWeaponIdle = gpGlobals->time + 1.15;
379
}
380
 
381
void CDisplacer::PrimaryAttack( void )
382
{
383
  if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] < 20)
384
  {
385
    EMIT_SOUND( edict(), CHAN_BODY, "buttons/button10.wav", 1, ATTN_NORM );
386
    m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0;
387
    return;
388
  }
389
 
390
  m_iAttackMode = FALSE;
391
 
392
  SetThink (CDisplacer::SpinUp);
393
 
394
  m_flNextPrimaryAttack = gpGlobals->time + 2.0;
395
  m_flTimeWeaponIdle = gpGlobals->time + 1.5;
396
  pev->nextthink = gpGlobals->time + 0.1;
397
}
398
 
399
void CDisplacer::SecondaryAttack ( void )
400
{
401
  if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] < 60)
402
  {
403
    EMIT_SOUND( edict(), CHAN_BODY, "buttons/button10.wav", 1, ATTN_NORM );
404
    m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0;
405
    return;
406
  }
407
 
408
  if (m_iAttackMode) return;
409
  m_iAttackMode = TRUE;
410
 
411
  SetThink (CDisplacer::SpinUp);
412
 
413
  m_flNextSecondaryAttack = gpGlobals->time + 2.0;
414
  m_flTimeWeaponIdle = gpGlobals->time + 1.5;
415
  pev->nextthink = gpGlobals->time + 0.1;
416
}
417
 
418
void CDisplacer::Fire (void)
419
{
420
  SendWeaponAnim( DISPLACER_FIRE );
421
  m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
422
 
423
  Vector vecSrc = m_pPlayer->GetGunPosition( ) + gpGlobals->v_forward * 16 + gpGlobals->v_right * 2 + gpGlobals->v_up * -5;
424
  m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 20;
425
 
426
  EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/displacer_fire.wav", 0.9, ATTN_NORM );
427
  CDispBall *pDispBall = CDispBall::CreateDispBall( vecSrc, m_pPlayer->pev->v_angle, m_pPlayer, this );
428
}
429
 
430
 
431
void CDisplacer:: Teleport ( void )
432
{
433
  m_iPlace = !m_iPlace;
434
 
435
  CBaseEntity *pSpot = NULL;
436
  m_iAttackMode = FALSE;//reset firemode
437
 
438
  if ( m_iPlace )//Xen and earth target
439
    pSpot = UTIL_FindEntityByClassname( pSpot, "info_xen" );
440
  else
441
    pSpot = UTIL_FindEntityByClassname( pSpot, "info_earth" );
442
 
443
  if (pSpot)
444
  {
445
    UTIL_ScreenFade( m_pPlayer, Vector(0, 200, 0), 0.5, 0.5, 255, FFADE_IN );
446
 
447
    m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 60;
448
    Vector tmp = pSpot->pev->origin;
449
    tmp.z -= m_pPlayer->pev->mins.z;
450
    tmp.z++;
451
    UTIL_SetOrigin( m_pPlayer->pev, tmp );
452
 
453
    m_pPlayer->pev->angles = pSpot->pev->angles;
454
    m_pPlayer->pev->velocity = m_pPlayer->pev->basevelocity = g_vecZero;
455
 
456
    EMIT_SOUND( edict(), CHAN_BODY, "weapons/displacer_self.wav", 1, ATTN_NORM );
457
    SendWeaponAnim( DISPLACER_FIRE );
458
  }
459
  else
460
  {
461
    SendWeaponAnim( DISPLACER_SPINUP );
462
    EMIT_SOUND( edict(), CHAN_BODY, "buttons/button10.wav", 1, ATTN_NORM );
463
    m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.3;
464
  }
465
 
466
  m_flNextSecondaryAttack = gpGlobals->time + 2.0;
467
  m_flTimeWeaponIdle = gpGlobals->time + 1.0;
468
}
469
 
470
void CDisplacer::WeaponIdle( void )
471
{
472
  int iAnim;
473
 
474
  m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );
475
 
476
  if ( m_flTimeWeaponIdle > gpGlobals->time )
477
    return;
478
 
479
  float flRand = RANDOM_FLOAT(0,1);
480
 
481
  if ( flRand <= 0.5 )
482
  {
483
    iAnim = DISPLACER_IDLE1;
484
    m_flTimeWeaponIdle = gpGlobals->time + RANDOM_FLOAT(10,15);
485
  }
486
  else
487
  {
488
    iAnim = DISPLACER_IDLE2;
489
    m_flTimeWeaponIdle = gpGlobals->time + 3;
490
  }
491
 
492
  SendWeaponAnim( iAnim );
493
}



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

__________________
Тихонов

Отредактировано демид 28-07-2019 в 06:23

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

Старое сообщение 28-07-2019 06:16
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
демид писал:
CODE PART FOR CLIENT SIDE

Ты вот этот код, что в комментарии, перенеси в ev_hldm.cpp.
И ещё там надо HOOK_EVENT где-то дописать в клиентке, для displacer.sc.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 28-07-2019 07:42
-
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



появилась ошибка при компиляции

hl_events.obj : error LNK2001: unresolved external symbol _EV_displacer

__________________
Тихонов

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

Старое сообщение 28-07-2019 09:36
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


EV_SpinDisplacer надо

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 28-07-2019 09:52
-
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



опять эта ошибка в чем прикол не понимаю

hl_events.obj : error LNK2001: unresolved external symbol _EV_SpinDisplacer

Добавлено 28-07-2019 в 14:38:

ладно не парьтесь я уже понял все и сделал как надо вот файлы фикса просто поменяйте файлы если кому надо то что его глючит с переходами я так и не понял почему наверно ему нужно время на перезагрузку.

Вложение: fix.rar (10.8 кб)
Этот файл был скачан 150 раз.

__________________
Тихонов

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

Старое сообщение 28-07-2019 11:38
- За что?
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



вот еще один фикс бага перехода с карты на карту

Вложение: fix2.rar (3.9 кб)
Этот файл был скачан 147 раз.

__________________
Тихонов

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

Старое сообщение 28-07-2019 11:46
- За что?
Step4enko
A.K.A. -Steppy-

Группа: Неопытный
Дата регистрации: Oct 2018
Проживает: Ukraine
Сообщений: 7
Возраст: 25

Рейтинг



Вот видишь, ты сам разобрался!

Отредактировано Step4enko 28-07-2019 в 12:16

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

Старое сообщение 28-07-2019 11:59
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



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

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

Старое сообщение 28-07-2019 17:05
- За что?
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



в мультиплеере та все прикольно а вот в сингле не очень после перехода с карты на карту оружие просто зависает и не хочет работать и стрелять пс fix2 проверял не работает по глупости выложил. Может кто знает как этот баг исправить.

__________________
Тихонов

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

Старое сообщение 28-07-2019 17:18
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


демид
А после сохранения и загрузки - работает нормально?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 28-07-2019 17:19
-
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



не проверял сейчас попробую а что

Добавлено 28-07-2019 в 20:29:

после сохранения и загрузки работает нормально

Добавлено 28-07-2019 в 20:45:

скажите чесно вы знаете как этот баг исправить или я просто зря трачу время на displacera и пойду другую пушку кодить просто я уже много исходников displacera испробовал и все равно такая же проблема. кстати у меня есть свой интересный проект по оружию deagle кто нибуть хочет посмотреть на мой исходник дигла там надо только количество патронов поменять с 6 на 10 а так исходник крутой.

__________________
Тихонов

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

Старое сообщение 28-07-2019 17:45
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
демид писал:
после перехода с карты на карту оружие просто зависает и не хочет работать и стрелять

Цитата:
демид писал:
после сохранения и загрузки работает нормально

Лучше писать новое оружие на основе старого, если у тебя недостаточно опыта. Например, берёшь MP5, оставляешь только вторичную атаку из подствольника, а вместо гранат спавнишь дисп-шары. Именно в коде дисплейсера, наибольшую сложность представляет клиентский эвент с зелёными лучами на створках его "ствола", при выстреле, т.к. там надо их правильно закрепить к аттачментам:
C++ Source Code:
gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x2000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0);

view->index | 0xблабла и есть номер аттачмента в модели, к которому крепятся оба конца темпэнтити луча.

Отредактировано Ku2zoff 28-07-2019 в 18:59

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

Старое сообщение 28-07-2019 18:48
- За что?
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



предлагаешь заменить это ?

gEngfuncs.pEfxAPI->R_BeamEnts(view->index | 0x2000, view->index | 0x1000, args->iparam2, life, 0.5, 0.5, 0.5, 0.6, 0, 10, 2, 10, 0);

Добавлено 28-07-2019 в 21:55:

на то которое у меня есть

Добавлено 28-07-2019 в 22:00:

может надо правильную модель displacera найти

__________________
Тихонов

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

Старое сообщение 28-07-2019 19:00
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Да нет же. Ты пишешь, что у тебя дисплейсер перестаёт стрелять после чейнджлевела. Возьми за основу исходную пушку, которая стреляет норм после чейнджлевела, и напиши дисплейсер на её основе, с оглядками на код из тутора, я вот о чём.

Добавлено 29-07-2019 в 02:03:

Цитата:
демид писал:
может надо правильную модель displacera найти

В опфоре так-то самая правильная модель. Уже 20 лет как она там есть. Дело не в модели, дело в коде пушки.

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

Старое сообщение 28-07-2019 19:03
- За что?
демид
Частый гость

Группа: Неопытный
Дата регистрации: Mar 2019
Проживает: Волгоград
Сообщений: 45
Возраст: 22

Рейтинг



слушай я тут модель декомпилировал может посмотришь на исходник v_displacer.qc в модели как раз есть эти аттачменты: вот исходник-сам код

/*
==============================================================================

QC script generated by Half-Life MDL Decompiler 1.2
2003, Kratisto. Based on code from Valve's HL SDK.

v_displacer.mdl

Original internal name:
"v_displacer.mdl"

==============================================================================
*/

$modelname "v_displacer.mdl"
$cd ".\"
$cdtexture ".\"
$scale 1.0
$cliptotextures


$bbox 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
$cbox 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
$eyeposition 0.000000 0.000000 0.000000


//reference mesh(es)
$body "body" "displacer_reference"

$body "studio" "v_gordon_hands_ref"

$body "body" "glow_reference"

$texrendermode "GLOW.bmp" "additive"

// 4 attachment(s)
$attachment 0 "blast_emitter" 0.000000 -15.000000 0.000000
$attachment 1 "reflector01" 0.000000 -2.000000 0.000000
$attachment 2 "reflector02" 0.000000 -2.000000 0.000000
$attachment 3 "reflector03" 0.000000 -2.000000 0.000000

// 12 hit box(es)
$hbox 0 "Bip01 L Forearm" -0.530000 -1.520000 -3.110000 11.368421 2.090000 1.560000
$hbox 0 "Bip01 L Hand" 0.000000 -1.150000 -2.140000 3.789475 0.770000 1.850000
$hbox 0 "Bip01 L Finger0" 0.000000 -0.870000 -0.510000 2.440000 0.440000 0.990000
$hbox 0 "Bip01 L Finger21" 0.000000 -0.640000 -0.710000 1.326317 0.460000 0.390000
$hbox 0 "Bip01 L Finger31" 0.000000 -0.650000 -0.460000 1.136843 0.510000 0.550000
$hbox 0 "Bone01" -6.130000 -18.070000 -3.160000 9.950000 4.580000 7.440000
$hbox 0 "Bone10" -2.385619 -8.638719 -2.637438 2.306428 0.000000 0.000000
$hbox 0 "blast_emitter" -5.000000 0.000000 -0.860000 5.020000 1.770000 3.770000
$hbox 0 "spinner" -3.520000 -3.290000 -3.510000 3.520000 0.060000 3.530000
$hbox 0 "Bone07" -0.060000 -1.550000 -0.030000 1.040000 0.000000 1.070000
$hbox 0 "Bone08" 0.000000 -1.410000 -0.010000 1.370000 0.000000 1.150000
$hbox 0 "Bone09" 0.000000 -1.090000 -0.170000 1.550000 0.000000 1.040000

// 9 animation sequence(s)
$sequence "idle1" "idle1" fps 30
$sequence "idle2" "idle2" fps 30
$sequence "spinup" "spinup" fps 30 { event 10010 15 }
$sequence "spin" "spin" fps 30 loop
$sequence "fire" "fire" fps 30 { event 10011 0 }
$sequence "fire_solid" "fire_solid" fps 30 { event 10011 0 }
$sequence "reload" "reload" fps 15 { event 5004 1 "weapons/displacer_reload.wav" }
$sequence "draw" "draw" fps 15
$sequence "holster" "holster" fps 25 { event 10011 0 }

// End of QC script.

Добавлено 28-07-2019 в 22:09:

может редактировать их ?

Добавлено 28-07-2019 в 22:15:

Ku2zoff думаешь прокатит такой способ за основу исходной пушки

__________________
Тихонов

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

Старое сообщение 28-07-2019 19:15
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

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

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

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

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

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