Haussystem von funy888

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
  • Hi Com
    Ich stelle euch heute ein Haussystem von mir vor.
    Es war nicht sehr einfach für mich(für euch vllt. schon aber für mich nicht).


    [tabmenu]


    [tab=Haus erstellen]
    Ihr loggt euch ganz normal als RCON-Admin ein und dann gebt ihr /chouse [Preis] [HausID] ein.
    WICHTIG Die HausIDs ist der Interior
    Das Haus gehört ganz normal dem Staat.
    [tab=Haus kaufen]
    Man geht in das Pickup vor dem Haus da öffnet sich ein Dialog und ihr klickt auf kaufen.
    Wenn ihr genug Geld habt gehört das Haus euch.
    [tab=Häuser zuschließen ]
    Ihr gebt /lock ein dann kommt ein Dialog wo ihr eure HausID eingeben müsst
    [tab=includes ]
    Ihr braucht Dini
    bfx_imStream (im Anhang)
    und Ocmd
    [tab=Ordner erstellen]
    Ihr müsst ein Ordner namens "House" in scriptfiles Ordner erstellen.
    [/tabmenu]


    Pastebin


    Das war mein Haussystem

    7 Mal editiert, zuletzt von funy888 ()

  • Hallo


    3 Anregungen:


    1.) Stringlänge



    hOwner[255],
    hPreis[255],


    Owner symbolisiert ja den Spielernamen, dieser hat die Länge von MAX_PLAYER_NAME, sprich 24. Das betrifft dann auch so etwas:


    GetPlayerName(playerid, name, 255);


    Und warum speicherst Du hPreis als String und nicht Integer ? Solltest Du Cents verwenden,was ich bei solchen Summen nicht denke, speichere den Wert lieber multipliziert mit 100, Stichwort Eurocent


    2.) Ausgabelänge


    Wie oben, aber diesmal geht es darum, dass SendClientMessage maximal 128 Zeichen ausgeben kann, sprich eine grössere Stringlänge reine Verschwendung ist:



    format(string, sizeof(string), "Bitte benutze /chouse [Geld] [HausID].");
    if ( sscanf(params, "ii", preis, interior) ) { SendClientMessage(playerid, error, string);


    Was, sofern es nicht formatiert wird, auch grad so geschrieben werden kann:



    if ( sscanf(params, "ii", preis, interior) ) SendClientMessage(playerid, error, "Bitte benutze /chouse [Geld] [HausID].");
    else
    {
    ...
    }


    3.) Funktionen
    Du musst nicht jede Funktion forward'en, es sei denn sie wird von einem Timer aufgerufen oder es wird explizit verlangt. Das kann dann so aussehen:



    Foobar911(int problem)
    {
    problem = 42 * 42;
    return problem;
    }


    Gruss

  • Ich habs grade probiert
    Ich find es ganz O.K
    Aber was mich bisschen noch stört
    Kann man nicht wieder hausverkaufen?
    Kann man auch nicht einmieten?


    Mfg

  • Das bfx_imStream include ist dafür da dass man mehr als 50 pickups haben kann ...

  • Simpel gemacht, aber es funktioniert wie es soll.
    Für den Anfang schonmal ein guter Start. Weiter so :thumbup:
    7/10

  • Weiss ich noch nicht genau fahr morgen erstmal in den Urlaub ^^

  • Du musst auch ein Ordner namens House erstellen im scriptfiles ordner