Hi,
When i equip a costume weapon, the sword +7 / +8 / +9 effect not disappear.
If i ride a mount or relog, the effect disappear.
Can somebody give me a fix to the effect disappear immediately when i equip a costume weapon?
Edit: Figured out and solved UserInterface/InstanceBase.cpp
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);
}
}
else if (m_kHorse.IsMounting())
{
switch (bySubType)
{
case CItemData::COSTUME_WEAPON_SWORD:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_SWORD:
SetMotionMode(CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
break;
case CItemData::COSTUME_WEAPON_TWO_HANDED:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_TWO_HANDED:
SetMotionMode(CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); // Only Warrior
break;
case CItemData::COSTUME_WEAPON_DAGGER:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_DAGGER:
SetMotionMode(CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); // Only Assassin
break;
case CItemData::COSTUME_WEAPON_FAN:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_FAN:
SetMotionMode(CRaceMotionData::MODE_HORSE_FAN); // Only Shaman
break;
case CItemData::COSTUME_WEAPON_BELL:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_BELL:
SetMotionMode(CRaceMotionData::MODE_HORSE_BELL); // Only Shaman
break;
case CItemData::COSTUME_WEAPON_BOW:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_BOW:
SetMotionMode(CRaceMotionData::MODE_HORSE_BOW); // Only Shaman
break;
default:
SetMotionMode(CRaceMotionData::MODE_HORSE);
break;
}
}
else
{
switch (bySubType)
{
case CItemData::COSTUME_WEAPON_SWORD:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_SWORD:
SetMotionMode(CRaceMotionData::MODE_ONEHAND_SWORD);
break;
case CItemData::COSTUME_WEAPON_TWO_HANDED:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_TWO_HANDED:
SetMotionMode(CRaceMotionData::MODE_TWOHAND_SWORD); // Only Warrior
break;
case CItemData::COSTUME_WEAPON_DAGGER:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_DAGGER:
SetMotionMode(CRaceMotionData::MODE_DUALHAND_SWORD); // Only Assassin
break;
case CItemData::COSTUME_WEAPON_BOW:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_BOW:
SetMotionMode(CRaceMotionData::MODE_BOW); // Only Assassin
break;
case CItemData::COSTUME_WEAPON_FAN:
__ClearWeaponRefineEffect();
case CItemData::WEAPON_FAN:
SetMotionMode(CRaceMotionData::MODE_FAN); // Only Shaman
break;
case CItemData::COSTUME_WEAPON_BELL:
__ClearWeaponRefineEffect();
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();
}