Ich habe auch /creport eingegeben und dann kommt im Chat:
"Irgendetwas ging schief"

Befehl ocmd:report funktioniert nicht
- [PeL]Smiley
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ich habe auch /creport eingegeben und dann kommt im Chat:
"Irgendetwas ging schief"Schreibe es so:
Spoiler anzeigen ocmd:creport(playerid,params[])
{
if(!IsPlayerConnected(playerid))return 1;
new string[128];
if(SpielerInfo[playerid][pReportAktiv] == 0)return SendClientMessage(playerid, Rot, "** Kein aktiver Report!");
printf("Level: %d", SpielerInfo[playerid][pAdminlevel])
if(SpielerInfo[playerid][pAdminlevel] == 0)
{
for(new i=0;i<MAX_REPORTS;i++)
{
printf("i: %d | ticketCreated: %d", i, gSupport[i][ticketCreated]);
if(gSupport[i][ticketCreated])
{
printf("%d == %d", gSupport[i][ticketSender], playerid);
if(gSupport[i][ticketSender] == playerid)
{
printf("%d == %d", gSupport[i][ticketAdmin], INVALID_PLAYER_ID);
if(gSupport[i][ticketAdmin] == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, Rot, "* Du hast das Report Ticket zurückgezogen.");
gSupport[i][ticketCreated] = false;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
switch(gSupport[i][ticketType])
{
case 1: gAllgFragen--;
case 2: gBugmeldung--;
case 3: gRegelverstoss--;
case 4: gEinweisung --;
}
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
SpielerInfo[playerid][pReportAktiv] = 0;
UpdateReports();
return 1;
}
else
{
SendClientMessage(playerid, Rot, "** Dein Ticket wurde bereits geöffnet und kann nur von einem Admin geschlossen werden!");
return 1;
}
}
}
}
}
else
{
for(new i=0;i<MAX_REPORTS;i++)
{
printf("i: %d | ticketCreated: %d", i, gSupport[i][ticketCreated]);
if(gSupport[i][ticketCreated])
{
printf("%d == %d", gSupport[i][ticketAdmin], playerid);
if(gSupport[i][ticketAdmin] == playerid)
{
format(string, sizeof(string), "* Du hast das Report Ticket von %s gelöscht.", GetName(gSupport[i][ticketSender]));
SendClientMessage(playerid, Rot, string);
if(IsPlayerConnected(gSupport[i][ticketSender]) && SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] == 1)
{
format(string, sizeof(string), "* %s hat das Ticket gelöscht.", GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
}
gSupport[i][ticketCreated] = false;
SpielerInfo[playerid][pReportAktiv] = 0;
SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] = 0;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
switch(gSupport[i][ticketType])
{
case 1: gAllgFragen--;
case 2: gBugmeldung--;
case 3: gRegelverstoss--;
case 4: gEinweisung --;
}
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
UpdateReports();
return 1;
}
}
}
}
return SendClientMessage(playerid, Rot, "** Irgendwas ging schief.");
}Was steht im Log, wenn du den Befehl eingibst, nachdem du ein Ticket erstellt hast?
-
Das steht dann im Server_Log:
[23:20:29] playerid: 0 pReportAktiv: -1
[23:20:31] Level: 6
[23:20:31] i: 0 | ticketCreated: 1
[23:20:31] 65535 == 0
[23:20:31] i: 1 | ticketCreated: 0
[23:20:31] i: 2 | ticketCreated: 0
[23:20:31] i: 3 | ticketCreated: 0
[23:20:31] i: 4 | ticketCreated: 0
[23:20:31] i: 5 | ticketCreated: 0
[23:20:31] i: 6 | ticketCreated: 0
[23:20:31] i: 7 | ticketCreated: 0
[23:20:31] i: 8 | ticketCreated: 0
[23:20:31] i: 9 | ticketCreated: 0
[23:20:31] i: 10 | ticketCreated: 0
[23:20:31] i: 11 | ticketCreated: 0
[23:20:31] i: 12 | ticketCreated: 0
[23:20:31] i: 13 | ticketCreated: 0
[23:20:31] i: 14 | ticketCreated: 0
[23:20:31] i: 15 | ticketCreated: 0
[23:20:31] i: 16 | ticketCreated: 0
[23:20:31] i: 17 | ticketCreated: 0
[23:20:31] i: 18 | ticketCreated: 0
[23:20:31] i: 19 | ticketCreated: 0 -
gSupport[i][ticketAdmin]
ist 65535, sprich dem Ticket wurde noch kein Admin zugewiesen, da du es als Admin erstellt hast klappt es nicht.Wenn du als Admin auch Tickets aufmachen können sollst, dann schreibe es so:
Spoiler anzeigen ocmd:creport(playerid,params[])
{
if(!IsPlayerConnected(playerid))return 1;
new string[128];
if(SpielerInfo[playerid][pReportAktiv] == 0)return SendClientMessage(playerid, Rot, "** Kein aktiver Report!");
printf("Level: %d", SpielerInfo[playerid][pAdminlevel])
for(new i=0;i<MAX_REPORTS;i++)
{
printf("i: %d | ticketCreated: %d", i, gSupport[i][ticketCreated]);
if(gSupport[i][ticketCreated])
{
printf("%d == %d", gSupport[i][ticketSender], playerid);
if(gSupport[i][ticketSender] == playerid)
{
printf("%d == %d", gSupport[i][ticketAdmin], INVALID_PLAYER_ID);
if(gSupport[i][ticketAdmin] == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, Rot, "* Du hast das Report Ticket zurückgezogen.");
gSupport[i][ticketCreated] = false;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
switch(gSupport[i][ticketType])
{
case 1: gAllgFragen--;
case 2: gBugmeldung--;
case 3: gRegelverstoss--;
case 4: gEinweisung --;
}
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
SpielerInfo[playerid][pReportAktiv] = 0;
UpdateReports();
return 1;
}
else
{
SendClientMessage(playerid, Rot, "** Dein Ticket wurde bereits geöffnet und kann nur von einem Admin geschlossen werden!");
return 1;
}
}
}
}
for(new i=0;i<MAX_REPORTS;i++)
{
printf("i: %d | ticketCreated: %d", i, gSupport[i][ticketCreated]);
if(gSupport[i][ticketCreated])
{
printf("%d == %d", gSupport[i][ticketAdmin], playerid);
if(gSupport[i][ticketAdmin] == playerid)
{
format(string, sizeof(string), "* Du hast das Report Ticket von %s gelöscht.", GetName(gSupport[i][ticketSender]));
SendClientMessage(playerid, Rot, string);
if(IsPlayerConnected(gSupport[i][ticketSender]) && SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] == 1)
{
format(string, sizeof(string), "* %s hat das Ticket gelöscht.", GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
}
gSupport[i][ticketCreated] = false;
SpielerInfo[playerid][pReportAktiv] = 0;
SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] = 0;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
switch(gSupport[i][ticketType])
{
case 1: gAllgFragen--;
case 2: gBugmeldung--;
case 3: gRegelverstoss--;
case 4: gEinweisung --;
}
gSupport[i][ticketType] = 0;
strdel(gSupport[i][ticketMessage], 0, 90);
UpdateReports();
return 1;
}
}
}
return SendClientMessage(playerid, Rot, "** Irgendwas ging schief.");
} -
Jetzt kann ich Tickets schreiben und löschen,allerdings kann ich das Ticket nicht annehmen:
ocmd:areport(playerid,params[])
{
if(!IsPlayerConnected(playerid))return 1;
//if(SpielerInfo[playerid][pAdminlevel] == 0)return SendClientMessage(playerid, Rot, ERROR_ADMIN);
strdel(DialogString, 0, sizeof(DialogString));
for(new i=0;i<MAX_REPORTS;i++)
{
if(gSupport[i][ticketCreated])
{
format(DialogString, sizeof(DialogString), "%sSpieler: %s (ID: %d) - Thema: %s\n", DialogString, GetName(gSupport[i][ticketSender]), gSupport[i][ticketSender], GetTicketName(gSupport[i][ticketType]));
}
else
{
strcat(DialogString, " - - - - - - - - - -\n");
}
}
ShowPlayerDialog(playerid, DIALOG_AREPORT, DIALOG_STYLE_LIST, "Report System - Liste", DialogString, "Annehmen", "Abbrechen");
return 1;
}
if(dialogid==DIALOG_AREPORT)
{
if(response)
{
printf("playerid: %d pReportAktiv: %d", playerid, SpielerInfo[playerid][pReportAktiv]);
new i = listitem, string[128];
if(!gSupport[i][ticketCreated])return SendClientMessage(playerid, Rot, "** Das Ticket ist leer, wähle ein anderes aus!");
if(gSupport[i][ticketAdmin] != INVALID_PLAYER_ID)return SendClientMessage(playerid, Rot, "** Das Ticket wird bereits bearbeitet.");
if(SpielerInfo[playerid][pReportAktiv] == 1)return SendClientMessage(playerid, Rot, "** Du hast bereits einen aktiven Support!");
if(gSupport[i][ticketType] == 4)
{
format(string, sizeof(string), "* Deine Anfrage zur Einweisung wurde von %s angenommen.", GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
SendClientMessage(gSupport[i][ticketSender], Rot, "* Er wird sich schnellstmöglich um dich kümmern.");
format(string, sizeof(string), "* Du hast die Einweisungsanfrage von %s (ID: %d) angenommen. Teleportiere dich zu ihm und helfe ihm!", GetName(gSupport[i][ticketSender]), gSupport[i][ticketSender]);
SendClientMessage(playerid, Rot, string);
SpielerInfo[playerid][pReportAktiv] = 0;
SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] = 0;
gSupport[i][ticketSender] = INVALID_PLAYER_ID;
gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
strdel(gSupport[i][ticketMessage], 0, 90);
gSupport[i][ticketType] = 0;
gSupport[i][ticketCreated] = false;
gEinweisung--;
UpdateReports();
return 1;
}
else if(gSupport[i][ticketType] == 1)
{
format(string, sizeof(string), "* Dein Ticket (%s) wurde von %s angenommen.", GetTicketName(gSupport[i][ticketType]), GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
format(string, sizeof(string), "* Wenn du ein "COLW"!"COLG" vor deinen Text schreibst, kannst du mit %s schreiben.", GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
SpielerInfo[playerid][pReportAktiv] = 1;
gSupport[i][ticketAdmin] = playerid;
format(string, sizeof(string), "* Ticket von %s (ID: %d): %s", GetName(gSupport[i][ticketSender]), gSupport[i][ticketSender], gSupport[i][ticketMessage]);
SendClientMessage(playerid, Rot, string);
SendClientMessage(playerid, Rot, "* Schreibe nun mit ihm, indem du ein "COLW"!"COLG" vor den Text setzt.");
return 1;
}
else if(gSupport[i][ticketType] == 3)
{
format(string, sizeof(string), "* Dein Ticket (%s) wurde von %s angenommen.", GetTicketName(gSupport[i][ticketType]), GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
format(string, sizeof(string), "* Wenn du ein "COLW"!"COLG" vor deinen Text schreibst, kannst du mit %s schreiben.", GetName(playerid));
SendClientMessage(gSupport[i][ticketSender], Rot, string);
SpielerInfo[playerid][pReportAktiv] = 1;
gSupport[i][ticketAdmin] = playerid;
format(string, sizeof(string), "* Ticket von %s (ID: %d): %s", GetName(gSupport[i][ticketSender]), gSupport[i][ticketSender], gSupport[i][ticketMessage]);
SendClientMessage(playerid, Rot, string);
SendClientMessage(playerid, Rot, "* Schreibe nun mit ihm, indem du ein "COLW"!"COLG" vor den Text setzt.");
return 1;
}
}
} -
Welche der drei Meldungen kommt?
Was steht im Log, wenn du ein Ticket auswählst? -
Log:
[00:55:22] playerid: 0 pReportAktiv: -1
[00:55:26] playerid: 0 pReportAktiv: 1
Die Nachricht kommt:
if(SpielerInfo[playerid][pReportAktiv] == 1)return SendClientMessage(playerid, Rot, "** Du hast bereits einen aktiven Support!"); -
Ist dann doch auch alles richtig. Du kannst ja nicht deinen eigenen Report annehmen.
Beim Melden setzt du pReportAktiv auf 1, und beim Annehmen fragst du ab ob es bereits 1 ist. Wenn du deine eigene Meldung annehmen willst geht das logischerweise nicht, da du ja die Meldung erstellt hast, sprich pReportAktiv (wie der Log auch sagt) ist 1.
EDIT:
[PeL]Smiley: Kein Problem, kommt bei jedem vor. -
Fail,danke schön
Liegt wahrscheinlich daran das ich müde bin haha -
breadfish.de
Hat das Thema geschlossen.