This commit is contained in:
aozhiwei 2022-11-10 20:55:34 +08:00
parent cdc397100a
commit ee7df3aa62
3 changed files with 34 additions and 25 deletions

View File

@ -17,6 +17,7 @@ enum CreatureStatus
CS_DisableAttack, CS_DisableAttack,
CS_ForceTeam, CS_ForceTeam,
CS_PreDieSuspended, CS_PreDieSuspended,
CS_DeadNoDrop,
CS_End CS_End
}; };

View File

@ -2295,6 +2295,9 @@ void Human::DeadDrop()
#endif #endif
}; };
if (a8::HasBitFlag(status, CS_DeadNoDrop)) {
return;
}
if (GetRace() == kHumanRace && if (GetRace() == kHumanRace &&
!HasBuffEffect(kBET_Terminator) && !HasBuffEffect(kBET_Terminator) &&
!(HasBuffEffect(kBET_Become) && GetBuffByEffectId(kBET_Become)->FreezeOperate())) { !(HasBuffEffect(kBET_Become) && GetBuffByEffectId(kBET_Become)->FreezeOperate())) {

View File

@ -846,9 +846,12 @@ void Skill::ProcFH()
kDieEvent, kDieEvent,
[this, relive_times] (const std::vector<std::any>& params) mutable [this, relive_times] (const std::vector<std::any>& params) mutable
{ {
int killer_id = std::any_cast<int>(params.at(0));
if (relive_times <= 0) { if (relive_times <= 0) {
++relive_times; ++relive_times;
if (killer_id != owner->GetUniId()) {
owner->real_dead = false; owner->real_dead = false;
a8::SetBitFlag(owner->status, CS_DeadNoDrop);
owner->room->xtimer.AddDeadLineTimerAndAttach owner->room->xtimer.AddDeadLineTimerAndAttach
( (
meta->number_meta->float_time * 1000 / FRAME_RATE_MS, meta->number_meta->float_time * 1000 / FRAME_RATE_MS,
@ -861,6 +864,7 @@ void Skill::ProcFH()
owner->dead = false; owner->dead = false;
owner->real_dead = false; owner->real_dead = false;
owner->downed = false; owner->downed = false;
a8::UnSetBitFlag(owner->status, CS_DeadNoDrop);
owner->SetHP(owner->GetMaxHP() * skill->meta->number_meta->float_ratio2); owner->SetHP(owner->GetMaxHP() * skill->meta->number_meta->float_ratio2);
owner->SyncAroundPlayers(__FILE__, __LINE__, __func__); owner->SyncAroundPlayers(__FILE__, __LINE__, __func__);
owner->room->frame_event.AddRevive(owner->GetWeakPtrRef()); owner->room->frame_event.AddRevive(owner->GetWeakPtrRef());
@ -875,6 +879,7 @@ void Skill::ProcFH()
); );
} }
} }
}
); );
} }