Guten Tag!
Ich habe ein Ticket/Supportsystem das über Mysql läuft.
Soweit so gut es geht alles bis auf das, wenn ich, als Admin /tickets eingebe sehe ich nur meine eigenen /sup texte
Hoffe einer könnte dies machen
Lg
Guten Tag!
Ich habe ein Ticket/Supportsystem das über Mysql läuft.
Soweit so gut es geht alles bis auf das, wenn ich, als Admin /tickets eingebe sehe ich nur meine eigenen /sup texte
Hoffe einer könnte dies machen
Lg
Ohne den Code (Script Ausschnitt), kann dir hier kaum jemand helfen. Wenn du lieber Fernwartung via TeamViewer o.ä. möchtest - solltest du dies erwähnen. Niemand kann dein Problem lösen, wenn er nicht mal einsehen kann - wo das Problem/der Fehler steckt. Bitte denk nächstes mal daran, den benötigten Code mit zu posten, damit es zu keiner erhöten Wartezeit deiner sowie unserer Seite gibt.
Ne ich meine eigentlich, das mir jmd. den Command ganz neu scriptet.
Halt die Anzeige... Das es alle Offenen Tickets angezeigt werden.
Eine Variable ist new TicketGeschrieben[MAX_PLAYERS];
Warum sollten wie den Befehl komplett neu schreiben, anstatt deinen Befehl einfach zu korrigieren?
Wir sind hier zwar im Scriptwünsche bereich aber nun gut...
ocmd:tickets(playerid, params[])
{
if(SpielerInfo[playerid][pAdminLevel] >= 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new AbsenderName[MAX_PLAYER_NAME],AbsenderText[128];
if(TicketGeschrieben[i] == 1)
{
if(InSupport[i] == 0)
{
AbsenderText = mysql_GetString("tickets", "Text", "Absender", SpielerName(i));
mysql_query(StockString);
mysql_free_result();
GetPlayerName(i, AbsenderName, sizeof(AbsenderName));
format(FormatString, sizeof(FormatString), "Absender: %s Text: %s\n", AbsenderName, AbsenderText);
ShowPlayerDialog(playerid,DIALOG_TICKETS,DIALOG_STYLE_INPUT,"Offene Tickets",FormatString,"Öffnen","Abbrechen");
}
else { ShowPlayerDialog(playerid,DIALOG_TICKETS,DIALOG_STYLE_MSGBOX,"Offene Tickets","Es wurden keine Offenen Tickets gefunden","OK",""); }
}
}
}
return 1;
}
Wieso funktioniert dieser Code wohl nicht?
Hmm...
Vielleicht, weil du den Dialog durch die for-schleifen bei jedem Treffer neu lädst.
Versuch doch einfach mal, die Strings zusammenzuführen und anschließend anzeigen zu lassen.
So schwer wird das schon nicht sein.
MfG Firer
Wie meinst du das genau?^^
Und ich dachte eine for-schleife geht einmal die Tabelle durch o.ô
€dit: Sorry fürs pushen aber das Problem ist nicht gelöst.
Ganz einfach
//erst die Schleife
for(new i = 0; i < MAX_PLAYERS; i++)
{
//dann den Ganzen Kram
new AbsenderName[MAX_PLAYER_NAME],AbsenderText[128];
if(TicketGeschrieben[i] == 1)
{
if(InSupport[i] == 0)
{
AbsenderText = mysql_GetString("tickets", "Text", "Absender", SpielerName(i));
mysql_query(StockString);
mysql_free_result();
GetPlayerName(i, AbsenderName, sizeof(AbsenderName));
if(strlen(FormatString)==0) format(FormatString, sizeof(FormatString), "Absender: %s Text: %s", AbsenderName, AbsenderText);//Nur wenn noch nichts im String drinsteht
else format(FormatString, sizeof(FormatString), "%s\nAbsender: %s Text: %s\n",FormatString ,AbsenderName, AbsenderText); // Wenn bereits was im String drinsteht wird etwas geaddet
}
}
}
//Dann den Dialog Anzeigenlassen
ShowPlayerDialog(playerid,DIALOG_TICKETS,DIALOG_STYLE_LIST, (strlen(FormatString)==0) ? ("Es wurde kein Ticket gefunden") : (FormatString), "Öffnen", "Abbruch");
// ^if^ ^then^ ^else^
Ungetestet