Çözüldü Giyilebilir effekt sistemi render target uyarlama?

  • Konuyu açan Konuyu açan password
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 172
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

password

Üye
Üye
Mesaj
40
Çözümler
3
Beğeni
4
Puan
49
Ticaret Puanı
0
merhaba dostlar giyilebilir effekt sistemi kurdum effekt verdiğim zırhlar gözüküyor itemin önizlemesindede göstermek istiyorum üzerinde zırh var ise önizlemeye bastığında göstermiyor
yardımcı olabilecek varmı ücretli veya ücretsiz

instancebase.h:
Genişlet Daralt Kopyala
#ifdef ENABLE_EFFECT_SYSTEM
        void                    SetSpecialEffect(DWORD dwArmorEffect = 0, DWORD dwWeaponEffectRight = 0, DWORD dwWeaponEffectLeft = 0);
        void                    ClearSpecialEffect(bool isWeapon = false);
        void                    SpecialEffectCheck(bool isWeapon = false);
#endif

rendertarget.cpp:
Genişlet Daralt Kopyala
void CRenderTarget::SetSpecialEffect(DWORD vnum)
{
    if (!m_visible || !m_pModel)
        return;

    m_pModel->ClearSpecialEffect(vnum);
}
 
Çözüm
dosya boyutları büyük olduğu için link bırakıyorum
kullandığım effekt sistemi

render target




Userinterface/InstanceBase.h aç

Arat:
C++:
Genişlet Daralt Kopyala
void    SetSpecialEffect(DWORD dwArmorEffect = 0, DWORD dwWeaponEffectRight = 0, DWORD dwWeaponEffectLeft = 0);
Altına Ekle:
C++:
Genişlet Daralt Kopyala
void    AddWeaponEffectLeft(DWORD dwWeaponEffectLeft);
void    AddWeaponEffectRight(DWORD dwWeaponEffectRight);
void    AddArmorEffect(DWORD dwArmorEffect);

Userinterface/InstanceBase.cpp aç


Arat:
C++:
Genişlet Daralt Kopyala
void CInstanceBase::SetSpecialEffect(DWORD dwArmorEffect, DWORD dwWeaponEffectRight, DWORD dwWeaponEffectLeft)
{
    if (!IsPC())
        return...
merhaba dostlar giyilebilir effekt sistemi kurdum effekt verdiğim zırhlar gözüküyor itemin önizlemesindede göstermek istiyorum üzerinde zırh var ise önizlemeye bastığında göstermiyor
yardımcı olabilecek varmı ücretli veya ücretsiz

instancebase.h:
Genişlet Daralt Kopyala
#ifdef ENABLE_EFFECT_SYSTEM
        void                    SetSpecialEffect(DWORD dwArmorEffect = 0, DWORD dwWeaponEffectRight = 0, DWORD dwWeaponEffectLeft = 0);
        void                    ClearSpecialEffect(bool isWeapon = false);
        void                    SpecialEffectCheck(bool isWeapon = false);
#endif

rendertarget.cpp:
Genişlet Daralt Kopyala
void CRenderTarget::SetSpecialEffect(DWORD vnum)
{
    if (!m_visible || !m_pModel)
        return;

    m_pModel->ClearSpecialEffect(vnum);
}

Kullandığın tender Target ve ekledigin efekt konusunu iletir misin
 
dosya boyutları büyük olduğu için link bırakıyorum
kullandığım effekt sistemi

render target




Userinterface/InstanceBase.h aç

Arat:
C++:
Genişlet Daralt Kopyala
void    SetSpecialEffect(DWORD dwArmorEffect = 0, DWORD dwWeaponEffectRight = 0, DWORD dwWeaponEffectLeft = 0);
Altına Ekle:
C++:
Genişlet Daralt Kopyala
void    AddWeaponEffectLeft(DWORD dwWeaponEffectLeft);
void    AddWeaponEffectRight(DWORD dwWeaponEffectRight);
void    AddArmorEffect(DWORD dwArmorEffect);

Userinterface/InstanceBase.cpp aç


Arat:
C++:
Genişlet Daralt Kopyala
void CInstanceBase::SetSpecialEffect(DWORD dwArmorEffect, DWORD dwWeaponEffectRight, DWORD dwWeaponEffectLeft)
{
    if (!IsPC())
        return;
   
    m_awPart[CRaceData::BODY_EFFECT] = dwArmorEffect;
    SpecialEffectCheck();
   
    m_awPart[CRaceData::WEAPON_RIGHT_EFFECT] = dwWeaponEffectRight;
    m_awPart[CRaceData::WEAPON_LEFT_EFFECT] = dwWeaponEffectLeft;
    SpecialEffectCheck(true);
}

Altına Ekle:
C++:
Genişlet Daralt Kopyala
void CInstanceBase::AddWeaponEffectLeft(DWORD dwWeaponEffectLeft)
{

    m_awPart[CRaceData::WEAPON_LEFT_EFFECT] = dwWeaponEffectLeft;
    SpecialEffectCheck(true);
}

void CInstanceBase::AddWeaponEffectRight(DWORD dwWeaponEffectRight)
{

   
    m_awPart[CRaceData::WEAPON_RIGHT_EFFECT] = dwWeaponEffectRight;

    SpecialEffectCheck(true);
}

void CInstanceBase::AddArmorEffect(DWORD dwArmorEffect)
{

   
    m_awPart[CRaceData::BODY_EFFECT] = dwArmorEffect;
    SpecialEffectCheck();
   

}
EterLib/CRenderTarget.h aç

Arat:
C++:
Genişlet Daralt Kopyala
        void SetArmor(DWORD vnum);
Altına Ekle:
C++:
Genişlet Daralt Kopyala
        void SetWeaponLeftEffect(DWORD effect);
        void SetWeaponRightEffect(DWORD effect);
        void SetArmorEffect(DWORD effect);

EterLib/CRenderTarget.cpp aç

Arat:
C++:
Genişlet Daralt Kopyala
void CRenderTarget::SetWeapon(DWORD vnum)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->ChangeWeapon(vnum);
   
    auto& camera_manager = CCameraManager::instance();
    camera_manager.SetCurrentCamera(CCameraManager::SHOPDECO_CAMERA);
    camera_manager.GetCurrentCamera()->SetTargetHeight(110.0);
    camera_manager.ResetToPreviousCamera();
}
Altına Ekle:
C++:
Genişlet Daralt Kopyala
void CRenderTarget::SetWeaponRightEffect(DWORD effect)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->AddWeaponEffectRight(effect);
   
    auto& camera_manager = CCameraManager::instance();
    camera_manager.SetCurrentCamera(CCameraManager::SHOPDECO_CAMERA);
    camera_manager.GetCurrentCamera()->SetTargetHeight(110.0);
    camera_manager.ResetToPreviousCamera();
}

void CRenderTarget::SetWeaponLeftEffect(DWORD effect)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->AddWeaponEffectLeft(effect);
   
    auto& camera_manager = CCameraManager::instance();
    camera_manager.SetCurrentCamera(CCameraManager::SHOPDECO_CAMERA);
    camera_manager.GetCurrentCamera()->SetTargetHeight(110.0);
    camera_manager.ResetToPreviousCamera();
}

void CRenderTarget::SetArmorEffect(DWORD effect)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->AddArmorEffect(effect);
}

Userinterface/CPythonRenderTargetModule.cpp aç

Arat:
C++:
Genişlet Daralt Kopyala
PyObject* renderTargetSetArmor(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();

    int modelIndex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &modelIndex))
        return Py_BadArgument();
   
   

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetArmor(modelIndex);

    return Py_BuildNone();

}
Altına Ekle:
C++:
Genişlet Daralt Kopyala
PyObject* renderTargetSetArmorEffect(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();
   
    int efektindex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &efektindex))
        return Py_BadArgument();

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetArmorEffect(efektindex);

    return Py_BuildNone();

}

PyObject* renderTargetSetWeaponLeftEffect(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();
   
    int efektindex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &efektindex))
        return Py_BadArgument();

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetWeaponLeftEffect(efektindex);

    return Py_BuildNone();

}

PyObject* renderTargetSetWeaponRightEffect(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();
   
    int efektindex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &efektindex))
        return Py_BadArgument();

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetWeaponRightEffect(efektindex);

    return Py_BuildNone();

}
Tekrar ara:
C++:
Genişlet Daralt Kopyala
{ "SelectModel", renderTargetSelectModel, METH_VARARGS },
Altına Ekle:
C++:
Genişlet Daralt Kopyala
{ "SetArmorEffect", renderTargetSetArmorEffect, METH_VARARGS },
{ "SetWeaponRightEffect", renderTargetSetWeaponRightEffect, METH_VARARGS },
{ "SetWeaponLeftEffect", renderTargetSetWeaponLeftEffect, METH_VARARGS },

Kullanım şekli

renderTarget.SetArmorEffect(index,efektkodu)
renderTarget.SetWeaponRightEffect(index,efektkodu)
renderTarget.SetWeaponLeftEffect(index,efektkodu)
 
Çözüm
Userinterface/InstanceBase.h aç

Arat:
C++:
Genişlet Daralt Kopyala
void    SetSpecialEffect(DWORD dwArmorEffect = 0, DWORD dwWeaponEffectRight = 0, DWORD dwWeaponEffectLeft = 0);
Altına Ekle:
C++:
Genişlet Daralt Kopyala
void    AddWeaponEffectLeft(DWORD dwWeaponEffectLeft);
void    AddWeaponEffectRight(DWORD dwWeaponEffectRight);
void    AddArmorEffect(DWORD dwArmorEffect);

Userinterface/InstanceBase.cpp aç


Arat:
C++:
Genişlet Daralt Kopyala
void CInstanceBase::SetSpecialEffect(DWORD dwArmorEffect, DWORD dwWeaponEffectRight, DWORD dwWeaponEffectLeft)
{
    if (!IsPC())
        return;
  
    m_awPart[CRaceData::BODY_EFFECT] = dwArmorEffect;
    SpecialEffectCheck();
  
    m_awPart[CRaceData::WEAPON_RIGHT_EFFECT] = dwWeaponEffectRight;
    m_awPart[CRaceData::WEAPON_LEFT_EFFECT] = dwWeaponEffectLeft;
    SpecialEffectCheck(true);
}

Altına Ekle:
C++:
Genişlet Daralt Kopyala
void CInstanceBase::AddWeaponEffectLeft(DWORD dwWeaponEffectLeft)
{

    m_awPart[CRaceData::WEAPON_LEFT_EFFECT] = dwWeaponEffectLeft;
    SpecialEffectCheck(true);
}

void CInstanceBase::AddWeaponEffectRight(DWORD dwWeaponEffectRight)
{

  
    m_awPart[CRaceData::WEAPON_RIGHT_EFFECT] = dwWeaponEffectRight;

    SpecialEffectCheck(true);
}

void CInstanceBase::AddArmorEffect(DWORD dwArmorEffect)
{

  
    m_awPart[CRaceData::BODY_EFFECT] = dwArmorEffect;
    SpecialEffectCheck();
  

}
EterLib/CRenderTarget.h aç

Arat:
C++:
Genişlet Daralt Kopyala
        void SetArmor(DWORD vnum);
Altına Ekle:
C++:
Genişlet Daralt Kopyala
        void SetWeaponLeftEffect(DWORD effect);
        void SetWeaponRightEffect(DWORD effect);
        void SetArmorEffect(DWORD effect);

EterLib/CRenderTarget.cpp aç

Arat:
C++:
Genişlet Daralt Kopyala
void CRenderTarget::SetWeapon(DWORD vnum)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->ChangeWeapon(vnum);
  
    auto& camera_manager = CCameraManager::instance();
    camera_manager.SetCurrentCamera(CCameraManager::SHOPDECO_CAMERA);
    camera_manager.GetCurrentCamera()->SetTargetHeight(110.0);
    camera_manager.ResetToPreviousCamera();
}
Altına Ekle:
C++:
Genişlet Daralt Kopyala
void CRenderTarget::SetWeaponRightEffect(DWORD effect)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->AddWeaponEffectRight(effect);
  
    auto& camera_manager = CCameraManager::instance();
    camera_manager.SetCurrentCamera(CCameraManager::SHOPDECO_CAMERA);
    camera_manager.GetCurrentCamera()->SetTargetHeight(110.0);
    camera_manager.ResetToPreviousCamera();
}

void CRenderTarget::SetWeaponLeftEffect(DWORD effect)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->AddWeaponEffectLeft(effect);
  
    auto& camera_manager = CCameraManager::instance();
    camera_manager.SetCurrentCamera(CCameraManager::SHOPDECO_CAMERA);
    camera_manager.GetCurrentCamera()->SetTargetHeight(110.0);
    camera_manager.ResetToPreviousCamera();
}

void CRenderTarget::SetArmorEffect(DWORD effect)
{
    if (!m_visible || !m_pModel)
        return;
    m_pModel->AddArmorEffect(effect);
}

Userinterface/CPythonRenderTargetModule.cpp aç

Arat:
C++:
Genişlet Daralt Kopyala
PyObject* renderTargetSetArmor(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();

    int modelIndex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &modelIndex))
        return Py_BadArgument();
  
  

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetArmor(modelIndex);

    return Py_BuildNone();

}
Altına Ekle:
C++:
Genişlet Daralt Kopyala
PyObject* renderTargetSetArmorEffect(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();
  
    int efektindex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &efektindex))
        return Py_BadArgument();

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetArmorEffect(efektindex);

    return Py_BuildNone();

}

PyObject* renderTargetSetWeaponLeftEffect(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();
  
    int efektindex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &efektindex))
        return Py_BadArgument();

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetWeaponLeftEffect(efektindex);

    return Py_BuildNone();

}

PyObject* renderTargetSetWeaponRightEffect(PyObject* poSelf, PyObject* poArgs)
{
    BYTE index = 0;
    if (!PyTuple_GetByte(poArgs, 0, &index))
        return Py_BadArgument();
  
    int efektindex = 0;
    if (!PyTuple_GetInteger(poArgs, 1, &efektindex))
        return Py_BadArgument();

    CRenderTargetManager::Instance().GetRenderTarget(index)->SetWeaponRightEffect(efektindex);

    return Py_BuildNone();

}
Tekrar ara:
C++:
Genişlet Daralt Kopyala
{ "SelectModel", renderTargetSelectModel, METH_VARARGS },
Altına Ekle:
C++:
Genişlet Daralt Kopyala
{ "SetArmorEffect", renderTargetSetArmorEffect, METH_VARARGS },
{ "SetWeaponRightEffect", renderTargetSetWeaponRightEffect, METH_VARARGS },
{ "SetWeaponLeftEffect", renderTargetSetWeaponLeftEffect, METH_VARARGS },

Kullanım şekli

renderTarget.SetArmorEffect(index,efektkodu)
renderTarget.SetWeaponRightEffect(index,efektkodu)
renderTarget.SetWeaponLeftEffect(index,efektkodu)
çok teşşekürler sağolasın <3
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst