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

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

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

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

Как забрать вызов команды через консоль?

Статус пользователя gedat
сообщение 3.6.2020, 11:30
Сообщение #1
Стаж: 3 года 10 месяцев

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

Ковыряю один плагин , суть такова

Есть 2 функции
Код:

public cmd_a(id)
public cmd_b(id)

Есть команды
Код:

register_clcmd("say /commanda", "cmd_a")
register_clcmd("revers", "cmd_b")


В функции public cmd_a(id) после проверки условий если верно то вызывается client_cmd(id, "revers") // который в свою очередь вызывает cmd_b
Код:

if(lastdon[id] > get_systime(0))
{
Color(id, print_chat, "!g[ZP]!y %L", id, "ZBM_DON_WAIT", lastdon[id] - get_systime(0))
return PLUGIN_HANDLED
}
client_cmd(id, "revers")
client_print(id, print_center, "%L", id, "ZBM_DONATE_ENTER")
return PLUGIN_CONTINUE


Но суть в том что можно сразу вызвать revers через консоль без учета /commanda в котором есть проверка

Не пойму как это исправить. Как напрямую вызвать функцию без register_clcmd("revers", "cmd_b")
Пробовал методом тыка просто вызвать вот так cmd_b(id) , но видимо это так не работает dntknw.gif
Помогите разобраться))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 5.6.2020, 19:46
Сообщение #2


Стаж: 9 лет 3 месяца

Сообщений: 2723
Благодарностей: 533
Полезность: 40

gedat, По идее, можно попробовать в реверсе добавить условие:
Сделать в /commanda в конце возвращение какой-то переменной в true, а в cmd_b проверять эта переменная тру или нет и если нет, то отправлять его на cmd_a
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wopox3
сообщение 25.7.2020, 20:32
Сообщение #3


Стаж: 11 лет

Сообщений: 333
Благодарностей: 222
Полезность: 902

Таким образом у вас присутствует только одна команда, доступная для игрока (say /get).
Код:

#include <amxmodx>

public plugin_init() {
register_clcmd("say /get", "hCMD_get");
}

public hCMD_get(id) {
new bool:allow = true;
// тут должен быть какой-то ряд условий, например:
if(get_gametime() < 20.0) {
allow = false;
}

if(allow) {
setPlayerSomething(id);
}

return PLUGIN_HANDLED;
}

setPlayerSomething(const id) {
// Тут вы производите действие, которое было необходимо сделать по команде `say /get`

client_print(id, print_center, "%L", id, "ZBM_DONATE_ENTER");
}


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