1
This commit is contained in:
parent
42357b0061
commit
cd483b647f
@ -1140,12 +1140,12 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
|
||||
hum->dead_timer = nullptr;
|
||||
});
|
||||
} else {
|
||||
GetTrigger()->Die();
|
||||
dead = true;
|
||||
real_dead = true;
|
||||
downed = false;
|
||||
SetHP(0.0f);
|
||||
dead_frameno = room->GetFrameNo();
|
||||
GetTrigger()->Die();
|
||||
OnDie();
|
||||
KillMgr::Instance()->OnHumanDead(this, &info);
|
||||
room->frame_event.AddDead(GetWeakPtrRef(), 0);
|
||||
|
@ -750,12 +750,37 @@ void Skill::ProcJYFH()
|
||||
|
||||
void Skill::ProcFH()
|
||||
{
|
||||
int relive_times = 0;
|
||||
owner->GetTrigger()->AddListener
|
||||
(
|
||||
kDieEvent,
|
||||
[] (const std::vector<std::any>& params)
|
||||
[this, relive_times] (const std::vector<std::any>& params) mutable
|
||||
{
|
||||
|
||||
if (relive_times <= 0) {
|
||||
++relive_times;
|
||||
owner->real_dead = false;
|
||||
owner->room->xtimer.AddDeadLineTimerAndAttach
|
||||
(
|
||||
meta->number_meta->float_time * 1000 / FRAME_RATE_MS,
|
||||
a8::XParams()
|
||||
.SetSender(this),
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
Skill* skill = (Skill*)param.sender.GetUserData();
|
||||
Creature* owner = skill->owner;
|
||||
owner->dead = false;
|
||||
owner->real_dead = false;
|
||||
owner->downed = false;
|
||||
owner->SetHP(owner->GetMaxHP() * skill->meta->number_meta->float_ratio2);
|
||||
owner->SyncAroundPlayers(__FILE__, __LINE__, __func__);
|
||||
owner->room->frame_event.AddRevive(owner->GetWeakPtrRef());
|
||||
},
|
||||
&xtimer_attacher.timer_list_,
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user