Gang/Fraktions autohaus

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 Breadfish ich habe mich heute mal an ein Fraktionsautohaus gemacht.
    Ich nutze als normales System das Fs von DtSniper in veränderter Form(MySql).


    Beim start des Servers soll er alle Autos Laden die bereits gekauft wurden. Dies Funktioniert auch recht gut.
    Allerdings wenn man ein neues kaufen möchte wird es nicht gekauft.
    Geöffnet wird alles durch einen Dialog der den Style MSG_Box besitzt (kaufen|Abbrechen).
    Nun muss ich aber einen Leeren Platz in der MySql Tabelle finden die der Fraktion gehört.
    Die Tabelle sieht so aus.

    So habe ich mir das gedacht.

    if(dialogid == DIALOG_GANGCAR)
    {
    if(response)
    {
    new string[128];
    new typi=GetVehicleModel(GetPlayerVehicleID(playerid));
    new preis = Kaufliste[typi][Preis];
    if (preis <= SpielerInfo[playerid][pGeld])
    {
    mysql_query("SELECT Nummer FROM gangcars WHERE Fraktion = %i && Typ = -1",SpielerInfo[playerid][pFraktion]);
    mysql_store_result();
    new ka =-1;
    ka=mysql_fetch_int();
    mysql_free_result();
    if(ka!=-1)
    {
    new autohaus=Kaufliste[typi][Autohaus];
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    SpielerInfo[playerid][pGeld]=SpielerInfo[playerid][pGeld]-preis;
    format(Query, sizeof(Query), "UPDATE `gangcars` SET `Typ` = %d WHERE `Nummer` = '%i'",typi,ka);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE `gangcars` SET `X` = %f, `Y` = %f, `Z` = %f, `Rotation` = %f WHERE `Nummer` = '%i'",Autospawns[autohaus][Xcar],Autospawns[autohaus][Ycar],Autospawns[autohaus][Zcar],Autospawns[autohaus][Rotation],ka);
    mysql_query(Query);
    new farbe1,farbe2;
    if(SpielerInfo[playerid][pFraktion]==1)
    {
    farbe1=0;
    farbe2=1;
    }
    new car=AddStaticVehicleEx(typi,Autospawns[autohaus][Xcar],Autospawns[autohaus][Ycar],Autospawns[autohaus][Zcar],Autospawns[autohaus][Rotation],farbe1,farbe2,-1);
    gCarlist[car][Xcar]=Autospawns[autohaus][Xcar];
    gCarlist[car][Ycar]=Autospawns[autohaus][Ycar];
    gCarlist[car][Zcar]=Autospawns[autohaus][Zcar];
    gCarlist[car][Rotation]=Autospawns[autohaus][Rotation];
    gCarlist[car][Typ]=typi;
    SetVehicleNumberPlate(Carlist[playerid][Carid],"");
    RemovePlayerFromVehicle(playerid);
    format(string, sizeof(string), "Du hast dir erfolgreich für $%i ein/einen %s gekauft!", preis, Kaufliste[gCarlist[car][Typ]][carName]);
    SendClientMessage(playerid, FARBE_WEIß, string);
    SendClientMessage(playerid, FARBE_WEIß, "Infos zu den Befehlen für dein Fahrzeug kannst du mit /vhilfe aufrufen.");
    }
    }
    else
    {
    format(string, 128, "Du hast nicht genug Geld für das Auto (benötigt: $%i)!", preis);
    SendClientMessage(playerid, FARBE_WEIß, string);
    }
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    }
    }

    Wo ist mein Fehler?



    PS: Sry das es etwas verwirrend aussieht ist die Rohfassung.

  • Die Fraktionen sollen eine Max Menge von 20 Cars Pro Fraktion haben wenn ich das mit Insert Into mache wie überprüfe ich die max Menge?
    Desweiteren was ändert das ob ich nun Insert Into mache oder Update?
    Funktionieren sollte es doch eig bei beiden Varianten.


    MfG
    GAS Digital