Yardım Kuşak Sistemi Efekt Hatası

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

dePayens

Üye
Üye
Mesaj
49
Çözümler
2
Beğeni
10
Puan
444
Ticaret Puanı
0
Öncelikle herkese iyi çalışmalar dilerim. Files'ıma Kuşak sistemi ekledim ancak bir problemim var.
Problem şu:
Oyunda Kuşaklarımın hiçbirinde problem yok. Bir tek Hakim Kuşağı Kişiye Özel'i giydiğimde damage efekti veriyor. Ve item adında kare bir kutucuk var. Ekte bırakıyorum:
hakim1.png

Diğer Görüntü:
resim_2024-04-07_180605797.png

Problem ne olabilir hangi dosyada olabilir yardımcı olabilir misiniz?
 
InstanceBase.cpp:
#ifdef ENABLE_ACCE_SYSTEM
void CInstanceBase::SetAcce(DWORD dwAcce)
{
    if (!IsPC())
        return;
    
    if (IsPoly())
        return;
    
    dwAcce += 85000;
    ClearAcceEffect();
    
    float fSpecular = 65.0f;

    if (dwAcce > 86000)
    {
        dwAcce -= 1000;
        fSpecular += 35;
        
        m_dwAcceEffect = EFFECT_REFINED + EFFECT_ACCE;
        __EffectContainer_AttachEffect(m_dwAcceEffect);
    }
    
    fSpecular /= 100.0f; // 100
    m_awPart[CRaceData::PART_ACCE] = dwAcce;
    
    CItemData * pItemData;
    if (!CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData))
        return;
    
    m_GraphicThingInstance.AttachAcce(pItemData, fSpecular);
#ifdef ENABLE_OBJ_SCALLING
    DWORD dwRace = GetRace(), dwPos = RaceToJob(dwRace), dwSex = RaceToSex(dwRace);
    dwPos += 1;
    if (dwSex == 0)
        dwPos += 5;
    
    float fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ;
    if (pItemData->GetItemScale(dwPos, fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ))
    {
        m_GraphicThingInstance.SetScale(fScaleX, fScaleY, fScaleZ, true);
        if (m_kHorse.IsMounting())
            fPositionZ += 10.0f;
        
        m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ);
    }
#endif
}

void CInstanceBase::ChangeAcce(DWORD dwAcce)
{
    if (!IsPC())
        return;
    
    SetAcce(dwAcce);
}

void CInstanceBase::ClearAcceEffect()
{
    if (!m_dwAcceEffect)
        return;
    
    __EffectContainer_DetachEffect(m_dwAcceEffect);
    m_dwAcceEffect = 0;
}
#endif
InstanceBase.cpp'deki Efekt ekleyen fonksiyonum bu.
m_dwAcceEffect = EFFECT_REFINED + EFFECT_ACCE; şu satırdan EFFECT_REFINED'i sildiğimde 0 yazdırma sorunu gidiyor ama bu sefer de havai fişek basılı gelip 4-5 saniye yanıp gidiyor. Sanırım bu satırdan kaynaklı
 
Böyle deneme yanılma ile bi yere varamazsın. Not defteri varyasyonu uygulamalarla sistem ekleme. Visual Studio gibi code inspect özelliği olan ide'ler kullan. Mouse imlecini ilgili satıra getirdiğinde sana index değerini açıklayacak.
 
Böyle deneme yanılma ile bi yere varamazsın. Not defteri varyasyonu uygulamalarla sistem ekleme. Visual Studio gibi code inspect özelliği olan ide'ler kullan. Mouse imlecini ilgili satıra getirdiğinde sana index değerini açıklayacak.
Dediğiniz gibi Studio üzerinde düzenleme yaptım. header dosyamda before yerine after yaptığım için efekt'in numara karışıyormuş. Çözümünüz için çok teşekkür ederim.
 
Geri
Üst