Хранилище Kenon'a
Меню сайта

Категории раздела
Мои статьи [4]

Наш опрос
Оцените мой сайт
Всего ответов: 40

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Мои статьи

Создание уровней для режима Invasion в Zandronum

Попробую тут объяснить как делаются уровни для режима Invasion в порте Zandronum. На примере будет Doom.

Для создания нам потребуется:

  • редактор уровней gzdoom buider (либо udb)
  • Сам порт zandronum
  • Контент из скултага (новые пушки/монстры/тестуры/уровни) качать тут - skulltag_content-3.0-beta01.pk3
  • Slade для создание lump фвйлов либо блокнот (к примеру Notepad++)
  • архиватор zip файлов (к примеру 7Zip) либо slade для создания pk3 файлов
  • Знать как делаются уровни для дума (можно глянуть тут на ютубе основы - Ютуб Плейлист)

Открываем Gzdoom Builder, идем в конфигурации игр нажав F6 (или в Tools > Game Configurations). В списке выбираем поставив галочку на Zandronum: Doom 2 (Hexen format), в Resources указываем где лежит Doom2.wad, нажимаем ок.
1.PNG
Теперь создаём новый уровень указав конфиг Zandronum: Doom 2 (Hexen format) и добавляем skulltag_content-3.0-beta01.pk3 в список ресурсов через Add resource > From PK3/PK7. Жмем 2 раза ок. Редактор выругается на какие-то ошибки, но это не критично, не обращаем внимания.
2.PNG

Первая волна


Создадим стартовую локацию и вторую которая будет перекрыта закрытой стеной с поднятым сектором до потолка.
3.PNG4.PNG
Размещаем рядом с собой SSG и патроны к нему. Теперь добавим врага для вторжения. В списке вещей Монстры\Оружие\Патроны\Поверапы расположены в конце списка. У этих есть специальные флаги:

  • Start Spawn Number - Количество вещей, порожденных в волне, в которой они появляются.
  • Spawn Delay - Задержка в секундах между созданием объектов.
  • Round Spawn Delay - Задержка в секундах от начала волны до появления объектов.
  • First Appear Wave - Первая волна появления
  • Max Spawn - Максимальное количество подбираемых предметов, которые могут быть созданы в этой точке. (только для предметов)

Для первой волны добавим Dark Imp'a с такими значениями: Start Spawn Number - 8, Spawn Delay - 3, First Appear Wave - 1
Это значит что монстр появится в первой волне к количестве 8 штук с 3 сек. между созданием новых импов.


5.PNG


Добавим еще аптечку и патроны:


6.PNG7.PNG8.PNG


Вот собственно мы сделали первую волну для вторжения. Можно сохранить уровень и потестить в Zandronum (не забываем добавить skulltag_content-3.0-beta01.pk3 при тесте с уровнем)

Добавляем вторую волну и скрипты

Теперь сделаем так, что-бы опустился сектор который открывает вторую локацию и добавим врагов для второй волны. 
Поднятому сектору присваиваем свободный tag - 1 
9.PNG
Теперь открываем редактор скриптов F10 и там пишем:

#include "zcommon.acs"
 script 1 OPEN
{
    While(GetInvasionState() != IS_WAVECOMPLETE || GetInvasionWave() != 1) Delay(35*1);
    Floor_LowerToLowest(1,16);
}


Данный скрипт означает что после того как завершится первая волна (появится надпись Wave 1 Complete!) опустится сектор с Тэгом 1 с небольшой скоростью(16). Если поставить IS_COUNTDOWN вместо IS_WAVECOMPLETE, то сектор будет опускаться когда начнется отчет до следующей волны.

Компилируем наш скрипт (обязательно, а то не заработает) и закрываем редактор скриптов.
10.PNG

Добавляем во вторую локацию врагов\оружие\патроны для второй волны
(я к примеру добавил какодемона , миниган и патроны к нему)
11.PNG12.PNG
Все, вторая волна сделана, сохраняем наш уровень к примеру TestInvasion.wad и закрываем редактор уровней. Теперь добавим максимальное количество волн для уровня ибо щас они бесконечные. 
Создадим файл cmpgninf.txt и пишем в нем:

{
    mapname = MAP01
    gamemode = invasion
    wavelimit = 2
} 

 


Сохраняем. В данном файле мы задали максимальное количество волн - 2 для MAP01, после завершения второй волны уровень завершится и начнется следующий указанный в Mapinfo.
С помощью 7zip создаем архив TestInvasion.pk3 в формате zip добавив туда TestInvasion.wad  и cmpgninf.txt
13.PNG
Ну или если используем slade то создаем там pk3 архив и добавляем туда вад и txt

Запускаем наш invasion в зандронуме:

Zandronum.exe -iwad doom2.wad -file skulltag_content-3.0-beta01.pk3 TestInvasion.pk3

Добвление новых акторов в Invasion

Если хотим добавить своё оружие либо врагов, либо предметы то для этого используем decorate.
Для новых врагов добавляем туда строчки:

actor MyMonsterSpot : CustomMonsterInvasionSpot 12345
{
//$Arg0 "Start Spawn Number"
//$Arg1 "Spawn Delay"
//$Arg2 "Round Spawn Delay"
//$Arg3 "First Appear Wave"
//$Arg4 "Max Spawn"
    dropitem "MyMonster"
}


MyMonsterSpot - название точки появления монстра, называем для редактора уровней
12345 - Номер для редактора уровней
MyMonster - сюда впихиваем название кастомного actor-монстра из декорейта.

Если хотим добавить оружие, патроны или повер-ап то вместо CustomMonsterInvasionSpot ставим CustomPickupInvasionSpot
 и в dropitem вставляем нужный актор.
 
 Если хотим к примеру сделать рандомный спаун врагов в одной точке (к примеру появлялся не 1 тип врага а случайный тип из пяти), то добавляем несколько Droptem в актор спауна:
 

actor RandomMyMonsterSpot : CustomMonsterInvasionSpot 12345
{
//$Arg0 "Start Spawn Number"
//$Arg1 "Spawn Delay"
//$Arg2 "Round Spawn Delay"
//$Arg3 "First Appear Wave"
//$Arg4 "Max Spawn"
    dropitem "MyMonsterType1"
    dropitem "MyMonsterType2"
    dropitem "MyMonsterType3"
    dropitem "MyMonsterType4"
    dropitem "MyMonsterType5"
}


 

Собственно все. Если что, вот уровень из примера: http://kenonserver.narod.ru/fortutorial/Invasion/TestInvasion.pk3 

Категория: Мои статьи | Добавил: Kenon (05.10.2020) | Автор: Kenon E
Просмотров: 558 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024
    Бесплатный хостинг uCoz