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;
	}