Offline |
|
|
Csatlakozott:2013.01.15. 19:04 Hozzászólások:407 Megköszönt másnak: 17 alkalommal Megköszönték neki: 176 alkalommal
|
Tessék Ez az első nagyobb pluginom amit így tudtam megcsinálni. Tudnivalók:A loginok a configs/login/login.ini filebe írd, ugyanúgy mint az amx_loginnál csak annyi külömbséggel, hogy az amx_loginnál a configs/amx_login mappában van a login.ini file itt pedig csak simán a login mappában van!Mikor a játékos beírja, hogy /login akkor ki jön egy menü ami így néz ki: 1. Felhasználónév: 2. Jelszó: 3. Bejelentkezés Ha kiválasztja a felhasználónév menüpontot akkor kinyílik neki egy message ablak ahova be kell, hogy írja a felhasználónevét, ha beírta és megnyomja az entert akkor becsukódik az ablak és a menüben a Felhasználónév után fogja írna amit beírt. Ugyan így a jelszónál is. Ha megadta a felhasználónevet és a jelszót akkor rányom a 3. menüpontra a Bejelentkezésre és akkor ha mindent jól adott meg akkor bejelentkezik az adminjába. Ha viszont nem jól írta be a jelszót vagy a felhasználónevet akkor figyelmezteti a játékost hogy rosszul írta be a jelszót vagy a felhasználónevet, annyiszor figyelmezteti a játékost ahányra van állítva a cvar (max_figyelmeztetes) alap 3 és az utólsó figyelmeztetés után bannolja 5 percre a playert. Van benne még 1 parancs a /logout amivel ki tudsz jelentkezni az adminból. #include <amxmodx> #include <amxmisc> new argfelh[33][100], argjelsz[33][100]; new figyelmeztetes[33] new g_maxfigyelmeztetes public plugin_init() { register_plugin("Admin Login","2.0","demon & James Romeril") register_clcmd("say /login", "LoginMenu") register_clcmd("say_team /login", "LoginMenu") register_clcmd("say /logout", "logout") register_clcmd("say_team /logout", "logout") g_maxfigyelmeztetes = register_cvar("max_figyelmeztetes", "3") register_clcmd("FELHASZNALONEV", "User") register_clcmd("JELSZO", "Password") } public LoginMenu(id) { new szText[128]; new menu = menu_create("\yAdmin bejelentkezĂ©s:", "menu_handler") formatex(szText, charsmax(szText), "\wFelhasználĂłnĂ©v:\r %s", argfelh[id]) menu_additem(menu, szText, "1", 0); formatex(szText, charsmax(szText), "\wJelszĂł:\r %s", argjelsz[id]) menu_additem(menu, szText, "2", 0); menu_additem(menu, "\wBejelentkezĂ©s", "3", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); } public menu_handler(id, menu, item, level, cid) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } set_hudmessage(255, 0, 0, -0.46, -0.80, 1, 6.0, 3.0) show_hudmessage(id, "Szia! Ha loginos adminod van,ird be a loginodat!") new data[6], szName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); new key = str_to_num(data); switch(key) { case 1: { client_cmd(id, "messagemode FELHASZNALONEV") LoginMenu(id); } case 2: { client_cmd(id, "messagemode JELSZO") LoginMenu(id); } case 3: { new usercfg[64] new line = 0 new flags new strflags[32] new linetext[255], linetextlength new felh[32], jelsz[32] if((argfelh[id][0] > 0)&&(argjelsz[id][0] > 0)) { get_customdir(usercfg, 63) format(usercfg, 63, "%s/login/login.ini", usercfg) if (file_exists(usercfg)) { while ((line = read_file(usercfg, line, linetext, 256, linetextlength))) { if(linetext[0] == ';') { continue } parse(linetext, felh, 31, jelsz, 31, strflags, 31) flags = read_flags(strflags) if((equal(felh, argfelh[id]))&&(equal(jelsz, argjelsz[id]))) { set_user_flags(id, flags) new text[128] format(text, 128, "!gSikeresen bejelentkeztĂ©l, jogaid: !y%s!g.", strflags) print_color(id, text) return PLUGIN_HANDLED } } if(figyelmeztetes[id] < get_pcvar_num(g_maxfigyelmeztetes)) { figyelmeztetes[id]++ print_color(id, "!gRossz felhasználĂłnĂ©v Ă©s/vagy jelszĂł, figyelmeztetĂ©s: !t%d!g/!t%d!g, maximum figyelmeztetĂ©s után !tbann!g jár!", figyelmeztetes[id], get_pcvar_num(g_maxfigyelmeztetes)) } if(figyelmeztetes[id] == get_pcvar_num(g_maxfigyelmeztetes)) { server_cmd("amx_ban ^"#%d^" ^"5^" ^"%d figyelmeztetes, hogy rossz felhasznalonev es/vagy jelszo!^"",get_user_userid(id), figyelmeztetes[id]) return PLUGIN_HANDLED } LoginMenu(id) return PLUGIN_HANDLED; } } return PLUGIN_HANDLED } } menu_destroy(menu); return PLUGIN_HANDLED; } public User(id){ read_args(argfelh[id], charsmax(argfelh)); remove_quotes(argfelh[id]); LoginMenu(id); } public Password(id){ read_args(argjelsz[id], charsmax(argjelsz)); remove_quotes(argjelsz[id]); LoginMenu(id); } public logout(id) { remove_user_flags(id, -1) print_color(id, "!gKijelentkeztĂ©l az adminbĂłl") return PLUGIN_HANDLED } stock print_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]) write_string(msg) message_end() } } } return PLUGIN_HANDLED }
A hozzászólást 1 alkalommal szerkesztették, utoljára demon 2013.09.15. 09:53-kor.
|
|