GUI

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,


    mir ist grad ein Problem aufgefallen das dieser Code bei OnPlayerDialogResponse gar nicht funktionier!


    if(!strlen(inputtext))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Bitte gebe hier ein Namen oder eine ID ein!");
    return 1;
    }


    Jedoch überspringt der das obwohl ich nichts eingebe..


    Weiß einer woran das liegt?


    //Edit auf neuesten Stand geändert


    //Edit: Da passt was mit strlen an sich nicht mehr...


    Hier mein Testcode


    if(strlen(inputtext) < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "0");
    }
    if(strlen(inputtext) < 2)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "1");
    }
    if(strlen(inputtext) < 3)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "2");
    }
    if(strlen(inputtext) < 4)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "3");
    }


    Hier der Screen


    breadfish.de/wcf/attachment/2778/


    Sobald ich < 1 habe kommt nichts, er springt nicht in die Schleife, der Rest ist okay
    Also das muss erst seit geraumer Zeit sein, den früher müsste das gegangen sein... Wüsste nicht das es mal Fehler gab...
    Weiß keiner eine Antwort bzw ob es früher ging und das seit neuestem ein Bug ist?
    Kann das mal jemand auf seinem Server testen?


    Ansonsten müsste man das melden

  • Also der gesamte Callback geht nicht... Soviel Zeichen gehen hier nicht mal...


    Hier Kurzform, bei mir kommt der Code so oft vor und immer geht er nicht... Mich würde mal interessieren ob er bei anderen geht, dann weiß ich schon mal ob es an meinem Code liegt oder an dem inputtext


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new string[256];
    if(dialogid == 103 || dialogid == 101 || dialogid == 102)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast auf den 2. Button geklickt!");
    }
    if(response == 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast auf den 1. Button geklickt!");
    }
    }
    if(dialogid == 0) //Loginbox Registriert
    {
    if(response == 0) //2.Button
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dann muss du wohl den Server verlassen.");
    Kick(playerid);
    return 1;
    }
    if(response == 1) //1.Button
    {
    format(string, sizeof(string), "Test: %s",inputtext);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    if(strlen(inputtext) < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "1");
    }
    if(strlen(inputtext) < 2)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "1");
    }
    if(strlen(inputtext) < 3)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "2");
    }
    if(strlen(inputtext) < 4)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "3");
    }
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst schon was eingeben!");
    format(string, sizeof(string), "Dein Nickname ist schon vorhanden!\n\n%s Bitte gebe hier dein Passwort ein:",sendername);
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "LoginBox", string, "OK", "Cancel");
    return 1;
    }
    OnPlayerLogin(playerid,inputtext);
    }
    }
    return 0;
    }


    //Edit


    Habe Fehler gefunden... Liegt an JunkBuster... Sobald ich das Include rausnehme ist der Fehler weg!
    Muss jetzt gucken woran es daran liegt


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new len=strlen(inputtext);
    for(new i=0;i<len;i++)
    if(inputtext[i]=='%')
    inputtext[i]='#';

    if(!len)
    return CallLocalFunction("JB_OnDialogResponse","iiiis",playerid, dialogid, response, listitem, "\1");
    return CallLocalFunction("JB_OnDialogResponse","iiiis",playerid, dialogid, response, listitem, inputtext);
    }


    Muss man echt nicht verstehen -.- Wieso er da eine \1 setzt? Daran liegt auch der Fehler