1
This commit is contained in:
parent
08e64375a8
commit
0fef2ada52
@ -154,9 +154,9 @@ bool App::Init(int argc, char* argv[])
|
|||||||
debug_mode
|
debug_mode
|
||||||
});
|
});
|
||||||
|
|
||||||
loop_mutex_ = new std::mutex();
|
loop_mutex_ = std::make_shared<std::mutex>();
|
||||||
loop_cond_ = new std::condition_variable();
|
loop_cond_ = std::make_shared<std::condition_variable>();
|
||||||
msg_mutex_ = new std::mutex();
|
msg_mutex_ = std::make_shared<std::mutex>();
|
||||||
|
|
||||||
srand(time(nullptr));
|
srand(time(nullptr));
|
||||||
InitLog();
|
InitLog();
|
||||||
@ -252,9 +252,9 @@ void App::UnInit()
|
|||||||
UnInitLog();
|
UnInitLog();
|
||||||
|
|
||||||
FreeSocketMsgQueue();
|
FreeSocketMsgQueue();
|
||||||
A8_SAFE_DELETE(msg_mutex_);
|
msg_mutex_ = nullptr;
|
||||||
A8_SAFE_DELETE(loop_cond_);
|
loop_cond_ = nullptr;
|
||||||
A8_SAFE_DELETE(loop_mutex_);
|
loop_mutex_ = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int App::Run()
|
int App::Run()
|
||||||
|
@ -88,10 +88,10 @@ private:
|
|||||||
a8::uuid::SnowFlake uuid_;
|
a8::uuid::SnowFlake uuid_;
|
||||||
|
|
||||||
long long last_run_tick_ = 0;
|
long long last_run_tick_ = 0;
|
||||||
std::mutex *loop_mutex_ = nullptr;
|
std::shared_ptr<std::mutex> loop_mutex_;
|
||||||
std::condition_variable *loop_cond_ = nullptr;
|
std::shared_ptr<std::condition_variable> loop_cond_;
|
||||||
|
|
||||||
std::mutex *msg_mutex_ = nullptr;
|
std::shared_ptr<std::mutex> msg_mutex_;
|
||||||
MsgNode* top_node_ = nullptr;
|
MsgNode* top_node_ = nullptr;
|
||||||
MsgNode* bot_node_ = nullptr;
|
MsgNode* bot_node_ = nullptr;
|
||||||
MsgNode* work_node_ = nullptr;
|
MsgNode* work_node_ = nullptr;
|
||||||
|
@ -93,36 +93,34 @@ void FrameMaker::Debug_OutObject(Human* hum)
|
|||||||
cs::SMUpdate* FrameMaker::MakeUpdateMsg(Human* hum)
|
cs::SMUpdate* FrameMaker::MakeUpdateMsg(Human* hum)
|
||||||
{
|
{
|
||||||
FrameData* framedata = &hum->GetFrameData();
|
FrameData* framedata = &hum->GetFrameData();
|
||||||
cs::SMUpdate* msg = new cs::SMUpdate;
|
auto msg = std::make_shared<cs::SMUpdate>();
|
||||||
Room* room = hum->room;
|
Room* room = hum->room;
|
||||||
|
|
||||||
PreProcess(msg, room, hum, framedata);
|
PreProcess(msg.get(), room, hum, framedata);
|
||||||
SerializeLootObjects(msg, room, hum, framedata);
|
SerializeLootObjects(msg.get(), room, hum, framedata);
|
||||||
SerializeNewObjects(msg, room, hum, framedata);
|
SerializeNewObjects(msg.get(), room, hum, framedata);
|
||||||
SerializeImageObjects(msg, room, hum, framedata);
|
SerializeImageObjects(msg.get(), room, hum, framedata);
|
||||||
SerializePartObjects(msg, room, hum, framedata);
|
SerializePartObjects(msg.get(), room, hum, framedata);
|
||||||
SerializeDelObjects(msg, room, hum, framedata);
|
SerializeDelObjects(msg.get(), room, hum, framedata);
|
||||||
SerializeOutObjects(msg, room, hum, framedata);
|
SerializeOutObjects(msg.get(), room, hum, framedata);
|
||||||
SerializeShots(msg, room, hum, framedata);
|
SerializeShots(msg.get(), room, hum, framedata);
|
||||||
SerializeEmotes(msg, room, hum, framedata);
|
SerializeEmotes(msg.get(), room, hum, framedata);
|
||||||
SerializeBullets(msg, room, hum, framedata);
|
SerializeBullets(msg.get(), room, hum, framedata);
|
||||||
SerializePlaySkills(msg, room, hum, framedata);
|
SerializePlaySkills(msg.get(), room, hum, framedata);
|
||||||
SerializeExplosions(msg, room, hum, framedata);
|
SerializeExplosions(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedBuffs(msg, room, hum, framedata);
|
SerializeChgedBuffs(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedEffects(msg, room, hum, framedata);
|
SerializeChgedEffects(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedBulletNums(msg, room, hum, framedata);
|
SerializeChgedBulletNums(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedHps(msg, room, hum, framedata);
|
SerializeChgedHps(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedSkillCds(msg, room, hum, framedata);
|
SerializeChgedSkillCds(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedSkillCurrTimes(msg, room, hum, framedata);
|
SerializeChgedSkillCurrTimes(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedItems(msg, room, hum, framedata);
|
SerializeChgedItems(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedWeaponAmmo(msg, room, hum, framedata);
|
SerializeChgedWeaponAmmo(msg.get(), room, hum, framedata);
|
||||||
SerializeDeadAliveObjs(msg, room, hum, framedata);
|
SerializeDeadAliveObjs(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedCars(msg, room, hum, framedata);
|
SerializeChgedCars(msg.get(), room, hum, framedata);
|
||||||
SerializeChgedProps(msg, room, hum, framedata);
|
SerializeChgedProps(msg.get(), room, hum, framedata);
|
||||||
SerializeDelBullets(msg, room, hum, framedata);
|
SerializeDelBullets(msg.get(), room, hum, framedata);
|
||||||
PostProcess(msg, room, hum, framedata);
|
PostProcess(msg.get(), room, hum, framedata);
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameMaker::PreProcess(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
void FrameMaker::PreProcess(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
||||||
|
@ -1460,7 +1460,7 @@ void Human::SendBattleReport()
|
|||||||
""
|
""
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
auto room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
||||||
if (!room) {
|
if (!room) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1670,7 +1670,7 @@ void Human::SendBattleSettlement()
|
|||||||
[room_uuid, tmp_account_id, data]
|
[room_uuid, tmp_account_id, data]
|
||||||
(bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
|
(bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
|
||||||
{
|
{
|
||||||
Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
auto room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
||||||
if (!room) {
|
if (!room) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1332,7 +1332,7 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg)
|
|||||||
[room_uuid, account_id = account_id, target_uniid]
|
[room_uuid, account_id = account_id, target_uniid]
|
||||||
(bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
|
(bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
|
||||||
{
|
{
|
||||||
Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
auto room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
||||||
if (!room) {
|
if (!room) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -85,19 +85,19 @@ void RoomMgr::UnInit()
|
|||||||
{
|
{
|
||||||
for (auto& pair : room_hash_) {
|
for (auto& pair : room_hash_) {
|
||||||
pair.second->UnInit();
|
pair.second->UnInit();
|
||||||
delete pair.second;
|
|
||||||
}
|
}
|
||||||
for (auto& pair : over_room_hash_) {
|
for (auto& pair : over_room_hash_) {
|
||||||
pair.second->UnInit();
|
pair.second->UnInit();
|
||||||
delete pair.second;
|
|
||||||
}
|
}
|
||||||
|
room_hash_.clear();
|
||||||
|
over_room_hash_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RoomMgr::Update(int delta_time)
|
void RoomMgr::Update(int delta_time)
|
||||||
{
|
{
|
||||||
long long real_alive_count = 0;
|
long long real_alive_count = 0;
|
||||||
for (auto& pair : room_hash_) {
|
for (auto& pair : room_hash_) {
|
||||||
Room* room = pair.second;
|
auto& room = pair.second;
|
||||||
room->Update(delta_time);
|
room->Update(delta_time);
|
||||||
real_alive_count += room->RealAliveCount();
|
real_alive_count += room->RealAliveCount();
|
||||||
}
|
}
|
||||||
@ -160,7 +160,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
time_t register_time = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
|
time_t register_time = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
|
||||||
int proto_version = msg.proto_version();
|
int proto_version = msg.proto_version();
|
||||||
int channel = f8::ExtractChannelIdFromAccountId(msg.account_id());
|
int channel = f8::ExtractChannelIdFromAccountId(msg.account_id());
|
||||||
Room* room = RoomMgr::Instance()->GetJoinableRoom
|
std::shared_ptr<Room> room = RoomMgr::Instance()->GetJoinableRoom
|
||||||
(
|
(
|
||||||
msg,
|
msg,
|
||||||
self_room_type,
|
self_room_type,
|
||||||
@ -194,7 +194,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
if (!hum->meta) {
|
if (!hum->meta) {
|
||||||
hum->meta = mt::Param::s().human_meta;
|
hum->meta = mt::Param::s().human_meta;
|
||||||
}
|
}
|
||||||
hum->room = room;
|
hum->room = room.get();
|
||||||
hum->SetBattleContext(results.at(0));
|
hum->SetBattleContext(results.at(0));
|
||||||
hum->GetBattleContext()->Init(hum);
|
hum->GetBattleContext()->Init(hum);
|
||||||
{
|
{
|
||||||
@ -235,7 +235,7 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
Room* room = GetRoomByUuid(a8::XValue(msg.room_uuid()));
|
auto room = GetRoomByUuid(a8::XValue(msg.room_uuid()));
|
||||||
if (!room) {
|
if (!room) {
|
||||||
send_reconnect_failed(hdr.socket_handle, 1,
|
send_reconnect_failed(hdr.socket_handle, 1,
|
||||||
TEXT("battle_server_reconnect_failreason_room_destoryed", "房间已销毁"));
|
TEXT("battle_server_reconnect_failreason_room_destoryed", "房间已销毁"));
|
||||||
@ -278,20 +278,20 @@ int RoomMgr::OverRoomNum()
|
|||||||
return over_room_hash_.size();
|
return over_room_hash_.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
Room* RoomMgr::GetJoinableRoom(const cs::CMJoin& msg,
|
std::shared_ptr<Room> RoomMgr::GetJoinableRoom(const cs::CMJoin& msg,
|
||||||
const RoomType_e self_room_type,
|
const RoomType_e self_room_type,
|
||||||
int game_times,
|
int game_times,
|
||||||
int creator_register_time,
|
int creator_register_time,
|
||||||
int proto_version,
|
int proto_version,
|
||||||
int channel
|
int channel
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
std::vector<std::vector<Room*>> group_rooms;
|
std::vector<std::vector<std::shared_ptr<Room>>> group_rooms;
|
||||||
for (int i = 0; i < RoomType_Max; ++i) {
|
for (int i = 0; i < RoomType_Max; ++i) {
|
||||||
group_rooms.push_back(std::vector<Room*>());
|
group_rooms.push_back(std::vector<std::shared_ptr<Room>>());
|
||||||
}
|
}
|
||||||
for (auto& pair : inactive_room_hash_) {
|
for (auto& pair : inactive_room_hash_) {
|
||||||
Room* room = pair.second;
|
auto& room = pair.second;
|
||||||
if (!room->GetCustomBattle() &&
|
if (!room->GetCustomBattle() &&
|
||||||
room->CanJoin(msg.account_id(),
|
room->CanJoin(msg.account_id(),
|
||||||
self_room_type,
|
self_room_type,
|
||||||
@ -338,10 +338,10 @@ Room* RoomMgr::GetJoinableRoom(const cs::CMJoin& msg,
|
|||||||
nullptr);
|
nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
Room* RoomMgr::GetJoinableRoom(MatchTeam* team)
|
std::shared_ptr<Room> RoomMgr::GetJoinableRoom(MatchTeam* team)
|
||||||
{
|
{
|
||||||
for (auto& pair : inactive_room_hash_) {
|
for (auto& pair : inactive_room_hash_) {
|
||||||
Room* room = pair.second;
|
auto room = pair.second;
|
||||||
if (room->CanJoin(team)) {
|
if (room->CanJoin(team)) {
|
||||||
return room;
|
return room;
|
||||||
}
|
}
|
||||||
@ -362,13 +362,13 @@ Room* RoomMgr::GetJoinableRoom(MatchTeam* team)
|
|||||||
nullptr);
|
nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
Room* RoomMgr::GetRoomByUuid(long long room_uuid)
|
std::shared_ptr<Room> RoomMgr::GetRoomByUuid(long long room_uuid)
|
||||||
{
|
{
|
||||||
auto itr = room_hash_.find(room_uuid);
|
auto itr = room_hash_.find(room_uuid);
|
||||||
return itr != room_hash_.end() ? itr->second : nullptr;
|
return itr != room_hash_.end() ? itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
Room* RoomMgr::GetRoomByIdx(int room_idx)
|
std::shared_ptr<Room> RoomMgr::GetRoomByIdx(int room_idx)
|
||||||
{
|
{
|
||||||
auto itr = room_idx_hash_.find(room_idx);
|
auto itr = room_idx_hash_.find(room_idx);
|
||||||
return itr != room_idx_hash_.end() ? itr->second : nullptr;
|
return itr != room_idx_hash_.end() ? itr->second : nullptr;
|
||||||
@ -380,7 +380,7 @@ void RoomMgr::AddOverRoom(long long room_uuid)
|
|||||||
[room_uuid] (int event, const a8::Args* args)
|
[room_uuid] (int event, const a8::Args* args)
|
||||||
{
|
{
|
||||||
if (a8::TIMER_EXEC_EVENT == event) {
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
auto room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
||||||
if (room) {
|
if (room) {
|
||||||
RoomMgr::Instance()->room_hash_.erase(room->GetRoomUuid());
|
RoomMgr::Instance()->room_hash_.erase(room->GetRoomUuid());
|
||||||
RoomMgr::Instance()->over_room_hash_[room->GetRoomUuid()] = room;
|
RoomMgr::Instance()->over_room_hash_[room->GetRoomUuid()] = room;
|
||||||
@ -390,7 +390,7 @@ void RoomMgr::AddOverRoom(long long room_uuid)
|
|||||||
};
|
};
|
||||||
|
|
||||||
inactive_room_hash_.erase(room_uuid);
|
inactive_room_hash_.erase(room_uuid);
|
||||||
Room* room = GetRoomByUuid(room_uuid);
|
auto room = GetRoomByUuid(room_uuid);
|
||||||
if (room) {
|
if (room) {
|
||||||
room->added_to_over_room = true;
|
room->added_to_over_room = true;
|
||||||
f8::Timer::Instance()->SetIntervalEx
|
f8::Timer::Instance()->SetIntervalEx
|
||||||
@ -474,7 +474,6 @@ void RoomMgr::FreeOverRoom(long long room_uuid)
|
|||||||
--PerfMonitor::Instance()->room_num[itr->second->GetRoomType()];
|
--PerfMonitor::Instance()->room_num[itr->second->GetRoomType()];
|
||||||
itr->second->UnInit();
|
itr->second->UnInit();
|
||||||
room_idx_hash_.erase(itr->second->GetRoomIdx());
|
room_idx_hash_.erase(itr->second->GetRoomIdx());
|
||||||
delete itr->second;
|
|
||||||
over_room_hash_.erase(itr);
|
over_room_hash_.erase(itr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -528,14 +527,14 @@ int RoomMgr::AllocRoomIdx()
|
|||||||
return current_room_idx_;
|
return current_room_idx_;
|
||||||
}
|
}
|
||||||
|
|
||||||
Room* RoomMgr::CreateRoom(const cs::CMJoin& msg,
|
std::shared_ptr<Room> RoomMgr::CreateRoom(const cs::CMJoin& msg,
|
||||||
RoomType_e room_type,
|
RoomType_e room_type,
|
||||||
int game_times,
|
int game_times,
|
||||||
int creator_register_time,
|
int creator_register_time,
|
||||||
int creator_proto_version,
|
int creator_proto_version,
|
||||||
int creator_channel,
|
int creator_channel,
|
||||||
int map_id,
|
int map_id,
|
||||||
std::shared_ptr<CustomBattle> custom_battle)
|
std::shared_ptr<CustomBattle> custom_battle)
|
||||||
{
|
{
|
||||||
int room_idx = AllocRoomIdx();
|
int room_idx = AllocRoomIdx();
|
||||||
if (room_idx < 1) {
|
if (room_idx < 1) {
|
||||||
@ -563,8 +562,8 @@ Room* RoomMgr::CreateRoom(const cs::CMJoin& msg,
|
|||||||
A8_ABORT();
|
A8_ABORT();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Room* room = new Room();
|
auto room = std::make_shared<Room>();
|
||||||
MapMgr::Instance()->AttachRoom(room, init_info);
|
MapMgr::Instance()->AttachRoom(room.get(), init_info);
|
||||||
room->InitData(init_info);
|
room->InitData(init_info);
|
||||||
room->Init();
|
room->Init();
|
||||||
inactive_room_hash_[room->GetRoomUuid()] = room;
|
inactive_room_hash_[room->GetRoomUuid()] = room;
|
||||||
@ -619,7 +618,7 @@ bool RoomMgr::IsGM(const std::string& account_id)
|
|||||||
|
|
||||||
void RoomMgr::JoinTeam(MatchTeam* team)
|
void RoomMgr::JoinTeam(MatchTeam* team)
|
||||||
{
|
{
|
||||||
Room* room = GetJoinableRoom(team);
|
auto room = GetJoinableRoom(team);
|
||||||
if (!room) {
|
if (!room) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -959,7 +958,7 @@ void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
time_t register_time = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
|
time_t register_time = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
|
||||||
int proto_version = msg.proto_version();
|
int proto_version = msg.proto_version();
|
||||||
int channel = f8::ExtractChannelIdFromAccountId(msg.account_id());
|
int channel = f8::ExtractChannelIdFromAccountId(msg.account_id());
|
||||||
Room* room = RoomMgr::Instance()->CreateRoom
|
auto room = RoomMgr::Instance()->CreateRoom
|
||||||
(*join_msg,
|
(*join_msg,
|
||||||
self_room_type,
|
self_room_type,
|
||||||
game_times,
|
game_times,
|
||||||
@ -968,7 +967,7 @@ void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
channel,
|
channel,
|
||||||
msg.mapid(),
|
msg.mapid(),
|
||||||
p);
|
p);
|
||||||
p->SetRoom(room);
|
p->SetRoom(room.get());
|
||||||
}
|
}
|
||||||
Player* hum = p->GetRoom()->NewPlayer();
|
Player* hum = p->GetRoom()->NewPlayer();
|
||||||
hum->room = p->GetRoom();
|
hum->room = p->GetRoom();
|
||||||
|
@ -78,7 +78,7 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
|||||||
void ActiveRoom(long long room_uuid);
|
void ActiveRoom(long long room_uuid);
|
||||||
int RoomNum();
|
int RoomNum();
|
||||||
int OverRoomNum();
|
int OverRoomNum();
|
||||||
Room* GetRoomByUuid(long long uuid);
|
std::shared_ptr<Room> GetRoomByUuid(long long uuid);
|
||||||
void AddOverRoom(long long room_uuid);
|
void AddOverRoom(long long room_uuid);
|
||||||
bool IsGM(const std::string& account_id);
|
bool IsGM(const std::string& account_id);
|
||||||
void JoinTeam(MatchTeam* team);
|
void JoinTeam(MatchTeam* team);
|
||||||
@ -91,27 +91,27 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void InstallReportStateTimer();
|
void InstallReportStateTimer();
|
||||||
Room* GetRoomByIdx(int room_idx);
|
std::shared_ptr<Room> GetRoomByIdx(int room_idx);
|
||||||
Room* GetJoinableRoom(const cs::CMJoin& msg,
|
std::shared_ptr<Room> GetJoinableRoom(const cs::CMJoin& msg,
|
||||||
const RoomType_e self_room_type,
|
const RoomType_e self_room_type,
|
||||||
int game_times,
|
int game_times,
|
||||||
int creator_register_time,
|
int creator_register_time,
|
||||||
int proto_version,
|
int proto_version,
|
||||||
int channel);
|
int channel);
|
||||||
Room* GetJoinableRoom(MatchTeam* team);
|
std::shared_ptr<Room> GetJoinableRoom(MatchTeam* team);
|
||||||
void ReportServerState(int instance_id, const std::string& host, int port);
|
void ReportServerState(int instance_id, const std::string& host, int port);
|
||||||
void FreeOverRoom(long long room_uuid);
|
void FreeOverRoom(long long room_uuid);
|
||||||
bool IsLimitJoin();
|
bool IsLimitJoin();
|
||||||
|
|
||||||
int AllocRoomIdx();
|
int AllocRoomIdx();
|
||||||
Room* CreateRoom(const cs::CMJoin& msg,
|
std::shared_ptr<Room> CreateRoom(const cs::CMJoin& msg,
|
||||||
RoomType_e room_type,
|
RoomType_e room_type,
|
||||||
int game_times,
|
int game_times,
|
||||||
int creator_register_time,
|
int creator_register_time,
|
||||||
int creator_proto_version,
|
int creator_proto_version,
|
||||||
int creator_channel,
|
int creator_channel,
|
||||||
int map_id,
|
int map_id,
|
||||||
std::shared_ptr<CustomBattle> custom_battle);
|
std::shared_ptr<CustomBattle> custom_battle);
|
||||||
void JoinErrorHandle(const cs::CMJoin& msg, int error_code, int socket_handle);
|
void JoinErrorHandle(const cs::CMJoin& msg, int error_code, int socket_handle);
|
||||||
std::string GenTeamHashData(const std::string& team_uuid, std::map<std::string, long long>* team_hash);
|
std::string GenTeamHashData(const std::string& team_uuid, std::map<std::string, long long>* team_hash);
|
||||||
void OnJoinRoomOk(const cs::CMJoin& msg, Player* hum);
|
void OnJoinRoomOk(const cs::CMJoin& msg, Player* hum);
|
||||||
@ -127,10 +127,10 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
|||||||
int current_room_idx_ = 0;
|
int current_room_idx_ = 0;
|
||||||
int match_mode_ = 0;
|
int match_mode_ = 0;
|
||||||
|
|
||||||
std::map<long long, Room*> inactive_room_hash_;
|
std::map<long long, std::shared_ptr<Room>> inactive_room_hash_;
|
||||||
std::map<long long, Room*> room_hash_;
|
std::map<long long, std::shared_ptr<Room>> room_hash_;
|
||||||
std::map<int, Room*> room_idx_hash_;
|
std::map<int, std::shared_ptr<Room>> room_idx_hash_;
|
||||||
std::map<long long, Room*> over_room_hash_;
|
std::map<long long, std::shared_ptr<Room>> over_room_hash_;
|
||||||
f8::Attacher reportstate_timer_attacher_;
|
f8::Attacher reportstate_timer_attacher_;
|
||||||
std::map<std::string, int> gm_hash_;
|
std::map<std::string, int> gm_hash_;
|
||||||
std::map<std::string, std::map<std::string, long long>> team_room_hash_;
|
std::map<std::string, std::map<std::string, long long>> team_room_hash_;
|
||||||
|
@ -252,7 +252,7 @@ void Team::SendTeamBattleReport(Human* sender)
|
|||||||
[room_uuid, team_id]
|
[room_uuid, team_id]
|
||||||
(bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
|
(bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
|
||||||
{
|
{
|
||||||
Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
auto room = RoomMgr::Instance()->GetRoomByUuid(room_uuid);
|
||||||
if (room) {
|
if (room) {
|
||||||
Team* team = room->GetTeam(team_id);
|
Team* team = room->GetTeam(team_id);
|
||||||
if (team) {
|
if (team) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user