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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- SOHL Custom Build (https://hlfx.ru/forum/forumdisplay.php?forumid=15)
-- Бесконечная стрельба из egon'a (https://hlfx.ru/forum/showthread.php?threadid=280)


Отправлено Government-Man 02-06-2006 в 19:58:

Smile Бесконечная стрельба из egon'a

Гулял сегодня по сорцам Спирита 1.6 и случайно обнаружил, что в функции CEgon::HasAmmo закомментирована одна строчка:

C++ Source Code:
1
BOOL CEgon::HasAmmo( void )
2
{
3
  //if ( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 ) return FALSE;
4
  return TRUE;
5
}


Это значит, что из егона можно стрелять, даже когда у него нет патронов.

Вопрос: Что это? Пасхалка?


Отправлено BUzer 03-06-2006 в 00:22:

А ты испытывал?.. Мож ему она просто не нужна, эта функция..


Отправлено Jaturkenjensirhiv 03-06-2006 в 06:14:

Да, помню, был там такой глюк, причем давно. Особенно интересно с ним было в мультиплеере...


Отправлено XaeroX 03-06-2006 в 08:30:

Дык каво. Нажимаем ЛКМ, потом ПКМ, потом отпускаем ЛКМ. Егон продолжает "стрелять" до бесконечности (патроны не расходует, но и повреждений не наносит. Так, для понту )

__________________

xaerox on Vivino


Отправлено Government-Man 04-06-2006 в 08:47:

Цитата:
BUzer писал:
А ты испытывал?.. Мож ему она просто не нужна, эта функция..


В оригинальном Спирите 16 егон продолжает стрелять после того, как у него не останется патронов, нанося при этом повреждения. Если эту строчку раскомментировать - то все нормально...


Отправлено Дядя Миша 04-06-2006 в 12:29:

Government-Man это я что-то там проверял и забыл раскоментировать, блин


Отправлено Government-Man 07-06-2006 в 06:14:

И еще об одном глюке: если бить монтировкой по убитым монстрам, то звук при этом не проигрывается.

Не знаю, насколько это правильно, но я пофиксил этот баг путем вставки в функцию CCrowbar::Swing куска кода из обычной халфы.

C++ Source Code:
1
if (pEntity)
2
{
3
  if ( pEntity->Classify() != CLASS_NONE && pEntity->Classify() != CLASS_MACHINE )
4
  {
5
    bHit = TRUE;
6
 
7
    m_pPlayer->m_iWeaponVolume = CROWBAR_BODYHIT_VOLUME;
8
    if ( !pEntity->IsAlive() )
9
      m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.5;
10
    else flVol = 0.1;
11
    fHitWorld = FALSE;
12
  }
13
}


Заменил на:

C++ Source Code:
1
if (pEntity)
2
{
3
  if ( pEntity->Classify() != CLASS_NONE && pEntity->Classify() != CLASS_MACHINE )
4
  {
5
    bHit = TRUE;
6
 
7
    switch( RANDOM_LONG(0,2) )
8
    {
9
    case 0:
10
        EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/cbar_hitbod1.wav", 1, ATTN_NORM); break;
11
    case 1:
12
        EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/cbar_hitbod2.wav", 1, ATTN_NORM); break;
13
    case 2:
14
        EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/cbar_hitbod3.wav", 1, ATTN_NORM); break;
15
    }
16
    m_pPlayer->m_iWeaponVolume = CROWBAR_BODYHIT_VOLUME;
17
    if ( !pEntity->IsAlive() )
18
      return TRUE;
19
    else
20
      flVol = 0.1;
21
 
22
    fHitWorld = FALSE;
23
  }
24
}


Вроде как помогло...


Отправлено Дядя Миша 07-06-2006 в 08:18:

Government-Man там звук играется через эвент на клиенте. Ты о чем вообще?


Отправлено Government-Man 07-06-2006 в 09:18:

Цитата:
Дядя Миша писал:
там звук играется через эвент на клиенте.


Не знаю, у меня он почему-то не играется. Вот я и вставил туда обычный EMIT_SOUND...


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

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