GF-FraktionCars

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 Leute,



    ich habe hier für einen User im Forum ein Fraktion´s Autohaus geschrieben.
    Beschreibung:



    - Leader einer Fraktion können Fahrzeuge kaufen, verkaufen und parken.
    - Nur Fraktion´s Member können mit den gekaufen Fahrzeugen fahren.
    - Geld wird dem Leader von der Hand abgezogen.
    - Alle Werte werden in einer SQL Datenbank geschrieben.



    Installation:



    Ihr fügt diese beiden Callback´s in euer Script damit mein FS die folgenden Werte zurückgegeben bekommt.



    forward GetPlayerFactionID(playerid);
    public GetPlayerFactionID(playerid)
    {
    if(PlayerInfo[playerid][pLeader]!=0)return PlayerInfo[playerid][pLeader];
    else if(PlayerInfo[playerid][pMember]!=0)return PlayerInfo[playerid][pMember];
    }


    forward GetPlayerLeaderID(playerid);
    public GetPlayerLeaderID(playerid)
    {
    return PlayerInfo[playerid][pLeader];
    }



    Die SQL DB muss per Hand erstellt werden.



    Hier können Auto´s für die Fraktionen in folgenden Schema geaddet werden:



    new fCarDealerCars[2][fCarDealer] = {
    {411,"Infernus",5000,1489.6309,2838.5767,10.5474,180.6838,-1},
    {560,"Sultan",5000,1484.5950,2838.9211,10.5474,179.9544,-1}
    //Model, Name, Preis, X, Y, Z, R, -1 (Für die carid)
    };



    Es werden noch reichlich Update´s kommen hab mir einiges einfallen lassen.



    Download:


    Pastebin




    Achtung: Das Script ist ungetestet dürfte aber funktionieren
    Eine MySql Connect Funktion muss noch eingesetzt werden.
    Ich bitte nur fortgeschrittene User dieses System zu downloaden da es nach dem Update für Anfänger unbrauchbar sein wird.

    Plugin: MySql R6 von GStylez. Nächste Version kommt mit dem R7 Plugin.



    LG RFT

    RFT

    Einmal editiert, zuletzt von iRFT ()

  • Das gefällt mir garnicht....

    format(Query, sizeof(Query), "UPDATE factioncars SET `Model` = '%d' WHERE `id` = '%d'", FactionCars[id][fModel], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `X` = '%f' WHERE `id` = '%d'", FactionCars[id][fX], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `Y` = '%f' WHERE `id` = '%d'", FactionCars[id][fY], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `Z` = '%f' WHERE `id` = '%d'", FactionCars[id][fZ], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `R` = '%f' WHERE `id` = '%d'", FactionCars[id][fR], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `C1` = '%d' WHERE `id` = '%d'", FactionCars[id][fc1], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `C2` = '%d' WHERE `id` = '%d'", FactionCars[id][fc2], FactionCars[id][fSQLid]);
    mysql_query(Query);
    format(Query, sizeof(Query), "UPDATE factioncars SET `Faction` = '%d' WHERE `id` = '%d'", FactionCars[id][fFaction], FactionCars[id][fSQLid]);
    mysql_query(Query);

    So viele Querys ausführen obwohl einer schon reicht.

  • Schön, und sicher gut für Leute die was "leichtest" wollen ohne viel gespamme im Chat oder anderes aber was du noch ändern solltest ist das new c1 = random(126), c2 = random(126); entfernen und einfach -1, -1 verwenden kommt auf das gleiche raus :)



    Hab meinen Grund wieso ich es so gemacht habe.
    Möchte die Farben zusätzlich in die Enum Struktur mit einbeziehen.
    DIes habe ich in den Code allerdings vergessen aber da nutze ich lieber random anstatt die Farben zusätzlich mit GetVehicleColor wiederzugeben.



    LG RFT

    RFT

  • du hast vergessen wv frak cars pro fraktion kaufen kann ^^ weil wenn die jetzt sau viele kaufen ist der slots für die max vehs aufem server belastet :D



    Nö =) Preise realistisch ansetzen und dann passt es.
    Ich würde es vor bearbeitung eh nicht nutzen es ist wie gesagt für einen User hier enstanden und dort ist natürlich nur das nötigste vorhanden.
    Update´s folgen in laufe der nächste 1 - 2 Wochen.



    //Edit: Zumal es nur 100 Slot´s gibt. ich sollte höchstens noch ne Abfrage rein kloppen ob alle Slot´s bereits belegt sind.

    RFT

  • Schöne Arbeit, freue mich das du sowas Veröffentlicht hast, da viele danach suchen.


    Top.
    +10

  • am besten so machen^^


    PHP
    #define MAX_FACTIONS                        (30)//Die Maximale anzahl von Fraktionen Fahrzeuge



    deins sieht simple aus^^ für meins habe ich 3h gebraucht



    Da liegt der Unterschied für das was ich gerade gepostet habe, habe ich 15 - 20 Minuten gebraucht.
    Aber ich baue es in der nächsten Version mal ein da ich die Schleifen mit sizeof gemacht habe ist es nur ne Zeile die verändert werden muss =)


    LG RFT

    RFT

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Naja wie gesagt es ar ursprünglich garnicht geplant ein Faktion´s Autohaus zu bauen.
    Allerdings fragten mich bisher 4 User daher ist dies entstanden.
    Ich werde die Tage nen riesen Update bringen dann sollte es mehr zu gebrauchen sein.
    Ideen könnt ihr ebenso gerne posten.



    LG RFT

    RFT

  • Ich frag mich gerade wie er überhaupt die Datenbank erreichen soll
    Ich finde da nichts was mit mysql_connect zu tun hat



    Garnicht. Habe es wie gesagt nur für einen User erstellt.
    Aber jeder sollte so schlau seine eine Verbindung zur Datenbank herzustellen.
    Wer dies nicht kann sollte dieses Script bitte nicht runterladen. Auch in einer neueren Version werde ich das nicht hinzufügen.
    Ich möchte das dieses Script nur Leute mit Grundkentnisse um nervende Fragen auszuweichen nutzen.



    //Edit: Hab es oben nun mal mit rein geschrieben.

    RFT

  • ICh hatte ein Problem das der /fsellcar befehl nich ging habe es geändert so geht er:


    oben ins enum:


    CarPreis
    rein schreiben und beim Laden/updaten auch hinzufügen


    Spoiler anzeigen
    if(strcmp(cmdtext, "/fsellcar", true) == 0)
    {
    new car = IsPlayerInAFactionCar(GetPlayerVehicleID(playerid));
    if(car != -1) {
    if(PlayerInfo[playerid][pLeader] != 0) {
    if(PlayerInfo[playerid][pLeader] == FactionCars[car][fFaction]) {
    GivePlayerMoney(playerid, FactionCars[car][CarPreis]);
    DestroyVehicle(GetPlayerVehicleID(playerid));
    FactionCars[car][fExist] = false;
    SendClientMessage(playerid, Gruen, "Info: Du hast dieses Fahrzeug für die hälfte des neupreises verkauft.");
    format(string, sizeof(string), "DELETE FROM `factioncars` WHERE `id` = %d", FactionCars[car][fSQLid]);
    mysql_query(string);
    return 1;
    } else return SendClientMessage(playerid, Rot, "Info: Dieses Fahrzeug gehört nicht zu deiner Fraktion.");
    } else return SendClientMessage(playerid, Rot, "Info: Du bist kein Leader.");
    } else return SendClientMessage(playerid, Rot, "Info: Du befindest dich in keinem Fraktion´s Fahrzeug.");
    }


    So das wars und danke iRFT das du es erst für mich gescriptet hast und dan veröffentlicht :D

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint: