Русское сообщество по скриптингу

Проверка на флаг доступа

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Проверка на флаг доступа

Сообщение mazoxa777 » 12 май 2018, 17:39

Сделайте пожалуйста проверку на флаг доступа в это меню на команду adminn_menu
чтоб меню могли открыть только игроки с флагом d
пожалуйста

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new keys MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

new const PLUGIN[]    =    "888"
new const VERSION[]    =    "1.2"
new const AUTHOR[]    =    "888"

public plugin_init()
{
        
register_plugin(PLUGINVERSIONAUTHOR)
        
register_menu("Menu_1"keys"func_menu2"
        
register_clcmd("adminn_menu""Server_Menu")
    
}

public 
Server_Menu(id)
{
    new 
name[32]
    
get_user_name(idname31)
    static 
menu[650], iLen
    iLen 
0
    iLen 
formatex(menu[iLen],    charsmax(menu)    -    iLen,    "\wМеню \rАдминистратора^n^n",    name);
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r[\y1\r] \wУправление Админкой^n")
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r[\y2\r] \wВзять 16000\r$^n")
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r[\y3\r] \wВыдать бан \rчата/\rголоса - \rне злоупотреблять^n")
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"\r[\y4\r] \wCнять бан \rчата/\rголоса^n")
    
iLen += formatex(menu[iLen], charsmax(menu) - iLen"^n\r[\y0\r] \rВыход^n")

    
    
show_menu(idkeysmenu, -1"Menu_1");
    return 
PLUGIN_HANDLED
}
public 
func_menu2(idkey)
{
    switch(
key)
    {
        case 
0client_cmd(id"amxmodmenu")
        case 
1client_cmd(id"admin_money")
        case 
2client_cmd(id"amx_gagmenu")
        case 
3client_cmd(id"amx_ungag")
    }
Аватара пользователя
mazoxa777
 
Сообщения: 3
Зарегистрирован: 09 мар 2018, 22:58
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Проверка на флаг доступа

Сообщение 3BEPb » 12 май 2018, 19:17

Аватара пользователя
3BEPb
 
Сообщения: 141
Зарегистрирован: 16 авг 2014, 22:02
Откуда: Пряжа
Благодарил (а): 22 раз.
Поблагодарили: 17 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Проверка на флаг доступа

Сообщение flymic24 » 12 май 2018, 20:01

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>

new const PLUGIN[]    =    "888"
new const VERSION[]    =    "1.2"
new const AUTHOR[]    =    "888"

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_menu("Menu_1", 1023, "func_menu2") 
    register_clcmd
("adminn_menu", "Server_Menu")
}

public Server_Menu(id)
{
    if (!is_user_connected(id))
        return PLUGIN_HANDLED
    
    if
(!(get_user_flags(id) & read_flags("d")))
        return PLUGIN_HANDLED
    
    new name
[32];    get_user_name(id, name, charsmax(name));
    static menu[512], iLen;    iLen = 0;
    
    iLen 
= formatex(menu[iLen],    charsmax(menu)    -    iLen,    "\wМеню \rАдминистратора^n^n",    name);
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y1\r] \wУправление Админкой^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y2\r] \wВзять 16000\r$^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y3\r] \wВыдать бан \rчата/\rголоса - \rне злоупотреблять^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y4\r] \wCнять бан \rчата/\rголоса^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r[\y0\r] \rВыход^n")
    
    show_menu
(id, 1023, menu, -1, "Menu_1");
    
    return PLUGIN_HANDLED
}

public func_menu2(id, key)
{
    if (!is_user_connected(id))
        return PLUGIN_HANDLED
    
    switch
(key)
    {
        case 0: client_cmd(id, "amxmodmenu")
        case 1: client_cmd(id, "admin_money")
        case 2: client_cmd(id, "amx_gagmenu")
        case 3: client_cmd(id, "amx_ungag")
    }
    
    return PLUGIN_HANDLED
}

Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Проверка на флаг доступа

Сообщение 1Fresh1MaLoY » 12 май 2018, 22:12

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new const PLUGIN[]    =    "888"
new const VERSION[]    =    "1.2"
new const AUTHOR[]    =    "888"

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_menu("Menu_1", 1023, "func_menu2") 
    register_clcmd
("adminn_menu", "Server_Menu")
}

public Server_Menu(id)
{
    if (!is_user_connected(id))
        return PLUGIN_HANDLED
    
    if
(!(get_user_flags(id) & read_flags("d")))
    {
    new name[32];    get_user_name(id, name, charsmax(name));
    static menu[512], iLen;    iLen = 0;
    
    iLen 
= formatex(menu[iLen],    charsmax(menu)    -    iLen,    "\wМеню \rАдминистратора^n^n",    name);
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y1\r] \wУправление Админкой^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y2\r] \wВзять 16000\r$^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y3\r] \wВыдать бан \rчата/\rголоса - \rне злоупотреблять^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y4\r] \wCнять бан \rчата/\rголоса^n")
    iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r[\y0\r] \rВыход^n")
    
    show_menu
(id, 1023, menu, -1, "Menu_1");
    }
    else
    
{
          ColorChat(id,NORMAL,"^4[^3Сервер^4] ^1Вам это недоступно! :3")
    }
    return PLUGIN_HANDLED;
}

public func_menu2(id, key)
{
    if (!is_user_connected(id))
        return PLUGIN_HANDLED
    
    switch
(key)
    {
        case 0: client_cmd(id, "amxmodmenu")
        case 1: client_cmd(id, "admin_money")
        case 2: client_cmd(id, "amx_gagmenu")
        case 3: client_cmd(id, "amx_ungag")
    }
    
    return PLUGIN_HANDLED
}

Ну немного колор чата :D
И ещё, зачем на всю менюшку ставить is_user_alive()? Чё? Типо когда админ мёртв он не может гаг дать?
Аватара пользователя
1Fresh1MaLoY
 
Сообщения: 33
Зарегистрирован: 08 июл 2017, 06:19
Благодарил (а): 8 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
SA:MP
C#


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Yandex [Bot] и гости: 8