Simple Ein/Ausgänge per Enter Taste

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
  • Guten Abend liebe Brotfische,
    Heute zeige ich euch wie man Ein und Ausgänge per Enter Taste scriptet.


    Zuerst müsst ihr die Coords von Aussen haben das macht ihr am besten indem ihr euch an die Position stellt und /Save eintippt.
    Das gleiche kann man auch mit den Ausgängen machen aber das würde ich mit einem Interior machen und im Internet die Coords für die jeweiligen Interiors raussuchen.


    So dann fangen wir mal an.


    Zuerst erstellen wir 2 Pickups (Einmal für Innen und einmal für Aussen),
    dafür benötigt ihr AddStaticPickup was ihr unter OnGameModeInit rein schreibt und es mit einem Weissen Pfeil ausrichtet (ID: 131) .
    Siehe:


    public OnGameModeInit()
    {
    AddStaticPickup(1318,23,Coord_X,Coord_Y,Coord_Z);//1318 = Weisser Pfeil, 23 = Pickup verschwindet nie, Coord_X = X, Coord_Y = Y, Coord_Z = Z
    return 1;
    }


    Nun gehen wir unter OnPlayerKeyStateChange und fügen dort eine neue Taste hinzu in unserem falle die Enter Taste (KEY = 16) und prüfen dann ob der Spieler am Ein / Ausgang steht.


    Siehe:

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == 16)//Enter bereiche
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Coord_X, Coord_Y, Coord_Z))//Coord_X,Y,Z sind wieder X,Y,Z und 5.0 ist wie weit der Spieler entfernt ist.
    {
    SetPlayerPos(playerid, Coord_X, Coord_Y, Coord_Z);//Das ist wo der Spieler hingeportet werden soll
    SetPlayerInterior(playerid,Interior_ID);//Dort gibt ihr eure Interior ID ein wo der Spieler rein geportet werden soll.
    GameTextForPlayer(playerid,"Du bist Drinne",5000,3);//Text damit er Drinne ist, 5000 = Text Anzeige in Milisekunden, 3 = Der Style vom Text
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0,Coord_X, Coord_Y, Coord_Z))//Jetzt wieder das selbe wie vorhin, nur jetzt soll er raus kommen
    {
    SetPlayerPos(playerid,Coord_X, Coord_Y, Coord_Z);//Die Coords wo er raus geportet werden soll
    SetPlayerInterior(playerid,0);//ACHTUNG: Hier muss es 0 sein da er sonst in der Luft runter fliegt.
    GameTextForPlayer(playerid,"Du bist draussen",5000,3);//Das selbe wie oben nur das diesmal der Text kommt das man draussen ist
    }
    }
    return 1;
    }


    Achtung: Ihr müsst die Coord_X, Coord_Y, Coord_Z mit den Coords tauschen die ihr nehmen wollt.


    Ich weiss das es schon ein Tutorial hier für von Firerfan gibt aber seins ist nicht so Simple wie meins.

    Hier habt ihr noch eine Seite wo ihr euch Interiors aussuchen könnt:

    Interior´s von SA:MP



    Das wars dann auch schon.


    MfG,
    Stefan aka PawnScripter.


    Info:


    Feedback und Kritik ist gerne erwünscht.

    Einmal editiert, zuletzt von Stefan aka PawnScripter ()

  • hat mir super geholfen ;)
    bin anfänger im scripten und kann dieses Tutorial nur empfehlen.
    Hoffentlich machst du noch mehr Tutorials für Anfänger Scripter wie mich ;)
    10/10 Meinerseits


    Mit freundlichen Grüßen
    xxxFreestylerxxx

  • Danke, Ich werde demnächst noch mehr Tutorial´s schreiben wenn sich die Zeit finden lässt.

  • Wenn du mir schreibst wie du die gTeams drinne hast dann zeige ich es dir gerne am besten ist wenn ich dich nachher per PN kontaktiere.


    PS: Muss jetzt weg komme so um 19 oder 20 Uhr wieder Online.

  • 1. Danke das du mich erwähnst und meinen Namen richtig geschrieben hast ;)


    2. Deine Methode ist nicht simpler.
    Es ist das selbe in Grün nur länger^^
    Dafür lässts sich aber besser erweitern, weil man einfach Team-Abfragen hinzufügen kann.
    Ist bei meinem ja leider nicht nötig.


    Allerdings ist es für viele Eingänge nicht gut geeignet, weils einfach zuviel Code ist.




    MfG Firer

  • Jo^^. Aber für Anfänger ist ist einfacher.