Input Dialog Problem

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
  • Heyyo,


    habe eine SaveBox versucht zuscripten und da soll man bei dem Befehl /savebox ein Dialog bekommen, wo man auswählen kann was man lagern bzw rausnehmen kann. Und danach wenn man dies ausgewählt hat soll ein InPut Dialog kommen.
    Soweit funktioniert das auch jedoch wenn ich dort was eingeben schließt der Dialog einfach ohne irgendwas zu machen.


    Befehl:
    ocmd:savebox(playerid,params)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,-348.20001, 2771.3999, 91.4) | IsPlayerInRangeOfPoint(playerid,5,-1316.1, 2319.5, 128.60001))
    {
    ShowPlayerDialog(playerid,DIALOG_SAVEBOX1,DIALOG_STYLE_LIST,"Was willst du reinlegen/rauslegen?","Drogen","Weiter","Abbrechen");
    }
    return 1;
    }


    Dialoge:
    if(dialogid==DIALOG_SAVEBOX1)
    {
    if(response==0)
    {
    }
    if(response==1)
    {
    if(listitem==0)
    {
    new string1[200];
    format(string1,sizeof(string1),"Du hast %i Drogen dabei und %i in der SaveBox.",GetPVarInt(playerid,"Drogen"),GetPVarInt(playerid,"SBDrogen"));
    ShowPlayerDialog(playerid,DIALOG_SAVEBOX2,DIALOG_STYLE_INPUT,"Wie viele Drogen willst du reinlegen?",string1,"Reinlegen","Rausnehmen");
    }
    }
    }
    if(dialogid==DIALOG_SAVEBOX2)
    {
    if(response==0)//Rausnehmen
    {
    if(inputtext[10]<1)
    {
    }
    else
    {
    if(GetPVarInt(playerid,"SBDrogen")>=inputtext[10])
    {
    new string1[200];
    SetPVarInt(playerid,"SBDrogen",GetPVarInt(playerid,"SBDrogen")-inputtext[0]);
    SetPVarInt(playerid,"Drogen",GetPVarInt(playerid,"Drogen")+inputtext[0]);
    format(string1,sizeof(string1),"Du hast %i Drogen aus der SaveBox genommen.",inputtext[0]);
    SendClientMessage(playerid,gruen,string1);
    }
    }
    }
    if(response==1)//Reinlegen
    {
    if(inputtext[10]<1)
    {
    }
    else
    {
    if(GetPVarInt(playerid,"Drogen")>=inputtext[10])
    {
    new string2[200];
    SetPVarInt(playerid,"SBDrogen",GetPVarInt(playerid,"SBDrogen")+inputtext[0]);
    SetPVarInt(playerid,"Drogen",GetPVarInt(playerid,"Drogen")-inputtext[0]);
    format(string2,sizeof(string2),"Du hast %i Drogen in die SaveBox gelegt..",inputtext[0]);
    SendClientMessage(playerid,gruen,string2);
    }
    }
    }
    }

  • inputtext[10]
    und
    inputtext[0]
    zu:
    strval(inputtext)


    Und
    if(IsPlayerInRangeOfPoint(playerid,5,-348.20001, 2771.3999, 91.4) | IsPlayerInRangeOfPoint(playerid,5,-1316.1, 2319.5, 128.60001))
    zu:
    if(IsPlayerInRangeOfPoint(playerid,5,-348.20001, 2771.3999, 91.4) || IsPlayerInRangeOfPoint(playerid,5,-1316.1, 2319.5, 128.60001))

  • Nein, dazu musst du
    stock IsNumeric(str[]) //©Jeffry
    {
    if(!strlen(str)) return 0;
    for (new i = 0, j = strlen(str); i < j; i++) if(str[i] > '9' || str[i] < '0') return 0;
    return 1;
    }
    verwenden.


    if(!IsNumeric(inputtext)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nur Zahlen.");