Leider führt er den Code nicht ordnungsgemäß aus.
Auch wenn ich einen fehlenden Datensatz suchen möchte, gibt er mir die Fehlermeldung nicht aus.
Ich möchte dass das System mir pro Seite im Dialog, 10-20 Einträge Zeigt vom Spieler.
Ich habe auch gemerkt, das der Code ziemlich Recourcenfressend ist, die Dateigröße wurde auf einen Schwung viel größer.
Quellcode:
ocmd:pp(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 6)return 1;
new query[256];
if(sscanf(params, "s", query))return SCM(playerid, COLOR_GREY, "Befehl: /pp [Name]");
mysql_format(handle, query, sizeof query, "SELECT * FROM playerprotocol WHERE Name='%e'", query),
mysql_pquery(handle, query, "PlayerQuery", "d", PLAYER_QUERY_PPROTOCOL);
return 1;
}
case PLAYER_QUERY_PPROTOCOL:
{
if(!rows)return SCM(playerid, COLOR_LESSRED, "Es wurde kein Eintrag gefunden.");
SetPVarInt(playerid, "ProtocolStep", rows);
new str[1024];
str = "Datum\tUhrzeut\tInhalt\n";
for(new i;i<rows;i++)
{
cache_get_value_name(i, "Datum", ProtocolRead[playerid][i][0], 600),
cache_get_value_name(i, "Uhrzeit", ProtocolRead[playerid][i][1], 600),
cache_get_value_name(i, "Inhalt", ProtocolRead[playerid][i][2], 600);
if(i <= 9)
{
if(strlen(ProtocolRead[playerid][i][2]) > 0)
{
format(str, sizeof str, "%s%s\t%s\t%s\n", str, ProtocolRead[playerid][i][0], ProtocolRead[playerid][i][1], ProtocolRead[playerid][i][2]);
}
}
}
ShowPlayerDialog(playerid, D_PP, DIALOG_STYLE_TABLIST_HEADERS, "Spielerprotokoll", str, "Schließen", "");
}
case D_PP:
{
if(!response || listitem || GetPVarInt(playerid, "ProtocolStep") >= countProtoStep(playerid))
{
SCM(playerid, COLOR_GREY, "Du hast entweder das Fenster geschlossen oder es sind keine weiteren Einträge vorhanden!");
return 1;
}
query = "Datum\tUhrzeit\tInhalt\n";
for(new k = GetPVarInt(playerid, "ProtocolStep"), i; i<k+10;i++)
{
format(query, sizeof query, "%s%s\t%s\t%s", ProtocolRead[playerid][i][0], ProtocolRead[playerid][i][1], ProtocolRead[playerid][i][2]),
SetPVarInt(playerid, "ProtocolStep", GetPVarInt(playerid, "ProtocolStep") + 1);
}
ShowPlayerDialog(playerid, D_PP, DIALOG_STYLE_TABLIST_HEADERS, "Spielerprotokoll", query, "Schließen", "");
}
stock countProtoStep(playerid)
{
new counter;
for(new i;i<sizeof ProtocolRead;i++)
{
if(strlen(ProtocolRead[playerid][i][2]) > 0)counter ++;
}
return counter;
}