Вывод сообщения в чат

Сообщения
264
Реакции
80
Помог
1 раз(а)
Всем привет!
Знаю что делаю костыль, но по другому никак не выйдет.. (в скриптинге я рак, делаю как могу)
Код:
#include <amxmodx>

#define PLUGIN "Info WSS"
#define VERSION "1.0"
#define AUTHOR "REVO"

#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define FLAG_ACCESS (ADMIN_BAN|ADMIN_LEVEL_H)

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /wss", "in_chat")
}

public in_chat (id)
{
{
if (!(get_user_flags(id) & FLAG_ACCESS))
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Доступно только ^4VIP ^3игрокам^1.")
}
}
}

Задача такая, если обычный игрок пишет в чат: /wss он видит сообщение (так и нужно). Проблема в том что команда: /wss выполняется!
Помогите разобраться, что-бы она не выполнялась (для обычных игроков).
 
Сообщения
258
Реакции
262
Помог
5 раз(а)
Код:
public in_chat(id)
{
if (~get_user_flags(id) & FLAG_ACCESS)
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Доступно только ^4VIP ^3игрокам^1.");
return PLUGIN_HANDLED;
}

// your code here

return PLUGIN_HANDLED_MAIN;
}
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
Subb98, Спасибо помогло. :yes3:
Правда это работает с двумя флагами!
Код:
if (~get_user_flags(id) & FLAG_ACCESS)

Код:
#define FLAG_ACCESS (ADMIN_BAN|ADMIN_LEVEL_H)

Ну ничего, сделал на один флаг. 2 Мне и не нужно.
13 Ноя 2017
В продолжении темы, дабы не плодить новые, всё равно относится к этому плагину.
Никак не могу найти, хотя-бы кусок кода похожий.. :sorry:
Код:
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define FLAG_ACCESS ADMIN_LEVEL_G

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /wss", "in_chat")
register_clcmd("say /ak47", "in_chat")
register_clcmd("say /m4a1", "in_chat")
}

public in_chat (id)
{
if (~get_user_flags(id) & FLAG_ACCESS)
{
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Скины оружий доступны только ^4VIP ^3игрокам^1.");
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED_MAIN;
}

Нужно что-бы на картах типа: awp, aim, fy, был запрет при вводе команд: /wss, /ak47, /m4a1
Например (вот что есть из випки) правда она на: reapi. Пробовал брать оттуда ничего не вышло.
Код:
#define    BLOCK_MAPS    "awp_", "35hp_", "aim_", "fy_"
// Блокируемые карты
// Закоментируйте если не требуется блокировка карты

#define MSG_MAP "^1[^4LWS^1] На этой карте ^3меню ^4не доступно^1!"

#if defined BLOCK_MAPS
new bool:g_bBlockMaps;
#endif

#if defined BLOCK_MAPS
new szMap[32]; rh_get_mapname(szMap, charsmax(szMap));
new szBlockMaps[][] = { BLOCK_MAPS };
for(new i; i < sizeof szBlockMaps; i++)
{
if(containi(szMap, szBlockMaps) != -1)
g_bBlockMaps = true;
}
#endif

#if defined BLOCK_MAPS
if(!g_bBlockMaps && is_user_alive(id) && get_user_flags(id) & ACCESS_FLAGS)
#else
if(is_user_alive(id) && get_user_flags(id) & ACCESS_FLAGS)
#endif

#if defined BLOCK_MAPS
if(g_bBlockMaps)
return client_print_color(id, print_team_default, MSG_MAP);
#endif
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
REVO, самое простое и лучшее что можно сделать - это cvar значение которого 1 - доступно 0 - не доступно. Потом в коде тостаточно проверки. Ну и настроить под каждую карту с помощью конфига для карт/префиксов в каталоге addons/amxmodx/configs/maps/mapname.cfg
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
fantom, Можно хотя бы пример кода?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Код:
#include <amxmodx>

new g_CvarEnabled;

public plugin_init() {
g_CvarEnabled = register_cvar("amx_say_enabled", "1");
register_clcmd("say /wss", "in_chat")
register_clcmd("say /ak47", "in_chat")
register_clcmd("say /m4a1", "in_chat")
}

public in_chat (id)
{
if (!get_pcvar_num(g_CvarEnabled)) {
client_print_color(id, print_team_default, "^1[^4WSS^1] ^3Скины оружий отключены");
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED_MAIN;
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу