Bilo mi je dosadno pa evo: /report koji sprema reporte da ih admini mogu citati lagano i odgovarati na jedan po jedan, igrac vidi kada njegov report bude procitan i vidi koji admin je procitao report, moze biti znacajno i kod uvidjaja koji admini rade a koji ne..
Pre svega za ovo su vam potrebni include zcmd i plugin+include sscanf2
Najpre ovo dodate na vrh moda ispod includova
#define MAX_REPORTS 100
enum reportInfo {
Ime,
Report,
Vreme,
ID
} new Reports;
stock ResetujReport(id) {
format(Reports,MAX_PLAYER_NAME,"%s","Niko");
return 1;
}
Zatim komande
CMD:report(playerid,params[]) {
new text;
if(sscanf(params,"s",text)) return SendClientMessage(playerid,-1," > Koristi: /report ");
for(new i = 0; i < MAX_REPORTS; i++) {
if(Reports == playerid) SendClientMessage(playerid,-1," > Vec si poslao jedan report na koji niko nije odgovorio, sacekaj odgovor!");
return 1;
}
new bool:p; new reportnum;
for(new i = 0; i < MAX_REPORTS; i++) {
if(!p) {
if(strcmp(Reports,"Niko",false) == 0) {
p = true;
reportnum = i;
}
}
}
if(!p) return SendClientMessage(playerid,-1,"Trenutno postoji 100 neprocitanih reporta, sacekajte dok se rascisti!");
new name;
GetPlayerName(playerid,name,sizeof(name));
new timestr; new dan,mesec,god,sat,minut,sek;
getdate(god,mesec,dan); gettime(sat,minut,sek);
format(timestr,sizeof(timestr),"%02d/%02d/%d, %02d:%02d:%02d",dan,mesec,god,sat,minut,sek);
format(Reports,MAX_PLAYER_NAME,"%s",name);
format(Reports,128,"%s",text);
format(Reports,40,"%s",timestr);
Reports = playerid;
SendClientMessage(playerid,-1," > Vas report je poslan, dobicete odgovor u najkracem roku!");
new str;
format(str,150, " > Vas report glasi: %s",text);
SendClientMessage(playerid,-1,str);
return 1;
}
CMD:reports(playerid,params[]) {
if(IsPlayerAdmin(playerid)) {
new str; new c = 0;
for(new i = 0; i < MAX_REPORTS; i++) {
if(strcmp(Reports,"Niko",false) != 0) {
format(str,128," > ID reporta: %d, Igrac %s[%d], Kada je poslao report: %s",i,Reports,Reports,Reports);
SendClientMessage(playerid,-1,str);
c++;
}
}
if(c == 0) return SendClientMessage(playerid,-1, " > Nema neprocitanih reportova!");
}
return 1;
}
CMD:procitajreport(playerid,params[]) {
if(IsPlayerAdmin(playerid)) {
new id;
if(sscanf(params,"i",id)) return SendClientMessage(playerid,-1," > Koristi: /procitajreport [id reporta]");
else if(id < 0 || id > MAX_REPORTS-1) return SendClientMessage(playerid,-1, " > Pogresan ID reporta!");
if(strcmp(Reports,"Niko",false) == 0) return SendClientMessage(playerid,-1," > Nema reporta na ovom IDu!");
new str;
format(str,150," > Igrac: %s[%d] | Datum i vreme pisanja reporta: %s",Reports,Reports,Reports);
SendClientMessage(playerid,-1,str);
format(str,150," > Report: %s",Reports);
SendClientMessage(playerid,-1,str);
new name; GetPlayerName(playerid,name,sizeof(name));
format(str,150," > Admin %s je procitao vas report!",name);
SendClientMessage(Reports,-1, str);
ResetujReport(id);
}
return 1;
}
Zatim ovo dodate pod OnGameModeInit:
for(new i = 0; i < MAX_REPORTS; i++) ResetujReport(i);
I na kraju ovo pod OnPlayerDisconnect:
for(new i = 0; i < MAX_REPORTS; i++) {
if(Reports == playerid) ResetujReport(i);
}
pa eto mozda kome i posluzi 🙂