This commit is contained in:
aozhiwei 2022-09-21 09:29:14 +08:00
parent c457815907
commit b07f67b0f2
3 changed files with 33 additions and 13 deletions

View File

@ -10,6 +10,7 @@
#include "types.h" #include "types.h"
#include "bullet.h" #include "bullet.h"
#include "app.h" #include "app.h"
#include "room.h"
#include "attrhelper.h" #include "attrhelper.h"
@ -55,18 +56,18 @@ public:
return dodge_damage_ruduce_; return dodge_damage_ruduce_;
} }
void Init() void Init(Creature* c)
{ {
if (hero_dto) { if (hero_dto) {
DtoInit(); DtoInit(c);
} else { } else {
DefaultInit(); DefaultInit(c);
} }
} }
private: private:
void DefaultInit() void DefaultInit(Creature* c)
{ {
hp_ = hero_meta->i->hp(); hp_ = hero_meta->i->hp();
atk_ = hero_meta->i->damage(); atk_ = hero_meta->i->damage();
@ -75,9 +76,23 @@ private:
crit_atk_ratio_ = hero_meta->i->crit_atk_ratio(); crit_atk_ratio_ = hero_meta->i->crit_atk_ratio();
dodge_ = hero_meta->i->miss(); dodge_ = hero_meta->i->miss();
dodge_damage_ruduce_ = hero_meta->i->miss_damage_ruduce(); dodge_damage_ruduce_ = hero_meta->i->miss_damage_ruduce();
if (c->room->pve_instance) {
MetaData::NpcStandard* standard_meta = MetaMgr::Instance()->GetNpcStandard
(c->room->pve_instance->pb->gemini_lv());
if (standard_meta) {
hp_ = standard_meta->pb->hp() * hero_meta->i->hp_ratio() *
c->room->pve_instance->GetHpMul(c->room->GetHumanNum());
atk_ = standard_meta->pb->damage() * hero_meta->i->damage_ratio();
def_ = standard_meta->pb->defence() * hero_meta->i->defence_ratio();
} else {
#ifdef DEBUG
abort();
#endif
}
}
} }
void DtoInit() void DtoInit(Creature* c)
{ {
std::array<float, kHAT_End> base_attr_abs = {0}; std::array<float, kHAT_End> base_attr_abs = {0};
std::array<float, kHAT_End> base_attr_rate = {0}; std::array<float, kHAT_End> base_attr_rate = {0};
@ -204,18 +219,18 @@ public:
return reload_time_; return reload_time_;
} }
void Init() void Init(Creature* c)
{ {
if (weapon_dto) { if (weapon_dto) {
DtoInit(); DtoInit(c);
} else { } else {
DefaultInit(); DefaultInit(c);
} }
} }
private: private:
void DefaultInit() void DefaultInit(Creature* c)
{ {
atk_ = weapon_meta->i->atk(); atk_ = weapon_meta->i->atk();
crit_atk_ = weapon_meta->i->critical(); crit_atk_ = weapon_meta->i->critical();
@ -225,7 +240,7 @@ private:
reload_time_ = weapon_meta->i->reload_time(); reload_time_ = weapon_meta->i->reload_time();
} }
void DtoInit() void DtoInit(Creature* c)
{ {
std::array<float, kHAT_End> base_attr_abs = {0}; std::array<float, kHAT_End> base_attr_abs = {0};
std::array<float, kHAT_End> base_attr_rate = {0}; std::array<float, kHAT_End> base_attr_rate = {0};
@ -635,12 +650,12 @@ void BattleDataContext::Init(Creature* c)
if (!hero_ability_->hero_uniid_) { if (!hero_ability_->hero_uniid_) {
hero_ability_->hero_uniid_ = App::Instance()->AllocTempHeroUniId(); hero_ability_->hero_uniid_ = App::Instance()->AllocTempHeroUniId();
} }
hero_ability_->Init(); hero_ability_->Init(c);
if (weapon1_ability_) { if (weapon1_ability_) {
weapon1_ability_->Init(); weapon1_ability_->Init(c);
} }
if (weapon2_ability_) { if (weapon2_ability_) {
weapon2_ability_->Init(); weapon2_ability_->Init(c);
} }
} }

View File

@ -575,6 +575,7 @@ message MFBullet
optional int32 gun_id = 10; //id optional int32 gun_id = 10; //id
optional float fly_distance = 11; // optional float fly_distance = 11; //
optional int32 bullet_uniid = 12; //id optional int32 bullet_uniid = 12; //id
optional int32 trace_target_uniid = 13; //0uniid
} }
// //

View File

@ -256,6 +256,10 @@ message Player
optional int32 skill1list = 60; optional int32 skill1list = 60;
optional int32 skill2list = 61; optional int32 skill2list = 61;
optional int32 skill3list = 62; optional int32 skill3list = 62;
optional float hp_ratio = 63;
optional float damage_ratio = 64;
optional float defence_ratio = 65;
} }
message Robot message Robot