diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 092e1ce0..6078c5f3 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -1191,11 +1191,45 @@ void RoomMgr::_CMJoinMoba(f8::MsgHdr* hdr, const cs::CMJoin& msg) p->SetRoom(room.get()); p->TraverseMemberList ( - [p, msg] (MobaMember* m) -> bool + [p, msg, ip_saddr, socket_handle] (MobaMember* m) -> bool { Player* hum = p->GetRoom()->NewPlayer(); hum->room = p->GetRoom(); hum->proto_version = msg.proto_version(); +#if 0 + hum->hero_uniid = a8::XValue(msg.hero_uniid()); +#endif + //hum->battle_uuid = member->GetNetData()->battle_uuid; + //hum->is_valid_battle = member->GetNetData()->is_valid_battle; + //hum->payload = member->GetNetData()->payload; + //msg.set_session_id(member->GetSessionId()); + //msg.set_team_uuid(team->GetTeamUuid()); + PlayerMgr::Instance()-> + CreatePlayerByCMJoin(hum, + ip_saddr, + socket_handle, + msg + ); + hum->meta = mt::Hero::GetById(msg.hero_id()); + if (!hum->meta) { + hum->meta = mt::Param::s().human_meta; + } + //hum->SetBattleContext(member->GetNetData()); + hum->GetBattleContext()->Init(hum); + { + long long hero_uniid = 0; + int hero_lv = 1; + int quality = 1; + hum->GetBattleContext()->GetHeroLvQuality(hero_uniid, hero_lv, quality); + hum->hero_uniid = hero_uniid; + } + p->GetRoom()->AddPlayer(hum); + hum->ProcSkillList(); + hum->SetHP(hum->GetBattleContext()->GetMaxHP()); + hum->SetMaxHP(hum->GetHP()); + //member->Join(hum); + PlayerMgr::Instance()->IncAccountNum(msg.account_id()); + RoomMgr::Instance()->OnJoinRoomOk(msg, hum); return true; }); };