(http://zaslike.com/files/lr66oxt5dep14cdvzuwe.png) (http://zaslike.com/)
Pozdrav.
OdluÄio sam napraviti ovaj mali tut jer me nekoliko ljudi pitalo kako to odraditi. Vrlo je jednostavno a dobro. Da ne duljim poÄinjemo.Za poÄetak će vam trebati ukoliko već nemate include ZCMD i foreach.Prvo negdje pri vrhu skripte definirajte ID dijaloga i varijabilu koji će nam biti potrebni. new reportovo[MAX_PLAYERS];
#define DIALOG_REPORT 19245
Ukoliko nemate žutu boju u modu a ovo ubacujete, definirajte i nju kako ne bi bilo errora koji bi vas zbunili. #define Zuta 0xFFFF00C8
Na publicu OnPlayerConnect stavljamo igraÄevu varijabilu na 0. ZaÅ¡to? ÄŒisto iz sigurnosti da ne bi bilo bugova. Dakle to treba biti ovako.
public OnPlayerConnect(playerid)
{
reportovo[playerid] = 0;
return 1;
}
Idemo sa komandom. CMD:report(playerid, params[])
{
if(reportovo[playerid] == 1) return SendClientMessage(playerid, -1, "Sacekajte malo, tek ste poslali report.");
ShowPlayerDialog(playerid, DIALOG_REPORT, DIALOG_STYLE_INPUT, "REPORT|", "Unesite vase pitanje te sacekajte za odgovor admina.","Unesi","Odustani");
return 1;
}
Komanda je jednostavna, kao Å¡to vidite postoji provjera ako igraÄ ima varijabilu "reportovo" na 1 neće moći da piÅ¡e, a to je zbog tajmera. I takoÄ'e prikazivanje obiÄnog dijaloga.
Idemo da napravimo deÅ¡avanja u dijalogu. Potražite u svom modu public OnDialogResponse. Kada ga naÄ'ete napravite Å¡ta treba a to izgleda ovako, bar bi trebalo.public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[128];
new sendername[MAX_PLAYERS];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(dialogid == DIALOG_REPORT)
{
reportovo[playerid] = 1;
format(string, sizeof(string), "REPORT | %s treba pomoc> %s", sendername, inputtext);
SendAdminMessage(Zuta, string);
SendClientMessage(playerid, Zuta, "Poslali ste report.");
SetTimerEx("UnReport", 30000, 1,"i",playerid);
}
return 1;
}
if(dialogid == DIALOG_REPORT)
{
Uzimamo ID dijaloga sa kojim radimo.reportovo[playerid] = 1;
Stavljamo igraÄevu varijabilu na 1 Å¡to znaÄi da je napisao report.format(string, sizeof(string), "REPORT | %s treba pomoc> %s", sendername, inputtext);
SendAdminMessage(Zuta, string);
Formatiramo igraÄevu poruku te uzimamo njegovo ime i Å¡ta je napisao, te adminima Å¡aljemo poruku.SendClientMessage(playerid, Zuta, "Poslali ste report.");
Å aljemo igraÄu poruku da je poslao report.SetTimerEx("UnReport", 30000, 1,"i",playerid);
}
Pokrećemo stock UnReport koji će se zavrÅ¡iti za 30 sekundi, te zavrÅ¡avamo radnju sa dijalogom. SetTimerEx se koristi za pojedinog igraÄa.Mnogi će se zapitati Å¡ta je UnReport. To je jedan mali stock koji igraÄevu varijabilu za report postavlja na 0 te on može opet pisati. stock UnReport(playerid)
{
reportovo[playerid] = 0;
SendClientMessage(playerid, Zuta, "Sada mozete opet pisati report.");
}
Na kraju ubacujete stock za slanje poruke adminima, taj stock već svi dobro poznaju iz GF modova tako da ga nema potrebe objašnjavati. stock SendAdminMessage(color, string[])
{
foreach (Player, i)
{
if(PlayerInfo[i][pAdmin] >= 1)
{
SendClientMessage(i, color, string);
}
}
}
Good,Job :D svaka cast... :D
Hvala, lako je ovo.. :)
Dobar je tut. Samo mi se nesvida tvoj nacin pisanja. Koristi TAB jer lijepse ce izgledat i lakse je se za snaci.
Svaka Äast brate :D
10/10 krajnje profesionalno ahahahaha :D :D
dobar :D
Hvala vam :) ..
Citat: pllopen poslato Oktobar 02, 2012, 12:04:56 POSLE PODNE
Dobar je tut. Samo mi se nesvida tvoj nacin pisanja. Koristi TAB jer lijepse ce izgledat i lakse je se za snaci.
Meni je ljepšte ovako.. :)
odlicno ;)
Nešto prejednostavno, al dobro.
lijep tut
Samo,
Citat: pllopen poslato Oktobar 02, 2012, 12:04:56 POSLE PODNE
Dobar je tut. Samo mi se nesvida tvoj nacin pisanja. Koristi TAB jer lijepse ce izgledat i lakse je se za snaci.
;)
Ma nemaš ti pojma >:(
Zajebajem se , odliÄan tut.
ljep tutorial
nista posebno ali dobro objasnjeno
Naravno da je lagano, uradio sam za 2/3 minuta, ali malo više je trebalo da sve objasnim. Hvala :)
Hvala.
Dobar tut !