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

OnPlayerUpdate Çakışması

Başlatan TRSinan28, 01 Şubat 2018, 23:12:27

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

TRSinan28

Arkadaşlar ben ekranın altına textdraw olarak PARA,SKOR,PİNG göstergeleri koydum.Sunucuda tek kişi olunca doğru düzgün gösteriyor neyse.Sunucuda 2 kişi olunca ışık hızı gibi hem diğer arkadaşın Para,skor,ping ini gösteriyor hem de benimkini.İnanın ışık hızı gibi :D Bir bakabilirmisiniz kodlar şunlar;

    format(string, sizeof string, "%d", GetPlayerPing(playerid));
    TextDrawSetString(Alttext15, string);
   
    format(string, sizeof string, "%d", GetPlayerScore(playerid));
    TextDrawSetString(Alttext9, string);
   
    format(string, sizeof string, "$%d", GetPlayerMoney(playerid));
    TextDrawSetString(Alttext5, string);

OnPlayerUpdate'de bunlar.


Jackmann

PAWN Kodu: Seç
foreach(Player, i)
{
    format(string, sizeof string, "%d", GetPlayerPing(i));
    TextDrawSetString(Alttext15, string);

    format(string, sizeof string, "%d", GetPlayerScore(i));
    TextDrawSetString(Alttext9, string);

    format(string, sizeof string, "$%d", GetPlayerMoney(i));
    TextDrawSetString(Alttext5, string);
}


Excision

Global bir textdrawı player için kullanamazsın. Eğer özel bir şey değilse bana textdrawdaki kodları gönder düzeltip atayım.


TRSinan28

Düzeldi kardeşim Allah razı olsun :) Şu Foreach ne işe yarıyor açıklar mısın ? Ne gibi yerlerde kullanabilirim ?


TRSinan28

Alıntı yapılan: Excision - 01 Şubat 2018, 23:21:55

Global bir textdrawı player için kullanamazsın. Eğer özel bir şey değilse bana textdrawdaki kodları gönder düzeltip atayım.

Arkadaşın verdiği kodlar düzeltti olayı ama bi sıkıntı çıkar mı ki ?


Excision


TRSinan28


Jackmann

Alıntı yapılan: TRSinan28 - 01 Şubat 2018, 23:22:11

Düzeldi kardeşim Allah razı olsun :) Şu Foreach ne işe yarıyor açıklar mısın ? Ne gibi yerlerde kullanabilirim ?

Karışık kuruşuk şeyler ya :D


Excision

Bütün oyuncuları döngüye sokarken kullanabilirsin, hem daha performanslı olur foreach kullanırsan. Örnek verecek olursak;
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i))
    {
GivePlayerMoney(i, 3000);
    }
}

kullanmak yerine
foreach(new i: Player)
{
    GivePlayerMoney(i, 3000);
}

gibi kullanmak daha pratik ve sağlıklı.
foreach ile oyundaki bütün oyuncuları döngüye aldığımız için tekrardan IsPlayerConnected şartını getirmemize gerek kalmıyor.


TRSinan28

Arkadaşın attığı kodda öyleydi

Edit: Yanlış anlamışım Foreach kullanımını öğrettin.Tamamdır Alican abi anladım.Teşekkür ederim.
Son düzenlenme: 01 Şubat 2018, 23:40:39 TRSinan28

Excision

Kullanımı yanlış, oyuncu her onplayerupdate i çağırdığında ki bu public saniyede 4 5 defa çağrılabiliyor. Her seferinde foreach ile oyuncuları boşu boşuna döngüye sokacaktı ki bi işe yaramayacaktı.
Özelden attım linki, incele anlarsın.


TRSinan28

Textdraw kodlarını OnGameModeInit'e atıyorum.Sen OnPlayerConnect'e uyarlamışsın.Bir sıkıntı olmaz dimi ?


Excision


TRSinan28