Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

GUI Dialogų kurimas, ir viskas apie juos.


LeveL.

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3938 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

GUI dialogų tipų yra 4, t.y:

1.Sąrašo tipas. (DIALOG_STYLE_LIST)

2. 2 variantų pasirinkimo tipas. (DIALOG_STYLE_MSGBOX)

3. Įvedamų simbolių tipas. (DIALOG_STYLE_INPUT)

4. Slaptažodžio tipas. (DIALOG_STYLE_PASSWORD)

1. Sąrašo tipas:

Visada norint sukurti GUI reikia rašyti : ShowPlayerDialog(playerid,dialogo id,TIPAS,“Antraštė“,“1. Variantas\n2. Variantas“,“Sutikimo mygtukas“, “Nesutikimo mygtukas“);

Viskas atrodyti turėtų taip:

ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,“Spalvos“,“Žalia.\nMėlyna.\nGeltona.\nRaudona.“,“Pasirinkti“,“Atšaukti“);

\n – simbolis reiškia naują eilutę, arba kitą pasirinkimą. Kitą pasirinkimą duos šis simbolis, tik DIALOG_STYLE_LIST GUI tipe. Kituose duos, tik naują eilutę.

Toliau, po callbacku OnDialogResponse (Jį susirasti gali spausdamas CTRL + F ir įrašydamaas OnDialogResponse)

Rašai:

if(dialogid == 1)

{

If(response) – Jei paspaudė mygtuką “Pasirinkti”

{

if(listitem == 0) - Jei pasirinks žalią spalvą, tai

{

SendClientMessage(playerid,ZALIA,“Tu pasirinkai spalvą: Žalią“);

}

if(listitem == 1) - Jei pasirinks mėlyną spalvą, tai

{

SendClientMessage(playerid,MELYNA,”Tu pasirinkai spalvą: Mėlyną”);

}

if(listitem == 2) – Jei pasirinks Geltoną spalvą, tai

{

SendClientMessage(playerid,GELTONA,”Tu pasirinkai spalvą: Geltoną”);

}

if(listitem == 3) – Jei pasirinks raudoną spalvą, tai

{

SendClientMessage(playerid,RAUDONA,”Tu pasirinkai spalvą: Raudoną”);

}

return 1;

}

if(!response) – Jei paspaudė mygtuką “Atšaukti”

{

SendClientMessage(playerid,SPALVA,”Tu pasirinkai mygtuką – Atšaukti”);

}

return 1;

}

Visada pirmas pasirinkimas šiuo atveju žalia spalva, būna 0.

if(listitem == 0) – Čia žalia spalva.

Visada, sąrašo tipe, pirmo variant pasirinkimas būna žymimas ir pradedamas žymėti nuo 0.

2. 2 variantų pasirinkimo tipas:

Norint 2 variantų pasirinkimo tipą sukurti, reikia rašyti beveik viską taippat, tik kai kurie parametrai skiriasi. Pvz.:

ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,“Antraštė“,“Sąlyga, su kuria turi sutikti, ar turi pasirinkti vieną iš dviejų. Čia ta salyga apibūdinama.“,“Pasirinkti“,“Atšaukti“);

Tokiu atveju ir tokiu tipu galima išmesti žaidėjui GUI langą, kad sutiktų su taisyklėmis.

pvz.:

ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,“Taisyklės“,“Turi sutikti su taisyklėmis, tik tada galėsi žaisti toliau.“,“Sutinku“,“Nesutinku“);

Toliau, OnDialogResponse callbacke, nurodai:

If(dialogid == 1)

{

if(response) – Jei paspaudė Sutinku.

{

SendClientMessage(playerid,SPALVA,”Tu sutikai su taisyklėmis, todėl gali tęsti žaidimą”);

return 1;

}

if(!response) – Jei paspaudė Nesutinku.

{

SendClientMessage(playerid,SPALVA,”Tu nesutikai su taisyklėmis, todėl esi išmetamas iš žaidimo”);

Kick(playerid);

}

return 1;

}

Kick(playerid); - tai išmeta žaidėją, kuris nesutiko iš serverio.

Šiame dialogo tipe, simbolis \n reikš tekstą prasidedantį iš naujos eilutės GUI lange.

3. Įvedamų simbolių tipas.

Šio tipo pagalba galima daug daugiau padaryt žaidėjo nuožiūra.

Apibendrinus viskas atrodo taip:

ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,“Antraštė“,“Įvesk norimą slaptažodį“,“Patvitinti“,“Išeiti“);

Ir įvedus slaptažodį, kad sistema suprastų ką tu nori padaryti, callbacke rašom:

OnDialogResponse

if(dialogid == 1)

{

new string[128]; - sukuriame kintamąjį, kad galėtų žaidėjui suformatuoti jo įvestą slaptažodį.

if(response) – jei paspaudė “Patvirtinti”

{

if((inputtext) < 1) – Jei simbolių įvestų mažiau arba tik vienas

{

SendClientMessage(playerid,SPALVA,”Slaptažodis turi būti netrumpesnis, kaip 1 simbolis“);

}

else – Jeigu viskas tvarkoi, ir sistemai patinka viskas

{

format(string, 128,“Tu užsiregistravai sėkmingai, tavo slaptažodis: %s",inputtext); - suformatuojam žinutę

SendClientMessage(playerid,SPALVA,string); - išsiunčiame suformatuotą žinutę.

}

return 1;

}

Viskas taip pačiai ir su DIALOG_STYLE_PASSWORD, tik esmė ta, kad PASSWORD dialogo įvesti simboliai užslepiami žvaigždutėmis, o INPUT tipo, atviri simboliai t.y – neužslėpti.

Štai ir Zvaigzduciu PASSWORD tipo dialogas, viskas darosi taip pačiai, kaip INPUT tipe, tik, kad tipas kitaip vadinasi.

Pamoka kurta ne mano

Redaguota , nario BiFfGuYz
  • Teigiamai 3
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 3 savaičių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3938 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...