Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu [C++] Specular Fix

olkan41

Müzik Prodüktörü ve Ses Tasarımcısı
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
TM Üye
Katılım
4 Ağu 2010
Konular
356
Mesajlar
4,122
Çözüm
74
Online süresi
3mo 14d
Reaksiyon Skoru
2,235
Altın Konu
82
Başarım Puanı
292
Yaş
32
MmoLira
3,067
DevLira
138
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Turkmmo Yönetiminde Terfi Alan Arkadaşlarımı Tebrik Ederim. Bu Güzel Fix Onlar İçin Gelsin. <3

Öncelikle bu düzeltmeyi eklemeden önce sorunun sizde var olup olmadığını kontrol ediniz. Ben kendi dosyalarımda denedim bende vardı ve bende düzeltmeyi ekledim.

Tanımlamalar tarafımca yapılmıştır.

Client Source/EterGrnLib\Material.cpp Açınız ve Aratınız:

Kod:
float CGrannyMaterial::__GetSpecularPower() const

Değiştirin:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
float CGrannyMaterial::GetSpecularPower() const
{
    return m_fSpecularPower;
}
#else
float CGrannyMaterial::__GetSpecularPower() const
{
    return m_fSpecularPower;
}
#endif

Tekrar Aratınız:

Kod:
    STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DXCOLOR(g_fSpecularColor.r, g_fSpecularColor.g, g_fSpecularColor.b, __GetSpecularPower()));

Değiştirin:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
    STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DXCOLOR(g_fSpecularColor.r, g_fSpecularColor.g, g_fSpecularColor.b, GetSpecularPower()));
#else
    STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DXCOLOR(g_fSpecularColor.r, g_fSpecularColor.g, g_fSpecularColor.b, __GetSpecularPower()));
#endif

Client Source\Client\EterGrnLib\Material.h Açınız ve Aratınız:

Kod:
LPDIRECT3DTEXTURE8        GetD3DTexture(int iStage) const;

Altına Ekleyiniz:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
        float                    GetSpecularPower() const;
        bool                    IsSpecularEnabled() const { return m_bSpecularEnable; }
        BYTE                    GetSphereMapIndex() const { return m_bSphereMapIndex; }
#endif

Tekrar Aratınız:

Kod:
float                    __GetSpecularPower() const;

Değiştiriniz:

Kod:
#if !defined(ENABLE_SPECULAR_FIX)
        float                    __GetSpecularPower() const;        //Warning/Uyarı : if !defined - EN: Won't be deleted TR: Silinmeyecek
#endif

Client Source\Client\EterGrnLib\ModelInstance.cpp Açınız ve Aratınız:

Kod:
void CGrannyModelInstance::SetMaterialData(const char* c_szImageName, const SMaterialData& c_rkMaterialData)
{
    m_kMtrlPal.SetMaterialData(c_szImageName, c_rkMaterialData);

Altına Ekleyiniz:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
    material_data_ = c_rkMaterialData;
#endif

Tekrar Aratınız:

Kod:
void CGrannyModelInstance::__Initialize()
{
    if (m_pModel)
    {
        m_pModel->Release();
    }

    m_pModel                     = NULL;
    mc_pParentInstance             = NULL;
    m_iParentBoneIndex             = 0;
    m_pgrnModelInstance             = NULL;
    m_pgrnWorldPoseReal             = NULL;
    m_ppkSkeletonInst             = NULL;
    m_meshMatrices                 = NULL;
    m_pgrnCtrl                     = NULL;
    m_pgrnAni                     = NULL;

Altına Ekleyiniz:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
    material_data_                 = {};
#endif

Client Source\Client\EterGrnLib\ModelInstance.h Açınız ve Aratınız:

Kod:
        CGrannyModelInstance** m_ppkSkeletonInst;

Altına Ekleyiniz:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
        SMaterialData material_data_;
#endif

Client Source\Client\EterGrnLib\ModelInstanceRender.cpp Açınız ve Aratınız:

Kod:
        STATEMANAGER.SetIndices(lpd3dIdxBuf, vtxMeshBasePos);
        STATEMANAGER.SetTransform(D3DTS_WORLD, &m_meshMatrices[pMeshNode->iMesh]);

        const CGrannyMesh::TTriGroupNode* pTriGroupNode = pMesh->GetTriGroupNodeList(eMtrlType);
        int vtxCount = pMesh->GetVertexCount();
        while (pTriGroupNode)
        {
            ms_faceCount += pTriGroupNode->triCount;

            CGrannyMaterial& rkMtrl=m_kMtrlPal.GetMaterialRef(pTriGroupNode->mtrlIndex);

Altına Ekleyiniz:

Kod:
#if defined(ENABLE_SPECULAR_FIX)
            if (!material_data_.pImage)
            {
                if (std::fabs(rkMtrl.GetSpecularPower() - material_data_.fSpecularPower) >= std::numeric_limits<float>::epsilon())
                    rkMtrl.SetSpecularInfo(material_data_.isSpecularEnable, material_data_.fSpecularPower, material_data_.bSphereMapIndex);
            }
#endif

Client Source\Client\UserInterface\Locale_inc.h Açınız ve Ekleyiniz:

Kod:
        /*Fixed Client*/
#define ENABLE_SPECULAR_FIX                                                //

Sorun Hakkında Video:




Bu Düzenleme TAUMP Adlı Kişiye Aittir.

 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler
 

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

Geri
Üst