dx8 de dx9 gibi düzgün bi shader yok kısıtlı.
ama başka yollar var.
şuankide güzel olmadı içerik amaçlı paylaşıyorum.

actorinstancerender.cpp en asagi ekle.
void CActorInstance::RenderDynamicTextureEffect()
{
// =========================================================
// 1. FİLTRELER
// =========================================================
// if (!IsPC() || GetPartItemID(CRaceData:ART_MAIN) == 0 || !m_isMain)
// return;
const D3DXMATRIX* pWorldMatrix = &GetTransform();
if (!pWorldMatrix)
return;
// =========================================================
// 2. UV KAYDIRMA MATEMATİĞİ (Sihir burada)
// =========================================================
// Oyundaki anlık zamanı al (Kayma hızını 0.5f ile belirliyoruz)
const float fTime = CTimer::Instance().GetCurrentSecond() * 0.5f;
D3DXMATRIX matTexture;
D3DXMatrixIdentity(&matTexture);
// Dokuyu V ekseni (Y ekseni) boyunca yukarıdan aşağıya doğru kaydır
matTexture._32 = fTime;
// =========================================================
// 3. ÇİZİM VE IŞIK AYARLARI
// =========================================================
STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE);
STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
// Işık gibi parlaması için Additive Blending (Eklemeli Harmanlama)
STATEMANAGER.SaveRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
STATEMANAGER.SaveRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, FALSE);
// =========================================================
// 4. MOTORU ATEŞLE VE ÇİZ
// =========================================================
// Hazırladığımız kayan matrisi DirectX'e gönderiyoruz
STATEMANAGER.SetTransform(D3DTS_TEXTURE0, &matTexture);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
// Renk ve Parlaklık Ayarı (Buz mavisi/elektrik akan bir enerji rengi)
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE2X);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DCOLOR_ARGB(150, 100, 150, 255));
// Efekti zırhın hemen üzerine milimetrik olarak oturt
D3DXMATRIX matScale, matWorldEffect;
D3DXMatrixScaling(&matScale, 1.005f, 1.005f, 1.005f);
D3DXMatrixMultiply(&matWorldEffect, &matScale, pWorldMatrix);
STATEMANAGER.SetTransform(D3DTS_WORLD, &matWorldEffect);
// Kayan efektli zırhı ekrana çiz
RenderWithOneTexture();
// =========================================================
// 5. TEMİZLİK (DİĞER DOKULARIN KAYMASINI ENGELLE)
// =========================================================
// Kayan matrisi devre dışı bırak ve sıfırla (Çok kritik)
STATEMANAGER.SaveTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);
D3DXMATRIX matIdentity;
D3DXMatrixIdentity(&matIdentity);
STATEMANAGER.SetTransform(D3DTS_TEXTURE0, &matIdentity);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG2);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG1);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);
STATEMANAGER.RestoreRenderState(D3DRS_LIGHTING);
STATEMANAGER.RestoreRenderState(D3DRS_DESTBLEND);
STATEMANAGER.RestoreRenderState(D3DRS_SRCBLEND);
STATEMANAGER.RestoreRenderState(D3DRS_ALPHABLENDENABLE);
STATEMANAGER.RestoreRenderState(D3DRS_ZWRITEENABLE);
STATEMANAGER.SetTransform(D3DTS_WORLD, pWorldMatrix);
}
burayı bu şekidle güncelle
STATEMANAGER.RestoreRenderState(D3DRS_CULLMODE);
// RenderCustomAura(); <-- EĞER BU VARSA SİL, DIŞ SEMBOL HATASININ SEBEBİ BU
RenderDynamicTextureEffect(); // Sadece yeni efektimiz kalsın
kMtrl.Diffuse=D3DXCOLOR(0xffffffff);
actorinsatnce.h
ekle
void RenderDynamicTextureEffect();
ama başka yollar var.
şuankide güzel olmadı içerik amaçlı paylaşıyorum.

actorinstancerender.cpp en asagi ekle.
void CActorInstance::RenderDynamicTextureEffect()
{
// =========================================================
// 1. FİLTRELER
// =========================================================
// if (!IsPC() || GetPartItemID(CRaceData:ART_MAIN) == 0 || !m_isMain)
// return;
const D3DXMATRIX* pWorldMatrix = &GetTransform();
if (!pWorldMatrix)
return;
// =========================================================
// 2. UV KAYDIRMA MATEMATİĞİ (Sihir burada)
// =========================================================
// Oyundaki anlık zamanı al (Kayma hızını 0.5f ile belirliyoruz)
const float fTime = CTimer::Instance().GetCurrentSecond() * 0.5f;
D3DXMATRIX matTexture;
D3DXMatrixIdentity(&matTexture);
// Dokuyu V ekseni (Y ekseni) boyunca yukarıdan aşağıya doğru kaydır
matTexture._32 = fTime;
// =========================================================
// 3. ÇİZİM VE IŞIK AYARLARI
// =========================================================
STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE);
STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
// Işık gibi parlaması için Additive Blending (Eklemeli Harmanlama)
STATEMANAGER.SaveRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
STATEMANAGER.SaveRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, FALSE);
// =========================================================
// 4. MOTORU ATEŞLE VE ÇİZ
// =========================================================
// Hazırladığımız kayan matrisi DirectX'e gönderiyoruz
STATEMANAGER.SetTransform(D3DTS_TEXTURE0, &matTexture);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
// Renk ve Parlaklık Ayarı (Buz mavisi/elektrik akan bir enerji rengi)
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE2X);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DCOLOR_ARGB(150, 100, 150, 255));
// Efekti zırhın hemen üzerine milimetrik olarak oturt
D3DXMATRIX matScale, matWorldEffect;
D3DXMatrixScaling(&matScale, 1.005f, 1.005f, 1.005f);
D3DXMatrixMultiply(&matWorldEffect, &matScale, pWorldMatrix);
STATEMANAGER.SetTransform(D3DTS_WORLD, &matWorldEffect);
// Kayan efektli zırhı ekrana çiz
RenderWithOneTexture();
// =========================================================
// 5. TEMİZLİK (DİĞER DOKULARIN KAYMASINI ENGELLE)
// =========================================================
// Kayan matrisi devre dışı bırak ve sıfırla (Çok kritik)
STATEMANAGER.SaveTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);
D3DXMATRIX matIdentity;
D3DXMatrixIdentity(&matIdentity);
STATEMANAGER.SetTransform(D3DTS_TEXTURE0, &matIdentity);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG2);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG1);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);
STATEMANAGER.RestoreRenderState(D3DRS_LIGHTING);
STATEMANAGER.RestoreRenderState(D3DRS_DESTBLEND);
STATEMANAGER.RestoreRenderState(D3DRS_SRCBLEND);
STATEMANAGER.RestoreRenderState(D3DRS_ALPHABLENDENABLE);
STATEMANAGER.RestoreRenderState(D3DRS_ZWRITEENABLE);
STATEMANAGER.SetTransform(D3DTS_WORLD, pWorldMatrix);
}
burayı bu şekidle güncelle
STATEMANAGER.RestoreRenderState(D3DRS_CULLMODE);
// RenderCustomAura(); <-- EĞER BU VARSA SİL, DIŞ SEMBOL HATASININ SEBEBİ BU
RenderDynamicTextureEffect(); // Sadece yeni efektimiz kalsın
kMtrl.Diffuse=D3DXCOLOR(0xffffffff);
actorinsatnce.h
ekle
void RenderDynamicTextureEffect();



