1
This commit is contained in:
parent
ee4446d406
commit
186a17e594
@ -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()){
|
||||
|
@ -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));
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user