From b7f3b594bf6c8e49cc0968a9004ab65fc9434c9b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 12 Jan 2024 17:53:03 +0800 Subject: [PATCH] 1 --- server/gameserver/constant.h | 3 +++ server/gameserver/creature.cc | 15 +++++++++++++++ server/gameserver/creature.h | 7 ++++++- server/gameserver/hero_agent.cc | 2 +- server/gameserver/master_agent.cc | 2 +- server/gameserver/target_agent.cc | 2 +- server/gameserver/teammate_agent.cc | 2 +- server/tools/protobuild/cs_proto.proto | 12 ++++++++++++ 8 files changed, 40 insertions(+), 5 deletions(-) diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 43ca37fa..267e28ce 100644 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -273,6 +273,9 @@ enum PropertyType_e kPropSpecShot = 53, kPropFlyTo = 54, + + kPropLevelExp = 55, + kPropLevelUp = 56, }; enum SkinSlot_e diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 08fc7460..88780167 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3933,3 +3933,18 @@ void Creature::SetHeroGrowMeta(mt::BattleHeroGrow* grow_meta) { hero_grow_meta_ = grow_meta; } + +int Creature::GetHeroLevel() +{ + return hero_level_; +} + +int Creature::GetHeroExp() +{ + return hero_exp_; +} + +int Creature::GetHeroMaxExp() +{ + return -1; +} diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index fe930a86..62a12655 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -99,7 +99,6 @@ class Creature : public MoveableEntity int max_energy_shield = 0; int armor_shield = 0; int max_armor_shield = 0; - int hero_level = 1; int revive_count = 0; CreatureWeakPtr master; @@ -358,6 +357,9 @@ class Creature : public MoveableEntity void SetDisableMoveTimes(int times) { disable_move_times_ = times; }; void DoRecoilForce(int distance); + int GetHeroLevel(); + int GetHeroExp(); + int GetHeroMaxExp(); void WinSkillExp(int win_exp); void RecalcDtoAttr(); void AutoNavigation(const glm::vec3& target_pos, float speed, @@ -479,6 +481,9 @@ private: std::map buff_tags_; const mt::BattleHeroGrow* hero_grow_meta_ = nullptr; + int hero_level_ = 1; + int hero_exp_ = 0; + int disable_move_dir_times_ = 0; int disable_attack_dir_times_ = 0; int disable_move_times_ = 0; diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 6e93c1af..d958be10 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -140,7 +140,7 @@ int HeroAgent::GetHeroId() int HeroAgent::GetLevel() { - return owner_->hero_level; + return owner_->GetHeroLevel(); } bool HeroAgent::CanShot() diff --git a/server/gameserver/master_agent.cc b/server/gameserver/master_agent.cc index 048cc7f6..4e7ab82c 100644 --- a/server/gameserver/master_agent.cc +++ b/server/gameserver/master_agent.cc @@ -68,7 +68,7 @@ int MasterAgent::GetLevel() if (!owner_->master.Get()) { abort(); } - return owner_->master.Get()->hero_level; + return owner_->master.Get()->GetHeroLevel(); } void MasterAgent::SetOwner(Creature* owner) diff --git a/server/gameserver/target_agent.cc b/server/gameserver/target_agent.cc index 055c919f..d46bb53c 100644 --- a/server/gameserver/target_agent.cc +++ b/server/gameserver/target_agent.cc @@ -70,7 +70,7 @@ int TargetAgent::GetLevel() if (!target_.Get()) { abort(); } - return target_.Get()->hero_level; + return target_.Get()->GetHeroLevel(); } void TargetAgent::Abandon(int min_time, int max_time) diff --git a/server/gameserver/teammate_agent.cc b/server/gameserver/teammate_agent.cc index 97d49757..c81c25d0 100644 --- a/server/gameserver/teammate_agent.cc +++ b/server/gameserver/teammate_agent.cc @@ -70,7 +70,7 @@ int TeammateAgent::GetLevel() if (!target_.Get()) { abort(); } - return target_.Get()->hero_level; + return target_.Get()->GetHeroLevel(); } void TeammateAgent::Abandon(int min_time, int max_time) diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index b225607e..aa160850 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -241,6 +241,14 @@ message MFVec3 value2: 目标y value3: 目标z property_type: 54 传送到目标点(不用显示拖拽线) + property_type: 55 同步对象等级经验 + property_subtype: 对象uniid + value: 等级 + value2: 经验 + property_type: 56 同步对象升级 + property_subtype: 对象uniid + value: 老等级 + value2: 新等级 */ message MFPropertyChg { @@ -394,6 +402,8 @@ message MFPlayerFull optional int32 gemstone = 68; //宝石 optional int32 level = 69; //等级 optional int32 hero_level = 72; //hero等级 + optional int32 hero_exp = 80; //hero经验 + optional int32 hero_max_exp = 81; //hero经验(max -1:已达上限无法获得新经验) optional int32 team_member_num = 70 [default = 0]; //队伍成员数 @@ -508,6 +518,8 @@ message MFHeroFull repeated MFEffect effect_list = 14; //特效列表 optional int32 team_id = 15; //队伍id optional int32 hero_level = 16; //hero等级 + optional int32 hero_exp = 17; //hero经验 + optional int32 hero_max_exp = 19; //hero经验(max -1:已达上限无法获得新经验) repeated MFSkill skill_list = 18; //技能列表 }