Доброго времени суток! В очередной раз приходится прибегать к помощи с решением вопроса по редактору. Появилась необходимость создать этакий учебный тренажёр для пилота истребителя. Нужно чтобы в качестве рандомных целей выступали именно здания или палаточные лагеря и вот в этом у меня возникли трудности. Как сделать рандомно спавнящуюся бронетехнику на карте или отряд бойцов, мне более менее понятно, а вот со зданиями и лагерями не могу придумать решения...
Рандомные цели для бомбардировки
Best Answer Schatten , 20 December 2017 - 23:03
Как сделать рандомно спавнящуюся бронетехнику на карте или отряд бойцов, мне более менее понятно, а вот со зданиями и лагерями не могу придумать решения...
Аналогично как с техникой или юнитами: выбрать место, с помощью createVehicle создать, настроить (повернуть, установить наклон...)...
Go to the full post
#1
OFFLINE
Posted 20 December 2017 - 21:59
#2
OFFLINE
Posted 20 December 2017 - 23:03 Best Answer
Как сделать рандомно спавнящуюся бронетехнику на карте или отряд бойцов, мне более менее понятно, а вот со зданиями и лагерями не могу придумать решения...
Аналогично как с техникой или юнитами: выбрать место, с помощью
создать, настроить (повернуть, установить наклон...)...
#3
OFFLINE
Posted 21 December 2017 - 18:30
Как сделать рандомно спавнящуюся бронетехнику на карте или отряд бойцов, мне более менее понятно, а вот со зданиями и лагерями не могу придумать решения...
Аналогично как с техникой или юнитами: выбрать место, с помощью
создать, настроить (повернуть, установить наклон...)...
Спасибо, мне удалось добиться того, чтобы ящик с боеприпасами появлялся в разных маркерах. Поставила на карте ящик с боеприпасами, дала ему имя Target1, затем создала в папке с миссией файл RandomTarget.sqf в котором прописала:
Target1 = createVehicle ["Box_FIA_Ammo_F", getMarkerPos "marker1", ["marker2","marker3"], 0, "NONE"];
Вот только иногда появляется два этих самых ящика и один пропадает начиная дымится, а второй остаётся в изначальной позиции... Подскажите пожалуйста ещё как сделать так, чтобы маркер в котором появляется цель, становился видимым только после того как в нём заспавнился объект? В данный момент три маркера видны сразу, а мне бы хотелось чтобы был виден только тот, который скрипт рандомно выбрал для спавна объекта.
Edited by Nika, 21 December 2017 - 18:38.
#4
OFFLINE
Posted 21 December 2017 - 20:13
Поставила на карте ящик с боеприпасами, дала ему имя Target1, затем создала в папке с миссией файл RandomTarget.sqf в котором прописала:
Target1 = createVehicle ["Box_FIA_Ammo_F", getMarkerPos "marker1", ["marker2","marker3"], 0, "NONE"];Вот только иногда появляется два этих самых ящика и один пропадает начиная дымится, а второй остаётся в изначальной позиции...
Ну так ящик ведь на карте размещён, а приведённым кодом создаётся ещё один, возможно, на месте уже размещённого.
Лучше убрать с карты ящик, и этот код запускать, например, из init.sqf, тогда будет только один ящик.
Подскажите пожалуйста ещё как сделать так, чтобы маркер в котором появляется цель, становился видимым только после того как в нём заспавнился объект? В данный момент три маркера видны сразу, а мне бы хотелось чтобы был виден только тот, который скрипт рандомно выбрал для спавна объекта.
Нужно или скрывать ненужные маркеры, либо все удалить и создавать нужный.
#5
OFFLINE
Posted 21 December 2017 - 22:36
Ну так ящик ведь на карте размещён, а приведённым кодом создаётся ещё один, возможно, на месте уже размещённого.
Лучше убрать с карты ящик, и этот код запускать, например, из init.sqf, тогда будет только один ящик.
Какая разница откуда запускать код? У меня он прописан в файле RandomTarget.sqf, что поменяется если вместо RandomTarget.sqf будет init.sqf?
Удалила ящик с карты, заметила, что после этого он перестал появляться в точке marker1, ну или это мне так с рандомом везёт...
Нужно или скрывать ненужные маркеры, либо все удалить и создавать нужный.
Решила вопрос сделав маркеры в которых появляется цель невидимыми, а в файле RandomTarget.sqf написала следующее:
Target1 = createVehicle ["Box_FIA_Ammo_F", getMarkerPos "marker1", ["marker2","marker3","marker4"], 0, "NONE"];
if (playerSide == WEST) then
_superMarker = createMarkerLocal ["TargetDestroy", position Target1];
"TargetDestroy" setMarkerShapeLocal "ICON";
"TargetDestroy" setMarkerTypeLocal "hd_destroy";
while {alive Target1} do {"TargetDestroy" setMarkerPosLocal position Target1;
};
};
Создаётся новый маркер именно на позиции объекта Target1, но каждый раз когда нажимаю Заново, сверху появляется сообщение:
'if (playerSide == WEST) then |#|' Error
Edited by Nika, 21 December 2017 - 22:37.
#6
OFFLINE
Posted 21 December 2017 - 22:46
Какая разница откуда запускать код? У меня он прописан в файле RandomTarget.sqf, что поменяется если вместо RandomTarget.sqf будет init.sqf?
RandomTarget.sqf нужно самому запускать, а init.sqf запускается при подключении игрока всегда. Поэтому можно на карте ничего не размещать, а код создания ящика закинуть в init.sqf, тогда при подключении будет только один ящик.
Ещё можно запустить RandomTarget.sqf из init.sqf.
Удалила ящик с карты, заметила, что после этого он перестал появляться в точке marker1, ну или это мне так с рандомом везёт...
Похоже, с рандомом, поскольку по коду ящик будет создан на месте marker1 или, если занято, на месте marker2, marker3 или marker4.
Решила вопрос сделав маркеры в которых появляется цель невидимыми, а в файле RandomTarget.sqf написала следующее:
Target1 = createVehicle ["Box_FIA_Ammo_F", getMarkerPos "marker1", ["marker2","marker3","marker4"], 0, "NONE"]; if (playerSide == WEST) then _superMarker = createMarkerLocal ["TargetDestroy", position Target1]; "TargetDestroy" setMarkerShapeLocal "ICON"; "TargetDestroy" setMarkerTypeLocal "hd_destroy"; while {alive Target1} do {"TargetDestroy" setMarkerPosLocal position Target1; }; };Создаётся новый маркер именно на позиции объекта Target1, но каждый раз когда нажимаю Заново, сверху появляется сообщение:'if (playerSide == WEST) then |#|' Error
Фигурная скобка пропущена.
P. S.
Полный текст ошибки приводится в RPT-файле.
#7
OFFLINE
Posted 25 December 2017 - 05:41
RandomTarget.sqf нужно самому запускать, а init.sqf запускается при подключении игрока всегда. Поэтому можно на карте ничего не размещать, а код создания ящика закинуть в init.sqf, тогда при подключении будет только один ящик.
Ещё можно запустить RandomTarget.sqf из init.sqf.
Уф, даже так... Даже не знала, спасибо за пояснение, теперь конечно создание файла init.sqf не кажется мне бесполезным.
Фигурная скобка пропущена.
P. S.
Полный текст ошибки приводится в RPT-файле.
Да, вы правы, я пропустила фигурную скобку, теперь всё работает корректно. А про полный текст ошибки который приводится в RPT-файле, вы мне говорили и ранее, а я вот забыла, в следующий раз постараюсь оформлять такие ошибки как положено ![]()
Edited by Nika, 25 December 2017 - 05:42.
#8
OFFLINE
Posted 25 December 2017 - 08:54
можно узнать обо всех служебных файлах, а -- о порядке инициализации.











