Weil wenn ich makeadmin xy 7 mach udn er aber schon 6 ist wird doch pberschrieben oder?
Deshalb sage ich doch mach 2 Spalten.
In die eine kommt die 7 und in die Andere in diesem Fall die 6 und fertig ![]()
Weil wenn ich makeadmin xy 7 mach udn er aber schon 6 ist wird doch pberschrieben oder?
Deshalb sage ich doch mach 2 Spalten.
In die eine kommt die 7 und in die Andere in diesem Fall die 6 und fertig ![]()
Was spricht dagegen einfach eine neue Spalte zu machen?
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
Pawno is just a simple editor for SA-MP pawn scripts. There is no reason it would need to be updated with a new pawn version in the server.
Ist das mt Crashdetect?
Jap ![]()
Ein kurzer Blick in den Thread genügt ja, um das zu sehen: https://forum.sa-mp.com/showthread.php?t=262796
Hast du dazu ne Lösung?
Nun, also Syntax Fehler werden dir beim Compilen angezeigt.
Du redest denke ich mal von runtime errors, also Fehler die zur Laufzeit auftreten, wie z.B. dass man versucht einen ungültigen Array Index zu erreichen.
Dafür wurde das Plugin crashdetect entwickelt ![]()
Du solltest Pawno nicht seperat downloaden.
Nimm die Version, die von SAMP aus mitgeliefert wird.
Und dann poste mal den server_log ![]()
Na einfach unter cache_get_row_count das abfragen:
if(rows == 0) return SendClientMessage(playerid,-1,"Fehler: Aktuell gibt es keine Helfer!");
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.
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.
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.
und zwar so lange bis sie voll ist
Ja du hast zu schnell kopiert, hatte noch was editiert... xD
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
...sehr komisch.
Mach mal n Debug:
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;
}
//Debug
print("DEBUG: BEFORE");
for(new i; i<rows; i++)
{
printf("%d - %d|%d - %s",i,table[i][0],table[i][1],admins[i]);
}
SortDeepArray(table, 0);
//Debug
print("DEBUG: AFTER");
for(new i; i<rows; i++)
{
printf("%d - %d|%d - %s",i,table[i][0],table[i][1],admins[i]);
}
new string[(MAX_PLAYER_NAME+25)*MAX_ADMINS] = "Rang\tName\tOnlinestatus";
for(new i=rows-1,idx,r,status[32]; i!=-1; i--)
{
r = table[i][0], idx = table[i][1];
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
und dann poste mal, was im Log steht.
Okay...interessant.
Hmm 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=rows-1,idx,r,status[32]; i!=-1; i--)
{
r = table[i][0], idx = table[i][1];
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
bzw. was msste ich machen damit die Namen statt den Zahlen da stehn?
Ist das ein Scherz? ![]()
Offensichtlich einfach nur die Namen darein schreiben anstatt der Zahlen...das war ja nur ein Beispiel.
Wie kann ichs machen, dass dDie Ränge geördnet da stehn?
Das ist etwas komplizierter, da du die ja sortieren musst, hier mal ein Beispiel:
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, .sort=SORT_DESC);
new string[(MAX_PLAYER_NAME+25)*MAX_ADMINS] = "Rang\tName\tOnlinestatus";
for(new i,idx,r,status[32]; i<rows; i++)
{
r = table[i][0], idx = table[i][1];
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
//Edit:
Benötigt wird diese Include: https://raw.github.com/oscar-b…d-sort/master/md-sort.inc
assigned value: '7'
Da ist das Problem, du hast zu viele Ränge.
Musst die quasi mal alle eintragen in das Array:
static const rang_namen[][] = {"0", "1", "2", "3", "4", "5", "6", "7"};
wenn nur das tquery im Befehl steht
Es soll nur das im Befehl stehen.
printe eventuell mal rows oder schau in den mysql Log.
Eigentlich sieht das richtig aus.
Vorrausgesetzt in der Datenbank steht, dass Admin ein Integer ist ![]()