From e36b3b0a2aaf7470a9e5d87c2834621f1b25a1d2 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 13 Mar 2019 15:28:38 +0800 Subject: [PATCH] add room roommgr --- server/gameserver/constant.h | 3 +- server/gameserver/handlermgr.cc | 12 +++++++- server/gameserver/player.cc | 30 ++++++++++++++++++ server/gameserver/player.h | 42 ++++++++++++++++++++++++++ server/gameserver/playermgr.cc | 19 ++++++++++++ server/gameserver/playermgr.h | 21 +++++++++++++ server/gameserver/room.cc | 0 server/gameserver/room.h | 8 +++++ server/gameserver/roommgr.cc | 20 ++++++++++++ server/gameserver/roommgr.h | 22 ++++++++++++++ server/tools/protobuild/cs_proto.proto | 5 ++- 11 files changed, 177 insertions(+), 5 deletions(-) create mode 100644 server/gameserver/room.cc create mode 100644 server/gameserver/room.h create mode 100644 server/gameserver/roommgr.cc create mode 100644 server/gameserver/roommgr.h diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 9361c4e..3f59f47 100755 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -27,8 +27,9 @@ enum NetHandler_e { HID_Player, HID_PlayerMgr, + HID_Room, + HID_RoomMgr, HID_GGListener, - HID_Bag, HID_Storage, HID_DBEngine, HID_Mission, diff --git a/server/gameserver/handlermgr.cc b/server/gameserver/handlermgr.cc index 2da74b4..761a076 100644 --- a/server/gameserver/handlermgr.cc +++ b/server/gameserver/handlermgr.cc @@ -7,6 +7,9 @@ #include "GGListener.h" #include "metamgr.h" #include "app.h" +#include "player.h" +#include "roommgr.h" +#include "cs_proto.pb.h" static void _GMOpsSelfChecking(f8::JsonHttpRequest* request) { @@ -39,7 +42,14 @@ void HandlerMgr::UnInit() void HandlerMgr::RegisterNetMsgHandlers() { - // RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect); + //RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect); + RegisterNetMsgHandler(&ggmsghandler, &RoomMgr::_CMJoin); + + RegisterNetMsgHandler(&ggmsghandler, &Player::_CMMove); + RegisterNetMsgHandler(&ggmsghandler, &Player::_CMDropItem); + RegisterNetMsgHandler(&ggmsghandler, &Player::_CMEmote); + RegisterNetMsgHandler(&ggmsghandler, &Player::_CMSpectate); + RegisterNetMsgHandler(&ggmsghandler, &Player::_CMVoice); } void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle, diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index e69de29..a55fe39 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -0,0 +1,30 @@ +#include "precompile.h" + +#include "playermgr.h" +#include "player.h" +#include "cs_proto.pb.h" + +void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg) +{ + +} + +void Player::_CMDropItem(f8::MsgHdr& hdr, const cs::CMDropItem& msg) +{ + +} + +void Player::_CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg) +{ + +} + +void Player::_CMSpectate(f8::MsgHdr& hdr, const cs::CMSpectate& msg) +{ + +} + +void Player::_CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg) +{ + +} diff --git a/server/gameserver/player.h b/server/gameserver/player.h index e69de29..06bde56 100644 --- a/server/gameserver/player.h +++ b/server/gameserver/player.h @@ -0,0 +1,42 @@ +#pragma once + +namespace cs +{ + class CMMove; + class CMDropItem; + class CMEmote; + class CMSpectate; + class CMVoice; +} + +class Player +{ + public: + enum { HID = HID_Player }; + + public: + int obj_uniid = 0; + float health = 0.0; + + void _CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg); + void _CMDropItem(f8::MsgHdr& hdr, const cs::CMDropItem& msg); + void _CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg); + void _CMSpectate(f8::MsgHdr& hdr, const cs::CMSpectate& msg); + void _CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg); + +private: + bool dead_ = false; + bool downed_ = false; + bool disconnected_ = false; + int anim_type_ = 0; + int anim_seq_ = 0; + int action_type_ = 0; + int skin_ = 0; + int helmet_ = 0; + int chest_ = 0; + int weapon_ = 0; + int energy_shield_ = 0; + int vip_ = 0; + int sdmg_ = 0; + +}; diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index e69de29..1703c32 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -0,0 +1,19 @@ +#include "precompile.h" + +#include "playermgr.h" +#include "player.h" + +void PlayerMgr::Init() +{ + +} + +void PlayerMgr::UnInit() +{ + +} + +void PlayerMgr::Update() +{ + +} diff --git a/server/gameserver/playermgr.h b/server/gameserver/playermgr.h index e69de29..a7c252a 100644 --- a/server/gameserver/playermgr.h +++ b/server/gameserver/playermgr.h @@ -0,0 +1,21 @@ +#pragma once + +class Player; +class PlayerMgr : public a8::Singleton +{ + public: + enum { HID = HID_PlayerMgr }; + + private: + PlayerMgr() {}; + friend class a8::Singleton; + + public: + void Init(); + void UnInit(); + void Update(); + + private: + std::map id_hash_; + std::map socket_hash_; +}; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/room.h b/server/gameserver/room.h new file mode 100644 index 0000000..fc01815 --- /dev/null +++ b/server/gameserver/room.h @@ -0,0 +1,8 @@ +#pragma once + +class Room +{ + private: + long long room_id_ = 0; + +}; diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc new file mode 100644 index 0000000..cbb139e --- /dev/null +++ b/server/gameserver/roommgr.cc @@ -0,0 +1,20 @@ +#include "precompile.h" + +#include "roommgr.h" +#include "room.h" +#include "cs_proto.pb.h" + +void RoomMgr::Init() +{ + +} + +void RoomMgr::UnInit() +{ + +} + +void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg) +{ + +} diff --git a/server/gameserver/roommgr.h b/server/gameserver/roommgr.h new file mode 100644 index 0000000..65850c9 --- /dev/null +++ b/server/gameserver/roommgr.h @@ -0,0 +1,22 @@ +#pragma once + +namespace cs +{ + class CMJoin; +} + +class RoomMgr : public a8::Singleton +{ + public: + enum { HID = HID_RoomMgr }; + + private: + RoomMgr() {}; + friend class a8::Singleton; + + public: + void Init(); + void UnInit(); + + void _CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg); +}; diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index e5e69de..ffb3405 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -448,10 +448,9 @@ message SMReConnect //加入 message CMJoin { - optional int32 protocol = 1; //协议版本号 - optional string team_uuid = 2; //队伍唯一id + optional string team_uuid = 2; //队伍唯一id (没组队时为空字符串) optional int32 team_mode = 3; //队伍模式 - optional int32 player_count = 4; //玩家数 + optional int32 player_count = 4; //玩家数(单人时为1) optional int32 auto_fill = 5; //是否自动填充玩家 optional int32 bot = 6; //是否机器人 optional string name = 7; //角色名