Peršokti į turinį

[Pamoka] Info langas by Kaspis


kaspjugas

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3914 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

Sveiki vakar pagalvojau, kad reiktu kažko serveriams įvairesnio nei tie seni Gui langai. Šiandien jums parodysiu kaip susikurti gražesni langą su textdraw'u. :)

Na ką gi pradedam:

1. Susikuriam textdraw'a aš naudoju Textdraw kūrimui TextDrawEditor0.6 su juo gan patogiai eina susikurti textdraw'a.

Kaip pasidaryti iš textdraw'o langą?

Paemame kokią l raidę ją ištempiame į apačia kiek jums reikia, kad pasidarytumėte langą ir uždedame box tokius rėmelius pilnavidurius ir kad nesimatytų tos l raidės. Paskui paemame ir dar viena textdraw'a susikuriame jau vidui to lango šone ar kur jūs norėsite, kad prasidėtų jūsų tekstas ir parašome, bet ką pvz aš parašiau /drift, nes kūriau drift serveriui. Na ir ką turime iš textdraw'o pasidarę langą informacijai.

2. Pradėsime kelti viską į savo gm.pwn

Paemame gautus rezultatus textdraw'u ir įkeliame po:

public OnPlayerConnect(playerid)
{

Pas mane gavosi tokie rezultatai:

kmd0 = TextDrawCreate(10.000000,195.000000,"Komandos");
kmd1 = TextDrawCreate(10.000000,214.000000,"l");
kmd2 = TextDrawCreate(8.000000,218.000000," /driftai");
TextDrawUseBox(kmd0,1);
TextDrawBoxColor(kmd0,0x000000ff);
TextDrawTextSize(kmd0,254.000000,0.000000);
TextDrawUseBox(kmd1,1);
TextDrawBoxColor(kmd1,0x000000ff);
TextDrawTextSize(kmd1,254.000000,0.000000);
TextDrawAlignment(kmd0,0);
TextDrawAlignment(kmd1,0);
TextDrawAlignment(kmd2,0);
TextDrawBackgroundColor(kmd0,0x000000ff);
TextDrawBackgroundColor(kmd1,0x000000ff);
TextDrawBackgroundColor(kmd2,0x000000ff);
TextDrawFont(kmd0,1);
TextDrawLetterSize(kmd0,1.000000,1.900000);
TextDrawFont(kmd1,1);
TextDrawLetterSize(kmd1,1.000000,11.500007);
TextDrawFont(kmd2,2);
TextDrawLetterSize(kmd2,0.299999,0.899999);
TextDrawColor(kmd0,0xffffffff);
TextDrawColor(kmd1,0x000000ff);
TextDrawColor(kmd2,0xffffffff);
TextDrawSetOutline(kmd0,1);
TextDrawSetOutline(kmd1,1);
TextDrawSetOutline(kmd2,1);
TextDrawSetProportional(kmd0,1);
TextDrawSetProportional(kmd1,1);
TextDrawSetProportional(kmd2,1);
TextDrawSetShadow(kmd0,1);
TextDrawSetShadow(kmd1,1);
TextDrawSetShadow(kmd2,1);

Tai va viską sudėjus gaunasi taip:

public OnPlayerConnect(playerid)
{
kmd0 = TextDrawCreate(10.000000,195.000000,"Komandos");
kmd1 = TextDrawCreate(10.000000,214.000000,"l");
kmd2 = TextDrawCreate(8.000000,218.000000," /driftai");
TextDrawUseBox(kmd0,1);
TextDrawBoxColor(kmd0,0x000000ff);
TextDrawTextSize(kmd0,254.000000,0.000000);
TextDrawUseBox(kmd1,1);
TextDrawBoxColor(kmd1,0x000000ff);
TextDrawTextSize(kmd1,254.000000,0.000000);
TextDrawAlignment(kmd0,0);
TextDrawAlignment(kmd1,0);
TextDrawAlignment(kmd2,0);
TextDrawBackgroundColor(kmd0,0x000000ff);
TextDrawBackgroundColor(kmd1,0x000000ff);
TextDrawBackgroundColor(kmd2,0x000000ff);
TextDrawFont(kmd0,1);
TextDrawLetterSize(kmd0,1.000000,1.900000);
TextDrawFont(kmd1,1);
TextDrawLetterSize(kmd1,1.000000,11.500007);
TextDrawFont(kmd2,2);
TextDrawLetterSize(kmd2,0.299999,0.899999);
TextDrawColor(kmd0,0xffffffff);
TextDrawColor(kmd1,0x000000ff);
TextDrawColor(kmd2,0xffffffff);
TextDrawSetOutline(kmd0,1);
TextDrawSetOutline(kmd1,1);
TextDrawSetOutline(kmd2,1);
TextDrawSetProportional(kmd0,1);
TextDrawSetProportional(kmd1,1);
TextDrawSetProportional(kmd2,1);
TextDrawSetShadow(kmd0,1);
TextDrawSetShadow(kmd1,1);
TextDrawSetShadow(kmd2,1);

Pas jus išmes kitaip rezultatus ne su kmd0, o su textdraw0, tai patartina vietoj textdraw0 pasikeisti į pvz.: kaip pas mane kmd0 aš naudojau 3 textdraw'us tai pas mane gavosi jų 3 ir buvo parašyta Textdraw0, Textdraw1, Textdraw2, tai tos Textdraw pakeičiau į kmd. Beto nepamirškite gm.pwn pradžioje parašyti šių:

new Text:kmd0;
new Text:kmd1;
new Text:kmd2;

Jei jūs naudosite kaip pas mane kmd, tai nereiks nieko keisti o jei kitą pavadinimą, tai gausite pasikeisti tekstą tą kmd. Na ir štai susidėjome textdraw'us dabar reikia padaryti, kad jie atliktų funkcija.

3. Padarome komanda su kuria rodys mūsų textdraw'us ir kas jose parašyta.

Rašome po:

public OnPlayerCommandText(playerid, cmdtext[])
{

Komandą su kuria atidarys jums textdraw'a ji būtų tokia:

if(strcmp(cmdtext, "/jusukomanda", true)==0)
{
 new string[250];
 format(string, sizeof(string), " ");
 TextDrawSetString(kmd2, string);
 TextDrawShowForPlayer(playerid, kmd0);
 TextDrawShowForPlayer(playerid, kmd1);
 TextDrawShowForPlayer(playerid, kmd2);
 return 1;
}

format(string, sizeof(string), " "); šitoje vietoje dėsime savo tekstą kurį norime, kad rodytų jūsų tame vidui lange.

TextDrawSetString(kmd2, string); šita eilutė redaguoja jūsų parašyta tekstą tą kurį rašėme kurdami textdraw'a, jei nesuprantate apie ką aš tai va pavizdys kurį gavome baigia kurti textdraw'us:

kmd2 = TextDrawCreate(8.000000,218.000000," /driftai");

Na, o likusiosios eilutės rodo mūsų sukurtus textdraw'us. Na ir baigėme kurti komanda kuri rodys mūsų textdraw'us, bet neužmirškime, kad jie nedings reikia sukurti funkcija, kad išsijungtu tie textdraw'ai su mygtuku.

4. Kuriame paskutinę funkcija su kuria neberodys mums textdraw'u.

Po šitu dedame paskutinę funkcija:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

Tai bus taip:

 if( newkeys == KEY_NO ) // Patikrinam, ar žmogus nuspaudė N
 {
TextDrawHideForPlayer(playerid, kmd0);
TextDrawHideForPlayer(playerid, kmd1);
TextDrawHideForPlayer(playerid, kmd2);
return 1;
 }

Aš naudojau mygtuką N išjungti textdraw'us, o jūs galite kitus naudoti http://wiki.sa-mp.co...i/GetPlayerKeys štai čia galite susirasti jums reikalinga mygtuką.

Paskutinės eilutės tai jūsų textdraw'ai kuriuos sunaikina tik nepamirškite dar kartą jei naudosite kitą textdrawu pavadinimą tai pasikeiskite iš kmd į jūsų pavadinimą kitaip mes erorus ir nerodys textdraw'u. :)

Čia to textdrawo kurimo FS parsisiuntimo nuoroda: TextDrawEditor0.6.zip - 20.2 Kb

Sėkmės naudojant :) Tik nesmerkit per daug jei tiksliai nepaaiškinau, nes nesiseka man aiškinti :D

Na ir mano sukurtas langas info:

256654004d374af368d10446590595de823.jpg

Redaguota , nario ---Kaspis---
  • Teigiamai 10
  • Neigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3914 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ą...