Официалният форум на iPlay.bg 

Този раздел е създаден специално за проблеми и въпроси за направата на плъгини или преработката на вече съществуващи кодове.
 #388864  от OciXCrom™
 пет апр 29, 2016 2:26 pm
Зависи за какъв плъгин става дума, как работи, какви функции използва и прочие. За да добавиш проверка за флаг, използвай следния код (долните примери са за флаг "q"):
Код: Избери всички
get_user_flags(id) & ADMIN_LEVEL_E
или
Код: Избери всички
get_user_flags(id) & read_flags("q") 
... за кодът да стане проверка, трябва да изглежда така:
Код: Избери всички
if(get_user_flags(id) & ADMIN_LEVEL_E)
{
    // ако играчът има въпросния флаг, този код ще се изпълни
}
else
{
    // ако играчът няма флага, този код е валиден
} 
... ако искаш да блокираш функцията ако играчът няма нужния флаг, използвай това:
Код: Избери всички
if(!(get_user_flags(id) & ADMIN_LEVEL_E))
    return PLUGIN_HANDLED
... всичко под return PLUGIN_HANDLED до края на функцията няма да се отчита. Можеш да добавиш и съобщение ако играчът няма флага:
Код: Избери всички
if(!(get_user_flags(id) & ADMIN_LEVEL_E))
{
    ColorChat(id, TEAM_COLOR, "Nqmash dostup do tazi komanda!")
    return PLUGIN_HANDLED
} 
 #388871  от OciXCrom™
 пет апр 29, 2016 3:45 pm
Намираш кода, който регистрира командата за отваряне на менюто с шапки:
Код: Избери всички
register_clcmd("say /hats", "Open_CostumeMenu")
... от този ред разбираме, че функцията, която отваря менюто е Open_CostumeMenu, съответно я намираме в кода:
Код: Избери всички
public Open_CostumeMenu(id) 
... в началото на функцията добавяме проверката за флаг, след проверката за is_user_connected:
Код: Избери всички
if(!(get_user_flags(id) & ADMIN_RESERVATION))
{
    ColorChat(id, TEAM_COLOR, "Nqmash dostup do tazi komanda!")
    return PLUGIN_HANDLED
} 
... в случая използваме return PLUGIN_HANDLED, щом не искаме командата (/hats) да се покаже в чата след като я напишеме. Ако използваме return PLUGIN_CONTINUE или само return, командата ще се покаже в чата.

Щом веднъж във функцията сме използвале return PLUGIN_HANDLED, трябва във всички останали return кодове в тази функция да добавим PLUGIN_HANDLED, в противен случай ще изникне грешка при компилация. Окончателният код трябва да изглежда така:
Код: Избери всички
public Open_CostumeMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED
    
    if(!(get_user_flags(id) & ADMIN_RESERVATION))
    {
        ColorChat(id, TEAM_COLOR, "Nqmash dostup do tazi komanda!")
        return PLUGIN_HANDLED
    }
    
    // останалите неща от функцията
}