GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Mod Galerisi => Konuyu başlatan: Jawié - 13 Temmuz 2017, 16:50:26

Başlık: Üfleme
Gönderen: Jawié - 13 Temmuz 2017, 16:50:26
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;
}
Başlık: Ynt: Üfleme Script
Gönderen: Controbryget - 13 Temmuz 2017, 16:53:13
Ellerine sağlık, sistemden birkaç ekran görüntüsü ve pastebin linkleri eklemen fena olmazdı  :helal:
Başlık: Ynt: Üfleme Script
Gönderen: 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.
Başlık: Ynt: Üfleme Script
Gönderen: Jawié - 13 Temmuz 2017, 17:25:30
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.
Başlık: Ynt: Üfleme
Gönderen: sharax - 23 Temmuz 2021, 18:01:42
Paylaşım için teşekkürler.
Başlık: Ynt: Üfleme
Gönderen: Wendiassa - 21 Mayıs 2022, 20:05:51
eyv