Moin Leute,
ich ahbe da ein ticketsystem.
/sup um das Ticket zu schreiebn geht super. /Tickets um die Ticket ID's zu sehen geht auch.
Jedeglich /giveticket /taketicket und /delteticket geht nciht, keine Reaktion kein Error ncihts.
Hier der Quelltext
ocmd:sup(playerid,params[])
{
new text[256];
if(sscanf(params,"s",text))
{
SendClientMessage(playerid, COLOR_RED, "USAGE:/sup [Dein Text]");
}
else
{
if(TicketAngenommen[playerid] == 0)
{
new pname[MAX_PLAYERS], save[512], string[128];
GetPlayerName(playerid,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(!dini_Exists(save) && TicketZeile[playerid] == 0)
{
new adminmeldung[128];
format(adminmeldung, sizeof(adminmeldung), "%s hat ein Support-Ticket geschrieben", pname);
SendAdminMessage(COLOR_YELLOW, adminmeldung);
SupportTicket[playerid] = 1;
TicketZeile[playerid] = 1;
dini_Create(save);
dini_Set(save,"Suptext",text);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast ein Ticket mit folgendem Text geöffnet:");
format(string, sizeof(string), "%s", text);
SendClientMessage(playerid, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Warte bis es ein Supporter annimmt!");
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Du kannst noch mit /sup 2 weitere Zeilen anhängen");
return 1;
}
else if(TicketZeile[playerid] == 1)
{
new string2[128];
dini_Set(save, "Suptext2",text);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
format(string2, sizeof(string2), "%s", text);
SendClientMessage(playerid, COLOR_YELLOW, string2);
TicketZeile[playerid] = 2;
return 1;
}
else if(TicketZeile[playerid] == 2)
{
new string3[128];
dini_Set(save, "Suptext3",text);
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
format(string3, sizeof(string3), "%s", text);
SendClientMessage(playerid, COLOR_YELLOW, string3);
TicketZeile[playerid] = 3;
return 1;
}
else if(TicketZeile[playerid] == 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Dein Ticket ist bereits randgefüllt!");
return 1;
}
}
if(TicketAngenommen[playerid] == 1)
{
new pID = DeinSupport[playerid];
new antwort[128], antwort2[128], DerFragende[MAX_PLAYER_NAME], DerSup[MAX_PLAYER_NAME];
GetPlayerName(playerid, DerFragende, sizeof (DerFragende));
GetPlayerName(pID, DerSup, sizeof (DerSup));
format(antwort, sizeof (antwort),"--> %s", text);
SendClientMessage(playerid, COLOR_YELLOW, antwort);
format(antwort2, sizeof (antwort2), "%s schrieb: %s", DerFragende, text);
SendClientMessage(pID, COLOR_YELLOW, antwort2);
}
}
return 1;
}
ocmd:taketicket(playerid,params[])
{
new pID;
new string2[256], string[256], string3[256], string4[256],mitteilung[128] , DerPlayer[MAX_PLAYER_NAME], DerAdmin[MAX_PLAYER_NAME];
if(sscanf(params,"u",pID)){
return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /taketicket [id]");
}
new pname[MAX_PLAYERS],save[512];
GetPlayerName(pID,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(dini_Exists(save))
{
if(Spieler[playerid][admin] >= 1)
{
if(TicketAngenommen[pID] == 0)
{
string2 = dini_Get(save,"Suptext");
string3 = dini_Get(save,"Suptext2");
string4 = dini_Get(save,"Suptext3");
GetPlayerName(pID, DerPlayer, sizeof(DerPlayer));
GetPlayerName(playerid, DerAdmin, sizeof(DerAdmin));
format(string, sizeof(string), "%s schrieb folgende Supportnachricht:", DerPlayer);
SendClientMessage(playerid, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, string2);
SendClientMessage(playerid, COLOR_YELLOW, string3);
SendClientMessage(playerid, COLOR_YELLOW, string4);
SendClientMessage(playerid, COLOR_YELLOW, "Du kannst per /aw [ID] antworten");
format(mitteilung, sizeof(mitteilung), "[SUPPORT] %s hat dein Support Ticket geöffnet. Du kannst nun per /sup direkt mit ihm schreiben!",DerAdmin);
SendClientMessage(pID, COLOR_YELLOW, mitteilung);
DeinSupport[pID] = playerid;
TicketAngenommen[pID] = 1;
}
}
}
return 1;
}
ocmd:deleteticket(playerid, params[])
{
new pID;
if(sscanf(params,"u",pID)){
return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /deleteticket [id]");
}
new pname[MAX_PLAYERS],save[512];
GetPlayerName(pID,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(dini_Exists(save))
{
if(Spieler[playerid][admin] >= 1)
{
new string[128], DerSup[MAX_PLAYER_NAME];
GetPlayerName(playerid, DerSup, sizeof(DerSup));
dini_Remove(save);
format(string, sizeof(string), "%s hat dein Ticket gelöscht", DerSup);
SendClientMessage(pID, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW, "Erfolgreich gelöscht");
TicketZeile[pID] = 0;
TicketAngenommen[pID] = 0;
DeinSupport[pID] = 0;
SupportTicket[pID] = 0;
}
}
return 1;
}
ocmd:giveticket(playerid, params[])
{
new pID, adminid;
if(sscanf(params,"uu",pID,adminid)){
return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /giveticket [ticketid] [adminid]");
}
if(!IsPlayerConnected(adminid))
{
return SendClientMessage(playerid, COLOR_GREY,"Admin nicht online");
}
if(Spieler[adminid][admin] == 0)
{
return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist kein Admin");
}
new pname[MAX_PLAYERS],save[512];
GetPlayerName(pID,pname,sizeof pname);
format(save,sizeof save,"Tickets/%s.ini",pname);
if(!dini_Exists(save))
{
return SendClientMessage(playerid, COLOR_GREY,"Die ID hat kein offenes Ticket");
}
new NeuerAdmin[MAX_PLAYER_NAME], AlterAdmin[MAX_PLAYER_NAME], Fragender[MAX_PLAYER_NAME];
GetPlayerName(playerid, AlterAdmin , sizeof(AlterAdmin));
GetPlayerName(adminid, NeuerAdmin, sizeof(NeuerAdmin));
GetPlayerName(pID, Fragender , sizeof(Fragender));
DeinSupport[pID] = adminid;
new string2[128], string3[128], string4[256], string5[256], string6[256];
format(string2, sizeof(string2), "[SUPPORT] %s hat dein Ticket an %s weitergegeben.", AlterAdmin, NeuerAdmin);
SendClientMessage(pID, COLOR_YELLOW, string2);
SendClientMessage(playerid, COLOR_YELLOW, "Erfolgreich weitergeleitet");
format(string3, sizeof(string3), "[SUPPORT] %s hat dir %s´s Ticket gegeben. Er schrieb folgendes:", AlterAdmin, Fragender);
string4 = dini_Get(save, "Suptext");
string5 = dini_Get(save, "Suptext2");
string6 = dini_Get(save, "Suptext3");
SendClientMessage(adminid, COLOR_YELLOW, string3);
SendClientMessage(adminid, COLOR_YELLOW, string4);
SendClientMessage(adminid, COLOR_YELLOW, string5);
SendClientMessage(adminid, COLOR_YELLOW, string6);
return 1;
}
ocmd:tickets(playerid, params[])
{
#pragma unused params
if(Spieler[playerid][admin] >= 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Die angezeigten Tickets können mit /taketicket angenommen werden");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(SupportTicket[i] == 1)
{
if(TicketAngenommen[i] == 0)
{
new string[128], DerSpieler[MAX_PLAYER_NAME];
GetPlayerName(i, DerSpieler, sizeof(DerSpieler));
format(string, sizeof(string), "ID: %d Name: %s", i, DerSpieler);
SendClientMessage(playerid, COLOR_GREY, string);
}
}
}
}
return 1;
}