1
This commit is contained in:
parent
6fabf19c71
commit
863e1fbae2
@ -3823,12 +3823,22 @@ void Creature::InternalUseSkill()
|
|||||||
|
|
||||||
void Creature::AddSkillHoldState(int skill_id)
|
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()
|
void Creature::ClearSkillHoldState()
|
||||||
{
|
{
|
||||||
if (skill_hold_skill_id != 0) {
|
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_skill_id = 0;
|
||||||
skill_hold_start_frameno = 0;
|
skill_hold_start_frameno = 0;
|
||||||
}
|
}
|
||||||
|
@ -263,6 +263,14 @@ void Player::InternalUpdate(int delta_time)
|
|||||||
if (throw_bomb) {
|
if (throw_bomb) {
|
||||||
UpdateThrowBomb();
|
UpdateThrowBomb();
|
||||||
}
|
}
|
||||||
|
if (skill_hold) {
|
||||||
|
if (skill_hold_skill_id && skill_hold_skill_id != skill_hold) {
|
||||||
|
ClearSkillHoldState();
|
||||||
|
}
|
||||||
|
AddSkillHoldState(skill_hold);
|
||||||
|
} else {
|
||||||
|
ClearSkillHoldState();
|
||||||
|
}
|
||||||
#if 0
|
#if 0
|
||||||
if (moving) {
|
if (moving) {
|
||||||
UpdateMoving();
|
UpdateMoving();
|
||||||
@ -1186,6 +1194,7 @@ void Player::_CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg)
|
|||||||
}
|
}
|
||||||
last_cmmove_frameno = room->GetFrameNo();
|
last_cmmove_frameno = room->GetFrameNo();
|
||||||
trace_target_uniid = msg.trace_target_uniid();
|
trace_target_uniid = msg.trace_target_uniid();
|
||||||
|
skill_hold = msg.skill_hold();
|
||||||
#ifdef MYDEBUG1
|
#ifdef MYDEBUG1
|
||||||
a8::XPrintf("move_dir:%f %f frameno:%d %d moving:%d\n",
|
a8::XPrintf("move_dir:%f %f frameno:%d %d moving:%d\n",
|
||||||
{
|
{
|
||||||
|
@ -91,6 +91,8 @@ class Player : public Human
|
|||||||
|
|
||||||
std::vector<int> interaction_objids;
|
std::vector<int> interaction_objids;
|
||||||
|
|
||||||
|
int skill_hold = 0;
|
||||||
|
|
||||||
virtual ~Player() override;
|
virtual ~Player() override;
|
||||||
virtual void Initialize() override;
|
virtual void Initialize() override;
|
||||||
virtual void Update(int delta_time) override;
|
virtual void Update(int delta_time) override;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user