merge en
This commit is contained in:
commit
62adb69ef8
@ -738,9 +738,15 @@ void Human::UpdatePoisoning()
|
||||
bool need_notify = poisoning_time > 1000;
|
||||
while (poisoning_time > 1000) {
|
||||
if (room->GetGasData().is_last_gas) {
|
||||
DecHP(room->GetGasData().new_area_meta->i->hurt(), VP_SafeArea, "毒圈", VW_SafeArea);
|
||||
DecHP(room->GetGasData().new_area_meta->i->hurt(),
|
||||
VP_SafeArea,
|
||||
MetaMgr::Instance()->GetText("battle_server_killer_gas", "毒圈"),
|
||||
VW_SafeArea);
|
||||
} else {
|
||||
DecHP(room->GetGasData().old_area_meta->i->hurt(), VP_SafeArea, "毒圈", VW_SafeArea);
|
||||
DecHP(room->GetGasData().old_area_meta->i->hurt(),
|
||||
VP_SafeArea,
|
||||
MetaMgr::Instance()->GetText("battle_server_killer_gas", "毒圈"),
|
||||
VW_SafeArea);
|
||||
}
|
||||
if (dead) {
|
||||
poisoning_time = 0;
|
||||
@ -976,10 +982,11 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
|
||||
Entity* hum = room->GetEntityByUniId(killer_id);
|
||||
if (hum && hum->IsEntityType(ET_Player)) {
|
||||
if (killer_id == GetEntityUniId()) {
|
||||
std::string msg = a8::Format("%s 自杀",
|
||||
{
|
||||
killer_name,
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_specate", "%s 自杀").c_str(),
|
||||
{
|
||||
killer_name,
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
} else {
|
||||
((Human*)hum)->stats.kills++;
|
||||
@ -987,22 +994,25 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
|
||||
((Human*)hum)->kill_humans.insert(this);
|
||||
((Human*)hum)->SyncAroundPlayers(__FILE__, __LINE__, __func__);
|
||||
if (weapon_id == VW_Tank) {
|
||||
std::string msg = a8::Format("%s 使用 %s 干掉了 %s",
|
||||
{
|
||||
killer_name,
|
||||
"载具",
|
||||
name
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_car",
|
||||
"%s 使用 载具 干掉了 %s").c_str(),
|
||||
{
|
||||
killer_name,
|
||||
name
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
} else {
|
||||
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(weapon_id);
|
||||
if (equip_meta) {
|
||||
std::string msg = a8::Format("%s 使用 %s 干掉了 %s",
|
||||
{
|
||||
killer_name,
|
||||
equip_meta->i->name(),
|
||||
name
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_weapon",
|
||||
"%s 使用 %s 干掉了 %s").c_str(),
|
||||
{
|
||||
killer_name,
|
||||
equip_meta->i->name(),
|
||||
name
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
}
|
||||
}
|
||||
@ -1011,37 +1021,42 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
|
||||
switch (weapon_id) {
|
||||
case VW_SafeArea:
|
||||
{
|
||||
std::string msg = a8::Format("%s 被毒圈干掉",
|
||||
{
|
||||
name
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_gas", "%s 被毒圈干掉").c_str(),
|
||||
{
|
||||
name
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
}
|
||||
break;
|
||||
case VW_Spectate:
|
||||
{
|
||||
std::string msg = a8::Format("%s 自杀",
|
||||
{
|
||||
name
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_specate", "%s 自杀").c_str(),
|
||||
{
|
||||
name
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
}
|
||||
break;
|
||||
case VW_SelfDetonate:
|
||||
{
|
||||
std::string msg = a8::Format("%s 被炸死",
|
||||
{
|
||||
name
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_self_detonate",
|
||||
"%s 被炸死").c_str(),
|
||||
{
|
||||
name
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
}
|
||||
break;
|
||||
case VW_Mine:
|
||||
{
|
||||
std::string msg = a8::Format("%s 被地雷炸死",
|
||||
{
|
||||
name
|
||||
});
|
||||
std::string msg = a8::Format
|
||||
(MetaMgr::Instance()->GetText("battle_server_dead_mine", "%s 被地雷炸死").c_str(),
|
||||
{
|
||||
name
|
||||
});
|
||||
SendRollMsg(msg);
|
||||
}
|
||||
break;
|
||||
@ -3152,7 +3167,11 @@ void Human::ProcBuffEffect(Human* caster, Buff* buff)
|
||||
MetaMgr::Instance()->terminator_meta &&
|
||||
meta != MetaMgr::Instance()->terminator_meta) {
|
||||
WinExp(this, MetaMgr::Instance()->terminator_meta->i->exp() + 1);
|
||||
room->NotifySysPiao("终结者出现", a8::MkRgb(255, 0, 0), 3);
|
||||
room->NotifySysPiao
|
||||
(MetaMgr::Instance()->GetText("battle_server_terminator_appear",
|
||||
"终结者出现").c_str(),
|
||||
a8::MkRgb(255, 0, 0), 3
|
||||
);
|
||||
OnChgToTerminator();
|
||||
}
|
||||
}
|
||||
|
@ -62,6 +62,7 @@ public:
|
||||
std::vector<MetaData::Robot> robot_list;
|
||||
std::list<metatable::AI> ai_meta_list;
|
||||
std::list<MetaData::AI> ai_list;
|
||||
std::list<metatable::Text> text_meta_list;
|
||||
|
||||
std::map<std::string, MetaData::Parameter*> parameter_hash;
|
||||
std::map<int, MetaData::Map*> gamemap_hash;
|
||||
@ -90,6 +91,7 @@ public:
|
||||
std::map<int, MetaData::Robot*> robot_hash;
|
||||
std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
|
||||
std::map<int, MetaData::AI*> ai_hash;
|
||||
std::map<std::string, std::string> text_hash;
|
||||
|
||||
void Load()
|
||||
{
|
||||
@ -138,6 +140,7 @@ public:
|
||||
f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "ai@ai.csv", ai_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "text@text.csv", text_meta_list);
|
||||
BindToMetaData();
|
||||
#if 1
|
||||
{
|
||||
@ -616,6 +619,11 @@ private:
|
||||
item.Init();
|
||||
ai_hash[a8::MakeInt64(meta.ai_level(), meta.ai_mode())] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : text_meta_list) {
|
||||
text_hash[meta.textid()] = meta.text();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
@ -848,3 +856,9 @@ MetaData::AI* MetaMgr::GetAI(int ai_level, int ai_mode)
|
||||
auto itr = loader_->ai_hash.find(a8::MakeInt64(ai_level, ai_mode));
|
||||
return itr != loader_->ai_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;
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
int GetKillPointParam2(int kill_num);
|
||||
MetaData::Robot* RandRobot(std::set<int>& refreshed_robot_set);
|
||||
MetaData::AI* GetAI(int ai_level, int ai_mode);
|
||||
std::string GetText(const std::string& textid, const std::string& def_text="");
|
||||
|
||||
int gas_inactive_time = 10;
|
||||
int newbie_gas_inactive_time = 5;
|
||||
|
@ -294,7 +294,10 @@ void Obstacle::Explosion(Bullet* bullet)
|
||||
float dmg = meta->i->damage();
|
||||
float def = hum->ability.def;
|
||||
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
|
||||
hum->DecHP(finaly_dmg, VP_Mine, "地雷", VW_Mine);
|
||||
hum->DecHP(finaly_dmg,
|
||||
VP_Mine,
|
||||
MetaMgr::Instance()->GetText("battle_server_killer_mine", "地雷"),
|
||||
VW_Mine);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -935,7 +935,7 @@ void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
need_sync_active_player = true;
|
||||
cs::SMReconnect respmsg;
|
||||
respmsg.set_errcode(0);
|
||||
respmsg.set_errmsg("战斗重连成功");
|
||||
respmsg.set_errmsg(MetaMgr::Instance()->GetText("battle_server_reconnect_ok", "战斗重连成功"));
|
||||
SendNotifyMsg(respmsg);
|
||||
PlayerMgr::Instance()->ReBindSocket(this);
|
||||
a8::UdpLog::Instance()->Debug
|
||||
@ -1375,7 +1375,7 @@ void Player::_CMOpenBox(f8::MsgHdr& hdr, const cs::CMOpenBox& msg)
|
||||
receved_box_hash_.insert(msg.box_id());
|
||||
} else {
|
||||
respmsg.set_errcode(1);
|
||||
respmsg.set_errmsg("不能重复领取");
|
||||
respmsg.set_errmsg(MetaMgr::Instance()->GetText("battle_server_received", "不能重复领取"));
|
||||
}
|
||||
}
|
||||
SendNotifyMsg(respmsg);
|
||||
|
@ -1428,7 +1428,9 @@ void Room::AirDrop(int appear_time, int box_id, int airdrop_id)
|
||||
}
|
||||
if (GetRoomMode() == kZombieMode) {
|
||||
if (airdrop_id != map_meta_->i->terminator_airdrop()) {
|
||||
NotifyCountdown("距离物资箱抵达还有%d秒", appear_time / 1000);
|
||||
NotifyCountdown(MetaMgr::Instance()->GetText("battle_server_box_countdown",
|
||||
"距离物资箱抵达还有%d秒"),
|
||||
appear_time / 1000);
|
||||
}
|
||||
}
|
||||
if (thing_meta && thing_meta->i->type() == 2) {
|
||||
@ -1497,7 +1499,8 @@ void Room::AirDrop(int appear_time, int box_id, int airdrop_id)
|
||||
if (obstacle->is_terminator_airdrop_box) {
|
||||
room->NotifySysPiao
|
||||
(
|
||||
"终结者补给箱已送达",
|
||||
MetaMgr::Instance()->GetText("battle_server_box_serviced",
|
||||
"终结者补给箱已送达"),
|
||||
a8::MkRgb(0, 255, 0),
|
||||
3
|
||||
);
|
||||
@ -2345,7 +2348,7 @@ void Room::ProcDieAndroid(int die_time, int die_num)
|
||||
if (alive_humans.size() == 1) {
|
||||
Human* hum = alive_humans[0];
|
||||
hum->BeKill(VP_SafeArea,
|
||||
"毒圈",
|
||||
MetaMgr::Instance()->GetText("battle_server_killer_gas", "毒圈"),
|
||||
VW_SafeArea);
|
||||
a8::UnSetBitFlag(hum->status, HS_Disable);
|
||||
return;
|
||||
@ -2373,7 +2376,7 @@ void Room::ProcDieAndroid(int die_time, int die_num)
|
||||
a8::UnSetBitFlag(hum->status, HS_Disable);
|
||||
} else {
|
||||
hum->BeKill(VP_SafeArea,
|
||||
"毒圈",
|
||||
MetaMgr::Instance()->GetText("battle_server_killer_gas", "毒圈"),
|
||||
VW_SafeArea);
|
||||
if (!alive_humans.empty()) {
|
||||
alive_humans.erase(alive_humans.begin() + i);
|
||||
@ -2439,7 +2442,7 @@ void Room::CheckAutoDie(Human* target,
|
||||
} else {
|
||||
a8::UnSetBitFlag(target->status, HS_Disable);
|
||||
target->BeKill(VP_SafeArea,
|
||||
"毒圈",
|
||||
MetaMgr::Instance()->GetText("battle_server_killer_gas", "毒圈"),
|
||||
VW_SafeArea);
|
||||
}
|
||||
}
|
||||
@ -3290,7 +3293,9 @@ void Room::OnZombieAppear(Human* hum)
|
||||
.SetParam1(hum->meta->i->name()),
|
||||
[] (Player* hum, a8::XParams& param)
|
||||
{
|
||||
hum->SendSysPiaoMsg(a8::Format("%s出现了", {param.param1.GetString()}),
|
||||
hum->SendSysPiaoMsg(a8::Format(MetaMgr::Instance()->GetText("battle_server_appear",
|
||||
"%s出现了").c_str(),
|
||||
{param.param1.GetString()}),
|
||||
a8::MkRgb(255, 0, 0),
|
||||
3);
|
||||
}
|
||||
|
@ -201,7 +201,12 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
|
||||
Room* room = GetRoomByUuid(a8::XValue(msg.room_uuid()));
|
||||
if (!room) {
|
||||
send_reconnect_failed(hdr.socket_handle, 1, "房间已销毁");
|
||||
send_reconnect_failed
|
||||
(hdr.socket_handle,
|
||||
1,
|
||||
MetaMgr::Instance()->GetText("battle_server_reconnect_failreason_room_destoryed",
|
||||
"房间已销毁")
|
||||
);
|
||||
a8::UdpLog::Instance()->Debug
|
||||
("房间已销毁 %s",
|
||||
{
|
||||
@ -210,12 +215,24 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
return;
|
||||
}
|
||||
if (room->GetRoomMode() != kChiJiMode) {
|
||||
send_reconnect_failed(hdr.socket_handle, 1, "只有吃鸡模式支持重连");
|
||||
send_reconnect_failed
|
||||
(hdr.socket_handle,
|
||||
1,
|
||||
MetaMgr::Instance()->GetText("battle_server_reconnect_failreason_only_chiji",
|
||||
"只有吃鸡模式支持重连"
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
Player* hum = room->GetPlayerByAccountId(msg.account_id());
|
||||
if (!hum) {
|
||||
send_reconnect_failed(hdr.socket_handle, 1, "accountid未在房间列表");
|
||||
send_reconnect_failed
|
||||
(hdr.socket_handle,
|
||||
1,
|
||||
MetaMgr::Instance()->GetText("battle_server_reconnect_failreason_notfound_accountid",
|
||||
"accountid未在房间列表"
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
hum->_CMReconnect(hdr, msg);
|
||||
|
@ -271,6 +271,12 @@ message AI
|
||||
optional int32 ai_mode = 12;
|
||||
}
|
||||
|
||||
message Text
|
||||
{
|
||||
optional string textid = 1;
|
||||
optional string text = 2;
|
||||
}
|
||||
|
||||
//end
|
||||
|
||||
message DoorObjJson
|
||||
|
Loading…
x
Reference in New Issue
Block a user