1
This commit is contained in:
parent
e1c0fa6612
commit
8095e7c3d7
@ -167,21 +167,10 @@ void CallFuncBuff::Activate()
|
|||||||
owner->room->frame_event.AddHpChg(owner->GetWeakPtrRef());
|
owner->room->frame_event.AddHpChg(owner->GetWeakPtrRef());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BuffCallFunc_e::kSummonCarSpecPointAnyOper:
|
case BuffCallFunc_e::kSummonCarSpecPoint:
|
||||||
{
|
{
|
||||||
SummonCarSpecPoint(0);
|
SummonCarSpecPoint();
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case BuffCallFunc_e::kSummonCarSpecPointTeamOper:
|
|
||||||
{
|
|
||||||
SummonCarSpecPoint(1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case BuffCallFunc_e::kSummonCarSpecPointOnlyOper:
|
|
||||||
{
|
|
||||||
SummonCarSpecPoint(2);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -886,20 +875,25 @@ void CallFuncBuff::ProcAddMaxHp()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CallFuncBuff::SummonCarSpecPoint(int oper_type)
|
void CallFuncBuff::SummonCarSpecPoint()
|
||||||
{
|
{
|
||||||
float delay_time = meta->GetBuffParam2(this);
|
float delay_time = meta->GetBuffParam2(this);
|
||||||
int oper = meta->GetBuffParam3(this);
|
int oper_type = meta->GetBuffParam3(this);
|
||||||
float x = meta->GetBuffParam4(this);
|
int oper = meta->GetBuffParam4(this);
|
||||||
float y = meta->GetBuffParam5(this);
|
int car_id = meta->GetBuffParam5(this);
|
||||||
float z = meta->GetBuffParam6(this);
|
float x = meta->GetBuffParam6(this);
|
||||||
|
float y = meta->GetBuffParam7(this);
|
||||||
|
float z = meta->GetBuffParam8(this);
|
||||||
owner->room->xtimer.SetTimeoutWpEx
|
owner->room->xtimer.SetTimeoutWpEx
|
||||||
(
|
(
|
||||||
delay_time / FRAME_RATE_MS,
|
delay_time / FRAME_RATE_MS,
|
||||||
[room = owner->room, delay_time, oper_type, oper, x, y, z]
|
[room = owner->room, delay_time, oper_type, car_id, oper, x, y, z]
|
||||||
(int event, const a8::Args* args) mutable
|
(int event, const a8::Args* args) mutable
|
||||||
{
|
{
|
||||||
if (a8::TIMER_DELETE_EVENT == event) {
|
if (a8::TIMER_DELETE_EVENT == event) {
|
||||||
|
if (!room->IsGameOver()) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
&owner->room->xtimer_attacher_);
|
&owner->room->xtimer_attacher_);
|
||||||
|
@ -27,9 +27,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int,
|
|||||||
kDecSkillCd = 27,
|
kDecSkillCd = 27,
|
||||||
kRefreshHp = 28,
|
kRefreshHp = 28,
|
||||||
kAddMaxHp = 29,
|
kAddMaxHp = 29,
|
||||||
kSummonCarSpecPointAnyOper = 30,
|
kSummonCarSpecPoint = 30,
|
||||||
kSummonCarSpecPointTeamOper = 31,
|
|
||||||
kSummonCarSpecPointOnlyOper = 32,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -59,7 +57,7 @@ class CallFuncBuff : public Buff
|
|||||||
void SummonObstacleSpecDistance();
|
void SummonObstacleSpecDistance();
|
||||||
void ClearSummonObstacle();
|
void ClearSummonObstacle();
|
||||||
void DecSkillCd();
|
void DecSkillCd();
|
||||||
void SummonCarSpecPoint(int oper_type);
|
void SummonCarSpecPoint();
|
||||||
|
|
||||||
float hold_param2_ = 0.0;
|
float hold_param2_ = 0.0;
|
||||||
Weapon* hold_weapon_ = nullptr;
|
Weapon* hold_weapon_ = nullptr;
|
||||||
|
@ -20,12 +20,16 @@ namespace mt
|
|||||||
_buff_param4 = a8::XValue(buff_param4()).GetDouble();
|
_buff_param4 = a8::XValue(buff_param4()).GetDouble();
|
||||||
_buff_param5 = a8::XValue(buff_param5()).GetDouble();
|
_buff_param5 = a8::XValue(buff_param5()).GetDouble();
|
||||||
_buff_param6 = a8::XValue(buff_param6()).GetDouble();
|
_buff_param6 = a8::XValue(buff_param6()).GetDouble();
|
||||||
|
_buff_param7 = a8::XValue(buff_param7()).GetDouble();
|
||||||
|
_buff_param8 = a8::XValue(buff_param8()).GetDouble();
|
||||||
_int_buff_param1 = a8::XValue(buff_param1());
|
_int_buff_param1 = a8::XValue(buff_param1());
|
||||||
_int_buff_param2 = a8::XValue(buff_param2());
|
_int_buff_param2 = a8::XValue(buff_param2());
|
||||||
_int_buff_param3 = a8::XValue(buff_param3());
|
_int_buff_param3 = a8::XValue(buff_param3());
|
||||||
_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());
|
||||||
|
_int_buff_param7 = a8::XValue(buff_param7());
|
||||||
|
_int_buff_param8 = a8::XValue(buff_param8());
|
||||||
_res_scale = a8::XValue(res_scale()).GetDouble();
|
_res_scale = a8::XValue(res_scale()).GetDouble();
|
||||||
{
|
{
|
||||||
std::vector<std::string> strings;
|
std::vector<std::string> strings;
|
||||||
@ -101,6 +105,22 @@ namespace mt
|
|||||||
_buff_param6_int_set.insert(a8::XValue(str).GetInt());
|
_buff_param6_int_set.insert(a8::XValue(str).GetInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
std::vector<std::string> strings;
|
||||||
|
a8::Split(buff_param7(), strings, '|');
|
||||||
|
for (auto& str : strings) {
|
||||||
|
_buff_param7_int_list.push_back(a8::XValue(str).GetInt());
|
||||||
|
_buff_param7_int_set.insert(a8::XValue(str).GetInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
std::vector<std::string> strings;
|
||||||
|
a8::Split(buff_param8(), strings, '|');
|
||||||
|
for (auto& str : strings) {
|
||||||
|
_buff_param8_int_list.push_back(a8::XValue(str).GetInt());
|
||||||
|
_buff_param8_int_set.insert(a8::XValue(str).GetInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
{
|
{
|
||||||
std::vector<std::string> strings;
|
std::vector<std::string> strings;
|
||||||
a8::Split(only_spec_race(), strings, '|');
|
a8::Split(only_spec_race(), strings, '|');
|
||||||
@ -156,6 +176,12 @@ 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(buff_param7())) {
|
||||||
|
_buff_param7_expr = LispEnv::Instance()->CompileSkillNumberExpr(buff_param7());
|
||||||
|
}
|
||||||
|
if (a8::lisp::Expr::MaybeExpr(buff_param8())) {
|
||||||
|
_buff_param8_expr = LispEnv::Instance()->CompileSkillNumberExpr(buff_param8());
|
||||||
|
}
|
||||||
if (a8::lisp::Expr::MaybeExpr(res_scale())) {
|
if (a8::lisp::Expr::MaybeExpr(res_scale())) {
|
||||||
_res_scale_expr = LispEnv::Instance()->CompileSkillNumberExpr(res_scale());
|
_res_scale_expr = LispEnv::Instance()->CompileSkillNumberExpr(res_scale());
|
||||||
}
|
}
|
||||||
@ -491,6 +517,30 @@ namespace mt
|
|||||||
return _buff_param6;
|
return _buff_param6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Buff::GetBuffParam7(::Buff* buff) const
|
||||||
|
{
|
||||||
|
if (_buff_param7_expr) {
|
||||||
|
return LispEnv::Instance()->EvalSkillNumberExpr
|
||||||
|
(
|
||||||
|
_buff_param7_expr,
|
||||||
|
buff
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return _buff_param7;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Buff::GetBuffParam8(::Buff* buff) const
|
||||||
|
{
|
||||||
|
if (_buff_param8_expr) {
|
||||||
|
return LispEnv::Instance()->EvalSkillNumberExpr
|
||||||
|
(
|
||||||
|
_buff_param8_expr,
|
||||||
|
buff
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return _buff_param8;
|
||||||
|
}
|
||||||
|
|
||||||
float Buff::GetResScale(::Buff* buff) const
|
float Buff::GetResScale(::Buff* buff) const
|
||||||
{
|
{
|
||||||
if (_res_scale_expr) {
|
if (_res_scale_expr) {
|
||||||
|
@ -34,24 +34,32 @@ namespace mt
|
|||||||
float _buff_param4 = 0.0f;
|
float _buff_param4 = 0.0f;
|
||||||
float _buff_param5 = 0.0f;
|
float _buff_param5 = 0.0f;
|
||||||
float _buff_param6 = 0.0f;
|
float _buff_param6 = 0.0f;
|
||||||
|
float _buff_param7 = 0.0f;
|
||||||
|
float _buff_param8 = 0.0f;
|
||||||
int _int_buff_param1 = 0;
|
int _int_buff_param1 = 0;
|
||||||
int _int_buff_param2 = 0;
|
int _int_buff_param2 = 0;
|
||||||
int _int_buff_param3 = 0;
|
int _int_buff_param3 = 0;
|
||||||
int _int_buff_param4 = 0;
|
int _int_buff_param4 = 0;
|
||||||
int _int_buff_param5 = 0;
|
int _int_buff_param5 = 0;
|
||||||
int _int_buff_param6 = 0;
|
int _int_buff_param6 = 0;
|
||||||
|
int _int_buff_param7 = 0;
|
||||||
|
int _int_buff_param8 = 0;
|
||||||
std::vector<int> _buff_param1_int_list;
|
std::vector<int> _buff_param1_int_list;
|
||||||
std::vector<int> _buff_param2_int_list;
|
std::vector<int> _buff_param2_int_list;
|
||||||
std::vector<int> _buff_param3_int_list;
|
std::vector<int> _buff_param3_int_list;
|
||||||
std::vector<int> _buff_param4_int_list;
|
std::vector<int> _buff_param4_int_list;
|
||||||
std::vector<int> _buff_param5_int_list;
|
std::vector<int> _buff_param5_int_list;
|
||||||
std::vector<int> _buff_param6_int_list;
|
std::vector<int> _buff_param6_int_list;
|
||||||
|
std::vector<int> _buff_param7_int_list;
|
||||||
|
std::vector<int> _buff_param8_int_list;
|
||||||
std::set<int> _buff_param1_int_set;
|
std::set<int> _buff_param1_int_set;
|
||||||
std::set<int> _buff_param2_int_set;
|
std::set<int> _buff_param2_int_set;
|
||||||
std::set<int> _buff_param3_int_set;
|
std::set<int> _buff_param3_int_set;
|
||||||
std::set<int> _buff_param4_int_set;
|
std::set<int> _buff_param4_int_set;
|
||||||
std::set<int> _buff_param5_int_set;
|
std::set<int> _buff_param5_int_set;
|
||||||
std::set<int> _buff_param6_int_set;
|
std::set<int> _buff_param6_int_set;
|
||||||
|
std::set<int> _buff_param7_int_set;
|
||||||
|
std::set<int> _buff_param8_int_set;
|
||||||
std::vector<std::tuple<int, std::vector<std::tuple<int, int>>>> _batch_add_list;
|
std::vector<std::tuple<int, std::vector<std::tuple<int, int>>>> _batch_add_list;
|
||||||
std::vector<std::tuple<int, std::vector<int>>> _post_remove_action;
|
std::vector<std::tuple<int, std::vector<int>>> _post_remove_action;
|
||||||
std::set<int> _immune_buffeffect;
|
std::set<int> _immune_buffeffect;
|
||||||
@ -72,6 +80,8 @@ 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 GetBuffParam7(::Buff* buff) const;
|
||||||
|
float GetBuffParam8(::Buff* buff) const;
|
||||||
float GetBuffInterval(::Buff* buff) const;
|
float GetBuffInterval(::Buff* buff) const;
|
||||||
float GetResScale(::Buff* buff) const;
|
float GetResScale(::Buff* buff) const;
|
||||||
bool HasBuffInterval() const;
|
bool HasBuffInterval() const;
|
||||||
@ -86,6 +96,8 @@ 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> _buff_param7_expr;
|
||||||
|
std::shared_ptr<a8::lisp::Value> _buff_param8_expr;
|
||||||
std::shared_ptr<a8::lisp::Value> _res_scale_expr;
|
std::shared_ptr<a8::lisp::Value> _res_scale_expr;
|
||||||
std::shared_ptr<a8::lisp::Value> _buff_interval_expr;
|
std::shared_ptr<a8::lisp::Value> _buff_interval_expr;
|
||||||
|
|
||||||
|
@ -21,6 +21,8 @@ namespace mtb
|
|||||||
const std::string buff_param4() const { return buff_param4_; };
|
const std::string buff_param4() const { return buff_param4_; };
|
||||||
const std::string buff_param5() const { return buff_param5_; };
|
const std::string buff_param5() const { return buff_param5_; };
|
||||||
const std::string buff_param6() const { return buff_param6_; };
|
const std::string buff_param6() const { return buff_param6_; };
|
||||||
|
const std::string buff_param7() const { return buff_param7_; };
|
||||||
|
const std::string buff_param8() const { return buff_param8_; };
|
||||||
const std::string duration_time() const { return duration_time_; };
|
const std::string duration_time() const { return duration_time_; };
|
||||||
float buff_valueup() const { return buff_valueup_; };
|
float buff_valueup() const { return buff_valueup_; };
|
||||||
const std::string immune_buffeffect_list() const { return immune_buffeffect_list_; };
|
const std::string immune_buffeffect_list() const { return immune_buffeffect_list_; };
|
||||||
@ -83,6 +85,8 @@ namespace mtb
|
|||||||
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);};
|
bool has_res_scale() const { return __flags__.test(34);};
|
||||||
bool has_tenacity() const { return __flags__.test(35);};
|
bool has_tenacity() const { return __flags__.test(35);};
|
||||||
|
bool has_buff_param7() const { return __flags__.test(36);};
|
||||||
|
bool has_buff_param8() const { return __flags__.test(37);};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@ -97,6 +101,8 @@ namespace mtb
|
|||||||
std::string buff_param4_;
|
std::string buff_param4_;
|
||||||
std::string buff_param5_;
|
std::string buff_param5_;
|
||||||
std::string buff_param6_;
|
std::string buff_param6_;
|
||||||
|
std::string buff_param7_;
|
||||||
|
std::string buff_param8_;
|
||||||
std::string duration_time_;
|
std::string duration_time_;
|
||||||
float buff_valueup_ = 0.0f;
|
float buff_valueup_ = 0.0f;
|
||||||
std::string immune_buffeffect_list_;
|
std::string immune_buffeffect_list_;
|
||||||
@ -124,7 +130,7 @@ namespace mtb
|
|||||||
int tenacity_ = 0;
|
int tenacity_ = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::bitset<36> __flags__;
|
std::bitset<38> __flags__;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -490,6 +490,8 @@ namespace mtb
|
|||||||
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_));
|
meta_class->SetSimpleField(34, "res_scale", a8::reflect::ET_STRING, my_offsetof2(Buff, res_scale_));
|
||||||
meta_class->SetSimpleField(35, "tenacity", a8::reflect::ET_INT32, my_offsetof2(Buff, tenacity_));
|
meta_class->SetSimpleField(35, "tenacity", a8::reflect::ET_INT32, my_offsetof2(Buff, tenacity_));
|
||||||
|
meta_class->SetSimpleField(36, "buff_param6", a8::reflect::ET_STRING, my_offsetof2(Buff, buff_param7_));
|
||||||
|
meta_class->SetSimpleField(37, "buff_param6", a8::reflect::ET_STRING, my_offsetof2(Buff, buff_param8_));
|
||||||
}
|
}
|
||||||
return meta_class;
|
return meta_class;
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,8 @@ message Buff
|
|||||||
required string buff_param4 = 9;
|
required string buff_param4 = 9;
|
||||||
optional string buff_param5 = 19;
|
optional string buff_param5 = 19;
|
||||||
optional string buff_param6 = 37;
|
optional string buff_param6 = 37;
|
||||||
|
optional string buff_param7 = 38;
|
||||||
|
optional string buff_param8 = 39;
|
||||||
required string duration_time = 10;
|
required string duration_time = 10;
|
||||||
optional float buff_valueup = 11;
|
optional float buff_valueup = 11;
|
||||||
required string immune_buffeffect_list = 12;
|
required string immune_buffeffect_list = 12;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user