1
This commit is contained in:
parent
4011004f15
commit
f2ab697148
@ -2155,6 +2155,7 @@ void Creature::SetCurrWeapon(Weapon* weapon)
|
||||
A8_ABORT();
|
||||
}
|
||||
#endif
|
||||
bool need_recalc = curr_weapon_ != weapon;
|
||||
if (auto_switch_weapon_timer_) {
|
||||
room->xtimer.DeleteTimer(auto_switch_weapon_timer_);
|
||||
}
|
||||
@ -2162,6 +2163,9 @@ void Creature::SetCurrWeapon(Weapon* weapon)
|
||||
GetTrigger()->TakeonWeapon(curr_weapon_, weapon);
|
||||
}
|
||||
curr_weapon_ = weapon;
|
||||
if (need_recalc) {
|
||||
RecalcDtoAttr();
|
||||
}
|
||||
}
|
||||
|
||||
void Creature::ResetAllSkillCd()
|
||||
@ -3049,3 +3053,21 @@ float Creature::GetAttrRate(int attr_id)
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
void Creature::RecalcDtoAttr()
|
||||
{
|
||||
if (!IsHuman()) {
|
||||
return;
|
||||
}
|
||||
if (GetCurrWeapon()) {
|
||||
if (GetBattleContext()) {
|
||||
GetBattleContext()->CalcAttr(AsHuman()->hero_uniid,
|
||||
GetCurrWeapon()->weapon_uniid);
|
||||
}
|
||||
} else {
|
||||
if (GetBattleContext()) {
|
||||
GetBattleContext()->CalcAttr(AsHuman()->hero_uniid,
|
||||
"");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -255,6 +255,7 @@ class Creature : public MoveableEntity
|
||||
void WinSkillExp(int win_exp);
|
||||
float GetAttrAbs(int attr_id);
|
||||
float GetAttrRate(int attr_id);
|
||||
void RecalcDtoAttr();
|
||||
|
||||
protected:
|
||||
virtual void OnBuffRemove(Buff& buff);
|
||||
|
@ -649,6 +649,7 @@ void Player::ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google:
|
||||
if (!prepare_items.size() > 0) {
|
||||
SyncAroundPlayers(__FILE__, __LINE__, __func__);
|
||||
}
|
||||
RecalcDtoAttr();
|
||||
}
|
||||
|
||||
void Player::ProcPrepareItems2(const ::google::protobuf::RepeatedPtrField< cs::MFPair >&
|
||||
|
Loading…
x
Reference in New Issue
Block a user