mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 17:51:28 +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
|
#ifdef BOTS
|
||||||
void Lua_Mob::DamageAreaBots(int64 damage) {
|
void Lua_Mob::DamageAreaBots(int64 damage) {
|
||||||
Lua_Safe_Call_Void();
|
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))&Lua_Mob::CloneAppearance)
|
||||||
.def("CloneAppearance", (void(Lua_Mob::*)(Lua_Mob,bool))&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("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))&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))&Lua_Mob::Damage)
|
||||||
.def("Damage", (void(Lua_Mob::*)(Lua_Mob,int64,int,int,bool,int))&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 DamageHateListNPCs(int64 damage, uint32 distance);
|
||||||
void DamageHateListNPCsPercentage(int64 damage);
|
void DamageHateListNPCsPercentage(int64 damage);
|
||||||
void DamageHateListNPCsPercentage(int64 damage, uint32 distance);
|
void DamageHateListNPCsPercentage(int64 damage, uint32 distance);
|
||||||
|
void CopyHateList(Lua_Mob to);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
12
zone/mob.cpp
12
zone/mob.cpp
@ -7051,3 +7051,15 @@ void Mob::CloneAppearance(Mob* other, bool clone_name)
|
|||||||
TempName(other->GetCleanName());
|
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 const bool AlwaysAggro() const { return always_aggro; }
|
||||||
inline int32 GetHeroicStrikethrough() const { return heroic_strikethrough; }
|
inline int32 GetHeroicStrikethrough() const { return heroic_strikethrough; }
|
||||||
|
|
||||||
|
void CopyHateList(Mob* to);
|
||||||
|
|
||||||
//Group
|
//Group
|
||||||
virtual bool HasRaid() = 0;
|
virtual bool HasRaid() = 0;
|
||||||
virtual bool HasGroup() = 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);
|
self->SetEntityVariable(variable_name, variable_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Perl_Mob_CopyHateList(Mob* self, Mob* to)
|
||||||
|
{
|
||||||
|
self->CopyHateList(to);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef BOTS
|
#ifdef BOTS
|
||||||
void Perl_Mob_DamageAreaBots(Mob* self, int64 damage) // @categories Hate and Aggro
|
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*))&Perl_Mob_CloneAppearance);
|
||||||
package.add("CloneAppearance", (void(*)(Mob*, Mob*, bool))&Perl_Mob_CloneAppearance);
|
package.add("CloneAppearance", (void(*)(Mob*, Mob*, bool))&Perl_Mob_CloneAppearance);
|
||||||
package.add("CombatRange", &Perl_Mob_CombatRange);
|
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))&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))&Perl_Mob_Damage);
|
||||||
package.add("Damage", (void(*)(Mob*, Mob*, int64, uint16_t, int, bool, int8_t))&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