RSSy MYGO.pl Opublikowano Styczeń 27, 2022 o 20:22 RSSy Udostępnij Opublikowano Styczeń 27, 2022 o 20:22 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; } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi