diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index ba1c643..33394d1 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -1107,6 +1107,12 @@ bool Creature::IsProperTarget(Creature* target, bool no_teammate) if (target->HasBuffEffect(kBET_Hide)) { return false; } + if (target->HasBuffEffect(kBET_Driver)) { + return false; + } + if (target->HasBuffEffect(kBET_Passenger)) { + return false; + } return true; } diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 98c07fa..73857e4 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -145,6 +145,8 @@ void Human::FillMFObjectLess(Room* room, Human* hum, cs::MFPlayerFull* full_data p->set_backpack(backpack); p->set_helmet(helmet); p->set_chest(chest); + p->set_shoot_offset_x(shoot_offset.x); + p->set_shoot_offset_y(shoot_offset.y); GetCurrWeapon()->ToPB(p->mutable_weapon()); } @@ -173,6 +175,8 @@ void Human::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data p->set_chest(chest); GetCurrWeapon()->ToPB(p->mutable_weapon()); p->set_energy_shield(energy_shield); + p->set_shoot_offset_x(shoot_offset.x); + p->set_shoot_offset_y(shoot_offset.y); #if 1 { p->set_max_energy_shield(max_energy_shield); diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 2eda01e..535ff99 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -244,6 +244,9 @@ message MFPlayerFull optional int32 charid = 44; //人物id optional float speed = 45; //速度 + optional float shoot_offset_x = 50 [default = 0]; //射击偏移量-x + optional float shoot_offset_y = 51 [default = 0]; //射击偏移量-y + optional string user_data = 60 [default = ""]; //用户自定义数据 } diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index 74d6d07..368f6e8 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -120,6 +120,7 @@ message Equip optional string power_time = 51; optional string power_gun = 52; optional string power_buff = 53; + optional int32 through_teammate = 54; optional string inventory_slot = 31; //库存槽位 optional int32 _inventory_slot = 32; //库存槽位