1
This commit is contained in:
parent
cdc397100a
commit
ee7df3aa62
@ -17,6 +17,7 @@ enum CreatureStatus
|
||||
CS_DisableAttack,
|
||||
CS_ForceTeam,
|
||||
CS_PreDieSuspended,
|
||||
CS_DeadNoDrop,
|
||||
CS_End
|
||||
};
|
||||
|
||||
|
@ -2295,6 +2295,9 @@ void Human::DeadDrop()
|
||||
#endif
|
||||
};
|
||||
|
||||
if (a8::HasBitFlag(status, CS_DeadNoDrop)) {
|
||||
return;
|
||||
}
|
||||
if (GetRace() == kHumanRace &&
|
||||
!HasBuffEffect(kBET_Terminator) &&
|
||||
!(HasBuffEffect(kBET_Become) && GetBuffByEffectId(kBET_Become)->FreezeOperate())) {
|
||||
|
@ -846,9 +846,12 @@ void Skill::ProcFH()
|
||||
kDieEvent,
|
||||
[this, relive_times] (const std::vector<std::any>& params) mutable
|
||||
{
|
||||
int killer_id = std::any_cast<int>(params.at(0));
|
||||
if (relive_times <= 0) {
|
||||
++relive_times;
|
||||
if (killer_id != owner->GetUniId()) {
|
||||
owner->real_dead = false;
|
||||
a8::SetBitFlag(owner->status, CS_DeadNoDrop);
|
||||
owner->room->xtimer.AddDeadLineTimerAndAttach
|
||||
(
|
||||
meta->number_meta->float_time * 1000 / FRAME_RATE_MS,
|
||||
@ -861,6 +864,7 @@ void Skill::ProcFH()
|
||||
owner->dead = false;
|
||||
owner->real_dead = false;
|
||||
owner->downed = false;
|
||||
a8::UnSetBitFlag(owner->status, CS_DeadNoDrop);
|
||||
owner->SetHP(owner->GetMaxHP() * skill->meta->number_meta->float_ratio2);
|
||||
owner->SyncAroundPlayers(__FILE__, __LINE__, __func__);
|
||||
owner->room->frame_event.AddRevive(owner->GetWeakPtrRef());
|
||||
@ -875,6 +879,7 @@ void Skill::ProcFH()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user