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

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Half-Life Беда с назначением IDLE анимации в методе Setactivity

Собственно, экспериментировал с барниками и грантами, добавил кастомные анимации (барникам - со спас12/сп5, грантам - пистолетные)

в методе
void <class>::SetActivity(Activity NewActivity)
у того же хгранта назначаются определенные анимки на некоторые ACTы, к примеру

C++ Source Code:
1
case ACT_RANGE_ATTACK1:
2
  if (FBitSet(pev->weapons, HGRUNT_9MMAR))
3
  {
4
    if (m_fStanding)
5
    {
6
      iSequence = LookupSequence("standing_mp5");
7
    }
8
  else
9
  {
10
    iSequence = LookupSequence("crouching_mp5");
11
  }
12
}

В игре оно работает...

но при case ACT_IDLE условие полностью игнорируется и все анимации в модели с параметром ACT_IDLE (в QC файле) проигрываются в приоритетном порядке.

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

Если кто знает, подскажите пожалуйста, как исправить это?

__________________
я Z

Отредактировано Shadow762 24-10-2022 в 07:34

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

Старое сообщение 24-10-2022 07:18
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
Shadow762 писал:
при case ACT_IDLE условие полностью игнорируется и все анимации в модели с параметром ACT_IDLE (в QC файле) проигрываются в приоритетном порядке.

Хе-хе. Вот ещё кто-то на это наткнулся. Вот тебе пример, как назначать кастомные idle анимации:
C++ Source Code:
1
void CBarney::MonsterThink(void)
2
{
3
  pev->nextthink = gpGlobals->time + 0.1;
4
 
5
  RunAI();
6
 
7
  float flInterval = StudioFrameAdvance();
8
 
9
  if (m_MonsterState != MONSTERSTATE_SCRIPT && m_MonsterState != MONSTERSTATE_DEAD && m_Activity == ACT_IDLE && m_fSequenceFinished)
10
  {
11
    int iSequence;
12
 
13
    if (m_fSequenceLoops)
14
    {
15
      if (pev->weapons) iSequence = LookupActivity(ACT_IDLE_ANGRY);
16
      else iSequence = LookupActivity(m_Activity);
17
    }
18
    else
19
    {
20
      if (pev->weapons) iSequence = LookupActivityHeaviest(ACT_IDLE_ANGRY);
21
      else iSequence = LookupActivityHeaviest(m_Activity);
22
    }
23
 
24
    if (iSequence != ACTIVITY_NOT_AVAILABLE)
25
    {
26
      pev->sequence = iSequence;
27
      ResetSequenceInfo();
28
    }
29
  }
30
 
31
  DispatchAnimEvents(flInterval);
32
 
33
  if (!MovementIsComplete())
34
    Move(flInterval);
35
#if _DEBUG
36
  else
37
  {
38
    if (!TaskIsRunning() && !TaskIsComplete())
39
      ALERT(at_error, "Schedule stalled!!\n");
40
  }
41
#endif
42
}

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

Старое сообщение 24-10-2022 10:56
- За что?
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Цитата:
Ku2zoff писал:
Хе-хе. Вот ещё кто-то на это наткнулся

Стоп, то есть это редкий случай??
Ничоси)
Ku2zoff, спасибо, проверю ближе к вечеру

__________________
я Z

Отредактировано Shadow762 24-10-2022 в 11:23

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

Старое сообщение 24-10-2022 11:18
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
Shadow762 писал:
Стоп, то есть это редкий случай??

Idle анимации вызываются не только в SetActivity, но и в MonsterThink. Так что случай неочевидный, скажем так.

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

Старое сообщение 24-10-2022 11:54
- За что?
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



Ku2zoff, нетривиально, однако
Но еще раз спасибо!
решилось сразу несколько проблем

__________________
я Z

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

Старое сообщение 24-10-2022 12:10
- За что?
Shadow762
быдлокодер

Дата регистрации: Jul 2015
Проживает: Гиде-то
Сообщений: 71
Возраст: 26

Рейтинг



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

__________________
я Z

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

Старое сообщение 26-10-2022 00:16
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 09:50. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Беда с назначением анимации в методе Setactivity
идлы проигрываются все подряд, а не назначенные в коде
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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