Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Несколько бесконечных set_task

[РЕШЕНО]
Статус пользователя ThisIsSparta
сообщение 26.5.2015, 9:48
Сообщение #1
Стаж: 11 лет

Сообщений: 566
Благодарностей: 307
Полезность: 600

Здравствуйте.
Вызываю несколько set_task , и меня смутило то, как я понял, что для первого и второго используется один и тот же уникальный идентификатор. Не будут ли они конфликтовать каким-либо образом, или я сделал не правильно? Если не правильно то подскажите пожалуйста как это сделать.
Если предыдущее сделал правильно, то имеет место быть второй вопрос, насчет остановки этих двух тасков, правильно ли сделал?

Буду благодарен за любую помощь thank_you2.gif

Код:

public client_putinserver(id)
{
for(new i = 0; i<PlData ; i++)
UserData[id][i] = 0;
load_data(id);
if (player_register[id])
{
set_task(1.0, "task_showhudmsg", id, .flags = "b") // ?
set_task(60.0,"bonus_time",id,_,_,"b") // ?
}
}

public client_disconnect(id)
{
if (player_register[id])
{
save_usr(id);
remove_task(id); // ?
for(new i = 0; i<PlData ; i++)
UserData[id][i] = 0;
}
}


ps.gif На данный момент работает вроде нормально, но все же решил уточнить blush.gif

Отредактировал: ThisIsSparta, - 26.5.2015, 9:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ssx
сообщение 26.5.2015, 9:51
Сообщение #2


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Из плагина positive_vip

Код:
set_task(0.59, "VIP", id + 6910)


Код:
public VIP(id)
{
id -= 6910


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Radius
сообщение 26.5.2015, 10:03
Сообщение #3
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

ThisIsSparta, будет не конфликт, а неожиданный результат. После создания первого set_task, второй не создастся, а просто будут изменены параметры первого.

Решения два: 1. Задать каждому set_task уникальный id (как показано было выше). 2. Сделать 1 set_task, взяв за основу самый быстрый и на его базе отсчитывать время для более медленного, воссоздавая его работу. Это уменьшит количество проверок и сделает код более понятным.

Отредактировал: Radius, - 26.5.2015, 10:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ThisIsSparta
сообщение 26.5.2015, 10:07
Сообщение #4
Стаж: 11 лет

Сообщений: 566
Благодарностей: 307
Полезность: 600

Цитата(ssx @ 26.5.2015, 10:51) *
Из плагина positive_vip
Скрытый текст

Код:
set_task(0.59, "VIP", id + 6910)


Код:
public VIP(id)
{
id -= 6910


спасибо, так и думал что делаю что-то не так) все работает

Цитата(Radius @ 26.5.2015, 11:03) *
ThisIsSparta, будет не конфликт, а неожиданный результат. После создания первого set_task, второй не создастся, а просто будут изменены параметры первого.

Решения два: 1. Задать каждому set_task уникальный id (как показано было выше). 2. Сделать 1 set_task, взяв за основу самый быстрый и на его базе отсчитывать время для более медленного, воссоздавая работу второго. Это уменьшит количество проверок и сделает код более понятным.



пока сделал первым способом, спасибо за информация, буду иметь ввиду
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: