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)
-- Смертоносный TargetName (https://hlfx.ru/forum/showthread.php?threadid=4023)


Отправлено Half 23-07-2013 в 16:35:

Half-Life Смертоносный TargetName

Снова всех приветствую! Буду короток:
Увы, но в халфе нет ни единого монстра, который умирает просто, при вызове по имени. Даже всем известные тентакли дохнут благодаря каким-то релеям (у этих реле стоит off). Я уже не говорю про Оспри, который удаляется с карты, не найдя паф корнера (или если скорость меньше 500).
для большей подробности были сделаны скрины:


Прошу помощи! Буду очень признателен!

__________________
Пруха длится всего 5 минут.


Отправлено XaeroX 23-07-2013 в 16:38:

Half
И чем же тебе помочь?

__________________

xaerox on Vivino


Отправлено Half 23-07-2013 в 16:40:

Как прописать ему смерть? Скриптами (маппингом) любой может, а кодом пока не выходит...

__________________
Пруха длится всего 5 минут.


Отправлено Дядя Миша 23-07-2013 в 17:18:

Цитата:
Half писал:
Как прописать ему смерть?

Кому - ему?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Вилс 23-07-2013 в 18:01:

Как я понял он хочет что бы при триггере убивал монстра.


Отправлено XF-Alien 23-07-2013 в 18:38:

Через scripted_sequence вроде как просто проигрываешь нужную анимацию смерти и все.


Отправлено Government-Man 24-07-2013 в 03:38:

trigger_hurt


Отправлено Half 24-07-2013 в 08:21:

Цитата:
Дядя Миша писал:
Кому - ему?

Сейчас выложу файл - узнаешь. + На скринах же видно, или я не так сфоткал?
Цитата:
Вилс писал:
он хочет что бы при триггере убивал монстра

Не только! Хочется, чтобы кнопка или триггер не могли заново запустить "Смерть"
Цитата:
XF-Alien писал:
Через scripted_sequence

Не охота Рипентом уровень ломать
Цитата:
Government-Man писал:
trigger_hurt

Такого монстра даже Hurt-ом не грохнешь. Почему? Ответ в аттаче.

Мне хочется упростить процесс, не пихать всяких скриптов, амбиентов... просто по коду!

Типа:
C++ Source Code:
1
void CTestMonster::CommandUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
2
{
3
  pev->takedamage = DAMAGE_NO;
4
  SetThink( DieThink );
5
  m_iGoalAnim = TEST_ANIM_Death;
6
  break;
7
}
8
 
9
void CTestMonster :: DieThink( void )
10
{
11
  pev->nextthink = gpGlobals-> time + 0.1;
12
 
13
  EMIT_SOUND_DYN( ENT(pev), CHAN_WEAPON, "test/death.wav", 1, ATTN_NORM, 0, 100 );
14
  if (m_fSequenceFinished)
15
  {
16
    if (pev->sequence == m_iGoalAnim)
17
    {
18
      switch( m_iGoalAnim )
19
      {
20
      case TEST_ANIM_Idle:
21
        case TEST_ANIM_Idle2:
22
            break;
23
        case TEST_ANIM_Death:
24
            UTIL_Remove( this );
25
          return;
26
        }
27
    }
28
  }

__________________
Пруха длится всего 5 минут.


Отправлено Дядя Миша 24-07-2013 в 13:15:

Цитата:
Half писал:
Сейчас выложу файл - узнаешь

И что я должен понять из тестового файла?
test monster какой-то. Причём к нему даже кода никакого не написано.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 24-07-2013 в 13:45:

Цитата:
Half писал:
Не охота Рипентом уровень ломать

Ещё один Бумка Шестицентовый Жора... Сделай свой уровень, не уродуй чужой.


Отправлено Half 24-07-2013 в 15:27:

Цитата:
Дядя Миша писал:
test monster какой-то

Монстр специально переименован, чтобы подогреть ваш интерес.
Цитата:
Дядя Миша писал:
Причём к нему даже кода никакого не написано

Врать не буду, ибо брал всё от женерика. В нём кода не много и трудно запутаться.
Я очень надеюсь, что кто-нибудь добавил этот файл к себе в проект, скомпилил и пострелял бы в него на тестовом уровне.
+ В файле я специально закомментировал те места, с которыми я не могу разобраться. (к примеру:KeyValue)
Цитата:
Ku2zoff писал:
Сделай свой уровень, не уродуй чужой

Мне и свой уровень жалко. А в оригинальном он (монстр) лучше выглядит. Так как и уровень и монстр созданы одними и теми же людьми. Я всего лишь пытаюсь воссоздать этого npc.

Ну я реально не знаю, помогите!

__________________
Пруха длится всего 5 минут.


Отправлено Дядя Миша 24-07-2013 в 15:40:

Цитата:
Half писал:
Монстр специально переименован, чтобы подогреть ваш интерес.

Этот монстр не нужен никому кроме тебя. Себе интерес подогревай.

Цитата:
Half писал:
Я всего лишь пытаюсь воссоздать этого npc.

Ну как же ты пытаешься, если ни строчки кода не написал?
Это ты даже еще не начал пытаться

Бери, открывай хентакля, смотри как там устроено.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Half 24-07-2013 в 17:11:

Цитата:
Дядя Миша писал:
открывай хентакля, смотри как там устроено

Не 1 раз открывал, там прописано:
Если тентакла активирует рилей с "Trigger Strate: Off", то тентакл умрёт. Если "On" - подымется вверх. Если "Toggle" - ничего не произойдёт.
Я ведь не через Рилэи буду npc убивать, а обычными кнопками (триггерами).

Добавлено 25-07-2013 в 00:11:

Ну вот, значит написал я:
C++ Source Code:
1
void CTestMonster::CommandUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
2
{
3
  // ALERT( at_console, "%s triggered %d\n", STRING( pev->targetname ), useType );
4
  switch( useType )
5
  {
6
  case USE_TOGGLE:
7
      pev->takedamage = DAMAGE_NO;
8
    SetThink( DieThink );
9
    m_iGoalAnim = PLANT_ANIM_Death;
10
    break;
11
  }
12
 
13
}
14
 
15
void CTestMonster :: DieThink( void )
16
{
17
  pev->nextthink = gpGlobals-> time + 0.1;
18
 
19
  if (m_fSequenceFinished)
20
  {
21
    if (pev->sequence == m_iGoalAnim)
22
    {
23
      switch( m_iGoalAnim )
24
      {
25
      case PLANT_ANIM_Idle:
26
        case PLANT_ANIM_Idle2:
27
            m_iGoalAnim = PLANT_ANIM_Flinch1 + RANDOM_LONG( 0, 2 );
28
          break;
29
        case PLANT_ANIM_Death:
30
            UTIL_Remove( this );
31
          return;
32
        }
33
    }
34
 
35
    // ALERT( at_console, "%d : %d => ", pev->sequence, m_iGoalAnim );
36
    pev->sequence = FindTransition( pev->sequence, m_iGoalAnim, &m_iDir );
37
    // ALERT( at_console, "%d\n", pev->sequence );
38
 
39
    ResetSequenceInfo( );
40
 
41
    switch( pev->sequence )
42
    {
43
    case PLANT_ANIM_Idle:
44
      case PLANT_ANIM_Idle2:
45
        case PLANT_ANIM_Flinch1:
46
          case PLANT_ANIM_Flinch2:
47
            case PLANT_ANIM_Death:
48
                pev->framerate = RANDOM_FLOAT( m_iDir - 0.2, m_iDir + 0.2 );
49
              break;
50
            default:
51
                pev->framerate = 1.0;
52
              break;
53
            }
54
          EMIT_SOUND_DYN( ENT(pev), CHAN_WEAPON, "ambience/flies.wav", 1, ATTN_NORM, 0, 100 );
55
        }
56
    }

Вроде всё верно, но всё равно не работает. Почему?

__________________
Пруха длится всего 5 минут.


Отправлено Дядя Миша 24-07-2013 в 18:22:

Кейсы вообще убери. Пусть только дохнет по активации.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Luxury 24-07-2013 в 19:15:

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


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

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