Servus Leuts^^
Hab mir mal die zeit genommen ein Tutorial zu schreiben wie man Häuser oder eben nur bestimmte Häuser zugänglich machen kann.
Das Problem ist nur entweder "schaltet" man alle Eingänge ab oder man lässt alle.Wenn man nun aber zum Beispiel keinen Friseur haben will,muss eben alle Gebäude schliessen.
Funktioniert ohne GF!
Fangen wir mal an
Wenn ihr kein Gebäude zugänglich haben möchtet, schreibt ihr unter
public OnGameModeInit()
{DisableInteriorEnterExits() ;}
So dann geht ihr InGame und stellt euch vor die Tür des Hauses(da wo man nacher reingehen soll) und gebt ein (also über "t") /save Haus enter (haus enter is nicht pflicht ihr könnt auhc beim bsn zum beispiel /save bsn enter nehmen das bleibt euch überlassen )
Dann geht ihr dahin wo man wieder aus dem haus rauskommen soll und gebt wieder ein /save haus exit punkt
Dann geht ihr wieder in euer Script und schreibt ganz oben unter die #inlcude
new hausenter //hausenter hab ich es genannt ihr könnt es auch anders nennen^^
So dann geht ihr wieder unter OnGameModeInit und gebt ein
hausenter=CreatePickup(1318,1,x-Koordinate,y-Koordinate,Z-Koordinate); //CreatePickup ist denk ich klar^^ 1218 ist die Pickup id,1 steht dafür dass es nicht verschwindet und der rest is klar^^
Falls man jetzt Compiliert bekäme man ein Warning das hausenter nie benutzt wird also benutzen wir es und am sinnvollsten ist es unter
public OnPlayerPickUpPickup(playerid, pickupid){if(pickupid==hausenter) //also wenn der spieler in unser pickup geht dann passiert das und das so als erstes geht ihr jetzt auf http://weedarr.wikidot.com/interior und sucht euch eine interior aus, kopiert die XYZ und merkt euch die Interior ID und gebt ein
SetPlayerPos(playerid,die-kopierte-x,y,z-koordinaten) {SetPlayerInterior(playerid,PickUpID) //die Pickup id die ihr euch gemerkt habt.}
SO jetzt könnt ihr ins Haus rein,aber noch nicht raus und ihr spawnt irgendwo im haus.
Wenn ihr das nicht wollt geht ihr dahin wo ihr im haus spawnen wollt und macht wieder /save spawn im haus dann sucht ihr wieder im Ordner SavedPositions die xyz koordinaten und kopiert
diese und fügt sie unter OnPlayerPickUpPickupSetPlayerPos(playerid,neue-x,y,z); //da wo wir grad die interior koordinaten eingefügt haben
ein. So wir wollen aber noch den Ausgang machen,dazu gehen wir wieder an die Tür des Hauses (von innen^^) und geben wieder ein /save haus exit innen
Also gehen wir wieder nach oben zum
new Hausenter; new Hausexit; //das wird unser ausgang
Dann gehen wir wieder zu OnGameModeInit und schreiben
public OnGameModeInit()hausexit=CreatePickup(1318,1,x,y,z-koordinaten) //diese haben wir aus den savedpositions rauskopiert PS schreibt das am besten unter hausenter,is übersichtlicher^^
So als nächstes zu OnPlayerPickUpPickup
public OnPlayerPickUpPickup if(pickupid==hausexit) {SetPlayerPos(playerid,x,y,z-Koordinaten);SetPlayerFacingAngle(playerid,xxx); //xxx ist der wert in saved positions beim haus enter (das ist damit ihr in die richtung vom haus weg guckt)SetCameraBehindPlayer(playerid); //damit die kamera hinterm spieler ist.SetPlayerInterior(playerid,0); //damit man nicht im Himmel bleibt. Die 0 ist die "aussenwelt"^^)}
Et Voíla Könnt ihr in das Haus gehen Ihr könnt allerdings auch am anfang alle gebäude offen lassen und dann sozusagen Häuser dazuscripten!
Bitte keine harten Bewertungen ist mein erstes Tut
Wer Rechtschreibfehler oder sonstige Fehler findet bitte posten dann verbesser ich es xD
Arrivederci