как зделать повтор таска, и убрать этот повтор, когда надо?
|
|
He_npeT | Дата: Среда, 06.06.2007, 02:27:20 | Сообщение # 1 |
 Генерал-майор
Группа: Скриптеры
Сообщений: 292
Статус: Не в сети
| Как зделать, чтобы каждые 3 секунды повторялся public lalala_event и как повтор убрать когда надобудет?
My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot
|
|
| |
AlMod | Дата: Среда, 06.06.2007, 11:28:54 | Сообщение # 2 |
Сонный кодер
Группа: Админы
Сообщений: 600
Статус: Не в сети
| Задаешь в начале какой-нибудь уникальный taskid, H-p Code | #define MY_TASKID 67589 | noToM Code | public client_connect(id) { lalala_event(MY_TASKID+id) }
public lalala_event(task_id) { new id = task_id-MY_TASKID ... set_task(3.0,"lalala_event",task_id) } | a y6paTb Tak Code | public call_me_to_remove(task_id) { if (task_exist(task_id)) { remove_task(id) } } | Больше вопросов нет надеюсь 
|
|
| |
slogic | Дата: Среда, 06.06.2007, 11:57:35 | Сообщение # 3 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Вообще-то AMX/X предоставляет механизм автономного запуска задачи через определенный момент времени. Для этого в аргумент flags передаешь "b". После этого в lalala_event() делаешь только действия, а новую задачу запускать не надо.
|
|
| |
VEN | Дата: Среда, 06.06.2007, 20:05:45 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Как уже было сказано, при создании задания в set_task() используешь "b" флаг, в функции-handler'е выполняешь reamove_task(taskid) при необходимости прекратить бесконечную последовательность заданий.
|
|
| |
He_npeT | Дата: Среда, 06.06.2007, 23:33:05 | Сообщение # 5 |
 Генерал-майор
Группа: Скриптеры
Сообщений: 292
Статус: Не в сети
| Code | set_task"(3.0, "myevent",b) remove_task(myevent)
public myevent { ... } | Так? Можите пожалуйсто формулу написать?
My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot
|
|
| |
VEN | Дата: Среда, 06.06.2007, 23:52:41 | Сообщение # 6 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Я думаю, тебе следует почитать "фундаметнтальные основы" в "полезной информации", насколько я вижу, у тебя проблемы с прототипами функций и типами данных. Code | // ... set_task"(3.0, "myevent", 58489257, _, _, "b") // ...
public myevent { ... remove_task(58489257) } |
Сообщение отредактировал VEN - Четверг, 07.06.2007, 19:45:33 |
|
| |
VEN | Дата: Четверг, 07.06.2007, 19:47:23 | Сообщение # 7 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Подправил пример выше. Убрал remove_task(myevent) - некорректно, т.к. функция принимает taskid а не имя task hadnler-функции.
|
|
| |