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

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

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

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

Выдать что-либо на n-раундов, а затем забрать

Статус пользователя GOOD FELLOW
сообщение 19.1.2015, 22:24
Сообщение #1


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Всем hi
Интересует такая вещь
У меня есть меню, в нем одна команда, которую я хочу выдать на n-ое количество раундов, а затем забрать, после истечения этих раундов
а при попытке взять снова, чтобы писало мол "Больше недоступно на этой карте"

например: дать юзеру гравитацию на 2 раунда, после того как они пройдут - вернуть обратно и выдать сообщение: "Закончился эффект gravity"
При новой попытке взять гравити, чтобы писало "На этой карте больше недоступно"

Надеюсь ясно изъяснил))
заранее спасибо за помощь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя proff_q
сообщение 19.1.2015, 23:12
Сообщение #2
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Обычный счетчик, выставляешь юзеру gravity_player[id] = 2, в конце раунда gravity_player[id]-- и при спавне в новом раунде если gravity_player[id] > 0 то выставляешь гравитацию. Ну и булевую переменную gravity_used[id] = true при взятии.

Отредактировал: proff_q, - 19.1.2015, 23:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 19.1.2015, 23:26
Сообщение #3


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

а вместо gravity_player[id] > 0, подставить условие gravity_player[id] == 0 { мое действие }, верно же так будет?
голова плохо варит че то :S
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
umprex
сообщение 19.1.2015, 23:32
Сообщение #4


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

Стаж: 16 лет
Город: Киев

Сообщений: 2909
Благодарностей: 4781
Полезность: 2197

GOOD FELLOW, да, но если я не ошибаюсь, нужно будет запретить понижать gravity_player ибо значения уйдут в отрицательные и тогда условие == 0 не сработает.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 19.1.2015, 23:36
Сообщение #5


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

umprex, тогда использовать условие <=
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 19.1.2015, 23:40
Сообщение #6
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Правда рекконект изменит ситуацию sad.gif

Код:
#include <amxmodx> 

new gravity_player[33]
new bool:gravity_used[33]

public plugin_init() {
register_clcmd("say /1", "azaza")

register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
register_logevent("round_end", 2, "1=Round_End")
}

public round_end() {
for(new id = 0; id < get_maxplayers(); id++) {
if(!is_user_connected(id))
continue

if(gravity_player[id] > 0)
gravity_player[id]--
}
}

public round_start() {
for(new id = 0; id < get_maxplayers(); id++) {
if(!is_user_connected(id))
continue

if(gravity_player[id] > 0)
set_task(1.0, "set_gravity", id)
}
}

public set_gravity(id) {
//set_user_gravity(id, 0.8)
}

public client_putinserver(id)
gravity_used[id] = false

public azaza(id) {
if(gravity_used[id])
return

gravity_used[id] = true
gravity_player[id] = 2
}


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