Two Problems -
Komet - 01.05.2011
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
AW: Two Problems -
Komet - 01.05.2011
I haven't an error.
But it doesn't work.
AW: Two Problems -
Komet - 01.05.2011
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
AW: Two Problems -
Komet - 01.05.2011
//push