Guten Tag,
es gibt derzeit einige Probleme mit einer Script Funktion.
Ich habe ein Supportticketsystem mir heruntergeladen, und dies eingebaut.
Sobald man /tlogin macht, zeigt er alles perfekt, das Textdraw "Ticket(s)" wird alles angezeigt.
Sobald ein Ticket ein kommt, und man /topen und die Ticket ID macht, öffnet er das Ticket, der Admin kann auch lesen was der Jenige geschrieben hat.
Sobald ein Ticket geöffnet wurde von einem Admin, kann der Ticketsteller und der Admin mit einander reden mit /tchat.
Der Admin kann lesen was der User per /tchat schreibt, nur was der Admin schreibt sieht der User nicht..
Wenn der Admin /tclose macht, steht da auf einem "Du bearbeitest gerade kein Ticket" und sonstiges..
Dann kann man auch kein anderes Ticket annehmen oder sonstiges..
Dann gibt es noch /tmsg, was das bewirkt weiß ich nicht, nur wenn es der Admin ausführt, kommt jedesmal die SendClientMessange wieder.
Könnte sich jemand diese Funktion mal komplett einmal anschauen, und Fehler verbessern und es hier reinposten?
Das wäre echt super!
stock UpdateSupportTextdraws()
{
new Ticketzahl,
str1[100],
str2[1000];
for(new playerid; playerid < GetMaxPlayers(); playerid++) {
if(GetPVarInt(playerid, "ticket_opened")) {
if(!Ticketzahl)
format(str2, sizeof(str2), "%d - %s", playerid, GetName(playerid));
else
format(str2, sizeof(str2), "%s~n~%d - %s", str2, playerid, GetName(playerid));
Ticketzahl++;
}
}
format(str1, sizeof(str1), "%d Ticket(s)", Ticketzahl);
TextDrawSetString(SupportDraws[1], str2);
TextDrawSetString(SupportDraws[0], str1);
}
ocmd:tlogin(playerid, params[])
{
#pragma unused params
new str1[128];
if(GetPVarInt(playerid, "ticket_admin") != 0)
return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Du bist bereits eingeloggt!");
if(GetPVarInt(playerid, PVAR_NAME) > 0 || PlayerInfo[playerid][pAdmin] >= 1) {
TextDrawShowForPlayer(playerid, SupportDraws[0]);
TextDrawShowForPlayer(playerid, SupportDraws[1]);
SetPVarInt(playerid, "ticket_admin", 1);
format(str1, sizeof(str1), "[SUPPORT-TICKET] %s hat sich in das Ticketsystem eingeloggt!", GetName(playerid));
}
else {
TextDrawHideForPlayer(playerid, SupportDraws[0]);
TextDrawHideForPlayer(playerid, SupportDraws[1]);
format(str1, sizeof(str1), "[SUPPORT-TICKET] %s hat sich versucht in das Ticketsystem einzuloggen!", GetName(playerid));
}
return SendAdminMessage(COLOR_YELLOW, str1);
}
ocmd:report(playerid, params[])
{
if(GetPVarInt(playerid, "ticket_opened") < 1)
{
new Text[100],str[128];
if(sscanf(params, "s", Text)) return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Benutzung: /report [Text]");//ok
if(strlen(Text) > 5)
{
SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT-TICKET] Ihr Support-Ticket wurde erfolgreich erstellt! Warten Sie auf eine Antwort.");
format(str, sizeof(str), "[SUPPORT-TICKET] ein Support Ticket ist von %s eingegangen!", GetName(playerid));
SendAdminMessage(COLOR_YELLOW, str);
SetPVarInt(playerid, "ticket_opened", 1);
SetPVarString(playerid, "ticket_text", Text);
UpdateSupportTextdraws();
}
else
{
SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Der Text sollte mehr als 5 Zeichen enthalten!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Du hast bereits ein Ticket erstellt!");
}
return 1;
}
ocmd:topen(playerid, params[])
{
new tID;
if(sscanf(params, "d", tID))
return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Benutzung: /topen [Ticket-ID]");
if(GetPVarInt(playerid, "ticket_admin") < 1)
if (PlayerInfo[playerid][pAdmin] >= 1)
return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hast nicht genug Rechte!");
if(GetPVarInt(tID, "ticket_opened") != 0 && !GetPVarInt(playerid, "ticket_player")) {
new str1[128],
str2[128],
str3[128],
str4[100];
format(str4, sizeof(str4), "%s", GetPVarString(tID, "ticket_text", str4, 100));
DeletePVar(tID, "ticket_opened");
SetPVarInt(tID, "ticket_sup", playerid);
SetPVarInt(playerid, "ticket_player", tID);
format(str1, sizeof(str1), "[SUPPORT-TICKET] Supporter %s hat dein Ticket geöffnet; nutze /tchat [Text]!", GetName(playerid));
format(str2, sizeof(str2), "[SUPPORT-TICKET] Supporter %s hat das Ticket von User %s geöffnet!", GetName(playerid), GetName(tID));
format(str3, sizeof(str3), "[SUPPORT-TICKET] %s schrieb: %s", GetName(playerid), str4);
SendClientMessage(tID, COLOR_YELLOW, str1);
SendAdminMessage(ROT, str2);
SendClientMessage(playerid, COLOR_YELLOW, str3);
UpdateSupportTextdraws();
}
return 1;
}
ocmd:tclose(playerid, params[])
{
#pragma unused params
if(PlayerInfo[playerid][pAdmin] >= 7 || GetPVarInt(playerid, "ticket_admin") > 0) {
if(!GetPVarInt(playerid, "ticket_player")) {
new PlayerID = GetPVarInt(playerid, "ticket_player"),
str1[128],
str2[128];
format(str1, sizeof(str1), "[SUPPORT-TICKET] Supporter %s hat das Ticket von Spieler %s gelöscht!", GetName(playerid), GetName(PlayerID));
format(str2, sizeof(str2), "[SUPPORT-TICKET] Supporter %s hat dein Ticket welches von ihm bearbeitet wurde, gelöscht!", GetName(playerid));
SendAdminMessage(COLOR_YELLOW, str2);
SendClientMessage(PlayerID, COLOR_YELLOW, str1);
DeletePVar(PlayerID, "ticket_sup");
DeletePVar(playerid, "ticket_player");
DeletePVar(PlayerID, "ticket_opened");
}
else
SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hattest kein Ticket offen!");
}
return 1;
}
ocmd:tchat(playerid, params[])
{
new Text[100];
if(sscanf(params, "s", Text))return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Benutzung: /tchat [Text]");
if(IsPlayerConnected(GetPVarInt(playerid, "ticket_sup")))
{
new str1[128],
str2[128],
varSup = GetPVarInt(playerid, "ticket_sup");
format(str1, sizeof(str1), "[LIVE: SUPPORT-TICKET] %s schreibt: %s", GetName(playerid), Text);
format(str2, sizeof(str2), "[LIVE: SUPPORT-TICKET] Du schriebst: %s", Text);
SendClientMessage(varSup, COLOR_PURPLE, str1);
SendClientMessage(playerid, COLOR_PURPLE, str2);
}
else
{
SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Dein Gegenüber ist weg!");
}
return 1;
}
ocmd:tmsg(playerid, params[])
{
new Text[100];
if(sscanf(params, "s[100]", Text))
return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Falsche Benutzung: /tmsg [Text]");
if(IsPlayerConnected(GetPVarInt(playerid, "ticket_player")) && GetPVarInt(playerid, "ticket_admin") > 0) {
new str1[128],
str2[128],
varPlayer = GetPVarInt(playerid, "ticket_player");
format(str1, sizeof(str1), "[LIVE: SUPPORT-TICKET] %s schreibt: %s", GetName(playerid), Text);
format(str2, sizeof(str2), "[LIVE: SUPPORT-TICKET] Du schriebst: %s", Text);
SendClientMessage(varPlayer, COLOR_PURPLE, str1);
SendClientMessage(playerid, COLOR_PURPLE, str2);
}
else
SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Dein Gegenüber ist weg!");
return 1;
}