This commit is contained in:
aozhiwei 2023-11-28 10:59:41 +08:00
parent 6fabf19c71
commit 863e1fbae2
3 changed files with 22 additions and 1 deletions

View File

@ -3823,12 +3823,22 @@ void Creature::InternalUseSkill()
void Creature::AddSkillHoldState(int skill_id)
{
skill_hold_skill_id = skill_id;
skill_hold_start_frameno = room->GetFrameNo();
Skill* skill = GetSkill(skill_hold_skill_id);
if (skill && skill->meta->skill_hold_buff()) {
TryAddBuff(owner_,
skill->meta->skill_hold_buff());
}
}
void Creature::ClearSkillHoldState()
{
if (skill_hold_skill_id != 0) {
Skill* skill = GetSkill(skill_hold_skill_id);
if (skill && skill->meta->skill_hold_buff()) {
RemoveBuffById(skill->meta->skill_hold_buff());
}
skill_hold_skill_id = 0;
skill_hold_start_frameno = 0;
}

View File

@ -263,6 +263,14 @@ void Player::InternalUpdate(int delta_time)
if (throw_bomb) {
UpdateThrowBomb();
}
if (skill_hold) {
if (skill_hold_skill_id && skill_hold_skill_id != skill_hold) {
ClearSkillHoldState();
}
AddSkillHoldState(skill_hold);
} else {
ClearSkillHoldState();
}
#if 0
if (moving) {
UpdateMoving();
@ -1186,6 +1194,7 @@ void Player::_CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg)
}
last_cmmove_frameno = room->GetFrameNo();
trace_target_uniid = msg.trace_target_uniid();
skill_hold = msg.skill_hold();
#ifdef MYDEBUG1
a8::XPrintf("move_dir:%f %f frameno:%d %d moving:%d\n",
{

View File

@ -91,6 +91,8 @@ class Player : public Human
std::vector<int> interaction_objids;
int skill_hold = 0;
virtual ~Player() override;
virtual void Initialize() override;
virtual void Update(int delta_time) override;