Hey da sich hier sehr viele Fragen wie man 2x oder öfters einen Interior nutzt en kan hier mal ein kleines Tutorial
Das Tutorial geht hauptsächlich um :
SetPlayerVirtualWorld(playerid,1);//die 1 ist die Virtual Welt
Dies heißt oder eher gesagt macht den Spieler in eine andere Welt normaler weise sind alle in Welt 0 darum wen ihr in der Virtual World 2 seit dann sieht man nur die Spieler die auch in Welt 2 sind das heißt man sieht nur die Spieler die in der gleichen Welt sind.
So fangen wir mal an:
Da wir ja jetzt z.B. in den BSN wollen erweitern wir den alten Port.
Mit dem „SetPlayerVirtualWorld” da wir beim raus Porten aus dem interior die Virtualworld abfragen können
Hier mal ein bsp wie der Befehl dann aussieht (Coords sind erfunden !)
if(PlayerToPoint(3.0, playerid,123.123,123.123,123.123))//
{
GameTextForPlayer(playerid, "~p~ BSN",5000,3);//zeig dem spieler einen Text
SetPlayerPos(playerid, 363.4932,-74.7546,1001.5078);//Hier wirdt man in den BSN geportet
SetCameraBehindPlayer(playerid);
SetPlayerInterior(playerid,10); //Bestimmt den interior
SetPlayerVirtualWorld(playerid,1);//die 1 ist die Virtual Welt
}
if(PlayerToPoint(3.0, playerid,300.5831,-1490.8918,24.5989))//BSN LV
{
GameTextForPlayer(playerid, "~p~ BSN",5000,3);
SetPlayerPos(playerid, 363.4932,-74.7546,1001.5078);
SetCameraBehindPlayer(playerid);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,2);//da jetzt eine 2 weil er soll ja nacher auch gehen :)
}
// Hier könnte man jetzt immer so weiter machen immer eins mehr...
So jetzt wen wir im Bsn sind wollen wir ja auch wieder raus kommen
Dazu benutzen wir jetzt diese Abfrage
if(GetPlayerVirtualWorld(playerid) == ID))//hier könnt ihr jetzt anstat der 1 die Welt hin schreiben in der ihr seit
Diese Abfrage frägt ab in welcher welt der spieler ist das hat bei uns den vorteil da wir zB in Ls in den BSN geggangen sin
dan auch wiedeer in LS raus kommen und nicht in Sf weil ihr 2x den gleichen port von der gleichen stelle gemacht habt.
Also wir jetzt raus wollen müssen wir wieder den befehl erweitern das sieht dan so aus z.B.
if(PlayerToPoint(3.0, playerid, 363.4932,-74.7546,1001.5078))//da wir ja von der position Porten muss man das nicht unedlich mal screiben
{
if(GetPlayerVirtualWorld(playerid) == 1)//Hier wird abgefragt ob er in der 1 VirtualWorld ist
{
GameTextForPlayer(playerid, "~p~ Los Santos",5000,3);
SetPlayerPos(playerid,1143.9130,-1323.9363,13.6016);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);//auf 0 da wir ja wieder alle sehen wollen
}
else if(GetPlayerVirtualWorld(playerid) == 2)//Hier wird abgefragt ob er in der 2 VirtualWorld ist
{
GameTextForPlayer(playerid, "~p~ Las Venturas",5000,3);//dieser text komt wen er raus geht
SetPlayerPos(playerid,1143.9130,-1323.9363,13.6016);//Hier wird der spieler geportet
SetPlayerInterior(playerid,0);//setzt den interior wieder auf 0
SetPlayerVirtualWorld(playerid,0);//auf 0 da wir ja wieder alle sehen wollen
}
//hier könnte man jetzt wieder else if(getPlayerVi..... machen
}
}
ich weiß das ist umständlich ich bin aber gerade auch dabei ein Leichteres System zu scripten dieses Filterscript wird in Kürze auch kommen
aber ich dachte mir ich zeig euch wie das geht
damit ihr das versteht
MFG waidi
/edit Fehler entdeckt und behoben