Member
Join Date: Jan 2022
Location: Palestine
|
01-27-2022
, 15:22
Requst Plugin
|
#1
|
Hello guys , hope all are well !
i want requst plugin called "Admin login system"
it work like when user get admin he will join the server noramlly without type "setinfo _pw" on console
but befor he choose team or join the macth he will get black screen and have on topleft "Type_password :" and if the user did not type the password correctly on 30 sec [OR] he typed it 3 times mistakly he will get kick
i have the amxx file of the plugin which i need and i did decompile by lysis for it , so i hope these codes help u to make the sma file of the plugin and ready to compile without errors .
here the decompiled amxx code :
PHP Code:
new String:g_szFile[64] = "login_users.ini";
new Trie:g_tDatabase;
new g_SzAuth[33][2][34];
new g_password[33][32];
new g_Acces[33];
new g_prefix[33][32];
new g_shouldlogin[33];
new g_timer[33];
get_configsdir(name[], len)
{
return get_localinfo("amxx_configsdir", name, len);
}
public plugin_init()
{
register_plugin("Admin Login", "1.6", "M@chine");
register_message(get_user_msgid("VGUIMenu"), "VGUIMenu");
register_message(get_user_msgid("MOTD"), "message_MOTD");
register_clcmd("jointeam", "HookTeamCommands", -1, 18956, -1);
register_clcmd("chooseteam", "HookTeamCommands", -1, 18956, -1);
register_clcmd("ENTER_PASSWORD", "cmd_admin_pass", -1, 18956, -1);
register_clcmd("say test", "cmd_admin_test", -1, 18956, -1);
Load_Users();
return 0;
}
Load_Users()
{
new configsDir[64];
get_configsdir(configsDir, 63);
formatex(configsDir, "", "%s/%s", configsDir, g_szFile);
new File = fopen(configsDir, "rt");
if (File)
{
g_tDatabase = TrieCreate();
new Pdata[512];
new aData[130];
while (!feof(File))
{
fgets(File, Pdata, 511);
trim(Pdata);
new var1;
if (!(Pdata[0] == 59 || Pdata[0] == 47 || Pdata[0] == 92 || !Pdata[0] || Pdata[0]))
{
if (!(3 > parse(Pdata, aData, 33, aData[34], 31, aData[66], 31, aData[98], 31)))
{
server_print("file data: %s, %s, %s, %s, %d", aData, aData[34], aData[66], aData[98], 130);
TrieSetArray(g_tDatabase, aData, aData, 130);
arrayset(aData, "amxx_configsdir", 130);
}
}
}
fclose(File);
}
else
{
set_fail_state("Couldn't load admins file");
}
return 0;
}
public plugin_end()
{
TrieDestroy(g_tDatabase);
return 0;
}
public client_disconnected(id)
{
remove_task(id + 849, "amxx_configsdir");
g_shouldlogin[id] = 0;
g_password[id][0] = 0;
g_Acces[id] = 0;
g_prefix[id][0] = 0;
return 0;
}
public Task_Login_(taskid)
{
new id = taskid + -849;
new var1 = g_timer[id];
var1--;
if (!var1)
{
server_cmd("kick #%d \"Sorry you where kicker for not entering the password\"", get_user_userid(id));
}
client_print(id, 4, "You Have %d Second(s) To Login !", g_timer[id]);
remove_task(id, "amxx_configsdir");
return 0;
}
public cmd_admin_pass(id)
{
if (g_shouldlogin[id])
{
static SzArgs[32];
read_args(SzArgs, 31);
remove_quotes(SzArgs);
new var1;
if (!SzArgs[0] || !equal(SzArgs, g_password[id], "amxx_configsdir"))
{
client_print(id, "", "Invalid. password !");
client_cmd(id, "messagemode ENTER_PASSWORD");
return 1;
}
g_shouldlogin[id] = 0;
remove_task(id + 849, "amxx_configsdir");
set_user_flags(id, read_flags(g_Acces[id]), "amxx_configsdir");
client_print(id, "", "You have loged in. Enjoy !");
}
return 1;
}
public cmd_admin_test(id)
{
client_print(id, "", "%s, %s", g_SzAuth[id][0], g_SzAuth[id][1]);
return 0;
}
public HookTeamCommands(id)
{
if (g_shouldlogin[id])
{
return 1;
}
return 0;
}
public VGUIMenu(msgid, dest, id)
{
if (get_msg_arg_int(1) != 2)
{
return 0;
}
if (g_shouldlogin[id])
{
return 1;
}
return 0;
}
public message_MOTD(msgid, dest, id)
{
get_user_authid(id, g_SzAuth[id][0], 33);
get_user_name(id, g_SzAuth[id][1], 33);
new aData[130];
new var1;
if (TrieGetArray(g_tDatabase, g_SzAuth[id][0], aData, 130) || TrieGetArray(g_tDatabase, g_SzAuth[id][1], aData, 130))
{
g_Acces[id] = read_flags(aData[66]);
g_shouldlogin[id] = 1;
g_timer[id] = 30;
set_task(1065353216, "Task_Login_", id + 849, 20444, "amxx_configsdir", 20436, g_timer[id]);
}
if (g_shouldlogin[id])
{
if (get_msg_arg_int(1) == 1)
{
client_cmd(id, "messagemode ENTER_PASSWORD");
}
return 1;
}
return 0;
}
|
|