Yardım Kuşak sistemi bug

  • Konuyu açan Konuyu açan Happy Way
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 139
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Happy Way

MT Üye
MT Üye
Mesaj
251
Çözümler
24
Beğeni
94
Puan
749
Ticaret Puanı
0
1002_214210.webp


1005_163345.webp

1005_163145.webp

1005_162842.webp


1005_162455.webp

1005_162057.webp

1005_161513.webp



Problemin olmadığı 2 karakter var
1005_162641.webp


1005_163526.webp



Resimlerde de görüldüğü üzere sadece savaşçı ve lycan düzgün gerisi hep yanlış bu sorunu nasıl çözebilirim scaleli kuşak var acaba item_scale.txt dosyasında ki ayarlarla mı alakalı bir durum yardımlarınızı bekliyorum.
instancebase.cpp:
Genişlet Daralt Kopyala
void CInstanceBase::SetAcce(DWORD dwAcce)
{
    if (!IsPC())
        return;

    if (IsPoly())
        return;

    ClearAcceEffect();
    if (!dwAcce)
    {
        m_GraphicThingInstance.AttachAcce(NULL, 0);
        return;
    }

    dwAcce += 85000;
    float fSpecular = 65.0f;
    if (dwAcce > 95000)
    {
        dwAcce -= 10000;
        fSpecular += 35;

        m_dwAcceEffect = EFFECT_REFINED + EFFECT_ACCE;
        __EffectContainer_AttachEffect(m_dwAcceEffect);
    }

    fSpecular /= 100.0f;

    m_awPart[CRaceData::PART_ACCE] = dwAcce;

    CItemData* pItemData = NULL;
    CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData);

    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 && pItemData->GetItemScale(dwPos, fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ))
    {
        m_GraphicThingInstance.SetScale(fScaleX, fScaleY, fScaleZ, true);
        if (m_kHorse.IsMounting())
            fPositionZ += 10.0f;

        //if (IsDead())
            //fPositionZ -= 30; Burayı 2 farklı client ile denedim hiç bir şey değişmedi
        m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ);

    }

#endif

}
@hasanmacit @Kaiser @MEKA
 
Son düzenleme:
InstanceBase.cpp
C++:
Genişlet Daralt Kopyala
void CInstanceBase::SetAcce(DWORD dwAcce)
{
    [...]
    {
        [...]

        if (IsDead()) // SetScalePosition ÜSTÜNE ekle
            fPositionZ -= 30;
        
        //**
        m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ); // ÜSTÜNE
    }
}

char_battle.cpp:
C++:
Genişlet Daralt Kopyala
void CHARACTER::Dead(..)
{
    [...]
    GetDesc()->SetPhase(PHASE_DEAD);
    
    //altına ekle
    LPITEM pkAcce = GetWear(WEAR_COSTUME_ACCE);
        if (pkAcce && pkAcce->IsEquipped())
            this->UpdatePacket();
}
 
Bu benim problemimi çözmedi. İnstancebase_battle da die fonksiyonuna scalepositionun değerlerini sıfıra çekerek düzeliyor fakat karakterin orta sırt kısmında kalıyor omuzunda durmuyor
InstanceBase.cpp
C++:
Genişlet Daralt Kopyala
void CInstanceBase::SetAcce(DWORD dwAcce)
{
    [...]
    {
        [...]

        if (IsDead()) // SetScalePosition ÜSTÜNE ekle
            fPositionZ -= 30;
        
        //**
        m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ); // ÜSTÜNE
    }
}

char_battle.cpp:
C++:
Genişlet Daralt Kopyala
void CHARACTER::Dead(..)
{
    [...]
    GetDesc()->SetPhase(PHASE_DEAD);
    
    //altına ekle
    LPITEM pkAcce = GetWear(WEAR_COSTUME_ACCE);
        if (pkAcce && pkAcce->IsEquipped())
            this->UpdatePacket();
}
 
Geri
Üst