Hallo liebe Community,
da sich die fragen häufen, wie man ein Haus im GF hinzufügt, werde ich es hier mal erläutern.
So ihr braucht folgendes um ein Haus hinzuzufügen:
- property.cfg
- Godfather (GM)
- Auto Koords(Hausauto=
- /enter point
Also erste such ihr in eurem Script nach folgendem
new HouseInfo[34][hInfo];
und erhöht es um eure Anzahl von Häusern. z.b. um 1
new HouseInfo[35][hInfo];
Nun sucht ihr das
new Float:HouseCarSpawns[34][4] =
[4]
Ist die anzahl der Variablen (KOORDS)
Nur müsst ihr es erhöhen ([34]) um eure Anzahl von Häusern (autos)
new Float:HouseCarSpawns[35][4] =
{
.......
{-2616.1897,-108.4479,4.1693,269.8246}//Haus 35
};
So nun such ihr nach
/enter
und fügt das unten an
else if (PlayerToPoint(3.0, playerid,1344.6765,2610.1416,11.2989))//Haus 35, WO das man /enter macht
{
if(PlayerToPoint(3.0, playerid,1344.6765,2610.1416,11.2989))//Wo man /enter macht
{
SetPlayerPos(playerid,2324.399902,-1147.500000,1050.699951);//Interior ID (Innen Koordianten)
SetPlayerFacingAngle(playerid, 0.00);//Drehung des Spielers
SetPlayerInterior(playerid,12);//Interior
PlayerInfo[playerid][pInt] = 12;//interior
SetPlayerVirtualWorld(playerid, 10);//Virtuele Welt
}
else
{
SetPlayerVirtualWorld(playerid, 10);//Virtuele Welt
}
}
So das gleiche macht ihr bei
/exit
else if (PlayerToPoint(3.0, playerid,2324.399902,-1147.500000,1050.699951) && GetPlayerVirtualWorld(playerid) == 10)//Haus 35, Innen Koordianten und dann Virtuele Welt
{
SetPlayerInterior(playerid,0);//Interior
SetPlayerPos(playerid,1344.6765,2610.1416,11.2989);//enter Koordinaten
SetPlayerFacingAngle(playerid, 90.00);//Spieler drehung
PlayerInfo[playerid][pInt] = 0;//Interior
SetPlayerVirtualWorld(playerid,0);//Virtuelle Welt
}
So nun öffnet ihr die property.cfg und fügt unten das an
Ändert den /buyhouse befehle mal so:
if(strcmp(cmd, "/buyhouse", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
{
format(string, sizeof(string), " Du musst Level %d sein, um das Haus zu kaufen !", HouseInfo[h][hLevel]);
SendClientMessage(playerid, COLOR_GRAD5, string);
return 1;
}
if(PlayerInfo[playerid][pPhousekey] != 255 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
{
SendClientMessage(playerid, COLOR_WHITE, " Du besitzt bereits ein Haus, benutze /sellhouse um das Haus zu kaufen !");
return 1;
}
if(GetPlayerMoney(playerid) > HouseInfo[h][hValue])
{
PlayerInfo[playerid][pPhousekey] = h;
HouseInfo[h][hOwned] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
GivePlayerMoney(playerid,-HouseInfo[h][hValue]);
PlayerPlayMusic(playerid);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
GameTextForPlayer(playerid, "~w~Willkommen zu Hause~n~Du kannst den Haus jederzeit mit /exit verlassen", 5000, 3);
PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
PlayerInfo[playerid][pLocal] = h;
SendClientMessage(playerid, COLOR_WHITE, "Herzlichen Glückwunsch, zu deinem neuen Haus !");
SendClientMessage(playerid, COLOR_WHITE, "Schreibe /househelp um deine neuen Befehle zu sehen !");
DateProp(playerid);
OnPropUpdate();
OnPlayerStatsUpdate(playerid);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, " Du hast nicht genug Geld !");
return 1;
}
}
}
}
return 1;
}
Un das bei SetPlayerSpawn
public SetPlayerSpawn(playerid)
das
if(house !=255)
{
if(SpawnChange[playerid]) //If 1, then you get to your house, else spawn somewhere else
{
SetPlayerToTeamColor(playerid);
SetPlayerPos(playerid, HouseInfo[house][hEntrancex], HouseInfo[house][hEntrancey],HouseInfo[house][hEntrancez]); // Warp the player
return 1;
}
}
1128.1053,-1021.3028,34.9922,234.199996,1064.900024,1084.199951,0,0,0,0,0,0,The State,5 Room House,2500000,0,0,6,1,0,0,0,0,0,418,-1,-1,131,4
So die ersten Drei Koordinaten (x,y,z) sind die daten von /enter (Hausymbol) die anderen (x,y,z) sind die des Interiors (innen). Die "6" ist das Interior.
So nun speicher ihr und fertig ist euer Haus.
Ihr sollte euch das Tutorial von den Virtuelen Welten davor einmal anschauen.
Helpsite:
[ SCRIPTING ] Tutorial - Interios und Virtuel World Godfather