This commit is contained in:
aozhiwei 2023-02-16 13:41:31 +08:00
parent 6fe7e42743
commit 2afcf33ac6
2 changed files with 27 additions and 10 deletions

View File

@ -315,10 +315,12 @@ void Skill::Proc30101HL()
void Skill::Proc30201HX()
{
#if 1
a8::XTimerWp recover_timer = owner->room->xtimer.SetIntervalWpEx
auto context = std::make_shared<std::tuple<int, std::vector<int>>>();
std::get<0>(*context.get()) = 0;
a8::XTimerWp timer = owner->room->xtimer.SetIntervalWpEx
(
GetCd() / FRAME_RATE_MS,
[this] (int event, const a8::Args* args)
meta->_number_meta->number() * SERVER_FRAME_RATE,
[this, context] (int event, const a8::Args* args)
{
if (a8::TIMER_EXEC_EVENT == event) {
if (!owner->dead) {
@ -328,16 +330,31 @@ void Skill::Proc30201HX()
},
&xtimer_attacher);
auto cb =
[this, timer, context] (const a8::Args& args) mutable
{
if (timer.expired()) {
return;
}
owner->room->xtimer.ResetTimer(timer);
if (std::get<0>(*context.get()) == 1) {
for (int buff_uniid : std::get<1>(*context.get())) {
}
}
};
owner->GetTrigger()->AddListener
(
kDieEvent,
cb
);
owner->GetTrigger()->AddListener
(
kReceiveDmgEvent,
[this, recover_timer] (const a8::Args& args) mutable
{
if (!recover_timer.expired()) {
owner->room->xtimer.ResetTimer(recover_timer);
}
}
cb
);
#else
a8::XTimerWp add_speed_timer;
owner->GetTrigger()->AddListener

View File

@ -69,7 +69,7 @@ struct Position
glm::vec3 ToGlmVec3() const { return loc_; };
const Position& AddGlmVec3(const glm::vec3& v) { loc_ += v; };
const Position& AddGlmVec3(const glm::vec3& v) { loc_ += v; return *this; };
private:
glm::vec3 loc_ = glm::vec3(0.0, 0.0, 0.0);