GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: Loop - 06 Ocak 2018, 14:24:41

Başlık: Textdraw mesajları nasıl yapılır?
Gönderen: Loop - 06 Ocak 2018, 14:24:41
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];




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);
}




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;
}




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;
}




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




Sonuç:
(https://i.hizliresim.com/8Yn01n.png)
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: Jizzy - 06 Ocak 2018, 14:48:22
eline sağlık güzel anlatım  :helal:
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: pag - 07 Ocak 2018, 19:04:01
Yararlı paylaşım,eline sağlık.
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: Savagery - 09 Ocak 2018, 10:56:56
Gayet Kullanışlı.Eline Sağlık.
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: Dyternal - 09 Ocak 2018, 11:05:32
Anlatım için teşekkürler bilmeyenler için yararlı.
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: Lé Spîke - 22 Mart 2018, 19:36:34
Aradığım ders! Teşekkürler...
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: Ferit12345 - 14 Haziran 2018, 14:36:21
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ı ?
Başlık: Ynt: Textdraw mesajları nasıl yapılır?
Gönderen: FelleR - 27 Haziran 2019, 01:30:48
Yararlı.