1
This commit is contained in:
parent
c457815907
commit
b07f67b0f2
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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; //不为空和0的时候表示要追踪的目标对象uniid
|
||||||
}
|
}
|
||||||
|
|
||||||
//射击
|
//射击
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user