diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index feec2b3..0262129 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3773,6 +3773,18 @@ void Human::AddPassiveSkillBuff(MetaData::Skill* skill_meta) void Human::OnMetaChange() { + if (GetRace() == kZombieRace) { + MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(meta->i->normal_skill()); + if (weapon_meta) { + default_weapon.weapon_idx = 0; + default_weapon.weapon_id = weapon_meta->i->id(); + default_weapon.weapon_lv = 1; + default_weapon.ammo = 1; + default_weapon.meta = weapon_meta; + default_weapon.Recalc(); + curr_weapon = &weapons[0]; + } + } skill_meta_ = MetaMgr::Instance()->GetSkill(meta->i->active_skill()); ResetSkill(); MetaData::Skill* passive_skill_meta = MetaMgr::Instance()->GetSkill(meta->i->passive_skill()); diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index c0bed36..29a9164 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -128,6 +128,7 @@ message Player optional int32 zbmode_weapon_lv = 21; optional int32 revive_time = 22; optional string name = 23; + optional int32 normal_skill = 24; } message Robot