Pickups erstellen. Etwas länger aber einfach erklärt :)

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
  • Dies hab ich grad an Fabi_3
    geschickt, weil er gerne wissen wollte, wie man seinen Befehl in Pickups umwandelt:
    (/lcndach -> Befehl erstellen)
    Da ich das nicht in den Privatnachrichten vergammeln lassen will poste ich es einfach ;)


    Mir ist natürlich klar, daß es einige Tutorials dazu gibt,
    aber es führen auch viele Wege nach Rom.


    Der eine ist schneller zu verstehen, der andere vielleicht nicht.
    schaut es euch einfach an, wenn ihr lust habt :)






    Um die Pickups zu erstellen braucht man 4 Koordinaten:


    1.: Hier willst du das Pickup haben, daß dich nach oben bringt.
    2.: Hierhin willst du, wenn du in das Pickup (Nummer 1) gegangen bist.
    3.: Dies ist das 2. Pickup. Es wird auf dem Dach platziert und darf auf keinen Fall die gleichen Koordinaten haben wie Nummer 2.
    4.: Dies ist die Position, die du haben willst, wenn du in das 2. Pickup (Nummer 3) gegangen bist.



    Warum sollte Nummer 3 nicht die gleichen Koordinaten wie 2 haben?


    Wenn man mal logisch nach-vollzieht, daß du, wenn du in Nummer 1 gehst bei Punkt 2 landest
    UND direkt auf der Stelle von Nummer 2 das Pickup Nummer 3 ist, wirst du natürlich gleich wieder nach unten
    gekloppt und wunderst dir 'n Ast ab, was da jetzt passiert ist.



    Dein Befehl:


    if(strcmp(cmdtext,"/armyport",true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,-1319.1311,483.8622,6.3780))//1. Koordinaten
    {
    SetPlayerPos(playerid,-1404.5228,490.7289,18.2294,359.0934);
    }
    ....



    Nun benutzen wir "if(IsPlayerInRangeOfPoint" als Nummer 1 (das Pickup).


    Dafür fügen wir oben im Script folgendes ein:


    new lcnhochPickup;
    (nur ein Beispiel. Kannst es natürlich nennen, wie du willst)


    Bei "public OnGameModeInit()" kommt nun folgendes rein:


    public OnGameModeInit()
    {
    lcnhochPickup=CreatePickup(1239,2,-1319.1311,483.8622,6.3780);



    So, was bedeutet das?

    Zitat

    (1239,2,-1319.1311,483.8622,6.3780);

    1239 = Dies ist die Art des Pickup's, welches du erstellen willst. In diesem Fall ein schönes "i". (Drück mich )
    2 = Wie lange soll das Pickup 'bestehen'? In diesem Fall spawnt es kurz nach Benutzung wieder. (Drück mich )
    -1319.1311 = Float:X
    483.8622 = Float:Y
    6.3780 = Float:Z



    Hier kannst du das nochmal nachlesen: http://wiki.sa-mp.com/wiki/CreatePickup.



    Nun haben wir ein Pickup, daß aber immer noch nichts kann, außer die Drehung um die eigene Achse. :D
    Gehen wir nun darauf ein:


    Such unter den Public's nach "public OnPlayerPickUpPickup(playerid, pickupid)"
    Dort fügen wir dann folgendes ein:



    if(pickupid==lcnhochPickup)
    {
    SetPlayerPos(playerid, -1404.5228,490.7289,18.2294);
    }


    Das sieht dann also so im Script aus:


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==lcnhochPickup)
    {
    SetPlayerPos(playerid, -1404.5228,490.7289,18.2294);
    }
    ....


    Das SetPlayerPos hab ich aus deinem Befehl genommen.
    Nun haben wir Nummer 1 + 2 verarbeitet.


    Um wieder nach unten zu kommen musst du natürlich das gleiche mit anderen Koordinaten machen.


    Achte darauf, daß du dem Spieler auch den richtigen Interrior zuweist, wenn du ihn z.b.
    mit "SetPlayerPos" in einen schickst.


    Wofür ist so ein Pickup eig. gut?
    Naja, es kommt ganz auf den Bereich an, wo du es einsetzen willst.
    Willst du z.B. einen Waffenladen machen, zeigst du dem Spieler statt "SetPlayerPos" einen Dialog deiner Wahl.
    Willst du einen Klamotten laden machen, ist es das Selbe nur mit anderem Inhalt in dem Dialog.
    Du kannst ihm auch eine nachricht schicken (SendClientMessage) oder in ein Fahrzeug setzen.
    Es ist halt alles eine Sache der Lustigkeit.




    LG Timo