MyCars [MySQL Carsystem] [v1.2.1]

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
  • Entwicklung eingestellt | Es wird kein Support mehr gegeben



    MySQL Carsystem



    Einleitung


    Zunächst einmal zum Namen. Das "My" hat hier zwei Bedeutungen. Zum einen das "mein", was die Funktion, ein Auto zu besitzen, darstellt. Zum anderen steht es aber auch für MySQL.
    An diesem Carsystem bin ich jetzt schon etwas länger dran. Es ist sehr einfach zu Bedienen.
    Jedoch ist es noch lange nicht fertig. Personen, denen das Fahrzeug nicht gehört, können auch nicht damit fahren, aus diesem Grund wird bald noch ein Key-System folgen.
    Es wird regelmäßig Updates geben und es lohnt sich daher, immer mal reinzuschauen.



    Was ist vorhanden


    Momentan sind noch recht wenige Funktionen vorhanden, aber es ist durchaus verwendbar.
    Rcon-Admins können Autos erstellen, User können sie kaufen. User, die ein Auto haben, können es fahren.
    Außerdem gibt es ein Menü, in dem man das Kennzeichen ändern, und das Auto verkaufen kann.
    Personen, denen das Auto nicht gehört, werden gefreezt, sobald sie als Fahrer in das Auto steigen. Allerdings können sie dank einer zusätzlichen Funktion normal mit F oder Enter wieder aussteigen.
    Das ganze wird natürlich in einer MySQL-Datenbank gespeichert. Dadurch kann man leicht, auch ohne InGame gehen zu müssen, Autos bearbeiten.
    Lästiges Dateien-Öffnen und Suchen ist hiermit Vergangenheit.


    Ab v1.1: Ändert man im Transfender die Autofarbe, so wird dies nun gespeichert.
    Ab v1.2: Das Tuning wird vollständig gespeichert. Außerdem gibt es eine Update-Funktion, obwohl der Name hier falsch ist. Sie informiert einen lediglich, sobald eine neue Version verfügbar ist. Das war so eine kleine Spielerei von mir :P



    Installation


    Die Installation ist meiner Meinung nach alles andere als schwer. Man muss lediglich eine Datenbank mit beliebigem Namen erstellen und dann die #defines im Script anpassen.
    Diese möchte ich hier erklären:

    #define MYSQL_HOST "localhost" // Das hier ist der MySQL-Host, meist localhost oder 127.0.0.1
    #define MYSQL_USER "root" // Der Datenbank-User
    #define MYSQL_PASSWORD "" // Das Password des Users
    #define MYSQL_DATABASE "Cars" // Der Datenbank-Name


    Dann muss noch sichergestellt werden, dass keine Tabelle namens "Cars" in dieser Datenbank vorhanden ist.
    Beim ersten Scriptstart sollte sich diese Tabelle nun generieren.
    DialogID's habe ich verwendet 501 - 504, dies kann man allerdings auch an den #defines ändern.



    Verwendung


    Rcon-Admins können, wenn sie eingeloggt sind, mit /createcar Autos erstellen. User können sie dann mit /buyveh kaufen und mit /configcar bearbeiten.
    Mit /park wird die Position gespeichert.



    Download


    Pastebin: Klick
    Includes & Plugins: Klick


    Changelog:
    /configcar Bug gefixt
    Öffentliche Debug entfernt


    v1.1 Farben werden gespeichert
    v1.2 Tuningspeicherung
    v1.2.1 Performance Update 1 / 2


    Coming soon:
    Verbesserung der MySQL-Systeme
    Autohaus??


    Edits:
    Edit 1: Changelog, Coming soon, Edits
    Edit 2: Textgestaltung
    Edit 3: Bug-Behebung
    Edit 4: Neue Funktion
    Edit 5: UPDATEEEE
    Edit 6: Performance Update
    Edit 7: Edit 6 eingefügt

    8 Mal editiert, zuletzt von Ternary ()

  • Das ist kein Error sondern ein Warning, was an sich keine Auswirkungen auf den Code hat.
    Das Problem ist, dass die besagte Funktion vor FilterScriptInit muss, nur käme meine wunderschöne Ordnung dadurch durcheinander xD


    Compilen kann mans ja trotzdem.

  • Das System benutzt mein MySql System was etwas editiert wurde.
    Ich freue mich das ich hier im Showroom mal wieder was neues sehe.
    Ich würde am SQl System aber noch einiges verändern an deiner Stelle denn so wie es momentan ist, ist es nicht der beste Weg.
    Im Allgemein gefällts mir Script Technisch.


    Bewertung: 8/10 Brotfische.


    LG RFT

    RFT

  • Lol hab ich das Doppelt??
    Kann eigentlich nicht sein. Bei meinen Tests wurden die Autos nicht doppelt geladen sonst sind die ja so aufeinander xD.
    Ich guck ma, vllt hab ich mich "verkopiert" in pastebin. Oder wo war das?


    Edit: war beides ist jetzt geändert.
    RFT Ich habe es aus dem MySQL-Tutorial, weiß nicht ob es von dir war, war halt mein erstes MySQL-Script und habe mich dann an dem Tutorial orientiert was den MySQL-Kram angeht

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Dein name ist ja auch MyKevin xD


    Ja wie gesagt bin noch dabei, bin jetzt 3 Tage dran am werkeln immer ma so ne halbe stunde oder so.


    Es gibt natürlich viele Car-Systeme aber hier in Breadfish, habe ich erst eins mit MySQL gesehen (DT DynamicCars??)

  • jo, DT_DynamicCars ist das erste Mysql system aus deutscher herstellung (ka obs bei sa-mp.com schon eins gab).
    Es war am anfang aber file basiert

  • Finds komisch, dass das noch keiner gemerkt hat.


    Wenn man in /configcar auf Verkaufen geklickt hat passierte nichts.
    Aber wenn man auf Schlüssel - was eigentlich gar nicht da sein sollte - klickt, kam der Verkaufen-Dialog.


    Und die debug bei /createcar wurde entfernt

  • Uhh mein Scriptlehring ist groß geworden :D


    Naja ausbaufähig ists auf jeden fall^^
    Was ICH ändern würde hab ich dir ja schon geschrieben :P

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Zum Laden der Fahrzeuge reicht ein Query. Du verwendest fast 30 !
    Da du sscanf bereist verwendest kannst du einfach den Resultstring aufteilen.
    Tutorial dazu findest du hier. (Beispiel steht unter Enum)


    Für /park benötigst du auch nur einen Query.

    // Vorher:
    format(query, 128, "UPDATE `Cars` SET `x` = '%f' WHERE `id` = '%d';", Car[mycar][x], mycar);
    mysql_query(query);
    format(query, 128, "UPDATE `Cars` SET `y` = '%f' WHERE `id` = '%d';", Car[mycar][y], mycar);
    mysql_query(query);
    format(query, 128, "UPDATE `Cars` SET `z` = '%f' WHERE `id` = '%d';", Car[mycar][z], mycar);
    mysql_query(query);
    format(query, 128, "UPDATE `Cars` SET `r` = '%f' WHERE `id` = '%d';", Car[mycar][r], mycar);
    mysql_query(query);
    // Besser:
    format(query, 128, "UPDATE `Cars` SET `x` = '%f', `y` = '%f', `z` = '%f' , `r` = '%f' WHERE `id` = '%d';", Car[mycar][x], Car[mycar][y], Car[mycar][z], Car[mycar][r], mycar);
    mysql_query(query);


    Zur Sicherheit würde ich noch eine Anti-Spam- Maßnahme einbauen für alle Befehle die MySQL verwenden.
    Ansonsten ganz nett ;)
    Lg Snail


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------