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_ability_->hero_uniid_ = hero_dto->Get("hero_uniid", "");
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", ""));
if (meta) {
hero_ability_->hero_meta = meta;
@ -986,3 +987,8 @@ float BattleDataContext::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 GetLevel();
int GetHeroLevel();
private:
void Clear();
@ -101,6 +102,7 @@ private:
int skin_id_ = 0;
int level_ = 0;
int hero_lv_ = 0;
int skill1_lv = 1;
int skill2_lv = 1;

View File

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

View File

@ -25,7 +25,7 @@ GunGrasp::~GunGrasp()
void GunGrasp::Init()
{
if (owner_->IsHuman()) {
if (owner_->IsPlayer()) {
TakeOnWeapon(owner_->GetCurrWeapon());
owner_->GetTrigger()->AddListener
(
@ -51,7 +51,7 @@ void GunGrasp::Clear()
void GunGrasp::TakeOnWeapon(Weapon* weapon)
{
std::set<int>* buffs = mt::Grasp::GetBuffs(owner_->AsHuman()->meta->id(),
owner_->GetBattleContext()->GetLevel(),
owner_->GetBattleContext()->GetHeroLevel(),
weapon->meta->id());
Clear();
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_y(shoot_offset.y);
p->set_level(GetBattleContext()->GetLevel());
p->set_hero_level(GetBattleContext()->GetHeroLevel());
p->set_hero_level(GetBattleContext()->GetHeroLevel());
GetCurrWeapon()->ToPB(this, p->mutable_weapon());
PBUtils::Ability_FillMFAttrAdditionList(GetAbility().get(), this, p);
if (GetCar()) {
@ -584,6 +586,9 @@ void Human::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data
p->set_health(GetHP());
p->set_level(GetBattleContext()->GetLevel());
#if 0
p->set_Hero_level(GetBattleContext()->GetHeroLevel());
#endif
p->set_max_health(GetMaxHP());
p->set_dead(dead);
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_hero_id(meta->id());
team_data->set_level(hum->GetBattleContext()->GetLevel());
team_data->set_hero_level(hum->GetBattleContext()->GetHeroLevel());
team_data->set_score(stats->pve_rank_score);
if (is_game_over || !real_dead || room->GetFrameNo() - GetRealDeadFrameNo(room) < 4) {
TypeConvert::ToPb(GetPos(), team_data->mutable_pos());

View File

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