Nach Login: Stay within the World Boundries

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
  • frag mal die coordinaten bei onPlayerDissconnet ab und anch dort für jede koordinate eine zeile also
    dini_FloatSet([DEIN_DATEINAME],"lastx",Spieler[playerid][lastx]);
    dini_FloatSetDEIN_DATEINAME],"lasty",Spieler[playerid][lasty]);
    dini_FloatSetDEIN_DATEINAME],"lastz",Spieler[playerid][lastz]);
    und bei on player spawn
    Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
    Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
    Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
    SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
    lädst du die variabeln und setzt den spieler an die position ( musst du an dein scritp editiren)

  • Und wie kann ich die LastX bzw. Y Z Koordinaten abfragen?
    Ich benutze GetPVar und SetPVar nicht enum.


    /edit: Die Position wird gespeichert nur in einem unleserlichen Format: "Position=1145821343"

  • GetPlayerPos(playerid, Spieler[playerid][lastx], Spieler[playerid][lasty], Spieler[playerid][lastz]);
    so hab ich die position des spielers abgefragt schau mal im tutorialbereich da is ein simples login/registrir tut und wa wird auch diese funktion angesprochen.

  • Hab jetzt ein neues Problem...
    Wenn ich mich einlogge dann kommt gleich da nach "Stay within the World Boundries",
    obwohl ich nirgendswo in meinem Script diese Funktion verwende...


    Hier mein Code:


    public OnPlayerDisconnect(playerid, reason)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    new Float:lastx, Float:lasty, Float:lastz;
    GetPlayerPos(playerid, lastx, lasty, lastz);
    SetPVarInt(playerid,"lastx",lastx);
    SetPVarInt(playerid,"lasty",lasty);
    SetPVarInt(playerid,"lastz",lastz);

    new playername[24];
    GetPlayerName(playerid, playername, sizeof(playername));
    {
    SpielerSpeichern(playerid);
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    SetPlayerPos(playerid,dini_Int(Spielerdatei,"lastx"),dini_Int(Spielerdatei,"lasty"),dini_Int(Spielerdatei,"lastz"));
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    dini_IntSet(Spielerdatei,"lastx",GetPVarInt(playerid,"lastx"));
    dini_IntSet(Spielerdatei,"lasty",GetPVarInt(playerid,"lasty"));
    dini_IntSet(Spielerdatei,"lastz",GetPVarInt(playerid,"lastz"));
    }
    return 1;
    }



    Hier ein Screen wie das aussieht:




    Hoffe um Hilfe.


    /edit:


    Hab das mal in einen Befehl eingebaut.
    Das Ergebnis: Sobald ich den Befehl eingebe kommt wieder "Stay within the World Boundries"....
    Ich glaube es liegt an den Koordinaten.
    Die Koordinaten werden in diesem Format abgespeichert:

    Zitat


    lastx=1318915341
    lasty=-834262984
    lastz=1318911568

    2 Mal editiert, zuletzt von n0skillg3t ()

  • Hm, hatte damals das gleiche Problem.


    Lass mich raten, unter OnGameModeInit() hast du:
    AddPlayerClass(0, ...)
    Damals hatte ich es gelöst, indem ich einfach ein weiteres AddPlayerClass hinzugefügt hatte.
    Nur eben mit einer anderen SkinID.

  • Nein :D
    Das ist auch nicht das Problem...
    Da ich das ja jetzt in einen Befehl gepackt habe, habe ich gesehen,
    das etwas mit den Koordinaten nicht stimmt.


    So wird es wiedergebeben:


    SetPlayerPos(playerid,1318915341,-834262984,1318911568);
    //Hier bekomme ich das "Stay within the World Boundries"


    Dann habe ich es so probiert:


    SetPlayerPos(playerid,1318.915341,-8342.62984,13.18911568);
    //Hier bekomme ich das "Stay within....blabla" nicht mehr aber ich werd irgendwo im Meer gespawnt...



    ERGO: Die Koordinaten werden falsch gespeichert bzw. gelesen.


    Bitte um Hilfe =)