Настроить флаг в плагине

Статус
В этой теме нельзя размещать новые ответы.

MorkoFFka

Пользователь
Регистрация
9 Июн 2017
Сообщения
27
Симпатии
4
Пол
Мужской
Приветствую, нужно что бы при заходе админа на сервер с флагом ADMIN_LEVEL_H не работали команды которые прописаны в плагине, вроде сделал вот так, но не работает!

Arr Stop:
#include <amxmodx>

#define PLUGIN_NAME "Arr Stop"
#define PLUGIN_VERSION "1.1"
#define PLUGIN_AUTHOR "Neugomon"

// ‘юда прописываем ваши комманды.
new g_arrBlockCmds[][] =
{
    "say /rtv",
    "amx_votemapmenu",
    "say rtv",
    "say maps",
    "amx_mapmenu",
    "mapm_startvote"
}

new g_iAdmin[33];
new bool:g_bBlockCmds;

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
for(new i; i < sizeof g_arrBlockCmds; i++)
register_clcmd(g_arrBlockCmds[i], "blck");
}

public client_putinserver(id)
{
    if(get_user_flags(id) & ADMIN_LEVEL_H)
    {
        g_bBlockCmds = true;
        g_iAdmin[id] = 1;
    }
    else    g_iAdmin[id] = 0;
}

public client_disconnected(id)
{
    if(g_iAdmin[id])
    {
        if(!OnServerAdmins(id))
            g_bBlockCmds = false;
        g_iAdmin[id] = 0;
    }
}

public blck(id)
{
    if(g_bBlockCmds)
    {
        if(~get_user_flags(id) & ADMIN_LEVEL_H)
            return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

OnServerAdmins(id)
{
    new players[32], pnum;
    get_players(players, pnum);
    for(new i; i < pnum; i++)
    {
        if(id != players[i])
        {
            if(g_iAdmin[players[i]])
                return 1;
        }
    }
    return 0;
}
 

Panzer

Пользователь
Регистрация
11 Июн 2017
Сообщения
224
Симпатии
211
Пол
Мужской
Попробуй перед запятыми пробел убрать. Кодировка плагина какая?
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
863
Симпатии
532
Предупреждения
15
Пол
Мужской
Потому что игрок флаги может получит позже чем client_putinserver
Так же имеет значение порядок установки в plugins.ini
 

MorkoFFka

Пользователь
Регистрация
9 Июн 2017
Сообщения
27
Симпатии
4
Пол
Мужской
Потому что игрок флаги может получит позже чем client_putinserver
Так же имеет значение порядок установки в plugins.ini
Стоит на 2 месте в plugins.ini
Попробуй перед запятыми пробел убрать. Кодировка плагина какая?
А какая должна быть кодировка?
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
863
Симпатии
532
Предупреждения
15
Пол
Мужской
MorkoFFka, Зачем такие оптимизации ?
C++:
#include <amxmodx>

#define PLUGIN_NAME "Arr Stop"
#define PLUGIN_VERSION "1.1"
#define PLUGIN_AUTHOR "Neugomon"

// ‘юда прописываем ваши комманды.
new g_arrBlockCmds[][] =
{
    "say /rtv",
    "amx_votemapmenu",
    "say rtv",
    "say maps",
    "amx_mapmenu",
    "mapm_startvote"
}

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    
    for(new i; i < sizeof g_arrBlockCmds; i++)
        register_clcmd(g_arrBlockCmds[i], "blck");
}


public blck(id)
{
    return (get_user_flags(id) & ADMIN_LEVEL_H) ? PLUGIN_CONTINUE : OnServerAdmins()
}

bool OnServerAdmins()
{
    new players[32], pnum;
    get_players(players, pnum);
    for(new i; i < pnum; i++)
    {
        if(get_user_flags(players[i]) & ADMIN_LEVEL_H)
        {
            return PLUGIN_HANDLED;
        }
    }
    return PLUGIN_CONTINUE;
}
 

MorkoFFka

Пользователь
Регистрация
9 Июн 2017
Сообщения
27
Симпатии
4
Пол
Мужской
MorkoFFka, Зачем такие оптимизации ?
C++:
#include <amxmodx>

#define PLUGIN_NAME "Arr Stop"
#define PLUGIN_VERSION "1.1"
#define PLUGIN_AUTHOR "Neugomon"

// ‘юда прописываем ваши комманды.
new g_arrBlockCmds[][] =
{
    "say /rtv",
    "amx_votemapmenu",
    "say rtv",
    "say maps",
    "amx_mapmenu",
    "mapm_startvote"
}

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
   
    for(new i; i < sizeof g_arrBlockCmds; i++)
        register_clcmd(g_arrBlockCmds[i], "blck");
}


public blck(id)
{
    return (get_user_flags(id) & ADMIN_LEVEL_H) ? PLUGIN_CONTINUE : OnServerAdmins()
}

bool OnServerAdmins()
{
    new players[32], pnum;
    get_players(players, pnum);
    for(new i; i < pnum; i++)
    {
        if(get_user_flags(players[i]) & ADMIN_LEVEL_H)
        {
            return PLUGIN_HANDLED;
        }
    }
    return PLUGIN_CONTINUE;
}
Код:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// ArrStopCommands.sma
//
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(29) : error 017: undefined symbol "OnServerAdmins"
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(32) : error 010: invalid function or declaration
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(35) : error 021: symbol already defined: "get_players"
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(36) : error 010: invalid function or declaration
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(38) : error 010: invalid function or declaration
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(40) : error 010: invalid function or declaration
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(43) : error 010: invalid function or declaration
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(34) : warning 203: symbol is never used: "players"
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(34) : warning 203: symbol is never used: "pnum"
//
// 7 Errors.
// Could not locate output file D:\╨рсюўшщ ёЄюы\scripting\compiled\ArrStopCommands.amx (compile failed).
//
// Compilation Time: 0,19 sec
// ----------------------------------------

Press enter to exit ...
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
863
Симпатии
532
Предупреждения
15
Пол
Мужской
MorkoFFka, может так ?
bool:OnServerAdmins()
 

MorkoFFka

Пользователь
Регистрация
9 Июн 2017
Сообщения
27
Симпатии
4
Пол
Мужской
MorkoFFka, может так ?
bool:OnServerAdmins()
Код:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// ArrStopCommands.sma
//
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(29 -- 30) : warning 213: tag mismatch
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(40) : warning 213: tag mismatch
// D:\╨рсюўшщ ёЄюы\scripting\ArrStopCommands.sma(43) : warning 213: tag mismatch
// Header size:            256 bytes
// Code size:              676 bytes
// Data size:              440 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   17756 bytes
//
// 3 Warnings.
// Done.
//
// Compilation Time: 0,28 sec
// ----------------------------------------

Press enter to exit ...
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
863
Симпатии
532
Предупреждения
15
Пол
Мужской
MorkoFFka, Опечатка. убрать вообще bool: и оставь только OnServerAdmins()
 

MorkoFFka

Пользователь
Регистрация
9 Июн 2017
Сообщения
27
Симпатии
4
Пол
Мужской
От души всем кто помог!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу