1
This commit is contained in:
parent
c900e1537b
commit
4a2a16d449
@ -18,56 +18,52 @@ void KillMgr::UnInit()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
master.name
|
||||||
|
killer.name
|
||||||
|
dead.name
|
||||||
|
weapon.name
|
||||||
|
weapon.text_icon
|
||||||
|
*/
|
||||||
void KillMgr::OnHumanDead(Human* dead_hum, KillInfo* info)
|
void KillMgr::OnHumanDead(Human* dead_hum, KillInfo* info)
|
||||||
{
|
{
|
||||||
{
|
std::shared_ptr<cs::SMRollMsg> pb_msg = std::make_shared<cs::SMRollMsg>();
|
||||||
Entity* hum = dead_hum->room->GetEntityByUniId(info->killer_id);
|
Entity* killer = dead_hum->room->GetEntityByUniId(info->killer_id);
|
||||||
if (hum && hum->IsEntityType(ET_Player)) {
|
if (killer && killer->IsEntityType(ET_Player)) {
|
||||||
Creature* killer = (Creature*)hum;
|
|
||||||
if (info->killer_id == dead_hum->GetUniId()) {
|
if (info->killer_id == dead_hum->GetUniId()) {
|
||||||
#if 0
|
PreprocessRollMsg(pb_msg,
|
||||||
SendRollMsgEx(info,
|
|
||||||
TEXT("battle_server_dead_specate", "%s 自杀").c_str(),
|
TEXT("battle_server_dead_specate", "%s 自杀").c_str(),
|
||||||
{
|
{
|
||||||
killer_name
|
info->killer_name
|
||||||
});
|
});
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
#if 0
|
PreprocessRollMsg(pb_msg,
|
||||||
SendRollMsgEx
|
|
||||||
(info,
|
|
||||||
TEXT("battle_server_dead_weapon", "%s 使用 ${weapon_text_icon} 干掉了 %s").c_str(),
|
TEXT("battle_server_dead_weapon", "%s 使用 ${weapon_text_icon} 干掉了 %s").c_str(),
|
||||||
{
|
{
|
||||||
killer_name,
|
info->killer_name,
|
||||||
name
|
dead_hum->name
|
||||||
}
|
});
|
||||||
);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Entity* root_master = dead_hum->room->GetEntityByUniId(info->root_master_id);
|
||||||
|
if (root_master && root_master->IsEntityType(ET_Player)) {
|
||||||
|
}
|
||||||
|
}
|
||||||
#if 0
|
#if 0
|
||||||
switch (weapon_id) {
|
|
||||||
case VW_SafeArea:
|
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
SendRollMsgEx
|
SendRollMsgEx
|
||||||
(info,
|
(info,
|
||||||
TEXT("battle_server_dead_gas", "%s 被${weapon_text_icon}干掉").c_str(),
|
TEXT("battle_server_dead_gas", "%s 被${weapon_text_icon}干掉").c_str(),
|
||||||
{
|
{
|
||||||
name
|
name
|
||||||
});
|
});
|
||||||
}
|
#endif
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KillMgr::PreprocessRollMsg(cs::SMRollMsg* pb_msg,
|
void KillMgr::PreprocessRollMsg(std::shared_ptr<cs::SMRollMsg> pb_msg,
|
||||||
const char* fmt,
|
const char* fmt,
|
||||||
std::initializer_list<a8::XValue> args)
|
std::initializer_list<a8::XValue> args)
|
||||||
{
|
{
|
||||||
@ -150,35 +146,36 @@ void KillMgr::PreprocessRollMsg(cs::SMRollMsg* pb_msg,
|
|||||||
void KillMgr::BoradcastRollMsg(Human* dead_hum,
|
void KillMgr::BoradcastRollMsg(Human* dead_hum,
|
||||||
KillInfo* info,
|
KillInfo* info,
|
||||||
int killer_team_id,
|
int killer_team_id,
|
||||||
cs::SMRollMsg* pb_msg)
|
std::shared_ptr<cs::SMRollMsg> pb_msg)
|
||||||
{
|
{
|
||||||
KillInfo* info_copy = new KillInfo;
|
std::shared_ptr<cs::SMRollMsg>* pb_msg_copy = new std::shared_ptr<cs::SMRollMsg>;
|
||||||
*info_copy = *info;
|
*pb_msg_copy = pb_msg;
|
||||||
dead_hum->room->xtimer.AddDeadLineTimerAndAttach
|
dead_hum->room->xtimer.AddDeadLineTimerAndAttach
|
||||||
(
|
(
|
||||||
0,
|
0,
|
||||||
a8::XParams()
|
a8::XParams()
|
||||||
.SetSender(dead_hum)
|
.SetSender(dead_hum)
|
||||||
.SetParam1(info_copy)
|
.SetParam1(pb_msg_copy)
|
||||||
.SetParam2(pb_msg)
|
|
||||||
.SetParam3(killer_team_id),
|
.SetParam3(killer_team_id),
|
||||||
[] (const a8::XParams& param)
|
[] (const a8::XParams& param)
|
||||||
{
|
{
|
||||||
Human* dead_hum = (Human*)param.sender.GetUserData();
|
Human* dead_hum = (Human*)param.sender.GetUserData();
|
||||||
KillInfo* info = (KillInfo*)param.param1.GetUserData();
|
KillInfo* info = (KillInfo*)param.param1.GetUserData();
|
||||||
cs::SMRollMsg* pb_msg = (cs::SMRollMsg*)param.param2.GetUserData();
|
std::shared_ptr<cs::SMRollMsg>* pb_msg = (std::shared_ptr<cs::SMRollMsg>*)
|
||||||
|
param.param2.GetUserData();
|
||||||
int killer_team_id = param.param3;
|
int killer_team_id = param.param3;
|
||||||
KillMgr::Instance()->BoradcastRollMsgCb
|
KillMgr::Instance()->BoradcastRollMsgCb
|
||||||
(dead_hum,
|
(dead_hum,
|
||||||
info,
|
info,
|
||||||
killer_team_id,
|
killer_team_id,
|
||||||
pb_msg);
|
*pb_msg);
|
||||||
},
|
},
|
||||||
&dead_hum->xtimer_attacher.timer_list_,
|
&dead_hum->xtimer_attacher.timer_list_,
|
||||||
[] (const a8::XParams& param)
|
[] (const a8::XParams& param)
|
||||||
{
|
{
|
||||||
KillInfo* info = (KillInfo*)param.param1.GetUserData();
|
KillInfo* info = (KillInfo*)param.param1.GetUserData();
|
||||||
cs::SMRollMsg* pb_msg = (cs::SMRollMsg*)param.param2.GetUserData();
|
std::shared_ptr<cs::SMRollMsg>* pb_msg = (std::shared_ptr<cs::SMRollMsg>*)
|
||||||
|
param.param2.GetUserData();
|
||||||
delete pb_msg;
|
delete pb_msg;
|
||||||
delete info;
|
delete info;
|
||||||
}
|
}
|
||||||
@ -188,7 +185,7 @@ void KillMgr::BoradcastRollMsg(Human* dead_hum,
|
|||||||
void KillMgr::BoradcastRollMsgCb(Human* dead_hum,
|
void KillMgr::BoradcastRollMsgCb(Human* dead_hum,
|
||||||
KillInfo* info,
|
KillInfo* info,
|
||||||
int killer_team_id,
|
int killer_team_id,
|
||||||
cs::SMRollMsg* pb_msg)
|
std::shared_ptr<cs::SMRollMsg> pb_msg)
|
||||||
{
|
{
|
||||||
dead_hum->room->TraversePlayerList
|
dead_hum->room->TraversePlayerList
|
||||||
(a8::XParams(),
|
(a8::XParams(),
|
||||||
|
@ -7,6 +7,7 @@ namespace cs
|
|||||||
|
|
||||||
struct KillInfo
|
struct KillInfo
|
||||||
{
|
{
|
||||||
|
int root_master_id = 0;
|
||||||
int killer_id = 0;
|
int killer_id = 0;
|
||||||
std::string killer_name;
|
std::string killer_name;
|
||||||
int weapon_id = 0;
|
int weapon_id = 0;
|
||||||
@ -27,15 +28,15 @@ class KillMgr : public a8::Singleton<KillMgr>
|
|||||||
void OnHumanDead(Human* dead_hum, KillInfo* info);
|
void OnHumanDead(Human* dead_hum, KillInfo* info);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void PreprocessRollMsg(cs::SMRollMsg* pb_msg,
|
void PreprocessRollMsg(std::shared_ptr<cs::SMRollMsg> pb_msg,
|
||||||
const char* fmt,
|
const char* fmt,
|
||||||
std::initializer_list<a8::XValue> args);
|
std::initializer_list<a8::XValue> args);
|
||||||
void BoradcastRollMsg(Human* dead_hum,
|
void BoradcastRollMsg(Human* dead_hum,
|
||||||
KillInfo* info,
|
KillInfo* info,
|
||||||
int killer_team_id,
|
int killer_team_id,
|
||||||
cs::SMRollMsg* pb_msg);
|
std::shared_ptr<cs::SMRollMsg> pb_msg);
|
||||||
void BoradcastRollMsgCb(Human* dead_hum,
|
void BoradcastRollMsgCb(Human* dead_hum,
|
||||||
KillInfo* info,
|
KillInfo* info,
|
||||||
int killer_team_id,
|
int killer_team_id,
|
||||||
cs::SMRollMsg* pb_msg);
|
std::shared_ptr<cs::SMRollMsg> pb_msg);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user