Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Скрипты Вопросы по скриптописанию (Тонкости написания скриптов) |
Вопросы по скриптописанию |
› Четверг
› 13.06.2013
› 11:58
› Сообщение #
Dim@s535, priority: Number - (optional) Priority value of the action. Actions will be arranged descending according to this. Every game action has a preset priority value. Value can be negative or decimal. Actions with same values will be arranged in order which they were made, newest at the bottom. Typical range is 0 (low priority. Eg: 'Get out') to 6 (high priority. Eg: 'Auto-hover on').
addAction Сообщение отредактировал ZoRRo - Четверг, 13.06.2013, 12:02
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Четверг
› 13.06.2013
› 12:11
› Сообщение #
ZoRRo, я бы не рекомендовал вам использовать значения ниже 0.
|
› Четверг
› 13.06.2013
› 12:15
› Сообщение #
Dim@s535, так то согласен, если 6 это высший приоритет, а 0 это низжий, то -1 - да ровно так, как карта ляжет ))
Сообщение отредактировал ZoRRo - Четверг, 13.06.2013, 12:19
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Четверг
› 13.06.2013
› 12:21
› Сообщение #
ZoRRo, спасибо за понимание.
Добавлено (13.06.2013, 12:18) ------------------------------------- ZoRRo, спасибо. Сообщение отредактировал Dim@s535 - Четверг, 13.06.2013, 12:22
|
› Четверг
› 13.06.2013
› 16:08
› Сообщение #
Взял пример создания кастомного меню с сайта.
И изменил таким образом: Код _unit = this select 0; _unit groupSelectUnit [_unit, true]; SOME_OFPEC_TAG_CustomMenu = [ [ "Меню", // title = // заголовок меню true // contexsensitive = // контекстнозависомое меню ], [ "Развести костер", // title = // заголовок пункта меню [2], // shortcuts[] = // горячая клавиша, см. DIK KeyCodes "", // menu = // ссылка на подменю, например "#GET_IN" -5, // command = // тип команды, см. Commanding-menu-cmd.hpp, здесь -- выполнить sqf код (-5) [["expression", "nul=[_unit] execvm 'fire.sqf'"]], // пара имя/значение дополнительного параметра, здесь задается expression "1", // show = // условие показа пункта меню -- всегда показывать "1" // enable = // условие доступности пункта меню -- всегда доступно ] ]; showCommandingMenu "#USER:SOME_OFPEC_TAG_CustomMenu"; Это меню открывается через скрипт mainmenu.sqf который в свою очередь вызывается игроком с помощью addaction. То есть меню в меню. Но при вызове пункта "развести костёр" выходит ошибка о том, что ожидался игрок, а дали чтото другое. То есть проблемы с this select (и моей криворукостью). Не понял короче. Вроде всё правильно написал. При вызове этого же скрипта через addaction работает без проблем. Цитата (Dim@s535) Так ты любитель сталкера? Да, есть немного. Я вот как раз сейчас пытаюсь сделать такую песочницу, типа сталкера. Ну взял Dynamic Zombie Sandbox и пытаюсь всякие костры да фонарики туда запилить. Новых миссий добавил, аддоны там, все дела... С другом играем. Если хочешь, присоединяйся ![]()
Spitfire
|
› Четверг
› 13.06.2013
› 17:14
› Сообщение #
Привет! Вопрос: подскажи, если знаешь, как сделать счетчик заданий. Например 4 задания. Я выполнил 1, 2 например и когда выполнил два последних, счетчик ==4 и конец миссии.
И второй вопрос. Какой нужен скрипт для заданий, если например те же 4 задания, ты выполнил 1, потом 3 не по порядку, и после его выполнения активным стало 2, которое ты еще не завершил. |
› Четверг
› 13.06.2013
› 17:19
› Сообщение #
Как создаёш задания? как определяеш что оно выполнено?
|
› Четверг
› 13.06.2013
› 18:27
› Сообщение #
Это вот создаю:
task1 = player createSimpleTask [localize "STR_Task1"]; task1 setSimpleTaskDescription[localize "STR_Desc1", localize "STR_Task1", localize "STR_Task1"]; task1 setSimpleTaskDestination markerpos "m_task1"; player setCurrentTask task1; _title = localize format ["STR_Task1", _id]; taskhint [format ["%1:\n%2", localize "STR_TaskNew", _title], [1, 1, 1, 1], "taskNew"]; hint localize "STRD_ps3"; Это вот выполнено: Task1 setTaskState "SUCCEEDED"; _title = localize format ["STR_Task1", _id]; taskhint [format ["%1:\n%2", localize "STR_Taskdone", _title], [0, 1, 0, 1], "taskdone"]; "1" objStatus "Done"; Slon, как создавать задания и выполнять я умею делать. Мне вот именно надо счетчик заданий, там что-то с глобальными переменными связано. И если возможно скрипт, чтобы задания когда их выполняешь не по порядку всегда после выполнения переключалось на невыполненное задание. А то у меня получается, выполнил например 2 задание, потом 1 задание и опять переключается на второе, хотя оно уже выполнено. Вот, что мне нужно объяснить и в чем помочь. |
› Четверг
› 13.06.2013
› 18:43
› Сообщение #
Цитата Task1 setTaskState "SUCCEEDED"; У тебя нет контроля выполнения. т.е. Задача - хлопнуть снайпера. контроль - тригер ожидает когда снайпера убъют, и вот уже тригер приведёт в действие счётчик и ветвитель |
› Четверг
› 13.06.2013
› 21:20
› Сообщение #
Slon, ты мне можешь скриптом написать, то что я прошу?!
Добавлено (13.06.2013, 21:20) |
› Четверг
› 13.06.2013
› 22:35
› Сообщение #
я не очень понял что тебе надо
|
› Пятница
› 14.06.2013
› 03:47
› Сообщение #
Цитата (artivad2) Да, есть немного. Я вот как раз сейчас пытаюсь сделать такую песочницу, типа сталкера. Ну взял Dynamic Zombie Sandbox и пытаюсь всякие костры да фонарики туда запилить. Новых миссий добавил, аддоны там, все дела... С другом играем. Если хочешь, присоединяйся. |
› Пятница
› 14.06.2013
› 09:38
› Сообщение #
Slon, мне просто нужен счетчик заданий. Вот конечная запись счетчика заданий:
if (taks==4) then {endmission "end1"} else {}; когда 4 задания выполнено конец миссии. А перед этим что должно писаться? Какие данные? Там типа надо прописать: выполнение задания +1 и когда задание == 4, например, конец миссии. |
› Пятница
› 14.06.2013
› 11:49
› Сообщение #
В начале объяви счётчик равным нулю
taks_meter = 0; по выполнении задачи увеличивай счётчик Task1 setTaskState "SUCCEEDED"; taks_meter = taks_meter + 1; Закончить миссию может триггер типа "Конец1" с условием taks_meter == 4 |
› Пятница
› 14.06.2013
› 12:05
› Сообщение #
Slon, спасибо за первый вопрос. Теперь вопрос номер два.
Какие команды необходимо прописать, чтобы при выполнении заданий в миссии, всегда после выполнения заданий не зависимо по порядку или нет, задания переключались только на те которые ты еще не выполнил. Например я делаю миссию из 4 заданий. Все задания показаны в начале миссии, 1, 2 и т.д. Когда их начинаешь выполнять по порядку все нормально идет, выполнил 1, текущим стало 2-е. например: Task1 setTaskState "SUCCEEDED"; _title = localize format ["STR_Task1", _id]; taskhint [format ["%1:\n%2", localize "STR_Taskdone", _title], [0, 1, 0, 1], "taskdone"]; "1" objStatus "Done"; sleep 4; _title = localize format ["STR_Task2", _id]; taskhint [format ["%1:\n%2", localize "STR_Taskcurrent", _title], [1, 1, 0, 1], "taskcurrent"]; player setCurrentTask task2; savegame; а вот когда их выполняешь не по порядку, например выполнил 2 а потом 1 задание, то согласно скрипту, снова становится активным 2-е задание. Как сделать, чтобы только не выполненные задания становились активными. |
| |||
Чат сайта |