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

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

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

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

Ограничить использование по времени

Статус пользователя filip
сообщение 12.5.2013, 11:22
Сообщение #1


Стаж: 13 лет

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

Хочу ограничить использование по времени одной фишки, применил вот такую конструкцию:
Скрытый текст
Код:


new can_use[33]

public buy_m32(id)
{
if(!is_user_alive(id))
{
client_print(id,print_center,"Нужно быть живым")
return PLUGIN_HANDLED;
}
if(cs_get_user_money (id) < get_pcvar_num(cvar_m32_cost))
{
client_print(id, print_chat, "[CSDM] Недостаточно денег")
return PLUGIN_HANDLED;
}

if(can_use [id] > 0)
{
client_print(id, print_center, "Часто используешь, подожди чуть-чуть")
return PLUGIN_HANDLED;
}

cs_set_user_money (id, cs_get_user_money (id) - get_pcvar_num(cvar_m32_cost))

give_m32(id)
can_use[id]++
set_task(20.0, "usabilyty", id)
return PLUGIN_HANDLED;
}

public usabilyty(id)
{
can_use[id] = 0
}


на деле получается, что воспользоваться можно только 1 раз, потом на потяжении всей карты выдает "Часто используешь, подожди чуть-чуть"
Как исправить?

Еще один вопросик, никто не может поделиться кодом таймера обратного отсчета? (хочу вместо "Часто используешь, подожди чуть-чуть" запилить что-то типа "До повторного использования огсталось n секунд")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
CaHeK86
сообщение 12.5.2013, 11:46
Сообщение #2
Стаж: 16 лет

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

Цитата(filip @ 12.5.2013, 12:22) *
на деле получается, что воспользоваться можно только 1 раз, потом на потяжении всей карты выдает "Часто используешь, подожди чуть-чуть"
Как исправить?


надо каждый раунд обнулять! вот.

Код:

public plugin_init()
{
register_event("HLTV", "restart_round", "a", "1=0", "2=0");
}

public restart_round(id)
{
can_use[id] = 0
}


Отредактировал: CaHeK86, - 12.5.2013, 11:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 12.5.2013, 11:48
Сообщение #3
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Где ты там [id] взял?
arrayset нужно юзать.

Отредактировал: Nickk, - 12.5.2013, 11:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 12.5.2013, 11:51
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Код:
can_use[id]++ => can_use[id]= get_systime()

Код:
if(can_use [id] > 0) =>  if(can_use [id] + 60 > get_systime()) //раз в 60 секунд

Код:
client_print(id, print_center, "Часто используешь, подожди чуть-чуть") => client_print(id, print_center, "Часто используешь, подожди %d секунд", 60 + can_use [id] - get_systime())


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя filip
сообщение 12.5.2013, 12:25
Сообщение #5


Стаж: 13 лет

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

mazdan спасибо большое, заработало.
CaHeK86 у меня CSDM, так что думаю вариант с раундами не подошел бы.
Nickk ничего не понял BooM.gif . Если есть мануальчик в сети про arrayset, буду признателен за ссыль, посмотреть что это такое и с чем его едят.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
CaHeK86
сообщение 12.5.2013, 12:30
Сообщение #6
Стаж: 16 лет

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

Цитата(filip @ 12.5.2013, 13:25) *
mazdan спасибо большое, заработало.
CaHeK86 у меня CSDM, так что думаю вариант с раундами не подошел бы.
Nickk ничего не понял BooM.gif . Если есть мануальчик в сети про arrayset, буду признателен за ссыль, посмотреть что это такое и с чем его едят.

в коде вижу сет таск
попробуй тогда так

Код:

set_task(20.0, "usabilyty", id)

public usabilyty(id)
{
can_use[id]--
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя filip
сообщение 12.5.2013, 12:31
Сообщение #7


Стаж: 13 лет

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

Да уже все заработало без сет тасков всяких, на конструкции, предложенной Даниилом

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