01.05.2011, 12:40
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
Secound
I have a support-writing system, but that only works for id 0
Delete and Create work but
the commands /giveticket /taketicket /deleteticket
doesn'T work for ID > 0
bb
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; }
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; }
the commands /giveticket /taketicket /deleteticket
doesn'T work for ID > 0
bb