Report sytsmen mit Dialoge

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Report sytsmen mit Dialoge

    Hallo liebe Community!
    Ich mache nun ein Report system mit Dialoge.
    Ich hoffe es gefällt euch ich scripte es auf meine art und weise und möchte keine dumme Kommentare hören
    das ich dass falsch scripte etc..
    Weil sowas könnt ihr euch Sparen weil ich gebe 1000% drauf das dass Report system klappen wird. ( Jeden falls bei mir )
    Nun Viel Spaß =)

    Als erstes brauchen wir das inlucde ocmd. Ihr könnt es gerne bei OnPlayerCommandText machen aber ich mache es mit ocmd.
    oben im script wo

    PAWN-Quellcode

    1. #include <a_samp>
    steht machen wir eine zeile darunter

    PAWN-Quellcode

    1. #include <ocmd> //#include = er inluciert ein include :D ocmd = Command-Prrozessor ein include was man sich Downlaoden muss


    Was ist OCMD?
    Ocmd ist ein Command-Prozessor womit man größere Befehle scripten kann und auch leichter ist.

    Nun gehen wir paar zeilen runter bei den includes und machen die Dialoge

    PAWN-Quellcode

    1. #define DIALOG_REPORT 1 // #define -->Definiert etwas -->DIALOG_REPORT--> Ist der
    2. name ihr könnt es auch anders nennen --> 1 = Der 1Dialog. Wenn ihr
    3. mehrere Dialoge habt dan müsst ihr die Zahl anpassen
    4. #define DIALOG_BESCHWERDE 2
    5. #define DIALOG_FRAGE 3
    6. #define DIALOG_HILFE 4


    Wenn ihr nun das include ocmd includiert habt macht ihr bei einer beliebigen stelle die ocmd Command am besten ihr macht ein Kommentar.

    PAWN-Quellcode

    1. //OCMD-Commands

    Wenn ihr eine Stelle gefunden habt, macht am besten über OnPlayerCommandText.. Dann macht ihr das so

    PAWN-Quellcode

    1. ocmd:report(playerid,params[])
    2. {
    3. return 1;
    4. }

    PAWN-Quellcode

    1. //ocmd = der command-prozessor.. report = der name könnt ihr auch anders nennen... playerid = der player der den befehl ausführt.
    2. params[] = parameter die wir hier nicht brauchen


    Dann macht ihr über return 1; das hier

    PAWN-Quellcode

    1. ShowPlayerDialog(playerid,DIALOG_REPORT,DIALOG_STYLE_LIST,"Report","Beschwerde gegen ein User\nFrage an die Admins\nHilfe","Wählen","Abbrechen");
    // ShowPlayerDialog = Er zeigt den Spieler den Spieler ein Dialog an = DIALOG_REPORT Den wir definiert haben.. DIALOG_STYLE_LIST = Der Dialog style ist eine Liste und "Report" ist die Überschrift.
    "Was da drinne steht Beschwerde gegen user" etc ist der Text wasim Dialog drinne steht und Wählen und Abbrechen sind die 2Buttons

    Nun gehen wir zu

    PAWN-Quellcode

    1. OnDialogResponse


    dann machen wir..

    PAWN-Quellcode

    1. if(dialogid == DIALOG_REPORT)
    2. {
    3. return 1;
    4. }


    if ist eine anfrage er fragt hier ab was wir für ein Dialog verwenden möchten. In unseren fall DIALOG_REPORT und dialogid ist der dialog den wir definiert haben.

    Da drinne machen wir nun

    PAWN-Quellcode

    1. if(response == 0)
    2. {
    3. SendClientMessage(playerid,ROT,"Sie haben das --/report-- Menü verlassen.");
    4. }


    Er fragt nun hier ab was er mit den Button machen soll response = Der Button 0 = Der rechte Button in useren fall Abbrechen!

    Nun fragen wir den Link Button gleich darunter ab was der machen soll..
    Er soll die liste aufzählen das werde ich schnell machen..

    PAWN-Quellcode

    1. if(response==1)
    2. {
    3. if(listitem==0)
    4. {
    5. ShowPlayerDialog(playerid,DIALOG_BESCHWERDE,DIALOG_STYLE_INPUT,"Report ( Beschwerde über ein User )","Bitte geben sie ihre Beschwerde ein.\nSchreiben sie anschließend den Name + ID.\nBeispiel: Pascal ID:14","Report","Abbrechen");
    6. return 1;
    7. }
    8. if(listitem==1)
    9. {
    10. ShowPlayerDialog(playerid,DIALOG_FRAGE,DIALOG_STYLE_INPUT,"Report ( Frage an Admins )","Bitte stellen sie ihr Frage und schreiben sie es hier rein","Report","Abbrechen");
    11. return 1;
    12. }
    13. if(listitem==2)
    14. {
    15. ShowPlayerDialog(playerid,DIALOG_HILFE,DIALOG_STYLE_INPUT,"Report ( Hilfe )","Sie benötigen Hilfe? Schreiben sie es hier rein für was sie Hilfe benötigen!","Report","Abbrechen");
    16. return 1;
    17. }
    18. return 1;
    19. }
    Alles anzeigen

    Das ist nun alles habe eig nun alles erklärt außer listitem.
    listitem ist die Liste in welcher reinfolge er es auflistet es fängt mit 0 an das ist sozusagen das 1 was angezeigt wird.

    Und darunter erstellen wir die nächsten Teile.
    Wir fragen nun ein neuen Dialog ab. ( DIALOG_BESCHWERDE )

    PAWN-Quellcode

    1. if(dialogid == DIALOG_BESCHWERDE)
    2. {
    3. return 1;
    4. }


    Dann da rein wieder

    PAWN-Quellcode

    1. if(response == 0)
    2. {
    3. return 1;
    4. }
    5. if(response == 1)
    6. {
    7. return 1;
    8. }

    nun erstellen wir bei response == 1 das hier

    PAWN-Quellcode

    1. new string[128],string2[128];//new = Erstellt eiene neue variable string/2 = Das er die nachricht ausgibt denn die strings werden wir formatieren

    PAWN-Quellcode

    1. und [128] = Eine Array größe, die, die länge des textes bestimmt!

    Nun erstellen wir das format

    PAWN-Quellcode

    1. format(string,sizeof(string),"%s hat ein Report abgeschickt. Katogorie: Beschwerde über ein User",SpielerName(playerid));

    Nun formatieren wir den text der an die Admins geschickt wird. format = formatierung, string = die variable.. sizeof = er bestimmt die länge der Array größe, %s ein Text bzw name bsp: Pascal hat ein Report abgeschickt.. SpielerName(playerid) = SpielerName ist ein stock playerid sagte ich bereits

    PAWN-Quellcode

    1. SendAdminMessage(DROT,string);
    2. format(string2,sizeof(string2),"Report-Text: %s",inputtext);
    3. SendAdminMessage(DROT,string2);
    4. SendClientMessage(playerid,Gelb,"Ihr Report wird gerade überprüft, haben Sie ein wenig Geduld.");

    Und hier schickt er alles an die Admin und string2 wird da auch formatiert
    Dann wird eine Message an den player geschickt das sein Report bearbeitet wird.

    Und dass machen wir mit alle dialoge.

    PAWN-Quellcode

    1. if(dialogid == DIALOG_FRAGE)
    2. {
    3. if(response==0)
    4. {
    5. return 1;
    6. }
    7. if(response==1)
    8. {
    9. new string[128],string2[128];
    10. format(string,sizeof(string),"%s hat ein Report abgeschickt. Katogorie: Frage an die Admins",SpielerName(playerid));
    11. SendAdminMessage(DROT,string);
    12. format(string2,sizeof(string2),"Report-Text: %s",inputtext);
    13. SendAdminMessage(DROT,string2);
    14. SendClientMessage(playerid,Gelb,"Ihr Report wird gerade überprüft, haben Sie ein wenig Geduld.");
    15. return 1;
    16. }
    17. return 1;
    18. }
    19. if(dialogid == DIALOG_HILFE)
    20. {
    21. if(response==0)
    22. {
    23. return 1;
    24. }
    25. if(response==1)
    26. {
    27. new string[128],string2[128];
    28. format(string,sizeof(string),"%s hat ein Report abgeschickt. Katogorie: Hilfe",SpielerName(playerid));
    29. SendAdminMessage(DROT,string);
    30. format(string2,sizeof(string2),"Report-Text: %s",inputtext);
    31. SendAdminMessage(DROT,string2);
    32. SendClientMessage(playerid,Gelb,"Ihr Report wird gerade überprüft, haben Sie ein wenig Geduld.");
    33. return 1;
    34. }
    35. return 1;
    36. }
    Alles anzeigen


    Unten im Script kommt das rein

    die stocks werde ich nun nicht erklären

    PAWN-Quellcode

    1. stock SendAdminMessage(color,const message[])
    2. {
    3. for(new i=0; i<MAX_PLAYERS; i++)
    4. {
    5. if(IsPlayerConnected(i) && IsPlayerAnAdmin(i,1))
    6. {
    7. SendClientMessage(i,color,message);
    8. }
    9. }
    10. return 1;
    11. }
    Alles anzeigen


    PAWN-Quellcode

    1. stock SpielerName(playerid)
    2. {
    3. new name[MAX_PLAYER_NAME];
    4. GetPlayerName(playerid,name,sizeof(name));
    5. return name;
    6. }


    Ich hoffe es hat euch Gefallen wenn ich was flasch erklärt habe dann dürft ihr das gerne sagen.
    Ich bin selber noch Anfänger und versuche alles =)
    Es hat nun 7150Zeichen verbraucht das Tutorial.

    Mit Freundlichen Grüßen Pascal

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pascal1998 ()

  • Naja, die Rechtschreibung bzw. Grammatik ist jetzt nicht soooo Ok.
    Ein paar Sachen hast du falsch bzw. garnicht erklärt.

    Zudem kann es bei anderen nicht funktionieren, da du die Funktion IsPlayerAnAdmin nicht erklärt hast.
    Bei den Dialogen hättest du außerdem mit switch & case arbeiten sollen / können.

    Trotzdem, für dein erstes Tutorial nicht ALLZU schlecht.

    Ich enthalte mich jeglicher Bewertung (das war konstruktive Kritik, yoooooo)
  • Ich habe mir jetzt nicht wirklich viel durch gelesen, mich Interessiert dein Code mehr ^^ Der verät mir ob du ein sauberer oder unsauberer Scripter bist ;)

    Pascal1998 schrieb:


    PAWN-Quellcode

    1. if(response == 0)
    2. {
    3. SendClientMessage(playerid,ROT,"Sie haben das --/report-- Menü verlassen.");
    4. }


    Hier kannst du schonmal 3 Zeilen sparen ^^ Genaus brauchst du nicht abfragen ob der Wert null ist .. einfach ein ! davor ist das selbe ^^

    PAWN-Quellcode

    1. if(!response)return SendClientMessage(playerid,ROT,"Sie haben das --/report-- Menü verlassen.");



    Pascal1998 schrieb:


    PAWN-Quellcode

    1. if(response==1)
    2. {
    3. if(listitem==0)
    4. {
    5. ShowPlayerDialog(playerid,DIALOG_BESCHWERDE,DIALOG_STYLE_INPUT,"Report ( Beschwerde über ein User )","Bitte geben sie ihre Beschwerde ein.\nSchreiben sie anschließend den Name + ID.\nBeispiel: Pascal ID:14","Report","Abbrechen");
    6. return 1;
    7. }
    8. if(listitem==1)
    9. {
    10. ShowPlayerDialog(playerid,DIALOG_FRAGE,DIALOG_STYLE_INPUT,"Report ( Frage an Admins )","Bitte stellen sie ihr Frage und schreiben sie es hier rein","Report","Abbrechen");
    11. return 1;
    12. }
    13. if(listitem==2)
    14. {
    15. ShowPlayerDialog(playerid,DIALOG_HILFE,DIALOG_STYLE_INPUT,"Report ( Hilfe )","Sie benötigen Hilfe? Schreiben sie es hier rein für was sie Hilfe benötigen!","Report","Abbrechen");
    16. return 1;
    17. }
    18. return 1;
    19. }
    Alles anzeigen


    Naja gut.. du solltest bei so etwas lieber mit switch & case arbeiten 8)
    Es ist schneller und greift direkt auf den Wert zu und geht nicht noch alle durch..

    PAWN-Quellcode

    1. switch(listitem)
    2. {
    3. case 0:{}
    4. case 1:{}
    5. }


    Pascal1998 schrieb:

    PAWN-Quellcode

    1. if(response==0)
    2. {
    3. return 1;
    4. }


    Kannst du weglassen, ist totaler schwachsinn..

    Pascal1998 schrieb:

    PAWN-Quellcode

    1. new string[128],string2[128];
    2. format(string,sizeof(string),"%s hat ein Report abgeschickt. Katogorie: Hilfe",SpielerName(playerid));
    3. SendAdminMessage(DROT,string);
    4. format(string2,sizeof(string2),"Report-Text: %s",inputtext);
    5. SendAdminMessage(DROT,string2);
    6. SendClientMessage(playerid,Gelb,"Ihr Report wird gerade überprüft, haben Sie ein wenig Geduld.");


    Dein ernst ? Du willst doch nicht ehrlich in jedem Dialog wo du einen string brauchst, einen neuen erstellen ? ..
    Merke dir ein String ist ein Array den solltest du dann auch so nutzen !
    Ganz oben unter public OnDialogResponse... einmal den string deklariert und gut.
    Erstellst du zu viele Strings schmiert der Server wahrscheinlich irgendwann ab ^^ ..


    EDIT: COde in Pawn eingefügt

    Beitrag von FraiTzz ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • Alles schön und gut und auch verständlich aber was zum Himmel meinst du mit dem DROT Pawno versteht das bei mir nicht


    Quellcode

    1. new string[128];
    2. format(string,sizeof(string),"%s hat Hilfe angefordert! Kategorie:Beschwerde über einen User!",getPlayerName(playerid));
    3. SendAdminMessage(DROT,string);
    4. format(string,sizeof(string),"Report-Text: %s",inputtext);
    5. SendAdminMessage(DROR,string);
    6. SendClientMessage(playerid,Color_Green,"Deine Beschwerde über einen User wird nun überprüft ein Admin wird sich für weiter Fragen eventuell bei dir melden");
    Pawno Fehler

    C:\Users\Chris\Desktop\SAMP Server\gamemodes\script.pwn(1808) : error 017: undefined symbol "DROT"
    C:\Users\Chris\Desktop\SAMP Server\gamemodes\script.pwn(1810) : error 017: undefined symbol "DROR"
    C:\Users\Chris\Desktop\SAMP Server\gamemodes\script.pwn(1826) : error 017: undefined symbol "DROT"
    C:\Users\Chris\Desktop\SAMP Server\gamemodes\script.pwn(1828) : error 017: undefined symbol "DROT"
    C:\Users\Chris\Desktop\SAMP Server\gamemodes\script.pwn(1844) : error 017: undefined symbol "DROT"
    C:\Users\Chris\Desktop\SAMP Server\gamemodes\script.pwn(1846) : error 017: undefined symbol "DROT"