Hallo,
ich bins nochmals zum dritten mal
Wenn man sich zu einer ID portet, hat man damit einen Report geöffnet, kann sich dann aber nicht schreiben ;/
Dann muss man erst wieder einen Report annehmen & schließen um normal zu schreiben.
//=========[ REPORT SYS BY RYNN ]=========//
new JustReported[MAX_PLAYERS];
new PlayerNeedsHelp[MAX_PLAYERS];
new ReportCall[MAX_PLAYERS];
Bei OnPlayerConnect
ReportCall[playerid] = 999; JustReported[playerid] = 0;
Bei OnPlayerDisconnect
if(ReportCall[playerid] != 999)
{
if(IsPlayerConnected(ReportCall[playerid]))
{
ReportCall[ReportCall[playerid]] = 999;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "[SUPPORT] %s Hat den Server verlassen! /Support automatisch geschlossen", sendername);
SendClientMessage(ReportCall[playerid], COLOR_LIGHTGREEN,string);
ReportCall[playerid] = 999;
}
if(strcmp(cmd, "/support", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(JustReported[playerid] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Du kannst mindestens jede 10 Minuten eine /support Anfrage schreiben!");
SendClientMessage(playerid, COLOR_RED, "Versuch es in ein paar Minuten nochmal !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /support [Text]");
return 1;
}
new stringrp[200];
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(stringrp, sizeof(stringrp), "Support von: [ID:%d]%s", playerid, sendername);
ABroadCast(COLOR_RED,stringrp,1);
format(stringrp, sizeof(stringrp), "Meldung: %s", (result));
ABroadCast(0xE19898AA,stringrp,1);
ABroadCast(0xA04C4CAA,"Tippe /aw [SpielerID]",1);
SendClientMessage(playerid, 0x96C184AA, "Deine Support Anfrage wurde an das [LoH] Team gesendet.");
JustReported[playerid] = 1;
PlayerNeedsHelp[playerid] = 1;
SetTimerEx("ReportReset", 600000, false, "i", playerid);
}
return 1;
}
if(strcmp(cmd, "/tickets", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Du musst Eingeloggt sein !");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Benutze: /cr [SpielerID/SpielerName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(ReportCall[playerid] != giveplayerid)
return SendClientMessage(playerid,COLOR_YELLOW,"Du hast den gewählten Support nicht angenommen, erst lesen dann löschen!"); // naja ok und ehm wenn der report noch offen ist und der admin oder spieler einfach off geht soll der report einfach von allein schliessen...
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "** Adminstrator [ID:%d]%s hat den Support Chat geschlossen!", playerid, sendername);
SendClientMessage(giveplayerid, blau, string);
format(string, sizeof(string), "** Du hast den Support geschlossen!", playerid, sendername);
SendClientMessage(playerid, blau, string);
ReportCall[playerid] = 999;
ReportCall[giveplayerid] = 999;
}
}
}
}
}
if(strcmp(cmd, "/ticketa", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Du musst Eingeloggt sein !");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Benutze: /aw [SpielerID/SpielerName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerNeedsHelp[giveplayerid] == 1)
{
PlayerNeedsHelp[giveplayerid] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "SYSTEM: %s hat den Support von: [ID:%d] %s Angenommen, der Report ist nun nicht mehr verfügbar!", sendername, giveplayerid, giveplayer);
ABroadCast(COLOR_RED, string, 1);
//SendClientMessage(playerid, COLOR_RED,"Schreib nun mit dem Spieler per Chat du bist Automatisch Verbunden.");
SendClientMessage(playerid, COLOR_RED,"Du kannst nun mit dem Spieler schreiben, mit /cr schließt du das Ticket!");
format(string, sizeof(string), "** Adminstrator [ID:%d] %s hat deine Support Anfrage Angenommen! Du kannst nun mit ihm schreiben.", playerid, sendername);
SendClientMessage(giveplayerid, weiss, string);
//SendClientMessage(giveplayerid, COLOR_LIGHTGREEN,"Du kannst nun per Chat mit dem Admin Schreiben.");
//SendClientMessage(playerid, COLOR_LIGHTGREEN,"Du kannst nun per Chat mit dem Spieler Schreiben.");
ReportCall[giveplayerid] = playerid;
ReportCall[playerid] = giveplayerid; //Verbinde zum Reporter
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Support anfrage !");
return 1;
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du bist kein Administrator ! ");
return 1;
}
}
return 1;
}