MR-2: Realtime character level updates + Macros removed

This commit is contained in:
Mind Rapist
2025-12-20 02:28:41 +02:00
parent e0df09ea28
commit 7580e4278c
6 changed files with 35 additions and 66 deletions

View File

@@ -362,10 +362,22 @@ class CActorInstance : public IActorInstance, public IFlyTargetableObject
BOOL IsActEmotion(); BOOL IsActEmotion();
DWORD GetComboIndex(); DWORD GetComboIndex();
float GetAttackingElapsedTime(); float GetAttackingElapsedTime();
#ifdef FIX_POS_SYNC
void SetBlendingPosition(const TPixelPosition& c_rPosition, float fBlendingTime = 1.0f);
#else
void SetBlendingPosition(const TPixelPosition & c_rPosition, float fBlendingTime = 1.0f); void SetBlendingPosition(const TPixelPosition & c_rPosition, float fBlendingTime = 1.0f);
#endif
void ResetBlendingPosition(); void ResetBlendingPosition();
void GetBlendingPosition(TPixelPosition * pPosition); void GetBlendingPosition(TPixelPosition * pPosition);
#ifdef FIX_POS_SYNC
struct BlendingPosition {
D3DXVECTOR3 source;
D3DXVECTOR3 dest;
float duration;
};
#endif
BOOL NormalAttack(float fDirRot, float fBlendTime = 0.1f); BOOL NormalAttack(float fDirRot, float fBlendTime = 0.1f);
BOOL ComboAttack(DWORD wMotionIndex, float fDirRot, float fBlendTime = 0.1f); BOOL ComboAttack(DWORD wMotionIndex, float fDirRot, float fBlendTime = 0.1f);
@@ -479,6 +491,13 @@ class CActorInstance : public IActorInstance, public IFlyTargetableObject
void RenderCollisionData(); void RenderCollisionData();
void RenderToShadowMap(); void RenderToShadowMap();
#ifdef FIX_POS_SYNC
void ClientAttack(DWORD dwVID);
void ServerAttack(DWORD dwVID);
bool ProcessingClientAttack(DWORD dwVID);
bool ServerAttackCameFirst(DWORD dwVID);
#endif
protected: protected:
void __AdjustCollisionMovement(const CGraphicObjectInstance * c_pGraphicObjectInstance); void __AdjustCollisionMovement(const CGraphicObjectInstance * c_pGraphicObjectInstance);
@@ -496,9 +515,7 @@ class CActorInstance : public IActorInstance, public IFlyTargetableObject
float GetHeight(); float GetHeight();
void ShowAllAttachingEffect(); void ShowAllAttachingEffect();
void HideAllAttachingEffect(); void HideAllAttachingEffect();
#ifdef __ENABLE_STEALTH_FIX__ //EXP
void HideAllAttachingEffectForEunhyeong(); void HideAllAttachingEffectForEunhyeong();
#endif
void ClearAttachingEffect(); void ClearAttachingEffect();
// Fishing // Fishing
@@ -605,6 +622,10 @@ class CActorInstance : public IActorInstance, public IFlyTargetableObject
void __ClearCombo(); void __ClearCombo();
void __OnEndCombo(); void __OnEndCombo();
#ifdef FIX_POS_SYNC
void __Push(const TPixelPosition& c_rkPPosDst, unsigned int unDuration);
#endif
void __ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill = 0, BOOL isSendPacket = TRUE); void __ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill = 0, BOOL isSendPacket = TRUE);
void __ProcessMotionEventAttackSuccess(DWORD dwMotionKey, BYTE byEventIndex, CActorInstance & rVictim); void __ProcessMotionEventAttackSuccess(DWORD dwMotionKey, BYTE byEventIndex, CActorInstance & rVictim);
void __ProcessMotionAttackSuccess(DWORD dwMotionKey, CActorInstance & rVictim); void __ProcessMotionAttackSuccess(DWORD dwMotionKey, CActorInstance & rVictim);
@@ -612,7 +633,11 @@ class CActorInstance : public IActorInstance, public IFlyTargetableObject
void __HitStone(CActorInstance& rVictim); void __HitStone(CActorInstance& rVictim);
void __HitGood(CActorInstance& rVictim); void __HitGood(CActorInstance& rVictim);
#ifdef FIX_POS_SYNC
void __HitGreate(CActorInstance& rVictim, UINT uiSkill);
#else
void __HitGreate(CActorInstance& rVictim); void __HitGreate(CActorInstance& rVictim);
#endif
void __PushDirect(CActorInstance & rVictim); void __PushDirect(CActorInstance & rVictim);
void __PushCircle(CActorInstance & rVictim); void __PushCircle(CActorInstance & rVictim);

View File

@@ -580,10 +580,7 @@ void CActorInstance::ShowAllAttachingEffect()
{ {
CEffectManager::Instance().SelectEffectInstance(it->dwEffectIndex); CEffectManager::Instance().SelectEffectInstance(it->dwEffectIndex);
CEffectManager::Instance().ShowEffect(); CEffectManager::Instance().ShowEffect();
#ifdef __ENABLE_STEALTH_FIX__
CEffectManager::Instance().ReleaseAlwaysHidden(); CEffectManager::Instance().ReleaseAlwaysHidden();
//CEffectManager::Instance().Update();
#endif
} }
} }
@@ -595,13 +592,10 @@ void CActorInstance::HideAllAttachingEffect()
{ {
CEffectManager::Instance().SelectEffectInstance(it->dwEffectIndex); CEffectManager::Instance().SelectEffectInstance(it->dwEffectIndex);
CEffectManager::Instance().HideEffect(); CEffectManager::Instance().HideEffect();
#ifdef __ENABLE_STEALTH_FIX__
CEffectManager::Instance().ApplyAlwaysHidden(); CEffectManager::Instance().ApplyAlwaysHidden();
#endif
} }
} }
#ifdef __ENABLE_STEALTH_FIX__ //EXP
void CActorInstance::HideAllAttachingEffectForEunhyeong() void CActorInstance::HideAllAttachingEffectForEunhyeong()
{ {
std::list<TAttachingEffect>::iterator it; std::list<TAttachingEffect>::iterator it;
@@ -652,7 +646,6 @@ void CActorInstance::HideAllAttachingEffectForEunhyeong()
CEffectManager::Instance().ApplyAlwaysHidden(); CEffectManager::Instance().ApplyAlwaysHidden();
} }
} }
#endif
void CActorInstance::__ClearAttachingEffect() void CActorInstance::__ClearAttachingEffect()
{ {

View File

@@ -448,11 +448,7 @@ BOOL CInstanceBase::IsMovieMode()
BOOL CInstanceBase::IsInvisibility() BOOL CInstanceBase::IsInvisibility()
{ {
#ifdef __ENABLE_STEALTH_FIX__
if (IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG) || IsAffect(AFFECT_REVIVE_INVISIBILITY)) if (IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG) || IsAffect(AFFECT_REVIVE_INVISIBILITY))
#else
if (IsAffect(AFFECT_INVISIBILITY))
#endif
return true; return true;
return false; return false;
@@ -1560,7 +1556,11 @@ void CInstanceBase::StateProcess()
SetAdvancingRotation(fRotDst); SetAdvancingRotation(fRotDst);
SetRotation(fRotDst); SetRotation(fRotDst);
#ifdef FIX_POS_SYNC
NEW_UseSkill(1, eFunc& FUNC_SKILL - 1, uArg & 0x0f, (uArg >> 4) ? true : false);
#else
NEW_UseSkill(0, eFunc & 0x7f, uArg&0x0f, (uArg>>4) ? true : false); NEW_UseSkill(0, eFunc & 0x7f, uArg&0x0f, (uArg>>4) ? true : false);
#endif
//Tracen("가깝기 때문에 워프 공격"); //Tracen("가깝기 때문에 워프 공격");
} }
} }
@@ -1738,7 +1738,11 @@ void CInstanceBase::MovementProcess()
{ {
SetAdvancingRotation(m_fDstRot); SetAdvancingRotation(m_fDstRot);
BlendRotation(m_fDstRot); BlendRotation(m_fDstRot);
#ifdef FIX_POS_SYNC
NEW_UseSkill(1, m_kMovAfterFunc.eFunc& FUNC_SKILL - 1, m_kMovAfterFunc.uArg & 0x0f, (m_kMovAfterFunc.uArg >> 4) ? true : false);
#else
NEW_UseSkill(0, m_kMovAfterFunc.eFunc & 0x7f, m_kMovAfterFunc.uArg&0x0f, (m_kMovAfterFunc.uArg>>4) ? true : false); NEW_UseSkill(0, m_kMovAfterFunc.eFunc & 0x7f, m_kMovAfterFunc.uArg&0x0f, (m_kMovAfterFunc.uArg>>4) ? true : false);
#endif
} }
else else
{ {
@@ -1794,11 +1798,7 @@ void CInstanceBase::MovementProcess()
m_GraphicThingInstance.SetRotation(fRotation); m_GraphicThingInstance.SetRotation(fRotation);
} }
#ifdef __ENABLE_STEALTH_FIX__
if (__IsInDustRange() && !IsAffect(AFFECT_INVISIBILITY) && !IsAffect(AFFECT_EUNHYEONG) && !IsAffect(AFFECT_REVIVE_INVISIBILITY)) if (__IsInDustRange() && !IsAffect(AFFECT_INVISIBILITY) && !IsAffect(AFFECT_EUNHYEONG) && !IsAffect(AFFECT_REVIVE_INVISIBILITY))
#else
if (__IsInDustRange())
#endif
{ {
float fDustDistance = NEW_GetDistanceFromDestPixelPosition(m_kPPosDust); float fDustDistance = NEW_GetDistanceFromDestPixelPosition(m_kPPosDust);
if (IsMountingHorse()) if (IsMountingHorse())
@@ -1978,7 +1978,6 @@ void CInstanceBase::Render()
m_kHorse.Render(); m_kHorse.Render();
m_GraphicThingInstance.Render(); m_GraphicThingInstance.Render();
#ifdef __ENABLE_STEALTH_FIX__
CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance(); CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance();
for (auto ptr = rkChrMgr.CharacterInstanceBegin(); ptr != rkChrMgr.CharacterInstanceEnd(); ++ptr) for (auto ptr = rkChrMgr.CharacterInstanceBegin(); ptr != rkChrMgr.CharacterInstanceEnd(); ++ptr)
@@ -1999,7 +1998,6 @@ void CInstanceBase::Render()
} }
} }
} }
#endif
if (CActorInstance::IsDirLine()) if (CActorInstance::IsDirLine())
{ {

View File

@@ -160,11 +160,7 @@ void CInstanceBase::ProcessDamage()
m_bDamageEffectType = !m_bDamageEffectType; m_bDamageEffectType = !m_bDamageEffectType;
} }
#ifdef __ENABLE_STEALTH_FIX__ //EXP
else if (!bTarget || ((IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG)) && bTarget)) else if (!bTarget || ((IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG)) && bTarget))
#else
else if (bTarget == false)
#endif
{ {
strDamageType = "nontarget_"; strDamageType = "nontarget_";
rdwCRCEft = EFFECT_DAMAGE_NOT_TARGET; rdwCRCEft = EFFECT_DAMAGE_NOT_TARGET;
@@ -802,31 +798,23 @@ void CInstanceBase::__SetReviveInvisibilityAffect(bool isVisible)
if (IsWearingDress()) if (IsWearingDress())
return; return;
#ifdef __ENABLE_STEALTH_FIX__
if (__IsMainInstance() || __MainCanSeeHiddenThing()) if (__IsMainInstance() || __MainCanSeeHiddenThing())
{ {
#endif
m_GraphicThingInstance.BlendAlphaValue(0.5f, 1.0f); m_GraphicThingInstance.BlendAlphaValue(0.5f, 1.0f);
#ifdef __ENABLE_STEALTH_FIX__
} }
else else
{ {
m_GraphicThingInstance.BlendAlphaValue(0.0f, 1.0f); m_GraphicThingInstance.BlendAlphaValue(0.0f, 1.0f);
m_GraphicThingInstance.HideAllAttachingEffect(); m_GraphicThingInstance.HideAllAttachingEffect();
} }
#endif
} }
else else
{ {
#ifdef __ENABLE_STEALTH_FIX__
if (!IsAffect(AFFECT_EUNHYEONG) && !IsAffect(AFFECT_INVISIBILITY)) if (!IsAffect(AFFECT_EUNHYEONG) && !IsAffect(AFFECT_INVISIBILITY))
{ {
#endif
m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f); m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
#ifdef __ENABLE_STEALTH_FIX__
m_GraphicThingInstance.ShowAllAttachingEffect(); m_GraphicThingInstance.ShowAllAttachingEffect();
} }
#endif
} }
} }
@@ -846,26 +834,20 @@ void CInstanceBase::__Assassin_SetEunhyeongAffect(bool isVisible)
{ {
// 2004.10.16.myevan.은형법 완전 투명 // 2004.10.16.myevan.은형법 완전 투명
m_GraphicThingInstance.BlendAlphaValue(0.0f, 1.0f); m_GraphicThingInstance.BlendAlphaValue(0.0f, 1.0f);
#ifdef __ENABLE_STEALTH_FIX__ //EXP
if (!IsAffect(AFFECT_INVISIBILITY) && !IsAffect(AFFECT_REVIVE_INVISIBILITY)) if (!IsAffect(AFFECT_INVISIBILITY) && !IsAffect(AFFECT_REVIVE_INVISIBILITY))
m_GraphicThingInstance.HideAllAttachingEffectForEunhyeong(); m_GraphicThingInstance.HideAllAttachingEffectForEunhyeong();
else else
#endif
m_GraphicThingInstance.HideAllAttachingEffect(); m_GraphicThingInstance.HideAllAttachingEffect();
} }
} }
else else
{ {
#ifdef __ENABLE_STEALTH_FIX__
if (!IsAffect(AFFECT_REVIVE_INVISIBILITY) && !IsAffect(AFFECT_INVISIBILITY)) if (!IsAffect(AFFECT_REVIVE_INVISIBILITY) && !IsAffect(AFFECT_INVISIBILITY))
{ {
#endif
m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f); m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
m_GraphicThingInstance.ShowAllAttachingEffect(); m_GraphicThingInstance.ShowAllAttachingEffect();
#ifdef __ENABLE_STEALTH_FIX__
ProcessDamage(); ProcessDamage();
} }
#endif
} }
} }
@@ -944,11 +926,7 @@ void CInstanceBase::__SetAffect(UINT eAffect, bool isVisible)
return; return;
break; break;
case AFFECT_REVIVE_INVISIBILITY: case AFFECT_REVIVE_INVISIBILITY:
#ifdef __ENABLE_STEALTH_FIX__
__SetReviveInvisibilityAffect(isVisible); __SetReviveInvisibilityAffect(isVisible);
#else
__Assassin_SetEunhyeongAffect(isVisible);
#endif
break; break;
case AFFECT_EUNHYEONG: case AFFECT_EUNHYEONG:
__Assassin_SetEunhyeongAffect(isVisible); __Assassin_SetEunhyeongAffect(isVisible);
@@ -964,28 +942,16 @@ void CInstanceBase::__SetAffect(UINT eAffect, bool isVisible)
// 2004.07.17.levites.isShow를 ViewFrustumCheck로 변경 // 2004.07.17.levites.isShow를 ViewFrustumCheck로 변경
if (isVisible) if (isVisible)
{ {
#ifndef __ENABLE_STEALTH_FIX__
m_GraphicThingInstance.ClearAttachingEffect();
__EffectContainer_Destroy();
DetachTextTail();
#else
m_GraphicThingInstance.HideAllAttachingEffect(); m_GraphicThingInstance.HideAllAttachingEffect();
#endif
} }
else else
{ {
#ifdef __ENABLE_STEALTH_FIX__
if (!IsAffect(AFFECT_EUNHYEONG) && !IsAffect(AFFECT_REVIVE_INVISIBILITY)) if (!IsAffect(AFFECT_EUNHYEONG) && !IsAffect(AFFECT_REVIVE_INVISIBILITY))
{ {
m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f); m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
m_GraphicThingInstance.ShowAllAttachingEffect(); m_GraphicThingInstance.ShowAllAttachingEffect();
ProcessDamage(); ProcessDamage();
} }
#else
m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
AttachTextTail();
RefreshTextTail();
#endif
} }
return; return;
break; break;

View File

@@ -6,12 +6,3 @@
#define ENABLE_DRAGON_SOUL_SYSTEM #define ENABLE_DRAGON_SOUL_SYSTEM
#define ENABLE_NEW_EQUIPMENT_SYSTEM #define ENABLE_NEW_EQUIPMENT_SYSTEM
//#define ENABLE_DISCORD_RPC //#define ENABLE_DISCORD_RPC
#define FIX_SEQ_254
#define __ENABLE_STEALTH_FIX__
#define __BL_LEVEL_FIX__
// #define FIX_POS_SYNC
// #define TW1X1_TEST
// Python-only
#define FIX_HORSE_SKILLS_TAB

View File

@@ -662,14 +662,10 @@ bool CPythonNetworkStream::RecvPingPacket()
if (!Send(sizeof(TPacketCGPong), &kPacketPong)) if (!Send(sizeof(TPacketCGPong), &kPacketPong))
return false; return false;
#ifdef FIX_SEQ_254
return SendSequence();
#else
if (IsSecurityMode()) if (IsSecurityMode())
return SendSequence(); return SendSequence();
else else
return true; return true;
#endif
} }
bool CPythonNetworkStream::RecvDefaultPacket(int header) bool CPythonNetworkStream::RecvDefaultPacket(int header)