19.12.2014, 13:53
(
Последний раз редактировалось kloning1; 19.12.2014 в 14:25.
)
Hello I have a problem with logging in, if I signed up after the 2nd time I enter the account says that the password is wrong ..
thanks before i need your help
Код:
stock ShowMainMenuDialog(playerid, frame) { new titlestring[64]; new string[256]; switch(frame) { case 1: // login { format(titlestring, sizeof(titlestring), "{FFFFFF}.:- {3399FF}Retard Gamers Drifters - {FFFFFF}Login -:."); format(string, sizeof(string), "{FFFFFF}Akun ini sudah terdaftar, silahkan login dengan mengetikkan {40FF00}password{ffffff} Anda di bawah ini, \nAnda memiliki {40FF00}tiga kesempatan{ffffff} untuk memasukkan password yang benar - jika tidak Anda akan ditendang"); ShowPlayerDialog(playerid,MAINMENU,DIALOG_STYLE_PASSWORD,titlestring,string,"Login","Exit"); } case 2: // register { format(titlestring, sizeof(titlestring), "{FFFFFF}.:- {3399FF}Retard Gamers Drifters - {FFFFFF}Register -:."); format(string, sizeof(string), "{FFFFFF}Akun ini tidak terdaftar, silahkan register dengan mengetikkan {FF0000}password{ffffff} yang Anda inginkan di bawah ini!:"); ShowPlayerDialog(playerid,MAINMENU2,DIALOG_STYLE_PASSWORD,titlestring,string,"Register","Exit"); } case 3: // fail login { format(titlestring, sizeof(titlestring), "{FFFFFF}.:- {3399FF}Retard Gamers Drifters - {FFFFFF}Login -:."); format(string, sizeof(string), "{FFFFFF}Akun ini sudah terdaftar, silahkan login dengan mengetikkan {40FF00}password{ffffff} Anda di bawah ini, \nAnda memiliki {40FF00}tiga kesempatan{ffffff} untuk memasukkan password yang benar - jika tidak Anda akan ditendang ({FF0000} Warning %d/3)", gPlayerFailLogin[playerid]); ShowPlayerDialog(playerid,MAINMENU,DIALOG_STYLE_PASSWORD,titlestring,string,"Login","Exit"); } } } public OnPlayerConnect(playerid) { if(doesAccountExist(playername)) { ShowMainMenuDialog(playerid, 1); } else { if(strfind( playername, "server", true) != -1 || strfind( playername, "memek", true) != -1 || strfind( playername, "kontol", true) != -1 || strfind( playername, "cacad", true) != -1 || strfind( playername, "jamban", true) != -1 || strfind( playername, "asu", true) != -1 || strfind( playername, "admin", true) != -1 || strfind( playername, "admin", true) != -1 || strfind( playername, "ngentot", true) != -1 || strfind( playername, "cabe", true) != -1 ) { SCME(playerid, COLOR_GREY, "SERVER: Pada nama anda terdeteksi kata yang dilarang memasuki server."); } else { ShowMainMenuDialog(playerid, 2); } } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == MAINMENU || dialogid == MAINMENU2) { if(dialogid == MAINMENU) { if( response == 0 ) { SCME(playerid, COLOR_RED, "SERVER: You have been kicked out automatically."); Kick(playerid); } else { if(strlen(inputtext)) { new tmppass[64]; strmid(tmppass, inputtext, 0, strlen(inputtext), 255); Encrypt(tmppass); OnPlayerLoginExe(playerid,tmppass); // tmppass } else { if(gPlayerFailLogin[playerid] == 2) { SendClientMessage(playerid, COLOR_WHITE, "Wrong password, you have been kicked out automatically."); Kick(playerid); } ShowMainMenuDialog(playerid, 1); } } } if(dialogid == MAINMENU2) { if(strlen(inputtext)) { new sendername[MAX_PLAYER_NAME]; GetPlayerName(playerid, sendername, sizeof(sendername)); if(doesAccountExist(sendername)) { SCME(playerid, COLOR_YELLOW, "That username is already taken, please choose a different one."); return 1; } new tmppass[64]; strmid(tmppass, inputtext, 0, strlen(inputtext), 255); Encrypt(tmppass); OnPlayerRegisterEx(playerid,tmppass); } } } return 1; } forward OnPlayerRegisterEx(playerid, password[]); public OnPlayerRegisterEx(playerid, password[]) { if(IsPlayerConnected(playerid)) { new string3[32]; new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); format(string3, sizeof(string3), "users/%s.ini", playername3); new File:hFile = fopen(string3, io_write); if (hFile) { strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255); // so long, i not copy fclose(hFile); } } return 1; } forward OnPlayerLoginExe(playerid,password[]); public OnPlayerLoginExe(playerid,password[]) { new string[512], playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername2, sizeof(playername2)); format(string, sizeof(string), "users/%s.ini", playername2); new File:UserFile = fopen(string, io_read); if(UserFile) { new PassData[256]; new keytmp[256], valtmp[256]; fread(UserFile , PassData , sizeof(PassData)); keytmp = ini_GetKey(PassData); if(strcmp(keytmp, "Key", true ) == 0 ) { valtmp = ini_GetValue(PassData); strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255); } if(strfind(PlayerInfo[playerid][pKey], "\r", true) != -1) { format(string, sizeof(string), "Warning: \\r found in player %s's password. Removing now. Password Before: %s", GetPlayerNameEx(playerid), PlayerInfo[playerid][pKey]); Log("logs/password.log", string); new pos = strfind( PlayerInfo[playerid][pKey], "\r", true); strdel(PlayerInfo[playerid][pKey], pos, pos+2); format(string, sizeof(string), "%s's Password After: %s (Note these passwords are encrypted)", GetPlayerNameEx(playerid), PlayerInfo[playerid][pKey]); Log("logs/password.log", string); } if(strcmp(PlayerInfo[playerid][pKey],password,true) == 0) // i think ! this error :( { new key[ 256 ] , val[ 256 ]; new Data[ 256 ]; while(fread(UserFile , Data , sizeof(Data))) { key = ini_GetKey(Data); // soo long ~ i not copy } fclose(UserFile); } else { ShowMainMenuDialog(playerid, 3); gPlayerFailLogin[playerid] += 1; if(gPlayerFailLogin[playerid] == 2) { SendClientMessage(playerid, COLOR_WHITE, "Wrong password, you have been kicked out automatically."); Kick(playerid); } return 1; } gPlayerLogin[playerid] = 1; SpawnPlayer(playerid); } return 1; }