This commit is contained in:
aozhiwei 2023-03-15 17:10:37 +08:00
parent 54f0efdc8a
commit 6f79dee0d4
5 changed files with 21 additions and 5 deletions

View File

@ -24,6 +24,7 @@ namespace mt
_int_buff_param4 = a8::XValue(buff_param4()); _int_buff_param4 = a8::XValue(buff_param4());
_int_buff_param5 = a8::XValue(buff_param5()); _int_buff_param5 = a8::XValue(buff_param5());
_int_buff_param6 = a8::XValue(buff_param6()); _int_buff_param6 = a8::XValue(buff_param6());
_res_scale = a8::XValue(res_scale()).GetDouble();
{ {
std::vector<std::string> strings; std::vector<std::string> strings;
a8::Split(child_buff(), strings, '|'); a8::Split(child_buff(), strings, '|');
@ -133,6 +134,9 @@ namespace mt
if (a8::lisp::Expr::MaybeExpr(buff_param6())) { if (a8::lisp::Expr::MaybeExpr(buff_param6())) {
_buff_param6_expr = LispEnv::Instance()->CompileSkillNumberExpr(buff_param6()); _buff_param6_expr = LispEnv::Instance()->CompileSkillNumberExpr(buff_param6());
} }
if (a8::lisp::Expr::MaybeExpr(res_scale())) {
_res_scale_expr = LispEnv::Instance()->CompileSkillNumberExpr(res_scale());
}
} }
{ {
std::vector<std::string> strings; std::vector<std::string> strings;
@ -414,14 +418,18 @@ namespace mt
float Buff::GetBuffParam6(::Buff* buff) const float Buff::GetBuffParam6(::Buff* buff) const
{ {
if (_buff_param6_expr) { if (_res_scale_expr) {
return LispEnv::Instance()->EvalSkillNumberExpr return LispEnv::Instance()->EvalSkillNumberExpr
( (
_buff_param6_expr, _res_scale_expr,
buff buff
); );
} }
return _buff_param6; return _res_scale;
}
float Buff::GetResScale(::Buff* buff) const
{
} }
std::string Buff::duration_time() const std::string Buff::duration_time() const

View File

@ -54,6 +54,7 @@ namespace mt
long long _only_spec_race = 0; long long _only_spec_race = 0;
long long _exclude_spec_race = 0; long long _exclude_spec_race = 0;
std::vector<int> _effect_list; std::vector<int> _effect_list;
float _res_scale;
std::vector<int> _child_buff_list; std::vector<int> _child_buff_list;
@ -64,6 +65,7 @@ namespace mt
float GetBuffParam4(::Buff* buff) const; float GetBuffParam4(::Buff* buff) const;
float GetBuffParam5(::Buff* buff) const; float GetBuffParam5(::Buff* buff) const;
float GetBuffParam6(::Buff* buff) const; float GetBuffParam6(::Buff* buff) const;
float GetResScale(::Buff* buff) const;
private: private:
float _duration_time = 0.0f; float _duration_time = 0.0f;
@ -74,6 +76,7 @@ namespace mt
std::shared_ptr<a8::lisp::Value> _buff_param4_expr; std::shared_ptr<a8::lisp::Value> _buff_param4_expr;
std::shared_ptr<a8::lisp::Value> _buff_param5_expr; std::shared_ptr<a8::lisp::Value> _buff_param5_expr;
std::shared_ptr<a8::lisp::Value> _buff_param6_expr; std::shared_ptr<a8::lisp::Value> _buff_param6_expr;
std::shared_ptr<a8::lisp::Value> _res_scale_expr;
std::string duration_time() const; std::string duration_time() const;

View File

@ -44,6 +44,7 @@ namespace mtb
int disable_shot() const { return disable_shot_; }; int disable_shot() const { return disable_shot_; };
int disable_useskill() const { return disable_useskill_; }; int disable_useskill() const { return disable_useskill_; };
const std::string effect_list() const { return effect_list_; }; const std::string effect_list() const { return effect_list_; };
const std::string res_scale() const { return res_scale_; };
bool has_buff_id() const { return __flags__.test(0);}; bool has_buff_id() const { return __flags__.test(0);};
bool has_name() const { return __flags__.test(1);}; bool has_name() const { return __flags__.test(1);};
@ -79,6 +80,7 @@ namespace mtb
bool has_disable_shot() const { return __flags__.test(31);}; bool has_disable_shot() const { return __flags__.test(31);};
bool has_disable_useskill() const { return __flags__.test(32);}; bool has_disable_useskill() const { return __flags__.test(32);};
bool has_effect_list() const { return __flags__.test(33);}; bool has_effect_list() const { return __flags__.test(33);};
bool has_res_scale() const { return __flags__.test(34);};
protected: protected:
@ -116,9 +118,10 @@ namespace mtb
int disable_shot_ = 0; int disable_shot_ = 0;
int disable_useskill_ = 0; int disable_useskill_ = 0;
std::string effect_list_; std::string effect_list_;
std::string res_scale_;
public: public:
std::bitset<34> __flags__; std::bitset<35> __flags__;
}; };
}; };

View File

@ -443,7 +443,7 @@ namespace mtb
{ {
a8::reflect::Class* meta_class = nullptr; a8::reflect::Class* meta_class = nullptr;
if (!meta_class) { if (!meta_class) {
meta_class = new a8::reflect::Class("Buff", 34, 0); meta_class = new a8::reflect::Class("Buff", 35, 0);
meta_class->SetSimpleField(0, "buff_id", a8::reflect::ET_INT32, my_offsetof2(Buff, buff_id_)); meta_class->SetSimpleField(0, "buff_id", a8::reflect::ET_INT32, my_offsetof2(Buff, buff_id_));
meta_class->SetSimpleField(1, "name", a8::reflect::ET_STRING, my_offsetof2(Buff, name_)); meta_class->SetSimpleField(1, "name", a8::reflect::ET_STRING, my_offsetof2(Buff, name_));
meta_class->SetSimpleField(2, "buff_target", a8::reflect::ET_INT32, my_offsetof2(Buff, buff_target_)); meta_class->SetSimpleField(2, "buff_target", a8::reflect::ET_INT32, my_offsetof2(Buff, buff_target_));
@ -478,6 +478,7 @@ namespace mtb
meta_class->SetSimpleField(31, "disable_shot", a8::reflect::ET_INT32, my_offsetof2(Buff, disable_shot_)); meta_class->SetSimpleField(31, "disable_shot", a8::reflect::ET_INT32, my_offsetof2(Buff, disable_shot_));
meta_class->SetSimpleField(32, "disable_useskill", a8::reflect::ET_INT32, my_offsetof2(Buff, disable_useskill_)); meta_class->SetSimpleField(32, "disable_useskill", a8::reflect::ET_INT32, my_offsetof2(Buff, disable_useskill_));
meta_class->SetSimpleField(33, "effect_list", a8::reflect::ET_STRING, my_offsetof2(Buff, effect_list_)); meta_class->SetSimpleField(33, "effect_list", a8::reflect::ET_STRING, my_offsetof2(Buff, effect_list_));
meta_class->SetSimpleField(34, "res_scale", a8::reflect::ET_STRING, my_offsetof2(Buff, res_scale_));
} }
return meta_class; return meta_class;
} }

View File

@ -380,6 +380,7 @@ message Buff
optional int32 disable_shot = 32; optional int32 disable_shot = 32;
optional int32 disable_useskill = 33; optional int32 disable_useskill = 33;
optional string effect_list = 35; optional string effect_list = 35;
optional string res_scale = 39;
} }
message Drop message Drop