Also ich bin lange raus, aber ja, sowas tut in meinen Augen weh
ocmd:pp(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 6)return 1;
new query[MAX_PLAYERS_NAME+1];//Warum 256 statt der maximal zulässigen Länge eines Namen
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' LIMIT 10", query),//mit LIMIT kannst du schon im MySQL-Query angeben wie viel Einträge geladen werden sollen
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", 1);//Statt "rows" machen wir hier jetzt 1, Also die Seiten (1, 2, 3 4 etc).
query = "Datum\tUhrzeut\tInhalt\n";//Ich sehe bei D_PP kein "new query" also denke ich mal das du query global definiert hast, warum also nen neuen 1024er string?
for(new i;i<rows;i++)
{
cache_get_value_name(i, "Datum", ProtocolRead[playerid][i][0], 12),//600 Zeichen dürfte das Datum wohl nicht lang sein
cache_get_value_name(i, "Uhrzeit", ProtocolRead[playerid][i][1], 12),//genau so wie bei der Uhrzeit - ich weis nicht wie du abspeicherst, deswegen mal 12
cache_get_value_name(i, "Inhalt", ProtocolRead[playerid][i][2], 600);//hier solltest du auch mal schauen ob gespeicherte Nachrichten wirklich 600 Zeichen lang sein werden
format(query, sizeof query, "%s%s\t%s\t%s\n", query, ProtocolRead[playerid][i][0], ProtocolRead[playerid][i][1], ProtocolRead[playerid][i][2]);
//Da du eh nur 10 lädst, brauchst du keine Abfrage mehr
}
ShowPlayerDialog(playerid, D_PP, DIALOG_STYLE_TABLIST_HEADERS, "Spielerprotokoll", str, "Schließen", "");
}
Alles anzeigen
case D_PP:
{
if(!response || listitem)
{
SCM(playerid, COLOR_GREY, "Dialog geschlossen.");//Wir sagen es ihm/ihr gleich, wenn es keine Einträge mehr gibt :)
return 1;
}
query = "Datum\tUhrzeit\tInhalt\n";
SetPVarInt(playerid, "ProtocolStep", GetPVarInt(playerid, "ProtocolStep") + 1);//Wir zählen die zeiten. 1, 2, 3 usw.
new newsite = GetPVarInt(playerid, "ProtocolStep") * 10); //Wäre es z.b 2, dann würde die var jetzt 20 sein, bei drei 30 etc.
mysql_format(handle, query, sizeof query, "SELECT * FROM playerprotocol WHERE Name='%e' LIMIT 10, 20", query),
mysql_pquery(handle, query, "PlayerQuery", "d", PLAYER_QUERY_PPROTOCOL);
if(cache_num_rows() < 1)
{
SCM(playerid, COLOR_GREY, "Es sind keine weiteren Einträge verfügbar.");
return 1;
}
for(new i;i<10;i++)
{
cache_get_value_name(i, "Datum", ProtocolRead[playerid][i+newsite][0], 12),
cache_get_value_name(i, "Uhrzeit", ProtocolRead[playerid][i+newsite][1], 12),
cache_get_value_name(i, "Inhalt", ProtocolRead[playerid][i+newsite][2], 600);
format(query, sizeof query, "%s%s\t%s\t%s\n", query, ProtocolRead[playerid][i][0], ProtocolRead[playerid][i][1], ProtocolRead[playerid][i][2]);
}
ShowPlayerDialog(playerid, D_PP, DIALOG_STYLE_TABLIST_HEADERS, "Spielerprotokoll", query, "Schließen", "");
}
Alles anzeigen
Du scheinst aber ein wenig Ahnung zu haben, deswegen bin ich mir sicher das du darauf aufbauen kannst. Wenn, du möchtest.
Aus dem Kopf - Ungetestet - Keine Garantie