DIALOG_STYLE TUTORIAL
Pozdrav svima, u ovom tutorialu cu vam objasniti cemu sluzi koji DIALOG_STYLE, trenutno ima 6 DIALOG_STYLE-ova.
DIALOG_STYLE_MSGBOX
..se koristi da bi igracu ispisali neku poruku, npr kada igracu postavite admina njemu ispise neku poruku i ispise mu npr. admin pin...Evo primera: ( ja cu raditi preko formata, a vi ne morate ukoliko nemate sta da formatirate ( tj. ako nemate funkcije koje sadrze %nesto ( npr %d ) jednostavno umesto stringa stavite text )
new string; //Ovo definise 'string' tj. da bi koristili format funkciju morate imati sta da formatirate :)
format(string, sizeof(string), "Cestitamo, postali ste admin level %d na Balkan Direct serveru!\nAdmina Vam je postavio igrac %s\nVas admin pin kod je %d!", PI, GetName(playerid), PI);
ShowPlayerDialog(playerid, DIALOG_ADMIN, DIALOG_STYLE_MSGBOX, "Naslov", string, "Potvrdi", ""); //Ovo ispisuje ono sto ste formatirali.
DIALOG_STYLE_INPUT
.. se koristi da bi igracu dali da unese neki string ( ili ti text ) u dialog, npr. e-mail pri registraciji, evo kako bi to izgledalo sa Clickable td-ovima:public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == PRegister)
{
//Pazite, morate imati definisan dialog
ShowPlayerDialog(playerid, DIALOG_MAIL, DIALOG_STYLE_INPUT, "Unos e-mail", "Unesite Vasu e-mail adresu u polje dole!", "Potvrdi", "Kick"); //Npr ako zelite da ispise igracevo ime ( %s, unesite Vasu e-mail adresu ) morate koristiti format kao u proslom objasnjenju.
}
return 1;
} //Sada morate uraditi sta se desi kada igrac unese neki string ( tekst )Da bi bolje razumeli dodao sam i ondialogresponse 🙂
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_MAIL)
{
//Credits gReeDy.aMx //Mrzelo me da pisem za tutorial od 0 jel ;)
if(!response) return Kick(playerid);//!response ako je igrac stisnuo "Kick" dugme ili ti drugo dugme.
if(response) //Ukoliko je igrac uneo e-mail
{
new emailp = strfind(inputtext, "@", true); //strfind fukcija, samo ime vam kaze str = string find = trazi ( znaci ako ne postoji "@" ce izbaciti igracu da ponovo unese e-mail )
if(emailp == -1) //Znaci da uneti text nije tacan, tj. da nije validan e-mail jer ne sadrzi "@" //Ako se pitate zasto '-1' to znaci da nije dodeljena vrednost jer ne sadrzi "@" ako sam dobro shvatio, ispravite me slobodno
{
ShowPlayerDialog(playerid, DIALOG_MAIL, DIALOG_STYLE_INPUT, "Unos e-mail", "Uneti e-mail nije validan!\nUnesite Vasu e-mail adresu u polje dole!", "Potvrdi", "Kick"); //Npr ako zelite da ispise igracevo ime ( %s, unesite Vasu e-mail adresu ) morate koristiti format kao u proslom objasnjenju.
return 1;
}
} //ova zagrada
//Nadam se da ne treba vise da pisem, sve ispod ove zagrade je ono ukoliko su svi uslovi ispunjeni...
}
return 1;
}
DIALOG_STYLE_LIST
..se koristi da igracu date ponudje odgovore ( evo ja cu uraditi sa 'DA' i 'NE' da ovaj tutorial ne ide predaleko ( vec sam previse vremena izgubio za objasnjivanjem e-mail-a.Evo je npr. komanda za neki RP kviz il sta god:
YCMD:rpkviz(playerid, params[], help)
{
#pragma unused help
//Dodati provere, npr. da li je igrac ulogovan i sl. ja to necu dodavati jer ovo je DIALOG_STYLE tutorial :D
ShowPlayerDialog(playerid, DIALOG_RPKVIZ, DIALOG_STYLE_LIST, "MG je mesanje IC i OOC chata?", "Da\nNe", "Potvrdi", "Odustani"); // Da bi preslu u sledecu liniju, tj. u sledeci ponudjeni odgovor, koristi se "\n"
}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) //Ovde Vam necu previse objasnavati
{
if(!response) return 1; //Ukoliko je igrac odustao
switch(listitem) //Ovo govori skripti da je u pitanju DIALOG_STYLE_LIST da bi skripta mogla da se ponasa tako prema njemu, jer "\n" ne znaci doslovno nista osim prelaska u novi red.
{
case 0: //Ukoliko je odabrano "DA" tj. prvi list item
{
ShowPlayerDialog(playerid, DIALOG_RPKVIZ, DIALOG_STYLE_LIST, "DB je gazenje igraca vozilom?", "Da\nNe", "Potvrdi", "Otkazi");
}
case 1: //Ukoliko je igrac odabrao NE
{
SendClientMessage(playerid, -1, "Vise srece drugi put...");
}
}
return 1;
}
DIALOG_STYLE_PASSWORD
..se koristi potpuno isto kao i DIALOG_STYLE_LIST samo umesto teksta prikazuje zvezdice, nema potrebe za preteranim objasnjenjem...
DIALOG_STYLE_TABLIST
.. se koristi za razne stvari, jedna od njih je npr da stavite tri stvari koje mozete formatirati u jednom redu, primer dole za gshop:ShowPlayerDialog(playerid, DIALOG_GSHOP, DIALOG_STYLE_TABLIST, "Naslov",
"Deagle\t$5000\t100\n\
{FF0000}Sawnoff\t{33AA33}$5000\t100\n\
Pistol\t$1000\t50",
"Potvrdi", "Otkazi"); //Izvor wiki.sa-mp.com
//\t se koristi da predjete u novu kolonu
//\n se koristi da predjete u novi red 
DIALOG_STYLE_TABLIST_HEADERS
..je isti kao DIALOG_STYLE_TABLIST samo sa naslovima za iteme:ShowPlayerDialog(playerid, DIALOG_GSHOP, DIALOG_STYLE_TABLIST_HEADERS, "Naslov",
"Naslov 1\tNaslov 2\tNaslov 3\n\
Item 1 Kolona 1\tItem 1 Kolona 2\tItem 1 Kolona 3\n\
{FF0000}Item 2 Kolona 1\t{33AA33}Item 2 Kolona 2\tItem 2 Kolona 3",
"Potvrdi", "Otkazi"); //wiki.sa-mp.com
//Sva "\t" do prvog prelaska u novi red ( \n ) su naslovi, maksimalno je imati 3 naslova i 3 kolone ( nisam siguran, ali mislim da je 3 max,
probajte )
