Dann kommt
[12:43:03] DEBUG: BEFORE
[12:43:03] 0 - 7|0 - x
[12:43:03] 1 - 6|1 - y
[12:43:03] 2 - 7|2 - z
[12:43:03] DEBUG: AFTER
[12:50:41] 2 - 0|0 - x
[12:50:41] 1 - 0|0 - x
[12:50:41] 0 - 0|0 - x
xyz sollten Namen sein
Dann kommt
[12:43:03] DEBUG: BEFORE
[12:43:03] 0 - 7|0 - x
[12:43:03] 1 - 6|1 - y
[12:43:03] 2 - 7|2 - z
[12:43:03] DEBUG: AFTER
[12:50:41] 2 - 0|0 - x
[12:50:41] 1 - 0|0 - x
[12:50:41] 0 - 0|0 - x
xyz sollten Namen sein
Ah ja, hab den Fehler gefunden, schreibs so:
forward AdminList(playerid);
public AdminList(playerid)
{
static const rang_namen[][] = {"Spieler", "Helfer", "Probe Supporter", "Supporter", "Administration", "Developer", "{00a4b3}Managment", "{FF0000}Projektleitung"};
new rows;
cache_get_row_count(rows);
const MAX_ADMINS = 15;
new table[MAX_ADMINS][2], admins[MAX_ADMINS][MAX_PLAYER_NAME];
for(new i; i<rows; i++)
{
cache_get_value_name_int(i, "Admin", table[i][0]);
cache_get_value_name(i, "Name", admins[i]);
table[i][1] = i;
}
SortDeepArray(table, 0);
new string[(MAX_PLAYER_NAME+25)*MAX_ADMINS] = "Rang\tName\tOnlinestatus";
for(new i=MAX_ADMINS-1,idx,r,status[32]; i!=-1; i--)
{
r = table[i][0], idx = table[i][1];
if(r == 0) continue;
GetPlayerStatus(admins[idx], status);
format(string,sizeof(string),"%s\n%s\t%s\t%s",string,rang_namen[r],admins[idx],status);
}
ShowPlayerDialog(playerid, 8, DIALOG_STYLE_TABLIST_HEADERS, "ARP Team",string,"Okay","");
return 1;
}
Alles anzeigen
Danke, jetzt ist es zwar korrekt aber es steht immer noch dann Spieler Allrounder18 in der Liste. und zwar so lange bis sie voll ist
Also
Projektleiter
Projektleiter
Manager
Spieler
Spieler
Spieler
Spieler
...
und zwar so lange bis sie voll ist
Ja du hast zu schnell kopiert, hatte noch was editiert... xD
Dake, geht.
Könnte man das auch verkürzen mit folgendem irgendwie?
static const rang_namen[][] = {"GetAdminRangName"};
Könnte man das auch verkürzen mit folgendem irgendwie?
Nein, da du dort ja auch Farb-Codes angibst und die Funktion auf pAdmin zurückgreift.
Klar du könntest das alles umorganisieren, dass du das alles in eine Funktion quetschst...aber ist das notwendig?
Dann müsstest du die Farb-Codes ja seperat haben etc.
Also das jetzt an 2 Stellen zu haben, ist jetzt nicht schlimm, zumal sich da vermutlich ja eh nichts ändern wird, mit der Bezeichnung der Namen.
Okay , danke.
Ich möchte auch /helfer machen mit dem selben Prinzip wie /admins.
Soll ich das in das AdminList Public machen oder ein einges, da ich anstattARP Team Helfer im Titel stehn haben möchte. Wie kann ich es machen, dass wen kein Helfer exisitert ne Fehlermeldung kommt im chat?
Soll ich das in das AdminList Public machen oder ein einges
Natürlich ein eigenes...
Wie kann ich es machen, dass wen kein Helfer exisitert ne Fehlermeldung kommt im chat?
Wenn keiner in der Datenbank steht?
Dann einfach rows prüfen, ob der Wert 0 ist, dann kannst du eine Fehlermeldung ausgeben.
Hm, wie genau mach ich das?
Du hast doch jetzt genug Beispiele und weißt wie das funktioniert.
Was genau willst du denn wissen, du musst schon präzise fragen und am Besten deinen Code zeigen, den du schon hast.
Wenn keiner in der Datenbank steht?Dann einfach rows prüfen, ob der Wert 0 ist, dann kannst du eine Fehlermeldung ausgeben.
Das meine ich. Wie mach ich da genau?
Na einfach unter cache_get_row_count das abfragen:
if(rows == 0) return SendClientMessage(playerid,-1,"Fehler: Aktuell gibt es keine Helfer!");
Danke, hat geklappt.
Ist es irgendwie möglich, dass ein Spieler in 2 Gruppen ist in der DB? Ich habe die Spalte Verwalter.
Also Bizverwalter und Hausverwalter zb.
Warum wird das Textdraw Ingame nicht angezeigt?
stock CreateTextdraws()
{
Uhrzeit = TextDrawCreate(577.000000, 20.000000, "00:00");
TextDrawFont(Uhrzeit, 3);
TextDrawLetterSize(Uhrzeit, 0.554166, 2.449999);
TextDrawTextSize(Uhrzeit, 400.000000, 17.000000);
TextDrawSetOutline(Uhrzeit, 2);
TextDrawSetShadow(Uhrzeit, 0);
TextDrawAlignment(Uhrzeit, 2);
TextDrawColor(Uhrzeit, SERVER_COLOR);
TextDrawBackgroundColor(Uhrzeit, 255);
TextDrawBoxColor(Uhrzeit, 50);
TextDrawUseBox(Uhrzeit, 0);
TextDrawSetProportional(Uhrzeit, 1);
TextDrawSetSelectable(Uhrzeit, 0);
Datum = TextDrawCreate(577.000000, 8.000000, "00.00.0000");
TextDrawFont(Datum, 3);
TextDrawLetterSize(Datum, 0.291665, 1.349998);
TextDrawTextSize(Datum, 400.000000, 17.000000);
TextDrawSetOutline(Datum, 2);
TextDrawSetShadow(Datum, 0);
TextDrawAlignment(Datum, 2);
TextDrawColor(Datum, SERVER_COLOR);
TextDrawBackgroundColor(Datum, 255);
TextDrawBoxColor(Datum, 50);
TextDrawUseBox(Datum, 0);
TextDrawSetProportional(Datum, 1);
TextDrawSetSelectable(Datum, 0);
ServerName = TextDrawCreate(8.000000, 427.000000, SERVER_NAME);
TextDrawFont(ServerName, 0);
TextDrawLetterSize(ServerName, 0.558333, 1.550000);
TextDrawTextSize(ServerName, 400.000000, 17.000000);
TextDrawSetOutline(ServerName, 1);
TextDrawSetShadow(ServerName, 0);
TextDrawAlignment(ServerName, 1);
TextDrawColor(ServerName, SERVER_COLOR);
TextDrawBackgroundColor(ServerName, 255);
TextDrawBoxColor(ServerName, 50);
TextDrawUseBox(ServerName, 0);
TextDrawSetProportional(ServerName, 1);
TextDrawSetSelectable(ServerName, 0);
return 1;
}
public OnGameModeInit()
{
CreateTextdraws();
TextDrawShowForAll(ServerName);
TextDrawShowForAll(Datum);
TextDrawShowForAll(Uhrzeit);
return 1;
}
TextDrawShowForAll() zeigt es allen Spieler an, die IN DIESEM MOMENT mit dem Server verbunden sind. Es bietet sich an, das TextDraw bei TextDrawShowForPlayer() anzuzeigen, beispielsweise bei OnPlayerConnect(), OnPlayerSpawn() oder OnPlayerRequestSpawn()
Ist es irgendwie möglich, dass ein Spieler in 2 Gruppen ist in der DB? Ich habe die Spalte Verwalter.
Also Bizverwalter und Hausverwalter zb.
@Kaliber hast du da n Lösung für ich bitte?
hast du da n Lösung für ich bitte?
Naja, was genau speicherst du denn da?
Nur, dass er das ist oder auch dann die ID von dem Haus und dem Biz?
Am Einfachsten ist es natürlich, einfach noch eine Spalte einzufügen...
Theoretisch könntest du auch eine Zahl vergeben, wie z.B.
0 = Er ist nichts
1 = Er ist Hausverwalter
2 = Er ist Bizverwalter
3 = Er ist beides
In Verwater steht drin die ID des Rangs 0 - 7.
Ich hätt gerne, dass zb User xy Hausverwalter und Charakterbeauftragter gleichzeitig ist
Was spricht dagegen einfach eine neue Spalte zu machen?
Es spricht nix dagegen.
Aber was soll dann da rein?
Du meintest doch:
0 = Er ist nichts
1 = Er ist Hausverwalter
2 = Er ist Bizverwalter
3 = Er ist beides
Aber wie weiß ich damit 3 steht was er ist?
Weil wenn ich makeadmin xy 7 mach udn er aber schon 6 ist wird doch pberschrieben oder?