FOnline
Временные события персонажей

Общая информация

Скриптовый механизм работает примерно так же, как и при использовании обычных временных событий, но, в отличие от них, событие происходит не в определенную указанную игровую секунду, а через некоторый промежуток времени, причем данный промежуток отсчитывает только тогда, когда персонаж, для которого установлено событие, находится в онлайне. Например, данный механизм может быть использован для реализации действия наркотиков на игроков.

Для создания события необходимо вызвать один из следующих методов класса Critter

bool AddTimeEvent(string& funcName, uint duration, int identifier)
bool AddTimeEvent(string& funcName, uint duration, int identifier, uint rate)
Аргументы
funcName Строка ссылка на функцию.
duration Игровое время (в игровых секундах) через которое должно произойти событие.
identifier Идентификатор, для удобного поиска событий в общем списке.
rate Дополнительный параметр, можно использовать для любых целей, если использован метод без указания значения rate, то данный параметр в функции обработчике будет равен нулю.

По оформлению функции читайте Оформление специализированных функций. Функция-событие должна возвращать полную секунду, которая определяет, через какой промежуток времени событие повторится (0 – не повторять событие, удалить). Функция AddTimeEvent, в случае успешного создания события, возвратит true.

Дополнительные методы для работы с временными событиями персонажей.

Получение количесва событий с указанным идентификатором.

uint GetTimeEvents(int identifier, uint[]@+ indexes, uint[]@+ durations, uint[]@+ rates) const
Аргументы
identifier Идентификатор, указанный при создании события.
indexes Индексы событий.
durations Временные промежутки событий.
rates Значения параметра rate событий.
Возвращает
Количество найденных событий.

Получение количества событий с указанными идентификаторами.

uint GetTimeEvents(int[]& findIdentifiers, int[]@+ identifiers, uint[]@+ indexes, uint[]@+ durations, uint[]@+ rates) const
Аргументы
findIdentifiers Идентификаторы найденных событий.
identifiers Идентификаторы, указанные при создании событий.
indexes Индексы событий.
durations Временные промежутки событий.
rates Значения параметра rate событий.
Возвращает
Количество найденных событий.

Изменяет время до запуска и параметр rate указанного события

void ChangeTimeEvent(uint index, uint newDuration, uint newRate)
Аргументы
index Индекс события, которое необходимо изменить.
newDuration Новый интервал до возникновения события.
newRate Новое значение параметра rate.

Удаляет событие по индексу

void EraseTimeEvent(uint index)
Аргументы
index Индекс события, которое следует удалить

Удаляет события по идентификатору

uint EraseTimeEvents(int identifier)
Аргументы
identifier Идентификатор, указанный при создании, тех событий, которые следует удалить.
Возвращает
Количество удаленных событий

Удаляет события с заданными идентификаторами

uint EraseTimeEvents(int[]& identifiers)
Аргументы
identifiers Массив идентификаторов тех событий, которые нужно удалить.
Возвращает
Количество удаленных событий.
Converted from CHM to HTML with chm2web Pro 2.85 (unicode)