Spawnen wo man Ausloggt klappt nicht

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 ich kämpfe heute schon den ganzen tag...
    aber ich schaffe es einfach nicht...
    eigentlich müsste es funktionieren..



    //Spieler Enum
    Float:LogX,
    Float:LogY,
    Float:LogZ,
    Float:LogA


    //OnPlayerSpawn
    new Float:X = PlayerInfo[playerid][LogX];
    new Float:Y = PlayerInfo[playerid][LogY];
    new Float:Z = PlayerInfo[playerid][LogZ];
    new Float:A = PlayerInfo[playerid][LogA];


    new ftext[20];
    if(PlayerInfo[playerid][pMember] == 0){ ftext = "Zivilist"; }
    else if(PlayerInfo[playerid][pMember] == 1){ ftext = "LSPD"; }
    else if(PlayerInfo[playerid][pMember] == 2){ ftext = "LSFD"; }
    else if(PlayerInfo[playerid][pMember] == 3){ ftext = "Medic"; }
    else if(PlayerInfo[playerid][pMember] == 4){ ftext = "Ordnungsamt"; }
    else if(PlayerInfo[playerid][pMember] == 5){ ftext = "Spedition"; }
    else if(PlayerInfo[playerid][pMember] == 6){ ftext = "Termis Bratwa"; }
    else if(PlayerInfo[playerid][pMember] == 7){ ftext = "West Coast Customs"; }
    else if(PlayerInfo[playerid][pMember] == 8){ ftext = "Dillimore Devils"; }
    else if(PlayerInfo[playerid][pMember] == 9){ ftext = "Gourillas"; }

    new string[128],string2[128],string3[128];
    SetPlayerPos(playerid,X,Y,Z);
    SetPlayerFacingAngle(playerid,A);

    format(string,sizeof(string),"Du wurdest als %d Administrator gespawnt.",PlayerInfo[playerid][pAdmin]);
    format(string2,sizeof(string2),"Du wurdest als %d Supporter gespawnt.",PlayerInfo[playerid][pSupporter]);
    format(string3,sizeof(string3),"Du wurdest mit der Fraktion %s gespawnt.",ftext);
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    SendClientMessage(playerid,Türkis,string);
    }
    if(PlayerInfo[playerid][pSupporter] >= 1)
    {
    SendClientMessage(playerid,Türkis,string2);
    }
    if(PlayerInfo[playerid][pLeader] == 0||PlayerInfo[playerid][pMember] == 0)
    {
    SendClientMessage(playerid,Türkis,string3);
    }


    //OnPlayerDisconnect
    new Float:X,Float:Y,Float:Z,Float:A;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,A);
    PlayerInfo[playerid][LogX] = X;
    PlayerInfo[playerid][LogY] = Y;
    PlayerInfo[playerid][LogZ] = Z;
    PlayerInfo[playerid][LogA] = A;
    SavePlayer(playerid);


    //SpielerSpeichern
    mysql_SetFloat("accounts", "LastX", PlayerInfo[playerid][LogX], "Name", PlayerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "LastY", PlayerInfo[playerid][LogY], "Name", PlayerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "LastZ", PlayerInfo[playerid][LogZ], "Name", PlayerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "LastA", PlayerInfo[playerid][LogA], "Name", PlayerInfo[playerid][pName]);


    //SpielerLaden
    PlayerInfo[playerid][LogX] = mysql_GetFloat("accounts", "LastX", "Name", PlayerInfo[playerid][pName]);
    PlayerInfo[playerid][LogY] = mysql_GetFloat("accounts", "LastY", "Name", PlayerInfo[playerid][pName]);
    PlayerInfo[playerid][LogZ] = mysql_GetFloat("accounts", "LastZ", "Name", PlayerInfo[playerid][pName]);
    PlayerInfo[playerid][LogA] = mysql_GetFloat("accounts", "LastA", "Name", PlayerInfo[playerid][pName]);

  • Probiere es mal so hier.


    Dann schreibst Du bei 'OnPlayerDisconnect' das hier rein.



    new file[128], pname[MAX_PLAYER_NAME]; // Die Define's für die Datei und den Spielernamen
    new Float:x, Float:y, Float:z; // Hier werden dann die Koordinaten gespeichert
    GetPlayerName(playerid, pname, sizeof(pname)); // Hier wird der Spielername ausgegeben deswegen steht oben 'pname'
    format(file, sizeof(file), "\\SavePos\\%s.ini", pname); // Hier wird angegeben wie die Datei heißen soll und wo sie sich befindet
    if(!dini_Exists(file)) // Wenn die Datei nicht besteht
    dini_Create(file); // Dann wird eine neue erstellt
    GetPlayerPos(playerid, x, y, z); // Hier werden die Koordinaten des Spieler's ausgelesen und dann in die Datei geschrieben.
    dini_FloatSet(file, "posX", x);
    dini_FloatSet(file, "posY", y);
    dini_FloatSet(file, "posZ", z);


    Und bei OnPlayerSpawn schreibst Du das hier rein.


    new file[128], pname[MAX_PLAYER_NAME]; // Hier das selbe wie oben, die Datei & der Name
    new Float:x, Float:y, Float:z; // Die Koordinaten zum Spawnen
    GetPlayerName(playerid, pname, sizeof(pname)); // Der Spielername wird ausgegeben
    format(file, sizeof(file), "\\SavePos\\%s.ini", pname); // Wo sich die Datei befindet
    x = dini_Float(file, "posX"); // Die gespeicherten Koordinaten
    y = dini_Float(file, "posY");
    z = dini_Float(file, "posZ");
    SetPlayerPos(playerid, x, y, z); // Der Spieler wird an die gespeicherten Koordinaten gesetzt.

    Viel Spaß damit! :)


    Musst Du halt nur noch auf Dein MySQL anpassen. :P


    Ich hoffe ich konnte Dir helfen.


    Grüße Kinq'. :thumbup: