// Include pretty much 90% of YSI in one fell swoop! #include "y_inline" loadtext core[ysi_players], core[ysi_extras], core[ysi_dialog]; YCMD:login(playerid, params[], help) { if (help) { Text_Send(playerid, $YSI_LOGIN_HELP); } else { if (Player_IsLoggedIn(playerid)) { Text_Send(playerid, $YSI_LOGIN_ALREADY); return 1; } if (!isnull(params)) { Player_TryLogin(playerid, params); return 1; } inline Response(pid, dialogid, response, listitem, string:text0[]) { #pragma unused pid, dialogid, listitem if (response) { Player_TryLogin(playerid, text0); } } Text_PasswordBox(playerid, using inline Response, $YSI_EXTRA_LOGIN_TITLE, $YSI_EXTRA_LOGIN_PROMPT, $DIALOG_OK, $DIALOG_CANCEL); } return 1; } YCMD:register(playerid, params[], help) { if (help) { Text_Send(playerid, $YSI_REGISTER_HELP); } else { if (Player_IsLoggedIn(playerid)) { Text_Send(playerid, $YSI_LOGIN_ALREADY); return 1; } new pass[32]; if (!isnull(params)) { // Store the password localy in the function. strcpy(pass, params); inline Response2(pid2, dialogid2, response2, listitem2, string:text2[]) { #pragma unused listitem2, dialogid2, pid2 if (response2) { if (strcmp(pass, text2)) { Text_Send(playerid, $YSI_EXTRA_REGISTER_MISMATCH); } else { Player_TryRegister(playerid, text2); } } } Text_PasswordBox(playerid, using inline Response2, $YSI_EXTRA_REGISTER_TITLE, $YSI_EXTRA_CONFIRM_PROMPT, $DIALOG_OK, $DIALOG_CANCEL); return 1; } // Didn't type any text, ask for the password twice. inline Response1(pid1, dialogid1, response1, listitem1, string:text1[]) { #pragma unused listitem1, dialogid1, pid1 if (response1) { inline Response2(pid2, dialogid2, response2, listitem2, string:text2[]) { #pragma unused listitem2, dialogid2, pid2 if (response2) { if (strcmp(text1, text2)) { Text_Send(playerid, $YSI_EXTRA_REGISTER_MISMATCH); } else { Player_TryRegister(playerid, text2); } } } Text_PasswordBox(playerid, using inline Response2, $YSI_EXTRA_REGISTER_TITLE, $YSI_EXTRA_CONFIRM_PROMPT, $DIALOG_OK, $DIALOG_CANCEL); } } Text_PasswordBox(playerid, using inline Response1, $YSI_EXTRA_REGISTER_TITLE, $YSI_EXTRA_REGISTER_PROMPT, $DIALOG_OK, $DIALOG_CANCEL); } return 1; }