Szerző Téma: Dini pozicio mentés  (Megtekintve 2299 alkalommal)

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Dátum: 2013. január 26. - 16:26:41 »
0 Show voters
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));

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Dini pozicio mentés
« Válasz #1 Dátum: 2013. január 26. - 16:28:09 »
0 Show voters
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.

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #2 Dátum: 2013. január 26. - 16:39:01 »
0 Show voters
Ahaa..Tudsz egy ilyet irni FloatSettel csak példaképpen?

Dini pozicio mentés
« Válasz #3 Dátum: 2013. január 26. - 16:54:14 »
0 Show voters

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:

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #4 Dátum: 2013. január 26. - 17:26:35 »
0 Show voters
Kössz sokat segített.. :) Lementi.. Betölteni a dini_IntSet-el kell ezt is ugye?

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Dini pozicio mentés
« Válasz #5 Dátum: 2013. január 26. - 17:31:31 »
0 Show voters
Hát nem... minden olyan, aminek a végén \'Set\' van, azzal íratsz és nem betöltesz.
dini_Float-tal kell.

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #6 Dátum: 2013. január 26. - 17:39:46 »
0 Show voters
É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);

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Dini pozicio mentés
« Válasz #7 Dátum: 2013. január 26. - 17:40:21 »
0 Show voters
Istenem... ha egyszer betölt, minek harmadik paraméter? Töröld ki a nullákat.

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #8 Dátum: 2013. január 26. - 17:46:04 »
0 Show voters
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;
}
« Utoljára szerkesztve: 2013. január 26. - 17:50:23 írta Shady »

Dini pozicio mentés
« Válasz #9 Dátum: 2013. január 26. - 18:36:40 »
0 Show voters
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.

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #10 Dátum: 2013. január 26. - 18:44:43 »
0 Show voters
Menteni de közben rájöttem hogy a betöltést rosszul csinálatam, és próbáltam vhogy máshogy megoldani... :)

Dini pozicio mentés
« Válasz #11 Dátum: 2013. január 26. - 19:06:16 »
0 Show voters
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



 

if(!dini_Exists(File)) {

 
Mit csinál ez a kód? Másképp kérdezve mit szimbolizál a dini elõtti ! jel?
Te kérlek a betöltéseid azon részét is abba az elágazásba raktad ami akkor kerül meghívásra ha a játékosnévhez még nem kötõdik regisztrált fájl, akkor ne is várd hogy egy regisztrált játékost a jó helyre rakjon ugye ugye? Egyenlõre ennyit segítek mert az a legjobb fejlõdési mód ha TE MAGAD találod ki mit hogyan minél kevesebb támasztékkal mivel hát totál semmi kiindulási pont nélkül elég nehéz.
 
Na próbálkozz majd egy 30-40 max 1 óra múlva megint ide nézek és ha elakadtál megint segítek addig is hajrá  :smokin:

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #12 Dátum: 2013. január 26. - 19:27:05 »
0 Show voters
Lol, te aztán tanár vagy :D Am az a hiba hogy a spawnoláskor is létrehozom a fájlt

Dini pozicio mentés
« Válasz #13 Dátum: 2013. január 26. - 19:57:31 »
0 Show voters
az még túlélhetõ lenne hogy eza  sor itt van mert akár itt is lehet de a fõ baj vele az hogy..na várj példával mondom meg
Feljön Jóska, õ még soha nem volt fent a szerveren ez eddig okés is, még nincs regisztrálva spawnolna ekkor csinálja meg a fájlát,magyarán ekkor HA õ elsõnek volt fent akkor hajtja végre a   de hogy te ezen
if(!dini_Exists(File)) { 

 
alatti részt és a else alattit akkor hajtja csak végre ha szegény Pista jön fel aki már volt fent a szerveren és lementette az adatait, ergó a te
 
SetPlayerPos(playerid, X,Y,Z);

 utasításod sose fog teljesülni mert egy új embernek nincs rendes mentett koordinátája valszeg ezért úgyis alap spawn-hoz rakná, de akinek meg lenne (õk az else alatti részbe esnek ezért) nekik nem állítja be a helyzetüket másszóval  :tantrum: <-- így érzed magad mert úgy hiszed nem mûködik pedig mûködik csak rossszul xD
rem segítettem és sry a halandzsáért xD
na majd megint visszanézek egy kis idõm múlva sok sikert addig  :smokin:

Nem elérhető Shady

  • 313
    • Profil megtekintése
Dini pozicio mentés
« Válasz #14 Dátum: 2013. január 26. - 21:09:00 »
0 Show voters
Bocs hogy nem értek még hozzá, de a dinit ma keztem :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal