From 20e2965286b0d9cbcc09d77eba22e08c5a56b464 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 29 Jul 2020 09:46:16 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 2 ++ server/gameserver/room.cc | 16 +++++++++++++++- server/gameserver/room.h | 1 + server/gameserver/zombie.ai.cc | 4 +++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index f77a9d8..e942b50 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3816,4 +3816,6 @@ void Human::OnMetaChange() if (passive_skill_meta) { AddPassiveSkill(passive_skill_meta); } + room->frame_event.AddRaceChg(this); + room->frame_event.AddLevelChg(this); } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 5afce72..d312716 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -848,6 +848,16 @@ void Room::FillSMUiUpdate(cs::SMUiUpdate& msg) #endif msg.set_zombie_num(zombie_alive_count_); msg.set_human_num(human_alive_count_); + if (BattleStarted() && human_alive_count_ <= 2 && !sent_terminator_airdrop) { + sent_terminator_airdrop = true; + MetaData::AirDrop* airdrop_meta = MetaMgr::Instance()->GetAirDrop + (map_meta_->i->terminator_airdrop()); + if (airdrop_meta) { + AirDrop(airdrop_meta->i->appear_time(), + airdrop_meta->i->drop_id(), + airdrop_meta->i->id()); + } + } } } @@ -2645,7 +2655,7 @@ void Room::AddPlayerPostProc(Player* hum) RandRemoveAndroid(); } if (GetRoomMode() == kZombieMode) { - #if 1 + #if 0 hum->ChangeToRace(kZombieRace, 1); #else hum->ChangeToRace(kHumanRace, 1); @@ -3189,7 +3199,11 @@ void Room::NotifySysPiao(const std::string& msg, int color, int duration) size_t Room::GetRoomMaxPlayerNum() { if (room_mode_ == kZombieMode) { + #if 1 + return 4; + #else return MetaMgr::Instance()->zbmode_player_num; + #endif } else { if (IsMiniRoom()) { return MINI_ROOM_MAX_PLAYER_NUM; diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 4997286..4f6b461 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -259,6 +259,7 @@ private: int creator_register_time_ = 0; bool force_entry_newbie_room_ = false; xtimer_list* battle_report_timer_ = nullptr; + bool sent_terminator_airdrop = false; int current_teamid_ = 0; int current_uniid_ = FIXED_OBJECT_MAXID; diff --git a/server/gameserver/zombie.ai.cc b/server/gameserver/zombie.ai.cc index adb5532..17ec0f2 100644 --- a/server/gameserver/zombie.ai.cc +++ b/server/gameserver/zombie.ai.cc @@ -416,7 +416,9 @@ float ZombieAI::GetAttackRange() float attack_range = 0; Human* myself = (Human*)owner; if (myself->curr_weapon && myself->curr_weapon->meta) { - attack_range = myself->curr_weapon->meta->i->range(); + attack_range = myself->curr_weapon->meta->i->range() + 10; + } else { + abort(); } attack_range = std::min(node_->ai_meta->i->attack_range(), (int)attack_range); return attack_range;