Jump to content

Разработка миссии на основе Simulator Scripting Engine


Recommended Posts

Posted
Это не true-ёзно, ну раз так, пусть так.

 

 

 

6 км. вроде.

----

Вообщем пример:

1. Создаем скрипт unload_cargo_event_handlers.lua

2. В скрипте пишем обработчик на событие высадки.

3. Подключаем обработчик к транспортным юнитам

 

см. приложенный файл скрипт.

 

4. Скрипт нужно подключить к миссии триггером ОДИН РАЗ по действию ВЫПОЛНИТЬ ФАЙЛ СКРИПТ с условием - время более(4).

----

Не тестировал (т.к. я сейчас не за домашним компом).

 

----

 

P.S.: скрипт ессесвено рассчитан на то, что все остальное для перевозки юнитов транспортом в миссии уже есть.

 

Попытался использовать это скрипт , фигня получается.

1)в оффе после первой высадки миниметы довольно хорошо обрабатывают цели. Если группу забрать и перевезти то с 90% вероятностью огонь она уже не откроет . ЦУ идет но таймер(сау) сбрасывается недостигнув 180 сек.

2)в онлайне, группа получает ЦУ но для открытия огня необходимо подтвердить команду с ф10. Группа ведет огонь только по 1ой цели, остальные цели не атакует хотя ЦУ есть.

 

БантДит такой вопрос как подключить ЦУ через определенные юниты?

 

Второй вариант можно ли повесить ЦУ на транспортные вертолеты которые эти минометы высаживают?

 

Третий вариант. Я высаживаю группу из 25 юнитов , потом обработчик разбивает большую группу на 5 маленьких . 4 мс отделения и минометы. Есть возможность повесить ЦУ на пехотинцев?

Будьте осторожнее в своих желаниях.

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

  • Replies 544
  • Created
  • Last Reply

Top Posters In This Topic

Posted
ЦУ идет но таймер(сау) сбрасывается недостигнув 180 сек.

 

Достигает, он не может не достигнуть 180 сек.

 

Если группу забрать и перевезти то с 90% вероятностью огонь она уже не откроет

 

Потому, что при каждой высадке заново назначается задача, при этом старую никто не отменял - результат: scheduled functions перекрывают друг друга.

----

в онлайне, группа получает ЦУ но для открытия огня необходимо подтвердить команду с ф10.

 

1. Этого принципиально не может быть. Задаче 'Fire At Point' фиолетово в онлайне она выполняется или нет.

 

2. Разрешать управление группой, которой управляет скрипт - это уже не правильное решение.

--------

как подключить ЦУ через определенные юниты

 

Используя функцию:

function array DetectedTargets Controller.getDetectedTargets(Controller self,
                                                             [Controller.Detection detection1,
                                                              Controller.Detection detection2,
                                                                ...
                                                              Controller.Detection detectionN] or nil)

 

Controller.Detection может иметь значения:

Conroller.Detection = {

VISUAL,

OPTIC,

RADAR,

IRST,

RWR,

DLINK

}

 

DetectedTarget имеет следующую структуру:

DetectedTarget = {

object = Object, --the target

visible = boolean, --the target is visible

type = boolean, --the target type is known

distance = Distance --distance to the target

}

 

Примечание:

1. distance содержит не текущую дистанцию до цели, а дистанцию, которая была до цели в момент контакта (в тот момент, когда visible принимает значение true).

 

2. Для ЛА-юнитов контроллер лучше получать через юнит (Controller function Unit.getController(Unit self)), для наземных юнитов хоть как: хоть через группу, хоть через юнит (Controller function Unit.getController(Unit self) или Controller function Group.getController(Unit self)).

 

У наземных юнитов нет индивидуальных контроллеров - у них коллективный разум :)

 

можно ли повесить ЦУ на транспортные вертолеты которые эти минометы высаживают

 

Нет. Т.к. вертолет управляется игроком. (Возможность получения ЦУ от игрока скриптом есть в хотелках, но пока не известно будет ли эта хотелка реализована).

 

Есть возможность повесить ЦУ на пехотинцев?

 

MSF группы имеют метод addTask принимающий scheduled функцию, которая будет выполнятся с определенной периодичностью или однократно. Можно написать функцию целеуказания (используя SSE - то что описано выше) и использовать её как задачу.

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted

БантДат гянь трек. Баг с посадкой. Каргоплейс-триг зоны . ППБ - просто для ориентира.

http://forums.eagle.ru/showpost.php?p=1999114&postcount=204

 

Еще раз проверил для того, что бы минометы открыли огонь в онлайне нужно подтвердить цель с ф10 . Вечерком запишу трек.

Будьте осторожнее в своих желаниях.

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

  • 3 weeks later...
Posted (edited)

BAntDit

подскажи как использовать Group.destroy() в окошке для скриптов? Мне нужно чтобы машинка при достижении определенной точки маршрута удалялась. Я вписал эту функцию в окошко "выполнить скрипт", но получаю ошибку #1 parameter missed

 

Или если так нельзя то как в том же окошке сказать машинке ехать на другую точку маршрута, например в точку 1.

SRFile2014_3_8_17_11_31_683.thumb.jpg.16523b4ff40e2501e7eb0a4dc445ac2d.jpg

Edited by Sinsir

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Posted
BAntDit

подскажи как использовать Group.destroy() в окошке для скриптов? Мне нужно чтобы машинка при достижении определенной точки маршрута удалялась. Я вписал эту функцию в окошко "выполнить скрипт", но получаю ошибку #1 parameter missed

 

Или если так нельзя то как в том же окошке сказать машинке ехать на другую точку маршрута, например в точку 1.

 

Надо подставлять сам объект как параметр в ф-цию.

 

_testg:destroy()

 

или

 

_testg.destroy(_testg)

Posted
Но у меня почему-то в обоих случаях выходит краш программы. Может что-то пишу не так...

 

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

 

Миссию для примера приложил к посту:

1. Группа dynamic_group создает на 1-ой секунде миссии, удаляется на 10-ой.

 

2. Группа static_group создана в редакторе миссий, удаляется на 20-ой секунде.

 

-----

P.S.: можешь выложить сюда свой пример миссии, которая вызывает crash? - только такой пример, чтобы crash легко воспроизводился и не нужно было ждать его два часа после старта миссии.

destroy_test_2.miz

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted (edited)

Миссию приложил. Скрипт прописан в КПМ машинки.

Я не подключал библиотеку MSF. Стараюсь обойтись без подключения доп.библиотек, ведь мне для миссии нужно всего-то 5-6 функций. Если так нельзя, то может можно использовать ф-цию для управления машинкой на разные точки маршрута?

test.miz

Edited by Sinsir

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Posted
Миссию приложил. Скрипт прописан в КПМ машинки.

Я не подключал библиотеку MSF. Стараюсь обойтись без подключения доп.библиотек, ведь мне для миссии нужно всего-то 5-6 функций. Если так нельзя, то может можно использовать ф-цию для управления машинкой на разные точки маршрута?

 

Ты пытаешься удалить некоторую сущность (группу) из команды, которая собсно в этой сущности и хранится - это не хорошо :)

 

Удаляй группу с задержкой и все будет нормально - исправленную версию твоей миссии приложил к посту.

-----

 

Я не подключал библиотеку MSF

 

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

 

----

P.S.: баг я все равно добавлю в баг репорты, пожалуй, если он воспроизведется на внутренней версии, так как не верные решения в пользовательских скриптах в любом случае не должны приводить к крешам.

 

P.S.S: забавно, но не давно столкнулся с такой же ошибкой в другой игрушке,

когда одна сущность зафигачивала тут в которой сама хранится :D

test_fixed.miz

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted

Спасибо BAntDit, помогло :)

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

Если не сложно

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Posted
Спасибо BAntDit, помогло :)

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

Если не сложно

 

Если не использовать MSF, то как-то так:

 

local _test_group = Group.getByName('test');
local _start_position = _test_group:getPoint();
local _destination_zone = trigger.misc.getZone('destination'); -- новая точка маршрута 
-- в центре триггерной зоны destination

local _task = {
		id = 'Mission', 
		params = { route = { 
			points = { 
				[1] = {
					action = AI.Task.VehicleFormation.OFF_ROAD, 
					x = (_start_position.x + 0.2), 
					y = (_start_position.z + 0.2), 
					speed = 10,
					ETA = (timer.getTime() + 4),
					ETA_locked = true,
					speed_locked = false,
					name = 'start_point'   },
				[2] = {
					action = AI.Task.VehicleFormation.OFF_ROAD,
					x = _destination_zone.point.x, 
					y = _destination_zone.point.z, 
					speed = 15,
					ETA = (timer.getTime() + 20),
					ETA_locked = false,
					speed_locked = true,
					name = 'destination point'
				}
			} 
		} } 
	};
	
	local _controller = _test_group:getController();
	
	local _task_status, _task_error = pcall(function() _controller:setTask(_task); return 0; end);
	
	if not _task_status then 
		env.error('task error: ' .. tostring(_task_error), false);
	end

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted

Раз пошла такая пьянка вопрос:

Есть триггерная зона. Делаем триггер "Один раз"-"Часть коалиции в зоне"-"Выполнить скрипт"

И вот теперь самое интересное, как в выполняемом скрипте получит имя группы попавшую в триггерную зону?!!!!

Posted
И вот теперь самое интересное, как в выполняемом скрипте получит имя группы попавшую в триггерную зону?!!!!

 

как вариант:

 

local _tz = trigger.misc.getZone('zone_name');
local _volume = { id = world.VolumeType.SPHERE, params = { 
point = _tz.point, radius = _tz.radius }; }

local _found_units = world.searchObjects(Object.Category.UNIT, _volume, function(_object, _data) return false;  end, {});

if #found_units > 0 then 
local _group = _found_units[1]:getGroup();

trigger.action.outText('В зоне группа: ' .. _group:getName(), 15);  

end

 

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

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted

BAntDit

спасибо, что отвечаешь на вопросы.

Однако с маршрутом непонятно вышло. Мне нужно реализовать такую ситуацию. Например, едет машинка по маршруту составленному из точек 1, 2 и 3. И по прибытию в точку 3 нужно сказать машинке ехать обратно в точку 2. То-есть не надо создавать никаких динамических точек или новых маршрутов в условных триггерных областях. Нужно чтобы машинка просто вернулась обратно по тому же маршруту. Это можно реализовать скриптом?

 

Я понимаю, что уже закалупал своими вопросами :) но эта фишка нужна почти во всех миссиях, а самому разобраться не получилось.

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Posted (edited)

Мне нужно реализовать такую ситуацию. Например, едет машинка по маршруту составленному из точек 1, 2 и 3. И по прибытию в точку 3 нужно сказать машинке ехать обратно в точку 2. То-есть не надо создавать никаких динамических точек или новых маршрутов в условных триггерных областях. Нужно чтобы машинка просто вернулась обратно по тому же маршруту. Это можно реализовать скриптом?

 

Для наземной техники без динамически созданных Waypoint-ов (WP) этого не сделать никак, в идеале лучше все движение группы задавать динамическими WP.

 

(Триггерные зоны создавать для этого не обязательно, в примере я просто привязывался к координатам триггерной зоны).

Edited by BAntDit

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted
Для наземной техники без динамически созданных Waypoint-ов (WP) этого не сделать никак, в идеале лучше все движение группы задавать динамическими WP.

 

(Триггерные зоны создавать для этого не обязательно, в примере я просто привязывался к координатам триггерной зоны).

 

А нельзя получить координаты уже заданных WP и просто указывать их?

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Posted
А нельзя получить координаты уже заданных WP и просто указывать их?

 

Можно.

Все объекты созданные в редакторе (в т.ч. точки маршрутов) доступны в процессе миссии через таблицу env.mission.

 

В частности точки маршрута группы Test в миссии, которая приводилась выше можно получить так:

 

env.mission.coalition.red.country[2].vehicle.group[3].route.points

 

1. То что привел выше это только пример. По уму должна быть функция, которая

по заданной коалиции, ИД страны и имени группы возвращает массив точек маршрута.

 

2. Проще, наверно сделать так:

1) создать группу в редакторе и нужные точки маршрута

2) Открыть файлик миссии в Notepad++ и списать из него координаты точек.

3) снова открыть миссию в редакторе удалить статические точки маршрута и задать скриптовые по известным координатам. Между скриптовыми можно уже переключатся как угодно.

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted

Hi BantDit,

Any chance to get a documentation in english ?

Thanks

 

Can't say exactly - even in russian language there is a lot of work to complete documentation.

 

I think, on my nearest vacation (May 2014) i'll try to find somebody who can speak well enough in english and russian and who can help me to translate documentation and add subtitles for video guides.

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted
Can't say exactly - even in russian language there is a lot of work to complete documentation.

 

I think, on my nearest vacation (May 2014) i'll try to find somebody who can speak well enough in english and russian and who can help me to translate documentation and add subtitles for video guides.

 

Ok, cool, thanks. Waiting...

Posted
Бантдит, по поводу твоего с Хитрым скрипта с катапультировавшимися пилотами.

Скрипт работает отлично.

После катапультирования создается юнит с названием eject_pilot_0

Как мне теперь сделать чтобы триггер Х увеличился на Y если eject_pilot_0 окажется внутри триггерной зоны Т, которую я создам в редакторе?

 

Я хочу поставить триггерную зону куда должны доставляться катапультанты. Мне нужно чтобы когда ми8 или хью привез подбитого пилота в эту зону у меня изменился какой либо флаг.

 

Это делается через обработчик события высадки onUnloadCargoEventHandler. Пример позже выложу.

----

 

Бантдит, все еще актуально

Posted

Вопрос а десант с кораблей можно организовать?

Причем желательно с помощью радио меню ?

Вообще тема интересная и с десантом вертолетов корабельного базирования, есть какие нароботки ?

 

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

Будьте осторожнее в своих желаниях.

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

Posted
Бантдит, все еще актуально

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

 

 

Вопрос а десант с кораблей можно организовать?

можно, когда буду более свободен - попробую сделать.

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Posted

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

Не лазить руками туда, куда не лезет голова © USSR_Rik

Posted

• Added internal cargo trigger./// Это то , что я думаю? Интересно, оно в скриптах как нибудь отразится, типа теперь с массой груза будет возможность играться или как...

[sIGPIC][/sIGPIC]

АКА =TMS= Count _ Полеты на = T M S = dedicate server На точке работает РП (РП+РПП)

Набор вирпилов на вертикальную, штурмовую и истребительную авиацию со времен ВОВ и по настоящее время

Комсостав и инструкторы - летавшие в горячих точках (и не только) и действующие летчики.

  • Recently Browsing   0 members

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