-
Mi ezzel a gond? (Pozíció mentés, Betöltés)
Pozició lementés (csak erre ir hibákat, betöltése jó):
PlayerInfo[playerid][X][info] = dini_Int(File,\"X\", GetPlayerPos(playerid));
PlayerInfo[playerid][Y][info] = dini_Int(File,\"Y\", GetPlayerPos(playerid));
PlayerInfo[playerid][Z][info] = dini_Int(File,\"Z\", GetPlayerPos(playerid));
-
Ezzel nem elmented, hanem beolasod a fájlból a változóba a pozíciókat...
Egyébként meg dini_Float-tal kell, mivel a koordináta lebegõpontos.
-
Ahaa..Tudsz egy ilyet irni FloatSettel csak példaképpen?
-
new Float:X,
Float:Y,
Float:Z; //Új float értékek a játékos X,Y,Z koordinátáihoz
GetPlayerPos(playerid,X,Y,Z); //lementi a játékos jelenlegi kordinátáit X,Y,Z float-os változókba
dini_FloatSet(File,\"PosX\",X); //menti az X
dini_FloatSet(File,\"PosY\",Y); //menti az Y
dini_FloatSet(File,\"PosZ\",Z); //menti a Z kordinátá az értékbe (azért külön külön mert szerintem könnyebb majd felhasználni így beolvasásnál)
Gondolom alapból értenéd mit csinál de azért kommenteztem, rem jó mert nem teszteltem na hali :smokin:
-
Kössz sokat segített.. :) Lementi.. Betölteni a dini_IntSet-el kell ezt is ugye?
-
Hát nem... minden olyan, aminek a végén \'Set\' van, azzal íratsz és nem betöltesz.
dini_Float-tal kell.
-
Értem, megcsináltam igy de warningos:
dini_Float(File, \"PosX\", 0);
dini_Float(File, \"PosY\", 0);
dini_Float(File, \"PosZ\", 0);
SetPlayerPos(playerid, X,Y,Z);
-
Istenem... ha egyszer betölt, minek harmadik paraméter? Töröld ki a nullákat.
-
télleg most a pawno hibátlan de a szerveren nem tölti be...pedig a fájlba is lementette a poziciokat
Mentés:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, Name, sizeof Name);
format(File, sizeof(File), \"/Players/%s.ini\",Name);
if(!dini_Exists(File)) {
}
else
{
dini_IntSet(File, \"Skin\", GetPlayerSkin(playerid));
dini_IntSet(File, \"Money\", GetPlayerMoney(playerid));
new Float:X, Float:Y, Float:Z; //Új float értékek a játékos X,Y,Z koordinátáihoz
GetPlayerPos(playerid,X,Y,Z); //lementi a játékos jelenlegi kordinátáit X,Y,Z float-os változókba
dini_FloatSet(File,\"PosX\",X); //menti az X
dini_FloatSet(File,\"PosY\",Y); //menti az Y
dini_FloatSet(File,\"PosZ\",Z); //menti a Z kordinátá az értékbe (azért külön külön mert szerintem könnyebb majd felhasználni így beolvasásnál)
}
}
Betöltés:
public OnPlayerSpawn(playerid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerName(playerid, Name, sizeof(Name));
format(File, sizeof(File), \"/Players/%s.ini\",Name);
if(!dini_Exists(File)) {
dini_Create(File);
dini_IntSet(File, \"Skin\", 0);
dini_IntSet(File, \"Money\", 0);
dini_Float(File, \"PosX\");
dini_Float(File, \"PosY\");
dini_Float(File, \"PosZ\");
SetPlayerPos(playerid, X,Y,Z);
SetPlayerSkin(playerid, dini_Int(File, \"Skin\"));
GivePlayerMoney(playerid, dini_Int(File, \"Money\"));
}
else
{
SetPlayerSkin(playerid, dini_Int(File, \"Skin\"));
GivePlayerMoney(playerid, dini_Int(File, \"Money\"));
}
return 1;
}
-
na álljon meg a menet akkor te most betölteni vagy menteni akarsz? mert az én mentõsre írtam példát.
És nem értem hogy spawnnál miért úgy írtad ahogy írtad, javaslom nézd egy 5 percig a kódot és merengj el rajta mit írtál rosszul ha mire befejezem ezt a android app fejlesztésrõl szóló videóm nézését még mindig nem lesz meg a megoldás akkor megpróbálok segíteni addig gondolkozz mit írtál rosszul.
-
Menteni de közben rájöttem hogy a betöltést rosszul csinálatam, és próbáltam vhogy máshogy megoldani... :)
-
na mivel akkor...kicsit interaktívak leszünk oké?
na ez lesz itt a te mostani betöltõ kódod
public OnPlayerSpawn(playerid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerName(playerid, Name, sizeof(Name));
format(File, sizeof(File), \"/Players/%s.ini\",Name);
if(!dini_Exists(File)) {
dini_Create(File);
dini_IntSet(File, \"Skin\", 0);
dini_IntSet(File, \"Money\", 0);
dini_Float(File, \"PosX\");
dini_Float(File, \"PosY\");
dini_Float(File, \"PosZ\");
SetPlayerPos(playerid, X,Y,Z);
SetPlayerSkin(playerid, dini_Int(File, \"Skin\"));
GivePlayerMoney(playerid, dini_Int(File, \"Money\"));
}
else
{
SetPlayerSkin(playerid, dini_Int(File, \"Skin\"));
GivePlayerMoney(playerid, dini_Int(File, \"Money\"));
}
return 1;
}
hol van benne a hiba? nézd meg alaposan ha megtaláltad nagyon helyes ha nem akkor nyisd le a kövi spoilert