1
This commit is contained in:
parent
77c61027da
commit
fea2976b0f
@ -146,6 +146,8 @@ void CondAddBuff::ProcDisengageBattle()
|
||||
|
||||
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
|
||||
@ -155,11 +157,29 @@ void CondAddBuff::ProcDisengageBattle()
|
||||
{
|
||||
if (a8::TIMER_EXEC_EVENT == event) {
|
||||
if (!owner->dead) {
|
||||
#if 0
|
||||
if (std::get<0>(*context.get()) == 0) {
|
||||
std::get<0>(*context.get()) = 1;
|
||||
for (int buff_id : meta->_buff_param4_int_list) {
|
||||
int buff_uniid = owner->TryAddBuff
|
||||
(
|
||||
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()) {
|
||||
return;
|
||||
}
|
||||
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);
|
||||
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));
|
||||
}
|
||||
}
|
||||
std::get<0>(*context.get()) = 0;
|
||||
std::get<1>(*context.get()).clear();
|
||||
context->hold_buff_list.clear();
|
||||
}
|
||||
#endif
|
||||
owner->room->xtimer.ResetTimer(timer);
|
||||
};
|
||||
|
||||
owner->GetTrigger()->AddListener
|
||||
(
|
||||
kDieEvent,
|
||||
cb
|
||||
);
|
||||
owner->GetTrigger()->AddListener
|
||||
(
|
||||
kReceiveDmgEvent,
|
||||
|
@ -42,10 +42,16 @@ namespace mt
|
||||
int _int_buff_param6 = 0;
|
||||
std::vector<int> _buff_param1_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_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<int>>> _post_remove_action;
|
||||
std::set<int> _immune_buffeffect;
|
||||
|
Loading…
x
Reference in New Issue
Block a user