Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: Vegas. poslato Oktobar 02, 2012, 10:42:20 PRE PODNE

Naslov: [TuT] /report u dijalogu i tajmerom
Poruka od: Vegas. poslato Oktobar 02, 2012, 10:42:20 PRE PODNE
(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);
}
}
}


Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Djokoš poslato Oktobar 02, 2012, 10:57:59 PRE PODNE
Good,Job :D svaka cast... :D
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Vegas. poslato Oktobar 02, 2012, 11:03:02 PRE PODNE
Hvala, lako je ovo.. :)
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: 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.
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: LOckeRâ„¢ poslato Oktobar 02, 2012, 12:53:34 POSLE PODNE
Svaka čast brate :D
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Poslednji Don poslato Oktobar 02, 2012, 12:59:21 POSLE PODNE
10/10 krajnje profesionalno ahahahaha :D :D
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: 99Mile99 poslato Oktobar 02, 2012, 14:16:38 POSLE PODNE
dobar :D
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Vegas. poslato Oktobar 02, 2012, 19:57:17 POSLE PODNE
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.. :)
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Artieâ„¢ poslato Oktobar 03, 2012, 10:31:03 PRE PODNE
odlicno  ;)
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: TiXoR_ poslato Oktobar 03, 2012, 11:36:01 PRE PODNE
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.
;)
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Muhamed. poslato Oktobar 03, 2012, 11:48:10 PRE PODNE
Ma nemaÅ¡ ti pojma  >:(

Zajebajem se , odličan tut.
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: propalica2131231 poslato Oktobar 03, 2012, 11:48:57 PRE PODNE
ljep tutorial
nista posebno ali dobro objasnjeno
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Vegas. poslato Oktobar 03, 2012, 11:57:08 PRE PODNE
Naravno da je lagano, uradio sam za 2/3 minuta, ali malo više je trebalo da sve objasnim. Hvala :)
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Vegas. poslato Oktobar 08, 2012, 02:06:16 PRE PODNE
Hvala.
Naslov: Odg: [TuT] /report u dijalogu i tajmerom
Poruka od: Kunnaâ„¢ poslato Novembar 24, 2012, 22:47:55 POSLE PODNE
Dobar tut !