Carkaufen und Carverkaufen Problem

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
    Nachdem ich Mithilfe von Templer einige Grundlegende Bugs beheben konnte, ergibt sich nun ein vollkommen neues Problem. Wenn ich mir ein Auto kaufe und nachher /carlock oder /carparken eingebe, geht das alles 1a. Sobald ich jedoch in die restlichen (nicht mir gehörenden) Cars sitze und einen 2. Car kaufen möchte, steht: Du kannst dieses Fahrzeug ncht kaufen. Zudem kann ich die restlichen (nicht mir gehörenden) Fahrzeuge parken und verschliessen/aufschliessen.


    Nun, die SCM: Du kannst dieses Fahrzeug nicht kaufen kommt daher, dass ein Fahrzeug nur kaufbar ist, wenn es fVerkauft == 0 ist. Beim Kaufen des 1.Cars wird das fVerkauft auf 1 gesetzt. Ich könnte nun theoretisch ein 2.Fahrzeug kaufen. Jetzt wird jedoch lustigerweise der Wert aus dem 1.Car genommen, das 2.Fahrzeug ist also "Verkauft" (Was es ja nicht ist). Zudem habe ich ein Problem, dass ich die Cars welche ich Ingame lösche, nicht wirklich gelöscht werden, sondern beim nächsten Restart wieder respawnen.


    //Edit 17:35
    Noch schlimmer, alle Player haben das Problem, einer kauft ein Car, die anderen 2 Spieler haben die SCM:Car kann nicht gekauft werden. Muss ich für playerid auch eine forschleife machen oder wie ?



    if(strcmp(cmd,"/carkaufen",true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(Player[playerid][car_zahl] >= MAX_SPIELER_CAR){SendClientMessage(playerid,COLOR_GREY,"Du hast bereits die Maximale Anzahl an Fahrzeugen erreicht");break;}
    if(FDaten[i][fVerkauft] == 1){SendClientMessage(playerid,COLOR_GREY,"Das Auto kann nicht gekauft werden");break;}
    if(FDaten[i][fJob] != 0){SendClientMessage(playerid,COLOR_GREY,"Das Auto kann nicht gekauft werden");break;}
    if(FDaten[i][fFraktion] != 0){SendClientMessage(playerid,COLOR_GREY,"Das Auto kann nicht gekauft werden");break;}
    if(FS_GetPlayerMoney(playerid) < FDaten[i][fPreis]){SendClientMessage(playerid, COLOR_GREY,"Du hast nicht genügend Geld");break;}
    strmid(FDaten[i][fBesitzer],spielername(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[i][fVerkauft] = 1;
    FS_GivePlayerMoney(playerid, -FDaten[i][fPreis]);
    Player[playerid][car_zahl]++;
    SendClientMessage(playerid,COLOR_GREEN,"Fahrzeug wurde erfolgreich gekauft");
    SaveCache();
    break;
    }
    return 1;
    }
    if(strcmp(cmd,"/carverkaufen",true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(strcmp(FDaten[i][fBesitzer],spielername(playerid))){SendClientMessage(playerid,COLOR_GREY,"Dieses Fahrzeug gehört nicht dir");break;}
    strmid(FDaten[i][fBesitzer],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[i][fLocked] = 0;
    FDaten[i][fVerkauft] = 0;
    FDaten[i][fVerwahrt] = 0;
    Player[playerid][car_zahl]--;
    FS_GivePlayerMoney(playerid, FDaten[i][fPreis]);
    SendClientMessage(playerid,COLOR_GREEN,"Fahrzeug wurde erfolgreich verkauft");
    SaveCache();
    break;
    }
    return 1;
    }


    MfG dUDA

  • Hallo
    Also, das eine Problem ist gelöst, jedoch habe ich nun noch ein anderes. Ich kann mehr als 2 Cars kaufen, obwohl die Carlimite bei 2 liegt.


    #define MAX_SPIELER_CAR 2 // Maximale Anzahl an Fahrzeugen pro Spieler
    if(strcmp(cmd,"/carkaufen",true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(FDaten[i][fCarID] != GetPlayerVehicleID(playerid)) continue;
    if(Player[playerid][car_zahl] >= MAX_SPIELER_CAR){SendClientMessage(playerid,COLOR_GREY,"Du hast bereits die Maximale Anzahl an Fahrzeugen erreicht");break;}
    if(FDaten[i][fVerkauft] == 1){SendClientMessage(playerid,COLOR_GREY,"Das Auto kann nicht gekauft werden");break;}
    if(FDaten[i][fJob] != 0){SendClientMessage(playerid,COLOR_GREY,"Das Auto kann nicht gekauft werden");break;}
    if(FDaten[i][fFraktion] != 0){SendClientMessage(playerid,COLOR_GREY,"Das Auto kann nicht gekauft werden");break;}
    if(FS_GetPlayerMoney(playerid) < FDaten[i][fPreis]){SendClientMessage(playerid, COLOR_GREY,"Du hast nicht genügend Geld");break;}
    strmid(FDaten[i][fBesitzer],spielername(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    FDaten[i][fVerkauft] = 1;
    FS_GivePlayerMoney(playerid, -FDaten[i][fPreis]);
    Player[playerid][car_zahl]++;
    SendClientMessage(playerid,COLOR_GREEN,"Fahrzeug wurde erfolgreich gekauft");
    SaveCache();
    break;
    }
    return 1;
    }


    MfG dUDALUS

  • Ein neuer Tag für Horst auf der Staatsbrücke neben einem Fest, welches er später merkt...

    So Mr. Dudalus, der arme Horst hat vergessen sich sein Ergebnis, was er vorher schwerst ausgerechnet hat, zu merken. Na capiché? ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!