GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Textdraw mesajları nasıl yapılır?

Başlatan Loop, 06 Ocak 2018, 14:24:41

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Loop

Textdraw mesajları nasıl yapılır?
Textdraw mesajından kastım birisini mesela birisini banladığınız zaman ekranın herhangi bir yerinde çıkacak textdraw bilgilendirmesidir. Ben ekranın alt orta kısmına kendim bir textdraw tasarladım. Dilerseniz siz başka textdraw ekleyebilirsiniz. Diyorsanız "benim diğer textdrawımla üst üste geliyor, yardım eder misin?" Maalesef bende o kadar destek yok.

New'leri tanıtalım:
PAWN Kodu: Seç
new Text:Olaylar[4];
new YaziDegeri[4][250];
new TextMesaji[250];



  • Buradaki "Text:Olaylar" textdrawların tümünü kapsar yanındaki 4 ise 0'dan 3'e kadar yani 4 tane textdrawımız olacağı için. Görselleri görünce daha iyi anlayacaksınız.

  • Buradaki "YaziDegeri" yazının karakter sayısını kapsar.

  • Buradaki TextMesaji komutlarımız içindir. Diğer kodları da incelediğinizde anlayacaksınız.



OnGameModeInit'e ekleyelim:
PAWN Kodu: Seç
for(new line; line < 4; line++)
{
format(YaziDegeri[line], 250, " ");
}
Olaylar[0] = TextDrawCreate(326.000000, 366.000000, YaziDegeri[0]);
Olaylar[1] = TextDrawCreate(326.000000, 382.000000, YaziDegeri[0]);
Olaylar[2] = TextDrawCreate(326.000000, 398.000000, YaziDegeri[0]);
Olaylar[3] = TextDrawCreate(326.000000, 414.000000, YaziDegeri[0]);

for(new line; line < 4; line++)
{
TextDrawAlignment(Olaylar[line], 2);
TextDrawFont(Olaylar[line], 1);
TextDrawLetterSize(Olaylar[line], 0.200000, 1.000000);
TextDrawSetOutline(Olaylar[line], 0);
TextDrawSetShadow(Olaylar[line], 0);
TextDrawUseBox(Olaylar[line], 1);
TextDrawBoxColor(Olaylar[line], 100);
TextDrawTextSize(Olaylar[line], 83.000000, 241.000000);
}



  • Şimdi burada 4 tane textdrawın bir döngü içerisinde olacağını gösterdik.

  • Textdrawların koordinatlarını gösterdik, görüldüğü gibi yukarıdan aşağıya büyüyor.



Stock'u ekleyelim:
PAWN Kodu: Seç
stock TextdrawYazi(playerid, const text[])
{
for(new line; line < 4; line++)
{
TextDrawShowForPlayer(playerid, Olaylar[line]);
}

for(new line; line < 4; line++)
{
TextDrawHideForAll(Olaylar[line]);
if(line < 3)
{
YaziDegeri[line] = YaziDegeri[line+1];
TextDrawSetString(Olaylar[line], YaziDegeri[line]);
}
}
format(YaziDegeri[3], 250, "%s", text);
TextDrawSetString(Olaylar[3], YaziDegeri[3]);

for(new line; line < 4; line++)
{
TextDrawShowForAll(Olaylar[line]);
}
return 1;
}



  • Burada line değişkenini anlattık ve  "Olaylar" textdrawın açılıp/kapanmasından söz ettik.



Bir süre sonra textdrawlar sıfırlansın istiyorsanız:
OnGameModeInit'e:
PAWN Kodu: Seç
SetTimer("TextdrawSifirla", 10000, true);

Modun sonuna:
PAWN Kodu: Seç
forward TextdrawSifirla();
public TextdrawSifirla()
{
TextdrawYazi(-1, "");
TextdrawYazi(-1, "");
TextdrawYazi(-1, "");
TextdrawYazi(-1, "");
TextdrawYazi(-1, "");
TextdrawYazi(-1, "");
return 1;
}


Textdraw çıkmasını istediğimiz tüm komutlara:
PAWN Kodu: Seç

if(strcmp(cmd, "/test", true) == 0)
{
SetPlayerHealth(playerid, 50);
format(TextMesaji, 250, "%s adli oyuncu /can komutunu kullandi.", getName(playerid));
TextdrawYazi(-1, TextMesaji);
    return 1;
}



  • Şimdi ben burada bir test komutu oluşturdum, altına gördüğünüz üzere can komutu için textdrawları kullandım. Siz hangi komuta ekleyecekseniz düzenleyin.



Ha, unutmadan:
PAWN Kodu: Seç
stock getName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}



  • Sizde yoksa ekleyin ki; "%s adli oyuncu" derken oyun size "%s kim" demesin.



Sonuç:
Son düzenlenme: 06 Ocak 2018, 14:28:05 Loop

Jizzy


pag


Savagery


Dyternal

Anlatım için teşekkürler bilmeyenler için yararlı.


Lé Spîke

         

Ferit12345

paylaşım için teşekkürler fakat bu can komutunu yazdığımızda alt textdrawın üstünde çıkmaz mı bu textdrawlı yazı ben üstünde çıkmasını istiyorum yardımcı olacak var mı ?


FelleR