Главная
Новости
Статьи
Ссылки
Гостевая книга
Форум
Почта:
Прочее
Общая информация
Предыстория
Оружие
Кадры из игры
Концепт-арт
Скачать
Инструменты
Авторы проекта
Глоссарий объектов
 Объекты из HLRA:
  Вещи
  Монстры
  Оружие
Юмор в картинках

monster_scientist — дружественный учёный или врач
на карте Half-Life и его модов

Обновлено 27.07.2011

monster_scientist — всем известный персонаж, можно почти ничего не писать, тем не менее на всякий случай:
А) Это учёный, которого игрок может позвать за собой, подойдя и нажав кнопку Использовать, и тот пошагает или побежит вслед, пока не заметит появления враждебных монстров или слишком большой перепад высот, т.к. не прыгает и не лазит по вертикальным лестницам func_ladder. Готовность ходить за игроком отключается 256 флажком.
Б) Если его неоднократно ранить, то он зачислит игрока во враги и перестанет за ним идти.
В) Оказываясь с игроком один на один, он поворачивается к нему лицом. Более того, он может немного подлечить пострадавшего игрока.
Г) Он поддерживает неспешный малосущественный разговор в компании таких же как он учёных и охранников. Имеются в виду те персонажи, которые входят в группу монстров, говорящих самостоятельно (см. код в talkmonster.cpp). При игроке он тоже иногда высказывается (это отключается 2 флажком).

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

Реакция на повреждения: начинает паниковать, крича и хаотично бегая. При гибели его заменяет объект monster_scientist_dead c 8 ед. здоровья, который тоже может быть разбит.

Параметры:
  • Name/Имя/targetname (string) — имя монстра для обращения к нему других объектов,
  • Body/Подмодель головы (integer) — номер подмодели,
    • -1 = Random/Случайная — случайно выбирается из существующих, ставится по умолчанию,
    • 0 = Glasses/В очках — пожилая голова в очках,
    • 1 = Einstein/Эйнштейноподобная — голова, похожая на Энштейна,
    • 2 = Luther/Лютероподобная — голова негра с поседевшими висками,
    • 3 = Slick/Прилизанная — голова нестарого учёного с прилизанной причёской.
  • Scale/Масштаб (string) — масштаб модели (по умолчанию =1) добавлено только в HLRA и SoHL,
  • Target (string) — ?,
  • Render FX/renderfx — параметр отображения,
  • Render Mode/rendermode — параметр отображения,
  • FX Amount (1 - 255)/renderamt — параметр отображения,
  • FX Color (R G B)/rendercolor — параметр отображения,
  • Pitch Yaw Roll (Y Z X)/angles (string) — углы наклона вперёд-назад, поворота и крена в градусах (по умолчанию =0 0 0),
  • TriggerTarget (string) — цель, которая будет вызвана, если случится одно из событий в Trigger Condition,
  • Trigger Condition/TriggerCondition (integer) — можно выбрать одно из условий, при которых сработает TriggerTarget:
    • 0 — No Trigger — без условий (по умолчанию),
    • 1 — See Player, Mad at Player — при встрече с игроком, раздражаясь на него, а т.к. он дружественный, то изначально не срабатывает,
    • 2 — Take Damage — при получении какого-либо урона,
    • 3 — 50% Health Remaining — срабатывает при потере половины здоровья,
    • 4 — Death — при гибели,
    • 7 — Hear World — услышав что-либо,
    • 8 — Hear Player — услышав игрока,
    • 9 — Hear Combat — услышав звуки боя (стрельбу, включая удар монтировкой, или атаки монстров),
    • 10 — See Player Unconditional — при встрече с игроком,
    • 11 — See Player, Not In Combat — при встрече с игроком вне боя,
  • Use Sentence/UseSentence (string) — эту фразу он произнесёт при попытке позвать его за собой. Названия фраз с названиями звуковых файлов связаны в файле \sound\sentences.txt. Этот файл в оригинальной Half-Life находится внутри архива pak0.pak.
    Пример: на тренировочной карте t0a0d.bsp у учёного, которого ведёшь за собой, задано UseSentence = SC_HAZ_OK,
  • Un-Use Sentence/UnUseSentence (string) — это он сказанёт, когда игрок откажется вести персонажа за собой (сказанное про названия фраз в предыдущем параметре здесь тоже справедливо). В отличие от задания параметра в объекте scripted_sentence значение тут вписывается без приставки из восклицательного знака.
    Пример: карте t0a0d.bsp у учёного задано UnUseSentence = SC_HAZ_WAIT.
Основные флаги:
  • 1 = WaitTillSeen — ИИ не работает, пока монстр не попадёт в область видимости игроком (причём видимости движком игры, а не прямой видимости),
  • 2 = Gag — чтобы учёный говорил только тогда, когда к нему обращается игрок,
  • 4 = MonsterClip — блоки func_monsterclip станут непроходимы,
  • 16 = Prisoner — на учёного не обращают внимания ни враги, ни он сам ни на кого,
  • 128 = WaitForScript — учёный бездействует и ждёт своего вызова от scripted_sequence или т. п.,
  • 256 = Pre-disaster — включает поведение персонажа до телепортационной катастрофы — он приветствует игрока и произносит некоторые речи, которые не встречаются в остальной игре, а также отказывается следовать за игроком,
  • 512 = Fade Corpse — модель плавно исчезает после гибели.

Основной код в файле scientist.cpp
Модель \models\scientist.mdl, в первоначальном Half-Life также были дополнительные scientist01.mdl — scientist07.mdl и scientistt.mdl, но потом их стали объединять в одну, т.к. мощности компьютеров возросли и дробить ресурсы стало не обязательно.
Здоровье = 25 ед., а в HLRA задаётся в текстовом файле \Ralert\skill.cfg
Габариты = 32x32x72.

Текст для файла fgd:

@PointClass base(Monster, TalkMonster) size(-16 -16 0, 16 16 72) studio("models/scientist.mdl") = monster_scientist : "Scared Scientist"
[
      body(Choices) : "Body" : -1 =
        [
                -1 : "Random"
                0 : "Glasses"
                1 : "Einstein"
                2 : "Luther"
                3 : "Slick"
        ]
]


А для русифицированного fgd monster_scientist будет таким (в кодировке Win-1251):

@PointClass base(Monster, TalkMonster) size(-16 -16 0, 16 16 72) studio("models/scientist.mdl") = monster_scientist : "Учёный"
[
      body(Choices) : "Подмодель головы" : -1 =
        [
                -1 : "Случайная"
                0 : "В очках"
                1 : "Энштейноподобная"
                2 : "Лютероподобная"
                3 : "Прилизанная"
        ]
]

Если вы используете мод Spirit of Half-Life, то получаете в своё распоряжение дополнительные настройки параметров — величину здоровья, возможность сменить цвет крови при ранении и модели кусков мяса при гибели от взрыва, задания габаритов, смены фракции и т.п.


Half-life Red Alert Expantion
Presented by HLRA team
  Counter.CO.KZ -     !
Hosted by uCoz