Merge pull request #98 from MindRapist/mr-10

This commit is contained in:
rtw1x1
2026-02-08 21:33:15 +00:00
committed by GitHub
6 changed files with 146 additions and 17 deletions

View File

@@ -1859,11 +1859,31 @@ int g_iAccumulationTime = 0;
void CInstanceBase::Update()
{
++ms_dwUpdateCounter;
++ms_dwUpdateCounter;
StateProcess();
m_GraphicThingInstance.PhysicsProcess();
m_GraphicThingInstance.RotationProcess();
// celine skill fix
if (IsUsingSkill())
{
if (m_dwSkillTargetVID)
{
CInstanceBase* pTargetInstance =
CPythonCharacterManager::Instance().GetInstancePtr(m_dwSkillTargetVID);
if (pTargetInstance)
NEW_LookAtDestInstance(*pTargetInstance);
}
}
else
{
ClearSkillTarget();
}
// END OF celine skill fix
m_GraphicThingInstance.ComboProcess();
m_GraphicThingInstance.AccumulationMovement();
@@ -1873,6 +1893,7 @@ void CInstanceBase::Update()
NEW_GetPixelPosition(&kPPosCur);
DWORD dwCurTime=ELTimer_GetFrameMSec();
//if (m_dwNextUpdateHeightTime<dwCurTime)
{
m_dwNextUpdateHeightTime=dwCurTime;
@@ -3070,17 +3091,20 @@ void CInstanceBase::__Initialize()
m_dwRace = 0;
m_dwVirtualNumber = 0;
m_dwBaseCmdTime=0;
m_dwBaseChkTime=0;
m_dwSkipTime=0;
m_dwBaseCmdTime = 0;
m_dwBaseChkTime = 0;
m_dwSkipTime = 0;
m_GraphicThingInstance.Initialize();
m_dwAdvActorVID=0;
m_dwLastDmgActorVID=0;
m_dwAdvActorVID = 0;
// celine skill fix
m_dwSkillTargetVID = 0;
// END OF celine skill fix
m_dwLastDmgActorVID = 0;
m_nAverageNetworkGap=0;
m_dwNextUpdateHeightTime=0;
m_nAverageNetworkGap = 0;
m_dwNextUpdateHeightTime = 0;
// Moving by keyboard
m_iRotatingDirection = DEGREE_DIRECTION_SAME;
@@ -3141,3 +3165,15 @@ void CInstanceBase::SetLevel(DWORD dwLvl)
{
m_dwLevel = dwLvl;
}
// celine skill fix
void CInstanceBase::SetSkillTarget(DWORD dwVID)
{
m_dwSkillTargetVID = dwVID;
}
void CInstanceBase::ClearSkillTarget()
{
m_dwSkillTargetVID = 0;
}
// END OF celine skill fix

View File

@@ -508,6 +508,11 @@ class CInstanceBase
void SetMoveSpeed(UINT uMovSpd);
void SetRotationSpeed(float fRotSpd);
// celine skill fix
void SetSkillTarget(DWORD dwVID);
void ClearSkillTarget();
// END OF celine skill fix
const char * GetNameString();
int GetInstanceType();
DWORD GetPart(CRaceData::EParts part);
@@ -963,6 +968,9 @@ class CInstanceBase
int m_iRotatingDirection;
DWORD m_dwAdvActorVID;
// celine skill fix
DWORD m_dwSkillTargetVID;
// END OF celine skill fix
DWORD m_dwLastDmgActorVID;
LONG m_nAverageNetworkGap;

View File

@@ -1598,6 +1598,25 @@ enum EPointTypes
POINT_RESIST_NORMAL_DAMAGE, // 99
// MR-10: Added missing POINT_* values
POINT_HIT_HP_RECOVERY, // 100
POINT_HIT_SP_RECOVERY, // 101
POINT_MANASHIELD, // 102 흑신수호 스킬에 의한 마나쉴드 효과 정도
POINT_PARTY_BUFFER_BONUS, // 103
POINT_PARTY_SKILL_MASTER_BONUS, // 104
POINT_HP_RECOVER_CONTINUE, // 105
POINT_SP_RECOVER_CONTINUE, // 106
POINT_STEAL_GOLD, // 107
POINT_POLYMORPH, // 108 변신한 몬스터 번호
POINT_MOUNT, // 109 타고있는 몬스터 번호
POINT_PARTY_HASTE_BONUS, // 110
POINT_PARTY_DEFENDER_BONUS, // 111
// MR-10: -- END OF -- Added missing POINT_* values
POINT_STAT_RESET_COUNT = 112,
POINT_HORSE_SKILL = 113,
@@ -1616,6 +1635,9 @@ enum EPointTypes
POINT_NORMAL_HIT_DEFEND_BONUS, // 124 평타 방어 데미지
POINT_PC_BANG_EXP_BONUS, // 125
POINT_PC_BANG_DROP_BONUS, // 126 PC방 전용 드롭률 보너스
// MR-10: Added missing POINT_* values
POINT_RAMADAN_CANDY_BONUS_EXP, // 라마단 사탕 경험치 증가용
// MR-10: -- END OF -- Added missing POINT_* values
POINT_ENERGY = 128, // 128 기력
@@ -1626,6 +1648,20 @@ enum EPointTypes
// 임시로 이렇게 둔다.
POINT_ENERGY_END_TIME = 129, // 129 기력 종료 시간
// MR-10: Added missing POINT_* values
POINT_COSTUME_ATTR_BONUS = 130,
POINT_MAGIC_ATT_BONUS_PER = 131,
POINT_MELEE_MAGIC_ATT_BONUS_PER = 132,
// 추가 속성 저항
POINT_RESIST_ICE = 133, // 냉기 저항 : 얼음공격에 대한 대미지 감소
POINT_RESIST_EARTH = 134, // 대지 저항 : 얼음공격에 대한 대미지 감소
POINT_RESIST_DARK = 135, // 어둠 저항 : 얼음공격에 대한 대미지 감소
POINT_RESIST_CRITICAL = 136, // 크리티컬 저항 : 상대의 크리티컬 확률을 감소
POINT_RESIST_PENETRATE = 137, // 관통타격 저항 : 상대의 관통타격 확률을 감소
// MR-10: -- END OF -- Added missing POINT_* values
// 클라이언트 포인트
POINT_MIN_WEP = 200,
POINT_MAX_WEP,

View File

@@ -676,6 +676,13 @@ bool CPythonPlayer::__UseSkill(DWORD dwSlotIndex)
}
}
// celine skill fix
if (pkInstTarget && pkInstTarget != pkInstMain)
{
pkInstMain->SetSkillTarget(pkInstTarget->GetVirtualID());
}
// END OF celine skill fix
// 관격술 처리
DWORD dwTargetMaxCount = pSkillData->GetTargetCount(rkSkillInst.fcurEfficientPercentage);
DWORD dwRange = __GetSkillTargetRange(*pSkillData);