PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <pug_menu>
#include <pug_const>
#include <pug_stocks>
new const plugin_author[] = "Twilight Suzuka"
new const plugin_name[] = "pug-KEYPAD"
public pug_keypad_menu;
public pug_cvar_keypad_key
public pug_cvar_keypad_num
public pug_cvar_keypad_admin
public plugin_init()
{
register_plugin(plugin_name,AMXX_VERSION_STR,plugin_author);
register_dictionary("pug.txt")
register_dictionary("pug_keypad.txt")
pug_cvar_keypad_key = register_cvar("pug_keypad_key","md5_hash")
pug_cvar_keypad_num = register_cvar("pug_keypad_num","2133")
pug_cvar_keypad_admin = register_cvar("pug_keypad_admin","abcdefghijklmnopqrstu")
register_pug_clcmd("keypad","cmd_keypad",_,"Torna um jogador Admin")
//parse_header("BOE-E",pug_header,5)
pug_keypad_menu = menu_create("Codigo do Keypad:","keypad_handle")
menu_additem(pug_keypad_menu,"One","1")
menu_additem(pug_keypad_menu,"Two","2")
menu_additem(pug_keypad_menu,"Three","3")
menu_additem(pug_keypad_menu,"Four","4")
menu_additem(pug_keypad_menu,"Five","5")
menu_additem(pug_keypad_menu,"Six","6")
menu_additem(pug_keypad_menu,"Seven","7")
menu_additem(pug_keypad_menu,"Eight","8")
menu_additem(pug_keypad_menu,"Nine","9")
menu_additem(pug_keypad_menu,"Zero","0")
//menu_additem(pug_keypad_menu,"Reset/Cancel","0")
menu_setprop(pug_keypad_menu,MPROP_EXIT,MEXIT_NEVER)
}
#define KEYPAD_MAX 10
new pug_keypad_store[33][KEYPAD_MAX]
new pug_keypad_mykey[33]
public cmd_keypad(id,level,cid)
{
if (!get_pcvar_num(pug_cvar_keypad_num) ) return pug_msg_tmp_empty(id,"PUG_CMD_NOTALLOWED")
else if(read_argc() > 1)
{
static keypad_store[100]
read_argv(1,keypad_store,99)
}
else keypad_start(id)
return PLUGIN_HANDLED;
}
public keypad_start(id)
{
arrayset(pug_keypad_store[id],0,KEYPAD_MAX)
pug_keypad_mykey[id] = 0;
pug_display_menu_single(id,pug_keypad_menu)
client_print(id,print_chat,"%s %L",pug_header, id, "PUG_KEYPAD_START");
}
public keypad_handle(id, menu, item)
{
if( item < 0 ) return PLUGIN_CONTINUE;
static access, callback
static cmd[3], cmdname[32]
menu_item_getinfo(menu, item, access, cmd,2,cmdname,31, callback);
pug_keypad_store[id][pug_keypad_mykey[id]] = str_to_num(cmd);
pug_keypad_mykey[id]++
if(pug_keypad_mykey[id] >= get_pcvar_num(pug_cvar_keypad_num) ) keypad_end(id)
else pug_display_menu_single(id,pug_keypad_menu)
return PLUGIN_HANDLED;
}
public keypad_end(id)
{
static arraystr[KEYPAD_MAX * 3]
arraystr[0] = '^0'
new check = pug_keypad_mykey[id]
for(new i = 0; i < check; ++i)
{
format(arraystr,KEYPAD_MAX * 3,"%s%d",arraystr,pug_keypad_store[id][i])
}
keypad_check_input(id,arraystr)
}
stock keypad_check_input(id,str[])
{
static md5_hash[34], md5_hash2[34];
md5(str,md5_hash)
get_pcvar_string(pug_cvar_keypad_key,md5_hash2,33)
if(equal(md5_hash,md5_hash2)) keypad_success(id)
else keypad_failure(id)
arrayset(pug_keypad_store[id],0,KEYPAD_MAX)
pug_keypad_mykey[id] = 0;
}
stock keypad_success(id)
{
static admin_pawaa[33]
get_pcvar_string(pug_cvar_keypad_admin,admin_pawaa,32)
client_print(id,print_chat,"%s %L",pug_header, id, "PUG_KEYPAD_SUCCESS",admin_pawaa);
new pawaa = read_flags ( admin_pawaa )
set_user_flags(id,pawaa)
}
stock keypad_failure(id)
{
client_print(id,print_chat,"%s %L",pug_header, id, "PUG_KEYPAD_FAILURE");
}