AMX MOD X
Четверг, 16.05.2024, 16:16:38



Приветствую Вас Гость | RSS
[ Главная ] [ как зделать повтор таска, и убрать этот повтор, когда надо? - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » как зделать повтор таска, и убрать этот повтор, когда надо? (set_task.... remove_task...)
как зделать повтор таска, и убрать этот повтор, когда надо?
He_npeTДата: Среда, 06.06.2007, 02:27:20 | Сообщение # 1
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Как зделать, чтобы каждые 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
Репутация: 27
Статус: Не в сети
Задаешь в начале какой-нибудь уникальный 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)
}
}

Больше вопросов нет надеюсь wink


 
slogicДата: Среда, 06.06.2007, 11:57:35 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Вообще-то AMX/X предоставляет механизм автономного запуска задачи через определенный момент времени. Для этого в аргумент flags передаешь "b". После этого в lalala_event() делаешь только действия, а новую задачу запускать не надо.
 
VENДата: Среда, 06.06.2007, 20:05:45 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Как уже было сказано, при создании задания в set_task() используешь "b" флаг, в функции-handler'е выполняешь reamove_task(taskid) при необходимости прекратить бесконечную последовательность заданий.
 
He_npeTДата: Среда, 06.06.2007, 23:33:05 | Сообщение # 5
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Code

set_task"(3.0, "myevent",b)
remove_task(myevent)

public myevent {
...
}

Так? Можите пожалуйсто формулу написать? smile


My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot
 
VENДата: Среда, 06.06.2007, 23:52:41 | Сообщение # 6
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Я думаю, тебе следует почитать "фундаметнтальные основы" в "полезной информации", насколько я вижу, у тебя проблемы с прототипами функций и типами данных.

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
Репутация: 45
Статус: Не в сети
Подправил пример выше. Убрал remove_task(myevent) - некорректно, т.к. функция принимает taskid а не имя task hadnler-функции.
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » как зделать повтор таска, и убрать этот повтор, когда надо? (set_task.... remove_task...)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024