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

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

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

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

"РЕШЕНО" set_task проблемы

[РЕШЕНО]
Статус пользователя soneekk
сообщение 4.8.2015, 23:35
Сообщение #1


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

ребята помогите правильно задать set task, хочу чтоб каждый N секунд игроку выдавалось N функция.

попробовал вот так но срабатывает только один раз:

Код:
#define GIVETIME_EXP 20.0	

public client_putinserver(id)
{
set_task(GIVETIME_EXP, "give_bonus_exp", id)
}

public give_bonus_exp(id)
{
jb_set_user_exp(id, jb_get_user_exp(id) + get_pcvar_num(pGiveBonusExp));
ChatColor(0, "^4[^1JB Time Bonus^4] %L ^1%d$", id, "JB_Time_BONUS", get_pcvar_num(pGiveBonusExp));
}


а еще ChatColor пишется несколько раз, так понял что он для всех пишется.

Отредактировал: soneekk, - 5.8.2015, 0:57
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Immunity
сообщение 4.8.2015, 23:43
Сообщение #2
Стаж: 11 лет

Сообщений: 444
Благодарностей: 119
Полезность: 139

Пробуй так.
Код:
set_task( GIVETIME_EXP.0, "give_bonus_exp", id )


И чтобы сообщение писалось только тебе вместо 0 поставь id.


Отредактировал: Immunity, - 4.8.2015, 23:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 4.8.2015, 23:54
Сообщение #3


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

Цитата(Immunity @ 4.8.2015, 23:39) *
Пробуй так.
Код:
set_task( GIVETIME_EXP.0, "give_bonus_exp", id )


не компилируется : expected token: ",", but found "."

Immunity,
а вообще какой смысл : в ? set_task( GIVETIME_EXP.0, у меня же в #define GIVETIME_EXP 20.0 уже так стоит .0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 4.8.2015, 23:57
Сообщение #4


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

У тебя функция выдаётся один раз потому что ты поставил её в паблик client_putinserver.А эта функция вызывается когда игрок зашел на сервер,то есть через 20 сек,как он увидел MOTD окно,ему выдаётся твоя функция.И больше не выдаётся.

Отредактировал: kolobok1, - 4.8.2015, 23:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Immunity
сообщение 5.8.2015, 0:00
Сообщение #5
Стаж: 11 лет

Сообщений: 444
Благодарностей: 119
Полезность: 139

Цитата(soneekk @ 5.8.2015, 0:49) *
не компилируется : expected token: ",", but found "."

Immunity,
а вообще какой смысл : в ? set_task( GIVETIME_EXP.0, у меня же в #define GIVETIME_EXP 20.0 уже так стоит .0

Сплю просто)

Отредактировал: Immunity, - 5.8.2015, 0:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 5.8.2015, 0:01
Сообщение #6


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

kolobok1:
ну это я уже понял , как сделать чтобы повторялся?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.8.2015, 0:04
Сообщение #7


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Цитата(soneekk @ 5.8.2015, 0:57) *
kolobok1:
ну это я уже понял , как сделать чтобы повторялся?

Флаг b
Код:

set_task(GIVETIME_EXP, "give_bonus_exp", id ,_,_,"b")

Вот чтобы не мучался)

Отредактировал: kolobok1, - 5.8.2015, 0:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 5.8.2015, 0:05
Сообщение #8


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

kolobok1

Код:
public client_putinserver(id)
{
set_task(GIVETIME_EXP, "give_bonus_exp", _, _, _, "b", id);
}


вот так пробовал но потом не выдается
Cкрытый текст
jb_set_user_exp(id, jb_get_user_exp(id) + get_pcvar_num(pGiveBonusExp));


сейчас твой вариант попробую

Отредактировал: soneekk, - 5.8.2015, 0:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.8.2015, 0:08
Сообщение #9


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

soneekk,
Вот,пригодится.
Пишу худ рекламу,помогло)Да и друг очень хороший помог с set_task'om

Отредактировал: kolobok1, - 5.8.2015, 0:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 5.8.2015, 0:11
Сообщение #10


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

kolobok1

вроде заработал но вот проблема c ChatColor пишется 4 раза, вроде потому что на сервере еще 3 бота кроме меня. какая то ошибка v ChatColor ,
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.8.2015, 0:14
Сообщение #11


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

soneekk, А где указан ChatColor?Поставь чтобы показывало только игроку (id),а не всем.Или вынеси за функцию,это set_task флудит,так как 4 игрока,то есть функция выдаётся 4-м игрокам,вот он и флудит,одновременно)

Отредактировал: kolobok1, - 5.8.2015, 0:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 5.8.2015, 0:18
Сообщение #12


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

kolobok1

всо заработал спасибо большое.

Отредактировал: soneekk, - 5.8.2015, 0:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.8.2015, 0:20
Сообщение #13


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

soneekk, Не за что,тег не забудь "РЕШЕНО".
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 5.8.2015, 0:22
Сообщение #14


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

kolobok1:
и последний вопрос, а когда игрок видит из сервера какой то remove task не нужен ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.8.2015, 0:27
Сообщение #15


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

soneekk, А фиг его,что у тебя за плагин там...Может и нужен)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.8.2015, 0:34
Сообщение #16


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Ну если очень надо,то вот:
Код:

#define TID 91607
public client_disconnect(id)
{
remove_task(TID + 91607)
}

set_task(GIVETIME_EXP, "give_bonus_exp", id ,_,_,"b")
---->
set_task(GIVETIME_EXP, "give_bonus_exp", id + TID ,_,_,"b")

Должно работать smile.gif

Отредактировал: kolobok1, - 5.8.2015, 0:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 5.8.2015, 0:57
Сообщение #17


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

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