Блокировка выполнения функции через время

Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Код:
Объявляю глобальную булевую переменную:

new bool:iBlock[33]

Обнуляю при выходе игрока:

public client_disconnect(id) {
  iBlock[id] = false
}

В функции:

if(iBlock[id] == true) return PLUGIN_HANDLED

// Выполняю действие

iBlock[id] == true // Включаю блокировку
set_task(5.0, "Unblock", iBlock[id])

public Unblock(id) iBlock[id] = false
У меня почему-то все прекрасно работает, но у другого игрока функция вызывается один раз и он больше не может ее использовать.
Хотя, добавив вывод значения iBlock[id] до отправки и после отправки set_task, все происходит хорошо: iBlock = 0, но воспользоваться еще раз функцией мой игрок не может в отличии от меня.
 
Сообщения
576
Реакции
1,003
Помог
18 раз(а)
public Unblock(id) iBlock[id] = false
Откуда берется этот id и чему он равен?
 
Сообщения
702
Реакции
54
Mistrick, вероятно в таске надо указать id, чтобы получить id игрока, а не так, как было сделано.
 
Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Mistrick, благодарю)

set_task(5.0, "Unblock", id)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу