Auto Spawn via Dialog.(Veh ID,Farbe1 & Farb2) (Grundwissen)

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,


    Ich möchte euch Zeigen wie ihr ein Autospawnt mit einem Dialog.(Unten gibt es die Beschreibungen)


    Wir machen als erstes oben 4 #define's damit sich die IDs nicht überschneiden und übersichtlicher ist.
    Wir nennen sie jetzt mal so:
    #define AUTO_1 1 // falls vergeben ändern !!
    #define AUTO_2 2// falls vergeben ändern !!
    #define AUTO_3 3// falls vergeben ändern !!
    #define AUTO_4 4// falls vergeben ändern !!
    Und 3 News damit wir die Zahlen weitergeben, um nachher das Auto zu erstellen.
    new vehid, color1,color2;
    Das bedeutet das anstatt bei ShowPlayerDialog eine Zahl ein Wort steht damit man sich so viele Zahlen merken muss.
    Wenn wir oben das definiert haben gehen wir under OnPlayerCommandText und erstellen ein neuen Befehl.


    public OnPlayerCommandText(playerid, cmdtext[])//Der Public, wo die Commands ausgeführt werden.
    {
    if (strcmp("/cv", cmdtext, true, 10) == 0)//Der Command welcher er heißen soll wir nennen ihn mal /cv.
    {
    ShowPlayerDialog(playerid,AUTO_1,DIALOG_STYLE_INPUT,"Setp 1/4","Gebe die ID des Autos ein.","Weiter","Schließen"); // Das Dialog was geöffnet werden soll wenn man den Befehl eingibt. Wir nehmen das Style Input damit ein Input Fenster sich öffnen.
    return 1;
    }
    return 0;
    }
    Dann gehen wir unter onDialogResponse und erstellen die Dialogids.
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == AUTO_1)// Die Dialogid von AUTO_1 ist die ID womit wir die VehicleID eingeben.
    {
    if(response) // das Dient das wir denn ersten Button benutzen.
    {
    if(strval(inputtext) < 400 || strval(inputtext) > 611) return ShowPlayerDialog(playerid,AUTO_1,DIALOG_STYLE_INPUT,"(error)Setp 1/4","Gebe die ID des Autos ein.","Weiter","Schließen");// Das dient dazu damit kein Nicht verfügbares Auto erstellt wird und keine Unötigen Crash auslöst.
    ShowPlayerDialog(playerid,AUTO_2,DIALOG_STYLE_INPUT,"Setp 2/4","Gebe die ID der ersten Farbe an.","Weiter","Zurück");//Hier Geht es dann weiter zum Dialog 2 wo wir die Erste Farbe auswählen.
    vehid = strval(inputtext); // Das heißt das das was wir eingeben der Variable übergeben
    }
    return 1;
    }
    if(dialogid == AUTO_2)// Das ist das 2 Dialog wo wir die Erste Farbe auswählen.
    {
    if(response) // das Dient das wir denn ersten Button benutzen.
    {
    if(strval(inputtext) < 0 || strval(inputtext) > 126)return ShowPlayerDialog(playerid,AUTO_2,DIALOG_STYLE_INPUT,"(Error)Setp 3/4","Gebe die ID der zweite Farbe an.","Weiter","Zurück");//Das Dient dazu das wir keine Nicht verfügbaren Color IDS erzeugen.(Die Vllt zu Crash verursachen)
    ShowPlayerDialog(playerid,AUTO_2,DIALOG_STYLE_INPUT,"Setp 3/4","Gebe die ID der zweite Farbe an.","Weiter","Zurück");// Hier Wählen wir die 2 Farbe aus.
    color1 = strval(inputtext);// Das heißt das das was wir eingeben der Variable übergeben
    }else{ShowPlayerDialog(playerid,AUTO_1,DIALOG_STYLE_INPUT,"Setp 2/4","Gebe die ID der ersten Farbe an.","Weiter","Zurück");}// Sollte ein Fehler beim Eingeben sein so kann man zurück gehen.
    return 1;
    }
    if(dialogid == AUTO_3)// Das ist das 3 Dialog wo wir die 2 Farbe auswählen
    {
    if(response) // das Dient das wir denn ersten Button benutzen.
    {
    if(strval(inputtext) < 0 || strval(inputtext) > 126)return ShowPlayerDialog(playerid,AUTO_3,DIALOG_STYLE_INPUT,"(Error)Setp 3/4","Gebe die ID der zweite Farbe an.","Weiter","Zurück");//Das Dient dazu das wir keine Nicht verfügbaren Color IDS erzeugen.(Die Vllt zu Crash verursachen)
    ShowPlayerDialog(playerid,AUTO_2,DIALOG_STYLE_INPUT,"Setp 4/4","Klicke auf erstellen um das Auto zu spawnen.","Erstellen","Zurück");
    color2 = strval(inputtext);// Das heißt das das was wir eingeben der Variable übergeben
    }
    else{ShowPlayerDialog(playerid,AUTO_2,DIALOG_STYLE_INPUT,"Setp 3/4","Gebe die ID der zweite Farbe an.","Weiter","Zurück");}// Sollte ein Fehler beim Eingeben sein so kann man zurück gehen.
    return 1;
    }
    if(dialogid == AUTO_4)// Das ist das 4 Dialog wo alles zusammen kommt und das Auto spawnt.
    {
    if(response) // das Dient das wir denn ersten Button benutzen.
    {
    new Float:X,Float:Y,Float:Z; // Wir erstellen hier 3 Floats die X, Y und Z Coods damit wir nachher die Position vom Spieler raus bekommen.
    GetPlayerPos(playerid,X,Y,Z);// Hier Holen wir die Position von den Spieler raus für das Auto.
    AddStaticVehicle(vehid,X,Y,Z,color1,color2,-1);// Hier Packen wir alles zusammen die CarID, Color1 und Color2 die wir in den Dialogs eingegeben haben. (Die -1 steht für das Respawnen(-1 = Nie))
    }
    else{ShowPlayerDialog(playerid,AUTO_2,DIALOG_STYLE_INPUT,"Setp 3/4","Gebe die ID der zweite Farbe an.","Weiter","Schließen");}// Sollte ein Fehler beim Eingeben sein so kann man zurück gehen.
    return 1;
    }
    return 1;
    }


    Ich habe keine Errors doch solltet ihr es nicht hinbekommen so habt ihr hier nochmal die PWN.


    http://jerome.mp-reallife.de/pwn/veh.pwn





    Hoffe das es gut ist Kritik erwünscht, Verbesserung auch.


    MFG GamerXIOS.





    E²:News verändert & Einige Sachen verändert.
    E³:Titel verändert.
    E²*²:#defines verändert.

    3 Mal editiert, zuletzt von GamerXIOS ()


  • Das ist ja mal schnell wie du Sätze plus Quellcode lesen kannst.


    Hab's jetzt nur überflogen. Setzt natürlich, wie von dir gesagt, Grundwissen voraus, was ich bei einer so simplen Sache eher negativ finde. Aber sonst sehr gutes Tutorial.


    Ich meinte mit Grundwissen das ich nicht noch die Publics erklären muss und die Ganzen klein Sachen.

  • Wir machen als erstes oben 4 #define's damit sich die IDs nicht überschneiden


    tjo dann würd ich auch mal nicht 1 2 3 4 nehmen die werden schon vergeben sein xD


    Also dafür das es mit Dialog ist sollte es zumindest soweit sein das man den Namen des Fahrzeugs reinschreibt oder einen Teil des Namens und es dann auch gefunden und gespawnt wird.
    Ansonsten geht es mit /veh id c1 c2 dann doch um einiges schneller... :huh:


  • tjo dann würd ich auch mal nicht 1 2 3 4 nehmen die werden schon vergeben sein xD


    Also dafür das es mit Dialog ist sollte es zumindest soweit sein das man den Namen des Fahrzeugs reinschreibt oder einen Teil des Namens und es dann auch gefunden und gespawnt wird.
    Ansonsten geht es mit /veh id c1 c2 dann doch um einiges schneller... :huh:


    Ja stimmt kann ich ja auch noch ändern.
    Und deshalb auch das Grundwissen man sollte wissen das man das auch ändern muss.