[Hilfe] Autohaus System

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
  • Hallo liebes Breadfish Forum,


    Ich RaZ3r haben ein Problemm mit dem Autohaus System,
    Ich benutze ein Selfmade autohaus System, es funktioniert alles bei unserem autohaus nur folgendes problemm ist:


    Wenn wir das auto parken mit /parken oder /carpark sind ja 2 befhele und man kann sich eben aussuchenwelchen man benutzen will, /carpark oder /park funktioniert zwar aber sobald man das auto an einer stelle geparkt hat und einen Rellog macht ist das auto weg wie ob es der Server gelöscht hätte, und genau so ist es auch wenn das auto kaputt geht oder man es zu schrott fährt...


    Wenn ihr irgend welche script sachen braucht oder ich euch was pousten soll, schreibt einfach was darunter...
    aber ich würde mich sehr bedanken wenn mir geholfen werden könnte...


    mfg: RaZ3r :D

  • Hier ist der Parken Befhel:


    if(strcmp(cmd,"/Park",true)==0 || strcmp(cmd,"/Parken",true)==0 || strcmp(cmd,"/Carpark",true)==0){
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
    for(new slot;slot<MAX_PLAYER_CARS;slot++){
    if(GetPlayerVehicleID(playerid) && (SpielerAuto[playerid][slot][pcVehid] >= 400 && SpielerAuto[playerid][slot][pcVehid] <= 611)){
    GetVehiclePos(SpielerAuto[playerid][slot][pcCarid],SpielerAuto[playerid][slot][pcPos][0],SpielerAuto[playerid][slot][pcPos][1],SpielerAuto[playerid][slot][pcPos][2]);
    GetVehicleZAngle(SpielerAuto[playerid][slot][pcCarid],SpielerAuto[playerid][slot][pcPos][3]);
    SendClientMessage(playerid,COLOR_WHITE,"Du hast dein Fahrzeug erfolgreich geparkt!");
    return 1;
    }
    }SendClientMessage(playerid,COLOR_GREY,"Du sitzt nicht in deinem Fahrzeug.");
    }else{
    SendClientMessage(playerid,COLOR_GREY,"Dazu musst du in einer deiner Fahrzeuge sitzen.");
    }
    return 1;
    }



    Und wir benutzen ein Selfmade autohaus.


    :)


  • Dann brauchen wir den Abschnitt wo das Fahrzeug gespawnt, gespeichert & geladen wird.

    Hier einmal wo das Fahrzeug gespawnt, gespeichert & geladen wird.


    public LadeSpielerAutos(playerid){
    new pcName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pcName,sizeof(pcName));
    new pcFiletext[64];
    for(new slot;slot<MAX_PLAYER_CARS;slot++){
    format(pcFiletext,sizeof(pcFiletext),"/Spielerautos/%s.%d.txt",pcName,slot);
    if(fexist(pcFiletext)){
    new File:pcFile=fopen(pcFiletext,io_read),Content[256];
    fread(pcFile,Content);
    fclose(pcFile);
    sscanf(Content,"dffffdddddddddddddddddd",
    SpielerAuto[playerid][slot][pcVehid],
    SpielerAuto[playerid][slot][pcPos][0],
    SpielerAuto[playerid][slot][pcPos][1],
    SpielerAuto[playerid][slot][pcPos][2],
    SpielerAuto[playerid][slot][pcPos][3],
    SpielerAuto[playerid][slot][pcFarbe][0],
    SpielerAuto[playerid][slot][pcFarbe][1],
    SpielerAuto[playerid][slot][pcLackierung],
    SpielerAuto[playerid][slot][pcTuning][0],
    SpielerAuto[playerid][slot][pcTuning][1],
    SpielerAuto[playerid][slot][pcTuning][2],
    SpielerAuto[playerid][slot][pcTuning][3],
    SpielerAuto[playerid][slot][pcTuning][4],
    SpielerAuto[playerid][slot][pcTuning][5],
    SpielerAuto[playerid][slot][pcTuning][5],
    SpielerAuto[playerid][slot][pcTuning][6],
    SpielerAuto[playerid][slot][pcTuning][7],
    SpielerAuto[playerid][slot][pcTuning][8],
    SpielerAuto[playerid][slot][pcTuning][9],
    SpielerAuto[playerid][slot][pcTuning][10],
    SpielerAuto[playerid][slot][pcTuning][11],
    SpielerAuto[playerid][slot][pcTuning][12],
    SpielerAuto[playerid][slot][pcTuning][13],
    SpielerAuto[playerid][slot][pcKaufpreis]);
    ErstelleSpielerAuto(playerid,slot);
    }else{
    SpielerAuto[playerid][slot][pcVehid] = -255;
    SpielerAuto[playerid][slot][pcCarid] = -255;
    }
    }return true;
    }
    public SpeicherSpielerAutos(playerid,bool:destroy){
    new pcName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pcName,sizeof(pcName));
    new pcFiletext[64],Content[256];
    for(new slot;slot<MAX_PLAYER_CARS;slot++){
    if(SpielerAuto[playerid][slot][pcVehid] >= 400 && SpielerAuto[playerid][slot][pcVehid] <= 611){
    format(Content,sizeof(Content),"%d %.3f %.3f %.3f %.3f %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
    SpielerAuto[playerid][slot][pcVehid],
    SpielerAuto[playerid][slot][pcPos][0],
    SpielerAuto[playerid][slot][pcPos][1],
    SpielerAuto[playerid][slot][pcPos][2],
    SpielerAuto[playerid][slot][pcPos][3],
    SpielerAuto[playerid][slot][pcFarbe][0],
    SpielerAuto[playerid][slot][pcFarbe][1],
    SpielerAuto[playerid][slot][pcLackierung],
    SpielerAuto[playerid][slot][pcTuning][0],
    SpielerAuto[playerid][slot][pcTuning][1],
    SpielerAuto[playerid][slot][pcTuning][2],
    SpielerAuto[playerid][slot][pcTuning][3],
    SpielerAuto[playerid][slot][pcTuning][4],
    SpielerAuto[playerid][slot][pcTuning][5],
    SpielerAuto[playerid][slot][pcTuning][6],
    SpielerAuto[playerid][slot][pcTuning][7],
    SpielerAuto[playerid][slot][pcTuning][8],
    SpielerAuto[playerid][slot][pcTuning][9],
    SpielerAuto[playerid][slot][pcTuning][10],
    SpielerAuto[playerid][slot][pcTuning][11],
    SpielerAuto[playerid][slot][pcTuning][12],
    SpielerAuto[playerid][slot][pcTuning][13],
    SpielerAuto[playerid][slot][pcKaufpreis]);
    format(pcFiletext,sizeof(pcFiletext),"/Spielerautos/%s.%d.txt",pcName);
    new File:pcFile=fopen(pcFiletext,io_write);
    fwrite(pcFile,Content);
    fclose(pcFile);
    if(destroy == true && SpielerAuto[playerid][slot][pcCarid] != -255)
    DestroyVehicle(SpielerAuto[playerid][slot][pcCarid]);
    }
    }return true;
    }
    public ErstelleSpielerAuto(playerid,carslot){
    if(SpielerAuto[playerid][carslot][pcVehid] >= 400 && SpielerAuto[playerid][carslot][pcVehid] <= 611){
    if(SpielerAuto[playerid][carslot][pcCarid] != -255)
    DestroyVehicle(SpielerAuto[playerid][carslot][pcCarid]);
    SpielerAuto[playerid][carslot][pcCarid] = AddStaticVehicleEx(SpielerAuto[playerid][carslot][pcVehid],SpielerAuto[playerid][carslot][pcPos][0],SpielerAuto[playerid][carslot][pcPos][1],SpielerAuto[playerid][carslot][pcPos][2],SpielerAuto[playerid][carslot][pcPos][3],SpielerAuto[playerid][carslot][pcFarbe][0],SpielerAuto[playerid][carslot][pcFarbe][1],-255);
    if(SpielerAuto[playerid][carslot][pcLackierung] != -255) { ChangeVehiclePaintjob(SpielerAuto[playerid][carslot][pcCarid],SpielerAuto[playerid][carslot][pcLackierung]); }
    for(new mod;mod<14;mod++){
    if(SpielerAuto[playerid][carslot][pcTuning][mod] != 0) { AddVehicleComponent(SpielerAuto[playerid][carslot][pcCarid],SpielerAuto[playerid][carslot][pcTuning][mod]); }
    }
    }return true;
    }


    Ich hoffe du kannst mir helfen.
    wie gesagt das ist ein Selfmade.

  • Wird das Auto denn richtig in der Datei gespeichert und ist das Auto garnicht auf dem Server mehr oder nur an der falschen Position?


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Ich fragte, ob es richtig gespeichert wurde in der Datei - nicht ob die Datei existiert ;) Das, das Fahrzeug verschwindet wenn sich der Spieler ausloggt - ist natürlich. Verschwindet auch die Datei beim Relog? Wird die Funktion "ErstelleSpielerAuto(playerid,carslot)" im Public OnPlayerConnect aufgerufen? Diese Informationen wären für uns sicherlich hilfreich.


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Ungerne Poste ich Anmerkungen, da ich es selbst als Müll Post (Spam) sehe - dennoch fehlt mir noch die Antwort auf eine wichtige Frage:

    Zitat

    Wird die Funktion "ErstelleSpielerAuto(playerid,carslot)" im Public OnPlayerConnect aufgerufen?


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Allso es steht nicht unter Public OnPlayerConnect das hier:

    Zitat

    "ErstelleSpielerAuto(playerid,carslot)"

    Und wenn ich es rein mache steht da wenn ich compile dieser error:

    Zitat

    error 017: undefined symbol "carslot"

    Kann es daran liegen?

  • @RaZ3r: Nein, habe mir den Code nochmal genauer angeschaut - die Funktion wird bereits in LadeSpielerAutos(..); aufgerufen. LadeSpielerAutos(..); hast du aber unter OnPlayerConnect, oder? Wenn ja, debug mal die Funktion LadeSpielerAutos(..);:

    Zitat

    Debug einfach mal deinen Code, um ermitteln zu können bis wohin der Code kommt & ob der Code überhaupt wie erwünscht aufgerufen wird. Debuggen kann man auf mehrere Arten - ich empfehle es via Konsolenausgabe (print & printf). Falls du nicht weißt, wie du etwas Debuggen kannst - hier kommt ein kleines, einfaches Beispiel: » Beispiel «. Falls du dies immer noch nicht verstanden hast, und ein besseres Beispiel o. genauere Erklärung möchtest - sende mir eine Nachricht mit dem Betreff: 'Debugerklärung'. Wenn du nach dem Debuggen nicht weiter kommst, bitte die Konsolenausgabe (meist aus der serverlog(.txt) Datei im Verzeichnis wo die samp-server(.exe) Datei ist) hier posten.


    //Editierung:
    MasterOfDarkness: Gerade auch bemerkt, passiert - Fehler sind menschlich. ;)


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.