romegames 1
romegames
InfernoShade 1
InfernoShade
Fethi Polat 1
Fethi Polat
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
shrpnl 1
shrpnl
YusufŞimşek14 1
YusufŞimşek14
berzahx 2
berzahx
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Gerçek Zamanlı(Real-Time) Affect

  • Konuyu başlatan Konuyu başlatan canTolip
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 17
  • Görüntüleme Görüntüleme 5K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Teşekkürler.
 
Güzel olmuş buda eline sağlık :)
 
Oyuncularınıza gerçek zamanlı affectler verebilmenize yarar. Örneğin bir oyuncunuza 7 günlük tag verdiniz ama oyuncu oyunda yokken de süresinin eksilmesini istiyorsunuz. İşte bu size göre;

Not: Gcc sürümüne bilmem neye ihtiyaç yoktur, herkesin kullanabileceği şekilde düzenlenmiştir.
Not2: İfdef'i kafanıza göre ayarlamayı veya kaldırmayı unutmayın.

game/char_affect.cpp
Aratılır
C++:
int CHARACTER::ProcessAffect()

Üstüne eklenir

C++:
#ifdef DÜTDÜT
const int gercekZamanliAff[] = {
    AFFECT_BLOCK_CHAT,
    AFFECT_TAG_YOUTUBE,
    AFFECT_TAG_TWITCH,
    AFFECT_TAG_FACEBOOK,
};
#endif


C++:
int CHARACTER::ProcessAffect()
içinde Aratılır:

C++:
if (--pkAff->lDuration <= 0) { bEnd = true; }

Değiştirilir


C++:
#ifdef DÜTDÜT
        const long suanTime = get_global_time();
        bool gercekZamanli = false;
        for (BYTE i = 0; i < (sizeof(gercekZamanliAff) / sizeof(gercekZamanliAff[0])); i++) {
            if (gercekZamanliAff[i] == pkAff->dwType) {
                //if (IsGM()) { ChatPacket(1, "<GM|GERCEKZAMANLIAFFECT> affIdx:%d var.farkSn:%d", pkAff->dwType, (pkAff->lDuration - suanTime)); }
                if (pkAff->lDuration <= (long)suanTime) {
                    RemoveAffect(pkAff->dwType);
                    bDiff = true;
                }
                gercekZamanli = true;
                break;
            }
        }
        if (!gercekZamanli) {
            if (--pkAff->lDuration <= 0) { bEnd = true; }
        }
#else
        if (--pkAff->lDuration <= 0) { bEnd = true; }
#endif


Gerçek zamanlı çalışmasını istediğiniz AFFECT numarasını gercekZamanliAff arrayına eklemeniz yeterlidir.
Örnek affect eklemesi(get_global_time() + verilecekSaniye);

C++:
AddAffect(AFFECT_BLOCK_CHAT, POINT_NONE, 0, AFF_CHATBAN, get_global_time() + 86400, 0, false); }
düşünsenize.. biri 257 affect ekliyor.. şaka şaka for yazdıktan sonra otomatik int yazmayanlar kulübüne hoşgeldiniz


Paylaşım için teşekkürler.
kardeş sen niye hiç başka yorum yapmıyorsun :d
 
Ty for share
my cat brother
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst