This commit is contained in:
aozhiwei 2023-11-23 19:33:49 +08:00
parent 2b2b5315d5
commit e757ceb022
18 changed files with 138 additions and 136 deletions

View File

@ -388,7 +388,7 @@ void App::DispatchMsg()
switch (pdelnode->sockfrom) {
case SF_GameGate:
{
ProcessGameGateMsg(hdr);
ProcessGameGateMsg(&hdr);
}
break;
}
@ -411,15 +411,15 @@ void App::DispatchMsg()
}
}
void App::ProcessGameGateMsg(f8::MsgHdr& hdr)
void App::ProcessGameGateMsg(f8::MsgHdr* hdr)
{
if (hdr.msgid == ss::_SS_Ping) {
if (hdr->msgid == ss::_SS_Ping) {
ss::SS_Pong pongmsg;
GGListener::Instance()->SendProxyMsg(hdr.socket_handle, pongmsg);
GGListener::Instance()->SendProxyMsg(hdr->socket_handle, pongmsg);
return;
}
f8::NetMsgHandler* handler = f8::GetNetMsgHandler(&HandlerMgr::Instance()->ggmsghandler,
hdr.msgid);
hdr->msgid);
if (handler) {
switch (handler->handlerid) {
case HID_RoomMgr:
@ -427,7 +427,7 @@ void App::ProcessGameGateMsg(f8::MsgHdr& hdr)
break;
case HID_MatchTeam:
{
auto match_info = MatchMgr::Instance()->GetMatchInfo(hdr.socket_handle);
auto match_info = MatchMgr::Instance()->GetMatchInfo(hdr->socket_handle);
if (match_info) {
ProcessNetMsg(handler, std::get<1>(*match_info).get(), hdr);
}
@ -438,9 +438,9 @@ void App::ProcessGameGateMsg(f8::MsgHdr& hdr)
break;
case HID_Player:
{
Player* hum = PlayerMgr::Instance()->GetPlayerBySocket(hdr.socket_handle);
Player* hum = PlayerMgr::Instance()->GetPlayerBySocket(hdr->socket_handle);
if (hum) {
hdr.hum = hum;
hdr->hum = hum;
ProcessNetMsg(handler, hum, hdr);
}
}

View File

@ -57,7 +57,7 @@ private:
void DispatchMsg();
void ProcessGameGateMsg(f8::MsgHdr& hdr);
void ProcessGameGateMsg(f8::MsgHdr* hdr);
void InitLog();
void UnInitLog();

View File

@ -23,7 +23,7 @@
#include "mt/Robot.h"
#include "mt/Hero.h"
void Player::_CMExecCommand(f8::MsgHdr& hdr, const cs::CMExecCommand& msg)
void Player::_CMExecCommand(f8::MsgHdr* hdr, const cs::CMExecCommand& msg)
{
#ifndef MYDEBUG
return;

View File

@ -22,50 +22,50 @@
static void _GMOpsSelfChecking(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->resp_xobj->SetVal("healthy", 1);
request->resp_xobj->SetVal("servicing", App::Instance()->IsServicing() ? 1 : 0);
request->resp_xobj->SetVal("max_rundelay", PerfMonitor::Instance()->max_run_delay_time);
request->resp_xobj->SetVal("max_timer_idle", PerfMonitor::Instance()->max_timer_idle);
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
request->GetResp()->SetVal("healthy", 1);
request->GetResp()->SetVal("servicing", App::Instance()->IsServicing() ? 1 : 0);
request->GetResp()->SetVal("max_rundelay", PerfMonitor::Instance()->max_run_delay_time);
request->GetResp()->SetVal("max_timer_idle", PerfMonitor::Instance()->max_timer_idle);
}
static void _GMOpsStopService(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
App::Instance()->SetServicing(false);
}
static void _GMOpsStartService(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
App::Instance()->SetServicing(true);
}
static void _GMOpsServerInfo(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->resp_xobj->SetVal("node_id", App::Instance()->GetNodeId());
request->resp_xobj->SetVal("instance_id", App::Instance()->GetInstanceId());
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
request->GetResp()->SetVal("node_id", App::Instance()->GetNodeId());
request->GetResp()->SetVal("instance_id", App::Instance()->GetInstanceId());
}
static void _GMOpsTerminate(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
App::Instance()->Terminate();
}
static void _GMStatGetRealTimeOnline(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->resp_xobj->SetVal("num", PerfMonitor::Instance()->entity_num[ET_Player]);
request->resp_xobj->SetVal("room_num", RoomMgr::Instance()->RoomNum());
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
request->GetResp()->SetVal("num", PerfMonitor::Instance()->entity_num[ET_Player]);
request->GetResp()->SetVal("room_num", RoomMgr::Instance()->RoomNum());
}
void HandlerMgr::Init()
@ -148,20 +148,22 @@ void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
std::string msgname = a8::Get(request, "c").GetString() + "@" + a8::Get(request, "a").GetString();
auto itr = gmhandlers_.find(msgname);
if (itr != gmhandlers_.end()) {
#if 0
auto request = std::make_shared<f8::JsonHttpRequest>();
request->saddr = saddr;
request->socket_handle = sockhandle;
request->query_str = querystr;
request->params->ReadFromUrlQueryString(querystr);
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
itr->second(request);
if (!request->pending){
std::string response;
request->resp_xobj->ToJsonStr(response);
request->GetResp()->ToJsonStr(response);
GGListener::Instance()->SendText(sockhandle, a8::HttpResponse(response));
}
#endif
} else {
GGListener::Instance()->SendText(sockhandle, a8::HttpResponse("{}"));
}

View File

@ -27,24 +27,24 @@ static void _ProxyCallback(std::shared_ptr<f8::JsonHttpRequest> request)
#ifdef MYDEBUG
f8::UdpLog::Instance()->Debug("ProxyCallbBack request:%s",
{
request->params->ToJsonStr()
request->GetParams()->ToJsonStr()
});
#endif
std::string seq_id = request->params->Get("seq_id");
std::string seq_id = request->GetParams()->Get("seq_id");
std::shared_ptr<HttpProxyRequest> req = HttpProxy::Instance()->GetRequest(seq_id);
if (req) {
a8::XObject data;
data.ReadFromJsonString(request->params->Get("data").GetString());
data.ReadFromJsonString(request->GetParams()->Get("data").GetString());
if (data.GetType() == a8::XOT_SIMPLE) {
data.ReadFromJsonString("{}");
}
f8::HttpContext ctx;
if (request->params->HasKey("errcode") &&
request->params->Get("errcode").GetInt() == 0) {
if (request->GetParams()->HasKey("errcode") &&
request->GetParams()->Get("errcode").GetInt() == 0) {
req->cb(true, &data, &ctx);
} else {
req->cb(false, request->params.get(), &ctx);
req->cb(false, request->GetParams().get(), &ctx);
}
HttpProxy::Instance()->DestoryRequest(req);
}

View File

@ -28,12 +28,12 @@ void MatchMgr::UnInit()
}
void MatchMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
void MatchMgr::_CMJoin(f8::MsgHdr* hdr, const cs::CMJoin& msg)
{
#ifdef MYDEBUG
{
std::string data = f8::PbToJson(&msg);
a8::XPrintf("CMJoin socket_handle:%d members_size:%d %s\n", {hdr.socket_handle, msg.team_members().size(), data});
a8::XPrintf("CMJoin socket_handle:%d members_size:%d %s\n", {hdr->socket_handle, msg.team_members().size(), data});
}
#endif
if (!NeedMatch(msg)) {
@ -41,12 +41,12 @@ void MatchMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
}
{
cs::SMShowTeamUI notifymsg;
GGListener::Instance()->SendToClient(hdr.socket_handle, 0, notifymsg);
GGListener::Instance()->SendToClient(hdr->socket_handle, 0, notifymsg);
}
{
cs::SMJoinedNotify notifymsg;
notifymsg.set_error_code(0);
GGListener::Instance()->SendToClient(hdr.socket_handle, 0, notifymsg);
GGListener::Instance()->SendToClient(hdr->socket_handle, 0, notifymsg);
}
{
auto team = GetTeam(msg.team_uuid());
@ -67,7 +67,7 @@ void MatchMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
}
team->AddRawMember(hdr, msg);
}
socket_hash_[hdr.socket_handle] = std::make_tuple(msg.account_id(), team);
socket_hash_[hdr->socket_handle] = std::make_tuple(msg.account_id(), team);
}
}

View File

@ -22,7 +22,7 @@ public:
void Init();
void UnInit();
void _CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void _CMJoin(f8::MsgHdr* hdr, const cs::CMJoin& msg);
void TraverseTeam(std::function<void (std::shared_ptr<MatchTeam>&, bool&)> func);
bool NeedMatch(const cs::CMJoin& msg);

View File

@ -24,7 +24,7 @@ void MatchPool::UnInit()
{
}
void MatchPool::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
void MatchPool::_CMJoin(f8::MsgHdr* hdr, const cs::CMJoin& msg)
{
}

View File

@ -21,7 +21,7 @@ public:
void Init();
void UnInit();
void _CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void _CMJoin(f8::MsgHdr* hdr, const cs::CMJoin& msg);
private:

View File

@ -68,7 +68,7 @@ MatchTeam::~MatchTeam()
#endif
}
void MatchTeam::Init(f8::MsgHdr& hdr, const cs::CMJoin& msg)
void MatchTeam::Init(f8::MsgHdr* hdr, const cs::CMJoin& msg)
{
master_team_ = this;
create_tick_ = a8::XGetTickCount();
@ -87,19 +87,19 @@ void MatchTeam::Init(f8::MsgHdr& hdr, const cs::CMJoin& msg)
AddRawMember(hdr, msg);
}
void MatchTeam::_CMMatchCancel(f8::MsgHdr& hdr, const cs::CMMatchCancel& msg)
void MatchTeam::_CMMatchCancel(f8::MsgHdr* hdr, const cs::CMMatchCancel& msg)
{
}
void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
void MatchTeam::_CMMatchChoose(f8::MsgHdr* hdr, const cs::CMMatchChoose& msg)
{
#ifdef MYDEBUG
a8::XPrintf("cmmatchchoose %s phase_:%d %s\n", {hdr.socket_handle, phase_, GetTeamUUid()});
a8::XPrintf("cmmatchchoose %s phase_:%d %s\n", {hdr->socket_handle, phase_, GetTeamUUid()});
{
for (auto& pair : raw_member_hash_) {
a8::XPrintf("cmmatchchoose member %d:%d:%s %s:%d\n",
{
hdr.socket_handle,
hdr->socket_handle,
phase_,
GetTeamUUid(),
pair.second->msg->account_id(),
@ -108,7 +108,7 @@ void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
}
}
#endif
auto member = GetMemberBySocket(hdr.socket_handle);
auto member = GetMemberBySocket(hdr->socket_handle);
if (member && master_team_->phase_ == kMatchChoose) {
member->msg->set_hero_id(msg.hero_id());
member->msg->set_hero_uniid(msg.hero_uniid());
@ -120,10 +120,10 @@ void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
}
}
void MatchTeam::_CMMatchStartGame(f8::MsgHdr& hdr, const cs::CMMatchStartGame& msg)
void MatchTeam::_CMMatchStartGame(f8::MsgHdr* hdr, const cs::CMMatchStartGame& msg)
{
if (master_team_->phase_ == kMatchChoose) {
auto member = GetMemberBySocket(hdr.socket_handle);
auto member = GetMemberBySocket(hdr->socket_handle);
if (member) {
member->state = kMatchPrepare;
#ifdef MYDEBUG
@ -133,10 +133,10 @@ void MatchTeam::_CMMatchStartGame(f8::MsgHdr& hdr, const cs::CMMatchStartGame& m
}
}
void MatchTeam::_CMMatchCancelStartGame(f8::MsgHdr& hdr, const cs::CMMatchCancelStartGame& msg)
void MatchTeam::_CMMatchCancelStartGame(f8::MsgHdr* hdr, const cs::CMMatchCancelStartGame& msg)
{
if (master_team_->phase_ == kMatchChoose) {
auto member = GetMemberBySocket(hdr.socket_handle);
auto member = GetMemberBySocket(hdr->socket_handle);
if (member) {
member->state = kMatchReadying;
#ifdef MYDEBUG
@ -146,9 +146,9 @@ void MatchTeam::_CMMatchCancelStartGame(f8::MsgHdr& hdr, const cs::CMMatchCancel
}
}
void MatchTeam::_CMMatchSendMsg(f8::MsgHdr& hdr, const cs::CMMatchSendMsg& msg)
void MatchTeam::_CMMatchSendMsg(f8::MsgHdr* hdr, const cs::CMMatchSendMsg& msg)
{
auto sender = GetMemberBySocket(hdr.socket_handle);
auto sender = GetMemberBySocket(hdr->socket_handle);
if (sender) {
for (auto member : master_team_->curr_member_hash_) {
if (member->socket_handle != 0) {
@ -170,9 +170,9 @@ void MatchTeam::_CMMatchSendMsg(f8::MsgHdr& hdr, const cs::CMMatchSendMsg& msg)
}
}
void MatchTeam::_CMMatchBroadcastMsg(f8::MsgHdr& hdr, const cs::CMMatchBroadcastMsg& msg)
void MatchTeam::_CMMatchBroadcastMsg(f8::MsgHdr* hdr, const cs::CMMatchBroadcastMsg& msg)
{
auto sender = GetMemberBySocket(hdr.socket_handle);
auto sender = GetMemberBySocket(hdr->socket_handle);
if (sender) {
for (auto member : master_team_->curr_member_hash_) {
if (member->socket_handle != 0) {
@ -188,12 +188,12 @@ void MatchTeam::_CMMatchBroadcastMsg(f8::MsgHdr& hdr, const cs::CMMatchBroadcast
}
}
void MatchTeam::AddRawMember(f8::MsgHdr& hdr, const cs::CMJoin& msg)
void MatchTeam::AddRawMember(f8::MsgHdr* hdr, const cs::CMJoin& msg)
{
std::shared_ptr<RawTeamMember> member = std::make_shared<RawTeamMember>();
member->team = this;
member->add_tick = a8::XGetTickCount();
member->socket_handle = hdr.socket_handle;
member->socket_handle = hdr->socket_handle;
*member->msg = msg;
raw_member_hash_[msg.account_id()] = member;
curr_member_hash_.push_back(member);

View File

@ -66,16 +66,16 @@ class MatchTeam
f8::Attacher timer_attacher;
~MatchTeam();
void Init(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void Init(f8::MsgHdr* hdr, const cs::CMJoin& msg);
void _CMMatchCancel(f8::MsgHdr& hdr, const cs::CMMatchCancel& msg);
void _CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg);
void _CMMatchStartGame(f8::MsgHdr& hdr, const cs::CMMatchStartGame& msg);
void _CMMatchCancelStartGame(f8::MsgHdr& hdr, const cs::CMMatchCancelStartGame& msg);
void _CMMatchSendMsg(f8::MsgHdr& hdr, const cs::CMMatchSendMsg& msg);
void _CMMatchBroadcastMsg(f8::MsgHdr& hdr, const cs::CMMatchBroadcastMsg& msg);
void _CMMatchCancel(f8::MsgHdr* hdr, const cs::CMMatchCancel& msg);
void _CMMatchChoose(f8::MsgHdr* hdr, const cs::CMMatchChoose& msg);
void _CMMatchStartGame(f8::MsgHdr* hdr, const cs::CMMatchStartGame& msg);
void _CMMatchCancelStartGame(f8::MsgHdr* hdr, const cs::CMMatchCancelStartGame& msg);
void _CMMatchSendMsg(f8::MsgHdr* hdr, const cs::CMMatchSendMsg& msg);
void _CMMatchBroadcastMsg(f8::MsgHdr* hdr, const cs::CMMatchBroadcastMsg& msg);
void AddRawMember(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void AddRawMember(f8::MsgHdr* hdr, const cs::CMJoin& msg);
bool IsRawMember(const std::string& account_id);
bool IsValidMember(const cs::CMJoin& msg);
void TryCombineTeam();

View File

@ -2032,28 +2032,28 @@ Player* PlayerMgr::CreatePlayerByCMJoin(Player* hum,
return hum;
}
void PlayerMgr::_SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_SocketDisconnect& msg)
void PlayerMgr::_SS_WSP_SocketDisconnect(f8::MsgHdr* hdr, const ss::SS_WSP_SocketDisconnect& msg)
{
Player* hum = GetPlayerBySocket(hdr.socket_handle);
Player* hum = GetPlayerBySocket(hdr->socket_handle);
if (hum) {
RemovePlayerBySocket(hdr.socket_handle);
RemovePlayerBySocket(hdr->socket_handle);
hum->room->OnPlayerOffline(hum);
}
#if MYDEBUG
a8::XPrintf("remove socket1 %d\n", {hdr.socket_handle});
a8::XPrintf("remove socket1 %d\n", {hdr->socket_handle});
#endif
if (MatchMgr::Instance()->GetMatchInfo(hdr.socket_handle)) {
if (MatchMgr::Instance()->GetMatchInfo(hdr->socket_handle)) {
#if MYDEBUG
a8::XPrintf("remove socket2 %d\n", {hdr.socket_handle});
a8::XPrintf("remove socket2 %d\n", {hdr->socket_handle});
#endif
MatchMgr::Instance()->RemoveSocket(hdr.socket_handle);
MatchMgr::Instance()->RemoveSocket(hdr->socket_handle);
}
}
void PlayerMgr::_SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg)
void PlayerMgr::_SS_Ping(f8::MsgHdr* hdr, const ss::SS_Ping& msg)
{
ss::SS_Pong respmsg;
GGListener::Instance()->SendToClient(hdr.socket_handle, 0, respmsg);
GGListener::Instance()->SendToClient(hdr->socket_handle, 0, respmsg);
}
void Team::FillSMGameOver(cs::SMGameOver& msg)

View File

@ -857,14 +857,14 @@ void Player::ProcSkillList()
}
}
void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& 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;
socket_handle = hdr->socket_handle;
TraverseAllLayerHumanList
(
[this] (Human* hum, bool& stop)
@ -883,7 +883,7 @@ void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
("战斗服重连成功 %s %d %d",
{
account_id,
hdr.socket_handle,
hdr->socket_handle,
old_socket_handle
});
{
@ -913,7 +913,7 @@ void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
}
}
void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
void Player::_CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg)
{
#ifdef MYDEBUG1
if (msg.shot_start() || msg.shot_hold()) {
@ -1208,7 +1208,7 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
#endif
}
void Player::_CMImmediateMsg(f8::MsgHdr& hdr, const cs::CMImmediateMsg& msg)
void Player::_CMImmediateMsg(f8::MsgHdr* hdr, const cs::CMImmediateMsg& msg)
{
if (msg.stop_move()) {
moving = false;
@ -1245,12 +1245,12 @@ void Player::UpdateUseScope()
use_scope_idx = 0;
}
void Player::_CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg)
void Player::_CMEmote(f8::MsgHdr* hdr, const cs::CMEmote& msg)
{
}
void Player::_CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg)
void Player::_CMVoice(f8::MsgHdr* hdr, const cs::CMVoice& msg)
{
cs::SMVoiceNotify notifymsg;
notifymsg.set_account_id(account_id);
@ -1262,7 +1262,7 @@ void Player::_CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg)
room->TraversePlayerList(send_func);
}
void Player::_CMGameOver(f8::MsgHdr& hdr, const cs::CMGameOver& msg)
void Player::_CMGameOver(f8::MsgHdr* hdr, const cs::CMGameOver& msg)
{
if (room->GetGasData().GetGasMode() == GasInactive) {
stats->is_run_away = true;
@ -1283,14 +1283,14 @@ void Player::_CMGameOver(f8::MsgHdr& hdr, const cs::CMGameOver& msg)
}
}
void Player::_CMWatchWar(f8::MsgHdr& hdr, const cs::CMWatchWar& msg)
void Player::_CMWatchWar(f8::MsgHdr* hdr, const cs::CMWatchWar& msg)
{
if (!room->IsMobaModeRoom()) {
AsyncRequestWatchWar(true);
}
}
void Player::_CMLeave(f8::MsgHdr& hdr, const cs::CMLeave& msg)
void Player::_CMLeave(f8::MsgHdr* hdr, const cs::CMLeave& msg)
{
if (room->GetGasData().GetGasMode() == GasInactive) {
stats->is_run_away = true;
@ -1307,7 +1307,7 @@ void Player::_CMLeave(f8::MsgHdr& hdr, const cs::CMLeave& msg)
SendNotifyMsg(respmsg);
}
void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg)
void Player::_CMRevive(f8::MsgHdr* hdr, const cs::CMRevive& msg)
{
Human* hum = room->GetHumanByUniId(msg.target_uniid());
if (hum && !hum->real_dead && hum->dead &&
@ -1373,12 +1373,12 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg)
}
}
void Player::_CMCancelRevive(f8::MsgHdr& hdr, const cs::CMCancelRevive& msg)
void Player::_CMCancelRevive(f8::MsgHdr* hdr, const cs::CMCancelRevive& msg)
{
CancelRevive();
}
void Player::_CMRequestBulletDmg(f8::MsgHdr& hdr, const cs::CMRequestBulletDmg& msg)
void Player::_CMRequestBulletDmg(f8::MsgHdr* hdr, const cs::CMRequestBulletDmg& msg)
{
auto itr = room->report_bullet_hash.find(msg.bullet_uniid());
#ifdef MYDEBUG
@ -1411,17 +1411,17 @@ void Player::_CMRequestBulletDmg(f8::MsgHdr& hdr, const cs::CMRequestBulletDmg&
room->report_bullet_hash.erase(msg.bullet_uniid());
}
void Player::_CMRequestThrowDmg(f8::MsgHdr& hdr, const cs::CMRequestThrowDmg& msg)
void Player::_CMRequestThrowDmg(f8::MsgHdr* hdr, const cs::CMRequestThrowDmg& msg)
{
ProcThrowDmg(msg.throw_uniid());
}
void Player::_CMStowShield(f8::MsgHdr& hdr, const cs::CMStowShield& msg)
void Player::_CMStowShield(f8::MsgHdr* hdr, const cs::CMStowShield& msg)
{
RemoveBuffByEffectId(kBET_HoldShield);
}
void Player::_CMTeamMarkTargetPos(f8::MsgHdr& hdr, const cs::CMTeamMarkTargetPos& msg)
void Player::_CMTeamMarkTargetPos(f8::MsgHdr* hdr, const cs::CMTeamMarkTargetPos& msg)
{
if (GetTeam()) {
if (msg.has_pos()) {
@ -1746,12 +1746,12 @@ void Player::UpdateThrowBomb()
throw_bomb.reset();
}
void Player::_CMSetRevivePosition(f8::MsgHdr& hdr, const cs::CMSetRevivePosition& msg)
void Player::_CMSetRevivePosition(f8::MsgHdr* hdr, const cs::CMSetRevivePosition& msg)
{
}
void Player::_CMGetSettlementTeamList(f8::MsgHdr& hdr, const cs::CMGetSettlementTeamList& msg)
void Player::_CMGetSettlementTeamList(f8::MsgHdr* hdr, const cs::CMGetSettlementTeamList& msg)
{
cs::SMGetSettlementTeamList rspmsg;
std::vector<Team*> sorted_teams;

View File

@ -121,23 +121,23 @@ class Player : public Human
void ProcSkillList();
void PushJoinRoomMsg();
void _CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg);
void _CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg);
void _CMImmediateMsg(f8::MsgHdr& hdr, const cs::CMImmediateMsg& msg);
void _CMExecCommand(f8::MsgHdr& hdr, const cs::CMExecCommand& msg);
void _CMEmote(f8::MsgHdr& hdr, const cs::CMEmote& msg);
void _CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg);
void _CMGameOver(f8::MsgHdr& hdr, const cs::CMGameOver& msg);
void _CMWatchWar(f8::MsgHdr& hdr, const cs::CMWatchWar& msg);
void _CMLeave(f8::MsgHdr& hdr, const cs::CMLeave& msg);
void _CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg);
void _CMCancelRevive(f8::MsgHdr& hdr, const cs::CMCancelRevive& msg);
void _CMRequestBulletDmg(f8::MsgHdr& hdr, const cs::CMRequestBulletDmg& msg);
void _CMRequestThrowDmg(f8::MsgHdr& hdr, const cs::CMRequestThrowDmg& msg);
void _CMStowShield(f8::MsgHdr& hdr, const cs::CMStowShield& msg);
void _CMTeamMarkTargetPos(f8::MsgHdr& hdr, const cs::CMTeamMarkTargetPos& msg);
void _CMSetRevivePosition(f8::MsgHdr& hdr, const cs::CMSetRevivePosition& msg);
void _CMGetSettlementTeamList(f8::MsgHdr& hdr, const cs::CMGetSettlementTeamList& msg);
void _CMReconnect(f8::MsgHdr* hdr, const cs::CMReconnect& msg);
void _CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg);
void _CMImmediateMsg(f8::MsgHdr* hdr, const cs::CMImmediateMsg& msg);
void _CMExecCommand(f8::MsgHdr* hdr, const cs::CMExecCommand& msg);
void _CMEmote(f8::MsgHdr* hdr, const cs::CMEmote& msg);
void _CMVoice(f8::MsgHdr* hdr, const cs::CMVoice& msg);
void _CMGameOver(f8::MsgHdr* hdr, const cs::CMGameOver& msg);
void _CMWatchWar(f8::MsgHdr* hdr, const cs::CMWatchWar& msg);
void _CMLeave(f8::MsgHdr* hdr, const cs::CMLeave& msg);
void _CMRevive(f8::MsgHdr* hdr, const cs::CMRevive& msg);
void _CMCancelRevive(f8::MsgHdr* hdr, const cs::CMCancelRevive& msg);
void _CMRequestBulletDmg(f8::MsgHdr* hdr, const cs::CMRequestBulletDmg& msg);
void _CMRequestThrowDmg(f8::MsgHdr* hdr, const cs::CMRequestThrowDmg& msg);
void _CMStowShield(f8::MsgHdr* hdr, const cs::CMStowShield& msg);
void _CMTeamMarkTargetPos(f8::MsgHdr* hdr, const cs::CMTeamMarkTargetPos& msg);
void _CMSetRevivePosition(f8::MsgHdr* hdr, const cs::CMSetRevivePosition& msg);
void _CMGetSettlementTeamList(f8::MsgHdr* hdr, const cs::CMGetSettlementTeamList& msg);
virtual void SetAttackDir(const glm::vec3& attack_dir) override;
void AsyncRequestWatchWar(bool send_rsp_msg);

View File

@ -27,8 +27,8 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
void Init();
void UnInit();
void _SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_SocketDisconnect& msg);
void _SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg);
void _SS_WSP_SocketDisconnect(f8::MsgHdr* hdr, const ss::SS_WSP_SocketDisconnect& msg);
void _SS_Ping(f8::MsgHdr* hdr, const ss::SS_Ping& msg);
int OnlineNum();
Player* GetPlayerBySocket(int socket);

View File

@ -108,10 +108,10 @@ void RoomMgr::Update(int delta_time)
PerfMonitor::Instance()->real_alive_count = real_alive_count;
}
void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
void RoomMgr::_CMJoin(f8::MsgHdr* hdr, const cs::CMJoin& msg)
{
if (IsLimitJoin()) {
JoinErrorHandle(msg, 2, hdr.socket_handle);
JoinErrorHandle(msg, 2, hdr->socket_handle);
return;
}
{
@ -135,7 +135,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
}
const mt::Map* map_meta = mt::Map::GetById(msg.mapid());
if (!map_meta || !map_meta->IsOpen()) {
JoinErrorHandle(msg, 3, hdr.socket_handle);
JoinErrorHandle(msg, 3, hdr->socket_handle);
return;
}
if (!msg.custom_room_payload().empty()) {
@ -145,8 +145,8 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
std::shared_ptr<cs::CMJoin> join_msg = std::make_shared<cs::CMJoin>();
*join_msg = msg;
std::vector<std::shared_ptr<cs::CMJoin>> join_msgs{join_msg};
auto ip_saddr = hdr.ip_saddr;
auto socket_handle = hdr.socket_handle;
auto ip_saddr = hdr->ip_saddr;
auto socket_handle = hdr->socket_handle;
auto cb =
[ip_saddr, socket_handle, join_msg]
(std::vector<std::shared_ptr<BattleDataContext>>& results)
@ -218,7 +218,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
SendGetBattleData(0, join_msgs, cb);
}
void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
void RoomMgr::_CMReconnect(f8::MsgHdr* hdr, const cs::CMReconnect& msg)
{
auto send_reconnect_failed =
[] (int socket_handle, int errcode, const std::string& errmsg)
@ -241,7 +241,7 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
auto room = GetRoomByUuid(a8::XValue(msg.room_uuid()));
if (!room) {
send_reconnect_failed(hdr.socket_handle, 1,
send_reconnect_failed(hdr->socket_handle, 1,
TEXT("battle_server_reconnect_failreason_room_destoryed", "房间已销毁"));
f8::UdpLog::Instance()->Debug
("房间已销毁 %s",
@ -252,24 +252,24 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
}
#if 0
if (room->GetRoomMode() != kPvpMode) {
send_reconnect_failed(hdr.socket_handle, 1,
send_reconnect_failed(hdr->socket_handle, 1,
TEXT("battle_server_reconnect_failreason_only_chiji", "只有吃鸡模式支持重连"));
return;
}
#endif
Player* hum = room->GetPlayerByAccountId(msg.account_id());
if (!hum) {
send_reconnect_failed(hdr.socket_handle, 1,
send_reconnect_failed(hdr->socket_handle, 1,
TEXT("battle_server_reconnect_failreason_notfound_accountid", "accountid未在房间列表"));
return;
}
hum->_CMReconnect(hdr, msg);
}
void RoomMgr::_CMPing(f8::MsgHdr& hdr, const cs::CMPing& msg)
void RoomMgr::_CMPing(f8::MsgHdr* hdr, const cs::CMPing& msg)
{
cs::SMPing respmsg;
GGListener::Instance()->SendToClient(hdr.socket_handle, 0, respmsg);
GGListener::Instance()->SendToClient(hdr->socket_handle, 0, respmsg);
}
int RoomMgr::RoomNum()
@ -920,15 +920,15 @@ std::shared_ptr<CustomBattle> RoomMgr::GetHisCustomRoom(const std::string& room_
return itr != his_custom_room_hash_.end() ? itr->second : nullptr;
}
void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr& hdr, const cs::CMJoin& msg)
void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr* hdr, const cs::CMJoin& msg)
{
if (msg.custom_room_payload().empty()) {
return;
}
std::shared_ptr<cs::CMJoin> join_msg = std::make_shared<cs::CMJoin>();
*join_msg = msg;
auto ip_saddr = hdr.ip_saddr;
auto socket_handle = hdr.socket_handle;
auto ip_saddr = hdr->ip_saddr;
auto socket_handle = hdr->socket_handle;
auto cb =
[join_msg, ip_saddr, socket_handle]
(int errcode, const std::string errmsg, std::shared_ptr<CustomBattle> p)

View File

@ -72,9 +72,9 @@ class RoomMgr : public a8::Singleton<RoomMgr>
void UnInit();
void Update(int delta_time);
void _CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void _CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg);
void _CMPing(f8::MsgHdr& hdr, const cs::CMPing& msg);
void _CMJoin(f8::MsgHdr* hdr, const cs::CMJoin& msg);
void _CMReconnect(f8::MsgHdr* hdr, const cs::CMReconnect& msg);
void _CMPing(f8::MsgHdr* hdr, const cs::CMPing& msg);
void ActiveRoom(const std::string& room_uuid);
int RoomNum();
int OverRoomNum();
@ -119,7 +119,7 @@ class RoomMgr : public a8::Singleton<RoomMgr>
void AdjustCMJoin(cs::CMJoin* msg);
std::shared_ptr<CustomBattle> GetCustomRoom(const std::string& room_uuid);
std::shared_ptr<CustomBattle> GetHisCustomRoom(const std::string& room_uuid);
void _CMJoinCustomBattle(f8::MsgHdr& hdr, const cs::CMJoin& msg);
void _CMJoinCustomBattle(f8::MsgHdr* hdr, const cs::CMJoin& msg);
void SendGetCustomBattleData(std::shared_ptr<cs::CMJoin> join_msg,
std::function<void(int, const std::string, std::shared_ptr<CustomBattle>)> cb);

2
third_party/f8 vendored

@ -1 +1 @@
Subproject commit 7fb9c9083275fd35c2bb4456999673444dcfe986
Subproject commit 59d0a88a602354c0fccf1b72b43d2d78f2fe4d10