Jump to content
  • 0

pomoc NE - načítavanie


Eidam

Dotaz

Mám problém s načítavaním uložených dát hráča. Vždy pri vstupe na server mi hráča spawne na tom istom mieste a to konkrétne v Bluebery. V zložke mám zapísane posledné hodnoty hráča ale pri vstupe na server ich nechce načítať. Nevypisuje mi žiaden error tak nemám potuchy prečo mi to nefunguje.

 

 
Ak niekto vie kde je chyba alebo čo mám zle tak prosím poradťe mi prosím.
 
public OnPlayerSpawn(playerid)
{
new meno[MAX_PLAYER_NAME], cesta[64];
format(cesta, sizeof(cesta), "/Účty/%s.ini", meno);
new Float:X, Float:Y, Float:Z;
X = dini_Float(cesta, "X");
Y = dini_Float(cesta, "Y");
Z = dini_Float(cesta, "Z");
SetPlayerPos(playerid, X, Y, Z);
 
return 1;
}

 

Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0

new Float:X, Float:Y, Float:Z;

 

--->

 

new Float:X[MAX_PLAYERS],Float:Y[MAX_PLAYERS],Float:Z[MAX_PLAYERS];

 

 

X[playerid] = dini_Float(cesta, "X");

Y[playerid] = dini_Float(cesta, "Y");

Z[playerid] = dini_Float(cesta, "Z");

 

SetPlayerPos(playerid,X[playerid],Y[playerid],Z[playerid]);

Link to comment
Share on other sites

  • 0

new Float:X, Float:Y, Float:Z;

 

--->

 

new Float:X[MAX_PLAYERS],Float:Y[MAX_PLAYERS],Float:Z[MAX_PLAYERS];

 

 

X[playerid] = dini_Float(cesta, "X");

Y[playerid] = dini_Float(cesta, "Y");

Z[playerid] = dini_Float(cesta, "Z");

 

SetPlayerPos(playerid,X[playerid],Y[playerid],Z[playerid]);

Kravina

 

Chyba je v tom, že nezjistíš hráčův nick, takže to načte souřadnice odnikud, takže 0,0,0..

 

public OnPlayerSpawn(playerid)

{
new meno[MAX_PLAYER_NAME], cesta[64];

GetPlayerName(playerid,meno,MAX_PLAYER_NAME);

format(cesta, sizeof(cesta), "/Účty/%s.ini", meno);
new Float:X, Float:Y, Float:Z;
X = dini_Float(cesta, "X");
Y = dini_Float(cesta, "Y");
Z = dini_Float(cesta, "Z");
SetPlayerPos(playerid, X, Y, Z);


return 1;
}
Link to comment
Share on other sites

  • 0

Ďakujem obom že ste mi chceli pomôcť ale prišiel som si na chybu v SetPlayerPos tam malo byť GetPlayerPos Get je pre načítavanie a Set pre ukladanie. No lenže teraz ma to vždy spawne v Las Venturas pred eskalatormi

Link to comment
Share on other sites

  • 0

Ukladanie aj nacitavanie urob cez getplayername...inak ti to nepojde...pretoze nenajde hracov subor a nastavi vsetky hodnoty na 0, v tomto pripade nastavi defaultny samp spawn ktory je pred tymi eskalatormy

Link to comment
Share on other sites

  • 0

mám ďalší problém vôbec mi nefunguje načitávanie a errori mi nevyhadzuje žiadne Spawne ma to vždy v blueberry a zabije ma to hneď po spawnutí a keď ma to zabije zase ma spawne a zabije a vkuse ma zabíja do okola

 

(Fungovalo mi X Y Z ale iba keď tam bolo to a akonáhle som pridal ostatné veci Pohlad, Peniaze, Zdravie, Vesta tak už to nejde)

V priečinku no súbor kde mi ukladá tie veci mám toto:

Heslo=Test
Meno=Player
X=1958.378295
Y=1343.157226
Z=15.874100
Pohlad=269.149993
Zdravie=100.000000
Vesta=0.000000

 

 

Takže ukladať ukladá správne ale niečo je pri načitávaní

 

 

 

public OnPlayerDisconnect(playerid, reason)
{
new meno[MAX_PLAYER_NAME], cesta[64];
GetPlayerName(playerid,meno,sizeof(meno));
format(cesta, sizeof(cesta), "/Účty/%s.ini", meno);
 
 
if(!dini_Exists(cesta))
{
dini_Create(cesta);
}
else
{
   dini_Set(cesta, "Meno", meno);
new Float:X, Float:Y, Float:Z, Float:Pohlad;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Pohlad);
dini_FloatSet(cesta, "X", X);
dini_FloatSet(cesta, "Y", Y);
dini_FloatSet(cesta, "Z", Z);
dini_FloatSet(cesta, "Pohlad", Pohlad);
 
new Float:Zdravie, Float:Vesta;
GetPlayerHealth(playerid, Zdravie);
GetPlayerArmour(playerid, Vesta);
dini_FloatSet(cesta, "Zdravie", Zdravie);
dini_FloatSet(cesta, "Vesta", Vesta);
}
return 1;
}
 
public OnPlayerSpawn(playerid)
{
    new meno[MAX_PLAYER_NAME], cesta[64];
    GetPlayerName(playerid,meno, sizeof(meno));
format(cesta, sizeof(cesta), "/Účty/%s.ini", meno);
 
dini_Get(cesta, meno);
    new Float:X, Float:Y, Float:Z, Float:Pohlad;
    SetPlayerPos(playerid, X, Y, Z);
    SetPlayerFacingAngle(playerid, Pohlad);
  X = dini_Float(cesta, "X");
Y = dini_Float(cesta, "Y");
Z = dini_Float(cesta, "Z");
Pohlad = dini_Float(cesta, "Pohlad");
 
  new Float:Zdravie, Float:Vesta;
SetPlayerHealth(playerid, Zdravie);
SetPlayerArmour(playerid, Vesta);
Zdravie = dini_Float(cesta, "Zdravie");
Vesta = dini_Float(cesta, "Vesta");
  return 1;
}
Link to comment
Share on other sites

  • 0

Kód vkladaj kliknutím na <> pri pridávaní príspevku.
 

SetPlayerPos(playerid, X, Y, Z);           /* Pretože najprv nastavíš hráčovu pozíciu */
SetPlayerFacingAngle(playerid, Pohlad);
X = dini_Float(cesta, "X");                /* A až potom ju načítaš zo súboru, čo je chyba*/
Y = dini_Float(cesta, "Y");
Z = dini_Float(cesta, "Z");
/* Musíš to prehodiť */
/* To isté sa deje pri načítavaní života */
SetPlayerHealth(playerid, Zdravie); /* V tomto momente ešte zdravie je 0 - zabije ho */
Zdravie = dini_Float(Cesta, "Zdravie"); /* A až potom načíta skutočné zdravie zo súboru, ale nikdy ho nedá */
Link to comment
Share on other sites

  • 0

Ďakujéem pekne :) máš pravdu už to ide. Ale prehodiť som to mal iba v spawn alebo v disconect mi potom neukladá nič no ale ajtak diki moc veľmi si mi pomohol :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...