Модератор форума: Slon |
Форум » РЕДАКТОР - ArmA 2 Operation Arrowhead » Вопрос - ответ » Тема для небольших вопросов по ArmA 2 Operation Arrowhead |
Тема для небольших вопросов по ArmA 2 Operation Arrowhead |
› Среда
› 27.05.2015
› 17:33
› Сообщение #
andrucio у меня возник вопрос с командой createUnit. Она требует обязательного вписания в формулу названия группы, а если группа новая, где ее прописать? Может какой примерчик по респауну юнитов и группы юнитов можешь показать?
|
› Среда
› 27.05.2015
› 18:19
› Сообщение #
Какраз если новая то нет проблем, создаёш группу и делаеш в неё ботов))
_ob = createVehicle [ "M1A1_US_DES_EP1", _ps, [], 0, "NONE"]; _ob setDir 180; _g = createGroup West; _un = _g createUnit ["USMC_Soldier_Crew",_ps, [], 0, "NONE"]; _un moveInCommander _ob; _un setRank "CAPTAIN"; _un = _g createUnit ["USMC_Soldier_Crew",_ps, [], 0, "NONE"]; _un moveInDriver _ob; _un = _g createUnit ["USMC_Soldier_Crew",_ps, [], 0, "NONE"]; _un moveInGunner _ob; |
› Четверг
› 28.05.2015
› 23:41
› Сообщение #
Спасибо ребята! Разобрался, все работает.
Добавлено (28.05.2015, 23:38) Добавлено (28.05.2015, 23:41) |
› Пятница
› 29.05.2015
› 00:24
› Сообщение #
Это становится истинной однократно. потому и одно срабатывание.
чтобы срабатывало много раз надо чтобы после срабатывания Условие Менялось для этого вводят переменные. например, где нибуть в ините создаём переменную W_Tm = 300 условие в триггере time > W_Tm в строке поАктивации изменение условия W_Tm = time + 300 т.е. как только время игры перевалит через 300сек. триггер сработает и установит новый порог срабатывания теперь тригер будет ждать до 600сек. а когда сработает условие Опять поменяется. чтобы сделать ограниченное кол-во срабатываний, надо ввести ещё одну переменную в которой будет подсчитываться кол-во срабатываний, и она будет проверяться, не пора ли кончать. тогда. начальная установка переменных уже выглядит так W_Tm = 300; C_Tm = 0 условие в триггере time > W_Tm в строке поАктивации изменение условия и наращивание счётчика if ( C_Tm < 5) then {W_Tm = time + 300; C_Tm = C_Tm + 1} как только C_Tm станет равной 5, тригер прекратит активироваться. |
› Воскресенье
› 31.05.2015
› 22:53
› Сообщение #
Slon спасибо за информацию. Я два дня эксперементировал с твоими формулами и получил различный результат. В каком плане различный? Поясню ситуацию на примере. Я взял 3 танковые группы и 3 пехотные. Всем пехотным группам поставил бесконечный респаун и с ними проблем нет. А вот танковым группам поставил ограничение циклов. 1-й группе ввел переменную W_Tm = 300 и по активации соответственно if ( C_Tm < 5) then {W_Tm = time + 300; C_Tm = C_Tm + 1}. С ней вроде проблем нет. 2-й группе соответственно W_TmB = 350 и if ( C_Tm < 3) then {W_TmB = time + 350; C_Tm = C_Tm + 1}. Вот с ней уже проблемы. Вместо 3-х циклов происходит только 2 почему-то. Но самое неприятное с 3-й группой. Там переменная W_TmC = 250 и if ( C_Tm < 4) then {W_TmB = time + 250; C_Tm = C_Tm + 1} и происходит один цикл, хотя должно быть 4. Что тут такое может быть?
|
› Понедельник
› 01.06.2015
› 00:06
› Сообщение #
ну как чё. недодуманность.
W_Tm, W_TmB, W_TmC вот эти переменные ты додумался в трёх экземплярах сделать, а на счётчики срабатывания забил. если надо подсчитывать срабатывания каждого триггера отдельно то и счётчиков надо делать несколько C_Tm, C_TmB, C_TmC |
› Понедельник
› 01.06.2015
› 11:53
› Сообщение #
Slon сделал я все как ты сказал вот так: C_TmC = 0; C_Tm = 0; C_TmB = 0; Результат улучшился только во 2-й группе. Там танки стали полностью делать 3 цикла. А вот 3-ая группа как делала 1 цикл так и делает. Я проверил несколько раз на наличии ошибок по грамматике так вроде все нормально. Опять какой-то тупик.
Добавлено (01.06.2015, 11:45) Добавлено (01.06.2015, 11:51) Добавлено (01.06.2015, 11:53) |
› Понедельник
› 01.06.2015
› 16:03
› Сообщение #
осталось проверить чтобы триггеры были Повторяемые ))
|
› Понедельник
› 01.06.2015
› 20:43
› Сообщение #
Slon спасибо, все получилось. Ну и раз пошла такая пьянка еще такой вопрос. У меня есть скрипт который прикрепляет маркер к группе юнитов и перемещается с ними по карте. Если лидера группы убивают, марекр переходит к следующему лидеру. Запускается от в инициализации лидера группы следующей командой s= [this,"Mrk_22"] execVM "gomarker.sqf"; где Mrk_22 название маркера. Можно ли сделать так, чтобы группа появляющаяся от респауна получала заранее подготовленный маркер от этого скрипта?
|
› Понедельник
› 01.06.2015
› 20:53
› Сообщение #
|
› Воскресенье
› 14.06.2015
› 16:57
› Сообщение #
Как сделать чтобы waituntil условие тригера? Сделал вот так, как мне советовали ранее, но это не работает. В то время как в триггере бегает 30 человек, срабатывает хинт.
Код trg = createTrigger ["None", getmarkerpos _randomPOS]; trg setTriggerArea [350, 350, 0, false]; trg setTriggerActivation ["east", "NOT PRESENT", false]; waituntil {(!Alive antenna) || (count list trg < 3)}; hint "hint"; |
› Воскресенье
› 14.06.2015
› 17:31
› Сообщение #
https://community.bistudio.com/wiki/setTriggerStatements
trg setTriggerStatements ["count list trg < 3", "", ""] |
› Воскресенье
› 14.06.2015
› 17:55
› Сообщение #
Ну а собственно в waituntil как вставить это?
|
› Воскресенье
› 14.06.2015
› 21:21
› Сообщение #
нашол ошибки
trg = createTrigger ["EmptyDetector", getmarkerpos _randomPOS]; trg setTriggerArea [350, 350, 0, false]; trg setTriggerActivation ["East", "PRESENT", false]; sleep 1; waituntil {count list trg < 3}; hint "hint"; |
› Воскресенье
› 14.06.2015
› 21:51
› Сообщение #
В очередной раз спасибо слон, сейчас всё работает, долго я голову ломал над этим.
|
| |||
Чат сайта |