GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
19 Aralık 2025, 12:24:40

textdraw oluşturma

Başlatan magnet00, 28 Nisan 2025, 20:45:34

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

magnet00

arkadaşlar textdrawlar galiba her oyuncuya özel oluşturuluyor mesela ben oyuncunun wanted levelini bir textdrawda göstermek istiyorum ancak oyuncuya özel oluşturuluyor galiba [playerid] ile bunun oluşturma usulü ve oyuncu çıktıgında silme usulü nedir , textdraw editör kullanıyorum


Krips Je

Textdraw sisteminde oyuncuya özel bir gösterim yapılmak istendiğinde textdrawların her oyuncu için ayrı ayrı oluşturulması gerekir. Bunun için temel yöntem playerid parametresi kullanılarak bireysel textdraw oluşturmak ve yönetmektir.

Öncelikle, oyuncuya özel bir textdraw oluşturmak için CreatePlayerTextDraw fonksiyonu kullanılır. Bu fonksiyon standart TextDrawCreate fonksiyonundan farklıdır, çünkü sadece belirtilen oyuncuya görünür bir textdraw nesnesi oluşturur.

Oyuncu sunucudan çıktığında ona özel oluşturulan txdleri silinmesini istiyorsan  bunun için OnPlayerDisconnect callbackinin içinde ilgili oyuncunun textdrawı PlayerTextDrawDestroy fonksiyonu ile sildir.

"Kodunu yaz, gerisini compiler düşünsün." - Meçhul Yazılımcı
    

magnet00

Alıntı yapılan: Krips Je - 28 Nisan 2025, 21:33:30
Textdraw sisteminde oyuncuya özel bir gösterim yapılmak istendiğinde textdrawların her oyuncu için ayrı ayrı oluşturulması gerekir. Bunun için temel yöntem playerid parametresi kullanılarak bireysel textdraw oluşturmak ve yönetmektir.

Öncelikle, oyuncuya özel bir textdraw oluşturmak için CreatePlayerTextDraw fonksiyonu kullanılır. Bu fonksiyon standart TextDrawCreate fonksiyonundan farklıdır, çünkü sadece belirtilen oyuncuya görünür bir textdraw nesnesi oluşturur.

Oyuncu sunucudan çıktığında ona özel oluşturulan txdleri silinmesini istiyorsan  bunun için OnPlayerDisconnect callbackinin içinde ilgili oyuncunun textdrawı PlayerTextDrawDestroy fonksiyonu ile sildir.

hocam nicks td editör kullanıyorum , mesela altta bir textdraw var diyelım sunucunun adı vs yazıyor sağındada oyuncunun süekli konumu yazıyor diyelim bu konum oyuncuya özel olucak ancak sunucunun adı yazan textdraw herkese aynı olucak değil mi ? konum yazanı onplayerconnecte oluşturacagım sunucu adını ongamemodeinitte yapacagım? , birde herkesde görünecek olan textdrawların yönetimi mantıken nasıl oluyor.



Krips Je

Şimdi şöyle, eğer bir yazı sadece bir oyuncuya özel olacaksa, yani mesela "Konum: Los Santos" gibi bir şey her oyuncuda farklı olacaksa, bu textdrawı CreatePlayerTextDraw ile OnPlayerConnect içinde oluşturman gerekiyor. Yani oyuncu sunucuya girdiği anda onun için ayrı bir textdraw yaratıyorsun. Böylece herkesin kendi textdrawı oluyor.

Sunucu ismi gibi herkes için aynı olacak şeyleri ise normal TextDrawCreate ile OnGameModeInit içinde oluşturuyorsun. Yani oyun başladığında bir kere oluşuyor, herkes aynı textdrawı görüyor. Bu tür genel textdrawları yönetmek de basit, sadece bir kere gösterip saklıyorsun herkes görüyor zaten. Silmek istersen de TextDrawHideForAll veya TextDrawDestroy kullanıyorsun.

Kısaca özetlersek eğer senin için;

- Kişiye özel şeyler CreatePlayerTextDraw, OnPlayerConnect içinde
- Herkese ortak şeyler TextDrawCreate, OnGameModeInit içinde

"Kodunu yaz, gerisini compiler düşünsün." - Meçhul Yazılımcı
    

!Zeus

Eğer her oyuncuda farklı bir yazı görünecekse (ki zaten öyle istiyorsun) CreatePlayerTextDraw(playerid, ...); kullanmalısın.

TextDrawCreate her oyuncuda aynı görünür, oyunculara özel değer/yazı atayamazsınız.

PAWN Kodu: Seç
new
    PlayerText: WantedTextDraw[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    // Örnek: Textdrawı oluşturalım

    WantedTextDraw[playerid] = CreatePlayerTextDraw(playerid, ...);
    PlayerTextDrawFont(playerid, WantedTextDraw[playerid], 4);
    ...
    ...
    ...
    return 1;
}

public OnPlayerSpawn(playerid)
{
    // Örnek: Oyuncu spawn olduğunda textdraw gösterilsin

    PlayerTextDrawSetString(playerid, WantedTextDraw[playerid], "Aranıyorsunuz.");
    PlayerTextDrawShow(playerid, WantedTextDraw[playerid]);
    return 1;
}

Zesty:V Roleplay