/häuser geht nicht so wie es gehen soll

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 Breadfish


    ich mal wieder ein Problem das ich alleine nicht Beheben kann es geht dieses mal um die häuser


    ich habe mir ein Befehl "/häuser" erstellt das ich alle Häuser sehen kann es sind bis jetzt "198 Häuser" und es sollen noch mehr erstellt werden


    mein Problem liegt jetzt darin das das Dialog nur 34 Häuser angezeigt werden von 198 Häuser


    wenn ich das "str" auf "6000" setzte kommt "SERVER: Unknown command"


    ich hoffe ihr könnt mir da helfen das ich alle Häuser sehr aber nicht vergessen es kommen noch mehr Häuser rein


    und ich benutze das alte Haus System "property.cfg"



    if(strcmp(cmd, "/häuser", true) == 0)
    {
    new str[5600];
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 9)
    {
    if(AdminDuty[playerid] == 1)
    {
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    format(str, sizeof(str), "%s\n{00FF00}%s {FFFF00}Hausnummer: {00FF00}%d {FFFF00}Besitzer: {00FF00}%s {FFFF00}Level: {00FF00}%d",str,HouseInfo[i][hDiscription],i,HouseInfo[i][hOwner],HouseInfo[i][hLevel]);
    ShowPlayerDialog(playerid, INFODIALOG, DIALOG_STYLE_MSGBOX, "{FFFF00}Alle Häuser", str, " {FFFF00}Ok ","");
    }
    }
    else
    {
    SendClientMessage(playerid, TEAM_BLUE_COLOR,"Du bist nicht im Admindienst");
    }
    }
    }
    return 1;
    }

  • Laut dem Wiki können im Text nicht mehr als 4096 Zeichen angezeigt werden, daher brauchst du das auch nicht höher machen.
    Versuche es, indem du das ShowPlayerDialog aus der Schleife nimmst, das darf nicht da drin sein:
    if(strcmp(cmd, "/häuser", true) == 0)
    {
    new str[4096];
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 9)
    {
    if(AdminDuty[playerid] == 1)
    {
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    format(str, sizeof(str), "%s{00FF00}%s {FFFF00}Hausnummer: {00FF00}%d {FFFF00}Besitzer: {00FF00}%s {FFFF00}Level: {00FF00}%d\n",str,HouseInfo[i][hDiscription],i,HouseInfo[i][hOwner],HouseInfo[i][hLevel]);
    }
    ShowPlayerDialog(playerid, INFODIALOG, DIALOG_STYLE_MSGBOX, "{FFFF00}Alle Häuser", str, "{FFFF00}Ok ","");
    }
    else
    {
    SendClientMessage(playerid, TEAM_BLUE_COLOR,"Du bist nicht im Admindienst");
    }
    }
    }
    return 1;
    }


    Allerdings musst du bedenken, dass der MSGBOX Dialog keine 200 Zeilen haben kann (kann er schon, wird dann aber oben und unten über den Bildschirm raus gehen). Da musst du gegebenenfalls mit einer zweiten Seite arbeiten, oder mit einer LIST.