OLD
Перехлёст условий зависит от самих условий и не имеет никакого отношения к порядку расположения скриптов!
Что мне совершенно не понятно: зачем на одно и то же условие писать несколько скриптов с разными реакциями!?? И потом ещё решать проблему стабильности? Если это желание получить некоторую случайность - то очень странная реализация
Перевозка орудий грузовиками в нужную зону
Zarathustra,
Подскажите пожалуйста, как сделать чтоб:
группа1 орудия, группа 2 грузовики, чтоб по определенному условию грузовики отвезли орудия в нужную зону
volodia
Группа, назначенная самому орудию, для поведения не имеет значения! При этом она может быть той же, что и у пехов-расчета. Именно их поведение и определяет поведение орудия. Итак:
Пехам (орудию) ставим поведение - пушки занять, не покидать, не перетаскивать волоком. Зону ставим ту, где они находятся.
Грузовикам ставим поведение - поддержка (в обоих полях! ставим группу пехов-артиллеристов). Зоны: первая - где машина будет тусоваться, когда в ней нет потребности, вторая - где находится орудие. Можно указать различные группы, тогда она будет возить (при необходимости) два орудия (этих групп), но при этом "болтаться" в ожидании будет в первой зоне и её стоянку задать мы не сможем. Кроме того, если не указать "поддерживать только указанные группы", то ломанётся перевозить всё, что находится недалеко от неё.
Для перевозки орудия меняем зону РАСЧЁТУ этого орудия! Важно!!! не забыть поменять зоны и у грузовика после перевозки (лучше всего скриптом "юнитов группы (орудия) в зоне...), иначе больше он её таскать не станет
Zarathustra,
т. е. грузовики стоят в зоне 0 с заданными зонами(имеется ввиду куда пушки нужнно отвезти) и группой которую нужно завезти, но без установленного поведения, пушки - в зоне 0 стоят возле грузовиков, у них указана зона куда их отвезут и где им охранять ее, группа указана грузовиковская, но тоже без установленного поведения. Потом скриптом после какого-то условия устанавливаю грузовикам - поддержка, пушкам-гаубицы занять. Когда сработает скрипт грузовики повезут в ту зону пушки??
Да. Только почему не назначить поведение сразу? А потом просто менять зону.
И ещё: зона 0 - это ВСЯ КАРТА, не отмеченная другими зонами! Её нельзя использовать в поведении.
Zarathustra,
Почему же зону 0 нельзя, я всегда ее использую, когда например расставляю минометы, пулеметы, безоткатки, чтоб каждый раз для каждого места где ставлю подобные огневые точки не создавать зону и группу, ведь подобные юниты в отличие от пушек которые идут в "комплекте" с расчетом можна не задавать поведение все равно стрелять будет и расчет не разбежиться, то у статичных и у баллистики если не указать поведение побегут, а так указал поведение, а группа одна для всей карты, зона 0 и все стркеляют и парится не надо с кол-вом зон и групп для подобного рода юнитов. Пехота которая статичная т. е. обороняет и погибает по всей карте тоже - зона 0
После этого ими уже невозможно управлять - ситуация-то по всей карте не одинаковая. А ведь именно отсутствие адекватной реакции у противника делает миссию скучной в первую очередь.
__________________
Работа инженерных машин
Что то не ладное нынче у меня с ремонтниками врага. Вроде всё пишу как и раньше, а они ни гу-гу...
Ану прикиньте, где тут что не так, а то я с ними давно не работал и гляди, может где не доглядаю...
Исходно грG5 без задачь стоят в зоне 51. Там же в зоне 51 ПТ, ПВО и гаубицы. Как только кто то их тронет, сразу срабатывает "атакованы 0.00.01сек назад" и инженерам ставится условие:
гр G5-Инженерные машины_хаотично по зоне, ремонтировать только в этой зоне.
...зона квадрат приблизительно со стороной 100-130 клеток, инженеров 10шт...
Ставил им и движение в зону 51 по обоим строкам, и взаимодействие с группами G1 и G2 (это ПВО, ПТ и гауб). Обстреливал эти пушки, нанося им повреждения, а инженера ни с места, не хотят ремонтировать...
Шо ж тут не так, А? Кто прокоментируе?
Срабатывает ли? Воткни тестовое сообщение. И не понятно: "больше, чем... (или) меньше, чем.... секунд назад".
Лучше не использовать функцию "время с начала миссии", она не всегда корректно работает.
Надёжнее со старта миссии заведи "будильник", на те же 5 минут.
И ты забыл поставить скобки - .....и(.....или....).
Странно. Попробуй:
Снять хаотичное перемещение снабжалок по зоне,
Для чистоты эксперимента прописать только гр. G1 (или только G2).
Со скобками всё просто - как и в математике - сначала выполняется (проверяется в нашем случае) то, что в скобках. Результатом отсутствия у тебя скобок будет срабатывание скрипта с самого начала миссии (а не через 5 мин) при атаке группы G1.
При захвате такой скрипт можно использовать - т. к. юнит теперь числится за игроком.
При попытки форсирования реки самолеты взлетают с аэродрома и бомбят
Zarathustra,
Как сделать активной вертолетную площадку(аэродром)? В смысле чтоб вертолеты(самолеты) взлетали каждый раз когда игрок пытается допустим форсировать реку (при помощи понтонов или плавающей техникой)???
Отмечаем речку зоной (скажем, 10). Аэродром - зоной 20. Самолёты (вертолёты) на аэродроме имеют группу А0
1. "Юнитов игрока... в зоне 10 больше, чем 0 и число в ячейке 1 точно 0" =>
"Занести в ячейку 1 число 1"
2."Число в ячейке 1 точно 1 и юнитов гр. А0 в зоне 20 больше, чем 0" =>
"Установить поведение гр. А0 - самолёты - лететь в зону"
"Установить зона1 гр. А0 в 10"
"Установить зона2 гр. А0 в 10"
"Завести будильник 1 на 1 мин" (даём время для взлёта-вдруг кто мешает сразу)
3."Звенит будильник 1 и число в ячейке 1 точно 1" =>
"Завести будильник 1 на 1 мин"
"Занести в ячейку 1 число 2"
4.."Звенит будильник 1 и число в ячейке 1 точно 2" =>
"Установить поведение гр. А0 - нет"
"Установить зона1 гр. А0 в 20"
"Установить зона2 гр. А0 в 20"
"Занести в ячейку 1 число 3"
5."Юнитов гр. А0 в зоне 0(ИМЕННО 0!!!) точно 0 и число в ячейке 1 точно 3" =>
"Занести в ячейку 1 число 0"
Можно и проще, но так надёжнее.
Zarathustra,
по поводу ячеек. Я уже не однократно обращался к Вам за помощью по поводу ячеек: а именно авиация летит в зону при появлениив ней юнитов игрока. Вы писали что при вылете самоля чтобы не было паровоза необходимо сразу изменить условие - т. е. увеличить число в ячейке, в теории все понятно, но что выходит на практике. При заходе юнита в зону если он ее транзитом проходит то вылетает самоль, если их несколько заходит и они там останавливаются они туда летят нескончаемой вереницей, пока в зоне юниты. Как сделать так чтоб вылетало только заданное кол-во самолей не зависимо прошли юниты зону или стоят там один или много. чтоб реакция шла на действие в целом зашел один или сто юнитов полетел один самолет, потом после его возвращения или уничтожения если есть в зоне юниты опять вылет. Кстати в Вашей миссии Банзай маршрут эсминца бомбил бомбер так вылетал один без паровоза как это вы сделали? Через период будильников или ячейки?
volodia, что-то Вы делаете не так...
Необходимо зафиксировать вылет самолётов для предотвращения их повторного вылета. После того, как они "отработают" (т. е. улетят) или после ухода/уничтожения игрока в зоне, условия необходимо ветнуть к исходным.
И так, условия у нас будут состоять из:
1. Наличия/отсутствия юнитов игрока в зоне
2. Наличия/отсутствия самолётов в воздухе (т. е. в зоне 0)
3. Значения некоторой ячейки (для фиксации "шагов" и более гибких настроек в случае необходимости)
Получаем:
При старте игры заносим в ячейку 1 число 0! Это необходимо сделать обязательно, иначе условие "число в ячейке 1 точно 0" будет игнорировано!
1 скрипт (условия)
"юнитов игрока <игрок> в зоне Х больше, чем 0" и
"юниов группы G3 в зоне 0 точно 0" и
"число в ячейке 1 точно 0" =>
1 скрипт (реакция)
"добавить самолётов игроку <противник> ..."
"добавить вылетов для самолётов... игрока <противник> ..."
"отправить... самолётов игрока <противник> в зону Х и посадить на аэродром 0"
"значение в ячейке 1 увеличить на 1"
2 скрипт (условия)
"юнитов игрока <игрок> в зоне Х точно 0" и
"число в ячейке 1 больше, чем 0" =>
2 скрипт (реакция)
"занести в ячейку 1 число 0"
Таким образом, получаем:
1 скрипт: Как только игрок войдёт в зону Х (в нашем случае - не важно, сколькими юнитами) и в воздухе нет самолётов (вообще!! т. к. группу G3 имеют все самолёты, вылетающие из-за карты, независимо от того, кому они принадлежат) будет направлено сколько-то самолётов противника в эту зону. Повторного вылета НЕ БУДЕТ до тех пор, пока зона не очистится!
Изменим 1 скрипт так:
"юнитов игрока <игрок> в зоне Х больше, чем 0" и
"число в ячейке 1 меньше, чем 6" =>
................
"значение в ячейке 1 уменьшить на 1"
2 скрипт так:
"юнитов игрока <игрок> в зоне Х точно 0" и
"число в ячейке 1 точно 0" =>
"занести в ячейку 1 число 5"
В результате при входе в зону игрока будет отправлено 5 самолётов. И следующая пятёрка НЕ ВЫЛЕНИТ др тех пор, пока зона не очистится и игрок снова не войдёт в неё.
Можно сделать так:
Изменить первый скрипт:
"юнитов игрока <игрок> в зоне Х больше, чем 0" и
"число в ячейке 1 точно 0" =>
"завести будильник 1 на 00:00:05"
"установить период цикла будильника 1 в 00:01:00
"значение в ячейке 1 увеличить на 1"
Добавить в реацию второго скрипта
"выключить будильник 1"
Добавить 3 скрипт:
"звенит будильник 1"
"добавить самолётов игроку <противник> ..."
"добавить вылетов для самолётов... игрока <противник> ..."
"отправить... самолётов игрока <противник> в зону Х и посадить на аэродром 0"
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


