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Массив идентификаторов тех событий, которые нужно удалить.
Возвращает
Количество удаленных событий.