Çözüldü Mob log fix hatası

  • Konuyu açan Konuyu açan bikilee
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 11
  • Gösterim Gösterim 106
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ı.

bikilee

Üye
Üye
Mesaj
5
Beğeni
0
Puan
413
Ticaret Puanı
0
@TheAdmin33 arkadaşın paylaşmış olduğu Mob Lag Fix'i eklemeye çalışıyorum fakat aldığım bir hata kafamı karıştırıyor örnek vermek gerekirse

EterLib/GrpBase.cpp:
Genişlet Daralt Kopyala
//Arat;

LPDIRECT3DVERTEXBUFFER8    CGraphicBase::ms_alpd3dPDTVB[PDT_VERTEXBUFFER_NUM];
Mesela bu kod bulunamıyor fakat
|| LPDIRECT3DVERTEXBUFFER8 || bu kodun sonunda ki 8'i 9 yapınca kodu buluyor ve
bütün kodlar aynı şekilde

//Değiştir;

#ifdef ENABLE_FIX_MOBS_LAG
IDirect3DVertexBuffer8* CGraphicBase::m_smallPdtVertexBuffer;
IDirect3DVertexBuffer8 * CGraphicBase::m_largePdtVertexBuffer;
#else
LPDIRECT3DVERTEXBUFFER8 CGraphicBase::ms_alpd3dPDTVB[PDT_VERTEXBUFFER_NUM];
#endif

bu şekilde de değiştirince malum hata alıyorum.

Kafamda mantığı netleştirmem için yardımınıza ihtiyacım var şimdiden teşekkürlerimi sunuyorum.
 

Dosya Eklentileri

  • 1.webp
    1.webp
    15,1 KB · Gösterim: 16
  • 2.webp
    2.webp
    10,4 KB · Gösterim: 13
Çözüm
EterLib/GrpBase.cpp:
Genişlet Daralt Kopyala
//ARAT
LPDIRECT3DVERTEXBUFFER8    CGraphicBase::ms_alpd3dPDTVB[PDT_VERTEXBUFFER_NUM];

//Değiştir;

//Mob Log Fix
#ifdef ENABLE_FIX_MOBS_LAG
IDirect3DVertexBuffer9* CGraphicBase::m_smallPdtVertexBuffer;
IDirect3DVertexBuffer9* * CGraphicBase::m_largePdtVertexBuffer;
#else
LPDIRECT3DVERTEXBUFFER9 CGraphicBase::ms_alpd3dPDTVB[PDT_VERTEXBUFFER_NUM];
#endif
//Mob Log Fix END

//Arat;

bool CGraphicBase::SetPDTStream (SPDTVertexRaw* pSrcVertices, UINT uVtxCount)
{
    if (!uVtxCount)
    {
        return false;
    }

    static DWORD s_dwVBPos=0;

    if (s_dwVBPos>=PDT_VERTEXBUFFER_NUM)
    {
        s_dwVBPos=0;
    }

    IDirect3DVertexBuffer9* plpd3dFillRectVB=ms_alpd3dPDTVB[s_dwVBPos];
    ++s_dwVBPos;

    assert (PDT_VERTEX_NUM>=uVtxCount);
    if (uVtxCount >=...
Aldığınız hatayı ve kodu eklediğiiniz dosyayı paylaşmamışsınız
 
8leri 9yap dene sende 9 zaten değiştir dedikleri 8 onları da 9 yap dene bakalım ne olacak denemekten zarar gelmez çözüme kavuşur mu bilmem. :)
 
Aldığınız hatayı ve kodu eklediğiiniz dosyayı paylaşmamışsınız
Derlemede hata alıyordum yedek client source'a geri döndüm çalışmamı sürdürebilmek için ama derlemede ki hataları görmek isterseniz tekrardan ekleme yapar hızlıca gönderebilirim

8leri 9yap dene sende 9 zaten değiştir dedikleri 8 onları da 9 yap dene bakalım ne olacak denemekten zarar gelmez çözüme kavuşur mu bilmem. :)
inanır mısın ilk denediğim şey oydu bro ama olumsuz sonuçlar verdi :LOL:
 
Derlemede hata alıyordum yedek client source'a geri döndüm çalışmamı sürdürebilmek için ama derlemede ki hataları görmek isterseniz tekrardan ekleme yapar hızlıca gönderebilirim


inanır mısın ilk denediğim şey oydu bro ama olumsuz sonuçlar verdi :LOL:
derlerken ne hatası veriyor atsana ss daha iyi olur. düzeltme kod satırı içersin de atta bakalım.
 
Son düzenleme:
5 Dakikaya tekrardan sistemi ekleyip ss atıyorum
Hayır lütfen aldığınız hataları veya eklediğiniz kod satırlarını SS atmayın, ana konuda yaptığınız gibi kod bloğu içine ekleyin. Aldığınız hataları ekran görüntüsü olarak yüklemek forum kurallarınca yasak, uyarı puanı alabilirsiniz.
 
Hayır lütfen aldığınız hataları veya eklediğiniz kod satırlarını SS atmayın, ana konuda yaptığınız gibi kod bloğu içine ekleyin. Aldığınız hataları ekran görüntüsü olarak yüklemek forum kurallarınca yasak, uyarı puanı alabilirsiniz.
Hatırlatma için teşekkür ederim.

Derleme yaparken VS2022 sürümüm bu arada
şu hatayı veriyor;
Mob Log Fix VS2022 Derleme hatası:
Genişlet Daralt Kopyala
C2334 unexpected token(s) preceding '{'; skipping apparent function body
IDirect3DVertexBuffer8 - Bu kodu kırmızı gösteriyor
üzerinde (identifier "IDirect3DVertexBuffer8") is undefined | Yazıyor.
-----------------------------------------------------------------------------------------
C2238 unexpected token(s) preceding ';'
-----------------------------------------------------------------------------------------
C4430 missing type specifier - int assumed. Note: C++ does not support default-int
-----------------------------------------------------------------------------------------
C2143 syntax error: missing ';' before '*'
-----------------------------------------------------------------------------------------

Hataları kod satırı olarak ekledim daha iyi anlayabilmeniz için görsel paylaşacağım görselde yazanlar kod satırında mevcuttur.

2098.webp
2143.webp
2238.webp
C2334.webp
 
En son bir moderatör tarafından düzenlenmiş:
Aynı hata bende de mevcut DirectX9 kullandığımız için hep bunlar 😁 IDirect3DVertexBuffer8 kodu tanımlı olmadığı için sorun çıkarıyor yüksek ihtimalle. ilgilenememiştim yoğunluklardan dolayı eğer çözüme ulaşmazsa bugün gün içerisinde bakıp geri dönüş sağlarım.
 
Son düzenleme:
Zenaris2 de directx9 a uyarlanmış hali var ordan bakabilirsiniz.
 
EterLib/GrpBase.cpp:
Genişlet Daralt Kopyala
//ARAT
LPDIRECT3DVERTEXBUFFER8    CGraphicBase::ms_alpd3dPDTVB[PDT_VERTEXBUFFER_NUM];

//Değiştir;

//Mob Log Fix
#ifdef ENABLE_FIX_MOBS_LAG
IDirect3DVertexBuffer9* CGraphicBase::m_smallPdtVertexBuffer;
IDirect3DVertexBuffer9* * CGraphicBase::m_largePdtVertexBuffer;
#else
LPDIRECT3DVERTEXBUFFER9 CGraphicBase::ms_alpd3dPDTVB[PDT_VERTEXBUFFER_NUM];
#endif
//Mob Log Fix END

//Arat;

bool CGraphicBase::SetPDTStream (SPDTVertexRaw* pSrcVertices, UINT uVtxCount)
{
    if (!uVtxCount)
    {
        return false;
    }

    static DWORD s_dwVBPos=0;

    if (s_dwVBPos>=PDT_VERTEXBUFFER_NUM)
    {
        s_dwVBPos=0;
    }

    IDirect3DVertexBuffer9* plpd3dFillRectVB=ms_alpd3dPDTVB[s_dwVBPos];
    ++s_dwVBPos;

    assert (PDT_VERTEX_NUM>=uVtxCount);
    if (uVtxCount >= PDT_VERTEX_NUM)
    {
        return false;
    }

    TPDTVertex* pDstVertices;
    if (FAILED (
                plpd3dFillRectVB->Lock (0, sizeof (TPDTVertex)*uVtxCount, (void**)&pDstVertices, D3DLOCK_DISCARD)
            ))
    {
        STATEMANAGER.SetStreamSource (0, NULL, 0);
        return false;
    }


    memcpy (pDstVertices, pSrcVertices, sizeof (TPDTVertex)*uVtxCount);

    plpd3dFillRectVB->Unlock();

    STATEMANAGER.SetStreamSource (0, plpd3dFillRectVB, sizeof (TPDTVertex));

    return true;
}

//Değiştir;

//Mob Log Fix
#ifdef ENABLE_FIX_MOBS_LAG
bool CGraphicBase::SetPDTStream(SPDTVertexRaw* pSrcVertices, UINT uVtxCount)
{
    if (!uVtxCount)
    {
        return false;
    }

    assert(uVtxCount <= LARGE_PDT_VERTEX_BUFFER_SIZE);

    if (!uVtxCount)
        return false;

    IDirect3DVertexBuffer9* vb = nullptr;

    if (uVtxCount <= SMALL_PDT_VERTEX_BUFFER_SIZE)
        vb = GetSmallPdtVertexBuffer();
    else
        vb = GetLargePdtVertexBuffer();

    const auto bytes = sizeof(TPDTVertex) * uVtxCount;

    TPDTVertex* dst;
    if (FAILED(vb->Lock(0, bytes, (void**)&dst, D3DLOCK_DISCARD)))
    {
        STATEMANAGER.SetStreamSource(0, NULL, 0);
        return false;
    }

    std::memcpy(dst, pSrcVertices, bytes);
    vb->Unlock();
    STATEMANAGER.SetStreamSource(0, vb, sizeof(TPDTVertex));

    return true;
}
#else
bool CGraphicBase::SetPDTStream(SPDTVertexRaw* pSrcVertices, UINT uVtxCount)
{
    if (!uVtxCount)
        return false;

    static DWORD s_dwVBPos = 0;

    if (s_dwVBPos >= PDT_VERTEXBUFFER_NUM)
        s_dwVBPos = 0;

    IDirect3DVertexBuffer9* plpd3dFillRectVB = ms_alpd3dPDTVB[s_dwVBPos];
    ++s_dwVBPos;

    assert(PDT_VERTEX_NUM >= uVtxCount);
    if (uVtxCount >= PDT_VERTEX_NUM)
        return false;

    TPDTVertex* pDstVertices;
    if (FAILED(
        plpd3dFillRectVB->Lock(0, sizeof(TPDTVertex) * uVtxCount, (BYTE**)&pDstVertices, D3DLOCK_DISCARD)
    ))
    {
        STATEMANAGER.SetStreamSource(0, NULL, 0);
        return false;
    }

    memcpy(pDstVertices, pSrcVertices, sizeof(TPDTVertex) * uVtxCount);

    plpd3dFillRectVB->Unlock();

    STATEMANAGER.SetStreamSource(0, plpd3dFillRectVB, sizeof(TPDTVertex));

    return true;
}
#endif
//Mob Log Fix END

Eski kod yapıları vardı içerisinde düzenlendi ve DirectX 9'a uyumlu hale getirildi sorunu çözecektir.

Ayrıca konusunu açtım Konuya gitmek için: TIKLA
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst