Große Probleme bei meiner Fraktionskasse

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
  • Hi,
    Ich hing gestern bestimmt 4 Stunden oder so an ner Fraktionskasse, da ich noch ein kleiner anfänger im scripten bin....


    Nunjaaa, und als ich die heute testen wollte, habe ich folgende Probleme:


    Beim Kassenstand steht da "y$" und wenn ich auf "Einzahlen" oder "Auszahlen" klicke, kommt dort einfach kein Dialog!


    Hier der Code!:



    COMMAND:fkasse(playerid, params[])
    {
    if(SpielerInfo[playerid][pFraktion] >= 1)
    {
    new ftext[32],titel[128];
    ftext = Fracs[(SpielerInfo[playerid][pFraktion]-1)];
    format(titel, sizeof(titel),"Fraktionskasse der %s",ftext);
    new inhalt[128];
    new fkasse = mysql_GetInt("fraktionen", "frakgeld", "frakid", SpielerInfo[playerid][pFraktion]);
    format(inhalt, sizeof(inhalt),"In der Kasse deiner Fraktion sind %s$ eingezahlt!\nWillst du etwas einzahlen oder abheben? ",fkasse);
    ShowPlayerDialog(playerid, DIALOG_FKASSE, DIALOG_STYLE_MSGBOX, titel, inhalt,"Einzahlen","Abheben");
    return 1;
    }
    return 1;
    }


    if(listitem==DIALOG_FKASSE)
    {
    if(response==0)
    {
    ShowPlayerDialog(playerid, DIALOG_FKASSE_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe den Betrag ein, den du in die Fraktionskasse einzahlen möchtest","Einzahlen","Abbrechen");
    }
    if(response==1)
    {
    if(SpielerInfo[playerid][pLeader] >= 1)
    {
    ShowPlayerDialog(playerid, DIALOG_FKASSE_AUSZAHLEN,DIALOG_STYLE_INPUT,"Auszahlen","Bitte gebe den Betrag ein, den du aus der Fraktionskasse auszahlen möchtest","Auszahlen","Abbrechen");
    }
    }
    }
    if(listitem==DIALOG_FKASSE_EINZAHLEN)
    {
    if(response==0)
    {
    if(strlen(inputtext) > 0)
    {
    new money = inputtext[11];
    if(GetPlayerMoney(playerid) < money)
    {
    SendClientMessage(playerid,Grau,"Du hast nicht soviel Geld auf der Hand, wie du eingetippt hast");
    ShowPlayerDialog(playerid, DIALOG_FKASSE_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe den Betrag ein, den du in die Fraktionskasse einzahlen möchtest","Einzahlen","Abbrechen");
    return 1;
    }
    else
    {
    GivePlayerMoney(playerid, - money);
    mysql_SetInt("fraktionen", "frakgeld", money, "Frakid", SpielerInfo[playerid][pFraktion]);
    return 1;
    }
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_FKASSE_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe den Betrag ein, den du in die Fraktionskasse einzahlen möchtest","Einzahlen","Abbrechen");
    return 1;
    }
    }
    }
    if(listitem==DIALOG_FKASSE_AUSZAHLEN)
    {
    if(response==0)
    {
    new money2 = mysql_GetInt("fraktionen", "frakgeld", "frakid", Fraktionen[Fraktid]);
    new money = inputtext[11];
    if(money2 < money)
    {
    SendClientMessage(playerid, Grau, "In der Kasse ist nicht soviel Geld, wie du eingetippt hast");
    return 1;
    }
    else
    {
    GivePlayerMoney(playerid, money);
    mysql_SetInt("fraktionen", "frakgeld", -money, "Frakid", SpielerInfo[playerid][pFraktion]);
    return 1;
    }
    }
    }
    return 1;
    }


    Ich bitte um hilfe ;(
    Vielen Dank schonmal im Vorraus!

    Mit freundlichen Grüßen

    #define



  • fuer problem 1:



    format(inhalt, sizeof(inhalt),"In der Kasse deiner Fraktion sind %i$ eingezahlt!\nWillst du etwas einzahlen oder abheben? ",fkasse);

    anstatt %s fuer einen string brauchst du ein %i fuer ein integer .


    und das hier

    if(listitem==DIALOG_FKASSE)

    umaendern in

    if(dialogid==DIALOG_FKASSE)

    und das kommt in onplayerdialogresponse

  • Zum zweiten Problem:
    Wenn du abfragen willst, welcher Dialog aufgerufen wurde, verwendest du
    if(dialogid == DIALOG_ID)


    und nicht


    if(listitem == DIALOG_ID)


    Folglich sieht der korrekte Code so aus:


    if(dialogid==DIALOG_FKASSE)
    {
    if(response==0)
    {
    ShowPlayerDialog(playerid, DIALOG_FKASSE_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe den Betrag ein, den du in die Fraktionskasse einzahlen möchtest","Einzahlen","Abbrechen");
    }
    if(response==1)
    {
    if(SpielerInfo[playerid][pLeader] >= 1)
    {
    ShowPlayerDialog(playerid, DIALOG_FKASSE_AUSZAHLEN,DIALOG_STYLE_INPUT,"Auszahlen","Bitte gebe den Betrag ein, den du aus der Fraktionskasse auszahlen möchtest","Auszahlen","Abbrechen");
    }
    }
    }
    if(dialogid==DIALOG_FKASSE_EINZAHLEN)
    {
    if(response==0)
    {
    if(strlen(inputtext) > 0)
    {
    new money = inputtext[11];
    if(GetPlayerMoney(playerid) < money)
    {
    SendClientMessage(playerid,Grau,"Du hast nicht soviel Geld auf der Hand, wie du eingetippt hast");
    ShowPlayerDialog(playerid, DIALOG_FKASSE_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe den Betrag ein, den du in die Fraktionskasse einzahlen möchtest","Einzahlen","Abbrechen");
    return 1;
    }
    else
    {
    GivePlayerMoney(playerid, - money);
    mysql_SetInt("fraktionen", "frakgeld", money, "Frakid", SpielerInfo[playerid][pFraktion]);
    return 1;
    }
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_FKASSE_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe den Betrag ein, den du in die Fraktionskasse einzahlen möchtest","Einzahlen","Abbrechen");
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_FKASSE_AUSZAHLEN)
    {
    if(response==0)
    {
    new money2 = mysql_GetInt("fraktionen", "frakgeld", "frakid", Fraktionen[Fraktid]);
    new money = inputtext[11];
    if(money2 < money)
    {
    SendClientMessage(playerid, Grau, "In der Kasse ist nicht soviel Geld, wie du eingetippt hast");
    return 1;
    }
    else
    {
    GivePlayerMoney(playerid, money);
    mysql_SetInt("fraktionen", "frakgeld", -money, "Frakid", SpielerInfo[playerid][pFraktion]);
    return 1;
    }
    }
    }
    return 1;



    BlackLegend

  • ouhhhh, ich idiot......


    ok, das mit dem interger wusste ich noch nicht, aber das ich da listitem gschrieben habe...


    Danke!!!


    //edit: Hmm, wisst ihr, wieso ich kein geld abgezogen bekomme beim einzahlen und auch garnix in die kasse kommt, also beim einzahlen und auszahlen passiert nix!

    Mit freundlichen Grüßen

    #define



    Einmal editiert, zuletzt von Fannboyyy ()