Jump to content

Recommended Posts

Posted (edited)

Экспериментирую.

Создал тестовую миссию для обкатки рандома событий и вот опять двадцать пять.

Миссию прикрепил к сообщению.

В ней сгородил алгоритм появления(старта) юнитов, они рандомно выдвигаются причём в случайный момент.

Вопервых, сначала не получалось сделать что бы это вообще заработало, вроде по логике должно но ребус оказался тот ещё. Оказалось что триггер "СТАРТ МИССИИ" у меня не срабатывал. В итоге сделал миссию с одинм триггером "СТАРТ МИССИИ", условие 5 сек, действие - текст всем "блаблабла" — и не работает!. А заменил на триггер "ОДИН РАЗ" и все заработало.

Это баг?

У меня старая версия игры, не знаю как в крайней это дело работает.

Второй момент, я не могу сообразить почему юниты выполняют программу в два раза дольше чем ожидал. Они должны вроде уложится за 20 сек, так как в условиях крайнее рандомное число выпадает не более 20. Таймер по идеи тикает 1 раз в сек, но по ощущениям как 1 раз в 2 сек.

Или я что-то не замечаю.:dunno:

 

Надо сказать что рандом сильно меняет миссию, на союзный юнит выскакивает неизвестное количество противника и ещё каждый раз в случайное время, одних уже обнаружил, а другие только начинают свой ход. Я был в напряжении защищая на ка-50 союзного юнита хотя знаю откуда их ожидать, но приходится крутиться на акуле не по детски. А разброс по времени в я им сделал +/- 2 минуты и ползут эти Уралы ЗУ-23 буквально со всех сторон. Такое вот одно из заданий будет :D

Короче вирпилы, рекомендую побольше рандома в ваших миссиях!

TestRND.miz

Edited by B3OP

Без разрыва шаблонов — нет прогресса.

  • ED Team
Posted
..Оказалось что триггер "СТАРТ МИССИИ" у меня не срабатывал. В итоге сделал миссию с одинм триггером "СТАРТ МИССИИ", условие 5 сек, действие - текст всем "блаблабла" — и не работает!. А заменил на триггер "ОДИН РАЗ" и все заработало.

Это баг?

У меня старая версия игры, не знаю как в крайней это дело работает.

Триггер "СТАРТ МИССИИ" срабатывает при старте миссии. Никаких условий ему устанавливать не надо.

Posted
Второй момент, я не могу сообразить почему юниты выполняют программу в два раза дольше чем ожидал. Они должны вроде уложится за 20 сек, так как в условиях крайнее рандомное число выпадает не более 20. Таймер по идеи тикает 1 раз в сек, но по ощущениям как 1 раз в 2 сек.

Или я что-то не замечаю.:dunno:

 

Замени триггер "время после флага (10,1)" на триггер "флаг истинен (10)". Тогда и будут раз в секунду действия.

Posted
Триггер "СТАРТ МИССИИ" срабатывает при старте миссии. Никаких условий ему устанавливать не надо.

Ну вот, оказывается ларчик просто открывался )

 

Замени триггер "время после флага (10,1)" на триггер "флаг истинен (10)". Тогда и будут раз в секунду действия.

Кажется понимаю почему, во "времени после флага" добавляется 1 секунда. Триггеры проверяются 1 раз в сек, если "флаг истинен" то факт налицо и далее действие. А если "время после флага" то сначала выявляется факт того что флаг есть, а потом ещё факт того что прошла 1 секунда.

Я правильно понял?

Но в моем случае не применимо, надо чтобы проверялось время после флага. Потому что если в условии "флаг истинен" то разброс по времени не сделать больше 100 сек из-за того что у флага максимальное значение не может быть больше 100.

А временем после флага можно регулировать разброс по времени и сделать случайное появление хоть в течении часа.

 

Спасибо мужики, очень выручаете.

 

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

Я знаю что имя у картинок и звука обязательно должны быть на латинице, а от про остальное не в курсе.

Без разрыва шаблонов — нет прогресса.

Posted
из-за того что у флага максимальное значение не может быть больше 100.

 

Почему?

 

Можно также использовать переменные и луа-предикаты для их проверки. Это не так сложно, чтобы разобраться в этом.

 

Но лучше хоть частично использовать скрипты. Вот у тебя сейчас шесть бойцов (групп), и для каждого из них по два триггера. А если их будет двадцать?

Posted
Почему?

 

Можно также использовать переменные и луа-предикаты для их проверки. Это не так сложно, чтобы разобраться в этом.

 

Но лучше хоть частично использовать скрипты. Вот у тебя сейчас шесть бойцов (групп), и для каждого из них по два триггера. А если их будет двадцать?

 

Подобных юнитов в миссии будет много больше чем 20.

Но большая часть заморожены, активирую только тех что в текущем задании.

 

Мне показывали талмут про скрипты, там такая жирная книженция. Это очень много времени. Я как-то давненько пытался баловаться Бейсиком на ZX Spectrum и понял что мой мозг не адаптирован к программированию :D

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

Без разрыва шаблонов — нет прогресса.

Posted

Интересно, а возможно ли когда-нибудь будет другая реализация зон ? То есть не через окружность, а например через квадрат, отрезок или другие фигуры? Или это потенциально настолько архи-сложно, что шансы на реализацию стремятся к нулю?

[sIGPIC][/sIGPIC]

Core i5, 16GB RAM, GF-760, SSD

Posted (edited)
Интересно, а возможно ли когда-нибудь будет другая реализация зон ? То есть не через окружность, а например через квадрат, отрезок или другие фигуры? Или это потенциально настолько архи-сложно, что шансы на реализацию стремятся к нулю?

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

Edited by azm
  • Like 1
Posted
Интересно, а возможно ли когда-нибудь будет другая реализация зон ? То есть не через окружность, а например через квадрат, отрезок или другие фигуры? Или это потенциально настолько архи-сложно, что шансы на реализацию стремятся к нулю?

 

Скриптами можно и сферу, и куб, и квадрат, и по сетке координат.

Posted

Понятно, спасибо, надеюсь что когда-нибудь реализуют в более простом виде.

[sIGPIC][/sIGPIC]

Core i5, 16GB RAM, GF-760, SSD

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

 

Отслеживание юнитов в таких произвольных зонах заметно увеличит нагрузку на комп. Круг самое простое решение в плане вычислений, нужно проверить только расстояние юнита от центра триггерной зоны и все.

Без разрыва шаблонов — нет прогресса.

Posted
Отслеживание юнитов в таких произвольных зонах заметно увеличит нагрузку на комп.

Нет. Особенно в сравнении с общим объёмом вычислений в игре.

Posted

Такой вопрос - можно как-то сделать чтобы борта типа "клиент" появлялись на стоянке сразу после старта миссии а не после того когда в него садишься?

Posted (edited)

Возник опять вопрос с последовательностью проверок условий.

 

Допустим:

Граничное условие________|___флаг 10 = 0 ___________________| флаг 10 присвоить значение 1

____________________________Время после флага 9=300

____________________________"Юнит" в зоне "N"

 

Вопрос, будет ли проверка юнита в зоне N если флаг 10 = 1 ?

 

апд.

Не правильно вопрос сформулировал )

Вопшем, интересует вот что, проверяется ли наличие юнита в зоне всегда или проверка начинается если условие того требует.

Ну т.е. если сделать триггер который в условиях должен проверить наличие юнита в этой зоне то проверка будет постоянной, 1 раз в сек.

А если в условиях перед проверкой зоны с юнитом поставить ещё одно условие то проверится ли зона если предыдущее условие не выполнено.

Т.е есть ли разница между (флаг=10, юнит в зоне N ) и (юнит в зоне N, флаг=10) :D

Edited by B3OP

Без разрыва шаблонов — нет прогресса.

Posted

Выложу "менеджер звуковых сообщений"

Может кому пригодится.

 

Чтобы одно звуковое сообщение не прерывало другое можно использовать следующий алгоритм из двух строк:

 

1) повторяющиеся — если (F1 = true) то (F2 + 1)

2) повторяющиеся — если (F2 = F3) то (F2 = 0, F1 = false)

 

А в триггерах с сообщениями нужно указать флаги F1 и F3:

1) 1 раз — если (F1 = false, + условие для срабатывания триггера ) то (F3 = t, F1 = true, + текстовое сообщение + звуковое сообщение)

 

F1, F2, F3 — это флаги.

true — флаг поднят

false — флаг убран

t — время в секундах, указывается длительность звука.

И тогда сообщение будет "стоять в очереди" пока другое не проиграется, t указывайте на 1-2 секунды больше чем длительность звука.

Без разрыва шаблонов — нет прогресса.

Posted
Т.е есть ли разница между (флаг=10, юнит в зоне N ) и (юнит в зоне N, флаг=10) :D

 

Есть.

В логическом "И" при ложности первого условия, второе и последующие условия проверяться не будут. Это уже не имеет смысла.

В логическом "ИЛИ" при истинности первого условия, второе и последующие условия проверяться не будут (или будут проверяться до первого истинного).

 

Поэтому, первыми лучше ставить простые условия для сравнения, далее - более сложные.

Posted (edited)

Можно как-то отследить факт стрельбы конкретного юнита и (или) игрока?

Как отследить что конкретный юнит уничтожил другого юнита?

 

 

апд

Разобрался с одним вопросом, благодаря постам SL_PAK.

Теперь я могу отличать выстрелы юнитов от выстрелов игрока, ууА!

 

А как определить что по этому БТРу лупит вон тот бородатый, а не этот — идей нет.

Ну или хотя бы выяснить что стреляет противник, а не союзник.

Edited by B3OP

Без разрыва шаблонов — нет прогресса.

Posted

Если не сложно,у кого нибуть есть пример миссии-Мой ЛА в триггерной зоне(15 м),к нему подъехал АТЗ,ЛА выехал изх зоны-АТЗ отъехал на свое место,и так постоянно.

 

Мне проще посмотреть на примере,как это сделано т.к уже неделю мозг ломаю.(

GreyCat_SPb

 

Posted
Если не сложно,у кого нибуть есть пример миссии-Мой ЛА в триггерной зоне(15 м),к нему подъехал АТЗ,ЛА выехал изх зоны-АТЗ отъехал на свое место,и так постоянно.

 

Мне проще посмотреть на примере,как это сделано т.к уже неделю мозг ломаю.(

 

Попробуй так:

Создаешь маршрут для АТЗ из двух точек ИПМ и КПМ

В действиях на ППМ пропиши Группа Стоп. На обоих ППМ.

В триггерных действиях для АТЗ пропиши

1. Следвать на КПМ

2. Следовать на ИПМ

 

Граничное условие МойЛА в зоне --> действие АТЗ -- триггерное действие 1

Граничное условие МойЛА вне зоны --> деиствие АТЗ -- триггерное действие 2

 

Как-то так. Пишу с телефона -- редактора перед носом нет. Мог накосячить с некоторыми определениями. Так что -- лови суть.

Posted
Если не сложно,у кого нибуть есть пример миссии-Мой ЛА в триггерной зоне(15 м),к нему подъехал АТЗ,ЛА выехал изх зоны-АТЗ отъехал на свое место,и так постоянно.

 

Мне проще посмотреть на примере,как это сделано т.к уже неделю мозг ломаю.(

Тут выход один делать длинный маршрут в котором юнит будет двигаться туда-сюда несколько раз. И сделать несколько копий таких АТЗ с одинаковыми маршрутами.

Ты же на самом деле не будешь вечно взлетать и садиться, когда-нибудь спать пойдешь ведь )

Поэтому посчитай сколько времени ты в среднем в полете и сколько раз ты взлетаешь-садишься. Если ты 1 час ты в полете между взлетами и посадками то чтобы АТЗ к тебе подъехал 5 раз нужно пять часов реального времени.

Делай цикл из 5 или 10 раз, машинка АТЗ подъехала - АТЗ уехала.

Должно хватить на несколько часов. Можно сделать несколько АТЗ которые будут стоять рядом и одна из них будет подъезжать, когда у неё кончится топливо (цикл:D) то начнет подъезжать вторая машинка и т.д. Но код усложнится.

В конечных точках в РАСШЫРЕННЫЙ (ППМ, ДЕЙСТВИЯ) делай ОСНОВНУЮ ЗАДАЧУ стоять. В точках возле самолета в задаче "стоять" указывай КОНЕЦ УСЛ... по длительности, например 3 минуты.

А в точках где АТЗ ожидает твоего прибытия в задаче "стоять" указывай КОНЕЦ УСЛ... по флагу, например флаг 1 есть.

Далее создавай триггеры (для 1 АТЗ):

1) ( повторяющийся ) --> мойЛА в зоне "15м", скорость моегоЛА меньше 1, флаг 1 ложен --> флаг 1 поднять.

2) (повторяющийся) --> время после "флага 1" 3 сек --> флаг 1 убрать.

 

Попробуй так:

В триггерных действиях для АТЗ пропиши

1. Следвать на КПМ

2. Следовать на ИПМ

 

Не, к сожалению наземных юнитов не отправить на точку маршрута (

Без разрыва шаблонов — нет прогресса.

  • ED Team
Posted
Если не сложно,у кого нибуть есть пример миссии-Мой ЛА в триггерной зоне(15 м),к нему подъехал АТЗ,ЛА выехал изх зоны-АТЗ отъехал на свое место,и так постоянно.

 

Мне проще посмотреть на примере,как это сделано т.к уже неделю мозг ломаю.(

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

 

??? УДИВИТЕЛЬНОЕ ДЕЛО, сделав три ходки бот продолжил подвозить топливо. Возможно баг :)

 

Добавляя ППМ в маршрут бота, старайтесь ставить точки маршрута подальше друг от друга. Боты-водители не любят когда ППМ расположены рядом. Удачи в воспитании ИИ!

[Su-25T] REFUEL LOOP.miz

  • 2 weeks later...
Posted

Как определить что Ка-50 игрока не может вернуться на базу?

Есть два случая, вертолет получил повреждения, не боеспособен но может вернутся на базу. Второй вариант, вертолет не боеспособен и однозначно не может вернутся на базу.

В обоих случаях пилот жив.

Без разрыва шаблонов — нет прогресса.

Posted

Такой вопрос.

Может случится так что из-за обилия триггеров некоторые могут не сработать?

Без разрыва шаблонов — нет прогресса.

  • ED Team
Posted
Такой вопрос.

Может случится так что из-за обилия триггеров некоторые могут не сработать?

Теоретически да, если они выпадут на одну секунду.

Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...