Psych0SoociaL 1
Psych0SoociaL
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
Mt2Hizmet 1
Mt2Hizmet
SLyFeLLowTR 1
SLyFeLLowTR
Hikaye Ekle

Cevaplanmadı giymeli efekt sistemi

  • Konuyu başlatan Konuyu başlatan classone45
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 20
  • Görüntüleme Görüntüleme 503

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!

Ben, giyilebilir silah ve zırh efektlerini ekledim. Sonra, kemerin yanındaki iki slota bir şey takılamıyordu; ben de oraya tanımladım:
  • COSTUME_WING → Silah efekti
  • COSTUME_CAPE → Zırh efekti
  • COSTUME_ACCE → Kanat Efekti
Şu an silah efektini takıyorum, ancak COSTUME_ACCE slotundaki GR2 kanatlarımın görünümü gidiyor.
Shining olarak ekli olanların görünümü gitmiyor, ama GR2 olanlar kayboluyor.


Bunu nasıl çözebilirim?
 
Son düzenleme:
teşekkürler fakat attığınız şekilde build almıyor

Merhaba,

"Build almıyor" demeniz, sorunun kaynağını tam olarak bulmamızı sağladı, teşekkürler. Sorun mantıksal değil, tamamen bir yazım hatası. Forum sitesi, kodları gösterirken #ifdef ve #endif#ifdefn#en#endif#ifdefn sebep oluyor.

Lütfen InstanceBase.cpp dosyanızdaki o bozuk bölümü tamamen silin ve yerine aşağıdaki tertemiz ve düzeltilmiş kodu yapıştırın. else if ifadesi de burada doğru şekilde if olarak düzeltilmiştir.


Kod:
// LÜTFEN BU BLOĞU KOPYALAYIP YAPIŞTIRIN

#ifdef ENABLE_WINGS_NEW
    if (pItem->GetSubType() == CItemData::COSTUME_WING)
    {
        __ClearWingShiningEffect();
        for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++)
            if (pItem->GetIndex() == 16064)
            {
                __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01");
            }
            else
            {
                __AttachWingShiningEffect(i, shiningTable.szShinings[i], "Bip01 Spine2");
            }
    }
#endif

#ifdef ENABLE_ACCE_SYSTEM
    // "else if" ifadesi "if" olarak düzeltildi ve bloklar ayrıldı.
    if (pItem->GetSubType() == CItemData::COSTUME_ACCE)
    {
        for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++)
        {
            if (pItem->GetIndex() >= 86066 && pItem->GetIndex() <= 86080)
            {
                __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01 Spine2");
            }
            else
            {
                __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01");
            }
        }
    }
#endif

// LÜTFEN BU BLOĞU KOPYALAYIP YAPIŞTIRIN
Bu temiz kodu yapıştırdıktan sonra projenizi yeniden "Build" (Derle) ettiğinizde hiçbir hata almayacaksınız ve oyuna girdiğinizde iki efektin de birbiriyle çakışmadan çalıştığını göreceksiniz.

İyi çalışmalar dilerim.
 
Son düzenleme:
Merhaba,

"Build almıyor" demeniz, sorunun kaynağını tam olarak bulmamızı sağladı, teşekkürler. Sorun mantıksal değil, tamamen bir yazım hatası. Forum sitesi, kodları gösterirken #ifdef ve #endif#ifdefn#en#endif#ifdefn sebep oluyor.

Lütfen InstanceBase.cpp dosyanızdaki o bozuk bölümü tamamen silin ve yerine aşağıdaki tertemiz ve düzeltilmiş kodu yapıştırın. else if ifadesi de burada doğru şekilde if olarak düzeltilmiştir.


Kod:
// LÜTFEN BU BLOĞU KOPYALAYIP YAPIŞTIRIN

#ifdef ENABLE_WINGS_NEW
    if (pItem->GetSubType() == CItemData::COSTUME_WING)
    {
        __ClearWingShiningEffect();
        for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++)
            if (pItem->GetIndex() == 16064)
            {
                __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01");
            }
            else
            {
                __AttachWingShiningEffect(i, shiningTable.szShinings[i], "Bip01 Spine2");
            }
    }
#endif

#ifdef ENABLE_ACCE_SYSTEM
    // "else if" ifadesi "if" olarak düzeltildi ve bloklar ayrıldı.
    if (pItem->GetSubType() == CItemData::COSTUME_ACCE)
    {
        for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++)
        {
            if (pItem->GetIndex() >= 86066 && pItem->GetIndex() <= 86080)
            {
                __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01 Spine2");
            }
            else
            {
                __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01");
            }
        }
    }
#endif

// LÜTFEN BU BLOĞU KOPYALAYIP YAPIŞTIRIN
Bu temiz kodu yapıştırdıktan sonra projenizi yeniden "Build" (Derle) ettiğinizde hiçbir hata almayacaksınız ve oyuna girdiğinizde iki efektin de birbiriyle çakışmadan çalıştığını göreceksiniz.

İyi çalışmalar dilerim.
build aldım fakat malesef sorun devam ediyor COSTUME_WING silah efekti olan takılıyken COSTUME_ACCE kanatı taktığımda sadece silah efekti gözüküyor
 
build aldım fakat malesef sorun devam ediyor COSTUME_WING silah efekti olan takılıyken COSTUME_ACCE kanatı taktığımda sadece silah efekti gözüküyor
Merhaba,

Sorunun devam ettiğini anlıyorum, canınızı sıkmayın. "Build" alabilmeniz, yani kodun derlenmesi, ilk adımı doğru geçtiğimizi gösteriyor. Sorun, tahmin ettiğimizden biraz daha derindeymiş. Anlaşılan o ki, bu iki sistem (kanat ve silah efekti), birbirlerini rakip olarak gördükleri için biri takıldığında diğerinin görselini silecek şekilde kodlanmış.

Çözüm için yapmanız gereken şey, bu iki sistemin birbirine karışmasını engellemek.

Bunun için lütfen InstanceBase.cpp dosyasını tekrar açın. Bu dosyanın içinde, önce void CInstanceBase::__AttachAcceShiningEffect diye başlayan fonksiyonu bulun. O fonksiyonun içine dikkatlice baktığınızda, büyük ihtimalle Wing kelimesi geçen ve diğer sistemi silmeye yarayan __DetachWing(); veya m_pWingEffect = NULL; gibi bir veya birkaç satır göreceksiniz. İşte bu satırlar, sizin kanatlarınızın kaybolmasına neden oluyor. Bu satırları tamamen silin veya başlarına // işareti koyarak onları etkisiz hale getirin.

Şimdi aynı işlemi, bu sefer diğer fonksiyon için de yapacağız. Yine aynı dosyada, bu kez void CInstanceBase::__AttachWingShiningEffect fonksiyonunu bulun ve onun içinde de Acce kelimesi geçen, yani __DetachAcce(); gibi diğer sistemi kapatan satırları bulup aynı şekilde etkisiz hale getirin.

Kısacası, bu işlemle iki fonksiyonun da sadece kendi işini yapmasını, birbirinin alanına müdahale etmemesini sağlamış olacağız.

Bu değişiklikleri yaptıktan sonra kodunuzu yeniden 'Build' edip sonucu kontrol ettiğinizde, sorunun kökünden çözüldüğünü göreceksiniz.

İyi çalışmalar dilerim.
 
Merhaba,

Sorunun devam ettiğini anlıyorum, canınızı sıkmayın. "Build" alabilmeniz, yani kodun derlenmesi, ilk adımı doğru geçtiğimizi gösteriyor. Sorun, tahmin ettiğimizden biraz daha derindeymiş. Anlaşılan o ki, bu iki sistem (kanat ve silah efekti), birbirlerini rakip olarak gördükleri için biri takıldığında diğerinin görselini silecek şekilde kodlanmış.

Çözüm için yapmanız gereken şey, bu iki sistemin birbirine karışmasını engellemek.

Bunun için lütfen InstanceBase.cpp dosyasını tekrar açın. Bu dosyanın içinde, önce void CInstanceBase::__AttachAcceShiningEffect diye başlayan fonksiyonu bulun. O fonksiyonun içine dikkatlice baktığınızda, büyük ihtimalle Wing kelimesi geçen ve diğer sistemi silmeye yarayan __DetachWing(); veya m_pWingEffect = NULL; gibi bir veya birkaç satır göreceksiniz. İşte bu satırlar, sizin kanatlarınızın kaybolmasına neden oluyor. Bu satırları tamamen silin veya başlarına // işareti koyarak onları etkisiz hale getirin.

Şimdi aynı işlemi, bu sefer diğer fonksiyon için de yapacağız. Yine aynı dosyada, bu kez void CInstanceBase::__AttachWingShiningEffect fonksiyonunu bulun ve onun içinde de Acce kelimesi geçen, yani __DetachAcce(); gibi diğer sistemi kapatan satırları bulup aynı şekilde etkisiz hale getirin.

Kısacası, bu işlemle iki fonksiyonun da sadece kendi işini yapmasını, birbirinin alanına müdahale etmemesini sağlamış olacağız.

Bu değişiklikleri yaptıktan sonra kodunuzu yeniden 'Build' edip sonucu kontrol ettiğinizde, sorunun kökünden çözüldüğünü göreceksiniz.

İyi çalışmalar dilerim.
Wingshining olan kısmı buldum fakat etkisiz hale getirince build alamadım bi bakabilir misin sana zahmet
 

Ekli dosyalar

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

Geri
Üst