Page 1 of 1

Pozīcijas saglabāšana

Posted: 09 Feb 2012, 23:15
by Crone
Sveiki! Man ir radusies problēma ar pozīcijas saglabāšanu, kad spēlētājs iziet no servera. Erroru un wārnu nav, bet problēma tāda, ka kad spēlētājs iziet, tad pozīcija saglabājas failā un viss ir ok, bet kad ieiet atkal spēlē, tad tāpat met uz defaulto spawnu (tajos laukos).

Karoč rekur kodi...

OnPlayerDisconnect:

Code: Select all

    new Float:X,Float:Y,Float:Z, name[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid, name, sizeof(name));

	format(file, sizeof(file), SERVER_USER_FILE, name);
	if(gPlayerLogged[playerid] == 1)
	{
	GetPlayerPos(playerid,X,Y,Z);
	dini_IntSet(file, "Money", GetPlayerMoney(playerid));
	dini_FloatSet(file, "PosX", floatround(X));
	dini_FloatSet(file, "PosY", floatround(Y));
	dini_FloatSet(file, "PosZ", floatround(Z));
	}
	gPlayerLogged[playerid] = 0;
	return 1;
}
OnPlayerSpawn:

Code: Select all

new name[MAX_PLAYER_NAME], file[256];
	format(file, sizeof(file), SERVER_USER_FILE, name);
	if(gPlayerLogged[playerid]==1)
	{
    SetPlayerPos(playerid, dini_Float(file, "PosX"),dini_Float(file, "PosY"),dini_Float(file, "PosZ"));
    }
    return 1;
}
Paldies jau iepriekš! :)

Re: Pozīcijas saglabāšana

Posted: 10 Feb 2012, 02:47
by Shetch

Code: Select all

	if (strcmp("/spawn", cmdtext, true, 5) == 0)
	{
		new name[MAX_PLAYER_NAME], file[256], Float:X, Float:Y, Float:Z;
    	GetPlayerName(playerid,name,sizeof(name));
    	format(file,sizeof(file),"Users/%s.txt",name);
   		if(dini_Exists(file))
   		{
	  		X = Float:dini_Float(file,"X");
	  		Y = Float:dini_Float(file,"Y");
	  		Z = Float:dini_Float(file,"Z");
	  		SetPlayerPos(playerid, X, Y, Z);
   			return 1;
    	}
		return 1;
	}

Re: Pozīcijas saglabāšana

Posted: 10 Feb 2012, 11:43
by KotoK
Diemžēl dini ir pēdējais mēsls, tapēc izmanto, ko kvalitatīvāku un ātrāku, kā piemēram mysql, yini.

Re: Pozīcijas saglabāšana

Posted: 10 Feb 2012, 15:43
by [OFF]katelmaisis
Kotok, sevis veiktu testu studijā... Citādi es ev neticu ^^.

Es, patiesībā, neticu, ka vienas rindiņas ierakstīšana failā var būt lēnāka kā pieslēgšanās datubāzei un kverija vai inserta izpildīšana.

Re: Pozīcijas saglabāšana

Posted: 10 Feb 2012, 17:42
by Shetch
KotoK wrote:Diemžēl dini ir pēdējais mēsls, tapēc izmanto, ko kvalitatīvāku un ātrāku, kā piemēram mysql, yini.
Lieto ko gribi, dini var izmantot serverim ar vismaz 100 spēlētājiem.
Atšķirību starp DINI un visiem pārējiem nejūtu.

Re: Pozīcijas saglabāšana

Posted: 11 Feb 2012, 13:51
by Crone
Paldies, Shetch, tgd iet! Varat slēgt ciet. :)