(Dynamisches) Immobiliensystem - Dini

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
  • Guten Abend,


    ich veröffentliche hier meine erste Include,
    die ich erstellt habe.


    Das ganze ist eine Include (Dini-Basis), mit der ihr Ingame
    Immobilien erstellen, löschen, editieren und mit diesen
    dann arbeiten könnt. Verbesserungsvorschläge und Kritik ist
    immer willkommen, da das ja, wie bereits gesagt, meine erste
    veröffentlichte Include ist.


    Defines:
    #define MAX_IMMOS 50 //Maximale Anzahl an Immobilien
    #define IMMO_RESELL 0.5 //Immobilienpreis * IMMO_RESELL = Verkaufspreis
    #define IMMO_ICON 1274 //Erklärt sich von selbst
    #define IMMO_DRAW_DIS 15.0 //Darstellungsdistanz des 3D-Labels
    #define IMMO_RANGE 2.0 //Maximale Distanz für GetPlayerImmo
    #define IMMO_MAX_NAME 32 //Maximale Länge des Names einer Immobilie
    #define IMMO_COLOR 0xFFD200FF //Farbe des 3DLabels
    #define IMMO_FILE "/IMMO_FILES/" //Speicherordner für Immobilien


    Die Funktionen:
    CreateImmo(id,Name[],Preis,Gewinn,Float:XPos,Float:YPos,Float:ZPos); //Die ID entweder manuell wählen, oder GetFreeImmoID() - Empfohlen
    DeleteImmo(id); //Die ID entweder manuell wählen, oder GetFreeImmoID() - Empfohlen
    LoadImmo(id, bool:reload=false); //Reload=true => Laden & Einstellungen neu von Datei laden
    SaveImmo(id, bool:unload=false); //Unload=true => Speichern & "Entladen" - nicht löschen
    LoadAllImmos(bool:reload=false); //Erklärt sich von selbst
    SaveAllImmos(bool:unload=false); //Erklärt sich von selbst
    UpdateImmo(id); //Erneuert das 3D-Label
    BuyImmo(id, playerid, bool:force=false); //Spieler kauf Immobilie - Geld wird abgezogen. Force => Auch wenn schon vergeben ist
    SellImmo(id, playerid=-1); //Verkauft Immobilie. Playerid => wenn angegeben, bekommt der Spieler den Verkaufspreis
    MoveImmo(id, Float:x, Float:y, Float:z); //Verschiebt Immobilie + 3D-Label
    IsImmoCreated(id); //Ob die Immobilie mit der ID erstellt wurde
    IsImmoFree(id); //Ob diese Immobilie schon verkauft ist
    GetFreeImmoID(); //Gibt die erste freie, nicht erstellte Immobilienid aus
    SetImmoGewinn(id, Gewinn); //Erklärt sich von selbst
    SetImmoPreis(id, Preis); //Erklärt sich von selbst
    SetImmoName(id, Name[]); //Erklärt sich von selbst
    SetImmoOwner(id, playerid); //Erklärt sich von selbst - Ohne Geldabzug
    GetImmoOwnerByName(id); //Gibt die Playerid des Owners der Immobilie an, wenn er online ist
    GetImmoPos(id, &Float:x, &Float:y, &Float:z); //Wie GetPlayerPos, nur für Immobilie
    GetImmoGewinn(id); //Erklärt sich von selbst - Für Paydays könnt ihr euch selbst etwas überlegen^^
    GetImmoPreis(id); //Erklärt sich von selbst
    GetImmoName(id); //Erklärt sich von selbst
    GetImmoOwner(id); //Erklärt sich von selbst
    GetPlayerImmo(playerid); //Gibt die ID der Immobilie an, an der er sich gerade befindet
    IsPlayerImmoOwner(id, playerid); //Erklärt sich von selbst
    GetPlayerImmoCount(playerid); //Wie viele Immobilien der Spieler gekauft hat


    So werden die Immobilien gespeichert:
    Die Immobilien werden in dem vorher definierten Ordner so abgelegt:
    IMMO-%d.ini => %d steht hier für die Immobilienid


    Download:
    Pastebin: http://pastebin.com/nQwLxfJW
    Solidfiles: http://www.solidfiles.com/d/902e462c04/



    Screenshot:





    Viel Spaß :D
    NeRoTeX

    Berlin - Tel Aviv - Moskau

  • Wenn man die Anzahl noch IG immer ändern kann, wäre es wirklich Dynamisch ;)
    Ansonsten eine gute Idee, paar Sachen könnte man noch verbessern.


    • alles in einer Datei speichern
    • eventuell eine Variable falls man es in SQL (MySQL) speichern will

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Schaut wirklich sehr gut aus NeRoTeX :)


    Bei mir geht soweit alles außer:



    ocmd:test(playerid,params[])
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateImmo(GetFreeImmoID(), "Neue Immobilie", 50000, 5000, x, y, z);
    return 1;
    }


    InGame sagt mir der Server: SERVER: Unknown command
    Weiß vllt jemand woran es liegen könnte? :D. Der Ordner "IMMO_FILES" ist auch vorhanden.
    Inc wird ohne Fehler geladen. Ich weiß gerade nicht woran es liegen könnte ?(...

  • Dann müssten ja eig alle Cmd's geblock sein.
    Habe auch schon geschaut ob die anderen Cmd's noch gehen. Es gehen noch alle Cmd's außer halt das um ein "Haus" zu erstellen...


    Nur mal so ne Idee:
    Mach mal return 0; :D



    kann mir vielleicht mal einer alle befehle schiecken


    wär nett
    habe nämlich noch nicht so viel erfahrung in scripten^^


    Nimm einfach einen Befehl und setz die Funktionen, die du haben möchtest, ein:
    ocmd:delimmo(playerid,params[])
    {DeleteImmo(GetPlayerImmo(playerid));
    return 1;
    }
    Nach dem gleichem Prinzip kannst du alle Funktionen einsetzen.

    Berlin - Tel Aviv - Moskau