Last Pos abspeichern

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
  • hi ich will die last pos abspeichern aber es eght nicht:

    enum PInfo
    {
    Name,
    Ort,
    GDatum,
    Level,
    Password[128],
    Money,
    Jail,
    Logged,
    Driverlicense,
    Driverlicenselkw,
    Driverlicenseboot,
    Driverlicenseflug,
    Police,
    Medic,
    Taxi,
    Fahrlehrer,
    Adac,
    Skinid,
    Float:xcoords,
    Float:ycoords,
    Float:zcoords,
    Float:acoords,
    };


    new PlayerInfo[MAX_PLAYERS][PInfo];


    public OnPlayerDisconnect(playerid)
    {
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    PlayerInfo[playerid][xcoords] = x;
    PlayerInfo[playerid][ycoords] = y;
    PlayerInfo[playerid][zcoords] = z;
    PlayerInfo[playerid][acoords] = a;


    return 1;
    }




  • public OnPlayerSpawn(playerid)
    {
    SetPlayerPos(playerid,PlayerInfo[playerid][xcoords],PlayerInfo[playerid][ycoords],PlayerInfo[playerid][zcoords]);
    SetPlayerFacingAngle(playerid,PlayerInfo[playerid][acoords]);
    return 1;
    }

    edit...
    edit2...

    3 Mal editiert, zuletzt von Meldariel ()

  • also ich geh mal davon aus dass du schon ein vorhandenes Benutzer-system benutzt, dann musst du nur die Speicherfunktion anpassen dass auch die Position gespeichert wird, und wenn der Spieler spawnt muss die Ladefunktion angepasst werden dass die Koordinaten wieder eingelesen werden.

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Naja dann musst du das eben dahingehend abändern dass er das tut.. es weiß ja keiner wie das Script zum laden/speichern arbeitet, deswegen kann dir auch keiner genau sagen was du wo wie hinschreiben musst!

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • ich bin nicht so gut im scripten, was meinst du wieder arbeitet im speichern und laden?

    public OnPlayerLogin(playerid,password[])
    {
    // new tmp2[256];
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Password" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][Password], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(PlayerInfo[playerid][Password],password, true ) == 0 )
    {
    new key[256] , val[256];
    new Data[256];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Name" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Name] = strval( val ); }
    if( strcmp( key , "Ort" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Ort] = strval( val ); }
    if( strcmp( key , "GDatum" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][GDatum] = strval( val ); }
    if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Level] = strval( val ); }
    if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Money] = strval( val ); }
    if( strcmp( key , "Police" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Police] = strval( val ); }
    if( strcmp( key , "Medic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Medic] = strval( val ); }
    if( strcmp( key , "Taxi" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Taxi] = strval( val ); }
    if( strcmp( key , "Fahrlehrer" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Fahrlehrer] = strval( val ); }
    if( strcmp( key , "Adac" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Adac] = strval( val ); }
    if( strcmp( key , "Driverlicense" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Driverlicense] = strval( val ); }
    if( strcmp( key , "Driverlicenselkw" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Driverlicenselkw] = strval( val ); }
    if( strcmp( key , "Driverlicenseboot" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Driverlicenseboot] = strval( val ); }
    if( strcmp( key , "Driverlicenseflug" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Driverlicenseflug] = strval( val ); }
    if( strcmp( key , "Skinid" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][Skinid] = strval( val ); }
    if( strcmp( key , "xcoords" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][xcoords] = strval( val ); }
    if( strcmp( key , "ycoords" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ycoords] = strval( val ); }
    if( strcmp( key , "zcoords" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][zcoords] = strval( val ); }
    if( strcmp( key , "acoords" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][acoords] = strval( val ); }
    }
    fclose(UserFile);
    PlayerInfo[playerid][Logged] = 1;



    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Falsches Passwort!");
    fclose(UserFile);
    return 1;
    }
    GivePlayerMoney(playerid,PlayerInfo[playerid][Money]);
    format(string2, sizeof(string2), "%s betritt den Server",playername2);
    SendClientMessage(playerid, COLOR_GREEN,string2);
    SetPlayerColor(playerid,COLOR_DBLUE);
    printf("%s has logged in.",playername2);
    if (PlayerInfo[playerid][Level] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTGREEN,"Erfolgreich Eingeloggt als Supporter!");
    }
    if (PlayerInfo[playerid][Level] == 2)
    {
    SendClientMessage(playerid, COLOR_LIGHTGREEN,"Erfolgreich Eingeloggt als Moderator!");
    }
    if (PlayerInfo[playerid][Level] == 3)
    {
    SendClientMessage(playerid, COLOR_LIGHTGREEN,"Erfolgreich Eingeloggt als Administrator!");
    }
    }
    return 1;
    }

    So läd der und so speichert der:
    siehe oben erster post
    und jetztt??
    ich speichert des jetzt???

  • Was ist dann das für ein halbfertiges Script, das Useraccounts liest aber nirgends speichert?

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Ich ahbe garde erst angefangen^^
    und der speichert schon ALLEs ab auser die koorinaten.
    habe den fehler gefunden:
    ich ahbe ja anfangs new Float:x ...
    gemacht und in GetPlayerPos(playerid,x,y,z) gemacht daher gins ned^^^danaach ahbe ich es so gemacht:
    GetPlayerPos(FLoat:x,Float:y...)
    ich dacfhte es reicht wenn ich nur x schreibe aber nun geht es ja