Перейти к содержимому


Фотография

Создать задание.


Лучший Ответ hipp0cat , 16 February 2014 - 13:34

Строчки такого вида:

["TaskAssigned",["","Destroy vehicle"]] call BIS_fnc_showNotification;

как раз отвечают за сообщение на экране. Они даже не связаны с самим заданием - таким образом можно выводить любые сообщения.

А здесь:

_event = IFR addEventHandler ["Killed",
{
  task1 setTaskState "Succeeded";
  ["TaskSucceeded",["","Destroy vehicle"]] call BIS_fnc_showNotification;
}];

создается обработчик событий (https://community.bi...addEventHandler), который срабатывает при уничтожении ифрита (ифрит в редакторе назван IFR), показывая новое сообщение и изменяя статус задания на "выполнено".

 

Чтобы был маркер на задание, можно использовать setSimpleTaskDestination, например дописать

task1 setSimpleTaskDestination (position IFR);

В таком случае, маркер появится на том же месте, где стоит ифрит (IFR). Тогда еще можно будет подписать этот маркер, поправив строчку с setSimpleTaskDescription:

task1 setSimpleTaskDescription ["You must destroy this Ifrit","Destroy vehicle","Ifrit is here!"];

Насчет запрещения ускорения времени, хорошего решения не придумал - могу предложить только дурацкое:

while {true} do
{
  waitUntil {accTime > 1};
  setAccTime 1;
};

Может, кто-нибудь сможет найти способ получше.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

  • Пользователи
  • 447 сообщений
  • Откуда:Россия

Отправлено 14 February 2014 - 21:17

Всем привет.
Ребята подскажите пожалуйста как создать задание через скрипт? А именно задание которое создается с изображением на экране.

Т.е. это не CreateSimpleTask, а это CreateTask [[ ? ] or[ ? , ?] ?, ?, ?,...]; - вот как то так!?)
Убил целый вечер результата ноль! Поэтому прошу помощи!
P.S. Если не сложно то и со статусами задания то же помощь не помешает!

Заранее спасибо.  


  • 0

#2 OFFLINE   hipp0cat

hipp0cat

    Ефрейтор

  • Пользователи
  • 82 сообщений
  • Отряд:OSA

Отправлено 15 February 2014 - 04:32

Если под "изображением на экране" понимается стандартное армовское оповещение о заданиях, то делается оно при помощи BIS_fnc_showNotification: 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

. Не особо понятно, какие аргументы каким шаблонам надо передавать, но методом тыка разобраться можно. Из неочевидных вещей можно отметить, что эта функция не работает в самом начале миссии (поэтому мне пришлось использовать sleep).

Прикрепил пример к посту.

Прикрепленные файлы


  • 0

#3 OFFLINE   Blender

Blender

    Прапорщик

  • Администраторы
  • 615 сообщений
  • Откуда:Torrevieja, España

Отправлено 15 February 2014 - 09:33

поэтому мне пришлось использовать sleep


waitUntil { player == player && time > 0 };
  • 0

#4 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

  • Пользователи
  • 447 сообщений
  • Откуда:Россия

Отправлено 16 February 2014 - 10:24

Спасибо большое, только вот эти строчки для меня пока еще темный лес) - просто воспользуюсь ими!):

["TaskAssigned",["","Destroy vehicle"]] call BIS_fnc_showNotification;

_event = IFR addEventHandler ["Killed",

{

  task1 setTaskState "Succeeded";

  ["TaskSucceeded",["","Destroy vehicle"]] call BIS_fnc_showNotification;

}];

P.S. Если не трудно то можно еще функцию на маркер направления задания)))
И еще маленький вопросик) - как исключить возможность игроку, ускорять время!?То же что то не нашел!)
Заранее благодарен.


Сообщение отредактировал D_Donskoy: 16 February 2014 - 11:47

  • 0

#5 OFFLINE   hipp0cat

hipp0cat

    Ефрейтор

  • Пользователи
  • 82 сообщений
  • Отряд:OSA

Отправлено 16 February 2014 - 13:34   Лучший Ответ

Строчки такого вида:

["TaskAssigned",["","Destroy vehicle"]] call BIS_fnc_showNotification;

как раз отвечают за сообщение на экране. Они даже не связаны с самим заданием - таким образом можно выводить любые сообщения.

А здесь:

_event = IFR addEventHandler ["Killed",
{
  task1 setTaskState "Succeeded";
  ["TaskSucceeded",["","Destroy vehicle"]] call BIS_fnc_showNotification;
}];

создается обработчик событий (

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

), который срабатывает при уничтожении ифрита (ифрит в редакторе назван IFR), показывая новое сообщение и изменяя статус задания на "выполнено".

 

Чтобы был маркер на задание, можно использовать setSimpleTaskDestination, например дописать

task1 setSimpleTaskDestination (position IFR);

В таком случае, маркер появится на том же месте, где стоит ифрит (IFR). Тогда еще можно будет подписать этот маркер, поправив строчку с setSimpleTaskDescription:

task1 setSimpleTaskDescription ["You must destroy this Ifrit","Destroy vehicle","Ifrit is here!"];

Насчет запрещения ускорения времени, хорошего решения не придумал - могу предложить только дурацкое:

while {true} do
{
  waitUntil {accTime > 1};
  setAccTime 1;
};

Может, кто-нибудь сможет найти способ получше.


  • 0

#6 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

  • Пользователи
  • 447 сообщений
  • Откуда:Россия

Отправлено 16 February 2014 - 13:37

Строчки такого вида:

["TaskAssigned",["","Destroy vehicle"]] call BIS_fnc_showNotification;

как раз отвечают за сообщение на экране. Они даже не связаны с самим заданием - таким образом можно выводить любые сообщения.

А здесь:

_event = IFR addEventHandler ["Killed",
{
  task1 setTaskState "Succeeded";
  ["TaskSucceeded",["","Destroy vehicle"]] call BIS_fnc_showNotification;
}];

создается обработчик событий (

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

), который срабатывает при уничтожении ифрита (ифрит в редакторе назван IFR), показывая новое сообщение и изменяя статус задания на "выполнено".

 

Чтобы был маркер на задание, можно использовать setSimpleTaskDestination, например дописать

task1 setSimpleTaskDestination (position IFR);

В таком случае, маркер появится на том же месте, где стоит ифрит (IFR). Тогда еще можно будет подписать этот маркер, поправив строчку с setSimpleTaskDescription:

task1 setSimpleTaskDescription ["You must destroy this Ifrit","Destroy vehicle","Ifrit is here!"];

Насчет запрещения ускорения времени, хорошего решения не придумал - могу предложить только дурацкое:

while {true} do
{
  waitUntil {accTime > 1};
  setAccTime 1;
};

Может, кто-нибудь сможет найти способ получше.

Спасибо огромное - возьму все это на вооружение)


  • 0




Яндекс.Метрика