Hey Leute,
wie die Überschrift schon sagt, habe ich ein Haus-System geschrieben welches ich hier gerne veröffentlichen würde.
************************ Infos: *************************
Version: 1.0 Beta
Scripter: Black_Game (auch als Sascha_Loisi bekannt)
Pastebin: klick hier
Download: klick hier
*********************************************************
Besonderheiten:
Bei diesem Haus System muss man keine einzige Datei (bis auf den Ordner: "Houses") im scriptfiles Ordner erstellen. Dann können alle Häuser ingame erstellt werden. Für jedes Haus wird eine eigene Datei angelegt, ist vielleicht nicht so Speicher sparend, aber meiner meinung nach übersichtlicher wenn man einzelle Häuser entfernen/bearbeiten möchte.
Befehle:
/createhouse [Preis] --> Ingame ein Haus erstellen
/besichtigen --> Ein noch zu verkaufendes Haus besichtigen
/enter --> Ein Haus betreten (falls es aufgeschlossen ist, oder man der besitzer ist)
/exit --> Ein Haus verlassen
/buyhouse --> Ein Haus kaufen (wenn es zum Verkauf freisteht, und man genug Geld besitzt)
Installation:
Bevor ihr das Haus-System einwandfrei verwenden könnt, müsst ihr natürlich auch eine kleine Installation durchgehen, da ich das System nicht an das Account- und Adminsystem jedes Servers anpassen kann. Dazu müsst ihr erst alle includes auch in eurem Gamemode einfügen, und dann natürlich alles was im Haus-System vorhanden ist dort rüber kopieren. Wenn ihr das geschafft habt, müsst ihr natürlich noch alles anpassen, ihr sucht dafür nach: "dcmd_createhouse" und dort solltet ihr dann folgende Zeilen sehen:
/*if(!IsPlayerAdmin(playerid)) //Deine Admin definition
{ return SendClientMessage(playerid,COLOR_RED,"Dein Admin Level reicht nicht aus."); }*/
dies ersetzt ihr durch euer Admin System
Beispiel:
if(PlayerInfo[playerid][pAdmin] < 1000)
{ return SendClientMessage(playerid, COLOR_RED,"Du benötigst mindestens Admin Level 1.000."); }
Wenn ihr das geschafft habt, müsst ihr natürlich noch einige kleine dinge machen, wenn man auch im Haus Spawnen soll, und wenn man nur ein Haus besitzen soll.
Man darf nur ein Haus besitzen?? Dann macht folgendes:
Ihr sucht nach der zeile in der steht: "dcmd_buyhouse". Dort sucht ihr dann diesen Teil:
if(GetPlayerMoney(playerid) >= preis)
{
GivePlayerMoney(playerid, GetPlayerMoney(playerid) - preis);
dini_IntSet(hName, "InBesitz", 2);
dini_IntSet(hName, "Preis", 0);
dini_Set(hName, "Besitzer", pName);
//Dem Spieler wird das Haus zugeteilt usw..
UpdateHouse(h);
SendClientMessage(playerid, COLOR_RED, "Du hast dieses Haus nun erfolgreich gekauft.");
}
und ändert diesen Teil je nach euren Account System, dass es dann ca so aussieht:
if(GetPlayerMoney(playerid) >= preis)
{
if(PlayerInfo[playerid][pHouse] != 25555) //25555 ist jetzt die Zahl die im Acc Data steht wenn er kein Haus besitzt.
{ return SendClientMessage(playerid,COLOR_RED,"Du besitzt bereits ein Haus."); }
PlayerInfo[playerid][pHouse] = h;
GivePlayerMoney(playerid, GetPlayerMoney(playerid) - preis);
dini_IntSet(hName, "InBesitz", 2);
dini_IntSet(hName, "Preis", 0);
dini_Set(hName, "Besitzer", pName);
UpdateHouse(h);
SendClientMessage(playerid, COLOR_RED, "Du hast dieses Haus nun erfolgreich gekauft.");
}
Man soll im Haus spawnen?? Dann macht folgendes:
Ihr navigiert zu "OnPlayerSpawn" und fügt dort folgendes hinzu:
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pHouse] != 25555) //je nach eurem Acc System
{
new h = PlayerInfo[playerid][pHouse];
new hName[100];
format(hName, sizeof(hName), "House/Haus%d.ini", h);
if(fexist(hName))
{
new Float: hix, Float: hiy, Float: hiz;
new in, vw;
hix = dini_Float(hName, "hix");
hiy = dini_Float(hName, "hiy");
hiz = dini_Float(hName, "hiz");
in = dini_Int(hName, "Interior");
vw = dini_Int(hName, "VirtualWorld");
SetPlayerVirtualWorld(playerid, vw);
SetPlayerInterior(playerid, in);
SetPlayerPos(playerid, hix, hiy, hiz);
}
}
return 1;
}
Geplant für die nächste Version:
In der nächsten Version soll es dann folgendes zusätzlich geben:
/edit --> Das Haus (als Administrator) bearbeiten (Preis, Interior, ... )
/leavehouse --> Das Haus "verlassen" (es steht wieder zum verkauf bereit)
/sellhouse [playerid] [preis] --> Einen anderen Spieler das Haus verkaufen
Schlusswort:
Leute, bitte vergesst nicht, dies ist nur die Version 1.0 BETA. Ich möchte mit dieser Veröffentlichung eigentlich nurmal sehen was ihr von meiner Idee des Haus systems so haltet.
Also spart euch bitte solche Kommentare wie: "Das kann man ja ingame gar nicht bearbeiten??", und so Kommentare wie dieses eben, das wird natürlich alles noch kommen.