SED3.5 - Учимся делать спауны врагов


Всем привет!

В этой статье я обьясню, как делать и настраивать спауны монстров.
В SED3 спаун делался почти так же как и в SED1, благо там были и тачфилды, и триггеры. В SED3.5 роль тачфилдов выполняет обьект Detector Area, а триггеры вообще вырезали, оставив обьект Script. Ну, мне, честно, скрипты кажутся куда более удобными, чем триггеры. 

Собственно, сами спауны делаются так:
1. Вытаскиваем на карту обьект Legged Character (лежит в папке Characters).
Я для примера взял безголового ракетчика.
(Puppet params - Rocketman.ep, character behavior - Rocketman.cb)

2. Ищем строку Spawner, щелкаем по стрелочке, выбираем New > CSpawnerProperties.
Мы создали спаунер ракетчиков, осталось лишь его настроить.

3. Настраиваем спаунер - параметры Total number, Number in group и прочее, они вам должны быть знакомы по SED1. Также, в SED3 можно настроить зону, где будут спауниться враги. Для этого щелкаем по Spawn formation, выбираем, к примеру, Rect formation (Прямоугольник), настраиваем зону. 

В результате получаем нечто вроде этого


4. Наш спаун готов! Теперь, чтобы его активировать, нам понадобится Script. Ставим его на карту из списка обьектов (Entity list), скрипт лежит в папке Logic. 


5. Щелкните по этому оранжевому кубику дважды, слева откроется пустое окно, где пишется сам скрипт. 
Скрипты пишутся на языке Lua.

6. Спаун осуществляется так: вводится переменная, которой присваивается обьект CSpawnerEntity, и ей посылается метод SpawnSimple() (Кроме SpawnSimple(), есть другие варианты). Чтобы присвоить нашей переменной обьект CSpawnerEntity, выделите его в редакторе и, удерживая ctrl+alt+shift, перетащите на переменную. Она должна подсветиться зеленым. Теперь, поставив после нее оператор ":", выпадет список доступных методов 

Методы спауна:
 SpawnSimple() - простой спаунер, будет спаунить врагов пока не иссякнет их  количество. 
 SpawnSimpleNow() - то же, что и SpawnSimple(), но игнорирует ожидание перед  первым спауном (Initial delay) 
 SpawnGroup() - спаунит врагов группами.
 SpawnMaintainGroup() - спаунит до заполнения группы.
 SpawnOne() - спаунит только одного врага
В итоге у вас должно получиться, к примеру,
 enemy:SpawnSimple()
Запустите уровень (клавиша T), и полюбуйтесь на результат.

Теперь усложним спаун, добавив какое-либо условие, и добавив еще парочку спаунеров (каких угодно, я поставил еще гнааров впереди и клиров по краям)

Нарпимер, поставим на карту DetectorArea. Вытаскиваем его из папки Tools, настраиваем. 
Получаем примерно вот что:

Теперь, в нашем скрипте допишем ожидание активации этого поля (под активацией подразумевается проход игрока через него). Обьявим новые переменные, для новых спаунеров (gnaar и kleer) и DetectorArea(detector). 
Дописываем в скрипте:
 Wait(Event(detector.Activated)) 
  gnaar:SpawnMaintainGroup() 
  Wait(Delay(1)) 
  kleer:SpawnGroup()

Функция Wait приостанавливает выполнение скрипта до выполнения
каких-либо условий. В первом случае это ожидание события (функция Event()) активации детектора (detector.Activated). Оператор "." служит в скриптах для проверки событий. Во втором случае условие - функция Delay(1), т.е. ожидание.

Итак, теперь при проходе через наш DetectorArea активируется спаунер гнааров, и, спустя секунду, спаунер клиров.
В качестве условия можно выбрать также и подбор предмета.
К примеру, поставим на карту Devastator (поставив и настроив Generic Item),
обьявим в скрипте переменную devastator, присвоив ей эту пушку. 
Допишем в скрипт
 Wait(Event(devastator.Picked))
И после этого активируем еще какой-нибудь спаунер, к примеру, как на этом скрине:


Примечание: если взять предмет до того как выполнится функция Wait(Delay(1)), функция Wait(Event(devastator.Picked)) выполняться не будет 

Существует аналог функции Wait() - функция On(), которая не приостанавливает выполнение скрипта, а выполняет блок кода после On() только когда выполнится условие

Т.е. в нашем случае, с помощью функции On() переписать эту часть скрипта надо так:

 On(Event(devastator.Picked)),
   function()
   scorp:SpawnMaintainGroup() 
   end,

На этом все. Удачи!



Комментарии   

[Материал]  |  № 21  |  20.06.2022  |  0  
А есть команда например как if а то мне нужно сделать так чтобы если ты уничтожил один отряд появлялся другой.
Ответ Цитата

[Материал]  |  № 19  |  13.01.2018  |  0  
Тут вроде как еще SpawnTriggered есть. Или это только во фьюжон?
Ответ Цитата

[Материал]  |  № 18  |  16.12.2012  |  0  
у меня нету SpawnSimple()...
Ответ Цитата

[Материал]  |  № 13  |  21.12.2011  |  0  
У меня только один вопрос где, его скачать?
Ответ Цитата

[Материал]  |  № 14  |  22.12.2011  |  0  
В библиотеке жми на "Все игры", в меню выбери "Инструменты", редактор где то там
Ответ Цитата

[Материал]  |  № 15  |  22.12.2011  |  -1  
У меня No-Steam пиратка
Ответ Цитата

[Материал]  |  № 16  |  22.12.2011  |  -1  
И в Cracked Steam не удается скачать (Сервера заняты)
Ответ Цитата

[Материал]  |  № 17  |  22.12.2011  |  +2  
Ну так и на что ты надеялся с пираткой?..
SED3, насколько я знаю, как-то можно стянуть на пиратку через Стим... поплясав с бубном...
Ответ Цитата

[Материал]  |  № 20  |  20.06.2022  |  0  
Капец непонимаю почему люди не могут купить лицензионку я вот ее купил на скидках а они часто 59 грн стоило или 150 руб (в то время сейчас уже цена в два раза дороже)
Ответ Цитата

[Материал]  |  № 12  |  19.12.2011  |  +2  
+5 Статья класс! :D Разобрался, все получилось!! СПАСИБО! :D
Ответ Цитата

[Материал]  |  № 11  |  17.12.2011  |  0  
Небольшая неточность, обнаружил только сейчас. Функция On() должна запускаться внутри конструкции RunHandled(), т.е., например
Code

RunHandled(
      On(Event(object.event)),
      --что-нибудь
      end,
)

Но в этом случае надо дополнительно усложнить скрипт. Для простых спаунов, не свзяывайтесь с RunHandled().
Ответ Цитата

[Материал]  |  № 10  |  15.12.2011  |  0  
Спасибо тебе !
Ответ Цитата

[Материал]  |  № 9  |  12.12.2011  |  0  
Поучусь делать врагов в SED3.0
Ответ Цитата

[Материал]  |  № 8  |  12.12.2011  |  0  
однако тяжело!
МОЛОДЕЦ!!
Ответ Цитата

[Материал]  |  № 7  |  11.12.2011  |  0  
Отлично! Cool
Ответ Цитата

[Материал]  |  № 6  |  11.12.2011  |  0  
спасибо, Artifica1 очень помогаешь с serious sam 3 editor :)
Ответ Цитата

[Материал]  |  № 5  |  10.12.2011  |  0  
Ничего говорить не стану - просто + :)
Ответ Цитата

[Материал]  |  № 4  |  10.12.2011  |  0  
порадовало :) , +5
Ответ Цитата

[Материал]  |  № 3  |  10.12.2011  |  0  
Спасибо за эту статью, очень понадобилась ^_^
Ответ Цитата

[Материал]  |  № 1  |  10.12.2011  |  0  
Замечательная статья, постарался 5+
Ответ Цитата

[Материал]  |  № 2  |  10.12.2011  |  0  
Спасибо :)
Ответ Цитата

Оставьте комментарий

Мини-профиль

Гость

Вы в группе: Гости
Ваш IP: 18.221.41.214

Сейчас обсуждают

Mindbreak1664
HoBu4oK7
maximmoz2454
AzuNeko5
SeriousRoman27
BaBuinel41
Boffy61
BaBuinel5
AzuNeko6
Ar2R-devil-PiNKy18

МЕМЫ

НОВЫЙ
Serious_Stepan 3 1

Файлы

Boffy
81 10 0

vanya109
8794 2436 69

Ar2R-devil-PiNKy
5696 1300 32

KeF1R
2524 694 13

Tenshi
3054 968 14

Категории раздела

Croteam [4]
Материалы по студии разработчика игр CroTeam.
Интервью с разработчиками [9]
Интервью с разработчиками, а также их издателями.
Serious Sam 1 [9]
Статьи о Serious Sam 1
Serious Sam 2 [6]
Статьи о Serious Sam 2
Serious Sam HD [4]
Статьи о HD-серии, ремейков классических версий Сэма.
Serious Sam 3: BFE [10]
Статьи о Serious Sam 3: BFE
Уроки по Serious Editor 1 [60]
Уроки по Serious Editor 2 [3]
Самое серьёзное редактирование, на русском!
Уроки по Serious Editor 3 [40]
Уроки по работе с редактором.
Serious Engine [6]
Описание возможностей всех движков компании Croteam
Разное [26]
Всё что не подошло не под одну из вышеупомянутых категорий.
Serious Sam: Revolution [1]
Материалы по SS: Revolution, серьёзном обновлении классических Крутых Сэмов.
Serious Sam 1.05/1.07 SDK [10]
SDK - набор исходников для Serious Sam: The Second Encounter 1.05/1.07.

Видео

Serious Lяп. Тридцать восьмой выпуск
173 5.0

Выживание в Затопленном Городе: Бесконечные перезапуски! - Aftermath (Serious Sam Map) №5
145 5.0

Обновлённый "Нож брутальным хватом"
219 5.0

Serious Sam Xbox - улучшенная классика
251 5.0

Взрывная поездка в прошлое - Aftermath (Serious Sam Map) №4
170 5.0

Статистика



На сайте: 9
Гостей: 7
Пользователей: 2
Neominigan