add team_target_pos
This commit is contained in:
parent
1ddf62cbde
commit
c635ef0720
@ -108,6 +108,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
|
|||||||
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMCancelRevive);
|
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMCancelRevive);
|
||||||
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMRequestBulletDmg);
|
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMRequestBulletDmg);
|
||||||
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMStowShield);
|
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMStowShield);
|
||||||
|
RegisterNetMsgHandler(&ggmsghandler, &Player::_CMTeamMarkTargetPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
|
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
|
||||||
|
@ -4840,3 +4840,22 @@ void Human::FillMFSettlement(cs::SMGameOver* msg, cs::MFSettlement* s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Human::NotifyTeamMarkTargetPos()
|
||||||
|
{
|
||||||
|
if (GetTeam()) {
|
||||||
|
cs::SMTeamMarkTargetPosList notify_msg;
|
||||||
|
for (auto& pair : GetTeam()->target_pos) {
|
||||||
|
auto p = notify_msg.add_pos_list();
|
||||||
|
p->set_obj_uniid(pair.first);
|
||||||
|
TypeConvert::ToPb(pair.second, p->mutable_pos());
|
||||||
|
}
|
||||||
|
GetTeam()->TraverseMembers
|
||||||
|
(
|
||||||
|
[¬ify_msg] (Human* hum)
|
||||||
|
{
|
||||||
|
hum->SendNotifyMsg(notify_msg);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -363,6 +363,7 @@ class Human : public Creature
|
|||||||
void DecOxygen(int val);
|
void DecOxygen(int val);
|
||||||
void WinPveScore(int score);
|
void WinPveScore(int score);
|
||||||
int GetTeamMode();
|
int GetTeamMode();
|
||||||
|
void NotifyTeamMarkTargetPos();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _InternalUpdateMove(float speed);
|
void _InternalUpdateMove(float speed);
|
||||||
|
@ -1320,6 +1320,20 @@ void Player::_CMStowShield(f8::MsgHdr& hdr, const cs::CMStowShield& msg)
|
|||||||
RemoveBuffByEffectId(kBET_HoldShield);
|
RemoveBuffByEffectId(kBET_HoldShield);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Player::_CMTeamMarkTargetPos(f8::MsgHdr& hdr, const cs::CMTeamMarkTargetPos& msg)
|
||||||
|
{
|
||||||
|
if (GetTeam()) {
|
||||||
|
if (msg.has_pos()) {
|
||||||
|
a8::Vec2 pos;
|
||||||
|
pos.x = msg.pos().x();
|
||||||
|
pos.y = msg.pos().y();
|
||||||
|
GetTeam()->target_pos[GetUniId()] = pos;
|
||||||
|
} else {
|
||||||
|
GetTeam()->target_pos.erase(GetUniId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Player::PushJoinRoomMsg()
|
void Player::PushJoinRoomMsg()
|
||||||
{
|
{
|
||||||
if (!a8::HasBitFlag(status, CS_ForceTeam)) {
|
if (!a8::HasBitFlag(status, CS_ForceTeam)) {
|
||||||
|
@ -11,6 +11,7 @@ namespace cs
|
|||||||
class CMVoice;
|
class CMVoice;
|
||||||
class CMStowShield;
|
class CMStowShield;
|
||||||
class CMImmediateMsg;
|
class CMImmediateMsg;
|
||||||
|
class CMTeamMarkTargetPos;
|
||||||
class MFActivePlayerData;
|
class MFActivePlayerData;
|
||||||
class MFGasData;
|
class MFGasData;
|
||||||
class MFPair;
|
class MFPair;
|
||||||
@ -124,6 +125,7 @@ class Player : public Human
|
|||||||
void _CMCancelRevive(f8::MsgHdr& hdr, const cs::CMCancelRevive& msg);
|
void _CMCancelRevive(f8::MsgHdr& hdr, const cs::CMCancelRevive& msg);
|
||||||
void _CMRequestBulletDmg(f8::MsgHdr& hdr, const cs::CMRequestBulletDmg& msg);
|
void _CMRequestBulletDmg(f8::MsgHdr& hdr, const cs::CMRequestBulletDmg& msg);
|
||||||
void _CMStowShield(f8::MsgHdr& hdr, const cs::CMStowShield& msg);
|
void _CMStowShield(f8::MsgHdr& hdr, const cs::CMStowShield& msg);
|
||||||
|
void _CMTeamMarkTargetPos(f8::MsgHdr& hdr, const cs::CMTeamMarkTargetPos& msg);
|
||||||
virtual void SetAttackDir(const a8::Vec2& attack_dir) override;
|
virtual void SetAttackDir(const a8::Vec2& attack_dir) override;
|
||||||
void AsyncRequestWatchWar(bool send_rsp_msg);
|
void AsyncRequestWatchWar(bool send_rsp_msg);
|
||||||
|
|
||||||
|
@ -1576,6 +1576,7 @@ void Room::MatchTeam(Human* hum)
|
|||||||
|
|
||||||
void Room::CombineTeam()
|
void Room::CombineTeam()
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
if (MetaMgr::Instance()->prebattle_combine_team) {
|
if (MetaMgr::Instance()->prebattle_combine_team) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,9 @@ void Team::AddMember(Human* member)
|
|||||||
if (member->GetFollowTimes() <= 0 && member != first_member_ && !member->follow_target.Get()) {
|
if (member->GetFollowTimes() <= 0 && member != first_member_ && !member->follow_target.Get()) {
|
||||||
member->DoFollow(first_member_->GetUniId());
|
member->DoFollow(first_member_->GetUniId());
|
||||||
}
|
}
|
||||||
|
if (!target_pos.empty()) {
|
||||||
|
member->NotifyTeamMarkTargetPos();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Team::IsFull()
|
bool Team::IsFull()
|
||||||
|
@ -7,6 +7,7 @@ class Team
|
|||||||
public:
|
public:
|
||||||
Room* room = nullptr;
|
Room* room = nullptr;
|
||||||
int team_rank = 0;
|
int team_rank = 0;
|
||||||
|
std::map<int, a8::Vec2> target_pos;
|
||||||
|
|
||||||
void SetInitTeamMemberNum(int init_num) { init_team_member_num_ = init_num; };
|
void SetInitTeamMemberNum(int init_num) { init_team_member_num_ = init_num; };
|
||||||
void SetAutoFill(bool auto_fill) { auto_fill_ = auto_fill; };
|
void SetAutoFill(bool auto_fill) { auto_fill_ = auto_fill; };
|
||||||
|
@ -25,6 +25,7 @@ enum CMMessageId_e
|
|||||||
_CMRequestBulletDmg = 230;
|
_CMRequestBulletDmg = 230;
|
||||||
_CMStowShield = 231;
|
_CMStowShield = 231;
|
||||||
_CMImmediateMsg = 232;
|
_CMImmediateMsg = 232;
|
||||||
|
_CMTeamMarkTargetPos = 233;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum SMMessageId_e
|
enum SMMessageId_e
|
||||||
@ -55,4 +56,5 @@ enum SMMessageId_e
|
|||||||
_SMGetItemNotify = 1018;
|
_SMGetItemNotify = 1018;
|
||||||
_SMMatchMemberMsgNotify = 1019;
|
_SMMatchMemberMsgNotify = 1019;
|
||||||
_SMPvePassWave = 1020;
|
_SMPvePassWave = 1020;
|
||||||
|
_SMTeamMarkTargetPosList = 1021;
|
||||||
}
|
}
|
||||||
|
@ -240,6 +240,13 @@ message MFCharacterImage
|
|||||||
optional MFWeapon weapon = 3; //武器
|
optional MFWeapon weapon = 3; //武器
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//组队标记目标位置
|
||||||
|
message MFTeamMarkPos
|
||||||
|
{
|
||||||
|
optional int32 obj_uniid = 1; //唯一id
|
||||||
|
optional MFVec2 pos = 2; //位置
|
||||||
|
}
|
||||||
|
|
||||||
//玩家信息-全量
|
//玩家信息-全量
|
||||||
message MFPlayerFull
|
message MFPlayerFull
|
||||||
{
|
{
|
||||||
@ -1090,6 +1097,12 @@ message CMImmediateMsg
|
|||||||
optional int32 stop_shot = 2; //停止射击
|
optional int32 stop_shot = 2; //停止射击
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//组队标记目标位置
|
||||||
|
message CMTeamMarkTargetPos
|
||||||
|
{
|
||||||
|
optional MFVec2 pos = 1; //目标位置,如果不传表示取消
|
||||||
|
}
|
||||||
|
|
||||||
//执行GM指令
|
//执行GM指令
|
||||||
message CMExecCommand
|
message CMExecCommand
|
||||||
{
|
{
|
||||||
@ -1412,3 +1425,9 @@ message SMPvePassWave
|
|||||||
optional int32 pve_max_wave = 18; //pve总波次
|
optional int32 pve_max_wave = 18; //pve总波次
|
||||||
optional int32 wait_time = 2; //下一波开始时间(单位秒)
|
optional int32 wait_time = 2; //下一波开始时间(单位秒)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//组队标记目标位置列表
|
||||||
|
message SMTeamMarkTargetPosList
|
||||||
|
{
|
||||||
|
repeated MFTeamMarkPos pos_list = 1; //位置列表
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user