ACS. Создаем морпехов (ScriptedMarine).

Данная статья была написана по реквесту «Роман Мурашкин«. Свой реквест, вы можете оставить в группе ВК или в комментариях к уроку.

Предисловие

В ZDoom существуют боты (на подобии с кс го). Их можно расставлять по карте, симулируя мультиплеерный режим. Боты имеют равное с игроком, количество здоровья и могут использовать оружие (например BFG или Двухстволка). Так как, боты являются акторами, то их можно замораживать, менять скорость и здоровье. В добавок к этому, через ACS, можно менять оружие бота, и его спрайт, и все это на лету. Сейчас мы подробно разберем этих ботов.

Создаем ботов.

«ScriptedMarine» — это простейший бот. Все что он умеет — это ходить по карте, тем не менее, на основе него, было сделано куча ботов с разным оружием. Находятся они во вкладке Marines (Doom Builder).

Разные боты имеют разное оружие например:

  • Marine (chaingun) — имеет пулемет
  • Marine (pistol) — имеет пистолет

И так далее…

Если поставить такого бота на карту, то он начнет вас атаковать. Ладно, перейдем к работе с ACS.

ACS комманды

SetMarineWeapon

Комманда SetMarineWeapon заменяет оружие нашего бота. Синтаксис у него следующий:

SetMarineWeapon(tid, оружие);
  • tid — задает tid бота
  • оружие — сюда нужно передавать константу, посмотреть список констант можно на вики.

Таким образом, можно менять оружие, нашего бота. Перейдем к следующей комманде.

Меняем скин, нашего бота (SetMarineSprite)

Данная комманда — заменяет внешний вид нашего бота. Синтаксис тут следующий:

SetMarineSprite(tid, класс_актора); 
  • tid — указывает tid бота
  • класс_актора — указывает актор в котором прописан внешний вид актора.

Класс актора создаётся в DECORATE по следующему шаблону:

класс_актора 
{
    Sprite первые_4_буквы_спрайта
    Frames "начальный_кадр"
}
  • класс_актора — название которое будет использоваться в SetMarineSprite
  • первые_4_буквы_спрайта — первые 4 буквы спрайта (например PLAY).
  • начальный_кадр — указывает начальный кадр изображения (по умолчанию «A«)

С помощью SetMarineSprite вы сможете изменять скин бота, прямо во время игры.

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

randSprite
{
    Sprite BOS2
    Frames "A"
}

Таким образом, мы создали скин.

И в ACS:

script 1 (void)
{
  SetMarineWeapon(1, MARINEWEAPON_Railgun);
  SetMarineSprite(1,"randSprite");
}

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

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!