13.02.2016, 20:07
Hello all!
I've made a simple register/login system.No errors works.The problem is when I go in-game to test it it asks for me to register,ok.I enter my password and leave the game.When I come back to ask for login, ok.I enter password and here's were it goes wrong,I enter my pass and it says incorrect password.I asked my friend to join and it asked him for a Login even doh he just came?I managed to edit something and get it to work but it still doesn't let me log in.When I go in scriptfiles it has my acc saved but where it says password=10572575, some random numbers?!?
Here is the code:
If anyone has any ideas it would be great!
I've made a simple register/login system.No errors works.The problem is when I go in-game to test it it asks for me to register,ok.I enter my password and leave the game.When I come back to ask for login, ok.I enter password and here's were it goes wrong,I enter my pass and it says incorrect password.I asked my friend to join and it asked him for a Login even doh he just came?I managed to edit something and get it to work but it still doesn't let me log in.When I go in scriptfiles it has my acc saved but where it says password=10572575, some random numbers?!?
Here is the code:
Код:
#include <a_samp> #include <YSI\y_ini> #include <zcmd> #include <sscanf2> #define DIALOG_REGISTER 1 #define DIALOG_LOGIN 2 #define COLOR_YELLOW 0xFFFF00AA #define COLOR_BLUE 0x0000BBAA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_LIGTHBLUE 0x3300FFAA #define COLOR_WHITE "(FFFFFF)" #define COLOR_RED "(F81414)" #define COLOR_GREEN "(00FF22)" #define COLOR_LIGHTBLUE "(00CED1)" #define PATH "/accounts/&s.ini" #pragma tabsize 0 enum pInfo { pPass, pCash, pAdmin, pScore, pBankMoney, pBanned } new PlayerInfo[MAX_PLAYERS][pInfo]; forward LoadUser_data(playerid,name[],value[]); public LoadUser_data(playerid,name[],value[]) { INI_Int("Password",PlayerInfo[playerid] [pPass]); INI_Int("Cash",PlayerInfo[playerid] [pCash]); INI_Int("Admin",PlayerInfo[playerid] [pAdmin]); INI_Int("Score",PlayerInfo[playerid] [pScore]); INI_Int("BankMoney",PlayerInfo[playerid] [pBankMoney]); INI_Int("Banned",PlayerInfo[playerid] [pBanned]); return 1; } stock UserPath(playerid) { new string[128], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername,sizeof(playername)); format(string,sizeof(string),PATH,playername); return string; } stock udb_hash(buf[]) { new length=strlen(buf); new s1 = 1; new s2 = 0; new n; for (n=0; n<length; n++) { s1 = (s1 + buf[n]) % 65521; s2 = (s2 + s1) % 65521; } return (s2 << 16) + s1; } main() { print("\n----------------------------------"); print("Something stupid"); print("----------------------------------\n"); } public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Blank Script"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerConnect(playerid) { if(fexist(UserPath(playerid))) { INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid); ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login:","Enter your password to login in your account.","Login","Exit"); } else { ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register:","Enter a password to register your account.","Register","Exit"); } return 1; } public OnPlayerDisconnect(playerid, reason) { new INI:File = INI_Open(UserPath(playerid)); INI_SetTag(File,"data"); INI_WriteInt(File,"Cash",GetPlayerMoney(playerid)); INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]); INI_WriteInt(File,"Score",GetPlayerScore(playerid)); INI_WriteInt(File,"BankMoney",PlayerInfo[playerid][pBankMoney]); INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]); INI_Close(File); return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/mycommand", cmdtext, true, 10) == 0) { // Do something here return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_REGISTER: { if(!response) return Kick(playerid); if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register:","Password invalid, type new password.","Register","Exit"); new INI:File = INI_Open(UserPath(playerid)); INI_SetTag(File,"data"); INI_WriteInt(File,"Passowrd",udb_hash(inputtext)); INI_WriteInt(File,"Cash",0); INI_WriteInt(File,"Admin",0); INI_WriteInt(File,"Score",0); INI_WriteInt(File,"Bankmoney",0); INI_WriteInt(File,"Banned",0); INI_Close(File); } } case DIALOG_LOGIN: { if(!response) return Kick(playerid); if(response) { if(udb_hash(inputtext) == PlayerInfo[playerid][pPass]) { INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid); GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]); SetPlayerScore(playerid,PlayerInfo[playerid][pScore]); SendClientMessage(playerid,-1,"You'we successfuly logged in to your account"); } else { ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login:","Password inncorrect, please try again.","Login","Exit"); } } } } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; }