Tervist.
#1
Selline mure, et oleks tarvis salvestamissüsteemi. Et kui logid välja, siis järgmine kord ärkad samas kohas ning asjad salvestuksid.

Ettetänades.
Reply
#2
Antud teema on küll vana, aga igaks juhuks postitan lahenduse siia - mõnele algajale kasulik.

Siin foorumis leiab küll mõne õpetuse.
http://sa-mp.staatus.eu/forumdisplay.php?fid=14

Võtame näiteks selle: Login ja Registreerimis Süsteem (autor Galaxy)


Code:
enum pInfo
{
   pPass,
   pCash,
   pAdmin,
   pKills,
   pDeaths
}
new PlayerInfo[MAX_PLAYERS][pInfo];

Sinna lisame 2 muutuja juurde, kuhu salvestatakse 3 (X, Y ja Z) ja 1 (facing angle) koordinaadid:

Code:
enum pInfo
{
   pPass,
   pCash,
   pAdmin,
   pKills,
   pDeaths,
   Float:pPos[3],
   Float:pAngle
}
new PlayerInfo[MAX_PLAYERS][pInfo];

Muutuja kasutamine/väärtuse kuvamine näide:
Code:
SetPlayerPos(playerid, PlayerInfo[playerid][pPos][0], PlayerInfo[playerid][pPos][1], PlayerInfo[playerid][pPos][2]);
SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pAngle]);

Antud koodijupp on andmete laadimine.
Code:
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]);
   return 1;
}
Sinna lisame juurde mõned koodiread:
Code:
INI_Float("Xpos", PlayerInfo[playerid][pPos][0]);
INI_Float("Ypos", PlayerInfo[playerid][pPos][1]);
INI_Float("Zpos", PlayerInfo[playerid][pPos][2]);
INI_Float("Angle", PlayerInfo[playerid][pAngle]);
PS! Need koodiread tuleb panna sinna enne seda return 1;!

Antud koodijupp on andmete salvestamine.

Code:
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_Close(File);
   return 1;
}
Sinna lisame juurde mõned koodiread:
Code:
INI_WriteFloat(File, "Xpos", PlayerInfo[playerid][pPos][0]);
INI_WriteFloat(File, "Ypos", PlayerInfo[playerid][pPos][1]);
INI_WriteFloat(File, "Zpos", PlayerInfo[playerid][pPos][2]);
INI_WriteFloat(File, "Angle", PlayerInfo[playerid][pAngle]);
PS! Need koodiread tuleb panna sinna enne seda INI_Close(File); (sest kui panna peale seda, siis need koordinaadid ei salvestuks, kuna faili lugemine & kirjutamine lõpetatakse juba enne kui proovitakse salvestada koordinaadid).

Ja ongi korras.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)