mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
[Quest API] Add CopyHateList() to Perl/Lua. (#2623)
* [Quest API] Add CopyHateList() to Perl/Lua. # Perl - Add `$mob->CopyHateList(to_mob)`. # Lua - Add `mob:CopyHateList(to_mob)`. # Notes - Allows operators to easily copy and entire hatelist from one mob to another. * Update mob.cpp
This commit is contained in:
parent
3774dc50d9
commit
91ea6462f2
@ -2747,6 +2747,11 @@ void Lua_Mob::SendPayload(int payload_id, std::string payload_value) {
|
||||
}
|
||||
}
|
||||
|
||||
void Lua_Mob::CopyHateList(Lua_Mob to) {
|
||||
Lua_Safe_Call_Void();
|
||||
self->CopyHateList(to);
|
||||
}
|
||||
|
||||
#ifdef BOTS
|
||||
void Lua_Mob::DamageAreaBots(int64 damage) {
|
||||
Lua_Safe_Call_Void();
|
||||
@ -2898,6 +2903,7 @@ luabind::scope lua_register_mob() {
|
||||
.def("CloneAppearance", (void(Lua_Mob::*)(Lua_Mob))&Lua_Mob::CloneAppearance)
|
||||
.def("CloneAppearance", (void(Lua_Mob::*)(Lua_Mob,bool))&Lua_Mob::CloneAppearance)
|
||||
.def("CombatRange", (bool(Lua_Mob::*)(Lua_Mob))&Lua_Mob::CombatRange)
|
||||
.def("CopyHateList", (void(Lua_Mob::*)(Lua_Mob))&Lua_Mob::CopyHateList)
|
||||
.def("Damage", (void(Lua_Mob::*)(Lua_Mob,int64,int,int))&Lua_Mob::Damage)
|
||||
.def("Damage", (void(Lua_Mob::*)(Lua_Mob,int64,int,int,bool))&Lua_Mob::Damage)
|
||||
.def("Damage", (void(Lua_Mob::*)(Lua_Mob,int64,int,int,bool,int))&Lua_Mob::Damage)
|
||||
|
||||
@ -519,6 +519,7 @@ public:
|
||||
void DamageHateListNPCs(int64 damage, uint32 distance);
|
||||
void DamageHateListNPCsPercentage(int64 damage);
|
||||
void DamageHateListNPCsPercentage(int64 damage, uint32 distance);
|
||||
void CopyHateList(Lua_Mob to);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
12
zone/mob.cpp
12
zone/mob.cpp
@ -7051,3 +7051,15 @@ void Mob::CloneAppearance(Mob* other, bool clone_name)
|
||||
TempName(other->GetCleanName());
|
||||
}
|
||||
}
|
||||
|
||||
void Mob::CopyHateList(Mob* to) {
|
||||
if (hate_list.IsHateListEmpty() || !to || to->IsClient()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const auto& h : hate_list.GetHateList()) {
|
||||
if (h->entity_on_hatelist) {
|
||||
to->AddToHateList(h->entity_on_hatelist, h->stored_hate_amount, h->hatelist_damage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -654,6 +654,8 @@ public:
|
||||
inline const bool AlwaysAggro() const { return always_aggro; }
|
||||
inline int32 GetHeroicStrikethrough() const { return heroic_strikethrough; }
|
||||
|
||||
void CopyHateList(Mob* to);
|
||||
|
||||
//Group
|
||||
virtual bool HasRaid() = 0;
|
||||
virtual bool HasGroup() = 0;
|
||||
|
||||
@ -2678,6 +2678,11 @@ void Perl_Mob_SetEntityVariable(Mob* self, std::string variable_name, std::strin
|
||||
self->SetEntityVariable(variable_name, variable_value);
|
||||
}
|
||||
|
||||
void Perl_Mob_CopyHateList(Mob* self, Mob* to)
|
||||
{
|
||||
self->CopyHateList(to);
|
||||
}
|
||||
|
||||
#ifdef BOTS
|
||||
void Perl_Mob_DamageAreaBots(Mob* self, int64 damage) // @categories Hate and Aggro
|
||||
{
|
||||
@ -2827,6 +2832,7 @@ void perl_register_mob()
|
||||
package.add("CloneAppearance", (void(*)(Mob*, Mob*))&Perl_Mob_CloneAppearance);
|
||||
package.add("CloneAppearance", (void(*)(Mob*, Mob*, bool))&Perl_Mob_CloneAppearance);
|
||||
package.add("CombatRange", &Perl_Mob_CombatRange);
|
||||
package.add("CopyHateList", &Perl_Mob_CopyHateList);
|
||||
package.add("Damage", (void(*)(Mob*, Mob*, int64, uint16_t, int))&Perl_Mob_Damage);
|
||||
package.add("Damage", (void(*)(Mob*, Mob*, int64, uint16_t, int, bool))&Perl_Mob_Damage);
|
||||
package.add("Damage", (void(*)(Mob*, Mob*, int64, uint16_t, int, bool, int8_t))&Perl_Mob_Damage);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user