This commit is contained in:
aozhiwei 2023-11-08 13:34:41 +08:00
parent 9b633fd125
commit d559f5cd08

View File

@ -974,6 +974,7 @@ void Creature::DoSkill(int skill_id,
}
DoSkillPreProc(skill_id, target_id);
ResetSkill();
ClearSkillLocalVars(skill_id);
skill_target_id_ = target_id;
skill_dir_ = skill_dir;
skill_distance_ = skill_distance;
@ -3676,15 +3677,35 @@ void Creature::InitMobaRoad()
void Creature::ClearSkillLocalVars(int skill_id)
{
auto itr = skill_local_vars_.find(skill_id);
if (itr != skill_local_vars_.end()) {
skill_local_vars_.erase(itr);
}
}
float Creature::GetSkillLocalVar(int skill_id, int idx)
{
auto itr = skill_local_vars_.find(skill_id);
if (itr != skill_local_vars_.end()) {
auto itr2 = itr->second.find(idx);
if (itr2 != itr->second.end()) {
return itr2->second;
}
}
return 0.0f;
}
void Creature::SetSkillLocalVar(int skill_id, int idx, float val)
{
auto itr = skill_local_vars_.find(skill_id);
if (itr == skill_local_vars_.end()) {
skill_local_vars_[skill_id] = std::map<int, float>();
itr = skill_local_vars_.find(skill_id);
}
auto itr2 = itr->second.find(idx);
if (itr2 != itr->second.end()) {
itr2->second = val;
} else {
itr->second[idx] = val;
}
}