1
This commit is contained in:
parent
bbc1fc7b93
commit
076cfc6b7e
@ -1931,26 +1931,14 @@ void Human::ChangeToRace(RaceType_e race, int level)
|
||||
abort();
|
||||
}
|
||||
exp_ = meta->i->exp();
|
||||
skill_meta_ = MetaMgr::Instance()->GetSkill(meta->i->active_skill());
|
||||
ResetSkill();
|
||||
MetaData::Skill* passive_skill_meta = MetaMgr::Instance()->GetSkill(meta->i->passive_skill());
|
||||
ClearPassiveSkill();
|
||||
if (passive_skill_meta) {
|
||||
AddPassiveSkill(passive_skill_meta);
|
||||
}
|
||||
OnMetaChange();
|
||||
} else if (race_ == kZombieRace) {
|
||||
meta = MetaMgr::Instance()->GetPlayer(ZOMBIE_RACE_META_START_ID + level_ - 1);
|
||||
if (!meta) {
|
||||
abort();
|
||||
}
|
||||
exp_ = meta->i->exp();
|
||||
skill_meta_ = MetaMgr::Instance()->GetSkill(meta->i->active_skill());
|
||||
ResetSkill();
|
||||
MetaData::Skill* passive_skill_meta = MetaMgr::Instance()->GetSkill(meta->i->passive_skill());
|
||||
ClearPassiveSkill();
|
||||
if (passive_skill_meta) {
|
||||
AddPassiveSkill(passive_skill_meta);
|
||||
}
|
||||
OnMetaChange();
|
||||
} else {
|
||||
abort();
|
||||
}
|
||||
@ -1988,11 +1976,7 @@ void Human::WinExp(Human* sender, int exp)
|
||||
} while (true);
|
||||
if (old_meta != meta) {
|
||||
room->frame_event.AddZombieIdChg(this);
|
||||
MetaData::Skill* passive_skill_meta = MetaMgr::Instance()->GetSkill(meta->i->passive_skill());
|
||||
ClearPassiveSkill();
|
||||
if (passive_skill_meta) {
|
||||
AddPassiveSkill(passive_skill_meta);
|
||||
}
|
||||
OnMetaChange();
|
||||
if (GetRace() == kZombieRace && meta->i->level() == 3) {
|
||||
room->TouchPlayerList
|
||||
(
|
||||
@ -3786,3 +3770,14 @@ void Human::AddPassiveSkillBuff(MetaData::Skill* skill_meta)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Human::OnMetaChange()
|
||||
{
|
||||
skill_meta_ = MetaMgr::Instance()->GetSkill(meta->i->active_skill());
|
||||
ResetSkill();
|
||||
MetaData::Skill* passive_skill_meta = MetaMgr::Instance()->GetSkill(meta->i->passive_skill());
|
||||
ClearPassiveSkill();
|
||||
if (passive_skill_meta) {
|
||||
AddPassiveSkill(passive_skill_meta);
|
||||
}
|
||||
}
|
||||
|
@ -330,6 +330,7 @@ private:
|
||||
bool HasPassiveSkill(MetaData::Skill* skill_meta);
|
||||
void ClearPassiveSkillBuff(MetaData::Skill* skill_meta);
|
||||
void AddPassiveSkillBuff(MetaData::Skill* skill_meta);
|
||||
void OnMetaChange();
|
||||
|
||||
protected:
|
||||
int level_ = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user