FOnline
|
Скриптовый механизм позволяет создавать события, которые произойдут в указанное игровое время. В событиях могут участвовать как персонажи, так и итемы, причем это могут быть целые массивы персонажей или итемов.
Для создания события необходимо вызвать одну из функций CreateTimeEvent:
beginSecond | Игровое время (в полных секундах), когда должно произойти событие. Чтобы получить полную секунду, можно воспользоваться функцией GetFullSecond и глобальными переменными __FullSecond, __Year, __Month, __Day, __Hour, __Minute, __Second. Если игровое время заданно некорректно, то будет взято текущее игровое время. |
funcName | Строка ссылка на функцию. |
cr,item,value,values... | Персонаж или Предмет (либо Массив), который будет участвовать в событии. |
save | Флаг, который определяет, необходимо ли сохранять событие в базе данных сервера. Важные события (например, связанные с квестами) лучше сохранять, потому как любой рестарт сервера прекратит существование события, которое не сохраняется в базе данных и его будет необходимо создавать заново при инициализации сервера (функции инициализации у карт, персонажей, предметов). |
По оформлению функции читайте Оформление специализированных функций. Такая функция должна иметь один параметр – массив переданных при создании события данных (uint[]@ values). В процессе работы этот массив можно модифицировать - изменять значения элементов, размерность массива. Если при создании события данные не передавались, то values будет равен null. Тип возвращаемого значения - uint. Функция-событие должна возвращать полную секунду, которая определяет, через какой промежуток времени событие повторится (0 – не повторять событие, удалить). Функция CreateTimeEvent, в случае успешного создания события, возвратит его номер. Впоследствии по этому номеру можно удалить это событие, вызвав функцию EraseTimeEvent.
Пример скрипта, с использованием событий:
В этом примере организованны два события. В первом, мальчик зазывает покупать у него рации, каждые 50-70 минут, строго с 8 до 20 часов. Во втором, мальчик приветствует всех с добрым утром каждый день в 8 часов утра.