Wieso schmiert bei dieser Zeile mein Pawno ab?

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,


    bei Zeile 10 Schmiert bein Pawno ab.
    Woran liegt das?


    MFG


    if(strcmp(cmd, "/report", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(JustReported[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Bitte warte 2 Minuten bis du den Nächsten Report schreiben kannst !");
    return 1;
    }
    ShowPlayerDialog(playerid,DIALOG_REPORT1,DIALOG_STYLE_MSGBOX,"GER-Report-System","Willkommen im GER-Report-System!\n\nÜberprüfe zunächst ob deine Frage nicht auch so beantwortet werden kann.\nBenutze /hilfe [SUCHBEGRIFF]\nDu hast nun die möglichkeit zwischen zwei Auswahlsmöglichkeiten zu entscheiden.\n\n\nRegeln:\n\n{ff0000}•Einfache Fragen und Probleme bitte an die Supporter.\n•Bugs und wichtige Fragen an die Administratoren.\n•Die Frage in eine Kategorie einordnen.\n•Fragen nach Geld oder Leaderplätzen werden sofort gelöscht.{E1E1E1}\n\n\n\n\nHier kannst du nun Auswählen:","Supporter","Admins");
    //ShowPlayerDialog(playerid, DIALOG_REPORT, DIALOG_STYLE_LIST, "Report-System","Supporter\nAdministratoren", "Auswählen", "Abbrechen");
    //ShowPlayerDialog(playerid ,DIALOG_REPORT1, DIALOG_STYLE_INPUT, "{F80000}Einen Report senden","Du hast eine Frage oder möchtest einen Cheater melden?\nBitte Kategorisiere deine Frage in einer Überschrift:","Senden", "Abbrechen");
    }
    return 1;
    }

  • Muss aber... Eigentlich schmiert er ausschließlich bei Klammerfehlern ab...
    Probier einfach das Tool. Herunterladen, die PWN Datei öffnen und schauen, ob was bei herauskommt.
    Kann auch sein, dass du ausversehen etwas entfernt hast und es nicht bemerkt hast, ist mir auch öfters passiert.

  • Der Text sieht mir etwas zu lang aus, versuch den mal testweise zu kürzen. Eigentlich jammert er dann zwar mit dem Error Inputline too long, aber wer weiß, vielleicht hat dein Compiler ja grad die Tage.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • So kannst du es verkürzen



    new string[256];
    format(string,sizeof(string),"Willkommen im GER-Report-System!\n\nÜberprüfe zunächst ob deine Frage nicht auch so beantwortet werden kann.\nBenutze /hilfe [SUCHBEGRIFF]\nDu hast nun die möglichkeit zwischen zwei Auswahlsmöglichkeiten zu entscheiden.\n\n\nRegeln:\n\n{ff0000}•Einfache");
    new string2[256];
    format(string2,sizeof(string2)," Fragen und Probleme bitte an die Supporter.\n•Bugs und wichtige Fragen an die Administratoren.\n•Die Frage in eine Kategorie einordnen.\n•Fragen nach Geld oder Leaderplätzen werden sofort gelöscht.{E1E1E1}\n\n\n\n\nHier kannst du nun Auswählen:");
    new string3[512];
    format(string3,sizeof(string3),"%s%s",string,string2);
    ShowPlayerDialog(playerid,DIALOG_REPORT1,DIALOG_STYLE_MSGBOX,"GER-Report-System",string3,"Absenden","Abbrechen");

  • Da bekomme ich diese Errors:
    error 075: input line too long (after substitutions)
    error 036: empty statement[/pwn]


    Undzwar einmal hier :


    ShowPlayerDialog(playerid,DIALOG_REPORT1,DIALOG_STYLE_MSGBOX,"GER-Report-System",stringss3,"Absenden","Abbrechen");


    und bei dem empty satement bekomme ich in einer Zeile ein Error wo ich etwas ausgeklammert habe also dieses //


    //Edit:


    Lol habe jetzt diese Ausgeklammerten Sachen gelöscht und nun Funktioniert es.


    Wie kann das sein? Ich dachte diese /* */ Sachen sind dann sozusagen Unsichtbar?!

  • Dann sind die Texte immer noch zu lang und du musst sie noch öfter teilen.


    Mach das aber bitte mit strcat, nicht mit format.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Dann teilen wir noch weiter auf

    new string[140];
    strcat(string,"Willkommen im GER-Report-System!\n\nÜberprüfe zunächst ob deine Frage nicht auch so beantwortet werden kann.\nBenutze /hilfe [SUCHBEGRIFF]");
    new string2[117];
    strcat(string2,"\nDu hast nun die möglichkeit zwischen zwei Auswahlsmöglichkeiten zu entscheiden.\n\n\nRegeln:\n\n{ff0000}•Einfache");
    new string3[137];
    strcat(string3," Fragen und Probleme bitte an die Supporter.\n•Bugs und wichtige Fragen an die Administratoren.\n•Die Frage in eine Kategorie einordnen.");
    new string4[111];
    strcat(string4,"\n•Fragen nach Geld oder Leaderplätzen werden sofort gelöscht.{E1E1E1}\n\n\n\n\nHier kannst du nun Auswählen:");
    new string5[505];
    format(string5,sizeof(string5),"%s%s%s%s",string,string2,string3,string4);


    ShowPlayerDialog(playerid,DIALOG_REPORT1,DIALOG_STYLE_MSGBOX,"GER-Report-System",string5,"Absenden","Abbrechen");

  • Diese Methode ist echt unnötig.
    Dafür kann man auch gleich die Funktion strcat benutzen, um den String zu füllen und muss nicht 500 weitere erstellen.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • natürlich muss man das nicht aber der Speicherbedarf ist der gleiche (abgesehen von den paar Byte für den Quelltext).


    edit: hier ohne 4 weitere Strings
    new string[505];
    strcat(string,"Willkommen im GER-Report-System!\n\nÜberprüfe zunächst ob deine Frage nicht auch so beantwortet werden kann.\nBenutze /hilfe [SUCHBEGRIFF]");
    strcat(string,"\nDu hast nun die möglichkeit zwischen zwei Auswahlsmöglichkeiten zu entscheiden.\n\n\nRegeln:\n\n{ff0000}•Einfache");
    strcat(string," Fragen und Probleme bitte an die Supporter.\n•Bugs und wichtige Fragen an die Administratoren.\n•Die Frage in eine Kategorie einordnen.");
    strcat(string,"\n•Fragen nach Geld oder Leaderplätzen werden sofort gelöscht.{E1E1E1}\n\n\n\n\nHier kannst du nun Auswählen:");


    ShowPlayerDialog(playerid,DIALOG_REPORT1,DIALOG_STYLE_MSGBOX,"GER-Report-System",string,"Absenden","Abbrechen");

  • Dennoch muss man dafür erstmal 4 Strings initialisieren und deklarieren, was man eigentlich auch verhindern kann.
    Sowas ist, wie ich finde, nicht das Ideal an schönem/lesbaren Quellcode ;)

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Man muss die nicht mal mit strcat "trennen" oder neue Strings deklarieren.
    Es geht auch so:


    new string[512];
    format(string, sizeof(string), "Dies ist ein Test blabla sehr
    lang blablablabla hi der test wei0ejh0ieh20heriwqhsiug80whfewh
    eijfr0iewfiewngfnfgiewngfeisgf9esfhn lol");
    ShowPlayerDialog(playerid, DIALOG_EXAMPLE, DIALOG_STYLE_MSGBOX, "Test", string, "Okay", "");


    Wobei man den String gar nicht braucht.


    ShowPlayerDialog(playerid, DIALOG_EXAMPLE, DIALOG_STYLE_MSGBOX, "Test", "Dies ist ein Test blabla sehr
    lang blablablabla hi der test wei0ejh0ieh20heriwqhsiug80whfewh
    eijfr0iewfiewngfnfgiewngfeisgf9esfhn lol", "Okay", "");