Problem mit "Grund" Ausgabe

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 ihr,
    ich habe ein Problem! Ich habe ein /ticket Befehl geschrieben, nur leider funktioniert dieser nicht komplett.
    Das problem leigt in der Ausgabe vom Grund. In-Game zeigt er mir einfach nicht den eingegebenen Grund an. Es bleibt einfach leer.
    if(strcmp(strget(cmdtext,0), "/ticket", true) ==0)
    {
    if(GetPVarInt(playerid, "Fraktion") ==1)
    {
    if(!strlen(strget(cmdtext,3))) return SendClientMessage(playerid, COLOR_LILA, "Benutze: /ticket [Spieler] [Geld] [Grund]");
    {
    new pID, money, text[256], text2[256], name[128], grund;
    pID = strval(strget(cmdtext,1));
    money = strval(strget(cmdtext,2));
    //grund = strval(strget(cmdtext,3));
    GetPlayerName(pID, name, sizeof(name));
    GivePlayerMoney(pID, -money);
    format(grund, sizeof grund, strget(cmdtext, 3));
    format(text, sizeof(text), "Du hast ein Ticket in höhe von %i verteilt.", money);
    SendClientMessage(playerid, COLOR_GELB, text);
    format(text2, sizeof(text2), "Du musstes ein Tickt in höhe von %i bezahlen. Grund:", money, grund);
    SendClientMessage(pID, COLOR_GELB, text2);
    SpielerSpeichern(pID);
    }
    }else{
    SendClientMessage(playerid, COLOR_ROT, "Du bist kein Polizist");
    }
    return 1;
    }
    Ich habe schon etliche Methoden versucht, leider erfolglos. Ich hoffe mir kann jemadn helfen. Im Voraus schonmal DANKE ;)


    MfG Waoler

  • Das wird definitiv nicht leer sein,wenn du es so machst.
    format(text2, sizeof(text2), "Du musstes ein Tickt in höhe von %i bezahlen. Grund: %s", money, grund);


    Selbst wenn es mit grund ein Fehler wäre, würdest du da irgendeinen komischen output haben.
    Wie auch immer, mach mal folgendes rein und kopier die Ausgabe aus der Konsole hier ins Forum.
    // Ja,nimm diese Zeile... nicht die oben.
    printf("grund -> '%s'",grund);
    format(text2, sizeof(text2), "Du musstes ein Tickt in höhe von %i bezahlen. Grund: '%s'", money, grund);
    printf(text2);


  • Bin mir auch nicht sicher ob es überhaupt damit klappt:
    strget(cmdtext, 3)
    Kenn die Funktion nicht :-O.


    Eigentlich müsste wenigstens ein Wort angezeigen werden,vorrausgesetzt du gibst sowas ein:

    Zitat

    /ticket 3 1000 du bist zu schnell gefahren.


    Dann müsste grund "du" sein. Das ist auch sehr umständlich es mit strget zu machen. Man könnte direkt auf den Index zugreifen, ist aber keine Gute Lösung. Da würde ich dir eher den sscanf-Part dieses Tutorials empfehlen.Damit ist es viel leichter, trotzdem hier mal n Lösung die du testen könntest.


    format(grund, sizeof grund, cmdtext[7+1+strlen(strget(cmdtext,1)) + 1 + strlen(strget(cmdtext,2))]);
    printf("grund -> '%s'",grund);
    format(text2, sizeof(text2), "Du musstes ein Tickt in höhe von %i bezahlen. Grund: '%s'", money, grund);
    printf(text2);

  • Hab mich eigentlich schon gefragt wo du grund definierst, es aber nicht gesehen. Wollte es gerade bei mir selber testen da hab Ich es erst gesehen.
    Deswegen mach ich auch immer bei Variablen folgende Übersicht:
    new
    pID,
    money,
    text[256],
    text2[256],
    name[128],
    grund[128];

    Wie auch immer ... ,
    new pID, money, text[256], text2[256], name[128], grund;
    grund ist kein Array.
    new pID, money, text[256], text2[256], name[128], grund[128];


    Sollte es jetzt immernoch nicht gehen, mach noch zusätzlich folgendes rein
    printf("cmdtext-> '%s'",cmdtext);

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ja so hatte ich das am Anfang. Habe es aber dann geändert, weil dieser Error kam: error 033: array must be indexed (variable "grund")
    Und als ich die Zahl dann entfehrnt habe, ging es...zumindestens ohne Errors/Warnings.


    Was sagt der Error den aus? Das die Variable "Grund" nicht im index gefunden wurde, also nit indexed...Oder?


    MfG Waoler

  • Kommt auf den Zusammenhang an, wie du es erstellt hattest.
    Sagt eigentlich,dass der Compiler nicht weiss, mit welchem Index der Variable er arbeiten soll ( da es ja ein Array ist ).
    Funktioniert es denn jetzt wenigstens ?