[Bug Fix] Fix EVENT_KILLED_MERIT firing before NPC removal (#4185)

* [Bug Fix] Fix EVENT_KILLED_MERIT firing before NPC removal

# Notes
- NPCs were parsing this event too early and anything that checked if they were still alive in `EVENT_KILLED_MERIT` would show them still alive because of this.

# Image

* Code cleanup

* Update client.h

* Add GetRaidOrGroupOrSelf() to Perl/Lua

* Update to luabind::object, fix logic per comments.

* Fix

* Fix per comments.
This commit is contained in:
Alex King
2024-03-17 17:32:44 -04:00
committed by GitHub
parent e5bdbc4f1e
commit ee12a7ad2e
7 changed files with 114 additions and 22 deletions
+32
View File
@@ -3113,6 +3113,36 @@ bool Perl_Client_RemoveAlternateCurrencyValue(Client* self, uint32 currency_id,
return self->RemoveAlternateCurrencyValue(currency_id, amount);
}
perl::array Perl_Client_GetRaidOrGroupOrSelf(Client* self)
{
perl::array result;
const auto& l = self->GetRaidOrGroupOrSelf();
result.reserve(l.size());
for (const auto& e : l) {
result.push_back(e);
}
return result;
}
perl::array Perl_Client_GetRaidOrGroupOrSelf(Client* self, bool clients_only)
{
perl::array result;
const auto& l = self->GetRaidOrGroupOrSelf(clients_only);
result.reserve(l.size());
for (const auto& e : l) {
result.push_back(e);
}
return result;
}
void perl_register_client()
{
perl::interpreter perl(PERL_GET_THX);
@@ -3346,6 +3376,8 @@ void perl_register_client()
package.add("GetRaceBitmask", &Perl_Client_GetRaceBitmask);
package.add("GetRadiantCrystals", &Perl_Client_GetRadiantCrystals);
package.add("GetRaid", &Perl_Client_GetRaid);
package.add("GetRaidOrGroupOrSelf", (perl::array(*)(Client*))&Perl_Client_GetRaidOrGroupOrSelf);
package.add("GetRaidOrGroupOrSelf", (perl::array(*)(Client*, bool))&Perl_Client_GetRaidOrGroupOrSelf);
package.add("GetRaidPoints", &Perl_Client_GetRaidPoints);
package.add("GetRawItemAC", &Perl_Client_GetRawItemAC);
package.add("GetRawSkill", &Perl_Client_GetRawSkill);