HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

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=945)


Отправлено fire64 18-10-2007 в 12:53:

рандомный выбор модели игрока

как сделать что бы модель игрока в мультиплеере выбиралась рандомно ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 18-10-2007 в 14:05:

просканировать папку models, построить список моделей в ней, выбирать рандомом из списка и менять модель командой "model xxx" через CLIENT_COMMAND.

__________________

xaerox on Vivino


Отправлено fire64 18-10-2007 в 15:35:

ясно
тут я уже разобрался
теперь другой вопрос
как профиксить отсутствие звуков у оружия, при использовании не стандартной клиентской библиотеки ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 18-10-2007 в 17:54:

fire64 сделать оружие чисто серверным


Отправлено Тренсфер 18-10-2007 в 18:08:

Да, сделать только серверным Для этого надо избавится отклиентских пушек и убрать евенты с сервера. Например на http://sharaw.deagle.ru/articles.htm описаны некоторые пушки без эветов на клиент.

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


Отправлено fire64 19-10-2007 в 11:12:

Цитата:
Тренсфер писал:
Да, сделать только серверным Для этого надо избавится отклиентских пушек и убрать евенты с сервера. Например на http://sharaw.deagle.ru/articles.htm описаны некоторые пушки без эветов на клиент.

а нельзя по подробней объяснить как отключить эвенты ?
желательно показать как надо редактировать код, что бы я им пользовался как образцом

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 19-10-2007 в 16:16:

fire64 читай мой тутор про XashWeaponSystem часть 2
искать - в разделе туторы на этом форуме


Отправлено fire64 19-10-2007 в 18:48:

Цитата:
Дядя Миша писал:
fire64 читай мой тутор про XashWeaponSystem часть 2
искать - в разделе туторы на этом форуме

прочитал, весьма интересно,
но у меня вопрос
я пользуюсь батниками а не шестой студией
как мне быть ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Тренсфер 20-10-2007 в 05:57:

Скачать студию 7м.
Могу сказать где. По этому вопросу мне в приват или в асю.
Хотя и блокнотом обойтись можно, но это мега изврат.
XashWeaponSystem отключает клиентские пушки, делает новую систему предсказания, сохраняет боди, скины и много чего ещё. Там же описано обращение с эвентами. Но вот полностью от них отказывать ся прийдётся самому, т.к для каждой пушки это индивидуалаьно, во например кусок кода лома (точнее ножа но принцип один и тот же) без эвентов

C++ Source Code:
1
int CKnife::Swing( int fFirst )
2
{
3
  int fDidHit = FALSE;
4
  float flVol = 1.0;
5
 
6
 
7
  TraceResult tr;
8
 
9
  UTIL_MakeVectors (m_pPlayer->pev->v_angle);
10
  Vector vecSrc = m_pPlayer->GetGunPosition( );
11
  Vector vecEnd = vecSrc + gpGlobals->v_forward * 32;
12
 
13
  UTIL_TraceLine( vecSrc, vecEnd, dont_ignore_monsters, ENT( m_pPlayer->pev ), &tr );
14
 
15
#ifndef CLIENT_DLL
16
  if ( tr.flFraction >= 1.0 )
17
  {
18
    UTIL_TraceHull( vecSrc, vecEnd, dont_ignore_monsters, head_hull, ENT( m_pPlayer->pev ), &tr );
19
 
20
    if ( tr.flFraction < 1.0 )
21
    {
22
      CBaseEntity *pHit = CBaseEntity::Instance( tr.pHit );
23
      if ( !pHit || pHit->IsBSPModel() )
24
        FindHullIntersection2( vecSrc, tr, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX, m_pPlayer->edict() );
25
      vecEnd = tr.vecEndPos;
26
    }
27
  }
28
#endif
29
 
30
  if ( tr.flFraction >= 1.0 )
31
  {
32
    if (fFirst)
33
    {
34
 
35
 
36
      switch((m_iSwing++) % 3 )
37
      {
38
      case 0:
39
          SendWeaponAnim( KNIFE_ATTACK1MISS ); break;
40
      case 1:
41
          SendWeaponAnim( KNIFE_ATTACK2MISS ); break;
42
      case 2:
43
          SendWeaponAnim( KNIFE_ATTACK3MISS ); break;
44
      }
45
      m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.5;
46
 
47
 
48
      switch( RANDOM_LONG(0,2) )
49
      {
50
      case 0:
51
          EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/knife1.wav", 1, ATTN_NORM);
52
        break;
53
      case 1:
54
          EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/knife2.wav", 1, ATTN_NORM);
55
        break;
56
      default:
57
          EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/knife3.wav", 1, ATTN_NORM);
58
        break;
59
      }
60
 
61
      m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
62
    }
63
  }
64
  else
65
  {
66
 
67
#ifndef CLIENT_DLL
68
 
69
 
70
    fDidHit = TRUE;
71
    CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit);
72
 
73
    switch( ((m_iSwing++) % 2) + 1 )
74
    {
75
    case 0:
76
        SendWeaponAnim( KNIFE_ATTACK1HIT ); break;
77
    case 1:
78
        SendWeaponAnim( KNIFE_ATTACK2HIT ); break;
79
    case 2:
80
        SendWeaponAnim( KNIFE_ATTACK3HIT ); break;
81
    }
82
 
83
 
84
    m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
85
 
86
    ClearMultiDamage( );
87
 
88
    if ( (m_flNextPrimaryAttack + 1 < gpGlobals->time) || g_pGameRules->IsMultiplayer())
89
    {
90
      pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbar, gpGlobals->v_forward, &tr, DMG_CLUB );
91
    }
92
    else
93
    {
94
 
95
      pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbar / 2, gpGlobals->v_forward, &tr, DMG_CLUB );
96
    }
97
    ApplyMultiDamage( m_pPlayer->pev, m_pPlayer->pev );
98
    m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.25;
99
 
100
 
101
    int fHitWorld = TRUE;
102
 
103
    if (pEntity)
104
    {
105
      if ( pEntity->Classify() != CLASS_NONE && pEntity->Classify() != CLASS_MACHINE )
106
      {
107
 
108
        switch( RANDOM_LONG(0,1) )
109
        {
110
        case 0:
111
            EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_flesh1.wav", 1, ATTN_NORM); break;
112
        case 1:
113
            EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_flesh2.wav", 1, ATTN_NORM); break;
114
        }
115
        m_pPlayer->m_iWeaponVolume = KNIFE_BODYHIT_VOLUME;
116
        if ( !pEntity->IsAlive() )
117
          return TRUE;
118
        else
119
          flVol = 0.1;
120
 
121
        fHitWorld = FALSE;
122
      }
123
    }
124
 
125
 
126
    if (fHitWorld)
127
    {
128
      float fvolbar = TEXTURETYPE_PlaySound(&tr, vecSrc, vecSrc + (vecEnd-vecSrc)*2, BULLET_PLAYER_CROWBAR);
129
 
130
      if ( g_pGameRules->IsMultiplayer() )
131
      {
132
        fvolbar = 1;
133
      }
134
 
135
 
136
      switch( RANDOM_LONG(0,1) )
137
      {
138
      case 0:
139
          EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_wall1.wav", fvolbar, ATTN_NORM, 0, 98 + RANDOM_LONG(0,3));
140
        break;
141
      case 1:
142
          EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_wall2.wav", fvolbar, ATTN_NORM, 0, 98 + RANDOM_LONG(0,3));
143
        break;
144
      }
145
 
146
    }
147
    m_trHit = tr;
148
    SetThink( Smack );
149
    pev->nextthink = UTIL_WeaponTimeBase() + 0.2;
150
    m_pPlayer->m_iWeaponVolume = flVol * KNIFE_WALLHIT_VOLUME;
151
#endif
152
  }
153
  return fDidHit;
154
}
155
 

Как видно все события (анимация, звук текстуры...) происходят на сервере, и этот нож не создаёт глюк с гибсованием трупов.

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


Отправлено fire64 20-10-2007 в 06:50:

Тренсфер ты не понял, у меня есть шестая студия, просто я компилю через батники а не через студию
студией я пользуюсь для редактирования кода

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Тренсфер 20-10-2007 в 06:54:

Ну так компиль с помощью студии или в ней компилы не работают? У тебя случайно не Microsoft Visual Studio .NET 200х? Им не получится.

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


Отправлено Дядя Миша 20-10-2007 в 07:01:

fire64 ну и чего? я тоже студию на дух не переношу, компилю батниками, а код пишу в Asm_Ed.
Студию юзаю, только когда надо заняться отладкой (и то BC есть).


Отправлено fire64 20-10-2007 в 07:06:

теперь следующий вопрос
как профиксить ошибку
Host_Error: CL_ParseServerMessage: Illegible server message - svc_bad
такая ошибка происходит когда у некоторых пользователей зашедших на мой сервер

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 20-10-2007 в 07:53:

Цитата:
fire64 писал:
как профиксить ошибку
Host_Error: CL_ParseServerMessage: Illegible server message - svc_bad

Ууу, да причин может быть тысяча. Например, пустое имя модели. Да много чего.
Еще проверь, соответствуют ли версии хл у них и у тебя.

__________________

xaerox on Vivino


Отправлено fire64 20-10-2007 в 10:57:

как профиксить застревание трупов игров, внутри стен ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Временная зона GMT. Текущее время 19:33. Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

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