Compare commits

..

2 Commits

Author SHA1 Message Date
aozhiwei
580a9e1519 1 2020-07-20 14:49:04 +08:00
aozhiwei
3c3c897625 移除飞机逻辑 2020-07-20 14:44:15 +08:00
19 changed files with 194 additions and 210 deletions

View File

@ -1,16 +1,5 @@
#!/bin/bash #!/bin/bash
source /etc/profile python manage.py restart $1 $2
source /root/.bash_profile
pid=$(ps -ef|grep "gameserver2001 -n $2 -i $1"|grep -v grep|awk '{print $2}') echo 'success'
echo $pid
if [[ $pid != "" ]]
then
echo $pid|xargs kill -9
else
echo "pid 为空"
fi
nohup ./gameserver2001 -n $2 -i $1 >> gameserver2001$2_$1.out &

View File

@ -90,6 +90,9 @@ void AndroidAI::ChangeToState(AndroidState_e to_state)
void AndroidAI::DoMove() void AndroidAI::DoMove()
{ {
Human* hum = (Human*)owner; Human* hum = (Human*)owner;
if (hum->room->IsWaitingStart()) {
return;
}
if (a8::HasBitFlag(hum->status, HS_Fly)) { if (a8::HasBitFlag(hum->status, HS_Fly)) {
return; return;
} }
@ -118,6 +121,9 @@ void AndroidAI::DoAttack()
a8::HasBitFlag(hum->status, HS_Jump)) { a8::HasBitFlag(hum->status, HS_Jump)) {
return; return;
} }
if (hum->room->IsWaitingStart()) {
return;
}
if (hum->room->gas_data.gas_mode == GasInactive) { if (hum->room->gas_data.gas_mode == GasInactive) {
return; return;
} }

View File

@ -84,7 +84,6 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect); RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect);
RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_Ping); RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_Ping);
RegisterNetMsgHandler(&ggmsghandler, &RoomMgr::_CMJoin); RegisterNetMsgHandler(&ggmsghandler, &RoomMgr::_CMJoin);
RegisterNetMsgHandler(&ggmsghandler, &RoomMgr::_CMReconnect);
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMMove); RegisterNetMsgHandler(&ggmsghandler, &Player::_CMMove);
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMEmote); RegisterNetMsgHandler(&ggmsghandler, &Player::_CMEmote);

View File

@ -118,7 +118,7 @@ class Human : public Entity
std::set<Human*> kill_humans; std::set<Human*> kill_humans;
Human* last_tank_attacker = nullptr; Human* last_tank_attacker = nullptr;
long long last_tank_attack_idx = 0; long long last_tank_attack_idx = 0;
const BornPoint* born_point = nullptr; BornPoint* born_point = nullptr;
bool shot_start = false; bool shot_start = false;
bool shot_hold = false; bool shot_hold = false;

View File

@ -34,7 +34,6 @@ void JsonDataMgr::Init()
gameserver_cluster_json_.ReadFromFile(gameserver_cluster_json_file); gameserver_cluster_json_.ReadFromFile(gameserver_cluster_json_file);
ip = GetConf()->At("ip")->AsXValue().GetString(); ip = GetConf()->At("ip")->AsXValue().GetString();
listen_port = GetConf()->At("listen_port")->AsXValue(); listen_port = GetConf()->At("listen_port")->AsXValue();
server_info = a8::Format("%s:%d", {ip, listen_port});
Reload(); Reload();
} }

View File

@ -15,7 +15,6 @@ public:
std::string ip; std::string ip;
int listen_port = 0; int listen_port = 0;
std::string server_info;
void Reload(); void Reload();

View File

@ -49,7 +49,6 @@ public:
std::list<MetaData::KillPoint> killpoint_list; std::list<MetaData::KillPoint> killpoint_list;
std::list<metatable::Robot> robot_meta_list; std::list<metatable::Robot> robot_meta_list;
std::vector<MetaData::Robot> robot_list; std::vector<MetaData::Robot> robot_list;
std::list<metatable::Text> text_meta_list;
std::map<std::string, MetaData::Parameter*> parameter_hash; std::map<std::string, MetaData::Parameter*> parameter_hash;
std::map<int, MetaData::Map*> gamemap_hash; std::map<int, MetaData::Map*> gamemap_hash;
@ -73,7 +72,6 @@ public:
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash; std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
std::map<int, MetaData::Robot*> robot_hash; std::map<int, MetaData::Robot*> robot_hash;
std::map<int, std::vector<MetaData::AirLine*>> airline_hash; std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
std::map<std::string, std::string> text_hash;
void Load() void Load()
{ {
@ -117,7 +115,6 @@ public:
f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list); f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list);
f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list); f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list);
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list); f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
f8::ReadCsvMetaFile(res_path + "text@text.csv", text_meta_list);
BindToMetaData(); BindToMetaData();
#if 1 #if 1
{ {
@ -132,7 +129,6 @@ public:
MetaMgr::Instance()->tank_damage_interval = MetaMgr::Instance()->GetSysParamAsFloat("tank_damage_interval", 1); MetaMgr::Instance()->tank_damage_interval = MetaMgr::Instance()->GetSysParamAsFloat("tank_damage_interval", 1);
MetaMgr::Instance()->average_oil = MetaMgr::Instance()->GetSysParamAsInt("average_oil"); MetaMgr::Instance()->average_oil = MetaMgr::Instance()->GetSysParamAsInt("average_oil");
MetaMgr::Instance()->max_oil = MetaMgr::Instance()->GetSysParamAsInt("max_oil"); MetaMgr::Instance()->max_oil = MetaMgr::Instance()->GetSysParamAsInt("max_oil");
MetaMgr::Instance()->max_energy_shield = MetaMgr::Instance()->GetSysParamAsInt("max_energy_shield");
if (MetaMgr::Instance()->K < 0.01f) { if (MetaMgr::Instance()->K < 0.01f) {
abort(); abort();
} }
@ -314,10 +310,6 @@ private:
robot_hash[meta.id()] = &item; robot_hash[meta.id()] = &item;
} }
for (auto& meta : text_meta_list) {
text_hash[meta.textid()] = meta.text();
}
} }
private: private:
@ -504,9 +496,3 @@ MetaData::Robot* MetaMgr::GetRobot(int robot_id)
auto itr = loader_->robot_hash.find(robot_id); auto itr = loader_->robot_hash.find(robot_id);
return itr != loader_->robot_hash.end() ? itr->second : nullptr; return itr != loader_->robot_hash.end() ? itr->second : nullptr;
} }
std::string MetaMgr::GetText(const std::string& textid, const std::string& def_text)
{
auto itr = loader_->text_hash.find(textid);
return itr != loader_->text_hash.end() ? itr->second : def_text;
}

View File

@ -42,7 +42,6 @@ class MetaMgr : public a8::Singleton<MetaMgr>
int GetKillPointParam2(int kill_num); int GetKillPointParam2(int kill_num);
std::vector<MetaData::Robot>* GetRobotList(); std::vector<MetaData::Robot>* GetRobotList();
MetaData::Robot* GetRobot(int robot_id); MetaData::Robot* GetRobot(int robot_id);
std::string GetText(const std::string& textid, const std::string& def_text);
int gas_inactive_time = 10; int gas_inactive_time = 10;
int jump_time = 10; int jump_time = 10;
@ -55,7 +54,6 @@ class MetaMgr : public a8::Singleton<MetaMgr>
float tank_damage_interval = 0.0f; float tank_damage_interval = 0.0f;
float average_oil = 0.0f; float average_oil = 0.0f;
float max_oil = 0.0f; float max_oil = 0.0f;
int max_energy_shield = 100;
private: private:
MetaDataLoader* loader_ = nullptr; MetaDataLoader* loader_ = nullptr;

View File

@ -31,12 +31,7 @@ void Player::Initialize()
{ {
Human::Initialize(); Human::Initialize();
health = meta->i->health(); health = meta->i->health();
if (energy_shield) {
energy_shield = MetaMgr::Instance()->max_energy_shield;
max_energy_shield = energy_shield; max_energy_shield = energy_shield;
} else {
max_energy_shield = 0;
}
skin_meta = MetaMgr::Instance()->GetDress(SkinId()); skin_meta = MetaMgr::Instance()->GetDress(SkinId());
if (skin_meta) { if (skin_meta) {
skill_meta = MetaMgr::Instance()->GetSkill(skin_meta->i->skill_id()); skill_meta = MetaMgr::Instance()->GetSkill(skin_meta->i->skill_id());
@ -112,7 +107,9 @@ void Player::UpdateMove()
if (action_type == AT_Relive) { if (action_type == AT_Relive) {
CancelAction(); CancelAction();
} }
if (dead || a8::HasBitFlag(status, HS_Fly)) { if (dead ||
room->IsWaitingStart() ||
a8::HasBitFlag(status, HS_Fly)) {
moving = false; moving = false;
moved_frames = 0; moved_frames = 0;
last_collision_door = nullptr; last_collision_door = nullptr;
@ -142,6 +139,8 @@ void Player::UpdateMove()
void Player::UpdateShot() void Player::UpdateShot()
{ {
if (dead || if (dead ||
downed ||
room->IsWaitingStart() ||
a8::HasBitFlag(status, HS_Fly) || a8::HasBitFlag(status, HS_Fly) ||
a8::HasBitFlag(status, HS_Jump) ) { a8::HasBitFlag(status, HS_Jump) ) {
shot_start = false; shot_start = false;
@ -867,13 +866,8 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
if (moving) { if (moving) {
moved_frames = 0; moved_frames = 0;
} }
//前一个状态是纯点射
if (shot_start && !shot_hold) {
} else {
shot_start = msg.shot_start(); shot_start = msg.shot_start();
shot_hold = msg.shot_hold(); shot_hold = msg.shot_hold();
}
fly_distance = std::min(200.0f, msg.fly_distance()); fly_distance = std::min(200.0f, msg.fly_distance());
if (!shot_hold) { if (!shot_hold) {
series_shot_frames = 0; series_shot_frames = 0;
@ -922,38 +916,6 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
} }
} }
void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
{
int old_socket_handle = socket_handle;
if (socket_handle != 0) {
GGListener::Instance()->ForceCloseChildSocket(socket_handle);
PlayerMgr::Instance()->RemovePlayerBySocket(socket_handle);
}
socket_handle = hdr.socket_handle;
#if 0
TouchAllLayerHumanList
(
[this] (Human* hum, bool& stop)
{
AddToNewObjects(hum);
}
);
#endif
need_sync_active_player = true;
cs::SMReconnect respmsg;
respmsg.set_errcode(0);
respmsg.set_errmsg("战斗重连成功");
SendNotifyMsg(respmsg);
PlayerMgr::Instance()->ReBindSocket(this);
a8::UdpLog::Instance()->Debug
("战斗服重连成功 %s %d %d",
{
account_id,
hdr.socket_handle,
old_socket_handle
});
}
void Player::UpdateDropWeapon() void Player::UpdateDropWeapon()
{ {
if (drop_weapon_idx >= 0 && drop_weapon_idx < weapons.size()) { if (drop_weapon_idx >= 0 && drop_weapon_idx < weapons.size()) {
@ -1133,8 +1095,6 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg)
dead = false; dead = false;
real_dead = false; real_dead = false;
downed = false; downed = false;
energy_shield = MetaMgr::Instance()->max_energy_shield;
max_energy_shield = energy_shield;
FreeDownedTimer(); FreeDownedTimer();
health = GetMaxHP(); health = GetMaxHP();
ResetTankSkin(); ResetTankSkin();

View File

@ -5,9 +5,8 @@
namespace cs namespace cs
{ {
class CMMove; class CMMove;
class CMReconnect;
class CMDropItem; class CMDropItem;
class CMmEmote; class CMEmote;
class CMVoice; class CMVoice;
class MFActivePlayerData; class MFActivePlayerData;
class MFGasData; class MFGasData;
@ -84,7 +83,6 @@ class Player : public Human
void ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >& prepare_items); void ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >& prepare_items);
void _CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg); void _CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg);
void _CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg);
void _CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg); void _CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg);
void _CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg); void _CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg);
void _CMGameOver(f8::MsgHdr& hdr, const cs::CMGameOver& msg); void _CMGameOver(f8::MsgHdr& hdr, const cs::CMGameOver& msg);

View File

@ -113,8 +113,3 @@ void PlayerMgr::RemovePlayerBySocket(int socket_handle)
socket_hash_.erase(itr); socket_hash_.erase(itr);
} }
} }
void PlayerMgr::ReBindSocket(Player* hum)
{
socket_hash_[hum->socket_handle] = hum;
}

View File

@ -33,7 +33,6 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
Player* CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJoin& msg); Player* CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJoin& msg);
void OnClientDisconnect(a8::XParams& param); void OnClientDisconnect(a8::XParams& param);
void RemovePlayerBySocket(int socket_handle); void RemovePlayerBySocket(int socket_handle);
void ReBindSocket(Player* hum);
private: private:
std::map<int, Player*> socket_hash_; std::map<int, Player*> socket_hash_;

View File

@ -746,20 +746,14 @@ bool Room::CanJoin(const std::string& accountid)
void Room::OnPlayerOffline(Player* hum) void Room::OnPlayerOffline(Player* hum)
{ {
if (GetOnlinePlayerNum() <= 0) { bool has_player = false;
xtimer.AddDeadLineTimerAndAttach for (auto& pair : accountid_hash_) {
( if (pair.second->socket_handle != 0) {
SERVER_FRAME_RATE * 15, has_player = true;
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Room* room = (Room*)param.sender.GetUserData();
if (room->GetOnlinePlayerNum() <= 0 && !room->added_to_over_room) {
RoomMgr::Instance()->AddOverRoom(room->room_uuid);
} }
}, }
&xtimer_attacher.timer_list_); if (!has_player) {
RoomMgr::Instance()->AddOverRoom(room_uuid);
} }
} }
@ -958,19 +952,43 @@ void Room::UpdateGasInactive()
{ {
if (frame_no - gas_data.gas_start_frameno >= if (frame_no - gas_data.gas_start_frameno >=
MetaMgr::Instance()->gas_inactive_time * SERVER_FRAME_RATE) { MetaMgr::Instance()->gas_inactive_time * SERVER_FRAME_RATE) {
#if 1
gas_data.gas_mode = GasWaiting;
gas_data.old_area_meta = MetaMgr::Instance()->GetSafeArea(30001);
gas_data.new_area_meta = MetaMgr::Instance()->GetSafeArea(30002);
gas_data.gas_progress = gas_data.old_area_meta->i->rad();
gas_data.gas_start_frameno = frame_no;
gas_data.pos_old = a8::Vec2(map_meta->i->map_width() / 2.0f,
map_meta->i->map_height() / 2.0f);
gas_data.pos_old_bk = gas_data.pos_old;
{
bool gen_ok = GenSmallCircle(gas_data.pos_old,
gas_data.old_area_meta->i->rad(),
gas_data.new_area_meta->i->rad(),
gas_data.pos_new);
assert(gen_ok);
}
gas_data.rad_old = gas_data.old_area_meta->i->rad();
gas_data.rad_new = gas_data.new_area_meta->i->rad();
battle_start_frameno_ = frame_no;
#else
gas_data.gas_mode = GasJump; gas_data.gas_mode = GasJump;
gas_data.gas_start_frameno = frame_no; gas_data.gas_start_frameno = frame_no;
#endif
if (human_hash_.size() < ROOM_MAX_PLAYER_NUM) { if (human_hash_.size() < ROOM_MAX_PLAYER_NUM) {
CreateAndroid(ROOM_MAX_PLAYER_NUM - human_hash_.size()); CreateAndroid(ROOM_MAX_PLAYER_NUM - human_hash_.size());
NotifyUiUpdate();
} }
NotifyUiUpdate();
CombineTeam(); CombineTeam();
ShuaPlane(); NotifyGameStart();
NotifyWxVoip(); NotifyWxVoip();
InitAirDrop(); InitAirDrop();
RoomMgr::Instance()->ActiveRoom(room_uuid); RoomMgr::Instance()->ActiveRoom(room_uuid);
#if 0
ShuaPlane();
int auto_jump_interval = MetaMgr::Instance()->GetSysParamAsInt("auto_jump_interval"); int auto_jump_interval = MetaMgr::Instance()->GetSysParamAsInt("auto_jump_interval");
auto_jump_timer_ = xtimer.AddRepeatTimerAndAttach(SERVER_FRAME_RATE * auto_jump_interval, auto_jump_timer_ = xtimer.AddRepeatTimerAndAttach
(SERVER_FRAME_RATE * auto_jump_interval,
a8::XParams() a8::XParams()
.SetSender(this), .SetSender(this),
[] (const a8::XParams& param) [] (const a8::XParams& param)
@ -983,12 +1001,14 @@ void Room::UpdateGasInactive()
jump_num = 1 + rand() % 2; jump_num = 1 + rand() % 2;
} }
for (int i = 0; i < jump_num; ++i) { for (int i = 0; i < jump_num; ++i) {
room->TouchHumanList( room->TouchHumanList
(
a8::XParams() a8::XParams()
.SetSender(room), .SetSender(room),
[] (Human* hum, a8::XParams& param) -> bool [] (Human* hum, a8::XParams& param) -> bool
{ {
if (a8::HasBitFlag(hum->status, HS_Fly) && hum->entity_subtype != EST_Player) { if (a8::HasBitFlag(hum->status, HS_Fly) &&
hum->entity_subtype != EST_Player) {
hum->DoJump(); hum->DoJump();
return false; return false;
} }
@ -997,6 +1017,7 @@ void Room::UpdateGasInactive()
} }
}, },
&xtimer_attacher.timer_list_); &xtimer_attacher.timer_list_);
#endif
} }
} }
@ -1551,13 +1572,113 @@ void Room::CreateMapSpawnPoint(MetaData::MapTplThing& thing_tpl)
born_point_hash_[AllocUniid()] = born_point; born_point_hash_[AllocUniid()] = born_point;
} }
int Room::GetOnlinePlayerNum() void Room::SecondRandPoint()
{ {
int num = 0;
for (auto& pair : accountid_hash_) { for (auto& pair : accountid_hash_) {
if (pair.second->socket_handle != 0) { Human* hum = pair.second;
++num; hum->born_point = AllocBornPoint(hum);
}
CombineTeamBornPoint();
}
void Room::NotifyGameStart()
{
cs::SMGameStart msg;
for (auto& pair : accountid_hash_) {
pair.second->SendNotifyMsg(msg);
}
waiting_start_ = true;
xtimer.AddDeadLineTimerAndAttach
(SERVER_FRAME_RATE * 2,
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Room* room = (Room*)param.sender.GetUserData();
room->waiting_start_ = false;
},
&xtimer_attacher.timer_list_);
xtimer.AddDeadLineTimerAndAttach
(SERVER_FRAME_RATE * 1,
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Room* room = (Room*)param.sender.GetUserData();
room->SecondRandPoint();
},
&xtimer_attacher.timer_list_);
}
void Room::CombineTeamBornPoint()
{
for (auto& pair : team_hash_) {
Human* target = nullptr;
for (Human* hum : pair.second) {
if (!target) {
target = hum;
} else {
if (target->born_point) {
if (hum->born_point) {
DecBornPointHumanNum(hum->born_point, hum);
}
hum->born_point = target->born_point;
if (hum->born_point) {
IncBornPointHumanNum(hum->born_point, hum);
} }
} }
return num; } //end if
if (!hum->born_point) {
hum->pos = a8::Vec2(DEFAULT_BORN_POINT_X + rand() % 100,
DEFAULT_BORN_POINT_Y + rand() % 200);
} else {
hum->pos = hum->born_point->RandPoint();
}
hum->FindLocation();
hum->RefreshView();
grid_service.MoveHuman(hum);
}
}
}
void Room::IncBornPointHumanNum(BornPoint* point, Human* hum)
{
switch (hum->entity_subtype) {
case EST_Player:
{
++point->player_num;
}
break;
case EST_Android:
{
++point->android_num;
}
break;
default:
{
}
break;
}
}
void Room::DecBornPointHumanNum(BornPoint* point, Human* hum)
{
switch (hum->entity_subtype) {
case EST_Player:
{
--point->player_num;
}
break;
case EST_Android:
{
--point->android_num;
}
break;
default:
{
}
break;
}
} }

View File

@ -49,7 +49,6 @@ public:
long long pending_request = 0; long long pending_request = 0;
long long last_debugout_tick = 0; long long last_debugout_tick = 0;
a8::Vec2 last_player_jump_pos; a8::Vec2 last_player_jump_pos;
bool added_to_over_room = false;
~Room(); ~Room();
void Init(); void Init();
@ -60,6 +59,7 @@ public:
Player* GetPlayerByAccountId(const std::string& accountid); Player* GetPlayerByAccountId(const std::string& accountid);
Player* GetPlayerByUniId(int uniid); Player* GetPlayerByUniId(int uniid);
Entity* GetEntityByUniId(int uniid); Entity* GetEntityByUniId(int uniid);
bool IsWaitingStart() { return waiting_start_; }
void AddPlayer(Player* hum); void AddPlayer(Player* hum);
Human* FindEnemy(Human* hum); Human* FindEnemy(Human* hum);
@ -100,7 +100,6 @@ public:
void UpdateCarObject(int old_uniid, int new_uniid, a8::Vec2 pos); void UpdateCarObject(int old_uniid, int new_uniid, a8::Vec2 pos);
void TakeOnCarObject(int car_uniid); void TakeOnCarObject(int car_uniid);
void TakeOffCarObject(int car_uniid, a8::Vec2 pos); void TakeOffCarObject(int car_uniid, a8::Vec2 pos);
int GetOnlinePlayerNum();
private: private:
int AllocUniid(); int AllocUniid();
@ -132,6 +131,11 @@ private:
BornPoint* AllocBornPoint(Human* hum); BornPoint* AllocBornPoint(Human* hum);
void CreateMapObject(MetaData::MapTplThing& thing_tpl); void CreateMapObject(MetaData::MapTplThing& thing_tpl);
void CreateMapSpawnPoint(MetaData::MapTplThing& thing_tpl); void CreateMapSpawnPoint(MetaData::MapTplThing& thing_tpl);
void SecondRandPoint();
void NotifyGameStart();
void CombineTeamBornPoint();
void IncBornPointHumanNum(BornPoint* point, Human* hum);
void DecBornPointHumanNum(BornPoint* point, Human* hum);
private: private:
int elapsed_time_ = 0; int elapsed_time_ = 0;
@ -139,6 +143,7 @@ private:
MetaData::AirLine* airline_ = nullptr; MetaData::AirLine* airline_ = nullptr;
a8::XTimerAttacher xtimer_attacher; a8::XTimerAttacher xtimer_attacher;
xtimer_list* auto_jump_timer_ = nullptr; xtimer_list* auto_jump_timer_ = nullptr;
bool waiting_start_ = false;
int current_teamid = 0; int current_teamid = 0;
int current_uniid = 0; int current_uniid = 0;

View File

@ -99,7 +99,6 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
{ {
cs::SMJoinedNotify notifymsg; cs::SMJoinedNotify notifymsg;
notifymsg.set_error_code(0); notifymsg.set_error_code(0);
notifymsg.set_server_info(JsonDataMgr::Instance()->server_info);
room->FillSMJoinedNotify(hum, notifymsg); room->FillSMJoinedNotify(hum, notifymsg);
GGListener::Instance()->SendToClient(hdr.socket_handle, hdr.seqid, notifymsg); GGListener::Instance()->SendToClient(hdr.socket_handle, hdr.seqid, notifymsg);
} }
@ -112,45 +111,6 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
} }
} }
void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
{
auto send_reconnect_failed =
[] (int socket_handle, int errcode, const std::string& errmsg)
{
cs::SMReconnect respmsg;
respmsg.set_errcode(errcode);
respmsg.set_errmsg(errmsg);
GGListener::Instance()->SendToClient(socket_handle, 0, respmsg);
a8::Timer::Instance()->AddDeadLineTimer
(
1000 * 3,
a8::XParams()
.SetSender(socket_handle),
[] (const a8::XParams& param)
{
GGListener::Instance()->ForceCloseChildSocket(param.sender);
}
);
};
Room* room = GetRoomByUuid(a8::XValue(msg.room_uuid()));
if (!room) {
send_reconnect_failed(hdr.socket_handle, 1, "房间已销毁");
a8::UdpLog::Instance()->Debug
("房间已销毁 %s",
{
msg.room_uuid()
});
return;
}
Player* hum = room->GetPlayerByAccountId(msg.account_id());
if (!hum) {
send_reconnect_failed(hdr.socket_handle, 1, "accountid未在房间列表");
return;
}
hum->_CMReconnect(hdr, msg);
}
int RoomMgr::RoomNum() int RoomMgr::RoomNum()
{ {
return room_hash_.size(); return room_hash_.size();
@ -195,7 +155,6 @@ void RoomMgr::AddOverRoom(long long room_uuid)
inactive_room_hash_.erase(room_uuid); inactive_room_hash_.erase(room_uuid);
Room* room = GetRoomByUuid(room_uuid); Room* room = GetRoomByUuid(room_uuid);
if (room) { if (room) {
room->added_to_over_room = true;
room->game_over_tick = a8::XGetTickCount(); room->game_over_tick = a8::XGetTickCount();
room->game_over_timer = a8::Timer::Instance()->AddRepeatTimer(500, room->game_over_timer = a8::Timer::Instance()->AddRepeatTimer(500,
a8::XParams() a8::XParams()

View File

@ -5,7 +5,6 @@
namespace cs namespace cs
{ {
class CMJoin; class CMJoin;
class CMReconnect;
} }
class Room; class Room;
@ -24,7 +23,6 @@ class RoomMgr : public a8::Singleton<RoomMgr>
void Update(int delta_time); void Update(int delta_time);
void _CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg); void _CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void _CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg);
void ActiveRoom(long long room_uuid); void ActiveRoom(long long room_uuid);
int RoomNum(); int RoomNum();
int OverRoomNum(); int OverRoomNum();

View File

@ -6,7 +6,6 @@ enum CMMessageId_e
_CMPing = 101; _CMPing = 101;
_CMJoin = 103; _CMJoin = 103;
_CMReconnect = 104;
_CMMove = 201; _CMMove = 201;
_CMEmote = 204; _CMEmote = 204;
_CMVoice = 206; _CMVoice = 206;
@ -26,7 +25,6 @@ enum SMMessageId_e
_SMLeave = 209; _SMLeave = 209;
_SMJoinedNotify = 103; _SMJoinedNotify = 103;
_SMReconnect = 104;
_SMMapInfo = 1002; _SMMapInfo = 1002;
_SMPlayerInfo = 1003; _SMPlayerInfo = 1003;
_SMUpdate = 1004; _SMUpdate = 1004;

View File

@ -662,24 +662,6 @@ message CMJoin
optional int32 today_enter_times = 28; // optional int32 today_enter_times = 28; //
} }
//线
message CMReconnect
{
optional int32 server_id = 1; //
optional string team_uuid = 2; //
optional string account_id = 3; //id
optional string session_id = 4; //session_id
optional string room_uuid = 5; //id
optional string server_info = 6; //
}
//线
message SMReconnect
{
optional int32 errcode = 1; // 0 1:
optional string errmsg = 2; //
}
// //
message CMMove message CMMove
{ {
@ -784,7 +766,6 @@ message SMJoinedNotify
optional bool elo_start = 6; // optional bool elo_start = 6; //
optional int32 error_code = 7; // 1: 2 optional int32 error_code = 7; // 1: 2
optional string server_info = 8; //
} }
// //

View File

@ -190,12 +190,6 @@ message KillPoint
optional int32 parameter2 = 3; optional int32 parameter2 = 3;
} }
message Text
{
optional string textid = 1;
optional string text = 2;
}
//end //end
message DoorObjJson message DoorObjJson