public RegMenu(id)
{
new String[128], Name[32];
format(String, 127, "%s %L", Prefix, LANG_SERVER, "RMMAIN");
new rMenu = menu_create(String, "rMenuHandler");
get_user_name(id, Name, 31);
format(String, 127, "%L", LANG_SERVER, "RMACCOUNT", Name);
menu_additem(rMenu, String, "0");
if(!Registered(id))
{
format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
menu_additem(rMenu, String, "1");
if(strlen(Password[id]) > 4)
{
format(String, 127, "%L", LANG_SERVER, "RMR");
menu_additem(rMenu, String, "2");
}
else
{
format(String, 127, "\d%L", LANG_SERVER, "RMR");
menu_additem(rMenu, String, "0");
}
}
else
{
if(!Loged[id])
{
format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
menu_additem(rMenu, String, "1");
if(equal(SavedPassword[id], Password[id]))
{
format(String, 127, "%L", LANG_SERVER, "RMLOGIN");
menu_additem(rMenu, String, "3");
}
else
{
format(String, 127, "\d%L", LANG_SERVER, "RMLOGIN");
menu_additem(rMenu, String, "0");
}
}
else
{
format(String, 127, "%L", LANG_SERVER, "RMLOGOUT");
menu_additem(rMenu, String, "-1");
}
}
menu_display(id, rMenu);
}
public rMenuHandler(id, gMenu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(gMenu);
return;
}
new data[9], name[64], Key;
new access, callback;
menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
Key = str_to_num(data);
if(Key == -1)
ToLogout(id);
if(Key == 0)
RegMenu(id);
if(Key == 1)
{
client_cmd(id, "messagemode Password");
RegMenu(id);
}
if(Key == 2)
{
print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSUCCESS", Password[id]);
Register(id, Password[id]);
copy(SavedPassword[id], 31, Password[id]);
}
if(Key == 3)
{
if(equal(SavedPassword[id], Password[id])) {
Loged[id] = true;
print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGIN");
Menu(id);
}
}
}
public ToLogout(id)
{
if(Loged[id])
{
Loged[id] = false;
Password[id] = "";
print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGOUT");
}
}
public PlayerPassword(id)
{
new Data[32];
read_args(Data, 31);
remove_quotes(Data);
if(strlen(Data) < 5)
{
print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSHORT");
client_cmd(id, "messagemode Password");
return PLUGIN_HANDLED;
}
if(Loged[id])
{
return PLUGIN_HANDLED;
}
copy(Password[id], 31, Data);
RegMenu(id);
return PLUGIN_CONTINUE;
}
public NameChange(id)
{
if(!is_user_connected(id))
return FMRES_IGNORED;
new OldName[32], NewName[32], Name[32];
get_user_name(id, Name, 31);
pev(id, pev_netname, OldName, charsmax(OldName));
if(OldName[0])
{
get_user_info(id, "name", NewName, charsmax(NewName));
if(!equal(OldName, NewName))
{
set_user_info(id, "name", OldName);
print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERNAMECHANGE");
return FMRES_HANDLED;
}
}
return FMRES_IGNORED;
}
stock bool:ValidMdl(Mdl[])
{
if(containi(Mdl, ".mdl") != -1)
{
return true;
}
return false;
}
stock bool:Registered(id)
{
new pFile, Data[2][32], Line[64], Name[32];
get_user_name(id, Name, 31);
pFile = fopen(RegisterFile, "rt");
while(!feof(pFile))
{
fgets(pFile, Line, 63);
parse(Line, Data[0], 31, Data[1], 31);
if(equal(Data[0], Name))
{
copy(SavedPassword[id], 31, Data[1]);
return true;
}
}
fclose(pFile);
return false;
}
stock Register(id, const rSavedPassword[])
{
new pFile, Line[64], Name[32];
get_user_name(id, Name, 31);
pFile = fopen(RegisterFile, "at+");
format(Line, 63, "^n^"%s^" ^"%s^"", Name, rSavedPassword);
write_file(RegisterFile, Line);
fclose(pFile);
}