Spieler position werden nicht gespeichert!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey ho,


    Ich habe mal wieder ein Problemchen...
    bin wohl sehr aus die Übung gekommen!


    Nunja habe nen Register/login system....
    Doch speichert er die postion (koordinaten) nicht beim Ausloggen!
    Sie bleiben immer bei 0.000,0.000,0.000 und demnach spawne ich dann auch jedesmal da...
    mein enum
    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt
    }


    Hier mal das Script bei OnPlayerDisconnect
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
    dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
    dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][wanted] = 0;
    Spieler[playerid][skin] = 0;
    Spieler[playerid][lastx] = (0.0);
    Spieler[playerid][lasty] = (0.0);
    Spieler[playerid][lastz] = (0.0);


    Alles andere scheint zu Funktionieren...
    ich spawne ja auch bei 0.000,0.000,0.000 und wen ich mich frisch registriere halt am "noobspawn" aber hinterher specihert er halt die Coordinaten nicht wo man sich ausgeloggt hat!


    Nagut, hoffe ihr könnt mir helfen!
    Big THX im vorraus



    MFG


    //edit: Enum mit beigepackt

  • Kann mir das pls grad mal jemand anhand meiner Scripts vor machen... ic lerne im mom zu viele programmier sprachen, ich meiße da wohl grad herbe was durcheinander
    allso hier noch mal die scripts
    Das Enum:
    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt
    }



    callback: OnPlayerConnect
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    }


    Callback: OnPlayerDisconnect
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
    dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
    dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][wanted] = 0;
    Spieler[playerid][skin] = 0;
    Spieler[playerid][lastx] = (0.0);
    Spieler[playerid][lasty] = (0.0);
    Spieler[playerid][lastz] = (0.0);


    Callback OnPlayerSpawn
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(dini_Isset(accFormat,"lastx"))
    {
    SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
    }


    Soo das dürfte alles gewesen sein...
    Allso wen ich in der Config vom user die Coordinaten änder... spawne ich da wo ich will... aber mein Disconnecten wird die lezte position halt nicht in der Datei gespeichert!
    Wäre cool wen ihr mir da mal helfen könntet
    Ich werfe grad verschiedene Script sprachen durcheinander 8|


    //edit: 8| hae ich am Abend eine Rechtschreibung -> Verbessert


    MFG


  • new pname[MAX_PLAYERS],accFormat[128],Float: pX, Float: pY, Float: pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    dini_FloatSet(accFormat,"lastx",pX);
    dini_FloatSet(accFormat,"lasty",pY);
    dini_FloatSet(accFormat,"lastz",pZ);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][wanted] = 0;
    Spieler[playerid][skin] = 0;
    Spieler[playerid][lastx] = (0.0);
    Spieler[playerid][lasty] = (0.0);
    Spieler[playerid][lastz] = (0.0);