[ Tutorial ] [ Anfänger ] Givegun / Waffen in einem Dialog

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
  • Heyho Leute,


    heute mach ich euch mal aus extremster Langeweile nen Tutorial wie ihr den Befehl /givegun in einen Dialog packt.
    (Info: Das TuT ist nur für die, die ausschließlich mit PAWNO erst begonnen haben.)


    Vorworte: Was brauchen wir?
    - Pawno
    - "kleine" Grundkenntnisse
    - Geduld : falls fehler auftreten (kann man auch hier posten)


    Fangen wir mal an!


    Als erstes müssen wir den Dialog definieren. Das machen wir oben im Script.


    #define GIVEGUN_DIALOG 1 // ggf. die 1 ändern, falls es nicht euer erster Dialog ist


    Als nächstes brauchen wir dann den Befehl.(Die Erklärungen kommen immer hinter den Zeilen)



    if(strcmp(cmd, "/givegun", true) == 0 ) // Erklärt sich von selbst - ist halt den Befehl den man eingeben muss. (Muss natürlich zu OnPlayerCommandText
    {
    if(SpielerInfo[playerid][pAdmin] >= 1337) // Wichtig : Die Adminabfrage ggf auf euer Script umändern, sonst funktioniert es nicht.
    {
    ShowPlayerDialog(playerid,GIVEGUN_DIALOG,DIALOG_STYLE_LIST,"Waffen","Desert Eagle","Holen","Schliesen"); // Der Dialog und was drine sein soll, hab als Beispiel mal die Desert genommen.
    }
    else // Und wenn er kein Admin ist....
    {
    SendClientMessage(playerid,COLOR_RED,"Das darfst du nicht!"); // Wird diese Nachricht abgesendet.
    return 1;
    }
    }


    Erklärung zu DIALOG_STYLE_LIST: Das ist halt der Dialog, der die Waffe/n untereinander aufzählt.


    Als nächstes müssen wir zu OnDialogResponse gehen.



    if(dialogid == GIVEGUN_DIALOG) // Auf deutsch: wenn der Dialog GIVEGUN_DIALOG heist, wird das alles ausgeführt.
    {
    if(response) // Wenn der Spieler den ersten Button drückt - bei uns "Holen".
    {
    if(listitem == 0) // Und er dabei das hier angewählt hat -
    {
    GivePlayerWeapon(playerid,24,2400); // bekommt er die Desert Eagle mit 2400 Schuss.
    }
    }
    return 1;
    }


    Info: Den 2ten Button habe ich absichtlich wegglelassen - denn wenn er nichts zugeteilt bekommt, passiert auch nichts, ausser das der Dialog geschlossen wird.


    Joa, das öhm wars dann auch mal von mir.


    Gez. - StreetS


    (By the Way: Ja ich weiss dass es eig. kein Mensch braucht - aber ich hab mir gedacht, für die Anfänger wirds bestimmt gut.)


    €: Paar fails mit den Farben
    €2: Danke an Kaliber mit dem Dialog

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

    Einmal editiert, zuletzt von #S. ()

  • 1. Falscher bereich


    2. Nunja, kann man das wirklich Tutorial nenne, 1nen Befehl mit Dialog ?!


    Mhm, nicht sehr überzeugend :whistling:


    4/10 !


    mfg. :thumbup:


    //EDIT:


    Zitat

    ggf. die 1 ändern, falls es nicht euer erster #define ist


    Mit #define hat das nur am Rande zu tun, du solltest sagen falls es nicht euer erster Dialog ist ;) kannst auch tausen Farben vorher mit #define definiert haben, das wäre egal ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • 1. Irgendwie muss ich meine Langeweile auch vertreiben <.<
    2. falscher bereich? Is doch scripting base xD

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • ne ist falscher bereich ;)
    und so neu ist es auch net aber naja
    6/10

  • if(SpielerInfo[playerid][pAdmin] >= 1337) // Wichtig : Die Adminabfrage ggf auf euer Script umändern, sonst kommt es zu Errors.


    Das ist falsch ;)


    Es kommt nicht zu Errors, es funktioniert dann einfach nicht ^^


    if(strcmp(cmd, "/givegun", true) == 0 ) // Erklärt sich von selbst - ist halt den Befehl den man eingeben muss. (Muss natürlich zu OnPlayerCommandText


    "cmd" ist unnötig, da kein strtok gebraucht wird, also geht "cmdtext"


    MfG NicoAiko


    Edit: Text geaddet

  • Ich verbesser es NicoAiko, danke.


    Kaliber bin noch keine 3 Wochen im Forum :P

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Irgendwo muss man sich im Forum ja hoch pushen^^ ;)

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht


  • Mal ganz kurz dazu was, also man kann auch cmd verwenden das macht eigentlich keinen großen unterschied, außerdem hat er irgentwie recht, wenn man das mit PlayerInfo nicht definiert hat, kommt es zu Erros ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • naya ist eig egal, aber ich verwende bei Befehlen OHNE Parametern IMMER cmdtext,


    aber wie auch immer ich hab meine Bewertung garnicht gegeben


    5/10


    Warum?


    1. Falscher Bereich
    2. Du darfst noch gar keine Tutorials preisgeben, da du noch nicht lange genug hier bist!


    Dies sind nicht wirklich Gründe :P Hier die Richtigen :D

    Spoiler anzeigen

    1. Jeder kann diesen Befehl machen
    2. Es gibt verschiedene Möglichkeiten mit "listitem" zu arbeiten, Ich halte es bei mehreren Items besser mit der Switch-Case Methode
    3. Zwar einiges erklärt, jedoch wie in 1. bereits gesagt, Jeder kann so einen Befehl machen

    Spoiler anzeigen
    Insgesamt 2 Punkte für die Mühe und 3 Punkte für die Erklärungen


    MfG NicoAiko