diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index f86f467..ab3a72c 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1863,6 +1863,21 @@ void Human::ChangeToRace(RaceType_e race, int level) level_ = level; room->frame_event.AddRaceChg(this); room->frame_event.AddLevelChg(this); + if (race_ == kHumanRace) { + meta = MetaMgr::Instance()->GetPlayer(HUMAN_RACE_META_START_ID + level_ - 1); + if (!meta) { + abort(); + } + exp_ = meta->i->exp(); + } else if (race_ == kZombieRace) { + meta = MetaMgr::Instance()->GetPlayer(ZOMBIE_RACE_META_START_ID + level_ - 1); + if (!meta) { + abort(); + } + exp_ = meta->i->exp(); + } else { + abort(); + } } void Human::_InternalUpdateMove(float speed)