Вопросы скриптования
#1
Отправлено 20 Июнь 2008 - 13:29
#2
Отправлено 20 Июнь 2008 - 17:22
Итак, возьмем пустую карту. Поставим на ней персонажа, которым будем рулить, а также турель. Надеюсь что знания в объеме мануала
der Fluger'a у картостроителя имеются.
Итак, персонажу назначаем player 1, турелям - player 2. Соответственно создаем этих player'ов на вкладке Level, также создаем Team-ы, к примеру, BOS и Turret. Назначаем игроков в команды соответственно.
Турели назначаем Tag name Turret на вкладке Entity edit.
Это сообщение отредактировано hasan - 20 июня 2008 | 20:03
#3
Отправлено 20 Июнь 2008 - 17:25
#4
Отправлено 20 Июнь 2008 - 17:34
Далее, условие по которому турели будут включаться. В Преории это было включение рубильника, я сделаю по пересечению границ зоны. То есть заходишь в зону поражения турелей - турели переходят в боевое положение. Выходишь - турели прячутся. Для этого на вкладке Zone создаем зону поражения, называем ее zone1.
Скриншот окна Zone
И наконец, триггеры. Создаем новый триггер, выбираем условие срабатывани - condition следующее: Quantity - player. В условии проставляем, что плеер №1 (Human) имеет ровно 1 выжившего, в зоне zone1. Ставим галочку inLocation.
Скриншот окна conditions
Переходим к действию триггера - action. Я сделаю следующее: При входе в зону турели будут подниматься на 4 секунды, потом опускаться на одну секунду. Если игрок уже вышел из опасной зоны, турели остаются опущенными. Если не вышел - заново поднимаются.
Для этого:
1) Добавляем действие Set object script state, в поле Unit пишем тег-нейм турели - turret. Ставим галочку
2) Задержка 4 секунды. Добавляем действие Wait, ставим ему 4 секунды, в верхнем левом углу окна триггеров ставим галочку Blocking. Иначе следующее действие будет накладываться на это, и паузы не будет.
3) Добавляем действие Set object script state, в поле Unit пишем тег-нейм турели - turret. Галочку НЕ ставим.
4) Задержка 1 секунда. Добавляем действие Wait, ставим 1 секунду, в верхнем левом углу окна триггеров ставим галочку Blocking.
Скриншот окна actions. Обратите внимание, установлена галочка Preserve, чтобы действие повторялось каждый раз, когда наш персонаж заходит в зону.
Все, сохраняем и проверяем. При входе в зону турели "просыпаются" и поднимаются в боевое положение. Пока что не атакуют, это будет чуть позже. Вживую на плоды трудов можно посмотреть, скачав карту-образец. "Тренировка для нестандартных рекрутов"
UPDATE: для того, чтобы турели при переходе в боевой режим атаковали нашего персонажа, нужно проделать следующее:
- Поставить отрицательное отношение между командами (Team) турелей и игрока, вот так.
- Сменить тип игрока турелей Player с Disabled на Computer, то есть банально включить этого игрока. Смена типа игрока
Это сообщение отредактировано hasan - 20 июня 2008 | 22:23
#6
Отправлено 27 Декабрь 2009 - 00:19
http://www.moddb.com...peech-tree-demo
Sorry for my lack of Russian. I hope this program will help you without any need to cut down the text.
#7
Отправлено 22 Июль 2010 - 17:49
Потому предлагаю в этой теме собирать решения по различным вариантам событий и обрабатывать связанные с ними вопросы (например, вроде реализации лифтов в Open Fallout Mod), эдакий банк.
Для начала такая ситуация. Есть Хаммер, есть (для приведения его в активное состояние, по квесту) три канистры с бензином, ключ зажигания и стартер (последнее для починки, должно сработать по опции "починить опр. предметом"). На всём (партии, вещах, врагах...) стоят соответствующие теги.
Задача поначалу сделать его неактивным, чтобы нельзя было пользовать до определённого момента (переключение соотв. переменной.)
Варианты:
1) ремонт опр. деталью (установка вынутого стартёра, для большей красоты и реалистичности можно ещё и проверку на "ремонт" устанавливающего поставить). Если так, то всё красиво механик ставит стартёр, кто-нибудь из партии становится в зону рядом с отверстием бензобака (канистры при этом передаются скриптом в контейнер неподалёку размером 1х1 пиксел, заваленный чем-нибудь, потом проверяется наличие в инвентаре партии ключа вуаля, тачка начинает работать, можно ехать и давить всех подряд).
2) если 1 не сработает как вариант, обдумываю способ с переводом Хаммера из одной команды в другую (вроде как машину другой команды использовать не представляется возможным). По выполнению условий квеста переключение тачки на команду Scenery, которую можно пользовать.
У кого-нибудь были такие идеи?
Это сообщение отредактировано Grey - 22 июля 2010 | 19:21
#8
Отправлено 22 Июль 2010 - 18:58
1. поставить рядом с хамером чувака который "жрет" детали и канистры
(типа можно использовать одного из своих как механика)
2. как делаю я все предметы взаимодействия представляют собой
уникальные объекты 99 уровня (т.е по сути, живое существо со спрайтом хаммера)
в него пихаются детали, предметы, канистры посредством бартера
проверяются все необходимые условия затем "живой" хаммер телепортируется
за пределы карты оттуда телепортируется настоящий хаммер.
таким способом создаются любые квестовые решения и развилки,
одна беда в режиме нападения (злая морда) чел начинает "лупить"
такие предметы.
Подобным образом, у меня (open fallout mod) реализованы некоторые
люки-лестницы и многие другие вещи.
Как раз подобную схему применил в своем скрипте лифта.
Вообще работа с вариантами триггера "speech" открывает большие возможности
(я все еще думаю над реализацией крафта вещей, как это сделано в моде
Mr.Fixit для оригинального фола)
Это сообщение отредактировано Hmt - 22 июля 2010 | 20:13
#9
Отправлено 22 Июль 2010 - 19:24
QUOTE |
поставить рядом с хамером чувака который "жрет" детали и канистры |
Сюжетно не выйдет там вокруг не планируется живых механиков, окромя того, что у игрока.
А с телепортацией за карту в принципе, занятно. Отношение к игроку какое (что атакует), или из-за уровня (50 вроде как стандартный максимум) вызывает глюк? Атакует тот, что на карте, или если видит "закадровый", то и его? К тому же, в случае одноразовости события, перемещаемый за карту объект можно после отработки тупо деактивировать.
По поводу сюжетного крафта идея.
Допустим, есть помещение (строймаг или схожий отдел в магазине) с некоторой посудой и реактивами. Один партиец переводится в неактивный режим (другой игрок, фактически неписем становится на время, после отсоединения возможно, движется по вейпойнтам к верстаку). Где-то недалеко от него ставится недоступный контейнер. Ещё один персонаж также отделяется (дабы поодиночке не оставаться). Оставшиеся (2 + собака) идут искать квестовые реактивы. Находят в других отделах магазина тегованные предметы (2 вида селитры и прочее...), тащат назад. При подходе к крафтеру (зона вокруг него) переключается переменная условий квеста (нужные предметы найдены), по ней срабатывает передача предметов в недоступный контейнер, персонажи при этом могут по очереди трещать всплывающими фразами над башкой, потом включается таймер, за это время возможны пара-тройка атак, после окончания времени из недоступного контейнера крафтеру передаются самопальные осколочно-фугасные гранаты с запаливанием через фитиль, а крафтер снова переводится в команду игрока.
Итог практически встроенный в игровой процесс ролик и крафтер с гранатами в инвентаре.
#10
Отправлено 22 Июль 2010 - 19:52
Объект взаимодействия дружелюбен ко всем игрокам,
но именно по нему все свои игроки и "лупят"
(если выбран наступательный режим караула).
Если в лифт войти в таком режиме чел начнет дубасить кнопки.
Уровень ставил и 50, и 20 не помогает.
Возможно это свойство UniqueOther объекта (но из такого объекта не летит кровь)
Первые мои эксперименты чел лупит по кнопкам, а они истекают кровью
Что касается крафта можно сделать уникальный объект со спрайтом ТооlBench,
пихаем в него бартером компоненты будущего предмета , по заполнению
срабатывает скрипт и нужный нам предмет, к примеру, перемещается от NPC,
стоящего за пределами карты к нам, компоненты также убираются.
нужно просто составить таблицу рецептов, и всем предметам присвоить тэговые
имена для удобства работы со скриптом перемещения NPC-UNIT и обратно
P.S: В принципе мое мнение просто не нужно в мирных местах использовать наступательный режим караула
(я так вообще его не использую никогда, можно без партийцев остаться)
Это сообщение отредактировано Hmt - 22 июля 2010 | 20:57
#11
Отправлено 22 Июль 2010 - 19:59
#12
Отправлено 22 Июль 2010 - 20:03
или на другой уровень (ниже-выше)
Уф... на всякий случай проверил ... все OK
Это сообщение отредактировано Hmt - 22 июля 2010 | 21:50
#13
Отправлено 22 Июль 2010 - 21:54
#14
Отправлено 22 Июль 2010 - 22:36
(я "насилую" триггера и движок до такой степени,
что постоянно сталкиваюсь с разными багами и глюками.)
Для таких извращений он просто не предназначен ...
#15
Отправлено 22 Июль 2010 - 22:55
#16
Отправлено 23 Июль 2010 - 03:32
QUOTE |
по количеству |
Если предметы теговать поштучно ("fueltank_1", "fueltank_2"...) и, соответственно, прописывать их забор для каждого, то воспринимаются стабильно?
Это сообщение отредактировано Grey - 23 июля 2010 | 04:34
#17
Отправлено 23 Июль 2010 - 05:42
на одной карте есть конечное число предметов которое можно передавать
таким способом. (не провел исследование до конца)
когда я создавал стартовый набор предметов для "двеллера" там эта проблема
промелькнула, причем некоторые предметы вообще никак не хотели передаваться
от NPC к UNIT.
вечером попробую поиграться и выяснить поподробнее.
в конечном счете у меня проблема разрешилась путем перестановки порядка
передачи предметов (может мне это показалось)
можно посмотреть, как у меня сделано на карте Vault13 (StartItem)
to Grey:
думаю, что при передаче поштучно, с пронумерованными предметами,
проблем не будет.
Это сообщение отредактировано Hmt - 23 июля 2010 | 06:44
#18
Отправлено 23 Июль 2010 - 12:29
Никаких красных кругов и атак теперь. Нормально воспринимают друг друга.
Заметил также следующее: передача между игроком и неписем (в обе стороны) нормально отрабатывает при постановке её после события-фразы (даже просто всплывающей).
CODE |
Если: произошло событие-фраза То: педерача в нужную сторону и всё остальное |
Правда, выскакивают косяки со временем: надо внимательно расставлять паузы между частями действий (может проскакивать фразы, глюк или просто невнимательная расстановка пауз пока не знаю). Расстановку пауз пока не поборол, в результате забор и выдача вещей происходили одновременно.
upd. так, с перескакиванием фраз совладал. В местах, где нужны промежутки между ними (да, в принципе, и между любыми другими действиями), нужно прописывать действием не просто "wait ... sec", а со значением "blocking". Тогда всё чередуется как надо.
Это сообщение отредактировано Grey - 23 июля 2010 | 17:33
#19
Отправлено 23 Июль 2010 - 16:10
тайминги в ручную подбирать приходиться но оно того стоит
(звук движения лифта и перемещения юнита построено как раз на такой паузе)
по поводу отношения команд сейчас буду пробовать
Хм.. как только такому предмету взаимодействия присваиваю номер команды
отличный от scenery (0) игра вылетает, когда такой объект попадает в зону моей
видимости ... будем копать дальше.
Это сообщение отредактировано Hmt - 23 июля 2010 | 19:02
#20
Отправлено 24 Июль 2010 - 06:29
На всякий случай прикручивал ещё к такому шкафу возможность торговать, да потом убирать не стал. Шкаф в поле зрения изначально был (тестовая карта).
Похожие темы
Название темы | Форум | Автор | Статистика | Последнее сообщение | |
---|---|---|---|---|---|
Вопросы |
On the Day the Bombs Dropped | Azik |
|
|
|
Вопросы и ответы по моддингу Ft:bos |
Мастерские Братства | Teodor Wild |
|
|
|
Вопросы |
Ты — Избранный | Azik |
|
|
|
Решил снова поиграть в Fallout и появились вопросы |
Стальные братья | sashaskrin |
|
|
|
Вопросы по игровому процессу |
Ты — Избранный | Nuclear Winter |
|
|
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных