Car mit gewünschter ID spawnen lassen

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
  • Hallo,
    In diesem Tutorial werde ich euch zeigen wie ihr ganz einfach mit einem Befehl
    ein Auto in eure nähe spawnt.
    Der fertige Befehl wird am ende so aussehen: /v [VehicleID]


    Was brauchen wir?


    Wir benötigen für diesen Befehl einmal sscanf und denInclude ocmd.
    Diese findet ihr hier:
    [ SCRIPTING ] Game Text Script für Admins


    So nach den Vorbereitungen geht es nun endlich los.
    Ihr fügt einach irgendwo im Script (nicht in einem Plublic,Stock,ect.) diesen Blanko Code ein:


    Code
    ocmd:NameDesBefehls(playerid,params[])
    {
    	return 1;
    }


    Nun setzen wir den Namen des Befehls fest.
    Ändert einfach den Text da wo momentan noch NameDesBefehls steht in ein einfaches
    kleines v.


    Nun kommen ein paar Definitionen in Form eines News:


    Code
    new vehicleid,car;


    Dies definiert einfach die Vehicle ID.
    Nun kommt noch:


    Code
    new Float:X,Float:Y,Float:Z,Float:ZA;


    Damit können wir nachher die Position des Spielers dem Server geben.
    Float:X,Y,Z heißt einfach Position X,Y,Z.
    Float:ZA heißt in welche Richtung der Spieler blickt.


    Nun benötigen wir unser sscanf.
    Fügt diesen Code unter die News ein:


    Code
    if(sscanf(params,"i",vehicleid)) return SendClientMessage(playerid,ROT,"Nutze /veh [ID]");


    Wir sehen anders als im letzten Tutorial mit den Game Texten steht hier nun ein i in den ".
    Das i steht für eine Zahl, die eingegeben wird (i=Integer auf deutsch einfach Zahl).
    Das Vehicleid dahinter sagt dem Script für was das i bzw. die Zahl, die der Spieler später im Spiel eingibt
    steht.


    Um nun die Position und die Blickrichtung des Spielers zu bekommen, um dann nacher das Auto nicht
    an einem Punkt, sondern am Punkt des Spielers zu spawnen, geben wir dem Script
    die X,Y,Z und ZA Koordinate.


    Code
    GetPlayerPos(playerid,X,Y,Z);


    Damit währe schon die X,Y und Z Koordinate geklär, aber es fehlt immernoch die ZA Koordinate.
    Diese stellen wir so fest:


    Code
    GetPlayerFacingAngle(playerid,ZA);


    Die Blickrichtung des Spielers braucht gleich das CreateVehicle als Parameter, darum müssen wir sie auch fassen.
    Nun kommt der letzte Schritt.
    Wir spawnen das Auto an der Stelle des Spielers.
    Dies ist eigentlich ganz einfach, wir geben im Script ein:


    Code
    car= CreateVehicle(vehicleid,X,Y,Z,ZA,1,1,-1);


    Code
    Der Code besagt einfach: Erstelle ein Vehicel,
     das der Spieler aussuchte,
     das an der Position des Spielers gespawnt werden soll,
     das in die Richtung des Spielers stehen soll,
     dessen zwei Farben Farb ID 1 und 1 sind,
    dessen Respawnzeit -1 beträgt.


    Die Farbe und die Respawnzeit kann man natürlich noch ändern.
    Will man jetzt noch, dass der Spieler direkt in das Auto reingesetzt wird,schreibt man noch das:


    Code
    PutPlayerInVehicle(playerid,car,0);


    Die 0 am Ende ist der Autositz.
    0 ist Fahrer, 1ist Beifahrer und 3 und 4 sind Plätze hinten.


    So das wars wieder von mir.
    Ich hoffe ich konnte euch eingige Funktionen etwas näher bringen, besonders den Anfängern.
    :)


    //Edit Korrektur

    Einmal editiert, zuletzt von Ketchup ()

  • Nur mal so zur Info, wenn du ein Auto spawnst mit der ID 100 wirds nicht funktionieren, da CreateVehicle keine VehicleIDs unterstützt sondern nur ModelIDs


    Damit ist dein ganzer code hinfällig >.>

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Das Hab ich doch versucht dir zu erklären >.>
    Darum muss es ja auch ModelID Heißen nicht VehicleID.
    Du solltest noch abfangen ob die eingegebene ID eine Gültige ist.
    Außerdem:


    stock Blubb(lala,lulu[],Float:lolo,bool:lölö)
    lala, lulu,lolo,lölö sind Parameter keine Argumente
    Blubb(1,"String",5.2,true);
    1, "String", 5.2,true sind Argumente keine Parameter

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski