Üdv!
A problémám megint elöjött, mégpedig, hogy van egy login/register rendszerem és nem menti el, csak a jelszót, de se a pénzt, se a pontot, se semmit. Megpróbáltam dfile-val is ugya úgy letudtam compileolni hibátlanul, de ugyan az történt.
Részek:
OnPlayerConnect:
new PlayerInfo[68];
GetPlayerName(playerid, pName,sizeof (pName));
format(PlayerInfo, sizeof(PlayerInfo),\"/Players/%s.txt\",pName);
if(dini_Exists(PlayerInfo))
{
ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT,\"Login\",\"A fiókod regisztrálva van adj meg a jelszavad!\",\"Login\",\"Kilép\");
}
else
{
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT,\"Regisztráció\",\"A fiókód nincs regisztrálva, kérlek adj meg egy jelszót\",\"Regist\",\"Kilép\");
}
return 1;
OnPlayerDisconnect:
if(GetPVarInt(playerid,\"Kijelentkezés\")==1)
{
SavePlayer(playerid);
}
return 1;
OnDialogResponse:
if(dialogid == 4)
{
if(response==0)
{
SendClientMessage(playerid, RED, \"A játékhoz bekell lépned, kickeltünk!\");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, RED, \"Nem adtál meg jelszót, kérlek írd be a jelszavad\");
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT,\"Regisztráció\",\"A fiókód nincs regisztrálva, kérlek adj meg egy jelszót\",\"Regist\",\"Kilép\");
return 1;
}
else
{
Regist(playerid, inputtext);
return 1;
}
}
return 1;
}
if(dialogid == 5)
{
if(response==0)
{
SendClientMessage(playerid, RED, \"A játékhoz bekell lépned, kickeltünk!\");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, RED, \"Nem adtál meg jelszót, kérlek írd be a jelszavad\");
ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT,\"Login\",\"A fiókod regisztrálva van adj meg a jelszavad!\",\"Login\",\"Kilép\");
return 1;
}
else
{
Login(playerid, inputtext);
return 1;
}
}
}
return 1;
Függvények:
stock Login(playerid, key[])
{
new PlayerInfo[64];
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(PlayerInfo, sizeof(PlayerInfo),\"/Players/%s.txt\",pName);
if(!strcmp(key,dini_Get(PlayerInfo,\"Jelszó\"),false))
{
LoadPlayer(playerid);
SendClientMessage(playerid, GREEN,\"Sikeresen bejelentkeztél\");
return 1;
}
else
{
SendClientMessage(playerid, RED,\"Rossz jelszót adtál meg\");
ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT,\"Login\",\"A fiókod regisztrálva van adj meg a jelszavad!\",\"Login\",\"Kilép\");
return 1;
}
}
stock Regist(playerid, key[])
{
new PlayerInfo[64];
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof (pName));
format(PlayerInfo,sizeof(PlayerInfo),\"/Players/%s.txt\",pName);
dini_Create(PlayerInfo);
dini_Set(PlayerInfo,\"Jelszó\",key);
dini_IntSet(PlayerInfo,\"Pont\", 0);
dini_IntSet(PlayerInfo,\"Pénz\", 0);
dini_IntSet(PlayerInfo,\"Admin\", 0);
dini_IntSet(PlayerInfo,\"Rules\", 0);
dini_IntSet(PlayerInfo,\"Banned\", 0);
SetPlayerScore(playerid, 0);
SendClientMessage(playerid, GREEN,\"Sikeresen regisztráltál\");
SetPVarInt(playerid,\"Kijelentkzés\",1);
return 1;
}
stock LoadPlayer(playerid)
{
new PlayerInfo[64];
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(PlayerInfo, sizeof(PlayerInfo),\"/Players/%s.txt\",pName);
SetPlayerScore(playerid, dini_Int(PlayerInfo,\"Pont\"));
GivePlayerMoney(playerid, dini_Int(PlayerInfo,\"Pénz\"));
SetPVarInt(playerid,\"Admin\", dini_Int(PlayerInfo,\"Admin\"));
SetPVarInt(playerid,\"Rules\", dini_Int(PlayerInfo,\"Rules\"));
SetPVarInt(playerid,\"Banned\", dini_Int(PlayerInfo,\"Banned\"));
SetPVarInt(playerid,\"Kijelentkzés\",1);
return 1;
}
stock SavePlayer(playerid)
{
if(GetPVarInt(playerid,\"Kilejentkezés\")==1)
{
new PlayerInfo[64];
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(PlayerInfo, sizeof(PlayerInfo),\"/Players/%s.txt\",pName);
dini_IntSet(PlayerInfo,\"Pont\",GetPlayerScore(playerid));
dini_IntSet(PlayerInfo,\"Pénz\",GetPlayerMoney(playerid));
dini_IntSet(PlayerInfo,\"Admin\",GetPVarInt(playerid,\"Admin\"));
dini_IntSet(PlayerInfo,\"Rules\",GetPVarInt(playerid,\"Rules\"));
dini_IntSet(PlayerInfo,\"Banned\",GetPVarInt(playerid,\"Banned\"));
}
return 1;
}