From 984d115404cbd627fdb0f54225074da1118c084e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 21 Nov 2019 19:37:26 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 6 ++++++ server/gameserver/human.h | 5 ++++- server/gameserver/playermgr.cc | 6 ++++++ server/gameserver/types.h | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 2f39e20..48b2bee 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -34,6 +34,7 @@ Human::~Human() void Human::Initialize() { Entity::Initialize(); + CreateSnake(); RecalcSelfCollider(); observers_.insert(this); } @@ -819,3 +820,8 @@ void Human::Revive() }); SyncAroundPlayers(__FILE__, __LINE__, __func__); } + +void Human::CreateSnake() +{ + +} diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 0e4020a..8d410b4 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -6,7 +6,7 @@ namespace MetaData { - + class Snake; } enum HumanStatus @@ -22,6 +22,7 @@ class Loot; class Human : public Entity { public: + MetaData::Snake* meta = nullptr; int socket_handle = 0; long ip_saddr = 0; int team_id = 0; @@ -113,8 +114,10 @@ private: void SendBattleReport(); void OnDie(); void Revive(); + void CreateSnake(); protected: + int node_id_ = 1; SnakeBodyNode* head_ = nullptr; SnakeBodyNode* tail_ = nullptr; std::list body_list; diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index 066f161..59aa668 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -4,6 +4,7 @@ #include "player.h" #include "cs_proto.pb.h" #include "room.h" +#include "metamgr.h" #include "framework/cpp/utils.h" @@ -37,7 +38,12 @@ Player* PlayerMgr::GetPlayerBySocket(int socket) Player* PlayerMgr::CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJoin& msg) { + MetaData::Snake* meta = MetaMgr::Instance()->GetSnake(1); + if (!meta) { + return nullptr; + } Player* hum = new Player(); + hum->meta = meta; hum->socket_handle = socket; hum->ip_saddr = ip_saddr; hum->account_id = msg.account_id(); diff --git a/server/gameserver/types.h b/server/gameserver/types.h index 799ed29..aef4459 100755 --- a/server/gameserver/types.h +++ b/server/gameserver/types.h @@ -61,6 +61,7 @@ struct SnakeBodyNode { int node_id = 0; float speed = 0.0f; + a8::Vec2 pos; a8::Vec2 dir; a8::Vec2 last_move; bool moved = false;