GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
18 Kasım 2025, 08:57:36

Üfleme

Başlatan Jawié, 13 Temmuz 2017, 16:50:26

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Jawié

Başlık troll değil. İsim bulamadığımdan öyle koyma gereği duydum.  :D Bu script ile 1 ile 30 saniye seçip üfleyebilirsiniz. Üfleme sırası boyunca yanınıza yaklaşan uçurulur. (Yani rüzgarın bir kağıda değmesi gibi)

Kullanım Bilgileri:

/ufle (Saniye) --> Minimum 1, maksimum 30 saniye üfler.

Kod Paylaşımı:

PAWN Kodu: Seç
#include <a_samp>
#include <zcmd>
#include <sscanf2>

new uflemedurumu[MAX_PLAYERS], ufluyoryinebizimki[MAX_PLAYERS], baksi[MAX_PLAYERS];

CMD:ufle(playerid, params[])
{
new sid;
if(sscanf(params, "d", sid)) return SendClientMessage(playerid, -1, "{2DA4A6}[KULLANIM]: {FFFFFF}/ufle (Saniye)");
if(sid < 1 || sid > 30) return SendClientMessage(playerid, -1, "{2DA4A6}[HATA]: {FFFFFF}Minimum 1, maksimum 30 saniye giriniz.");
if(uflemedurumu[playerid] == 1) return SendClientMessage(playerid, -1, "{2DA4A6}[HATA]: {FFFFFF}Şu an zaten üflüyorsunuz, biraz bekleyiniz.");
ApplyAnimation(playerid, "BD_FIRE", "WASH_UP", 4.1, true, false, false, false, 0, false);
ApplyAnimation(playerid, "BD_FIRE", "WASH_UP", 4.1, true, false, false, false, 0, false);
ufluyoryinebizimki[playerid] = sid;
uflemedurumu[playerid] = 1;
baksi[playerid] = SetTimerEx("OTimer_", 1000, 1, "i", playerid);
return 1;
}

forward OTimer_(playerid);
public OTimer_(playerid)
{
if(ufluyoryinebizimki[playerid] == 1) uflemedurumu[playerid] = 0, ClearAnimations(playerid), KillTimer(baksi[playerid]);
if(ufluyoryinebizimki[playerid] > 0) ufluyoryinebizimki[playerid] --;
for(new i=0; i < GetPlayerPoolSize(); i++)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(IsPlayerInRangeOfPoint(i, 3.0, x, y, z))
{
    if(playerid != i)
      {
      if(ufluyoryinebizimki[playerid] > 0)
        {
        new Float:dx, Float:dy, Float:dz;
        GetPlayerPos(i, dx, dy, dz);
        SetPlayerPos(i, dx-4, dy, dz);
}
  }
}
}
return 1;
}
Son düzenlenme: 14 Temmuz 2017, 18:31:37 Jawié

Controbryget

Ellerine sağlık, sistemden birkaç ekran görüntüsü ve pastebin linkleri eklemen fena olmazdı  :helal:


Excision

Pastebin koyarsan sevinirim.
PAWN Kodu: Seç
for(new i; i < MAX_PLAYERS; i++) yerine
PAWN Kodu: Seç
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) kullanırsan daha sağlıklı olur. Ayrıca timer i OnPlayerUpdate de kullanmışsın, bildiğim kadarıyla OnPlayerUpdate her saniye update etmiyor. Saniyede 2-3 defa Update olabilir. En sağlıklısı timer kullan.
Son düzenlenme: 13 Temmuz 2017, 17:08:39 Excision

Jawié

Alıntı yapılan: Excision - 13 Temmuz 2017, 17:03:03

Pastebin koyarsan sevinirim.
PAWN Kodu: Seç
for(new i; i < MAX_PLAYERS; i++) yerine
PAWN Kodu: Seç
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) kullanırsan daha sağlıklı olur. Ayrıca timer i OnPlayerUpdate de kullanmışsın, bildiğim kadarıyla OnPlayerUpdate her saniye update etmiyor. Saniyede 2-3 defa Update olabilir. En sağlıklısı timer kullan.


26 kere falan ediyor ortalama. Dalgınlığıma gelmiş. GetPlayerPoolSize ile benim yaptığım kod aynı işlevi görüyor fakat seninki daha sağlıklı. Timerı düzelttikten sonra konuyu güncelleyeceğim. Konu düzenlendi.
Son düzenlenme: 13 Temmuz 2017, 17:34:37 Jawié

sharax

Paylaşım için teşekkürler.


Wendiassa