Page 1 of 1

Admin Check.

Posted: 2014 Dec 24 11:25
by ArtHa123

Code: Select all

#include <amxmodx> #define PLUGIN "ADMIN CHECK"#define VERSION "1.0"#define AUTHOR "ArtHa" new test1, test2 public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)    register_clcmd("say", "handle_say")    register_clcmd("say_team", "handle_say")} public handle_say(id){    static said[64]    read_args(said, charsmax(said))        if( ( containi(said, "/priziuretojai") != -1 || contain(said, "/priziuretojos") != -1 || contain(said, "/savininkai") != -1 || contain(said, "/savininkas") != -1 ) )        priziuretojai(id)} public client_authorized(id){    set_task(3.0,"client_is_auth",id)} public client_is_auth(id){    new szIP[40];    get_user_ip ( id, szIP, charsmax(szIP) , 1 );    new name[32]    get_user_name ( id, name, 31 );        if( equali( szIP, "88.88.88.88") )    {        test1 = true    }        if( equali( name, "Testas") )    {        test2 = true    }} public priziuretojai(id){    new menu = menu_create("\r[\y Priziuretojai \r]", "menu_handler");    if(test1)    {        menu_additem(menu, "\wTestalas\y Online", "1", 0);    }    else if(!test1)    {        menu_additem(menu, "\wTestalas\r Offline", "1", 0);    }    menu_addtext(menu, "", 0);    menu_addtext(menu, "\r[\y ------- \r]", 0);    menu_addtext(menu, "", 0);    if(test2)    {        menu_additem(menu, "\wTestaliukas\y Online", "2", 0);    }    else if(!test2)    {        menu_additem(menu, "\wTestalyte\r Offline", "2", 0);    }     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, menu, 0);} public menu_handler(id, menu, item){    if( item == MENU_EXIT )    {        menu_destroy(menu);        return PLUGIN_HANDLED;    }       new data[6], iName[64];    new acess, callback;       menu_item_getinfo(menu, item, acess, data,6, iName, 63, callback);    new key = str_to_num(data);        switch(key)    {        case 1:        {            client_print_color(id, print_chat, "^3**^4INFO^3**^1 Vardas:^3 Test*^1, Skype:^3 Testas^1, Gmail:^3 [email protected]" );            menu_destroy(menu);            return PLUGIN_HANDLED;        }                case 2:        {             client_print_color(id, print_chat, "^3**^4INFO^3**^1 Vardas:^3 Test*^1, Skype:^3 Testas^1, Gmail:^3 [email protected]" );            menu_destroy(menu);            return PLUGIN_HANDLED;        }    }    menu_destroy(menu);    return PLUGIN_HANDLED;}
Viskas būtų kaip ir normaliai, tik prisijungus padaroma true, o atsijungus, true išlieka, bandžiau su client_disconnect padaryti, nesigavo. P.s. bandžiau taip:

Code: Select all

public client_disconnect(id){    new szIP[40];    get_user_ip ( id, szIP, charsmax(szIP) , 1 );    new name[32]    get_user_name ( id, name, 31 );        if( equali( szIP, "88.88.88.88") )    {        test1 = false    }        if( equali( name, "Testas") )    {        test2 = false    }}

Re: Admin Check.

Posted: 2014 Dec 24 12:57
by InvIs2
Neesu tikras dėl šito, bet ne visada iškarto užfiksuoja atsijungimą. ?

Šiaip, geriausia viską tikrinti kai žaidėjas iškviečia meniu, tada tikrai nebus problemų. Ir pagal mane, iškviestos komandos tikrinimą gali sutrumpinti. (/priziuretojai(-os).

Code: Select all

if(containi(said, "/priz"))
Turėtų juk reaguoti ir į vieną ir į kitą komandą.