Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Вопрос - ответ Сцепка объекта с объектом (в зоне где имеется объект) |
Сцепка объекта с объектом (в зоне где имеется объект) |
› Среда
› 02.09.2015
› 23:23
› Сообщение #
Скрипт по сравнению с геймплеем выполняется почти мгновенно, и сдвиг времени выполняется исключительно по вышеуказанной команде.
Паузу до сдвига можно сделать пустым циклом while либо ожиданием нужного значения, связанного с командой Time Что-то вроде _tm = Time + 3600; waituntil {_tm > Time} skiptime xxx Как сделано ТАМ, я не знаю. Спасибы в репу кидают Сообщение отредактировал andrucio - Среда, 02.09.2015, 23:24
|
› Четверг
› 03.09.2015
› 13:05
› Сообщение #
Раз в неделю могу, кидал уже
Это я понимаю, делал как-то так пару лет назад, но это лишь локально, а не на сервере, т.е. один игрок зашел играет долго у него ночь, а второй только зашел у него день, а вот fsm скрипт работает, сихронизирует, но я понять не могу как изменить время скипа, точнее именно эту минуту, 1=5, я бы хотел сделать скип на 4 часа допустим раз в час с синронизацией, но я кое как могу понять sqf скрипты, в fsm скрипты это вообще потолок для меня Добавлено (03.09.2015, 00:33) Добавлено (03.09.2015, 00:45) Добавлено (03.09.2015, 12:55) Вместо: Добавил ваше, закомментил свой, вообще файл действий портит, почти нет действий, пишит след. ероры в ртп: Вот вы дали часть кода, вот только там есть проверка s_player_open_helipad_h < 0, проверка нет ли пункта, а кода что этот пунк выводится нет, помогите пожалуйста, сейчас вообще действий нет, почти всех указанных в файле Добавлено (03.09.2015, 12:58) Добавлено (03.09.2015, 13:00) Добавлено (03.09.2015, 13:05) |
› Четверг
› 03.09.2015
› 13:08
› Сообщение #
У тебя доступа к его запуску нет? Чтобы реже запускать.
300 и есть раз в 5 минут. Твой вариант на 4 часа будет слишком резким.двойная кавычка в условии для экшена замыкающая кавычка пропущена, и тип кавычек внутри условия надо заменить. либо двойные поставить Вот так "player distance _cursortarget < 25 and (typeOf cursortarget == 'elektro3_hero') and (s_player_open_helipad_h < 0)" |
› Четверг
› 03.09.2015
› 14:12
› Сообщение #
Цитата У тебя доступа к его запуску нет? Чтобы реже запускать. 300 и есть раз в 5 минут. Твой вариант на 4 часа будет слишком резким. Запускается он таким образом [5,false,true] execFSM "core_time.fsm"; Внутри кода есть число 300 (300 секунд, 5 минут, это как я понял таймаут сихронизации) Добавлено (03.09.2015, 13:14) Добавлено (03.09.2015, 13:15) Добавлено (03.09.2015, 13:17) Добавлено (03.09.2015, 13:34) Код _heroNest3LvlClose addAction ["Close Helipad In Hero Nest", "scripts\close_helipad_h.sqf",_cursorTarget, 0, false, true, "",[b]"player distance _cursortarget < 25 and (typeOf cursortarget == [b]'elektro3_hero[b]') and (s_player_close_helipad_h < 0)[b]"]; Меню действий вновь работает, но пункта нет, из-за проверки s_player_close_helipad_h скорее всего, подскажите пожалуйста как присвоить s_player_close_helipad_h действия для устранения проблемы Добавлено (03.09.2015, 14:12) Код if(isnil "s_player_open_helipad_h") then {s_player_open_helipad_h = -1;}; Код if(_typeOfCursorTarget == "elektro3_hero" && (player distance _cursorTarget < 25) && (s_player_open_helipad_h < 0)) then { s_player_open_helipad_h = player addAction ["Open Helipad In Hero Nest", "scripts\open_helipad_h.sqf",_cursorTarget, 0, false, true, "",""]; }; Вот как бы теперь совместить действия, т.е. выводить только open, если нажат open, то скрыть open и показать close |
› Четверг
› 03.09.2015
› 18:34
› Сообщение #
да
так и пишешь перед запуском имя_переменной = сколько надо s_player_open_helipad_h < 0 - эта фигня вроде бы за это и отвечает? Флаг то есть. Тогда лучше давать ей не цифры, а true-false Значения ей присвоить в конце скритпов открытия-закрытия |
› Четверг
› 03.09.2015
› 19:32
› Сообщение #
Это я уже все сделал, вот только понятно не могу как сделать условие мол выдавать либо open либо close
Добавлено (03.09.2015, 19:32) |
› Четверг
› 03.09.2015
› 20:31
› Сообщение #
Что такое s_player_close_helipad_h?
Состояние после появления - открыто или закрыто? содержимое давай. А лучше сам скрипт Хотя все равно он будет запускаться так часто, как указано в родительском Сообщение отредактировал andrucio - Четверг, 03.09.2015, 20:36
|
› Четверг
› 03.09.2015
› 22:15
› Сообщение #
Скрипт открывашки, переделал его, к такому виду привел:
Код nest_types_helipad = ["elektro3_hero_Fix","elektro3_Fix"]; if(isnil "s_player_open_helipad_h") then {s_player_open_helipad_h = -1;}; if(isnil "s_player_close_helipad_h") then {s_player_close_helipad_h = -1;}; if(_typeOfCursorTarget in nest_types_helipad && (player distance _cursorTarget < 25) && (s_player_open_helipad_h < 0)) then { s_player_open_helipad_h = player addAction ["Open Helipad", "scripts\nests\open_helipad.sqf",_cursorTarget, 0, false, true, "",""]; } else { player removeAction s_player_open_helipad_h; s_player_open_helipad_h = -1; }; if(_typeOfCursorTarget in nest_types_helipad && (player distance _cursorTarget < 25) && (s_player_close_helipad_h < 0)) then { s_player_close_helipad_h = player addAction ["Close Helipad", "scripts\nests\close_helipad.sqf",_cursorTarget, 0, false, true, "",""]; } else { player removeAction s_player_close_helipad_h; s_player_close_helipad_h = -1; }; Цитата содержимое давай. А лучше сам скрипт Скрипт времени - http://pastebin.com/5FukLMiX Вызывается - [5,false,true] execFSM "core_time.fsm"; Цитата Хотя все равно он будет запускаться так часто, как указано в родительском Нет, я методом тыка менял значения, изменил эту злощастную минуту, правда у меня получалось так, сделал я 30 секунд место 60, дело было так, он скипал 5-6 раз допустим по часу, потом обратно откатывал Добавлено (03.09.2015, 22:11) Добавлено (03.09.2015, 22:15) |
› Четверг
› 03.09.2015
› 22:16
› Сообщение #
нужен сам фсм. Здесь можно до пенсии ковыряться.
передаваемое 5 - это _skipValue (_skipValue = _this select 0;) Дальше _skipTime =(_skipValue)/60 А еще дальше жонглирование кучей переменных. Таймшифт сделан через setDate.. однако.. Там и ковыряй Если нет цикла в этом фсм, то ковырять надо не только здесь, но и там, где прописана строка [5,false,true] execFSM "core_time.fsm"; |
› Четверг
› 03.09.2015
› 23:11
› Сообщение #
Цитата нужен сам фсм. Здесь можно до пенсии ковыряться. В смысле сам fsm, я дал вам его сам fsm скрипт, и сам его сейчас открыл в Fsm editor-e бисовском Добавлено (03.09.2015, 22:18) Добавлено (03.09.2015, 22:21) Добавлено (03.09.2015, 22:23) Добавлено (03.09.2015, 22:28) Добавлено (03.09.2015, 22:29) Добавлено (03.09.2015, 22:31) Добавлено (03.09.2015, 22:34) Добавлено (03.09.2015, 22:35) Добавлено (03.09.2015, 22:38) Добавлено (03.09.2015, 22:42) Добавлено (03.09.2015, 23:11) |
› Пятница
› 04.09.2015
› 02:10
› Сообщение #
А.. ну руки у меня не дошли открыть значит.Забей на 5. Главное, какая переменная этому соответствует. какая - я написал.возможно.
i - это счетчик цикла Разве что попробовать if(_i == 60) then {_i = 0;};" \n заменить 60 на 3600 (строка 195) И в строке вызова 5 заменить на 60 |
› Пятница
› 04.09.2015
› 18:07
› Сообщение #
Хорошо, попробую, спасибо, а вы не знаете можно как-то подключить .hpp файл положив его в корневую папку с игрой, нужно методом тыка менять значения в нем, а файл миссии сервера занимает порядка 10 мб, очень долго перезагружаться?
Добавлено (04.09.2015, 18:07) |
› Пятница
› 04.09.2015
› 21:05
› Сообщение #
hpp подключаются в дескрипшене с описанием пути относительно файла миссии
#include "scripts\defines.hpp" |
› Пятница
› 04.09.2015
› 21:46
› Сообщение #
#include "scripts\defines.hpp" Это получается он в миссии лежать должен, это я знаю, я хотел его в корень армы кинуть думал можно будет редактировать, но все так же пишит что используется сервером, придется по 3-4 минуты перезагружаться
Добавлено (04.09.2015, 21:46) |
› Пятница
› 04.09.2015
› 22:37
› Сообщение #
Да хоть куда. Главное - пути правильно прописать.
? |
| |||
Чат сайта |