Перейти к содержимому


Фотография

Вопросы скриптования


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 131

#1 ripper

ripper

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 20 Июнь 2008 - 13:29

а у меня при дефолтных настройках Popup Turret она не стреляет.... спряталась в домике и молчит... :)


#2 hasan

hasan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 713 сообщений

Отправлено 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 ripper

ripper

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 20 Июнь 2008 - 17:25

тоесть надо чтобы они открывалить с помощю тригера или как?


#4 hasan

hasan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 713 сообщений

Отправлено 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


#5 Ivanov

Ivanov

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 11 Декабрь 2009 - 14:35

Вот здесь
Картинка
Обьясню суть: при активации речи, на карту как бы выставляются объекты — коробки с вариантами речи. Более детально можно разобрать это, отредактировав карту в редакторе. При этом количество вариантов, как я понял, не ограничено.


#6 Dude

Dude

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 27 Декабрь 2009 - 00:19

Speech tree system of The Wastes mod:

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 Grey

Grey

    Gun Runner

  • Пользователи
  • PipPipPip
  • 556 сообщений

Отправлено 22 Июль 2010 - 17:49

Думаю, для имеющих дела с картами тема лишней не будет. Отдельные моменты периодически проскакивают в разных темах, но искать их по отдельности — задача слегка геморная.
Потому — предлагаю в этой теме собирать решения по различным вариантам событий и обрабатывать связанные с ними вопросы (например, вроде реализации лифтов в Open Fallout Mod), эдакий банк.

Для начала — такая ситуация. Есть Хаммер, есть (для приведения его в активное состояние, по квесту) три канистры с бензином, ключ зажигания и стартер (последнее — для починки, должно сработать по опции "починить опр. предметом"). На всём (партии, вещах, врагах...) — стоят соответствующие теги.
Задача — поначалу сделать его неактивным, чтобы нельзя было пользовать до определённого момента (переключение соотв. переменной.)
Варианты:
1) ремонт опр. деталью (установка вынутого стартёра, для большей красоты и реалистичности можно ещё и проверку на "ремонт" устанавливающего поставить). Если так, то всё красиво — механик ставит стартёр, кто-нибудь из партии становится в зону рядом с отверстием бензобака (канистры при этом передаются скриптом в контейнер неподалёку размером 1х1 пиксел, заваленный чем-нибудь, потом проверяется наличие в инвентаре партии ключа — вуаля, тачка начинает работать, можно ехать и давить всех подряд).
2) если 1 не сработает — как вариант, обдумываю способ с переводом Хаммера из одной команды в другую (вроде как машину другой команды использовать не представляется возможным). По выполнению условий квеста — переключение тачки на команду Scenery, которую можно пользовать.

У кого-нибудь были такие идеи?

Это сообщение отредактировано Grey - 22 июля 2010 | 19:21


#8 Hmt

Hmt

    Триггер-Маньяк

  • Пользователи
  • PipPipPip
  • 878 сообщений

Отправлено 22 Июль 2010 - 18:58

Идеи есть всегда ! :)

1. поставить рядом с хамером чувака который "жрет" детали и канистры
(типа можно использовать одного из своих как механика)

2. как делаю я — все предметы взаимодействия представляют собой
уникальные объекты 99 уровня (т.е по сути, живое существо со спрайтом хаммера)
в него пихаются детали, предметы, канистры — посредством бартера
проверяются все необходимые условия — затем "живой" хаммер телепортируется
за пределы карты — оттуда телепортируется настоящий хаммер.
таким способом создаются любые квестовые решения и развилки,
одна беда — в режиме нападения (злая морда) чел начинает "лупить"
такие предметы.

Подобным образом, у меня (open fallout mod) реализованы некоторые
люки-лестницы и многие другие вещи.
Как раз подобную схему применил в своем скрипте лифта.

Вообще работа с вариантами триггера "speech" открывает большие возможности
(я все еще думаю над реализацией крафта вещей, как это сделано в моде
Mr.Fixit для оригинального фола)


Это сообщение отредактировано Hmt - 22 июля 2010 | 20:13


#9 Grey

Grey

    Gun Runner

  • Пользователи
  • PipPipPip
  • 556 сообщений

Отправлено 22 Июль 2010 - 19:24

QUOTE
поставить рядом с хамером чувака который "жрет" детали и канистры

Сюжетно не выйдет — там вокруг не планируется живых механиков, окромя того, что у игрока.
А с телепортацией за карту — в принципе, занятно. Отношение к игроку какое (что атакует), или из-за уровня (50 вроде как стандартный максимум) вызывает глюк? Атакует тот, что на карте, или если видит "закадровый", то и его? К тому же, в случае одноразовости события, перемещаемый за карту объект можно после отработки тупо деактивировать.

По поводу сюжетного крафта идея.
Допустим, есть помещение (строймаг или схожий отдел в магазине) с некоторой посудой и реактивами. Один партиец переводится в неактивный режим (другой игрок, фактически неписем становится на время, после отсоединения — возможно, движется по вейпойнтам к верстаку). Где-то недалеко от него ставится недоступный контейнер. Ещё один персонаж также отделяется (дабы поодиночке не оставаться). Оставшиеся (2 + собака) идут искать квестовые реактивы. Находят в других отделах магазина тегованные предметы (2 вида селитры и прочее...), тащат назад. При подходе к крафтеру (зона вокруг него) переключается переменная условий квеста (нужные предметы найдены), по ней срабатывает передача предметов в недоступный контейнер, персонажи при этом могут по очереди трещать всплывающими фразами над башкой, потом включается таймер, за это время возможны пара-тройка атак, после окончания времени из недоступного контейнера крафтеру передаются самопальные осколочно-фугасные гранаты с запаливанием через фитиль, а крафтер снова переводится в команду игрока.
Итог — практически встроенный в игровой процесс ролик и крафтер с гранатами в инвентаре.


#10 Hmt

Hmt

    Триггер-Маньяк

  • Пользователи
  • PipPipPip
  • 878 сообщений

Отправлено 22 Июль 2010 - 19:52

С атакой непонятно ...
Объект взаимодействия дружелюбен ко всем игрокам,
но именно по нему все свои игроки и "лупят"
(если выбран наступательный режим караула).
Если в лифт войти в таком режиме — чел начнет дубасить кнопки.
Уровень ставил и 50, и 20 — не помогает.
Возможно это свойство UniqueOther объекта (но из такого объекта не летит кровь)

Первые мои эксперименты — чел лупит по кнопкам, а они истекают кровью :)

Что касается крафта — можно сделать уникальный объект со спрайтом ТооlBench,
пихаем в него бартером компоненты будущего предмета , по заполнению
срабатывает скрипт — и нужный нам предмет, к примеру, перемещается от NPC,
стоящего за пределами карты — к нам, компоненты также убираются.

нужно просто составить таблицу рецептов, и всем предметам присвоить тэговые
имена для удобства работы со скриптом перемещения NPC-UNIT и обратно

P.S: В принципе мое мнение — просто не нужно в мирных местах использовать наступательный режим караула
(я так вообще его не использую никогда, можно без партийцев остаться)

Это сообщение отредактировано Hmt - 22 июля 2010 | 20:57


#11 Grey

Grey

    Gun Runner

  • Пользователи
  • PipPipPip
  • 556 сообщений

Отправлено 22 Июль 2010 - 19:59

Кстати, раз уж речь про объекты за картой пошла: расстояние от передающего до получающего критично, или даже за километр нормально работать будет? Просто по игре-то критично, а вот насчёт скриптовой передачи не упомню. У меня как раз на носу раздача ключей от призовых ящиков за хорошую работу, чтоб знать, как быстрее будет. Если критично — придётся тупо резать зону выхода, и ставить передающего невидимкой на ней или рядом...


#12 Hmt

Hmt

    Триггер-Маньяк

  • Пользователи
  • PipPipPip
  • 878 сообщений

Отправлено 22 Июль 2010 - 20:03

расстояние не критично — я их в "темную зону" пихаю
или на другой уровень (ниже-выше)


Уф... на всякий случай проверил ... все OK

Это сообщение отредактировано Hmt - 22 июля 2010 | 21:50


#13 der Fluger

der Fluger

    Pugilist Illustrator

  • Пользователи
  • PipPipPip
  • 2 223 сообщений

Отправлено 22 Июль 2010 - 21:54

Кстати, я пробовал упомянутые вами методы, но у меня иногда отказываются срабатывать триггера. Это только у меня болячка такая или у всех проскакивает?


#14 Hmt

Hmt

    Триггер-Маньяк

  • Пользователи
  • PipPipPip
  • 878 сообщений

Отправлено 22 Июль 2010 - 22:36

der Fluger, что именно и в какой ситуации не срабатывает ?

(я "насилую" триггера и движок до такой степени,
что постоянно сталкиваюсь с разными багами и глюками.)
Для таких извращений он просто не предназначен ... :)


#15 der Fluger

der Fluger

    Pugilist Illustrator

  • Пользователи
  • PipPipPip
  • 2 223 сообщений

Отправлено 22 Июль 2010 - 22:55

Схема крафтинга предметов, о которой ты говоришь. Просто отказывается забирать или отдавать предметы. Чаще всего не срабатывают условия по количеству тэгнутых предметов в интвентаре.


#16 Grey

Grey

    Gun Runner

  • Пользователи
  • PipPipPip
  • 556 сообщений

Отправлено 23 Июль 2010 - 03:32

QUOTE
по количеству

Если предметы теговать поштучно ("fueltank_1", "fueltank_2"...) и, соответственно, прописывать их забор для каждого, то воспринимаются стабильно?

Это сообщение отредактировано Grey - 23 июля 2010 | 04:34


#17 Hmt

Hmt

    Триггер-Маньяк

  • Пользователи
  • PipPipPip
  • 878 сообщений

Отправлено 23 Июль 2010 - 05:42

есть такой косяк с количеством одноименных предметов.
на одной карте есть конечное число предметов — которое можно передавать
таким способом. (не провел исследование до конца)
когда я создавал стартовый набор предметов для "двеллера" — там эта проблема
промелькнула, причем некоторые предметы — вообще никак не хотели передаваться
от NPC к UNIT.

вечером попробую поиграться и выяснить поподробнее.
в конечном счете у меня проблема разрешилась путем перестановки порядка
передачи предметов (может мне это показалось)
можно посмотреть, как у меня сделано на карте Vault13 (StartItem)

to Grey:
думаю, что при передаче поштучно, с пронумерованными предметами,
проблем не будет.

Это сообщение отредактировано Hmt - 23 июля 2010 | 06:44


#18 Grey

Grey

    Gun Runner

  • Пользователи
  • PipPipPip
  • 556 сообщений

Отправлено 23 Июль 2010 - 12:29

По поводу атаки: в каких командах стоят участники? Просто отношение к "0" команде прописать нельзя, но к другим — можно. Тоже сегодня выскочил такой косяк в экспериментах, поставил игроку команду 1, шкафу-спавнеру (управление выставил от компьютера на всякий случай) 2, дружественность по десятке и "взаимное отношение".
Никаких красных кругов и атак теперь. Нормально воспринимают друг друга.

Заметил также следующее: передача между игроком и неписем (в обе стороны) нормально отрабатывает при постановке её после события-фразы (даже просто всплывающей).
CODE
Если: произошло событие-фраза
То: педерача в нужную сторону и всё остальное

Правда, выскакивают косяки со временем: надо внимательно расставлять паузы между частями действий (может проскакивать фразы, глюк или просто невнимательная расстановка пауз — пока не знаю). Расстановку пауз пока не поборол, в результате забор и выдача вещей происходили одновременно.

upd. так, с перескакиванием фраз совладал. В местах, где нужны промежутки между ними (да, в принципе, и между любыми другими действиями), нужно прописывать действием не просто "wait ... sec", а со значением "blocking". Тогда всё чередуется как надо.

Это сообщение отредактировано Grey - 23 июля 2010 | 17:33


#19 Hmt

Hmt

    Триггер-Маньяк

  • Пользователи
  • PipPipPip
  • 878 сообщений

Отправлено 23 Июль 2010 - 16:10

то что в команду wait надо ставить blocking — это да (у меня везде только так)
тайминги в ручную подбирать приходиться — но оно того стоит
(звук движения лифта и перемещения юнита построено как раз на такой паузе)

по поводу отношения команд — сейчас буду пробовать

Хм.. как только такому предмету взаимодействия присваиваю номер команды
отличный от scenery (0) — игра вылетает, когда такой объект попадает в зону моей
видимости ... будем копать дальше.

Это сообщение отредактировано Hmt - 23 июля 2010 | 19:02


#20 Grey

Grey

    Gun Runner

  • Пользователи
  • PipPipPip
  • 556 сообщений

Отправлено 24 Июль 2010 - 06:29

Он как предмет воспринимается игрой или как уникальный объект (UniqueOther) со спрайтом предмета? Я свои крафт-шкафы просто как уников обозначал.
На всякий случай — прикручивал ещё к такому шкафу возможность торговать, да потом убирать не стал. Шкаф в поле зрения изначально был (тестовая карта).




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru