1
This commit is contained in:
parent
e1c0fa6612
commit
8095e7c3d7
@ -167,21 +167,10 @@ void CallFuncBuff::Activate()
|
||||
owner->room->frame_event.AddHpChg(owner->GetWeakPtrRef());
|
||||
}
|
||||
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:
|
||||
{
|
||||
}
|
||||
@ -886,20 +875,25 @@ void CallFuncBuff::ProcAddMaxHp()
|
||||
}
|
||||
}
|
||||
|
||||
void CallFuncBuff::SummonCarSpecPoint(int oper_type)
|
||||
void CallFuncBuff::SummonCarSpecPoint()
|
||||
{
|
||||
float delay_time = meta->GetBuffParam2(this);
|
||||
int oper = meta->GetBuffParam3(this);
|
||||
float x = meta->GetBuffParam4(this);
|
||||
float y = meta->GetBuffParam5(this);
|
||||
float z = meta->GetBuffParam6(this);
|
||||
int oper_type = meta->GetBuffParam3(this);
|
||||
int oper = meta->GetBuffParam4(this);
|
||||
int car_id = meta->GetBuffParam5(this);
|
||||
float x = meta->GetBuffParam6(this);
|
||||
float y = meta->GetBuffParam7(this);
|
||||
float z = meta->GetBuffParam8(this);
|
||||
owner->room->xtimer.SetTimeoutWpEx
|
||||
(
|
||||
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
|
||||
{
|
||||
if (a8::TIMER_DELETE_EVENT == event) {
|
||||
if (!room->IsGameOver()) {
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
&owner->room->xtimer_attacher_);
|
||||
|
@ -27,9 +27,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int,
|
||||
kDecSkillCd = 27,
|
||||
kRefreshHp = 28,
|
||||
kAddMaxHp = 29,
|
||||
kSummonCarSpecPointAnyOper = 30,
|
||||
kSummonCarSpecPointTeamOper = 31,
|
||||
kSummonCarSpecPointOnlyOper = 32,
|
||||
kSummonCarSpecPoint = 30,
|
||||
);
|
||||
|
||||
|
||||
@ -59,7 +57,7 @@ class CallFuncBuff : public Buff
|
||||
void SummonObstacleSpecDistance();
|
||||
void ClearSummonObstacle();
|
||||
void DecSkillCd();
|
||||
void SummonCarSpecPoint(int oper_type);
|
||||
void SummonCarSpecPoint();
|
||||
|
||||
float hold_param2_ = 0.0;
|
||||
Weapon* hold_weapon_ = nullptr;
|
||||
|
@ -20,12 +20,16 @@ namespace mt
|
||||
_buff_param4 = a8::XValue(buff_param4()).GetDouble();
|
||||
_buff_param5 = a8::XValue(buff_param5()).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_param2 = a8::XValue(buff_param2());
|
||||
_int_buff_param3 = a8::XValue(buff_param3());
|
||||
_int_buff_param4 = a8::XValue(buff_param4());
|
||||
_int_buff_param5 = a8::XValue(buff_param5());
|
||||
_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();
|
||||
{
|
||||
std::vector<std::string> strings;
|
||||
@ -101,6 +105,22 @@ namespace mt
|
||||
_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;
|
||||
a8::Split(only_spec_race(), strings, '|');
|
||||
@ -156,6 +176,12 @@ namespace mt
|
||||
if (a8::lisp::Expr::MaybeExpr(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())) {
|
||||
_res_scale_expr = LispEnv::Instance()->CompileSkillNumberExpr(res_scale());
|
||||
}
|
||||
@ -491,6 +517,30 @@ namespace mt
|
||||
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
|
||||
{
|
||||
if (_res_scale_expr) {
|
||||
|
@ -34,24 +34,32 @@ namespace mt
|
||||
float _buff_param4 = 0.0f;
|
||||
float _buff_param5 = 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_param2 = 0;
|
||||
int _int_buff_param3 = 0;
|
||||
int _int_buff_param4 = 0;
|
||||
int _int_buff_param5 = 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_param2_int_list;
|
||||
std::vector<int> _buff_param3_int_list;
|
||||
std::vector<int> _buff_param4_int_list;
|
||||
std::vector<int> _buff_param5_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_param2_int_set;
|
||||
std::set<int> _buff_param3_int_set;
|
||||
std::set<int> _buff_param4_int_set;
|
||||
std::set<int> _buff_param5_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<int>>> _post_remove_action;
|
||||
std::set<int> _immune_buffeffect;
|
||||
@ -72,6 +80,8 @@ namespace mt
|
||||
float GetBuffParam4(::Buff* buff) const;
|
||||
float GetBuffParam5(::Buff* buff) const;
|
||||
float GetBuffParam6(::Buff* buff) const;
|
||||
float GetBuffParam7(::Buff* buff) const;
|
||||
float GetBuffParam8(::Buff* buff) const;
|
||||
float GetBuffInterval(::Buff* buff) const;
|
||||
float GetResScale(::Buff* buff) 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_param5_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> _buff_interval_expr;
|
||||
|
||||
|
@ -21,6 +21,8 @@ namespace mtb
|
||||
const std::string buff_param4() const { return buff_param4_; };
|
||||
const std::string buff_param5() const { return buff_param5_; };
|
||||
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_; };
|
||||
float buff_valueup() const { return buff_valueup_; };
|
||||
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_res_scale() const { return __flags__.test(34);};
|
||||
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:
|
||||
|
||||
@ -97,6 +101,8 @@ namespace mtb
|
||||
std::string buff_param4_;
|
||||
std::string buff_param5_;
|
||||
std::string buff_param6_;
|
||||
std::string buff_param7_;
|
||||
std::string buff_param8_;
|
||||
std::string duration_time_;
|
||||
float buff_valueup_ = 0.0f;
|
||||
std::string immune_buffeffect_list_;
|
||||
@ -124,7 +130,7 @@ namespace mtb
|
||||
int tenacity_ = 0;
|
||||
|
||||
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(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(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;
|
||||
}
|
||||
|
@ -368,6 +368,8 @@ message Buff
|
||||
required string buff_param4 = 9;
|
||||
optional string buff_param5 = 19;
|
||||
optional string buff_param6 = 37;
|
||||
optional string buff_param7 = 38;
|
||||
optional string buff_param8 = 39;
|
||||
required string duration_time = 10;
|
||||
optional float buff_valueup = 11;
|
||||
required string immune_buffeffect_list = 12;
|
||||
|
Loading…
x
Reference in New Issue
Block a user