Модератор форума: Slon |
Форум » РЕДАКТОР - ArmA 2 » Скрипты » Вопросы по скриптописанию (Тонкости написания скриптов) |
Вопросы по скриптописанию |
› Воскресенье
› 01.08.2010
› 13:10
› Сообщение #
Остаётся направлять полёт до момента сброса.
вот что у меня получилось Прикрепления:
Bomba.utes.rar
(1.2 Kb)
Сообщение отредактировал Slon - Воскресенье, 01.08.2010, 13:10
|
› Воскресенье
› 01.08.2010
› 18:51
› Сообщение #
Quote (Slon) Остаётся направлять полёт до момента сброса. вот что у меня получилось Спасибо за идею. И тут же у меня возникла еще одна проблема. Я пытаюсь задать стартовые параметры самолета (место появления и тип самолета), но блок такого вида: не выдает никаких результатов, хотя команда hint срабатывает. То есть я получаю сообщение EAST, но переменная _spawnpos не получает значения getMarkerPos "respawn_east", а переменная _vehicletype не получает значения "Su39" и обе переменные остаются пустыми. Почему? Ведь hint же срабатывает. |
› Воскресенье
› 01.08.2010
› 18:56
› Сообщение #
дело в видимости переменных
если переменные объявлены внутри скобок {тут} то за ними пропадают Private ["_spawnpos", "_vehicletype"]; if (side player ==west) then { _spawnpos = getMarkerPos "respawn_east"; _vehicletype="Su39"; hint "EAST"; }; |
› Воскресенье
› 01.08.2010
› 19:42
› Сообщение #
Quote (Slon) дело в видимости переменных если переменные объявлены внутри скобок {тут} то за ними пропадают Private ["_spawnpos", "_vehicletype"]; Спасибо еще раз Кстати.. раз уж такое дело Никак не могу вычислить дистанцию с которой самолет будет сбрасывать бомбы Скорость падения постоянная, высота высота сброса вроде тоже, но всеравно не идет. Уже все перепробовал И строгое значение задавал и плавающее, но стоит только изменить самолету стартовую позицию - все, бомбы ложатся либо дальше либо ближе. Как вообще считается дистанция для воздушных объектов? Напрямую от модели или от позиции ее проекции на поверхности? Сообщение отредактировал DAP5000 - Воскресенье, 01.08.2010, 19:47
|
› Воскресенье
› 01.08.2010
› 20:24
› Сообщение #
простой способ без учёта сопративления воздуха и планирования снаряда
_h = ((getPosASL _vh) select 2) - (getPosASL s2) select 2; - высота падения также, снаряд надо повернуть на угол самоля, и дать такоеже ускарение _bm = createVehicle ["ARTY_Sh_122_HE", getPosASL _vh, [], 0, "NONE"]; |
› Воскресенье
› 01.08.2010
› 20:51
› Сообщение #
Quote (Slon) простой способ без учёта сопративления воздуха и планирования снаряда В том то и проблема, что я использую авиабомбу B0_GBU12_LGB. Со снарядом просто, я согласен, но это выглядит.. нереалистично Взрыв на пустом месте Да и взрыв артиллерийского снаряда поэтому такой способ определения дистанции сброса мне не подходит, кроме того в нем есть небольшой недостаток. Разница в высоте цели и самолета берется на момент старта, но к моменту сброса относительная высота самолета может измениться, и это сказывается на точности попадания. |
› Воскресенье
› 01.08.2010
› 20:59
› Сообщение #
Quote (DAP5000) Разница в высоте цели и самолета берется на момент старта в примере да, но можно и изменить. и можно сделать таблицу поправок для разных снарядов. при расчёте по этим формулам.снаряд падает всегда в одну точку независимо от направления. если поэксперементировать с высотой, можно вычислить велечину ускарения принятого в игре. |
› Четверг
› 05.08.2010
› 19:29
› Сообщение #
biahh,
попробую обяснить ещё раз, начальная математика a = 5; чему равно с ? точно также используются вместо слов true false переменнвые, в условии тригера пишеш слово (переменная) а в другом даёш ему значение и тригер срабатывает Act_tr_1 = true DAP5000, |
› Четверг
› 12.08.2010
› 17:46
› Сообщение #
Как работать с командой setVehicleInit? Смотрел на BIS Wiki.. но так толком и не разобрался.. там пишут что работает с команды processInitCommands. Но как именно? Смотрел в разных модулях.. вроде просто сперва setVehicleInit, потом processInitCommands. Пробовал так же - не выходит. В чем может быть продлема?
|
› Четверг
› 12.08.2010
› 17:56
› Сообщение #
setVehicleInit - это как инит в объектах, только отложеный,
если инит запускается сам то setVehicleInit надо запустить командой processInitCommands |
› Четверг
› 12.08.2010
› 18:02
› Сообщение #
Quote (Slon) если инит запускается сам то setVehicleInit надо запустить командой processInitCommands Я это понимаю Но как именно? Синтаксис, порядок Может его надо предварительно до загрузки мисии? Или запускать через Init.sqf? Сообщение отредактировал DAP5000 - Четверг, 12.08.2010, 18:03
|
› Четверг
› 12.08.2010
› 18:15
› Сообщение #
порядок один - записать >> активировать
синтаксис sqf например ставлю танк - tn tn setVehicleInit "this setDamage 1"; нармально взрывается |
› Четверг
› 12.08.2010
› 18:22
› Сообщение #
Quote (Slon) tn setVehicleInit "this setDamage 1"; sleep 2; processInitCommands; нармально взрывается В МР работает? После респа? Потому как меня именно это интересует. Нужно чтобы юнит получал в инит команду и когда он отреспится эта команда срабатывала. Сообщение отредактировал DAP5000 - Четверг, 12.08.2010, 18:24
|
› Четверг
› 12.08.2010
› 20:01
› Сообщение #
Quote (DAP5000) После респа? небудет, потому что на точке респа другой объект а тот которого убили лежит на поле боя с пулей в груди |
› Четверг
› 12.08.2010
› 21:42
› Сообщение #
можно так
играющему боту обязательно дать имя, текст в инит Code this addEventHandler ["killed", {_as = _this execVM "file.sqf"}]; текст для File.sqf
Code _nm = vehicleVarName (_this select 0); _un = call compile format ["WaitUntil {alive %1}; %1", _nm]; _un addEventHandler ["killed", {_as = _this execVM "file.sqf"}]; тут можно обратится к обекту как к _un Сообщение отредактировал Slon - Четверг, 12.08.2010, 21:43
|
| |||
Чат сайта |