23.04.2013, 13:19
i use DR_ADMIN Reg and login system but the score,death,kill and money are not saved! anyone know what happen with this?
here is the code
i have create the script files folder and i have the dini.inc can someone tell me what is the problem?
here is the code
Quote:
/* Register/Login System -=| Dr.Lozer |=- */ #include <a_samp> #include <dini> #define COLOR_GREEN 0x00FF00AA #define COLOR_RED 0xFF0000AA #define COLOR_BLUE 0x0048FDAA #define COLOR_GREY 0xC0BEBEAA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_BLACK 0x000000AA #define COLOR_YELLOW 0xCCFF00AA #define COLOR_LIGHTBLUE 0x00BAFFAA #define DIALOGID 4320 #define PLAYER_FILE "DR_ADMIN/Users/%s.ini" enum PlayerInfo { LoggedIn, Kills, Deaths, AdminLevel, }; new pInfo[MAX_PLAYERS][PlayerInfo]; public OnFilterScriptInit() { new Hour,Minute,Year,Month,Day; gettime(Hour,Minute); getdate(Year,Month,Day); print( "\n--------------------------------------"); print( " Register/Login System - LOADED"); printf(" - %d/%d/%d | %d:%d -",Day,Month,Year,Hour,Minute); print( "--------------------------------------\n"); return 1; } stock 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; } stock PlayerName(playerid) { new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, sizeof(pname)); return pname; } stock PlayerIp(playerid) { new ip[24]; GetPlayerIp(playerid, ip, sizeof(ip)); return ip; } public OnFilterScriptExit() { new Hour,Minute,Year,Month,Day; gettime(Hour,Minute); getdate(Year,Month,Day); print( "\n--------------------------------------"); print( " Register/Login System - UNLOADED"); printf(" - %d/%d/%d | %d:%d -",Day,Month,Year,Hour,Minute); print( "--------------------------------------\n"); return 1; } public OnPlayerConnect(playerid) { pInfo[playerid][Kills] = 0; pInfo[playerid][Deaths] = 0; pInfo[playerid][AdminLevel] = 0; pInfo[playerid][LoggedIn] = 0; new File[128],string[128]; format(File,sizeof(File),PLAYER_FILE,PlayerName(pl ayerid)); if(fexist(File)) { if(!strcmp(PlayerIp(playerid),dini_Get(File,"IP"), true)) { GivePlayerMoney(playerid, -GetPlayerMoney(playerid) + dini_Int(File,"Money")); SetPlayerScore(playerid, dini_Int(File,"Score")); pInfo[playerid][Kills] = dini_Int(File,"Kills"); pInfo[playerid][Deaths] = dini_Int(File,"Deaths"); pInfo[playerid][AdminLevel] = dini_Int(File,"AdminLevel"); pInfo[playerid][LoggedIn] = 1; format(string,128,"(Account) You have been loggedin automaticaly [IP-MATCH] {FFFFFF}[Money: $%d | Score: %d]",GetPlayerMoney(playerid),GetPlayerScore(playerid )); SendClientMessage(playerid, COLOR_GREEN,string); }else { ShowPlayerDialog(playerid, DIALOGID+2, DIALOG_STYLE_INPUT, "Login","Enter your password to login:","Login","Quit"); } }else { ShowPlayerDialog(playerid, DIALOGID+1, DIALOG_STYLE_INPUT, "Register","Enter password to register:","Register",""); } return 1; } public OnPlayerDisconnect(playerid, reason) { new File[128]; format(File,sizeof(File),PLAYER_FILE,PlayerName(pl ayerid)); if(pInfo[playerid][LoggedIn] == 1) { dini_IntSet(File,"Money",GetPlayerMoney(playerid)) ; dini_IntSet(File,"Score",GetPlayerScore(playerid)) ; dini_IntSet(File,"Kills",pInfo[playerid][Kills]); dini_IntSet(File,"Deaths",pInfo[playerid][Deaths]); } return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(killerid != INVALID_PLAYER_ID) { pInfo[playerid][Deaths] ++; pInfo[killerid][Kills] ++; } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (!strcmp("/changepass", cmdtext, true)) { if(pInfo[playerid][LoggedIn] == 1) { ShowPlayerDialog(playerid, DIALOGID+3, DIALOG_STYLE_INPUT, "Password Change","Enter your new password:","Change","Cancel"); return 1; }else return SendClientMessage(playerid, COLOR_RED, "You must be loggedin to use this command"); } if (!strcmp("/statsme", cmdtext, true)) { new string[128]; SendClientMessage(playerid, COLOR_WHITE, "You're Stats:"); format(string,128,"Money: $%d | Score: %d",GetPlayerMoney(playerid),GetPlayerScore(player id)); SendClientMessage(playerid, COLOR_GREEN, string); format(string,128,"Kills: %d | Deaths: %d",pInfo[playerid][Kills],pInfo[playerid][Deaths]); SendClientMessage(playerid, COLOR_GREEN, string); SendClientMessage(playerid, COLOR_WHITE, "**************"); return 1; } return 0; } public OnPlayerRequestSpawn(playerid) { /*if(pInfo[playerid][LoggedIn] == 0) { GameTextForPlayer(playerid, "~r~You must be loggedin~n~To Play",3000,3); return 0; }*/ return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new File[128],string[128]; format(File,sizeof(File),PLAYER_FILE,PlayerName(pl ayerid)); if(dialogid == DIALOGID+1) { if(strlen(inputtext) < 5) return ShowPlayerDialog(playerid, DIALOGID+1, DIALOG_STYLE_INPUT, "Register","Password length must be greater than 4 characters\n\nEnter password to register:","Register",""); dini_Create(File); dini_IntSet(File,"Password_Hash",hash(inputtext)); dini_Set(File,"IP",PlayerIp(playerid)); dini_IntSet(File,"Money",GetPlayerMoney(playerid)) ; dini_IntSet(File,"Score",GetPlayerScore(playerid)) ; dini_IntSet(File,"Kills",pInfo[playerid][Kills]); dini_IntSet(File,"Deaths",pInfo[playerid][Deaths]); dini_IntSet(File,"AdminLevel",pInfo[playerid][AdminLevel]); pInfo[playerid][LoggedIn] = 1; SendClientMessage(playerid, COLOR_GREEN, "(Account) You have registered. {FFFFFF}Enjoy the server"); } if(dialogid == DIALOGID+2) { if(dini_Int(File,"Password_Hash") == hash(inputtext)) { GivePlayerMoney(playerid, -GetPlayerMoney(playerid) + dini_Int(File,"Money")); SetPlayerScore(playerid, dini_Int(File,"Score")); pInfo[playerid][Kills] = dini_Int(File,"Kills"); pInfo[playerid][Deaths] = dini_Int(File,"Deaths"); pInfo[playerid][AdminLevel] = dini_Int(File,"AdminLevel"); pInfo[playerid][LoggedIn] = 1; dini_Set(File,"IP",PlayerIp(playerid)); format(string,128,"(Account) You have been loggedin. {FFFFFF}[Money: $%d | Score: %d]",GetPlayerMoney(playerid),GetPlayerScore(playerid )); SendClientMessage(playerid, COLOR_GREEN,string); }else { ShowPlayerDialog(playerid, DIALOGID+2, DIALOG_STYLE_INPUT, "Login","Incorrect Password. Try again\n\nEnter your password to login:","Login","Quit"); } } if(dialogid == DIALOGID+3) { if(strlen(inputtext) < 5) return ShowPlayerDialog(playerid, DIALOGID+3, DIALOG_STYLE_INPUT, "Password Change","Password length must be greater than 4 characters\n\nEnter your new password:","Change","Cancel"); dini_IntSet(File,"Password_Hash",hash(inputtext)); format(string,128,"(Account) You have successfuly changed your password {FFFFFF}\"%s\"",inputtext); SendClientMessage(playerid, COLOR_GREEN,string); return 1; } return 1; } |