1
This commit is contained in:
parent
9460f0b290
commit
441cbc9fc2
@ -518,11 +518,7 @@ void Human::FillMFObjectLess(Room* room, Human* hum, cs::MFPlayerFull* full_data
|
||||
p->set_shoot_offset_x(shoot_offset.x);
|
||||
p->set_shoot_offset_y(shoot_offset.y);
|
||||
GetCurrWeapon()->ToPB(this, p->mutable_weapon());
|
||||
#if 1
|
||||
PBUtils::FillMFAttrAdditionList(GetAbility().get(), this, p);
|
||||
#else
|
||||
GetAbility()->FillMFAttrAdditionList(room, this, p->mutable_attr_addition());
|
||||
#endif
|
||||
PBUtils::Ability_FillMFAttrAdditionList(GetAbility().get(), this, p);
|
||||
if (GetCar()) {
|
||||
p->set_car_uniid(GetCar()->car_uniid);
|
||||
p->set_car_seat(GetSeat());
|
||||
@ -1696,11 +1692,7 @@ void Human::FillMFActivePlayerData(cs::MFActivePlayerData* player_data)
|
||||
FillSkillList(player_data->mutable_skill_list());
|
||||
player_data->set_shoot_offset_x(shoot_offset.x);
|
||||
player_data->set_shoot_offset_y(shoot_offset.y);
|
||||
#if 1
|
||||
PBUtils::FillMFAttrAdditionList(GetAbility().get(), this, player_data);
|
||||
#else
|
||||
GetAbility()->FillMFAttrAdditionList(room, this, player_data->mutable_attr_addition());
|
||||
#endif
|
||||
PBUtils::Ability_FillMFAttrAdditionList(GetAbility().get(), this, player_data);
|
||||
if (GetBuffByEffectId(kBET_HoldShield)) {
|
||||
player_data->set_shield_hp(shield_hp_);
|
||||
player_data->set_shield_max_hp(shield_max_hp_);
|
||||
|
@ -5,32 +5,46 @@
|
||||
#include "pbutils.h"
|
||||
#include "ability.h"
|
||||
|
||||
void Ability_FillMFAttrAdditionList(Ability* p , Human* hum,
|
||||
::google::protobuf::RepeatedPtrField<::cs::MFAttrAddition>* pb_attr_list)
|
||||
void PBUtils::Ability_FillMFAttrAdditionList(Ability* self, Human* hum, cs::MFActivePlayerData* player_data)
|
||||
{
|
||||
_Ability_FillMFAttrAdditionList
|
||||
(self,
|
||||
hum,
|
||||
[player_data] ()
|
||||
{
|
||||
return player_data->add_attr_addition();
|
||||
});
|
||||
}
|
||||
|
||||
void PBUtils::Ability_FillMFAttrAdditionList(Ability* self, Human* hum, cs::MFPlayerFull* full_data)
|
||||
{
|
||||
_Ability_FillMFAttrAdditionList
|
||||
(self,
|
||||
hum,
|
||||
[full_data] ()
|
||||
{
|
||||
return full_data->add_attr_addition();
|
||||
});
|
||||
}
|
||||
|
||||
void PBUtils::_Ability_FillMFAttrAdditionList(Ability* self,
|
||||
Human* hum,
|
||||
std::function<cs::MFAttrAddition* ()> add_func
|
||||
)
|
||||
{
|
||||
for (int attr_id = 0; attr_id < kHAT_End; ++attr_id) {
|
||||
if (!(attr_id == 12 || attr_id == 33)) {
|
||||
continue;
|
||||
}
|
||||
if (p->buff_attr_flag_[attr_id]) {
|
||||
auto pb_attr = pb_attr_list->Add();
|
||||
if (self->buff_attr_flag_[attr_id]) {
|
||||
auto pb_attr = add_func();
|
||||
pb_attr->set_attr_id(attr_id);
|
||||
pb_attr->set_abs_val(p->buff_attr_abs_[attr_id]);
|
||||
pb_attr->set_abs_val(self->buff_attr_abs_[attr_id]);
|
||||
#if 1
|
||||
pb_attr->set_rate_val(p->buff_attr_rate_[attr_id]);
|
||||
pb_attr->set_rate_val(self->buff_attr_rate_[attr_id]);
|
||||
#else
|
||||
pb_attr->set_rate_val(p->buff_attr_rate_[attr_id] * 100);
|
||||
pb_attr->set_rate_val(self->buff_attr_rate_[attr_id] * 100);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PBUtils::FillMFAttrAdditionList(Ability* p, Human* hum, cs::MFActivePlayerData* player_data)
|
||||
{
|
||||
Ability_FillMFAttrAdditionList(p, hum, player_data->mutable_attr_addition());
|
||||
}
|
||||
|
||||
void PBUtils::FillMFAttrAdditionList(Ability* p, Human* hum, cs::MFPlayerFull* full_data)
|
||||
{
|
||||
Ability_FillMFAttrAdditionList(p, hum, full_data->mutable_attr_addition());
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ namespace cs
|
||||
{
|
||||
class MFActivePlayerData;
|
||||
class MFPlayerFull;
|
||||
class MFAttrAddition;
|
||||
}
|
||||
|
||||
class Ability;
|
||||
@ -11,8 +12,15 @@ class Human;
|
||||
class PBUtils
|
||||
{
|
||||
public:
|
||||
static void FillMFAttrAdditionList(Ability* p, Human* hum, cs::MFActivePlayerData* player_data);
|
||||
static void FillMFAttrAdditionList(Ability* p, Human* hum, cs::MFPlayerFull* full_data);
|
||||
|
||||
static void Ability_FillMFAttrAdditionList(Ability* self, Human* hum, cs::MFActivePlayerData* player_data);
|
||||
static void Ability_FillMFAttrAdditionList(Ability* self, Human* hum, cs::MFPlayerFull* full_data);
|
||||
|
||||
private:
|
||||
static void _Ability_FillMFAttrAdditionList
|
||||
(Ability* self,
|
||||
Human* hum,
|
||||
std::function<cs::MFAttrAddition* ()> add_func
|
||||
);
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user