Two Problems
#1

Hi,
I wrote a command, but this does not work.
I have written this with dcmd. The fault lies at the crimeid variable because it sent me a wrong value

Код:
dcmd_su(playerid,params[])
{
	new pID, crimeid;
 	new string[128];
	if(sscanf(params,"ui",pID,crimeid))
	{
		SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /su id Code");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 1. Diebstahl	2. Anschlag auf Staatsorgane	3. Beihilfe zum Mord	4. Beihilfe zur Flucht");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 5. Beleidigung	6. Betreten eines Sperrgebietes	7. Verweigerung	8. Drohung	9. Drogen/Mats");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 10. Einbruch PD    11. Einbrauch Army/Prдsi    12. Erpressung	13. Flucht   14. Geisenahme");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 15. Kцrperverletzung	16.Mord 17.Platzieren einer Bombe   18. Selbstmordattentat  19. Raubьberfall");
		SendClientMessage(playerid, COLOR_GREY,"Codex: 20. Serienmord  21. Ticketersatz 22. Ьberfahren 3 roter Ampeln   23. Versuchter Mord");
		return 1;
	}
	if(crimeid > 23 || crimeid< 1)return SendClientMessage(playerid,COLOR_GRAD2,"Unbekannter Code");
	if (IsACop(playerid)|| PlayerInfo[playerid][pLeader] == 23 || PlayerInfo[playerid][pMember] == 23||PlayerInfo[playerid][pAdmin] == 1338)
	{
		if(IsPlayerConnected(pID))
		{
		    if(pID != INVALID_PLAYER_ID)
			{
				if (!IsACop(pID))
				{
				    if(crimeid==1)
					{
						SetPlayerCriminal(pID,playerid,"Diebstahl",10);
					}
				    if(crimeid==2)
				    {
						SetPlayerCriminal(pID,playerid,"Anschlag auf Staatsorgane",60);
					}
				    if(crimeid==3)
				    {
						SetPlayerCriminal(pID,playerid,"Beheilfe zum Mord",30);
					}
				    if(crimeid==4)
				    {
						SetPlayerCriminal(pID,playerid,"Beihilfe zur Flucht",10);
					}
				    if(crimeid==5)
				    {
						SetPlayerCriminal(pID,playerid,"Beleidigung",15);
					}
				    if(crimeid==6)
				    {
						SetPlayerCriminal(pID,playerid,"Betreten eines Sperrgebietes",20);
					}
				    if(crimeid==7)
				    {
						SetPlayerCriminal(pID,playerid,"Verweigerung",5);
					}
				    if(crimeid==8)
				    {
						SetPlayerCriminal(pID,playerid,"Drohung",5);
					}
				    if(crimeid==9)
				    {
						SetPlayerCriminal(pID,playerid,"Drogen/Mats",10);
					}
				    if(crimeid==10)
				    {
						SetPlayerCriminal(pID,playerid,"Eibrauch PD",30);
					}
				    if(crimeid==11)
				    {
						SetPlayerCriminal(pID,playerid,"Einbrauch Army/Prдsidentenbereich",50);
					}
				    if(crimeid==12)
				    {
						SetPlayerCriminal(pID,playerid,"Erpressung",15);
					}
				    if(crimeid==13)
				    {
						SetPlayerCriminal(pID,playerid,"Flucht",15);
					}
				    if(crimeid==14)
				    {
						SetPlayerCriminal(pID,playerid,"Geiselnahme",25);
					}
				    if(crimeid==15)
				    {
						SetPlayerCriminal(pID,playerid,"Kцrperverletzung",20);
					}
				    if(crimeid==16)
				    {
						SetPlayerCriminal(pID,playerid,"Mord",40);
					}
				    if(crimeid==17)
				    {
						SetPlayerCriminal(pID,playerid,"Platzieren einer Bombe",40);
					}
				    if(crimeid==18)
				    {
						SetPlayerCriminal(pID,playerid,"Selbstmordattentat",60);
					}
				    if(crimeid==19)
				    {
						SetPlayerCriminal(pID,playerid,"Raubьberfall",15);
					}
				    if(crimeid==20)
				    {
						SetPlayerCriminal(pID,playerid,"Serienmord",69);
					}
				    if(crimeid==21)
				    {
						SetPlayerCriminal(pID,playerid,"Ticketersatz",9);
					}
				    if(crimeid==22)
				    {
						SetPlayerCriminal(pID,playerid,"Ьberfahren 3 roter Ampeln",3);
					}
				    if(crimeid==23)
				    {
						SetPlayerCriminal(pID,playerid,"Versuchter Mord",35);
					}
					return 1;
				}
				else
				{
					SendClientMessage(playerid, COLOR_GRAD2, "   Du kannst keinen Cop anzeigen !");
				}
			}
		}
		else
		{
			format(string, sizeof(string), "   %d ist nicht Aktiv.", pID);
			SendClientMessage(playerid, COLOR_GRAD1, string);
			return 1;
		}
	}
	else
	{
		SendClientMessage(playerid, COLOR_GRAD2, "   Du bist kein Cop/SEK/Army !");
	}
	return 1;
}
Secound
I have a support-writing system, but that only works for id 0

Код:
stock DeleteTicket(playerid)
{
	new query[256];
	new pname[MAX_PLAYERS];
	GetPlayerName(playerid,pname,sizeof pname);
	if(mysql_CheckTicket(playerid))
	{
    	format(query,sizeof(query),"DELETE FROM `tickets` WHERE `Name`='%s'",pname);
		mysql_query(query);
	}
	return true;
}
stock mysql_CheckTicket(playerid)
{
    new Query[128],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name, Name);
    format(Query, sizeof(Query), "SELECT * FROM tickets WHERE Name = '%s'", Name);
    mysql_query(Query);
    mysql_store_result();
    return mysql_num_rows();
}
stock ticket(nickname[MAX_PLAYER_NAME],Text[256])
{
	new query[256];
    format(query,sizeof(query),"INSERT INTO tickets (Name,Text) VALUES ('%s','%s')",
    nickname,
    Text);
    mysql_query(query);
    mysql_free_result();
}
dcmd_sup(playerid,params[])
{
	new text[256];
	if(sscanf(params,"s",text))
	{
		SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /sup [text]");
	}
	else
	{
		if(TicketAngenommen[playerid] == 0)
		{
			new pname[MAX_PLAYER_NAME],string[128];
			GetPlayerName(playerid,pname,sizeof pname);
			if(!mysql_CheckTicket(playerid) && TicketZeile[playerid] == 0) // Wenn noch kein Ticket existiert und auch die TicketZeile auf 0 ist.
			{
				new adminmeldung[128];
				format(adminmeldung, sizeof(adminmeldung), "%s hat ein Support-Ticket geschrieben", pname);
				SendAdminMessage(COLOR_YELLOW, adminmeldung);
				SupportTicket[playerid] = 1;
				TicketZeile[playerid] = 1;
				ticket(pname,text);
				TicketZeile[playerid] = 1;
				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!");
				return 1;
			}
			else if(TicketZeile[playerid] == 1) // Wenn das Ticket bereits 3 Zeilen hat
			{
				SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Dein Ticket ist bereits randgefьllt!");
				return 1;
			}
		}
		if(TicketAngenommen[playerid] == 1) // Zum direkten Antworten per /sup , wenn das Ticket angenommen wurde.
		{
		    if(PlayerInfo[playerid][pAdmin] >= 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), "Supporter/Admin %s schrieb: %s", DerFragende, text);
				SendClientMessage(pID, COLOR_YELLOW, antwort2);
			}
			else
			{
				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;
}
dcmd_taketicket(playerid,params[])
{
	new pID;
	new string[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];
	GetPlayerName(pID,pname,sizeof pname);
	if(mysql_CheckTicket(pID)) // Ob ein Ticket existiert! bzw. Datei-Abfrage
	{
		if(PlayerInfo[playerid][pAdmin] >= 1) // Ob der Spieler ein Supporter ist!
		{
			if(TicketAngenommen[pID] == 0)
			{
			    string = mysql_GetString("tickets", "Text", "Name", pname);
				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, "Du kannst per /sup sofort mit ihm schreiben!");
				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; // Der persцnliche Supporter wird gesetzt , um die Antworten an ihn weiterzuleiten
				TicketAngenommen[pID] = 1;
				TicketAngenommen[playerid] = 1;
				DeinSupport[playerid] = pID;
			}
		}
	}
	return 1;
}
dcmd_deleteticket(playerid, params[])
{
	new pID;
	if(sscanf(params,"u",pID)){
		return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /deleteticket [id]");
	}
	new pname[MAX_PLAYERS];
	GetPlayerName(pID,pname,sizeof pname);
	if(mysql_CheckTicket(pID)) // Ob ein Ticket offen ist
	{
		if(PlayerInfo[playerid][pAdmin] >= 1) // Ob der Spieler befugt ist
		{
			new string[128], DerSup[MAX_PLAYER_NAME];
			GetPlayerName(playerid, DerSup, sizeof(DerSup));
			DeleteTicket(pID);
			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;
			TicketAngenommen[playerid] = 0;
			DeinSupport[playerid] = 0;
		}
	}
	return 1;
}
dcmd_giveticket(playerid, params[])
{
	new pID, adminid;
	if(sscanf(params,"uu",pID,adminid))
	{
		return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /giveticket [ticketid] [adminid]");
	}
	if(!IsPlayerConnected(adminid)) // Ob die angegebene ID online ist.
	{
		return SendClientMessage(playerid, COLOR_GREY,"Admin nicht online");
	}
	if(PlayerInfo[adminid][pAdmin] == 0) // Ob die angegebene ID Admin ist
	{
		return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist kein Admin");
	}
	if(TicketAngenommen[adminid] == 1) // Ob die angegebene ID Admin ist
	{
		return SendClientMessage(playerid, COLOR_GREY, "Der Admin bearbeitet bereits ein Ticket!");
	}
	new pname[MAX_PLAYERS];
	GetPlayerName(pID,pname,sizeof pname);
	if(!mysql_CheckTicket(pID)) // Ob ein Ticket besteht
	{
		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));
	TicketAngenommen[adminid] = 1;
	DeinSupport[adminid] = DeinSupport[playerid];
	TicketAngenommen[playerid] = 0;
	DeinSupport[playerid] = 0;
	DeinSupport[pID] = adminid;
	new string2[128], string3[128], string4[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 =  mysql_GetString("tickets", "Text", "Name", pname);
	SendClientMessage(adminid, COLOR_YELLOW, string3);
	SendClientMessage(adminid, COLOR_YELLOW, string4);
	return 1;
}
dcmd_tickets(playerid, params[])
{
	#pragma unused params
	if(PlayerInfo[playerid][pAdmin] >= 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;
}
Delete and Create work but
the commands /giveticket /taketicket /deleteticket
doesn'T work for ID > 0

bb
Reply
#2

I haven't an error.
But it doesn't work.
Reply
#3

I have change the command, but it doesn't work
The SendClientMessage will be send with this string: Unbekannter code
Код:
dcmd_su(playerid,params[])
{
	new pID, crimeid;
 	new string[128];
	if(sscanf(params,"ui",pID,crimeid))
	{
		SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /su id Code");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 1. Diebstahl	2. Anschlag auf Staatsorgane	3. Beihilfe zum Mord	4. Beihilfe zur Flucht");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 5. Beleidigung	6. Betreten eines Sperrgebietes	7. Verweigerung	8. Drohung	9. Drogen/Mats");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 10. Einbruch PD    11. Einbrauch Army/Prдsi    12. Erpressung	13. Flucht   14. Geisenahme");
		SendClientMessage(playerid, COLOR_GREY,"Codes: 15. Kцrperverletzung	16.Mord 17.Platzieren einer Bombe   18. Selbstmordattentat  19. Raubьberfall");
		SendClientMessage(playerid, COLOR_GREY,"Codex: 20. Serienmord  21. Ticketersatz 22. Ьberfahren 3 roter Ampeln   23. Versuchter Mord");
		return 1;
	}
	if(crimeid > 23 || crimeid< 1)return SendClientMessage(playerid,COLOR_GRAD2,"Unbekannter Code");
	if (IsACop(playerid)|| PlayerInfo[playerid][pLeader] == 23 || PlayerInfo[playerid][pMember] == 23||PlayerInfo[playerid][pAdmin] == 1338)
	{
		if(IsPlayerConnected(pID))
		{
		    if(pID != INVALID_PLAYER_ID)
			{
				if (!IsACop(pID))
				{
				    switch (crimeid)
				    {
						case 1:{SetPlayerCriminal(pID,playerid,"Diebstahl",10);}
					    case 2:{SetPlayerCriminal(pID,playerid,"Anschlag auf Staatsorgane",60);}
					    case 3:{SetPlayerCriminal(pID,playerid,"Beheilfe zum Mord",30);}
					    case 4:{SetPlayerCriminal(pID,playerid,"Beihilfe zur Flucht",10);}
					    case 5:{SetPlayerCriminal(pID,playerid,"Beleidigung",15);}
					    case 6:{SetPlayerCriminal(pID,playerid,"Betreten eines Sperrgebietes",20);}
					    case 7:{SetPlayerCriminal(pID,playerid,"Verweigerung",5);}
					    case 8:{SetPlayerCriminal(pID,playerid,"Drohung",5);}
					    case 9:{SetPlayerCriminal(pID,playerid,"Drogen/Mats",10);}
					    case 10:{SetPlayerCriminal(pID,playerid,"Eibrauch PD",30);}
		  	 			case 11:{SetPlayerCriminal(pID,playerid,"Einbrauch Army/Prдsidentenbereich",50);}
					    case 12:{SetPlayerCriminal(pID,playerid,"Erpressung",15);}
					    case 13:{SetPlayerCriminal(pID,playerid,"Flucht",15);}
					    case 14:{SetPlayerCriminal(pID,playerid,"Geiselnahme",25);}
					    case 15:{SetPlayerCriminal(pID,playerid,"Kцrperverletzung",20);}
					    case 16:{SetPlayerCriminal(pID,playerid,"Mord",40);}
					    case 17:{SetPlayerCriminal(pID,playerid,"Platzieren einer Bombe",40);}
					    case 18:{SetPlayerCriminal(pID,playerid,"Selbstmordattentat",60);}
					    case 19:{SetPlayerCriminal(pID,playerid,"Raubьberfall",15);}
					    case 20:{SetPlayerCriminal(pID,playerid,"Serienmord",69);}
					    case 21:{SetPlayerCriminal(pID,playerid,"Ticketersatz",9);}
					    case 22:{SetPlayerCriminal(pID,playerid,"Ьberfahren 3 roter Ampeln",3);}
					    case 23:{SetPlayerCriminal(pID,playerid,"Versuchter Mord",35);}
					}
					return 1;
				}
				else
				{
					SendClientMessage(playerid, COLOR_GRAD2, "   Du kannst keinen Cop anzeigen !");
				}
			}
		}
		else
		{
			format(string, sizeof(string), "   %d ist nicht Aktiv.", pID);
			SendClientMessage(playerid, COLOR_GRAD1, string);
			return 1;
		}
	}
	else
	{
		SendClientMessage(playerid, COLOR_GRAD2, "   Du bist kein Cop/SEK/Army !");
	}
	return 1;
}

//edit it should be send 1 2 3 ... and it send nothing or not an integer
Reply
#4

//push
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)