Interiors mehrmals benutzen

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
  • 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 :)

  • Das es sich immer selber ein freien VWorld aussucht etc... Geht eigentlich viel viel leichter, wenn man ein Haus / BIZ System drin hat...


    Ein Tipp:


    Jedes Haus hat eine eigene ID ---> eigene VWorld erstellbar ;)

  • Hallo.
    Ich habe das in mein script rein getarn aber es funktionirt nicht so ganz wenn ich aus den bsn z.B nun wieder raus will passirt nichts, ich komme zwahr rein aber nicht mehr raus so habe ich es gemacht:
    //---------------essen
    if(PlayerToPoint(3.0, playerid,1200.3805,-920.8239,43.1016))//
    {
    GameTextForPlayer(playerid, "~p~ BSN",5000,3);
    SetPlayerPos(playerid, 364.3506,-73.3920,1001.5078);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,1);
    }
    if(PlayerToPoint(3.0, playerid,811.1425,-1616.0282,13.5469))
    {
    GameTextForPlayer(playerid, "~p~ Bürger shot",5000,3);
    SetPlayerPos(playerid, 364.3506,-73.3920,1001.5078);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,2);
    }
    if(PlayerToPoint(3.0, playerid, 363.1246,-74.8857,1001.5078))
    {
    if (GetPlayerVirtualWorld(1))
    {
    GameTextForPlayer(playerid, "~p~ Los Santos",5000,3);
    SetPlayerPos(playerid,1199.3352,-918.7921,43.1178);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    else if(GetPlayerVirtualWorld(2))
    {
    GameTextForPlayer(playerid, "~p~ Los Santos",5000,3);
    SetPlayerPos(playerid,813.5824,-1615.8926,13.5547);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    }
    in: public CustomPickups(playerid)