From 98f645467078e844db6ee2cb6446ca649d606680 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 29 Jul 2020 13:33:52 +0800 Subject: [PATCH] 1 --- server/gameserver/frameevent.cc | 21 +++++++++++++++++---- server/gameserver/human.cc | 1 + server/gameserver/player.cc | 5 +++++ server/gameserver/room.cc | 4 ---- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/server/gameserver/frameevent.cc b/server/gameserver/frameevent.cc index 2944778..09c0da7 100644 --- a/server/gameserver/frameevent.cc +++ b/server/gameserver/frameevent.cc @@ -46,7 +46,11 @@ void FrameEvent::AddShot(Human* sender) auto& p = std::get<1>(tuple); p.set_player_id(sender->GetEntityUniId()); - sender->curr_weapon->ToPB(p.mutable_weapon()); + if (sender->car_weapon.meta) { + sender->car_weapon.ToPB(p.mutable_weapon()); + } else { + sender->curr_weapon->ToPB(p.mutable_weapon()); + } #if 0 p.set_offhand(true); p.set_bullskin(10001); @@ -71,14 +75,23 @@ void FrameEvent::AddBullet(Human* sender, a8::Vec2 born_pos, a8::Vec2 dir, float auto& p = std::get<1>(tuple); p.set_player_id(sender->GetEntityUniId()); - p.set_bullet_id(sender->curr_weapon->meta->i->use_bullet()); + if (sender->car_weapon.meta) { + p.set_bullet_id(sender->car_weapon.meta->i->use_bullet()); + } else { + p.set_bullet_id(sender->curr_weapon->meta->i->use_bullet()); + } TypeConvert::ToPb(born_pos, p.mutable_pos()); TypeConvert::ToPb(dir, p.mutable_dir()); #if 0 p.set_bulletskin(10001); #endif - p.set_gun_id(sender->curr_weapon->meta->i->id()); - p.set_gun_lv(sender->curr_weapon->weapon_lv); + if (sender->car_weapon.meta) { + p.set_gun_id(sender->car_weapon.meta->i->id()); + p.set_gun_lv(sender->car_weapon.weapon_lv); + } else { + p.set_gun_id(sender->curr_weapon->meta->i->id()); + p.set_gun_lv(sender->curr_weapon->weapon_lv); + } p.set_fly_distance(fly_distance); } { diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 2a7384d..759018e 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1297,6 +1297,7 @@ void Human::DoGetDown() SyncAroundPlayers(__FILE__, __LINE__, __func__); room->NotifyUiUpdate(); car_ = HumanCar(); + car_weapon = Weapon(); CancelAction(); } } diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index bb22d60..6bda5d7 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -712,6 +712,11 @@ void Player::HumanInteraction(Human* hum) void Player::ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >& prepare_items) { std::set handled_items; + #if 1 + ::google::protobuf::RepeatedField< ::google::protobuf::int32 >* mutable_prepare_items = + (::google::protobuf::RepeatedField< ::google::protobuf::int32 >*)&prepare_items; + mutable_prepare_items->Add(12805); + #endif for (int equip_id : prepare_items) { if (handled_items.find(equip_id) != handled_items.end()) { continue; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index d312716..5b72482 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3199,11 +3199,7 @@ 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;