This commit is contained in:
aozhiwei 2023-03-29 17:03:36 +08:00
parent aa8283d53e
commit a858b1a0da
6 changed files with 19 additions and 2 deletions

View File

@ -426,6 +426,7 @@ void BattleDataContext::ParseResult(a8::XObject& obj)
hero_dto = obj.At("hero_dto"); hero_dto = obj.At("hero_dto");
hero_ability_->hero_uniid_ = hero_dto->Get("hero_uniid", ""); hero_ability_->hero_uniid_ = hero_dto->Get("hero_uniid", "");
hero_ability_->hero_dto = hero_dto; hero_ability_->hero_dto = hero_dto;
hero_lv_ = hero_dto->HasKey("hero_lv") ? hero_dto->Get("hero_lv").GetInt() : 1;
const mt::Hero* meta = mt::Hero::GetById(hero_dto->Get("hero_id", "")); const mt::Hero* meta = mt::Hero::GetById(hero_dto->Get("hero_id", ""));
if (meta) { if (meta) {
hero_ability_->hero_meta = meta; hero_ability_->hero_meta = meta;
@ -986,3 +987,8 @@ float BattleDataContext::GetRecoverHpAdd()
{ {
return hero_ability_->GetRecoverHpAdd(); return hero_ability_->GetRecoverHpAdd();
} }
int BattleDataContext::GetHeroLevel()
{
return std::max(hero_lv_, 1);
}

View File

@ -77,6 +77,7 @@ struct BattleDataContext
int GetSkinId(); int GetSkinId();
int GetLevel(); int GetLevel();
int GetHeroLevel();
private: private:
void Clear(); void Clear();
@ -101,6 +102,7 @@ private:
int skin_id_ = 0; int skin_id_ = 0;
int level_ = 0; int level_ = 0;
int hero_lv_ = 0;
int skill1_lv = 1; int skill1_lv = 1;
int skill2_lv = 1; int skill2_lv = 1;

View File

@ -93,6 +93,7 @@ class Creature : public MoveableEntity
int energy_shield = 0; int energy_shield = 0;
int max_energy_shield = 0; int max_energy_shield = 0;
int level = 1; int level = 1;
int hero_level = 1;
Weapon second_weapon; Weapon second_weapon;
glm::vec3 skill_pos; glm::vec3 skill_pos;

View File

@ -25,7 +25,7 @@ GunGrasp::~GunGrasp()
void GunGrasp::Init() void GunGrasp::Init()
{ {
if (owner_->IsHuman()) { if (owner_->IsPlayer()) {
TakeOnWeapon(owner_->GetCurrWeapon()); TakeOnWeapon(owner_->GetCurrWeapon());
owner_->GetTrigger()->AddListener owner_->GetTrigger()->AddListener
( (
@ -51,7 +51,7 @@ void GunGrasp::Clear()
void GunGrasp::TakeOnWeapon(Weapon* weapon) void GunGrasp::TakeOnWeapon(Weapon* weapon)
{ {
std::set<int>* buffs = mt::Grasp::GetBuffs(owner_->AsHuman()->meta->id(), std::set<int>* buffs = mt::Grasp::GetBuffs(owner_->AsHuman()->meta->id(),
owner_->GetBattleContext()->GetLevel(), owner_->GetBattleContext()->GetHeroLevel(),
weapon->meta->id()); weapon->meta->id());
Clear(); Clear();
if (buffs) { if (buffs) {

View File

@ -563,6 +563,8 @@ void Human::FillMFObjectLess(Room* room, Human* hum, cs::MFPlayerFull* full_data
p->set_shoot_offset_x(shoot_offset.x); p->set_shoot_offset_x(shoot_offset.x);
p->set_shoot_offset_y(shoot_offset.y); p->set_shoot_offset_y(shoot_offset.y);
p->set_level(GetBattleContext()->GetLevel()); p->set_level(GetBattleContext()->GetLevel());
p->set_hero_level(GetBattleContext()->GetHeroLevel());
p->set_hero_level(GetBattleContext()->GetHeroLevel());
GetCurrWeapon()->ToPB(this, p->mutable_weapon()); GetCurrWeapon()->ToPB(this, p->mutable_weapon());
PBUtils::Ability_FillMFAttrAdditionList(GetAbility().get(), this, p); PBUtils::Ability_FillMFAttrAdditionList(GetAbility().get(), this, p);
if (GetCar()) { if (GetCar()) {
@ -584,6 +586,9 @@ void Human::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data
p->set_health(GetHP()); p->set_health(GetHP());
p->set_level(GetBattleContext()->GetLevel()); p->set_level(GetBattleContext()->GetLevel());
#if 0
p->set_Hero_level(GetBattleContext()->GetHeroLevel());
#endif
p->set_max_health(GetMaxHP()); p->set_max_health(GetMaxHP());
p->set_dead(dead); p->set_dead(dead);
p->set_downed(downed); p->set_downed(downed);
@ -799,6 +804,7 @@ void Human::FillMFTeamData(Human* hum, cs::MFTeamData* team_data, bool is_game_o
team_data->set_player_id(GetUniId()); team_data->set_player_id(GetUniId());
team_data->set_hero_id(meta->id()); team_data->set_hero_id(meta->id());
team_data->set_level(hum->GetBattleContext()->GetLevel()); team_data->set_level(hum->GetBattleContext()->GetLevel());
team_data->set_hero_level(hum->GetBattleContext()->GetHeroLevel());
team_data->set_score(stats->pve_rank_score); team_data->set_score(stats->pve_rank_score);
if (is_game_over || !real_dead || room->GetFrameNo() - GetRealDeadFrameNo(room) < 4) { if (is_game_over || !real_dead || room->GetFrameNo() - GetRealDeadFrameNo(room) < 4) {
TypeConvert::ToPb(GetPos(), team_data->mutable_pos()); TypeConvert::ToPb(GetPos(), team_data->mutable_pos());

View File

@ -331,6 +331,7 @@ message MFPlayerFull
optional int32 gemstone = 68; // optional int32 gemstone = 68; //
optional int32 level = 69; // optional int32 level = 69; //
optional int32 hero_level = 72; //hero等级
optional int32 team_member_num = 70 [default = 0]; // optional int32 team_member_num = 70 [default = 0]; //
} }
@ -632,6 +633,7 @@ message MFTeamData
optional int32 score = 63 [default = 0]; //pve模式积分 optional int32 score = 63 [default = 0]; //pve模式积分
optional int32 hero_id = 64 [default = 0]; //id() optional int32 hero_id = 64 [default = 0]; //id()
optional int32 level = 65 [default = 0]; // optional int32 level = 65 [default = 0]; //
optional int32 hero_level = 72; //hero等级
// //
optional string account_id = 10; //id optional string account_id = 10; //id