Score problem
#1

Score just won't load or wont save i don't know where the problem is.
here is the enum
Код:
enum pInfo
{
    pPass,
    pCash,
    pAdmin,
    pKills,
    pDeaths,
	pScore,
	pVIP
}
Here is stock for giving score
Код:
stock GivePlayerScore(playerid, score)
{
	GivePlayerScore(playerid, GetPlayerScore(playerid) + score);
	return 1;
}
Here is LoadUser_data
Код:
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("Kills",PlayerInfo[playerid][pKills]);
    INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Int("Score",PlayerInfo[playerid][pScore]);
    INI_Int("VIP",PlayerInfo[playerid][pVIP]);
 	return 1;
}
Hre is on player disconnect
Код:
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,"Kills",PlayerInfo[playerid][pKills]);
	INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
	INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
	INI_WriteInt(File,"VIP",PlayerInfo[playerid][pVIP]);
	INI_Close(File);
        return 1;
}
Hre is OnPlayerSpawn
Код:
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
This is OnDialogResponse
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return SPD(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""COLOR_BELA"Registracja...",""COLOR_CRVENA"Ukucali ste neispravnu sifru.\n"COLOR_BELA"Ukucajte novu sifru da se registrujete.","Register","Izlaz");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"Data");
                INI_WriteInt(File,"Password",udb_hash(inputtext));
                INI_WriteInt(File,"Cash",0);
                INI_WriteInt(File,"Admin",0);
                INI_WriteInt(File,"Kills",0);
                INI_WriteInt(File,"Deaths",0);
                INI_WriteInt(File,"Score",0);
                INI_Close(File);

                SpawnPlayer(playerid);
                SpawnPlayer(playerid);
			}
        }

        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);
                    GPM(playerid, PlayerInfo[playerid][pCash]);
                }
                else
                {
                    SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""COLOR_BELA"Login",""COLOR_CRVENA"Ukucali ste ne ispravnu sifru.\n"COLOR_BELA"Ukucajte sifru pa se ulogujte.","Login","Izlaz");
                }
                return 1;
            }
        }
    }
And that is all. Hope someone will help me

EDIT: Here is OnPlayerConnect
Код:
public OnPlayerConnect(playerid)
{
    if(fexist(UserPath(playerid)))
	{
		INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  		ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Ukucajte sifru da se ulogijete.", "Login", "Napusti");
	}
	else
	{
 		ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registracija...", "Ukucajte sifru da bi ste se registrovali.", "Registracija", "Napusti");
	}
Reply
#2

Few questions for you
1.)Does all other things are saved ?
2.)Can u show show parse statement?
3.)did u increase player score on onplayerkill?
4.)Did u try debugging using printf?
Reply
#3

Quote:
Originally Posted by Sreyas
Посмотреть сообщение
Few questions for you
1.)Does all other things are saved ?
2.)Can u show show parse statement?
3.)did u increase player score on onplayerkill?
4.)Did u try debugging using printf?
1.)Everything else gets saved
2.)What?? (i posted everything that have to do with score)
3.)OnPlayerDeath i wrote this
Код:
if(killerid != INVALID_PLAYER_ID)
    {
        GivePlayerMoney(killerid, 500);
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 2);
	}
4.)Nope
Reply
#4

Here try couple of fixes for your code
PHP код:
public OnPlayerDisconnect(playeridreason)
{
    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,"Kills",PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    
INI_WriteInt(File,"Score",GetPlayerScore(playerid));
    
INI_WriteInt(File,"VIP",PlayerInfo[playerid][pVIP]);
    
INI_Close(File);
        return 
1;

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid)
    {
        case 
DIALOG_REGISTER:
        {
            if (!
response) return Kick(playerid);
            if(
response)
            {
                if(!
strlen(inputtext)) return SPD(playeridDIALOG_REGISTERDIALOG_STYLE_PASSWORD""COLOR_BELA"Registracja...",""COLOR_CRVENA"Ukucali ste neispravnu sifru.\n"COLOR_BELA"Ukucajte novu sifru da se registrujete.","Register","Izlaz");
                new 
INI:File INI_Open(UserPath(playerid));
                
INI_SetTag(File,"Data");
                
INI_WriteInt(File,"Password",udb_hash(inputtext));
                
INI_WriteInt(File,"Cash",0);
                
INI_WriteInt(File,"Admin",0);
                
INI_WriteInt(File,"Kills",0);
                
INI_WriteInt(File,"Deaths",0);
                
INI_WriteInt(File,"Score",0);
                
INI_Close(File);
                
SpawnPlayer(playerid);
                
SpawnPlayer(playerid);
            }
        }
        case 
DIALOG_LOGIN:
        {
            if (!
response) return Kick(playerid);
            if(
response)
            {
                if(
udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    
INI_ParseFile(UserPath(playerid), "LoadUser_Data", .bExtra true, .extra playerid);
                    
GPM(playeridPlayerInfo[playerid][pCash]);
                }
                else
                {
                    
SPD(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD,""COLOR_BELA"Login",""COLOR_CRVENA"Ukucali ste ne ispravnu sifru.\n"COLOR_BELA"Ukucajte sifru pa se ulogujte.","Login","Izlaz");
                }
                return 
1;
            }
        }
    } 
NOTE:Pls try it with new account by deleting older one
Reply
#5

You gotta update "PlayerInfo[playerid][pScore]" too, or just use GetPlayerScore(playerid) instead.
Reply
#6

Okay. So problem is that it wont save score. It is loading it fine when i go in GamePanel and write score
I am going to try your solution now. Will send you answer
Reply
#7

Stop multiposting the threads, it often leads to a forum ban.

Add GetPlayerScore and save it to the pScore player variable so it loads when you log back in
Reply
#8

Thank you Sreyas. Your thing worked

And sorry for multi-thread thing
Reply
#9

Quote:
Originally Posted by Micko123
Посмотреть сообщение
Thank you Sreyas. Your thing worked

And sorry for multi-thread thing
No problem
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)