[HELP] The Stats wont saved!!
#1

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
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;
}
i have create the script files folder and i have the dini.inc can someone tell me what is the problem?
Reply
#2

Seems like you doesnt have any folder it can write and save.
Reply
#3

your missing folders for it to save
Reply
#4

read it bro -.- :
i have create the script files folder and i have the dini.inc can someone tell me what is the problem?
Reply
#5

I've already told you, you need to make it save in the folder in /register and /login
Reply
#6

Use [code] instead of [quote] like this
Код:
Here your code
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)