Eingänge/Ausgänge ohne CMD

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
  • Erstmal nur ein einfacher ein/ausgang zum Beispiel mit einem "i" als Pickup:
    Damit alle alten Eingänge/Ausgänge die von SA:MP dasind entfernt werden oben ins Script:
    DisableInteriorEnterExits();


    Oben bei den forwards fügst du folgendes ein:
    forward UserEingangAusgang(playerid);


    Oben bei den new's fügst du folgendes ein:
    new UserEingangAusgangTimer;


    Bei den OnGameModeInit fügst du folgendes ein:
    CreatePickup(X,Y,Z,H); //Eingangs Pickup draußen vor der Tür
    CreatePickup(X,Y,Z,H); //Ausgangs Pickup drine an der Tür


    Bei den OnGameModeExit fügst du folgendes ein:
    KillTimer(UserEingangAusgangTimer);


    Und ganz nach unten im Script:
    public UserEingangAusgang(playerid)
    {
    if (PlayerToPoint(1, playerid, X,Y,Z,H)) //Eingang - Wenn der Spieler da ist passiert folgendes...
    {
    SetPlayerInterior(playerid, INTERIORID); //Interior ID wird auf ID X gesetzt
    SetPlayerPos(playerid, X,Y,Z,H); //Koordinaten wohin sich der Spieler begibt wenn er drine ist.
    SetPlayerFacingAngle(playerid, 0.0); //Blickrichtung wohin er guckt sobald er drine ist
    }
    else if (PlayerToPoint(1, playerid, X,Y,Z,H)) //Ausgang
    {
    SetPlayerInterior(playerid, 0); //Interior ID wird auf ID 0 gesetzt (Free World)
    SetPlayerPos(playerid, X,Y,Z,H); //Koordinaten wohin sich der Spieler begibt wenn er draußen ist.
    SetPlayerFacingAngle(playerid, 0.0); //Blickrichtung wohin er guckt sobald er draußen ist
    }
    return 1;
    }



    Wenn du mehrer Eingänge ausgänge machen willst einfach:
    z.B Zivispawn Eingang und Police Department Eingang.
    public UserEingangAusgang(playerid)
    {
    //Los Santos Police Department Ein/Ausgang
    if (PlayerToPoint(1, playerid, 1555.1205, -1675.6710, 16.1953)) // PD Eingang
    {
    SetPlayerInterior(playerid, 6);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
    SetPlayerPos(playerid, 246.7840, 63.9002, 1003.6406); //Dort hin wer er geportet beim reingehen
    SetPlayerFacingAngle(playerid, 0.0);//Damit er in die richtige Richtung guckt
    }
    else if (PlayerToPoint(1, playerid, 246.7282, 62.7136, 1003.6406)) // PD Ausgang
    {
    SetPlayerInterior(playerid, 0);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
    SetPlayerPos(playerid, 1552.4490, -1674.9897, 16.1953);//Dort hin wer er geportet beim reingehen
    SetPlayerFacingAngle(playerid, 90.0);//Damit er in die richtige Richtung guckt
    }
    //Los Santos Zivispawn Ein/Ausgang
    else
    if (PlayerToPoint(1, playerid, 1111.0206,-1796.9290,16.5938)) // Zivispawn Eingang
    { //Wenn du ein Text beim betreten willst einfach die Folgende Zeile hinzufügen:
    SendClientMessage(playerid,COLOR_WHITE,"Willkommen in der Zivispawn Halle");
    SetPlayerInterior(playerid,18);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
    SetPlayerPos(playerid,1289.1001,-50.0995,1002.4922);//Dort hin wer er geportet beim reingehen
    SetPlayerFacingAngle(playerid,0.0);//Damit er in die richtige Richtung guckt
    }
    else if (PlayerToPoint(1, playerid, 1307.5702,-55.9294,1002.4971)) // Zivispawn Ausgang
    {//Wenn du ein Text beim verlassen willst einfach die Folgende Zeile hinzufügen:
    SendClientMessage(playerid,COLOR_WHITE,"Willkommen vor der Zivispawn Halle in Los Santos!");
    SetPlayerInterior(playerid,0);//Interior umstellen damit er im Interior was sieht in der Normalen Welt auf 0
    SetPlayerPos(playerid,1108.6257,-1796.3427,16.5938);//Dort hin wer er geportet beim reingehen
    SetPlayerFacingAngle(playerid,90.0); //Damit er in die richtige Richtung guckt
    }
    return 1;
    }


    Dazu die passenden PickUps:
    CreatePickup(1239, 23, 1111.0206,-1796.9290,16.5938); // Zivispawn Eingang
    CreatePickup(1239, 23, 1307.5702,-55.9294,1002.4971); // Zivispawn Ausgang
    CreatePickup(1239, 23, 1555.1205, -1675.6710, 16.1953); // PD Eingang
    CreatePickup(1239, 23, 246.7282, 62.7136, 1003.6406); // PD Ausgang


    Nun soll auch ein 3D TextLabel beim PickUp mit bestimmtem Text sein:
    Erstmal die Farbe Weiß Definieren oben im Script bei den #defines:
    #define COLOR_WHITE 0xFFFFFFAA


    Nehmen wir mal die alten Koordinaten vom LSPD Ein/Ausgang und Zivispawn Ein/Ausgang
    Die Pickups waren diese:
    CreatePickup(1239, 23, 1111.0206,-1796.9290,16.5938); // Zivispawn Eingang
    CreatePickup(1239, 23, 1307.5702,-55.9294,1002.4971); // Zivispawn Ausgang
    CreatePickup(1239, 23, 1555.1205, -1675.6710, 16.1953); // PD Eingang
    CreatePickup(1239, 23, 246.7282, 62.7136, 1003.6406); // PD Ausgang


    Dazu einfach auch unter OnGameModeInit unter die PickUps oder über direkt:
    Create3DTextLabel("Los Santos Zivispawn Eingang", COLOR_WHITE,1111.0206,-1796.9290,16.5938, 15, 0, 1);
    Create3DTextLabel("Los Santos Zivispawn Ausgang", COLOR_WHITE,1307.5702,-55.9294,1002.4971, 15, 0, 1);
    Create3DTextLabel("Los Santos Police Department Eingang", COLOR_WHITE,1555.1205, -1675.6710, 16.1953, 15, 0, 1);
    Create3DTextLabel("Los Santos Police Department Ausgang", COLOR_WHITE,246.7282, 62.7136, 1003.6406, 15, 0, 1);


    Erklärung zu den 3D TextLabeln:
    Create3DTextLabel("Los Santos Zivispawn Eingang", COLOR_WHITE,1111.0206,-1796.9290,16.5938, 15, 0, 1);
    Create3DTextLabel //- Erstellt das Label
    Los Santos Zivispawn Ausgang //- Text auf dem Label
    COLOR_WHITE //- Farbe (Muss definiert sein per #define)
    1307.5702// - xRoute/Position auf der Karte
    -55.9294// - yRoute/Position auf der Karte
    1002.4971// - zRoute/Position auf der Karte
    15 //- Radius von wie weit der Text sichbar sein soll
    0 //- Unbekannt
    1 //- Unbekannt



    Wie bekommt man die Positionen raus?
    Du gehst einfach Ingame an die gewünschte Position wo du z.B das PickUp haben willst und gibts einfach brauchst kein Filterscript/Script etc. dafür geht von SA:MP aus auf jedem Server /save NAME ein um die Position/Die Koordinaten zu speichern. Zum Beispiel: Du fährst zum BSN willst dort ein Pickup vor dem BSN eingang und gibst dort einfach ein /save BSN Eingang dann gehst du in den GTA San Andreas Ordner und dort ist die Datei "Savepositions" diese Datei öffnest du einfach mit WordPad oder mit nem Editor und dort drine steht etwas wie (im Beispiel LSPD Eingang:)
    AddPlayerClass(272,1554.6833,-1675.6157,16.1953,90.7358,0,0,0,0,0,0); // LSPD Eingang


    Das kommt weil ich Ingame am LSPD Eingang "/save LSPD Eingang" eingetippt habe. Nun die erklärung was was ist von den vielen zahlen:
    (272,1554.6833,-1675.6157,16.1953,90.7358,0,0,0,0,0,0)


    272 = Skin ID vom Spieler den du Ingame anhattest.
    1554.6833 = xRoute/Position auf der Karte
    -1675.6157 = yRoute/Position auf der Karte
    16.1953 = zRoute/Position auf der Karte
    90.7358= hRoute/Position auf der Karte
    0,0,0,0,0,0 = Welche Waffen der Spieler mit wieviel Munition hat
    ((Waffe1, Munition1, Waffe2, Munition2, Waffe3, Munition3))

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • wenn ich folgendes bekomem ich error
    DisableInteriorEnterExits();


    Der error ist : symbol already defined obwohl es nicht definiert ist irgendwo anders

  • nein ebend nicht.
    ich habe die neue r7 homeserver version mit der ic hscripte

  • Drück mal STRG+F im Script (Pawno) und gibt in das Feld: DisableInteriorEnterExits(); dann auf weiter und wenn es zweimal drine ist lösch es einmal oder lass es wenn es nicht geht ganz draußen.

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • ich möchte das die interior dinger weg sind und es kommt nicht einmal im script DisableInteriorEnterExits(); vor
    bitte hilft mir

  • Tutorial find ich gut aber ich finde eingänge gehen etwas leichter (meine meinung) :
    oben das

    new InteriorEnters[150];
    new InteriorExits[150];


    das in die ongamemodinit

    InteriorEnters[1] = CreatePickup(1318, 23, 928.9160,-1353.0472,13.3438); //Clunkin Bell Rein
    InteriorExits[1] = CreatePickup(1318, 23, 365.5368,-11.6014,1001.8516); //Clunkin Bell Raus


    das dann bei onplayerpickup oder so :

    public OnPlayerPickUpPickup(playerid, pickupid) // Pickup Objektlisten findet ihr hier http://wiki.sa-mp.com/wiki/Pickup_help
    {
    if(pickupid == InteriorEnters[1])
    {
    GameTextForPlayer(playerid, "~y~Cluckin Bell", 5000, 3);
    SetPlayerPos(playerid, 366.4043,-8.0554,1001.8516);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,9);
    }
    if(pickupid == InteriorExits[1])
    {
    GameTextForPlayer(playerid, "~w~Los Santos", 5000, 3);
    SetPlayerPos(playerid, 923.7872,-1352.7813,13.3766);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    }


    Weiß nicht ob meine Variante leichter als deine ist aber auf den ersten Blick find ich sie kürzer. Falls meine irgendwelche Nachteile hat pls bescheid sagen :)

  • Tockra bin mir nun nicht sicher 1oo% aber glaube habe immer die oben beschriebene benommen da dort die PickUps nach dem auf Picken nicht weggehen ist son SA:MP Bug da sie neuspawnen sofort. xP

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Tockra bin mir nun nicht sicher 1oo% aber glaube habe immer die oben beschriebene benommen da dort die PickUps nach dem auf Picken nicht weggehen ist son SA:MP Bug da sie neuspawnen sofort. xP


    sry verstehe deine Ausage jetzt nicht so richtig!?...



    Ist das nicht gut, das sie nicht weggehen? Also so weit ich weiß kann man bei den Pickups einstellen ob die weggehen oder nicht und wenn man einstellt das die weggehen, dann sind sie auch weg (wird ja auch bei ammo wester und waffen pickups benutzt)

  • Schönes Tut
    10/10


    Ahm weiss einer die Interior ID von der Bank??

  • Ah sorry verschrieben^^


    Meine: Bei mir gehen wenn ich deine Version nehme immer die PickUps weg wenn ich sie einsammel deswegen habe ich die Oben genannte Version benutzt von mir. Aber naja kann auch falsch liegen...

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Ganz gut erklärt ,nur wer nutzt jetzt noch PlayerToPoint ?! IsPlayerInRangeOfPoint und das wars ;)
    Das Tut 7/10
    ahja und PlayerToPoint haben die Scripts normalweise nicht , man muss selber es zu ner Funktion machen und IsPlayerInRangeOfPoint ist schon in a_samp drinnen

  • Ich weiß das es bessere Lösungen gibt aber bedenkt mal:
    Ich bin ein tierischer Anfänger im Scripten und das ist mein erstes Tutorial deswegen finde ich es ganz gut..

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Ah sorry verschrieben^^


    Meine: Bei mir gehen wenn ich deine Version nehme immer die PickUps weg wenn ich sie einsammel deswegen habe ich die Oben genannte Version benutzt von mir. Aber naja kann auch falsch liegen...


    Du kannst die Pickups so einstellen ob die weggehen oder nicht.