diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 0784c54..8b8b33c 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -564,6 +564,9 @@ bool Human::IsCollisionInMapService() if (room->OverBorder(GetPos(), meta->i->radius())){ return true; } + if (HasBuffEffect(kBET_ThroughWall)) { + return false; + } std::set colliders; room->map_service->GetColliders(room, GetX(), GetY(), colliders); diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 50bbc7a..d935c7a 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -40,7 +40,7 @@ namespace MetaData } { std::vector strings; - a8::Split(i->game_start_buff_list(), strings, '|'); + a8::Split(i->game_start_buff_list(), strings, ':'); for (auto& str : strings) { buff_list.push_back(a8::XValue(str).GetInt()); } diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 364056f..b734cae 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -62,7 +62,11 @@ public: int GetRoomIdx() { return room_idx_; } std::string GetMapTplName() { return map_tpl_name_; } const MetaData::Map* GetMapMeta() { return map_meta_; } + #if 1 + bool IsWaitingStart() { return false; } + #else bool IsWaitingStart() { return waiting_start_; } + #endif int GetPlayerNum(); int AliveCount(); diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 0158dde..72fbf98 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -138,6 +138,9 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg) #endif int game_times = 0; RoomType_e self_room_type = GetHumanRoomType(msg, game_times); + if (self_room_type < RT_OldBrid1) { + self_room_type = RT_OldBrid1; + } time_t register_time = f8::ExtractRegisterTimeFromSessionId(msg.session_id()); int proto_version = msg.proto_version(); int channel = f8::ExtractChannelIdFromAccountId(msg.account_id());