1
This commit is contained in:
parent
77c61027da
commit
fea2976b0f
@ -146,6 +146,8 @@ void CondAddBuff::ProcDisengageBattle()
|
|||||||
|
|
||||||
auto context = A8_MAKE_ANON_STRUCT_SHARED
|
auto context = A8_MAKE_ANON_STRUCT_SHARED
|
||||||
(
|
(
|
||||||
|
std::vector<std::tuple<int, int>> hold_buff_list;
|
||||||
|
long long last_check_frameno = 0;
|
||||||
);
|
);
|
||||||
|
|
||||||
a8::XTimerWp timer = owner->room->xtimer.SetIntervalWpEx
|
a8::XTimerWp timer = owner->room->xtimer.SetIntervalWpEx
|
||||||
@ -155,11 +157,29 @@ void CondAddBuff::ProcDisengageBattle()
|
|||||||
{
|
{
|
||||||
if (a8::TIMER_EXEC_EVENT == event) {
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
if (!owner->dead) {
|
if (!owner->dead) {
|
||||||
#if 0
|
for (int buff_id : meta->_buff_param4_int_list) {
|
||||||
if (std::get<0>(*context.get()) == 0) {
|
int buff_uniid = owner->TryAddBuff
|
||||||
std::get<0>(*context.get()) = 1;
|
(
|
||||||
|
GetCaster().Get(),
|
||||||
|
buff_id,
|
||||||
|
skill_meta
|
||||||
|
);
|
||||||
|
if (!meta->_buff_param5_int_set.empty()) {
|
||||||
|
context->hold_buff_list.push_back
|
||||||
|
(
|
||||||
|
std::make_tuple(buff_uniid, buff_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (owner->room->GetFrameNo() - context->last_check_frameno > SERVER_FRAME_RATE * 10 &&
|
||||||
|
!meta->_buff_param5_int_set.empty() &&
|
||||||
|
context->hold_buff_list.size() > 0) {
|
||||||
|
for (size_t i = context->hold_buff_list.size() - 1; i >= 0; --i) {
|
||||||
|
if (!owner->GetBuffByUniId(std::get<0>(context->hold_buff_list[i]))) {
|
||||||
|
context->hold_buff_list.erase(context->hold_buff_list.begin() + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -171,23 +191,18 @@ void CondAddBuff::ProcDisengageBattle()
|
|||||||
if (timer.expired()) {
|
if (timer.expired()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (!meta->_buff_param5_int_set.empty()) {
|
||||||
|
for (auto& tuple : context->hold_buff_list) {
|
||||||
|
if (meta->_buff_param5_int_set.find(std::get<1>(tuple)) !=
|
||||||
|
meta->_buff_param5_int_set.end()) {
|
||||||
|
owner->RemoveBuffByUniId(std::get<0>(tuple));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context->hold_buff_list.clear();
|
||||||
|
}
|
||||||
owner->room->xtimer.ResetTimer(timer);
|
owner->room->xtimer.ResetTimer(timer);
|
||||||
#if 0
|
|
||||||
if (std::get<0>(*context.get()) == 1) {
|
|
||||||
for (int buff_uniid : std::get<1>(*context.get())) {
|
|
||||||
owner->RemoveBuffByUniId(buff_uniid);
|
|
||||||
}
|
|
||||||
std::get<0>(*context.get()) = 0;
|
|
||||||
std::get<1>(*context.get()).clear();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
owner->GetTrigger()->AddListener
|
|
||||||
(
|
|
||||||
kDieEvent,
|
|
||||||
cb
|
|
||||||
);
|
|
||||||
owner->GetTrigger()->AddListener
|
owner->GetTrigger()->AddListener
|
||||||
(
|
(
|
||||||
kReceiveDmgEvent,
|
kReceiveDmgEvent,
|
||||||
|
@ -42,10 +42,16 @@ namespace mt
|
|||||||
int _int_buff_param6 = 0;
|
int _int_buff_param6 = 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::set<int> _buff_param1_int_set;
|
|
||||||
std::set<int> _buff_param2_int_set;
|
|
||||||
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_param6_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::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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user