|
как зделать повтор таска, и убрать этот повтор, когда надо?
|
|
| 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-функции.
|
| |
|
|