forked from metin-server/m2dev-client-src
Minor fixes & corrections
This commit is contained in:
@@ -13,4 +13,6 @@ This repository contains the source code necessary to compile the game client ex
|
|||||||
## 📋 Changelog
|
## 📋 Changelog
|
||||||
|
|
||||||
### 🐛 Bug Fixes
|
### 🐛 Bug Fixes
|
||||||
* **PK Mode:** Resolved conflict for Hostile mode when both players have negative alignment, added PK_PROTECT mode safeguards.
|
* **Invisibility:** Resolved an issue where effects were not visible after becoming visible again, if they were added in AFFECT_INVISIBILITY state.
|
||||||
|
* **Invisibility:** Resolved an issue where projectile fly effects were visible on targets within AFFECT_INVISIBILITY state.
|
||||||
|
* **Effects on low opacity meshes**: Resolved a conflict between effects on meshes with opacity < 1 and invisibility fixes.
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ void CGraphicObjectInstance::ReleaseAlwaysHidden() {
|
|||||||
|
|
||||||
bool CGraphicObjectInstance::isShow()
|
bool CGraphicObjectInstance::isShow()
|
||||||
{
|
{
|
||||||
return m_isVisible && !m_isAlwaysHidden;
|
return m_isVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -349,7 +349,12 @@ bool CInstanceBase::NEW_UseSkill(UINT uSkill, UINT uMot, UINT uMotLoopCount, boo
|
|||||||
float fCurRot=m_GraphicThingInstance.GetTargetRotation();
|
float fCurRot=m_GraphicThingInstance.GetTargetRotation();
|
||||||
SetAdvancingRotation(fCurRot);
|
SetAdvancingRotation(fCurRot);
|
||||||
|
|
||||||
m_GraphicThingInstance.InterceptOnceMotion(CRaceMotionData::NAME_SKILL + uMot, 0.1f, uSkill, 1.0f);
|
// MR-7: Don't show skill motion if character is invisible
|
||||||
|
if (!IsAffect(AFFECT_INVISIBILITY))
|
||||||
|
{
|
||||||
|
m_GraphicThingInstance.InterceptOnceMotion(CRaceMotionData::NAME_SKILL + uMot, 0.1f, uSkill, 1.0f);
|
||||||
|
}
|
||||||
|
// MR-7: -- END OF -- Don't show skill motion if character is invisible
|
||||||
|
|
||||||
m_GraphicThingInstance.__OnUseSkill(uMot, uMotLoopCount, isMovingSkill);
|
m_GraphicThingInstance.__OnUseSkill(uMot, uMotLoopCount, isMovingSkill);
|
||||||
|
|
||||||
|
|||||||
@@ -1056,40 +1056,81 @@ void CInstanceBase::__DetachEffect(DWORD dwEID)
|
|||||||
|
|
||||||
DWORD CInstanceBase::__AttachEffect(UINT eEftType)
|
DWORD CInstanceBase::__AttachEffect(UINT eEftType)
|
||||||
{
|
{
|
||||||
// 2004.07.17.levites.isShow를 ViewFrustumCheck로 변경
|
if (eEftType >= EFFECT_NUM)
|
||||||
if (IsAffect(AFFECT_INVISIBILITY))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (eEftType>=EFFECT_NUM)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ms_astAffectEffectAttachBone[eEftType].empty())
|
if (ms_astAffectEffectAttachBone[eEftType].empty())
|
||||||
{
|
{
|
||||||
return m_GraphicThingInstance.AttachEffectByID(0, NULL, ms_adwCRCAffectEffect[eEftType]);
|
DWORD dwEftID = m_GraphicThingInstance.AttachEffectByID(0, NULL, ms_adwCRCAffectEffect[eEftType]);
|
||||||
|
|
||||||
|
// MR-7: Recover affect visual effects when coming out of invisibility
|
||||||
|
if (dwEftID && IsAffect(AFFECT_INVISIBILITY))
|
||||||
|
{
|
||||||
|
CEffectManager::Instance().SelectEffectInstance(dwEftID);
|
||||||
|
CEffectManager::Instance().HideEffect();
|
||||||
|
CEffectManager::Instance().ApplyAlwaysHidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwEftID;
|
||||||
|
// MR-7: -- END OF -- Recover affect visual effects when coming out of invisibility
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string & rstrBoneName = ms_astAffectEffectAttachBone[eEftType];
|
std::string & rstrBoneName = ms_astAffectEffectAttachBone[eEftType];
|
||||||
const char * c_szBoneName;
|
const char * c_szBoneName;
|
||||||
|
|
||||||
// 양손에 붙일 때 사용한다.
|
// 양손에 붙일 때 사용한다.
|
||||||
// 이런 식의 예외 처리를 해놓은 것은 캐릭터 마다 Equip 의 Bone Name 이 다르기 때문.
|
// 이런 식의 예외 처리를 해놓은 것은 캐릭터 마다 Equip 의 Bone Name 이 다르기 때문.
|
||||||
if (0 == rstrBoneName.compare("PART_WEAPON"))
|
if (0 == rstrBoneName.compare("PART_WEAPON"))
|
||||||
{
|
{
|
||||||
if (m_GraphicThingInstance.GetAttachingBoneName(CRaceData::PART_WEAPON, &c_szBoneName))
|
if (m_GraphicThingInstance.GetAttachingBoneName(CRaceData::PART_WEAPON, &c_szBoneName))
|
||||||
{
|
{
|
||||||
return m_GraphicThingInstance.AttachEffectByID(0, c_szBoneName, ms_adwCRCAffectEffect[eEftType]);
|
// MR-7: Recover affect visual effects when coming out of invisibility
|
||||||
|
DWORD dwEftID = m_GraphicThingInstance.AttachEffectByID(0, c_szBoneName, ms_adwCRCAffectEffect[eEftType]);
|
||||||
|
|
||||||
|
if (dwEftID && IsAffect(AFFECT_INVISIBILITY))
|
||||||
|
{
|
||||||
|
CEffectManager::Instance().SelectEffectInstance(dwEftID);
|
||||||
|
CEffectManager::Instance().HideEffect();
|
||||||
|
CEffectManager::Instance().ApplyAlwaysHidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwEftID;
|
||||||
|
// MR-7: -- END OF -- Recover affect visual effects when coming out of invisibility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (0 == rstrBoneName.compare("PART_WEAPON_LEFT"))
|
else if (0 == rstrBoneName.compare("PART_WEAPON_LEFT"))
|
||||||
{
|
{
|
||||||
if (m_GraphicThingInstance.GetAttachingBoneName(CRaceData::PART_WEAPON_LEFT, &c_szBoneName))
|
if (m_GraphicThingInstance.GetAttachingBoneName(CRaceData::PART_WEAPON_LEFT, &c_szBoneName))
|
||||||
{
|
{
|
||||||
return m_GraphicThingInstance.AttachEffectByID(0, c_szBoneName, ms_adwCRCAffectEffect[eEftType]);
|
// MR-7: Recover affect visual effects when coming out of invisibility
|
||||||
|
DWORD dwEftID = m_GraphicThingInstance.AttachEffectByID(0, c_szBoneName, ms_adwCRCAffectEffect[eEftType]);
|
||||||
|
|
||||||
|
if (dwEftID && IsAffect(AFFECT_INVISIBILITY))
|
||||||
|
{
|
||||||
|
CEffectManager::Instance().SelectEffectInstance(dwEftID);
|
||||||
|
CEffectManager::Instance().HideEffect();
|
||||||
|
CEffectManager::Instance().ApplyAlwaysHidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwEftID;
|
||||||
|
// MR-7: -- END OF -- Recover affect visual effects when coming out of invisibility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return m_GraphicThingInstance.AttachEffectByID(0, rstrBoneName.c_str(), ms_adwCRCAffectEffect[eEftType]);
|
// MR-7: Recover affect visual effects when coming out of invisibility
|
||||||
|
DWORD dwEftID = m_GraphicThingInstance.AttachEffectByID(0, rstrBoneName.c_str(), ms_adwCRCAffectEffect[eEftType]);
|
||||||
|
|
||||||
|
if (dwEftID && IsAffect(AFFECT_INVISIBILITY))
|
||||||
|
{
|
||||||
|
CEffectManager::Instance().SelectEffectInstance(dwEftID);
|
||||||
|
CEffectManager::Instance().HideEffect();
|
||||||
|
CEffectManager::Instance().ApplyAlwaysHidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwEftID;
|
||||||
|
// MR-7: -- END OF -- Recover affect visual effects when coming out of invisibility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user