Sziasztok!
A hiba maga: Ha egyedül vagyok a szerveren akkor minden tökéletes, viszont ha feljön még valaki akkor összekavarodnak az adatok, megkapom a másik skinjét, szintjét, adminszintjét és ez fordítva is.
Mi lehet a gond?
public OnPlayerDisconnect(playerid, reason)
{
new quit[128];
GetPlayerName(playerid, JatekosNev, sizeof(JatekosNev));
format(quit, 128, "PROJEKTSZERÓ: %s lecsatlakozott a szerverről.", JatekosNev);
SendClientMessageToAll(FEHER, quit);
//MENTÉS
new file[128];
format(file, sizeof(file), "/Karakterek/%s.ini", JatekosNev);
if(fexist(file) && Belepve[playerid] == 1)
{
dini_IntSet(file, "Penz", PlayerInfo[playerid][Penz]);
dini_IntSet(file, "Szint", PlayerInfo[playerid][Szint]);
dini_IntSet(file, "Adminszint", PlayerInfo[playerid][AdminSzint]);
dini_IntSet(file, "Skin", PlayerInfo[playerid][Skin]);
GetPlayerPos(playerid, Float: pozX, Float: pozY, Float: pozZ);
GetPlayerFacingAngle(playerid, Float: Rot);
dini_FloatSet(file, "POZX", Float: pozX);
dini_FloatSet(file, "POZY", Float: pozY);
dini_FloatSet(file, "POZZ", Float: pozZ);
dini_FloatSet(file, "POZROT", Float: Rot);
}
Belepve[playerid] = 0;
PlayerInfo[playerid][Penz] = 0;
PlayerInfo[playerid][Szint] = 0;
PlayerInfo[playerid][AdminSzint] = 0;
PlayerInfo[playerid][Skin] = 0;
pozX = 0, pozY = 0, pozZ = 0, Rot = 0;
KillTimer(tMentes[playerid]);
return 1;
}
public OnPlayerSpawn(playerid)
{
new file[128];
format(file, sizeof(file), "/Karakterek/%s.ini", JatekosNev);
SetPlayerPos(playerid, dini_Float(file, "POZX"), dini_Float(file, "POZY"), dini_Float(file, "POZZ"));
SetPlayerFacingAngle(playerid, dini_Float(file, "POZROT"));
SetPlayerSkin(playerid, dini_Int(file, "Skin"));
Belepve[playerid] = 1;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == regisztracio)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid, JatekosNev, sizeof(JatekosNev));
if(strlen(inputtext) == 0)
{
format(string, sizeof(string), "Üdv %s! \nMég nincs karaktered, kérlek add meg a kívánt jelszavad.", JatekosNev);
ShowPlayerDialog(playerid, regisztracio, DIALOG_STYLE_INPUT, "Regisztráció", string, "OK", "Kilépés");
return 0;
}
format(file, sizeof(file), "/Karakterek/%s.ini", JatekosNev);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file, "Antibug", 0);
dini_IntSet(file, "Jelszo", udb_hash(inputtext));
dini_IntSet(file, "Penz", 0);
dini_IntSet(file, "Szint", 0);
dini_IntSet(file, "Adminszint", 0);
dini_IntSet(file, "Skin", 5);
dini_FloatSet(file, "POZX", 1481.1920);
dini_FloatSet(file, "POZY", -1766.7390);
dini_FloatSet(file, "POZZ", 18.7958);
dini_FloatSet(file, "POZROT", 359.9680);
format(string, sizeof(string), "Üdv %s! \nRegisztrálva vagy, kérlek add meg a jelszavad.", JatekosNev);
ShowPlayerDialog(playerid, bejelentkezes, DIALOG_STYLE_INPUT, "Bejelentkezés", string, "OK", "Kilépés");
}
}
}
if(dialogid == bejelentkezes)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid, JatekosNev, sizeof(JatekosNev));
if(strlen(inputtext) == 0)
{
format(string, sizeof(string), "Üdv %s! \nRegisztrálva vagy, kérlek add meg a jelszavad.", JatekosNev);
ShowPlayerDialog(playerid, bejelentkezes, DIALOG_STYLE_INPUT, "Bejelentkezés", string, "OK", "Kilépés");
return 0;
}
format(file, sizeof(file), "/Karakterek/%s.ini", JatekosNev);
if(fexist(file))
{
new Jelszo = dini_Int(file, "Jelszo");
if(udb_hash(inputtext) == Jelszo)
{
Belepve[playerid] = 1;
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, dini_Int(file, "Penz"));
PlayerInfo[playerid][Szint] = dini_Int(file, "Szint");
PlayerInfo[playerid][AdminSzint] = dini_Int(file, "Adminszint");
PlayerInfo[playerid][Skin] = dini_Int(file, "Skin");
SetPlayerPos(playerid, dini_Float(file, "POZX"), dini_Float(file, "POZY"), dini_Float(file, "POZZ"));
SetPlayerFacingAngle(playerid, dini_Float(file, "POZROT"));
tMentes[playerid] = SetTimerEx("Mentes", 20000, true, "i", playerid);
}
else
{
SendClientMessage(playerid, PIROS, "Hibás jelszó!");
Kick(playerid);
}
}
}
else
{
Kick(playerid);
}
}
return 1;
}
MENTÉS:
public Mentes(playerid)
{
new file[128];
format(file, sizeof(file), "/Karakterek/%s.ini", JatekosNev);
if(fexist(file) && Belepve[playerid] == 1)
{
dini_IntSet(file, "Penz", PlayerInfo[playerid][Penz]);
dini_IntSet(file, "Szint", PlayerInfo[playerid][Szint]);
dini_IntSet(file, "Adminszint", PlayerInfo[playerid][AdminSzint]);
dini_IntSet(file, "Skin", PlayerInfo[playerid][Skin]);
GetPlayerPos(playerid, Float: pozX, Float: pozY, Float: pozZ);
GetPlayerFacingAngle(playerid, Float: Rot);
dini_FloatSet(file, "POZX", Float: pozX);
dini_FloatSet(file, "POZY", Float: pozY);
dini_FloatSet(file, "POZZ", Float: pozZ);
dini_FloatSet(file, "POZROT", Float: Rot);
}
}
Esetleg valami valahova nem kell vagy rosszul van írva?