This commit is contained in:
aozhiwei 2022-10-12 11:22:25 +08:00
parent ee4446d406
commit 186a17e594
4 changed files with 12 additions and 4 deletions

View File

@ -1114,7 +1114,7 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
{
Entity* killer = room->GetEntityByUniId(killer_id);
if (killer && killer->IsCreature(room)) {
((Creature*)killer)->GetTrigger()->Kill(this);
((Creature*)killer)->GetTrigger()->Kill(this, weapon_id);
}
}
if (room->IsPveRoom()){

View File

@ -418,6 +418,14 @@ void Skill::ProcJSHX()
kKillEvent,
[this] (const std::vector<std::any>& params)
{
int weapon_id = std::any_cast<int>(params.at(2));
if (owner->GetCurrWeapon()->meta->i->id() != weapon_id) {
return;
}
if (!owner->GetCurrWeapon()->skill_meta ||
owner->GetCurrWeapon()->skill_meta->GetMagicId() != MAGIC_HLYZ) {
return;
}
if (!owner->dead) {
float add_hp = SkillHelper::GetJshxHp(owner, meta);
float real_add_hp = std::max(0.0f, std::min(owner->GetMaxHP() - owner->GetHP(), add_hp));

View File

@ -129,7 +129,7 @@ void Trigger::Shot(MetaData::Equip* weapon_meta)
}
}
void Trigger::Kill(Creature* target)
void Trigger::Kill(Creature* target, int weapon_id)
{
if (owner_->IsHuman() && target->IsHuman()) {
owner_->AsHuman()->stats.kills++;
@ -149,7 +149,7 @@ void Trigger::Kill(Creature* target)
AddBuffs(buff->meta->int_param1, buff->meta->param4_int_list);
}
});
DispatchEvent(kKillEvent, {kill_num_, target});
DispatchEvent(kKillEvent, {kill_num_, target, weapon_id});
}
void Trigger::UseItemAction(int slot_id)

View File

@ -55,7 +55,7 @@ public:
Creature* GetOwner() { return owner_; };
void TakeonWeapon(Weapon* old_weapon, Weapon* new_weapon);
void Shot(MetaData::Equip* weapon_meta);
void Kill(Creature* target);
void Kill(Creature* target, int weapon_id);
void UseItemAction(int slot_id);
void UseSkill(Skill* skill);
void HpChg();