diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 2c87078..adc7fbb 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -985,6 +985,14 @@ void Player::ProcPrepareItems2(const ::google::protobuf::RepeatedPtrField< cs::M } } +void Player::ProcSkillList(const ::google::protobuf::RepeatedPtrField< cs::MFPair >& + skill_list) +{ + for (auto& pair : skill_list) { + AddSkill(pair.key()); + } +} + void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg) { int old_socket_handle = socket_handle; diff --git a/server/gameserver/player.h b/server/gameserver/player.h index f4667fa..3b65e8b 100644 --- a/server/gameserver/player.h +++ b/server/gameserver/player.h @@ -94,6 +94,8 @@ class Player : public Human void ProcPrepareItems2(const ::google::protobuf::RepeatedPtrField< cs::MFPair >& prepare_items); void ProcPreSettlementInfo(const std::string& pre_settlement_info); + void ProcSkillList(const ::google::protobuf::RepeatedPtrField< cs::MFPair >& + skill_list); void PushJoinRoomMsg(); void _CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg); diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 728b075..5ef6982 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -171,6 +171,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg) room->AddPlayer(hum); hum->ProcPrepareItems(msg.prepare_items()); hum->ProcPrepareItems2(msg.prepare_items2()); + hum->ProcSkillList(msg.skill_list()); PlayerMgr::Instance()->IncAccountNum(msg.account_id()); if (JsonDataMgr::Instance()->channel != 0 && JsonDataMgr::Instance()->channel != channel) {