Hava kılıcı için alevli savrulma izi ve canavarların yanma efekti

Kaptan Yosun

Moderatör
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
1.008
Çözümler
35
Beğeni
1.062
Puan
1.339
Ticaret Puanı
0
Client kaynak kodlarında zaten olup, devre dışı bırakılmış bir etki.

Hava kılıcı açıkken vurduğunuz canavarlar alev almış gibi yanarlar.

1729336923015.webp


Etkinleştirmek için client kaynak kodunu düzenleyeceğiz.

Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.


Bir de kılıcı savururken alev efekti çıksın isterseniz bu düzenlemeyi de yapabilirsiniz:

1729338446408.webp


Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
 
Son düzenleme:
Bununla birlikte bir üst kısımdaki kodu da aktif ederseniz Büyülü Keskinlik için elektrik efekti de aktif oluyor, aslında ikisi de çok güzel eklenti neden kullanmaktan vazgeçtiklerini merak ettim, belki de görsel olarak uzun vadede çok göz yoracağını düşünmüş olabilirler, teşekkürler paylaşım için.
 
Bununla birlikte bir üst kısımdaki kodu da aktif ederseniz Büyülü Keskinlik için elektrik efekti de aktif oluyor, aslında ikisi de çok güzel eklenti neden kullanmaktan vazgeçtiklerini merak ettim, belki de görsel olarak uzun vadede çok göz yoracağını düşünmüş olabilirler, teşekkürler paylaşım için.
O kodu aktif edince büyülü keskinlikle vurulan yaratıklara elektrik efekti veriliyor ancak büyülü keskinliğin kendi efekti kayboluyor, sebebini biliyor musun?
 
O kodu aktif edince büyülü keskinlikle vurunlar yaratıklara elektrik efekti veriliyor ancak büyülü keskinligin kendi efekti kayboluyor, sebebini biliyor musun?
C++:
Genişlet Daralt Kopyala
void CInstanceBase::__ComboProcess()
{
    DWORD dwcurComboIndex = m_GraphicThingInstance.GetComboIndex();

    if (0 != dwcurComboIndex)
    {
        if (m_dwLastComboIndex != m_GraphicThingInstance.GetComboIndex())
        {
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_HWAYEOM))
            {
                __AttachEffect(EFFECT_FLAME_ATTACK);
            }
           
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_GWIGEOM))
            {
                __AttachEffect(EFFECT_ELECTRIC_HIT);
            }
        }
    }

    m_dwLastComboIndex = dwcurComboIndex;
}

Bu düzenleme ile sorun olmaması lazım, denemedim ama muhtemelen çözmeli.



Bir yeri daha atlamışım bir de ilk effect fonksiyonunun sonunda büyülü keskinlik efektini aktif etmiyor, onu eklemek lazım en alta, şu bölümün büyülü keskinlik versiyonu;

C++:
Genişlet Daralt Kopyala
__Warrior_SetGeomgyeongAffect(isVisible);
 
C++:
Genişlet Daralt Kopyala
void CInstanceBase::__ComboProcess()
{
    DWORD dwcurComboIndex = m_GraphicThingInstance.GetComboIndex();

    if (0 != dwcurComboIndex)
    {
        if (m_dwLastComboIndex != m_GraphicThingInstance.GetComboIndex())
        {
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_HWAYEOM))
            {
                __AttachEffect(EFFECT_FLAME_ATTACK);
            }
          
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_GWIGEOM))
            {
                __AttachEffect(EFFECT_ELECTRIC_HIT);
            }
        }
    }

    m_dwLastComboIndex = dwcurComboIndex;
}

Bu düzenleme ile sorun olmaması lazım, denemedim ama muhtemelen çözmeli.



Bir yeri daha atlamışım bir de ilk effect fonksiyonunun sonunda büyülü keskinlik efektini aktif etmiyor, onu eklemek lazım en alta, şu bölümün büyülü keskinlik versiyonu;

C++:
Genişlet Daralt Kopyala
__Warrior_SetGeomgyeongAffect(isVisible);
Ben de orada warrior görünce Sura kodu yok zannettim, eve geçince konuya güncelleme yaparım, sağ ol
 
Metin2 çok eski videolarından hatırlıyorum bu efekti, belki zehirlenmiş mobların tanınması, 2005 2006 yıllarının pclerinde çok moblu alanlarda kasma yaratabileceği düşüncesiyle vazgeçmiş olabilirler.
 
1 sunucuda görmüştüm aynı olayı extra olarak zehirleme buzlanma vs eklemişlerdi baya hoş görünüyor. Önce @Kaiser e bu efektin ortaya çıkardığı için, sonra @Kaptan Yosun a kodlarla uğraşıp açmayı gösterdiği için çok teşekkürler.
 
C++:
Genişlet Daralt Kopyala
void CInstanceBase::__ComboProcess()
{
    DWORD dwcurComboIndex = m_GraphicThingInstance.GetComboIndex();

    if (0 != dwcurComboIndex)
    {
        if (m_dwLastComboIndex != m_GraphicThingInstance.GetComboIndex())
        {
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_HWAYEOM))
            {
                __AttachEffect(EFFECT_FLAME_ATTACK);
            }
        
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_GWIGEOM))
            {
                __AttachEffect(EFFECT_ELECTRIC_HIT);
            }
        }
    }

    m_dwLastComboIndex = dwcurComboIndex;
}

Bu düzenleme ile sorun olmaması lazım, denemedim ama muhtemelen çözmeli.



Bir yeri daha atlamışım bir de ilk effect fonksiyonunun sonunda büyülü keskinlik efektini aktif etmiyor, onu eklemek lazım en alta, şu bölümün büyülü keskinlik versiyonu;

C++:
Genişlet Daralt Kopyala
__Warrior_SetGeomgyeongAffect(isVisible);
EFFECT_ELECTRIC_HIT yapınca suranın kılıcını takip etmiyor da, gövdesinde elektrik çıkıyor. Sanki sura elektrik hasarı yemiş gibi. EFFECT_ELECTRIC_ATTACK olması lazım. bir de suranın büyülü keskinlik affectini gösteren kodunu bulamadım hala. sanki yok gibi.
Sadece bunlar var

C++:
Genişlet Daralt Kopyala
        void __Warrior_SetGeomgyeongAffect (bool isVisible);
        void __Assassin_SetEunhyeongAffect (bool isVisible);
        void __SetReviveInvisibilityAffect (bool isVisible);
 
Son düzenleme:
EFFECT_ELECTRIC_HIT yapınca suranın kılıcını takip etmiyor da, gövdesinde elektrik çıkıyor. Sanki sura elektrik hasarı yemiş gibi. EFFECT_ELECTRIC_ATTACK olması lazım. bir de suranın büyülü keskinlik affectini gösteren kodunu bulamadım hala. sanki yok gibi.
Sadece bunlar var

C++:
Genişlet Daralt Kopyala
        void __Warrior_SetGeomgyeongAffect (bool isVisible);
        void __Assassin_SetEunhyeongAffect (bool isVisible);
        void __SetReviveInvisibilityAffect (bool isVisible);
C++:
Genişlet Daralt Kopyala
void CInstanceBase::__ComboProcess()
{
    DWORD dwcurComboIndex = m_GraphicThingInstance.GetComboIndex();

    if (0 != dwcurComboIndex)
    {
        if (m_dwLastComboIndex != m_GraphicThingInstance.GetComboIndex())
        {
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_HWAYEOM))
            {
                __AttachEffect(EFFECT_FLAME_ATTACK);
            }
          
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_GWIGEOM))
            {
                __AttachEffect(EFFECT_ELECTRIC_ATTACK);
            }
        }
    }

    m_dwLastComboIndex = dwcurComboIndex;
}

O zaman kodun doğru hali bu, bu kısmı hallettiğimizi varsayıyorum, diğerine bakalım. Şimdi burada Hava kılıcı için senin kodun sonuna ekleyebileceğin ekstra bir fonksiyon var, çünkü bunu ekstra bir fonksiyon ile ele almaları gerekmiş, muhtemelen efekti bu becerilere özel olarak yeniden konumlandırmak veya şekillendirmek adına, fakat oyunda aktif ettiğinizde üzerinizde bir efekt aktif eden bir sürü beceri var, bunlar nasıl tanımlanıyor ? O da kodun sonundaki şu bölümde mevcut;

C++:
Genişlet Daralt Kopyala
    if (isVisible)
    {
        if (!m_adwCRCAffectEffect[eAffect])
        {
            m_adwCRCAffectEffect[eAffect] = __AttachEffect (EFFECT_AFFECT + eAffect);
        }
    }
    else
    {
        if (m_adwCRCAffectEffect[eAffect])
        {
            __DetachEffect (m_adwCRCAffectEffect[eAffect]);
            m_adwCRCAffectEffect[eAffect] = 0;
        }
    }

Tamamen varsayımsal konuşuyorum, fonksiyonun sonunda tanımlanan Büyülü keskinlik fonksiyonun başında bir case olarak tanımlanan efektten sonra tetiklendiği için ve biz case bloğunu aktif ettiğimizde fonksiyon bu son kısma kadar devam etmediği için bu tarz bir sorun yaşanmış olabilir, bunu çözmek için Hava kılıcına yapıldığı gibi ekstra bir fonksiyon oluşturulabilir veya kodun sonundaki kısım, büyülü keskinliğin case kısmı sonunda zorla tetiklenebilir, tercihi sana kalmış. Tabi sorun bundan kaynaklıysa, ilk aklıma gelen bu olduğu için bunun üstünden konuştum, denemek lazım.
 
C++:
Genişlet Daralt Kopyala
void CInstanceBase::__ComboProcess()
{
    DWORD dwcurComboIndex = m_GraphicThingInstance.GetComboIndex();

    if (0 != dwcurComboIndex)
    {
        if (m_dwLastComboIndex != m_GraphicThingInstance.GetComboIndex())
        {
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_HWAYEOM))
            {
                __AttachEffect(EFFECT_FLAME_ATTACK);
            }
          
            if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_GWIGEOM))
            {
                __AttachEffect(EFFECT_ELECTRIC_ATTACK);
            }
        }
    }

    m_dwLastComboIndex = dwcurComboIndex;
}

O zaman kodun doğru hali bu, bu kısmı hallettiğimizi varsayıyorum, diğerine bakalım. Şimdi burada Hava kılıcı için senin kodun sonuna ekleyebileceğin ekstra bir fonksiyon var, çünkü bunu ekstra bir fonksiyon ile ele almaları gerekmiş, muhtemelen efekti bu becerilere özel olarak yeniden konumlandırmak veya şekillendirmek adına, fakat oyunda aktif ettiğinizde üzerinizde bir efekt aktif eden bir sürü beceri var, bunlar nasıl tanımlanıyor ? O da kodun sonundaki şu bölümde mevcut;

C++:
Genişlet Daralt Kopyala
    if (isVisible)
    {
        if (!m_adwCRCAffectEffect[eAffect])
        {
            m_adwCRCAffectEffect[eAffect] = __AttachEffect (EFFECT_AFFECT + eAffect);
        }
    }
    else
    {
        if (m_adwCRCAffectEffect[eAffect])
        {
            __DetachEffect (m_adwCRCAffectEffect[eAffect]);
            m_adwCRCAffectEffect[eAffect] = 0;
        }
    }

Tamamen varsayımsal konuşuyorum, fonksiyonun sonunda tanımlanan Büyülü keskinlik fonksiyonun başında bir case olarak tanımlanan efektten sonra tetiklendiği için ve biz case bloğunu aktif ettiğimizde fonksiyon bu son kısma kadar devam etmediği için bu tarz bir sorun yaşanmış olabilir, bunu çözmek için Hava kılıcına yapıldığı gibi ekstra bir fonksiyon oluşturulabilir veya kodun sonundaki kısım, büyülü keskinliğin case kısmı sonunda zorla tetiklenebilir, tercihi sana kalmış. Tabi sorun bundan kaynaklıysa, ilk aklıma gelen bu olduğu için bunun üstünden konuştum, denemek lazım.
Tamamdır, yapay zekanın yardımlarıyla hallettim. Senin gibi geliştirme notları da alıyorum artık :D


C++:
Genişlet Daralt Kopyala
        case AFFECT_ENCHANTEDBLADE: // [YMIR Dev Note] It will be changed to an electric attribute attack.
            if (isVisible)
            {
                m_GraphicThingInstance.SetBattleHitEffect(ms_adwCRCAffectEffect[EFFECT_ELECTRIC_HIT]);
                m_GraphicThingInstance.SetBattleAttachEffect(ms_adwCRCAffectEffect[EFFECT_ELECTRIC_ATTACH]);

                // [KaptanYosun Dev Note] Attach the effect for ENCHANTEDBLADE
                m_adwCRCAffectEffect[AFFECT_ENCHANTEDBLADE] = __AttachEffect(EFFECT_AFFECT + AFFECT_ENCHANTEDBLADE);
            }
            else
            {
                // [KaptanYosun Dev Note] Detach the effect for ENCHANTEDBLADE
                __DetachEffect(m_adwCRCAffectEffect[AFFECT_ENCHANTEDBLADE]);
                m_adwCRCAffectEffect[AFFECT_ENCHANTEDBLADE] = 0;

                m_GraphicThingInstance.SetBattleHitEffect(ms_adwCRCAffectEffect[EFFECT_HIT]);
                m_GraphicThingInstance.SetBattleAttachEffect(0);
            }
            return;
            break;
 
Tamamdır, yapay zekanın yardımlarıyla hallettim. Senin gibi geliştirme notları da alıyorum artık :D


C++:
Genişlet Daralt Kopyala
        case AFFECT_ENCHANTEDBLADE: // [YMIR Dev Note] It will be changed to an electric attribute attack.
            if (isVisible)
            {
                m_GraphicThingInstance.SetBattleHitEffect(ms_adwCRCAffectEffect[EFFECT_ELECTRIC_HIT]);
                m_GraphicThingInstance.SetBattleAttachEffect(ms_adwCRCAffectEffect[EFFECT_ELECTRIC_ATTACH]);

                // [KaptanYosun Dev Note] Attach the effect for ENCHANTEDBLADE
                m_adwCRCAffectEffect[AFFECT_ENCHANTEDBLADE] = __AttachEffect(EFFECT_AFFECT + AFFECT_ENCHANTEDBLADE);
            }
            else
            {
                // [KaptanYosun Dev Note] Detach the effect for ENCHANTEDBLADE
                __DetachEffect(m_adwCRCAffectEffect[AFFECT_ENCHANTEDBLADE]);
                m_adwCRCAffectEffect[AFFECT_ENCHANTEDBLADE] = 0;

                m_GraphicThingInstance.SetBattleHitEffect(ms_adwCRCAffectEffect[EFFECT_HIT]);
                m_GraphicThingInstance.SetBattleAttachEffect(0);
            }
            return;
            break;
Eline sağlık, yalnız skill deaktif olduğunda gerektiği gibi efekt yok oluyor mu onun bir testini yaparsın.
 
Üst