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ß
NeRoTeX