Çözüldü Kostüm Silah sistemi sorun

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

xplarges

Üye
Üye
Mesaj
119
Çözümler
9
Beğeni
39
Puan
119
Ticaret Puanı
0
Bineğe binince böyle oluyor. Binek haricinde sorun olmuyor. SYSERR yok.

1720325670990.webp
 
Son düzenleme:
Çözüm
InstanceBase.cpp:
Genişlet Daralt Kopyala
    else if (m_kHorse.IsMounting())
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL...
pc ve pc2 karakter klasörlerinin içindeki horse klasörlerini başka filesten al dene
 
InstanceBase.cpp:
Genişlet Daralt Kopyala
    else if (m_kHorse.IsMounting())
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BELL); // Only Shaman
                break;

            case CItemData::WEAPON_BOW:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BOW); // Only Shaman
                break;

            default:
                SetMotionMode(CRaceMotionData::MODE_HORSE);
                break;
        }
    }
#ifdef ENABLE_COSTUME_WEAPON_SYSTEM
    else if (byItemType == CItemData::ITEM_TYPE_COSTUME)
    {
        switch (pItemData->GetValue(3))
        {
        case CItemData::WEAPON_SWORD:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
            else
                SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
            break;
        case CItemData::WEAPON_DAGGER:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD);
            else
                SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD);
            break;
        case CItemData::WEAPON_BOW:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_BOW);
            else
#ifdef ENABLE_NEW_ARROW_SYSTEM
            {
                if (m_awPart[CRaceData::PART_ARROW_TYPE] == CItemData::WEAPON_UNLIMITED_ARROW)
                    SetMotionMode(CRaceMotionData::MODE_BOW_SPECIAL);
                else
                    SetMotionMode(CRaceMotionData::MODE_BOW);
            }
#else
                SetMotionMode(CRaceMotionData::MODE_BOW);
#endif
            break;
        case CItemData::WEAPON_TWO_HANDED:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD);
            else
                SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD);
            break;
        case CItemData::WEAPON_BELL:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_BELL);
            else
                SetMotionMode(CRaceMotionData::MODE_BELL);
            break;
        case CItemData::WEAPON_FAN:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN);
            else
                SetMotionMode(CRaceMotionData::MODE_FAN);
            break;
        default:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE);
            else
                SetMotionMode(CRaceMotionData::MODE_GENERAL);
            break;
        }
    }
#endif
client src de binek ve silahla ilgi bir kod olması gerekiyordu muhtemelen orada bir hata var
 
InstanceBase.cpp:
Genişlet Daralt Kopyala
    else if (m_kHorse.IsMounting())
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BELL); // Only Shaman
                break;

            case CItemData::WEAPON_BOW:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BOW); // Only Shaman
                break;

            default:
                SetMotionMode(CRaceMotionData::MODE_HORSE);
                break;
        }
    }
#ifdef ENABLE_COSTUME_WEAPON_SYSTEM
    else if (byItemType == CItemData::ITEM_TYPE_COSTUME)
    {
        switch (pItemData->GetValue(3))
        {
        case CItemData::WEAPON_SWORD:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
            else
                SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
            break;
        case CItemData::WEAPON_DAGGER:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD);
            else
                SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD);
            break;
        case CItemData::WEAPON_BOW:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_BOW);
            else
#ifdef ENABLE_NEW_ARROW_SYSTEM
            {
                if (m_awPart[CRaceData::PART_ARROW_TYPE] == CItemData::WEAPON_UNLIMITED_ARROW)
                    SetMotionMode(CRaceMotionData::MODE_BOW_SPECIAL);
                else
                    SetMotionMode(CRaceMotionData::MODE_BOW);
            }
#else
                SetMotionMode(CRaceMotionData::MODE_BOW);
#endif
            break;
        case CItemData::WEAPON_TWO_HANDED:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD);
            else
                SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD);
            break;
        case CItemData::WEAPON_BELL:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_BELL);
            else
                SetMotionMode(CRaceMotionData::MODE_BELL);
            break;
        case CItemData::WEAPON_FAN:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN);
            else
                SetMotionMode(CRaceMotionData::MODE_FAN);
            break;
        default:
            if (m_kHorse.IsMounting())
                SetMotionMode(CRaceMotionData::MODE_HORSE);
            else
                SetMotionMode(CRaceMotionData::MODE_GENERAL);
            break;
        }
    }
#endif


bununla bi karşılaştırır mısın
instancebase.cpp:
Genişlet Daralt Kopyala
void CInstanceBase::RefreshState(DWORD dwMotIndex, bool isLoop)
{
    DWORD dwPartItemID = m_GraphicThingInstance.GetPartItemID(CRaceData::PART_WEAPON);

    BYTE byItemType = 0xff;
    BYTE bySubType = 0xff;

    CItemManager & rkItemMgr = CItemManager::Instance();
    CItemData * pItemData;
    
    if (rkItemMgr.GetItemDataPointer(dwPartItemID, &pItemData))
    {
        byItemType = pItemData->GetType();
        bySubType = pItemData->GetWeaponType();
    }

    if (IsPoly())
    {
        SetMotionMode(CRaceMotionData::MODE_GENERAL);
    }
    else if (IsWearingDress())
    {
        SetMotionMode(CRaceMotionData::MODE_WEDDING_DRESS);
    }
    else if (IsHoldingPickAxe())
    {
        if (m_kHorse.IsMounting())
        {
            SetMotionMode(CRaceMotionData::MODE_HORSE);
        }
        else
        {
            SetMotionMode(CRaceMotionData::MODE_GENERAL);
        }
    }
    else if (CItemData::ITEM_TYPE_ROD == byItemType)
    {
        if (m_kHorse.IsMounting())
        {
            SetMotionMode(CRaceMotionData::MODE_HORSE);
        }
        else
        {
            SetMotionMode(CRaceMotionData::MODE_FISHING);
        }
    }
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
    else if (byItemType == CItemData::ITEM_TYPE_COSTUME)
    {
        switch (pItemData->GetValue(3))
        {
            case CItemData::WEAPON_SWORD:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                else
                    SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
                break;
            case CItemData::WEAPON_DAGGER:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD);
                else
                    SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD);
                break;
            case CItemData::WEAPON_BOW:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_BOW);
                else
                    SetMotionMode(CRaceMotionData::MODE_BOW);
                break;
            case CItemData::WEAPON_TWO_HANDED:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD);
                else
                    SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD);
                break;
            case CItemData::WEAPON_BELL:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_BELL);
                else
                    SetMotionMode(CRaceMotionData::MODE_BELL);
                break;
            case CItemData::WEAPON_FAN:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_FAN);
                else
                    SetMotionMode(CRaceMotionData::MODE_FAN);
                break;
            default:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE);
                    else
                        SetMotionMode(CRaceMotionData::MODE_GENERAL);
                break;
        }
    }
#endif
    else if (m_kHorse.IsMounting())
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BELL); // Only Shaman
                break;

            case CItemData::WEAPON_BOW:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BOW); // Only Shaman
                break;

            default:
                SetMotionMode(CRaceMotionData::MODE_HORSE);
                break;
        }
    }
    else
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_BOW:
                SetMotionMode(CRaceMotionData::MODE_BOW); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL:
                SetMotionMode(CRaceMotionData::MODE_BELL); // Only Shaman
                break;

            case CItemData::WEAPON_ARROW:
            default:
                SetMotionMode(CRaceMotionData::MODE_GENERAL);
                break;
        }
    }

    if (isLoop)
        m_GraphicThingInstance.InterceptLoopMotion(dwMotIndex);
    else
        m_GraphicThingInstance.InterceptOnceMotion(dwMotIndex);

    RefreshActorInstance();
}
 
Çözüm
bununla bi karşılaştırır mısın
instancebase.cpp:
Genişlet Daralt Kopyala
void CInstanceBase::RefreshState(DWORD dwMotIndex, bool isLoop)
{
    DWORD dwPartItemID = m_GraphicThingInstance.GetPartItemID(CRaceData::PART_WEAPON);

    BYTE byItemType = 0xff;
    BYTE bySubType = 0xff;

    CItemManager & rkItemMgr = CItemManager::Instance();
    CItemData * pItemData;
   
    if (rkItemMgr.GetItemDataPointer(dwPartItemID, &pItemData))
    {
        byItemType = pItemData->GetType();
        bySubType = pItemData->GetWeaponType();
    }

    if (IsPoly())
    {
        SetMotionMode(CRaceMotionData::MODE_GENERAL);
    }
    else if (IsWearingDress())
    {
        SetMotionMode(CRaceMotionData::MODE_WEDDING_DRESS);
    }
    else if (IsHoldingPickAxe())
    {
        if (m_kHorse.IsMounting())
        {
            SetMotionMode(CRaceMotionData::MODE_HORSE);
        }
        else
        {
            SetMotionMode(CRaceMotionData::MODE_GENERAL);
        }
    }
    else if (CItemData::ITEM_TYPE_ROD == byItemType)
    {
        if (m_kHorse.IsMounting())
        {
            SetMotionMode(CRaceMotionData::MODE_HORSE);
        }
        else
        {
            SetMotionMode(CRaceMotionData::MODE_FISHING);
        }
    }
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
    else if (byItemType == CItemData::ITEM_TYPE_COSTUME)
    {
        switch (pItemData->GetValue(3))
        {
            case CItemData::WEAPON_SWORD:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                else
                    SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
                break;
            case CItemData::WEAPON_DAGGER:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD);
                else
                    SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD);
                break;
            case CItemData::WEAPON_BOW:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_BOW);
                else
                    SetMotionMode(CRaceMotionData::MODE_BOW);
                break;
            case CItemData::WEAPON_TWO_HANDED:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD);
                else
                    SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD);
                break;
            case CItemData::WEAPON_BELL:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_BELL);
                else
                    SetMotionMode(CRaceMotionData::MODE_BELL);
                break;
            case CItemData::WEAPON_FAN:
                if (m_kHorse.IsMounting())
                    SetMotionMode(CRaceMotionData::MODE_HORSE_FAN);
                else
                    SetMotionMode(CRaceMotionData::MODE_FAN);
                break;
            default:
                    if (m_kHorse.IsMounting())
                        SetMotionMode(CRaceMotionData::MODE_HORSE);
                    else
                        SetMotionMode(CRaceMotionData::MODE_GENERAL);
                break;
        }
    }
#endif
    else if (m_kHorse.IsMounting())
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BELL); // Only Shaman
                break;

            case CItemData::WEAPON_BOW:
                SetMotionMode(CRaceMotionData::MODE_HORSE_BOW); // Only Shaman
                break;

            default:
                SetMotionMode(CRaceMotionData::MODE_HORSE);
                break;
        }
    }
    else
    {
        switch (bySubType)
        {
            case CItemData::WEAPON_SWORD:
                SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
                break;

            case CItemData::WEAPON_TWO_HANDED:
                SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD); // Only Warrior
                break;

            case CItemData::WEAPON_DAGGER:
                SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD); // Only Assassin
                break;

            case CItemData::WEAPON_BOW:
                SetMotionMode(CRaceMotionData::MODE_BOW); // Only Assassin
                break;

            case CItemData::WEAPON_FAN:
                SetMotionMode(CRaceMotionData::MODE_FAN); // Only Shaman
                break;

            case CItemData::WEAPON_BELL:
                SetMotionMode(CRaceMotionData::MODE_BELL); // Only Shaman
                break;

            case CItemData::WEAPON_ARROW:
            default:
                SetMotionMode(CRaceMotionData::MODE_GENERAL);
                break;
        }
    }

    if (isLoop)
        m_GraphicThingInstance.InterceptLoopMotion(dwMotIndex);
    else
        m_GraphicThingInstance.InterceptOnceMotion(dwMotIndex);

    RefreshActorInstance();
}
Teşekkür ederim yukarı eklemem gerekirken aşağı eklemişim
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst