#include "../common/features.h" #ifdef EMBPERL_XS_CLASSES #include "../common/global_define.h" #include "../common/spdat.h" #include "embperl.h" #include "mob.h" #include "client.h" #include "dialogue_window.h" #include "bot.h" #include "questmgr.h" bool Perl_Mob_IsClient(Mob* self) // @categories Script Utility { return self->IsClient(); } bool Perl_Mob_IsNPC(Mob* self) // @categories Script Utility { return self->IsNPC(); } bool Perl_Mob_IsMob(Mob* self) // @categories Script Utility { return self->IsMob(); } bool Perl_Mob_IsMerc(Mob* self) // @categories Script Utility { return self->IsMerc(); } bool Perl_Mob_IsCorpse(Mob* self) // @categories Script Utility, Corpse { return self->IsCorpse(); } bool Perl_Mob_IsPlayerCorpse(Mob* self) // @categories Corpse { return self->IsPlayerCorpse(); } bool Perl_Mob_IsNPCCorpse(Mob* self) // @categories Corpse { return self->IsNPCCorpse(); } bool Perl_Mob_IsObject(Mob* self) // @categories Objects { return self->IsObject(); } bool Perl_Mob_IsDoor(Mob* self) // @categories Script Utility, Doors { return self->IsDoor(); } bool Perl_Mob_IsTrap(Mob* self) // @categories Script Utility { return self->IsTrap(); } bool Perl_Mob_IsBeacon(Mob* self) // @categories Script Utility { return self->IsBeacon(); } bool Perl_Mob_IsEncounter(Mob* self) // @categories Script Utility { return self->IsEncounter(); } bool Perl_Mob_IsBot(Mob* self) // @categories Script Utility { return self->IsBot(); } bool Perl_Mob_IsAura(Mob* self) // @categories Script Utility { return self->IsAura(); } bool Perl_Mob_IsOfClientBot(Mob* self) // @categories Script Utility { return self->IsOfClientBot(); } bool Perl_Mob_IsOfClientBotMerc(Mob* self) // @categories Script Utility { return self->IsOfClientBotMerc(); } bool Perl_Mob_IsTemporaryPet(Mob* self) // @categories Script Utility { return self->IsTempPet(); } Client* Perl_Mob_CastToClient(Mob* self) // @categories Account and Character, Script Utility { return self->CastToClient(); } NPC* Perl_Mob_CastToNPC(Mob* self) // @categories Script Utility { return self->CastToNPC(); } Mob* Perl_Mob_CastToMob(Mob* self) // @categories Script Utility { return self->CastToMob(); } Corpse* Perl_Mob_CastToCorpse(Mob* self) // @categories Script Utility, Corpse { return self->CastToCorpse(); } int Perl_Mob_GetID(Mob* self) // @categories Script Utility { return self->GetID(); } std::string Perl_Mob_GetName(Mob* self)// @categories Script Utility { return self->GetName(); } void Perl_Mob_Depop(Mob* self) // @categories Spawns { self->Depop(); } void Perl_Mob_Depop(Mob* self, bool start_spawn_timer) // @categories Spawns { self->Depop(start_spawn_timer); } void Perl_Mob_RogueAssassinate(Mob* self, Mob* other) // @categories Script Utility { return self->RogueAssassinate(other); } bool Perl_Mob_BehindMob(Mob* self, Mob* other) // @categories Script Utility { return self->BehindMob(other); } bool Perl_Mob_BehindMob(Mob* self, Mob* other, float x) // @categories Script Utility { return self->BehindMob(other, x); } bool Perl_Mob_BehindMob(Mob* self, Mob* other, float x, float y) // @categories Script Utility { return self->BehindMob(other, x, y); } void Perl_Mob_SetLevel(Mob* self, uint8_t in_level) // @categories Stats and Attributes { self->SetLevel(in_level); } void Perl_Mob_SetLevel(Mob* self, uint8_t in_level, bool command) // @categories Stats and Attributes { self->SetLevel(in_level, command); } uint32_t Perl_Mob_GetSkill(Mob* self, int skill_id) // @categories Skills and Recipes, Script Utility { return self->GetSkill(static_cast(skill_id)); } void Perl_Mob_SendWearChange(Mob* self, uint8_t material_slot) // @categories Script Utility { self->SendWearChange(material_slot); } uint32_t Perl_Mob_GetEquipment(Mob* self, uint8_t material_slot) // @categories Inventory and Items { return self->GetEquippedItemFromTextureSlot(material_slot); } uint32_t Perl_Mob_GetEquipmentMaterial(Mob* self, uint8_t material_slot) // @categories Inventory and Items { return self->GetEquipmentMaterial(material_slot); } uint32_t Perl_Mob_GetEquipmentColor(Mob* self, uint8_t material_slot) // @categories Inventory and Items { return self->GetEquipmentColor(material_slot); } int32_t Perl_Mob_GetArmorTint(Mob* self, uint8_t material_slot) // @categories Stats and Attributes { return self->GetArmorTint(material_slot); } bool Perl_Mob_IsMoving(Mob* self) // @categories Script Utility { return self->IsMoving(); } void Perl_Mob_GoToBind(Mob* self) // @categories Script Utility { self->GoToBind(); } void Perl_Mob_Gate(Mob* self) // @categories Spells and Disciplines { self->Gate(); } bool Perl_Mob_Attack(Mob* self, Mob* other) // @categories Script Utility, Hate and Aggro { return self->Attack(other); } bool Perl_Mob_Attack(Mob* self, Mob* other, int hand) // @categories Script Utility, Hate and Aggro { return self->Attack(other, hand); } bool Perl_Mob_Attack(Mob* self, Mob* other, int hand, bool from_riposte) // @categories Script Utility, Hate and Aggro { return self->Attack(other, hand, from_riposte); } void Perl_Mob_Damage(Mob* self, Mob* from, int64_t damage, uint16_t spell_id, int attack_skill) // @categories Script Utility { self->Damage(from, damage, spell_id, static_cast(attack_skill)); } void Perl_Mob_Damage(Mob* self, Mob* from, int64_t damage, uint16_t spell_id, int attack_skill, bool avoidable) // @categories Script Utility { self->Damage(from, damage, spell_id, static_cast(attack_skill), avoidable); } void Perl_Mob_Damage(Mob* self, Mob* from, int64_t damage, uint16_t spell_id, int attack_skill, bool avoidable, int8_t buffslot) // @categories Script Utility { self->Damage(from, damage, spell_id, static_cast(attack_skill), avoidable, buffslot); } void Perl_Mob_Damage(Mob* self, Mob* from, int64_t damage, uint16_t spell_id, int attack_skill, bool avoidable, int8_t buffslot, bool buff_tic) // @categories Script Utility { self->Damage(from, damage, spell_id, static_cast(attack_skill), avoidable, buffslot, buff_tic); } void Perl_Mob_RangedAttack(Mob* self, Mob* other) // @categories Skills and Recipes, Script Utility { self->RangedAttack(other); } void Perl_Mob_ThrowingAttack(Mob* self, Mob* other) // @categories Skills and Recipes, Script Utility { self->ThrowingAttack(other); } void Perl_Mob_Heal(Mob* self)// @categories Script Utility { self->Heal(); } void Perl_Mob_HealDamage(Mob* self, int64_t amount) // @categories Script Utility { self->HealDamage(amount); } void Perl_Mob_HealDamage(Mob* self, int64_t amount, Mob* caster) // @categories Script Utility { self->HealDamage(amount, caster); } void Perl_Mob_SetMaxHP(Mob* self) // @categories Stats and Attributes { self->SetMaxHP(); } uint32_t Perl_Mob_GetLevelCon(Mob* self, uint8_t other_level) // @categories Stats and Attributes { return self->GetLevelCon(other_level); } void Perl_Mob_SetHP(Mob* self, int64_t hp) // @categories Stats and Attributes { self->SetHP(hp); } void Perl_Mob_DoAnim(Mob* self, int animation_id) // @categories Script Utility { self->DoAnim(animation_id); } void Perl_Mob_DoAnim(Mob* self, int animation_id, int animation_speed) // @categories Script Utility { self->DoAnim(animation_id, animation_speed); } void Perl_Mob_DoAnim(Mob* self, int animation_id, int animation_speed, bool ackreq) // @categories Script Utility { self->DoAnim(animation_id, animation_speed, ackreq); } void Perl_Mob_DoAnim(Mob* self, int animation_id, int animation_speed, bool ackreq, int filter) // @categories Script Utility { self->DoAnim(animation_id, animation_speed, ackreq, static_cast(filter)); } void Perl_Mob_ChangeSize(Mob* self, float in_size) // @categories Script Utility { self->ChangeSize(in_size); } void Perl_Mob_ChangeSize(Mob* self, float in_size, bool unrestricted) // @categories Script Utility { self->ChangeSize(in_size, unrestricted); } void Perl_Mob_GMMove(Mob* self, float x, float y, float z) // @categories Script Utility { self->GMMove(x, y, z); } void Perl_Mob_GMMove(Mob* self, float x, float y, float z, float heading) // @categories Script Utility { self->GMMove(x, y, z, heading); } void Perl_Mob_GMMove(Mob* self, float x, float y, float z, float heading, bool save_guard_spot) // @categories Script Utility { self->GMMove(x, y, z, heading, save_guard_spot); } bool Perl_Mob_HasProcs(Mob* self) // @categories Stats and Attributes { return self->HasProcs(); } bool Perl_Mob_IsInvisible(Mob* self) // @categories Script Utility { return self->IsInvisible(); } bool Perl_Mob_IsInvisible(Mob* self, Mob* other) // @categories Script Utility { return self->IsInvisible(other); } void Perl_Mob_SetInvisible(Mob* self, uint8_t state) // @categories Script Utility { self->SetInvisible(state); } void Perl_Mob_SetSeeInvisibleLevel(Mob* self, uint8 see_invis_level) // @categories Script Utility { self->SetInnateSeeInvisible(see_invis_level); self->CalcSeeInvisibleLevel(); } void Perl_Mob_SetSeeInvisibleUndeadLevel(Mob* self, uint8 see_invis_undead_level) // @categories Script Utility { self->SetSeeInvisibleUndead(see_invis_undead_level); } bool Perl_Mob_FindBuff(Mob* self, uint16 spell_id) // @categories Spells and Disciplines, Script Utility { return self->FindBuff(spell_id); } bool Perl_Mob_FindBuff(Mob* self, uint16 spell_id, uint16 caster_id) // @categories Spells and Disciplines, Script Utility { return self->FindBuff(spell_id, caster_id); } int Perl_Mob_FindBuffBySlot(Mob* self, int slot) // @categories Spells and Disciplines, Script Utility { return self->FindBuffBySlot(slot); } bool Perl_Mob_FindType(Mob* self, uint16_t type) // @categories Script Utility { return self->FindType(type); } bool Perl_Mob_FindType(Mob* self, uint16_t type, bool offensive) // @categories Script Utility { return self->FindType(type, offensive); } bool Perl_Mob_FindType(Mob* self, uint16_t type, bool offensive, uint16_t threshold) // @categories Script Utility { return self->FindType(type, offensive, threshold); } int Perl_Mob_GetBuffSlotFromType(Mob* self, uint16 type) // @categories Spells and Disciplines, Script Utility { return self->GetBuffSlotFromType(type); } void Perl_Mob_MakePet(Mob* self, uint16 spell_id, const char* pet_type) // @categories Pet { self->MakePet(spell_id, pet_type); } void Perl_Mob_MakePet(Mob* self, uint16 spell_id, const char* pet_type, const char* name) // @categories Pet { self->MakePet(spell_id, pet_type, name); } void Perl_Mob_MakeTempPet(Mob* self, uint16 spell_id) // @categories Pet { self->TemporaryPets(spell_id, nullptr); } void Perl_Mob_MakeTempPet(Mob* self, uint16 spell_id, const char* name) // @categories Pet { self->TemporaryPets(spell_id, nullptr, name); } void Perl_Mob_MakeTempPet(Mob* self, uint16 spell_id, const char* name, uint32 duration) // @categories Pet { self->TemporaryPets(spell_id, nullptr, name, duration); } void Perl_Mob_MakeTempPet(Mob* self, uint16 spell_id, const char* name, uint32 duration, Mob* target) // @categories Pet { self->TemporaryPets(spell_id, target, name, duration); } void Perl_Mob_MakeTempPet(Mob* self, uint16 spell_id, const char* name, uint32 duration, Mob* target, bool sticktarg) // @categories Pet { self->TemporaryPets(spell_id, target, name, duration, true, sticktarg); } void Perl_Mob_TypesTempPet(Mob* self, uint32 type_id) // @categories Pet { self->TypesTemporaryPets(type_id, nullptr); } void Perl_Mob_TypesTempPet(Mob* self, uint32 type_id, const char* name) // @categories Pet { self->TypesTemporaryPets(type_id, nullptr, name); } void Perl_Mob_TypesTempPet(Mob* self, uint32 type_id, const char* name, uint32 duration) // @categories Pet { self->TypesTemporaryPets(type_id, nullptr, name, duration); } void Perl_Mob_TypesTempPet(Mob* self, uint32 type_id, const char* name, uint32 duration, bool follow) // @categories Pet { self->TypesTemporaryPets(type_id, nullptr, name, duration, follow); } void Perl_Mob_TypesTempPet(Mob* self, uint32 type_id, const char* name, uint32 duration, bool follow, Mob* target) // @categories Pet { self->TypesTemporaryPets(type_id, target, name, duration, follow); } void Perl_Mob_TypesTempPet(Mob* self, uint32 type_id, const char* name, uint32 duration, bool follow, Mob* target, bool stick_targ) // @categories Pet { self->TypesTemporaryPets(type_id, target, name, duration, follow, stick_targ); } int Perl_Mob_GetBaseRace(Mob* self) // @categories Stats and Attributes { return self->GetBaseRace(); } std::string Perl_Mob_GetBaseRaceName(Mob* self) // @categories Stats and Attributes { return GetRaceIDName(self->GetBaseRace()); } int Perl_Mob_GetBaseGender(Mob* self) // @categories Stats and Attributes { return self->GetBaseGender(); } int Perl_Mob_GetDeity(Mob* self) // @categories Stats and Attributes { return self->GetDeity(); } int Perl_Mob_GetRace(Mob* self) // @categories Stats and Attributes { return self->GetRace(); } int Perl_Mob_GetGender(Mob* self) // @categories Stats and Attributes { return self->GetGender(); } int Perl_Mob_GetTexture(Mob* self) // @categories Stats and Attributes { return self->GetTexture(); } int Perl_Mob_GetHelmTexture(Mob* self) // @categories Stats and Attributes { return self->GetHelmTexture(); } int Perl_Mob_GetHairColor(Mob* self) // @categories Stats and Attributes { return self->GetHairColor(); } int Perl_Mob_GetBeardColor(Mob* self) // @categories Stats and Attributes { return self->GetBeardColor(); } int Perl_Mob_GetEyeColor1(Mob* self) // @categories Stats and Attributes { return self->GetEyeColor1(); } int Perl_Mob_GetEyeColor2(Mob* self) // @categories Stats and Attributes { return self->GetEyeColor2(); } int Perl_Mob_GetHairStyle(Mob* self) // @categories Stats and Attributes { return self->GetHairStyle(); } int Perl_Mob_GetLuclinFace(Mob* self) // @categories Stats and Attributes { return self->GetLuclinFace(); } int Perl_Mob_GetBeard(Mob* self) // @categories Stats and Attributes { return self->GetBeard(); } int Perl_Mob_GetDrakkinHeritage(Mob* self) // @categories Stats and Attributes { return self->GetDrakkinHeritage(); } int Perl_Mob_GetDrakkinTattoo(Mob* self) // @categories Stats and Attributes { return self->GetDrakkinTattoo(); } int Perl_Mob_GetDrakkinDetails(Mob* self) // @categories Stats and Attributes { return self->GetDrakkinDetails(); } int Perl_Mob_GetClass(Mob* self) // @categories Stats and Attributes { return self->GetClass(); } int Perl_Mob_GetLevel(Mob* self) // @categories Stats and Attributes { return self->GetLevel(); } std::string Perl_Mob_GetCleanName(Mob* self) // @categories Script Utility { return self->GetCleanName(); } Mob* Perl_Mob_GetTarget(Mob* self) // @categories Script Utility { return self->GetTarget(); } void Perl_Mob_SetTarget(Mob* self, Mob* target) // @categories Script Utility { self->SetTarget(target); } float Perl_Mob_GetHPRatio(Mob* self) // @categories Stats and Attributes { return self->GetHPRatio(); } bool Perl_Mob_IsWarriorClass(Mob* self) // @categories Script Utility { return self->IsWarriorClass(); } int64_t Perl_Mob_GetHP(Mob* self) // @categories Stats and Attributes { return self->GetHP(); } int64_t Perl_Mob_GetMaxHP(Mob* self) // @categories Stats and Attributes { return self->GetMaxHP(); } int64_t Perl_Mob_GetItemHPBonuses(Mob* self) // @categories Inventory and Items, Stats and Attributes { return self->GetItemHPBonuses(); } int64_t Perl_Mob_GetSpellHPBonuses(Mob* self) // @categories Spells and Disciplines { return self->GetSpellHPBonuses(); } int Perl_Mob_GetSpellIDFromSlot(Mob* self, uint8_t slot) // @categories Spells and Disciplines { return slot <= self->GetMaxBuffSlots() ? self->GetSpellIDFromSlot(slot) : -1; } int Perl_Mob_GetWalkspeed(Mob* self) // @categories Stats and Attributes { return self->GetWalkspeed(); } int Perl_Mob_GetRunspeed(Mob* self) // @categories Stats and Attributes { return self->GetRunspeed(); } int Perl_Mob_GetCasterLevel(Mob* self, uint16_t spell_id) // @categories Stats and Attributes { return self->GetCasterLevel(spell_id); } int64_t Perl_Mob_GetMaxMana(Mob* self) // @categories Stats and Attributes { return self->GetMaxMana(); } int64_t Perl_Mob_GetMana(Mob* self) // @categories Stats and Attributes { return self->GetMana(); } int64_t Perl_Mob_SetMana(Mob* self, int64_t amount) // @categories Stats and Attributes { return self->SetMana(amount); } float Perl_Mob_GetManaRatio(Mob* self) // @categories Stats and Attributes { return self->GetManaRatio(); } int Perl_Mob_GetAC(Mob* self) // @categories Stats and Attributes { return self->GetAC(); } int Perl_Mob_GetDisplayAC(Mob* self) { return self->GetDisplayAC(); } int Perl_Mob_GetATK(Mob* self) // @categories Stats and Attributes { return self->GetATK(); } int Perl_Mob_GetSTR(Mob* self) // @categories Stats and Attributes { return self->GetSTR(); } int Perl_Mob_GetSTA(Mob* self) // @categories Stats and Attributes { return self->GetSTA(); } int Perl_Mob_GetDEX(Mob* self) // @categories Stats and Attributes { return self->GetDEX(); } int Perl_Mob_GetAGI(Mob* self) // @categories Stats and Attributes { return self->GetAGI(); } int Perl_Mob_GetINT(Mob* self) // @categories Stats and Attributes { return self->GetINT(); } int Perl_Mob_GetWIS(Mob* self) // @categories Stats and Attributes { return self->GetWIS(); } int Perl_Mob_GetCHA(Mob* self) // @categories Stats and Attributes { return self->GetCHA(); } int Perl_Mob_GetMR(Mob* self) // @categories Stats and Attributes { return self->GetMR(); } int Perl_Mob_GetFR(Mob* self) // @categories Stats and Attributes { return self->GetFR(); } int Perl_Mob_GetDR(Mob* self) // @categories Stats and Attributes { return self->GetDR(); } int Perl_Mob_GetPR(Mob* self) // @categories Stats and Attributes { return self->GetPR(); } int Perl_Mob_GetCR(Mob* self) // @categories Stats and Attributes { return self->GetCR(); } int Perl_Mob_GetCorruption(Mob* self) // @categories Stats and Attributes { return self->GetCorrup(); } int Perl_Mob_GetPhR(Mob* self) // @categories Stats and Attributes { return self->GetPhR(); } int Perl_Mob_GetMaxSTR(Mob* self) // @categories Stats and Attributes { return self->GetMaxSTR(); } int Perl_Mob_GetMaxSTA(Mob* self) // @categories Stats and Attributes { return self->GetMaxSTA(); } int Perl_Mob_GetMaxDEX(Mob* self) // @categories Stats and Attributes { return self->GetMaxDEX(); } int Perl_Mob_GetMaxAGI(Mob* self) // @categories Stats and Attributes { return self->GetMaxAGI(); } int Perl_Mob_GetMaxINT(Mob* self) // @categories Stats and Attributes { return self->GetMaxINT(); } int Perl_Mob_GetMaxWIS(Mob* self) // @categories Stats and Attributes { return self->GetMaxWIS(); } int Perl_Mob_GetMaxCHA(Mob* self) // @categories Stats and Attributes { return self->GetMaxCHA(); } float Perl_Mob_GetActSpellRange(Mob* self, uint16 spell_id, float range) // @categories Spells and Disciplines { return self->GetActSpellRange(spell_id, range); } int64_t Perl_Mob_GetActSpellDamage(Mob* self, uint16 spell_id, int64 value) // @categories Spells and Disciplines { return self->GetActSpellDamage(spell_id, value); } int64_t Perl_Mob_GetActSpellDamage(Mob* self, uint16 spell_id, int64 value, Mob* target) // @categories Spells and Disciplines { return self->GetActSpellDamage(spell_id, value, target); } int64_t Perl_Mob_GetActDoTDamage(Mob* self, uint16 spell_id, int64 value, Mob* target) // @categories Spells and Disciplines { return self->GetActDoTDamage(spell_id, value, target); } int64_t Perl_Mob_GetActDoTDamage(Mob* self, uint16 spell_id, int64 value, Mob* target, bool from_buff_tic) // @categories Spells and Disciplines { return self->GetActDoTDamage(spell_id, value, target, from_buff_tic); } int64_t Perl_Mob_GetActSpellHealing(Mob* self, uint16 spell_id, int64 value) // @categories Spells and Disciplines { return self->GetActSpellHealing(spell_id, value); } int64_t Perl_Mob_GetActSpellHealing(Mob* self, uint16 spell_id, int64 value, Mob* target) // @categories Spells and Disciplines { return self->GetActSpellHealing(spell_id, value, target); } int64_t Perl_Mob_GetActSpellHealing(Mob* self, uint16 spell_id, int64 value, Mob* target, bool from_buff_tic) // @categories Spells and Disciplines { return self->GetActSpellHealing(spell_id, value, target, from_buff_tic); } int Perl_Mob_GetActSpellCost(Mob* self, uint16 spell_id, int32 cost) // @categories Spells and Disciplines { return self->GetActSpellCost(spell_id, cost); } int Perl_Mob_GetActSpellDuration(Mob* self, uint16 spell_id, int32 duration) // @categories Spells and Disciplines { return self->GetActSpellDuration(spell_id, duration); } int Perl_Mob_GetActSpellCasttime(Mob* self, uint16 spell_id, uint32 cast_time) // @categories Spells and Disciplines { return self->GetActSpellCasttime(spell_id, cast_time); } int64 Perl_Mob_GetActReflectedSpellDamage(Mob* self, uint16 spell_id, int64 value, int effectiveness) // @categories Spells and Disciplines { return self->GetActReflectedSpellDamage(spell_id, value, effectiveness); } float Perl_Mob_ResistSpell(Mob* self, uint8 resist_type, uint16 spell_id, Mob* caster) // @categories Spells and Disciplines, Script Utility { return self->ResistSpell(resist_type, spell_id, caster); } int Perl_Mob_GetSpecializeSkillValue(Mob* self, uint16 spell_id) // @categories Skills and Recipes, Spells and Disciplines { return self->GetSpecializeSkillValue(spell_id); } uint32_t Perl_Mob_GetNPCTypeID(Mob* self) // @categories Script Utility { return self->GetNPCTypeID(); } bool Perl_Mob_IsTargeted(Mob* self) // @categories Script Utility { return self->IsTargeted(); } float Perl_Mob_GetX(Mob* self) // @categories Script Utility { return self->GetX(); } float Perl_Mob_GetY(Mob* self) // @categories Script Utility { return self->GetY(); } float Perl_Mob_GetZ(Mob* self) // @categories Script Utility { return self->GetZ(); } float Perl_Mob_GetHeading(Mob* self) // @categories Script Utility { return self->GetHeading(); } float Perl_Mob_GetWaypointX(Mob* self) // @categories Script Utility { return self->GetCurrentWayPoint().x; } float Perl_Mob_GetWaypointY(Mob* self) // @categories Script Utility { return self->GetCurrentWayPoint().y; } float Perl_Mob_GetWaypointZ(Mob* self) // @categories Script Utility { return self->GetCurrentWayPoint().z; } float Perl_Mob_GetWaypointH(Mob* self) // @categories Script Utility { return self->GetCurrentWayPoint().w; } float Perl_Mob_GetWaypointPause(Mob* self) // @categories Script Utility { return self->GetCWPP(); } int Perl_Mob_GetWaypointID(Mob* self) // @categories Script Utility { return self->GetCWP(); } void Perl_Mob_SetCurrentWP(Mob* self, int waypoint) // @categories Script Utility { self->SetCurrentWP(waypoint); } float Perl_Mob_GetSize(Mob* self) // @categories Stats and Attributes { return self->GetSize(); } void Perl_Mob_SetFollowID(Mob* self, uint32_t id) // @categories Script Utility { self->SetFollowID(id); } uint32_t Perl_Mob_GetFollowID(Mob* self) // @categories Script Utility { return self->GetFollowID(); } void Perl_Mob_Message(Mob* self, uint32 type, const char* message) // @categories Script Utility { if (RuleB(Chat, QuestDialogueUsesDialogueWindow) && self->IsClient()) { DialogueWindow::Render(self->CastToClient(), message); } else if (RuleB(Chat, AutoInjectSaylinksToClientMessage)) { std::string new_message = EQ::SayLinkEngine::InjectSaylinksIfNotExist(message); self->Message(type, new_message.c_str()); } else { self->Message(type, message); } } void Perl_Mob_Message_StringID(Mob* self, uint32 type, uint32 string_id) // @categories Script Utility { self->MessageString(type, string_id); } void Perl_Mob_Message_StringID(Mob* self, uint32 type, uint32 string_id, uint32 distance) // @categories Script Utility { self->MessageString(type, string_id, distance); } void Perl_Mob_Say(Mob* self, const char* message) // @categories Script Utility { self->Say(message); } void Perl_Mob_Shout(Mob* self, const char* message) // @categories Script Utility { self->Shout(message); } void Perl_Mob_Emote(Mob* self, const char* message) // @categories Script Utility { self->Emote(message); } void Perl_Mob_InterruptSpell(Mob* self) // @categories Script Utility { self->InterruptSpell(); } void Perl_Mob_InterruptSpell(Mob* self, uint16 spell_id) // @categories Script Utility { self->InterruptSpell(spell_id); } void Perl_Mob_CastSpell(Mob* self, uint16 spell_id, uint16 target_id) // @categories Spells and Disciplines { self->CastSpell(spell_id, target_id); } void Perl_Mob_CastSpell(Mob* self, uint16 spell_id, uint16 target_id, int slot) // @categories Spells and Disciplines { self->CastSpell(spell_id, target_id, static_cast(slot)); } void Perl_Mob_CastSpell(Mob* self, uint16 spell_id, uint16 target_id, int slot, int cast_time) // @categories Spells and Disciplines { self->CastSpell(spell_id, target_id, static_cast(slot), cast_time); } void Perl_Mob_CastSpell(Mob* self, uint16 spell_id, uint16 target_id, int slot, int cast_time, int mana_cost) // @categories Spells and Disciplines { self->CastSpell(spell_id, target_id, static_cast(slot), cast_time, mana_cost); } // args differ from lua api (item_slot, timer, timer_duration not supported) void Perl_Mob_CastSpell(Mob* self, uint16 spell_id, uint16 target_id, int slot, int cast_time, int mana_cost, int16 resist_adjust) // @categories Spells and Disciplines { int16 res = resist_adjust; self->CastSpell(spell_id, target_id, static_cast(slot), cast_time, mana_cost, nullptr, 0xFFFFFFFF, 0xFFFFFFFF, 0, &res); } // these don't match lua api for default resist difficulty void Perl_Mob_SpellFinished(Mob* self, uint16 spell_id) // @categories Spells and Disciplines { self->SpellFinished(spell_id, self, EQ::spells::CastingSlot::Item, 0, -1, spells[spell_id].resist_difficulty); } void Perl_Mob_SpellFinished(Mob* self, uint16 spell_id, Mob* target) // @categories Spells and Disciplines { self->SpellFinished(spell_id, target, EQ::spells::CastingSlot::Item, 0, -1, spells[spell_id].resist_difficulty); } void Perl_Mob_SpellFinished(Mob* self, uint16 spell_id, Mob* target, int32 mana_cost) // @categories Spells and Disciplines { self->SpellFinished(spell_id, target, EQ::spells::CastingSlot::Item, mana_cost, -1, spells[spell_id].resist_difficulty); } void Perl_Mob_SpellFinished(Mob* self, uint16 spell_id, Mob* target, int32 mana_cost, uint16 resist_diff) // @categories Spells and Disciplines { self->SpellFinished(spell_id, target, EQ::spells::CastingSlot::Item, mana_cost, -1, resist_diff); } bool Perl_Mob_IsImmuneToSpell(Mob* self, uint16 spell_id, Mob* caster) // @categories Spells and Disciplines, Script Utility { return self->IsImmuneToSpell(spell_id, caster); } void Perl_Mob_BuffFadeBySpellID(Mob* self, uint16 spell_id) // @categories Script Utility, Spells and Disciplines { self->BuffFadeBySpellID(spell_id); } void Perl_Mob_BuffFadeByEffect(Mob* self, int effect_id) // @categories Script Utility, Spells and Disciplines { self->BuffFadeByEffect(effect_id); } void Perl_Mob_BuffFadeByEffect(Mob* self, int effect_id, int skip_slot) // @categories Script Utility, Spells and Disciplines { self->BuffFadeByEffect(effect_id, skip_slot); } void Perl_Mob_BuffFadeAll(Mob* self) // @categories Script Utility, Spells and Disciplines { self->BuffFadeAll(); } void Perl_Mob_BuffFadeBySlot(Mob* self, int slot) // @categories Script Utility, Spells and Disciplines { self->BuffFadeBySlot(slot); } void Perl_Mob_BuffFadeBySlot(Mob* self, int slot, bool recalc_bonuses) // @categories Script Utility, Spells and Disciplines { self->BuffFadeBySlot(slot, recalc_bonuses); } bool Perl_Mob_CanBuffStack(Mob* self, uint16 spell_id, uint8 caster_level) // @categories Script Utility, Spells and Disciplines { return self->CanBuffStack(spell_id, caster_level); } bool Perl_Mob_CanBuffStack(Mob* self, uint16 spell_id, uint8 caster_level, bool fail_if_overwritten) // @categories Script Utility, Spells and Disciplines { return self->CanBuffStack(spell_id, caster_level, fail_if_overwritten); } bool Perl_Mob_IsCasting(Mob* self) // @categories Script Utility { return self->IsCasting(); } int Perl_Mob_CastingSpellID(Mob* self) // @categories Spells and Disciplines { return self->CastingSpellID(); } void Perl_Mob_SetAppearance(Mob* self, int app) // @categories Stats and Attributes { self->SetAppearance(static_cast(app)); } void Perl_Mob_SetAppearance(Mob* self, int app, bool ignore_self) // @categories Stats and Attributes { self->SetAppearance(static_cast(app), ignore_self); } int Perl_Mob_GetAppearance(Mob* self) // @categories Stats and Attributes { return self->GetAppearance(); } int Perl_Mob_GetRunAnimSpeed(Mob* self) // @categories Stats and Attributes { return self->GetRunAnimSpeed(); } void Perl_Mob_SetRunAnimSpeed(Mob* self, int8 speed) // @categories Stats and Attributes { self->SetRunAnimSpeed(speed); } void Perl_Mob_SetPetID(Mob* self, uint16 new_pet_id) // @categories Pet { self->SetPetID(new_pet_id); } Mob* Perl_Mob_GetPet(Mob* self) // @categories Script Utility, Pet { return self->GetPet(); } int Perl_Mob_GetPetID(Mob* self) // @categories Script Utility, Pet { return self->GetPetID(); } void Perl_Mob_SetOwnerID(Mob* self, uint16 new_owner_id) // @categories Pet { self->SetOwnerID(new_owner_id); } uint16 Perl_Mob_GetOwnerID(Mob* self) // @categories Script Utility, Pet { return self->GetOwnerID(); } int Perl_Mob_GetPetType(Mob* self) // @categories Script Utility, Pet { return self->GetPetType(); } int Perl_Mob_GetBodyType(Mob* self) // @categories Stats and Attributes { return self->GetBodyType(); } void Perl_Mob_Stun(Mob* self, int duration) { self->Stun(duration); } void Perl_Mob_Spin(Mob* self) // @categories Script Utility { self->Spin(); } void Perl_Mob_Kill(Mob* self) // @categories Script Utility { self->Kill(); } void Perl_Mob_SetInvul(Mob* self, bool value) // @categories Script Utility { self->SetInvul(value); } bool Perl_Mob_GetInvul(Mob* self) // @categories Script Utility, Stats and Attributes { return self->GetInvul(); } void Perl_Mob_SetExtraHaste(Mob* self, int haste) // @categories Script Utility, Stats and Attributes { self->SetExtraHaste(haste); } int Perl_Mob_GetHaste(Mob* self) // @categories Stats and Attributes { return self->GetHaste(); } int Perl_Mob_GetHandToHandDamage(Mob* self) // @categories Stats and Attributes { return self->GetHandToHandDamage(); } bool Perl_Mob_CanThisClassDoubleAttack(Mob* self) // @categories Skills and Recipes { return self->CanThisClassDoubleAttack(); } bool Perl_Mob_CanThisClassDualWield(Mob* self) // @categories Skills and Recipes { return self->CanThisClassDualWield(); } bool Perl_Mob_CanThisClassRiposte(Mob* self) // @categories Skills and Recipes { return self->CanThisClassRiposte(); } bool Perl_Mob_CanThisClassDodge(Mob* self) // @categories Skills and Recipes { return self->CanThisClassDodge(); } bool Perl_Mob_CanThisClassParry(Mob* self) // @categories Skills and Recipes { return self->CanThisClassParry(); } int Perl_Mob_GetHandToHandDelay(Mob* self) // @categories Stats and Attributes { return self->GetHandToHandDelay(); } int Perl_Mob_GetClassLevelFactor(Mob* self) // @categories Stats and Attributes { return self->GetClassLevelFactor(); } void Perl_Mob_Mesmerize(Mob* self) // @categories Script Utility { self->Mesmerize(); } bool Perl_Mob_IsMezzed(Mob* self) // @categories Script Utility { return self->IsMezzed(); } bool Perl_Mob_IsStunned(Mob* self) // @categories Script Utility { return self->IsStunned(); } void Perl_Mob_StartEnrage(Mob* self) // @categories Script Utility { self->StartEnrage(); } bool Perl_Mob_IsEnraged(Mob* self) // @categories Script Utility { return self->IsEnraged(); } int Perl_Mob_GetReverseFactionCon(Mob* self, Mob* other) // @categories Faction { return self->GetReverseFactionCon(other); } bool Perl_Mob_IsAIControlled(Mob* self) // @categories Script Utility { return self->IsAIControlled(); } float Perl_Mob_GetAggroRange(Mob* self) // @categories Stats and Attributes, Hate and Aggro { return self->GetAggroRange(); } float Perl_Mob_GetAssistRange(Mob* self) // @categories Stats and Attributes, Hate and Aggro { return self->GetAssistRange(); } void Perl_Mob_SetPetOrder(Mob* self, int order) // @categories Pet { self->SetPetOrder(static_cast(order)); } int Perl_Mob_GetPetOrder(Mob* self) // @categories Script Utility, Pet { return self->GetPetOrder(); } bool Perl_Mob_IsRoamer(Mob* self) // @categories Script Utility, Spawns { return self->IsRoamer(); } bool Perl_Mob_IsRooted(Mob* self) // @categories Script Utility { return self->IsRooted(); } void Perl_Mob_AddToHateList(Mob* self, Mob* other) // @categories Hate and Aggro { self->AddToHateList(other); } void Perl_Mob_AddToHateList(Mob* self, Mob* other, int64_t hate) // @categories Hate and Aggro { self->AddToHateList(other, hate); } void Perl_Mob_AddToHateList(Mob* self, Mob* other, int64_t hate, int64_t damage) // @categories Hate and Aggro { self->AddToHateList(other, hate, damage); } void Perl_Mob_AddToHateList(Mob* self, Mob* other, int64_t hate, int64_t damage, bool yell_for_help) // @categories Hate and Aggro { self->AddToHateList(other, hate, damage, yell_for_help); } void Perl_Mob_AddToHateList(Mob* self, Mob* other, int64_t hate, int64_t damage, bool yell_for_help, bool frenzy) // @categories Hate and Aggro { self->AddToHateList(other, hate, damage, yell_for_help, frenzy); } void Perl_Mob_AddToHateList(Mob* self, Mob* other, int64_t hate, int64_t damage, bool yell_for_help, bool frenzy, bool buff_tic) // @categories Hate and Aggro { self->AddToHateList(other, hate, damage, yell_for_help, frenzy, buff_tic); } void Perl_Mob_SetHate(Mob* self, Mob* other) // @categories Hate and Aggro { self->SetHateAmountOnEnt(other); } void Perl_Mob_SetHate(Mob* self, Mob* other, int64_t hate) // @categories Hate and Aggro { self->SetHateAmountOnEnt(other, hate); } void Perl_Mob_SetHate(Mob* self, Mob* other, int64_t hate, int64_t damage) // @categories Hate and Aggro { self->SetHateAmountOnEnt(other, hate, damage); } void Perl_Mob_HalveAggro(Mob* self, Mob* other) // @categories Hate and Aggro { self->HalveAggro(other); } void Perl_Mob_DoubleAggro(Mob* self, Mob* other) // @categories Hate and Aggro { self->DoubleAggro(other); } int64_t Perl_Mob_GetHateAmount(Mob* self, Mob* target) // @categories Hate and Aggro { return self->GetHateAmount(target); } int64_t Perl_Mob_GetHateAmount(Mob* self, Mob* target, bool is_damage) // @categories Hate and Aggro { return self->GetHateAmount(target, is_damage); } int64_t Perl_Mob_GetDamageAmount(Mob* self, Mob* target) // @categories Stats and Attributes { return self->GetDamageAmount(target); } Mob* Perl_Mob_GetHateTop(Mob* self) // @categories Hate and Aggro { return self->GetHateTop(); } Bot* Perl_Mob_GetHateTopBot(Mob* self) // @categories Hate and Aggro { return self->GetHateTopBot(); } Client* Perl_Mob_GetHateTopClient(Mob* self) // @categories Hate and Aggro { return self->GetHateTopClient(); } NPC* Perl_Mob_GetHateTopNPC(Mob* self) // @categories Hate and Aggro { return self->GetHateTopNPC(); } Mob* Perl_Mob_GetHateDamageTop(Mob* self, Mob* other) // @categories Hate and Aggro { return self->GetHateDamageTop(other); } Mob* Perl_Mob_GetHateRandom(Mob* self) // @categories Hate and Aggro { return self->GetHateRandom(); } bool Perl_Mob_IsEngaged(Mob* self) // @categories Script Utility { return self->IsEngaged(); } bool Perl_Mob_HateSummon(Mob* self) // @categories Hate and Aggro { return self->HateSummon(); } void Perl_Mob_FaceTarget(Mob* self) // @categories Script Utility { self->FaceTarget(); } void Perl_Mob_FaceTarget(Mob* self, Mob* target) // @categories Script Utility { self->FaceTarget(target); } void Perl_Mob_SetHeading(Mob* self, float heading) // @categories Script Utility { self->SetHeading(heading); } void Perl_Mob_WipeHateList(Mob* self) // @categories Hate and Aggro { self->WipeHateList(); } bool Perl_Mob_CheckAggro(Mob* self, Mob* other) // @categories Hate and Aggro { return self->CheckAggro(other); } float Perl_Mob_CalculateHeadingToTarget(Mob* self, float x, float y) // @categories Script Utility { return self->CalculateHeadingToTarget(x, y); } void Perl_Mob_RunTo(Mob* self, float x, float y, float z) { self->RunTo(x, y, z); } void Perl_Mob_WalkTo(Mob* self, float x, float y, float z) { self->WalkTo(x, y, z); } void Perl_Mob_NavigateTo(Mob* self, float x, float y, float z) // @categories Script Utility { self->NavigateTo(x, y, z); } void Perl_Mob_StopNavigation(Mob* self) { self->StopNavigation(); } float Perl_Mob_CalculateDistance(Mob* self, float x, float y, float z) // @categories Script Utility { return self->CalculateDistance(x, y, z); } float Perl_Mob_CalculateDistance(Mob* self, Mob* mob) // @categories Script Utility { return self->CalculateDistance(mob); } void Perl_Mob_SendTo(Mob* self, float new_x, float new_y, float new_z) // @categories Script Utility { self->SendTo(new_x, new_y, new_z); } void Perl_Mob_SendToFixZ(Mob* self, float new_x, float new_y, float new_z) // @categories Script Utility { self->SendToFixZ(new_x, new_y, new_z); } void Perl_Mob_NPCSpecialAttacks(Mob* self, const char* abilities_string, int perm_tag) // @categories Stats and Attributes { self->NPCSpecialAttacks(abilities_string, perm_tag); } void Perl_Mob_NPCSpecialAttacks(Mob* self, const char* abilities_string, int perm_tag, bool reset) // @categories Stats and Attributes { self->NPCSpecialAttacks(abilities_string, perm_tag, reset); } void Perl_Mob_NPCSpecialAttacks(Mob* self, const char* abilities_string, int perm_tag, bool reset, bool remove) // @categories Stats and Attributes { self->NPCSpecialAttacks(abilities_string, perm_tag, reset, remove); } uint32_t Perl_Mob_DontHealMeBefore(Mob* self) // @categories Script Utility { return self->DontHealMeBefore(); } uint32_t Perl_Mob_DontBuffMeBefore(Mob* self) // @categories Script Utility { return self->DontBuffMeBefore(); } uint32_t Perl_Mob_DontDotMeBefore(Mob* self) // @categories Script Utility { return self->DontDotMeBefore(); } uint32_t Perl_Mob_DontRootMeBefore(Mob* self) // @categories Script Utility { return self->DontRootMeBefore(); } uint32_t Perl_Mob_DontSnareMeBefore(Mob* self) // @categories Script Utility { return self->DontSnareMeBefore(); } int Perl_Mob_GetResist(Mob* self, uint8_t type) // @categories Stats and Attributes { return self->GetResist(type); } bool Perl_Mob_Charmed(Mob* self) // @categories Script Utility { return self->Charmed(); } uint32_t Perl_Mob_GetLevelHP(Mob* self, uint8 level) // @categories Stats and Attributes { return self->GetLevelHP(level); } uint32_t Perl_Mob_GetZoneID(Mob* self) // @categories Zones { return self->GetZoneID(); } int Perl_Mob_CheckAggroAmount(Mob* self, uint16 spell_id) // @categories Hate and Aggro { return self->CheckAggroAmount(spell_id, nullptr); } int Perl_Mob_CheckHealAggroAmount(Mob* self, uint16 spell_id) // @categories Hate and Aggro { return self->CheckHealAggroAmount(spell_id, nullptr); } int Perl_Mob_CheckHealAggroAmount(Mob* self, uint16 spell_id, uint32 possible) // @categories Hate and Aggro { return self->CheckHealAggroAmount(spell_id, nullptr, possible); } uint32_t Perl_Mob_GetAA(Mob* self, uint32 rank_id) // @categories Alternative Advancement { return self->GetAA(rank_id); } uint32_t Perl_Mob_GetAAByAAID(Mob* self, uint32 aa_id) // @categories Alternative Advancement { return self->GetAAByAAID(aa_id); } bool Perl_Mob_SetAA(Mob* self, int aa_id, int points) // @categories Alternative Advancement, Script Utility { return self->SetAA(aa_id, points); } bool Perl_Mob_SetAA(Mob* self, int aa_id, int points, int charges) // @categories Alternative Advancement, Script Utility { return self->SetAA(aa_id, points, charges); } bool Perl_Mob_DivineAura(Mob* self) // @categories Spells and Disciplines { return self->DivineAura(); } void Perl_Mob_AddFeignMemory(Mob* self, Client* attacker) // @categories Script Utility { self->AddFeignMemory(attacker); } void Perl_Mob_RemoveFromFeignMemory(Mob* self, Client* attacker) // @categories Script Utility, Hate and Aggro { self->RemoveFromFeignMemory(attacker); } void Perl_Mob_ClearFeignMemory(Mob* self) // @categories Script Utility, Hate and Aggro { self->ClearFeignMemory(); } void Perl_Mob_SetOOCRegen(Mob* self, int64 new_ooc_regen) // @categories Stats and Attributes { self->SetOOCRegen(new_ooc_regen); } perl::array Perl_Mob_GetHateList(Mob* self) { perl::array result; auto hate_list = self->GetHateList(); for (struct_HateList* entry : hate_list) { result.push_back(entry); } return result; } void Perl_Mob_SignalClient(Mob* self, Client* client, int signal_id) // @categories Script Utility { client->Signal(signal_id); } bool Perl_Mob_CombatRange(Mob* self, Mob* target) // @categories Script Utility { return self->CombatRange(target); } void Perl_Mob_DoSpecialAttackDamage(Mob* self, Mob* other, int skill, int max_damage) // @categories Script Utility, Skills and Attributes { self->DoSpecialAttackDamage(other, static_cast(skill), max_damage); } void Perl_Mob_DoSpecialAttackDamage(Mob* self, Mob* other, int skill, int max_damage, int min_damage) // @categories Script Utility, Skills and Attributes { self->DoSpecialAttackDamage(other, static_cast(skill), max_damage, min_damage); } void Perl_Mob_DoSpecialAttackDamage(Mob* self, Mob* other, int skill, int max_damage, int min_damage, int hate_override) // @categories Script Utility, Skills and Attributes { self->DoSpecialAttackDamage(other, static_cast(skill), max_damage, min_damage, hate_override); } void Perl_Mob_DoSpecialAttackDamage(Mob* self, Mob* other, int skill, int max_damage, int min_damage, int hate_override, int reuse_time) // @categories Script Utility, Skills and Attributes { self->DoSpecialAttackDamage(other, static_cast(skill), max_damage, min_damage, hate_override, reuse_time); } bool Perl_Mob_CheckLoS(Mob* self, Mob* other) // @categories Script Utility { return self->CheckLosFN(other); } bool Perl_Mob_CheckLoSToLoc(Mob* self, float x, float y, float z) { return self->CheckLosFN(x, y, z, 6.0f); } bool Perl_Mob_CheckLoSToLoc(Mob* self, float x, float y, float z, float mob_size) // @categories Script Utility { return self->CheckLosFN(x, y, z, mob_size); } float Perl_Mob_FindGroundZ(Mob* self, float x, float y) { return self->GetGroundZ(x, y); } float Perl_Mob_FindGroundZ(Mob* self, float x, float y, float z_offset) // @categories Script Utility { return self->GetGroundZ(x, y, z_offset); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id) // @categories Script Utility { self->ProjectileAnimation(to, item_id); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id, bool is_arrow) // @categories Script Utility { self->ProjectileAnimation(to, item_id, is_arrow); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id, bool is_arrow, float speed) // @categories Script Utility { self->ProjectileAnimation(to, item_id, is_arrow, speed); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id, bool is_arrow, float speed, float angle) // @categories Script Utility { self->ProjectileAnimation(to, item_id, is_arrow, speed, angle); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id, bool is_arrow, float speed, float angle, float tilt) // @categories Script Utility { self->ProjectileAnimation(to, item_id, is_arrow, speed, angle, tilt); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id, bool is_arrow, float speed, float angle, float tilt, float arc) // @categories Script Utility { self->ProjectileAnimation(to, item_id, is_arrow, speed, angle, tilt, arc); } void Perl_Mob_ProjectileAnim(Mob* self, Mob* to, int item_id, bool is_arrow, float speed, float angle, float tilt, float arc, const char* idfile) // @categories Script Utility { self->ProjectileAnimation(to, item_id, is_arrow, speed, angle, tilt, arc, idfile); } bool Perl_Mob_HasNPCSpecialAtk(Mob* self, const char* ability_string) // @categories Stats and Attributes { return self->HasNPCSpecialAtk(ability_string); } // todo: SendAppearanceEffect should be changed to use a table for arguments void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1) // @categories Script Utility { self->SendAppearanceEffect(parm1, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, 0, 0, 0); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, 0, 0); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, 0); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get()); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2, uint32 slot3) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2, slot3); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2, uint32 slot3, uint32 ground3) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2, slot3, ground3); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2, uint32 slot3, uint32 ground3, uint32 slot4) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2, slot3, ground3, slot4); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2, uint32 slot3, uint32 ground3, uint32 slot4, uint32 ground4) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2, slot3, ground3, slot4, ground4); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2, uint32 slot3, uint32 ground3, uint32 slot4, uint32 ground4, uint32 slot5) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2, slot3, ground3, slot4, ground4, slot5); } void Perl_Mob_SendAppearanceEffect(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, perl::nullable client, uint32 slot1, uint32 ground1, uint32 slot2, uint32 ground2, uint32 slot3, uint32 ground3, uint32 slot4, uint32 ground4, uint32 slot5, uint32 ground5) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client.get(), slot1, ground1, slot2, ground2, slot3, ground3, slot4, ground4, slot5, ground5); } // todo: SendAppearanceEffectActor should be changed to use a table for arguments void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1) // @categories Script Utility { self->SendAppearanceEffect(parm1, 0, 0, 0, 0, nullptr, slot1, 0, 0, 0, 0, 0, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, 0, 0, 0, nullptr, slot1, 0, 0, 0, 0, 0, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, 0, 0, 0, nullptr, slot1, 0, slot2, 0, 0, 0, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, 0, 0, nullptr, slot1, 0, slot2, 0, 0, 0, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3, uint32 slot3) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, 0, 0, nullptr, slot1, 0, slot2, 0, slot3, 0, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3, uint32 slot3, int32 parm4) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, 0, nullptr, slot1, 0, slot2, 0, slot3, 0, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3, uint32 slot3, int32 parm4, uint32 slot4) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, 0, nullptr, slot1, 0, slot2, 0, slot3, 0, slot4, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3, uint32 slot3, int32 parm4, uint32 slot4, int32 parm5) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, nullptr, slot1, 0, slot2, 0, slot3, 0, slot4, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3, uint32 slot3, int32 parm4, uint32 slot4, int32 parm5, uint32 slot5) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, nullptr, slot1, 0, slot2, 0, slot3, 0, slot4, 0, slot5, 0); } void Perl_Mob_SendAppearanceEffectActor(Mob* self, int32 parm1, uint32 slot1, int32 parm2, uint32 slot2, int32 parm3, uint32 slot3, int32 parm4, uint32 slot4, int32 parm5, uint32 slot5, Client* client) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client, slot1, 0, slot2, 0, slot3, 0, slot4, 0, slot5, 0); } void Perl_Mob_SendAppearanceEffectGround(Mob* self, int32 parm1) // @categories Script Utility { self->SendAppearanceEffect(parm1, 0, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectGround(Mob* self, int32 parm1, int32 parm2) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, 0, 0, 0); } void Perl_Mob_SendAppearanceEffectGround(Mob* self, int32 parm1, int32 parm2, int32 parm3) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, 0, 0); } void Perl_Mob_SendAppearanceEffectGround(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, 0); } void Perl_Mob_SendAppearanceEffectGround(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5); } void Perl_Mob_SendAppearanceEffectGround(Mob* self, int32 parm1, int32 parm2, int32 parm3, int32 parm4, int32 parm5, Client* client) // @categories Script Utility { self->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client); } void Perl_Mob_RemoveAllAppearanceEffects(Mob* self) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = self->GetBeard(), .beard_color = self->GetBeardColor(), .drakkin_details = self->GetDrakkinDetails(), .drakkin_heritage = self->GetDrakkinHeritage(), .drakkin_tattoo = self->GetDrakkinTattoo(), .eye_color_one = self->GetEyeColor1(), .eye_color_two = self->GetEyeColor2(), .face = self->GetLuclinFace(), .gender_id = self->GetGender(), .hair = self->GetHairStyle(), .hair_color = self->GetHairColor(), .helmet_texture = self->GetHelmTexture(), .race_id = self->GetRace(), .send_effects = false, .size = self->GetSize(), .texture = self->GetTexture(), } ); self->ClearAppearanceEffects(); } void Perl_Mob_SetFlyMode(Mob* self, int flymode) // @categories Script Utility { self->SetFlyMode(static_cast(flymode)); } void Perl_Mob_SetTexture(Mob* self, uint8 texture) // @categories Stats and Attributes { self->SendIllusionPacket( AppearanceStruct{ .race_id = self->GetRace(), .texture = texture, } ); } void Perl_Mob_SetRace(Mob* self, uint16 race_id) // @categories Stats and Attributes { self->SendIllusionPacket( AppearanceStruct{ .race_id = race_id, } ); } void Perl_Mob_SetGender(Mob* self, uint8 gender_id) // @categories Stats and Attributes { self->SendIllusionPacket( AppearanceStruct{ .gender_id = gender_id, .race_id = self->GetRace(), } ); } // todo: SendIllusion should be sent in a hash like lua void Perl_Mob_SendIllusion(Mob *self, uint16 race_id) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .race_id = race_id, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .gender_id = gender_id, .race_id = race_id, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .gender_id = gender_id, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .gender_id = gender_id, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .face = face, .gender_id = gender_id, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .face = face, .gender_id = gender_id, .hair = hair, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard, uint8 beard_color) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard, uint8 beard_color, uint32 drakkin_heritage) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .drakkin_heritage = drakkin_heritage, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard, uint8 beard_color, uint32 drakkin_heritage, uint32 drakkin_tattoo) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .drakkin_heritage = drakkin_heritage, .drakkin_tattoo = drakkin_tattoo, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard, uint8 beard_color, uint32 drakkin_heritage, uint32 drakkin_tattoo, uint32 drakkin_details) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .drakkin_details = drakkin_details, .drakkin_heritage = drakkin_heritage, .drakkin_tattoo = drakkin_tattoo, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard, uint8 beard_color, uint32 drakkin_heritage, uint32 drakkin_tattoo, uint32 drakkin_details, float size) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .drakkin_details = drakkin_details, .drakkin_heritage = drakkin_heritage, .drakkin_tattoo = drakkin_tattoo, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .size = size, .texture = texture, } ); } void Perl_Mob_SendIllusion(Mob *self, uint16 race_id, uint8 gender_id, uint8 texture, uint8 helmet_texture, uint8 face, uint8 hair, uint8 hair_color, uint8 beard, uint8 beard_color, uint32 drakkin_heritage, uint32 drakkin_tattoo, uint32 drakkin_details, float size, Client *target) // @categories Script Utility { self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .drakkin_details = drakkin_details, .drakkin_heritage = drakkin_heritage, .drakkin_tattoo = drakkin_tattoo, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .size = size, .target = target, .texture = texture, } ); } void Perl_Mob_SendIllusionPacket(Mob* self, perl::reference table_ref) { perl::hash table = table_ref; uint16 race_id = table.exists("race") ? table["race"] : self->GetRace(); uint8 gender_id = table.exists("gender") ? table["gender"] : self->GetGender(); uint8 texture = table.exists("texture") ? table["texture"] : self->GetTexture(); uint8 helmet_texture = table.exists("helmtexture") ? table["helmtexture"] : self->GetHelmTexture(); uint8 hair_color = table.exists("haircolor") ? table["haircolor"] : self->GetHairColor(); uint8 beard_color = table.exists("beardcolor") ? table["beardcolor"] : self->GetBeardColor(); uint8 eye_color_one = table.exists("eyecolor1") ? table["eyecolor1"] : self->GetEyeColor1(); uint8 eye_color_two = table.exists("eyecolor2") ? table["eyecolor2"] : self->GetEyeColor2(); uint8 hair = table.exists("hairstyle") ? table["hairstyle"] : self->GetHairStyle(); uint8 face = table.exists("luclinface") ? table["luclinface"] : self->GetLuclinFace(); uint8 beard = table.exists("beard") ? table["beard"] : self->GetBeard(); uint8 aa_title = table.exists("aa_title") ? table["aa_title"] : 255; uint32 drakkin_heritage = table.exists("drakkin_heritage") ? table["drakkin_heritage"] : self->GetDrakkinHeritage(); uint32 drakkin_tattoo = table.exists("drakkin_tattoo") ? table["drakkin_tattoo"] : self->GetDrakkinTattoo(); uint32 drakkin_details = table.exists("drakkin_details") ? table["drakkin_details"] : self->GetDrakkinDetails(); float size = table.exists("size") ? table["size"] : self->GetSize(); bool send_appearance_effects = table.exists("send_appearance_effects") ? table["send_appearance_effects"] : true; Client *target = table.exists("target") ? static_cast(table["target"]) : nullptr; self->SendIllusionPacket( AppearanceStruct{ .beard = beard, .beard_color = beard_color, .drakkin_details = drakkin_details, .drakkin_heritage = drakkin_heritage, .drakkin_tattoo = drakkin_tattoo, .face = face, .gender_id = gender_id, .hair = hair, .hair_color = hair_color, .helmet_texture = helmet_texture, .race_id = race_id, .send_effects = send_appearance_effects, .size = size, .target = target, .texture = texture, } ); } void Perl_Mob_CameraEffect(Mob* self, uint32 duration) // @categories Script Utility { self->CameraEffect(duration, 0.03125f); } void Perl_Mob_CameraEffect(Mob* self, uint32 duration, float intensity) // @categories Script Utility { self->CameraEffect(duration, intensity); } void Perl_Mob_CameraEffect(Mob* self, uint32 duration, float intensity, Client* client) // @categories Script Utility { self->CameraEffect(duration, intensity, client); } void Perl_Mob_CameraEffect(Mob* self, uint32 duration, float intensity, perl::nullable client, bool global) // @categories Script Utility { self->CameraEffect(duration, intensity, client.get(), global); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect) // @categories Spells and Disciplines { self->SendSpellEffect(effect, 5000, 0, true, 3000); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, 0, true, 3000); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, true, 3000); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay, bool zone_wide) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, zone_wide, 3000); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay, bool zone_wide, uint32 unk20) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, zone_wide, unk20); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay, bool zone_wide, uint32 unk20, bool perm_effect) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, zone_wide, unk20, perm_effect); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay, bool zone_wide, uint32 unk20, bool perm_effect, Client* client) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, zone_wide, unk20, perm_effect, client); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay, bool zone_wide, uint32 unk20, bool perm_effect, perl::nullable client, uint32 caster_id) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, zone_wide, unk20, perm_effect, client.get(), caster_id); } void Perl_Mob_SpellEffect(Mob* self, uint32 effect, uint32 duration, uint32 finish_delay, bool zone_wide, uint32 unk20, bool perm_effect, perl::nullable client, uint32 caster_id, uint32 target_id) // @categories Spells and Disciplines { self->SendSpellEffect(effect, duration, finish_delay, zone_wide, unk20, perm_effect, client.get(), caster_id, target_id); } void Perl_Mob_TempName(Mob* self) // @categories Script Utility { self->TempName(); } void Perl_Mob_TempName(Mob* self, const char* name) // @categories Script Utility { self->TempName(name); } const int Perl_Mob_GetItemStat(Mob* self, uint32 item_id, std::string identifier) // @categories Inventory and Items, Stats and Attributes { return self->GetItemStat(item_id, identifier); } std::string Perl_Mob_GetGlobal(Mob* self, const char* varname) { return self->GetGlobal(varname); } void Perl_Mob_SetGlobal(Mob* self, const char* varname, const char* newvalue, int options, const char* duration) { self->SetGlobal(varname, newvalue, options, duration); } void Perl_Mob_SetGlobal(Mob* self, const char* varname, const char* newvalue, int options, const char* duration, Mob* other) { self->SetGlobal(varname, newvalue, options, duration, other); } void Perl_Mob_TarGlobal(Mob* self, const char* varname, const char* value, const char* duration, int npc_id, int char_id, int zone_id) { self->TarGlobal(varname, value, duration, npc_id, char_id, zone_id); } void Perl_Mob_DelGlobal(Mob* self, const char* var_name) { self->DelGlobal(var_name); } void Perl_Mob_SetSlotTint(Mob* self, uint8 material_slot, uint8 red_tint, uint8 green_tint, uint8 blue_tint) // @categories Stats and Attributes { self->SetSlotTint(material_slot, red_tint, green_tint, blue_tint); } void Perl_Mob_WearChange(Mob* self, uint8 material_slot, uint32 texture) // @categories Script Utility { self->WearChange(material_slot, texture); } void Perl_Mob_WearChange(Mob* self, uint8 material_slot, uint32 texture, uint32 color) // @categories Script Utility { self->WearChange(material_slot, texture, color); } void Perl_Mob_WearChange(Mob* self, uint8 material_slot, uint32 texture, uint32 color, uint32 hero_forge_model) // @categories Script Utility { self->WearChange(material_slot, texture, color, hero_forge_model); } void Perl_Mob_DoKnockback(Mob* self, Mob* caster, uint32 push_back, uint32 push_up) // @categories Script Utility { self->DoKnockback(caster, push_back, push_up); } void Perl_Mob_RemoveNimbusEffect(Mob* self, int effect_id) // @categories Script Utility { self->RemoveNimbusEffect(effect_id); } void Perl_Mob_SetRunning(Mob* self, bool value) // @categories Script Utility { self->SetRunning(value); } bool Perl_Mob_IsRunning(Mob* self) // @categories Script Utility { return self->IsRunning(); } void Perl_Mob_SetBodyType(Mob* self, int32 type) // @categories Stats and Attributes { self->SetBodyType(static_cast(type), false); } void Perl_Mob_SetBodyType(Mob* self, int32 type, bool overwrite_orig) // @categories Stats and Attributes { self->SetBodyType(static_cast(type), overwrite_orig); } void Perl_Mob_SetDeltas(Mob* self, float delta_x, float delta_y, float delta_z, float delta_h) // @categories Script Utility { auto delta = glm::vec4(delta_x, delta_y, delta_z, delta_h); self->SetDelta(delta); } void Perl_Mob_SetLD(Mob* self, bool value) // @categories Script Utility { self->SendAppearancePacket(AppearanceType::Linkdead, value); } void Perl_Mob_SetTargetable(Mob* self, bool on) // @categories Stats and Attributes { self->SetTargetable(on); } void Perl_Mob_ModSkillDmgTaken(Mob* self, int skill, int16 value) // @categories Skills and Recipes, Script Utility { self->ModSkillDmgTaken(static_cast(skill), value); } int Perl_Mob_GetModSkillDmgTaken(Mob* self, int skill_id) // @categories Stats and Attributes { return self->GetModSkillDmgTaken(static_cast(skill_id)); } int Perl_Mob_GetSkillDmgTaken(Mob* self, int skill_id) // @categories Skills and Recipes, Script Utility { return self->GetSkillDmgTaken(static_cast(skill_id)); } void Perl_Mob_SetAllowBeneficial(Mob* self, bool value) // @categories Stats and Attributes { self->SetAllowBeneficial(value); } bool Perl_Mob_GetAllowBeneficial(Mob* self) // @categories Stats and Attributes { return self->GetAllowBeneficial(); } bool Perl_Mob_IsBeneficialAllowed(Mob* self, Mob* target) // @categories Stats and Attributes { return self->IsBeneficialAllowed(target); } void Perl_Mob_ModVulnerability(Mob* self, uint8 resist, int16 value) // @categories Stats and Attributes { self->ModVulnerability(resist, value); } int Perl_Mob_GetModVulnerability(Mob* self, uint8 resist) // @categories Stats and Attributes { return self->GetModVulnerability(resist); } void Perl_Mob_DoMeleeSkillAttackDmg(Mob* self, Mob* target, uint16 weapon_damage, int skill, int16 chance_mod, int16 focus, uint8 can_riposte) // @categories Script Utility, Skills and Attributes { self->DoMeleeSkillAttackDmg(target, weapon_damage, static_cast(skill), chance_mod, focus, can_riposte); } void Perl_Mob_DoArcheryAttackDmg(Mob* self, Mob* target, uint16 weapon_damage, int16 chance_mod, int16 focus) // @categories Script Utility, Skills and Attributes { self->DoArcheryAttackDmg(target, nullptr, nullptr, weapon_damage, chance_mod, focus); } void Perl_Mob_DoThrowingAttackDmg(Mob* self, Mob* target, uint16 weapon_damage, int16 chance_mod, int16 focus) // @categories Script Utility, Skills and Attributes { self->DoThrowingAttackDmg(target, nullptr, nullptr, weapon_damage, chance_mod, focus); } void Perl_Mob_SetDisableMelee(Mob* self, bool value) // @categories Script Utility, Stats and Attributes { self->SetDisableMelee(value); } bool Perl_Mob_IsMeleeDisabled(Mob* self) // @categories Stats and Attributes { return self->IsMeleeDisabled(); } void Perl_Mob_SetFlurryChance(Mob* self, uint8 value) // @categories Stats and Attributes { self->SetFlurryChance(value); } int Perl_Mob_GetFlurryChance(Mob* self) // @categories Stats and Attributes { return self->GetFlurryChance(); } int Perl_Mob_GetSpellStat(Mob* self, uint32 spell_id, const char* stat) // @categories Spells and Disciplines { return self->GetSpellStat(spell_id, stat); } int Perl_Mob_GetSpellStat(Mob* self, uint32 spell_id, const char* stat, uint8 slot) // @categories Spells and Disciplines { return self->GetSpellStat(spell_id, stat, slot); } int Perl_Mob_GetBuffStatValueBySpell(Mob* self, int spell_id, const char* stat) // @categories Spells and Disciplines { return self->GetBuffStatValueBySpell(spell_id, stat); } int Perl_Mob_GetBuffStatValueBySlot(Mob* self, uint8 slot, const char* stat)// @categories Script Utility, Spells and Disciplines { return self->GetBuffStatValueBySlot(slot, stat); } int Perl_Mob_GetSpecialAbility(Mob* self, int ability) // @categories Stats and Attributes { return self->GetSpecialAbility(ability); } int Perl_Mob_GetSpecialAbilityParam(Mob* self, int ability, int param) // @categories Stats and Attributes { return self->GetSpecialAbilityParam(ability, param); } void Perl_Mob_SetSpecialAbility(Mob* self, int ability, int value) // @categories Stats and Attributes { self->SetSpecialAbility(ability, value); } void Perl_Mob_SetSpecialAbilityParam(Mob* self, int ability, int param, int value) // @categories Stats and Attributes { self->SetSpecialAbilityParam(ability, param, value); } void Perl_Mob_ClearSpecialAbilities(Mob* self)// @categories Script Utility { self->ClearSpecialAbilities(); } void Perl_Mob_ProcessSpecialAbilities(Mob* self, std::string str) // @categories Script Utility { self->ProcessSpecialAbilities(str); } bool Perl_Mob_CanClassEquipItem(Mob* self, uint32 item_id) // @categories Inventory and Items, Script Utility { return self->CanClassEquipItem(item_id); } bool Perl_Mob_IsFeared(Mob* self) // @categories Script Utility { return self->IsFeared(); } bool Perl_Mob_IsBlind(Mob* self) // @categories Script Utility { return self->IsBlind(); } int Perl_Mob_GetInvisibleLevel(Mob* self) // @categories Stats and Attributes { return self->GetInvisibleLevel(); } int Perl_Mob_GetInvisibleUndeadLevel(Mob* self) // @categories Stats and Attributes { return self->GetInvisibleUndeadLevel(); } int Perl_Mob_SeeInvisible(Mob* self) // @categories Stats and Attributes { return self->SeeInvisible(); } int Perl_Mob_SeeInvisibleUndead(Mob* self) // @categories Stats and Attributes { return self->SeeInvisibleUndead(); } bool Perl_Mob_SeeHide(Mob* self) // @categories Stats and Attributes { return self->SeeHide(); } bool Perl_Mob_SeeImprovedHide(Mob* self) // @categories Stats and Attributes { return self->SeeImprovedHide(); } int Perl_Mob_GetNimbusEffect1(Mob* self) // @categories Script Utility { return self->GetNimbusEffect1(); } int Perl_Mob_GetNimbusEffect2(Mob* self) // @categories Script Utility { return self->GetNimbusEffect2(); } int Perl_Mob_GetNimbusEffect3(Mob* self) // @categories Script Utility { return self->GetNimbusEffect3(); } bool Perl_Mob_IsTargetable(Mob* self) // @categories Stats and Attributes { return self->IsTargetable(); } bool Perl_Mob_HasShieldEquipped(Mob* self) // @categories Stats and Attributes { return self->HasShieldEquipped(); } bool Perl_Mob_HasTwoHandBluntEquipped(Mob* self) // @categories Stats and Attributes { return self->HasTwoHandBluntEquipped(); } bool Perl_Mob_HasTwoHanderEquipped(Mob* self) // @categories Stats and Attributes { return self->HasTwoHanderEquipped(); } int32_t Perl_Mob_GetHerosForgeModel(Mob* self, uint8_t material_slot) // @categories Stats and Attributes { return self->GetHerosForgeModel(material_slot); } bool Perl_Mob_IsEliteMaterialItem(Mob* self, uint8_t material_slot) // @categories Script Utility, Stats and Attributes { return self->IsEliteMaterialItem(material_slot); } float Perl_Mob_GetBaseSize(Mob* self) // @categories Stats and Attributes { return self->GetBaseSize(); } bool Perl_Mob_HasOwner(Mob* self) // @categories Pet { return self->HasOwner(); } bool Perl_Mob_IsPet(Mob* self) // @categories Pet { return self->IsPet(); } bool Perl_Mob_HasPet(Mob* self) // @categories Pet { return self->HasPet(); } void Perl_Mob_RemovePet(Mob* self) // @categories Pet { self->SetPet(nullptr); } void Perl_Mob_SetPet(Mob* self, Mob* new_pet) // @categories Pet { self->SetPet(new_pet); } bool Perl_Mob_IsSilenced(Mob* self) // @categories Script Utility { return self->IsSilenced(); } bool Perl_Mob_IsAmnesiad(Mob* self) // @categories Script Utility { return self->IsAmnesiad(); } int32_t Perl_Mob_GetMeleeMitigation(Mob* self) // @categories Stats and Attributes { return self->GetMeleeMitigation(); } void Perl_Mob_TryMoveAlong(Mob* self, float distance, float angle) // @categories Script Utility { self->TryMoveAlong(distance, angle); } void Perl_Mob_TryMoveAlong(Mob* self, float distance, float angle, bool send) // @categories Script Utility { self->TryMoveAlong(distance, angle, send); } std::string Perl_Mob_GetClassName(Mob* self) { return GetClassIDName(self->GetClass()); } std::string Perl_Mob_GetRaceName(Mob* self) { return GetRaceIDName(self->GetRace()); } void Perl_Mob_DeleteBucket(Mob* self, std::string bucket_name) // @categories Script Utility { self->DeleteBucket(bucket_name); } std::string Perl_Mob_GetBucket(Mob* self, std::string bucket_name) // @categories Script Utility { return self->GetBucket(bucket_name); } std::string Perl_Mob_GetBucketExpires(Mob* self, std::string bucket_name) // @categories Script Utility { return self->GetBucketExpires(bucket_name); } std::string Perl_Mob_GetBucketKey(Mob* self) // @categories Script Utility { return {}; } std::string Perl_Mob_GetBucketRemaining(Mob* self, std::string bucket_name) // @categories Script Utility { return self->GetBucketRemaining(bucket_name); } void Perl_Mob_SetBucket(Mob* self, std::string bucket_name, std::string bucket_value) // @categories Script Utility { self->SetBucket(bucket_name, bucket_value); } void Perl_Mob_SetBucket(Mob* self, std::string bucket_name, std::string bucket_value, std::string expiration) // @categories Script Utility { self->SetBucket(bucket_name, bucket_value, expiration); } bool Perl_Mob_IsHorse(Mob* self) // @categories Script Utility { return self->IsHorse(); } perl::array Perl_Mob_GetHateListByDistance(Mob* self) // @categories Hate and Aggro { perl::array result; auto h_list = self->GetFilteredHateList(); for (auto h : h_list) { result.push_back(h); } return result; } perl::array Perl_Mob_GetHateListByDistance(Mob* self, uint32 distance) // @categories Hate and Aggro { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::All, distance); for (auto h : h_list) { result.push_back(h); } return result; } Mob* Perl_Mob_GetHateClosest(Mob* self) // @categories Hate and Aggro { return self->GetHateClosest(); } Mob* Perl_Mob_GetHateClosest(Mob* self, bool skip_mezzed) // @categories Hate and Aggro { return self->GetHateClosest(skip_mezzed); } Bot* Perl_Mob_GetHateClosestBot(Mob* self) // @categories Hate and Aggro { return self->GetHateClosestBot(); } Bot* Perl_Mob_GetHateClosestBot(Mob* self, bool skip_mezzed) // @categories Hate and Aggro { return self->GetHateClosestBot(skip_mezzed); } Client* Perl_Mob_GetHateClosestClient(Mob* self) // @categories Hate and Aggro { return self->GetHateClosestClient(); } Client* Perl_Mob_GetHateClosestClient(Mob* self, bool skip_mezzed) // @categories Hate and Aggro { return self->GetHateClosestClient(skip_mezzed); } NPC* Perl_Mob_GetHateClosestNPC(Mob* self) // @categories Hate and Aggro { return self->GetHateClosestNPC(); } NPC* Perl_Mob_GetHateClosestNPC(Mob* self, bool skip_mezzed) // @categories Hate and Aggro { return self->GetHateClosestNPC(skip_mezzed); } std::string Perl_Mob_GetLastName(Mob* self) // @categories Script Utility { return self->GetLastName(); } bool Perl_Mob_CanRaceEquipItem(Mob* self, uint32 item_id) // @categories Inventory and Items, Script Utility { return self->CanRaceEquipItem(item_id); } void Perl_Mob_RemoveAllNimbusEffects(Mob* self) // @categories Script Utility { self->RemoveAllNimbusEffects(); } void Perl_Mob_AddNimbusEffect(Mob* self, int effect_id) // @categories Script Utility { self->AddNimbusEffect(effect_id); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id) // @categories Spells and Disciplines { self->ShieldAbility(target_id); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id, int32 shielder_max_distance) // @categories Spells and Disciplines { self->ShieldAbility(target_id, shielder_max_distance); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id, int32 shielder_max_distance, int32 shield_duration) // @categories Spells and Disciplines { self->ShieldAbility(target_id, shielder_max_distance, shield_duration); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id, int32 shielder_max_distance, int32 shield_duration, int32 shield_target_mitigation) // @categories Spells and Disciplines { self->ShieldAbility(target_id, shielder_max_distance, shield_duration, shield_target_mitigation); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id, int32 shielder_max_distance, int32 shield_duration, int32 shield_target_mitigation, int32 shielder_mitigation) // @categories Spells and Disciplines { self->ShieldAbility(target_id, shielder_max_distance, shield_duration, shield_target_mitigation, shielder_mitigation); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id, int32 shielder_max_distance, int32 shield_duration, int32 shield_target_mitigation, int32 shielder_mitigation, bool use_aa) // @categories Spells and Disciplines { self->ShieldAbility(target_id, shielder_max_distance, shield_duration, shield_target_mitigation, shielder_mitigation, use_aa); } void Perl_Mob_ShieldAbility(Mob* self, uint32 target_id, int32 shielder_max_distance, int32 shield_duration, int32 shield_target_mitigation, int32 shielder_mitigation, bool use_aa, bool can_shield_npc) // @categories Spells and Disciplines { self->ShieldAbility(target_id, shielder_max_distance, shield_duration, shield_target_mitigation, shielder_mitigation, use_aa, can_shield_npc); } Client* Perl_Mob_GetHateRandomClient(Mob* self) // @categories Hate and Aggro { return self->GetHateRandomClient(); } NPC* Perl_Mob_GetHateRandomNPC(Mob* self) // @categories Hate and Aggro { return self->GetHateRandomNPC(); } void Perl_Mob_SetBuffDuration(Mob* self, int spell_id) // @categories Script Utility, Spells and Disciplines { self->SetBuffDuration(spell_id); } void Perl_Mob_SetBuffDuration(Mob* self, int spell_id, int duration) // @categories Script Utility, Spells and Disciplines { self->SetBuffDuration(spell_id, duration); } void Perl_Mob_SetBuffDuration(Mob* self, int spell_id, int duration, int level) // @categories Script Utility, Spells and Disciplines { self->SetBuffDuration(spell_id, duration, level); } void Perl_Mob_ApplySpellBuff(Mob* self, int spell_id) // @categories Script Utility, Spells and Disciplines { self->ApplySpellBuff(spell_id); } void Perl_Mob_ApplySpellBuff(Mob* self, int spell_id, int duration) // @categories Script Utility, Spells and Disciplines { self->ApplySpellBuff(spell_id, duration); } void Perl_Mob_ApplySpellBuff(Mob* self, int spell_id, int duration, int level) // @categories Script Utility, Spells and Disciplines { self->ApplySpellBuff(spell_id, duration, level); } int Perl_Mob_GetSkillDmgAmt(Mob* self, int skill_id) { return self->GetSkillDmgAmt(skill_id); } Mob* Perl_Mob_GetUltimateOwner(Mob* self) // @categories Script Utility, Pet { return self->GetUltimateOwner(); } bool Perl_Mob_RandomizeFeatures(Mob* self) // @categories Script Utility { return self->RandomizeFeatures(); } bool Perl_Mob_RandomizeFeatures(Mob* self, bool send_illusion) // @categories Script Utility { return self->RandomizeFeatures(send_illusion); } bool Perl_Mob_RandomizeFeatures(Mob* self, bool send_illusion, bool save_variables) // @categories Script Utility { return self->RandomizeFeatures(send_illusion, save_variables); } void Perl_Mob_CloneAppearance(Mob* self, Mob* other) // @categories Script Utility { self->CloneAppearance(other); } void Perl_Mob_CloneAppearance(Mob* self, Mob* other, bool clone_name) // @categories Script Utility { self->CloneAppearance(other, clone_name); } Mob* Perl_Mob_GetOwner(Mob* self) // @categories Script Utility, Pet { return self->GetOwner(); } void Perl_Mob_DamageArea(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage); } void Perl_Mob_DamageArea(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::All); } void Perl_Mob_DamageAreaPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::All, true); } void Perl_Mob_DamageAreaPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::All, true); } void Perl_Mob_DamageAreaClients(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::Clients); } void Perl_Mob_DamageAreaClients(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::Clients); } void Perl_Mob_DamageAreaClientsPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::Clients, true); } void Perl_Mob_DamageAreaClientsPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::Clients, true); } void Perl_Mob_DamageAreaNPCs(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::NPCs); } void Perl_Mob_DamageAreaNPCs(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::NPCs); } void Perl_Mob_DamageAreaNPCsPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::NPCs, true); } void Perl_Mob_DamageAreaNPCsPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::NPCs, true); } void Perl_Mob_DamageHateList(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage); } void Perl_Mob_DamageHateList(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::All); } void Perl_Mob_DamageHateListPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::All, true); } void Perl_Mob_DamageHateListPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::All, true); } void Perl_Mob_DamageHateListClients(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::Clients); } void Perl_Mob_DamageHateListClients(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::Clients); } void Perl_Mob_DamageHateListClientsPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::Clients, true); } void Perl_Mob_DamageHateListClientsPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::Clients, true); } void Perl_Mob_DamageHateListNPCs(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::NPCs); } void Perl_Mob_DamageHateListNPCs(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::NPCs); } void Perl_Mob_DamageHateListNPCsPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::NPCs, true); } void Perl_Mob_DamageHateListNPCsPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::NPCs, true); } perl::array Perl_Mob_GetHateListClients(Mob* self) { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::Clients); for (auto h : h_list) { result.push_back(h); } return result; } perl::array Perl_Mob_GetHateListClients(Mob* self, uint32 distance) { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::Clients, distance); for (auto h : h_list) { result.push_back(h); } return result; } perl::array Perl_Mob_GetHateListNPCs(Mob* self) { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::NPCs); for (auto h : h_list) { result.push_back(h); } return result; } perl::array Perl_Mob_GetHateListNPCs(Mob* self, uint32 distance) { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::NPCs, distance); for (auto h : h_list) { result.push_back(h); } return result; } bool Perl_Mob_ClearEntityVariables(Mob* self) // @categories Script Utility { return self->ClearEntityVariables(); } bool Perl_Mob_DeleteEntityVariable(Mob* self, std::string variable_name) // @categories Script Utility { return self->DeleteEntityVariable(variable_name); } bool Perl_Mob_EntityVariableExists(Mob* self, std::string variable_name) // @categories Script Utility { return self->EntityVariableExists(variable_name); } std::string Perl_Mob_GetEntityVariable(Mob* self, std::string variable_name) // @categories Script Utility { return self->GetEntityVariable(variable_name); } perl::array Perl_Mob_GetEntityVariables(Mob* self) // @categories Script Utility { perl::array a; const auto& l = self->GetEntityVariables(); for (const auto& v : l) { a.push_back(v); } return a; } void Perl_Mob_SetEntityVariable(Mob* self, std::string variable_name, std::string variable_value) // @categories Script Utility { self->SetEntityVariable(variable_name, variable_value); } void Perl_Mob_CopyHateList(Mob* self, Mob* to) { self->CopyHateList(to); } bool Perl_Mob_IsAttackAllowed(Mob* self, Mob* target) { return self->IsAttackAllowed(target); } bool Perl_Mob_IsAttackAllowed(Mob* self, Mob* target, bool is_spell_attack) { return self->IsAttackAllowed(target, is_spell_attack); } uint32 Perl_Mob_BuffCount(Mob* self) // @categories Script Utility, Spells and Disciplines { return self->BuffCount(); } uint32 Perl_Mob_BuffCount(Mob* self, bool is_beneficial) // @categories Script Utility, Spells and Disciplines { return self->BuffCount(is_beneficial); } uint32 Perl_Mob_BuffCount(Mob* self, bool is_beneficial, bool is_detrimental) // @categories Script Utility, Spells and Disciplines { return self->BuffCount(is_beneficial, is_detrimental); } void Perl_Mob_DamageAreaBots(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::Bots); } void Perl_Mob_DamageAreaBots(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::Bots); } void Perl_Mob_DamageAreaBotsPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageArea(damage, 0, EntityFilterType::Bots, true); } void Perl_Mob_DamageAreaBotsPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageArea(damage, distance, EntityFilterType::Bots, true); } void Perl_Mob_DamageHateListBots(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::Bots); } void Perl_Mob_DamageHateListBots(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::Bots); } void Perl_Mob_DamageHateListBotsPercentage(Mob* self, int64 damage) // @categories Hate and Aggro { self->DamageHateList(damage, 0, EntityFilterType::Bots, true); } void Perl_Mob_DamageHateListBotsPercentage(Mob* self, int64 damage, uint32 distance) // @categories Hate and Aggro { self->DamageHateList(damage, distance, EntityFilterType::Bots, true); } perl::array Perl_Mob_GetHateListBots(Mob* self) { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::Bots); for (auto h : h_list) { result.push_back(h); } return result; } perl::array Perl_Mob_GetHateListBots(Mob* self, uint32 distance) { perl::array result; auto h_list = self->GetFilteredHateList(EntityFilterType::Bots, distance); for (auto h : h_list) { result.push_back(h); } return result; } Bot* Perl_Mob_CastToBot(Mob* self) { return self->CastToBot(); } Bot* Perl_Mob_GetHateRandomBot(Mob* self) // @categories Hate and Aggro { return self->GetHateRandomBot(); } bool Perl_Mob_IsFindable(Mob* self) // @categories Script Utility { return self->IsFindable(); } bool Perl_Mob_IsTrackable(Mob* self) // @categories Script Utility { return self->IsTrackable(); } bool Perl_Mob_IsBerserk(Mob* self) // @categories Script Utility { return self->IsBerserk(); } float Perl_Mob_GetDefaultRaceSize(Mob* self) // @categories Script Utility { return self->GetDefaultRaceSize(); } float Perl_Mob_GetDefaultRaceSize(Mob* self, int race_id) // @categories Script Utility { return self->GetDefaultRaceSize(race_id); } float Perl_Mob_GetDefaultRaceSize(Mob* self, int race_id, int gender_id) // @categories Script Utility { return self->GetDefaultRaceSize(race_id, gender_id); } uint32 Perl_Mob_GetRemainingTimeMS(Mob* self, const char* timer_name) { return quest_manager.getremainingtimeMS(timer_name, self); } uint32 Perl_Mob_GetTimerDurationMS(Mob* self, const char* timer_name) { return quest_manager.gettimerdurationMS(timer_name, self); } bool Perl_Mob_HasTimer(Mob* self, const char* timer_name) { return quest_manager.hastimer(timer_name, self); } bool Perl_Mob_IsPausedTimer(Mob* self, const char* timer_name) { return quest_manager.ispausedtimer(timer_name, self); } void Perl_Mob_PauseTimer(Mob* self, const char* timer_name) { quest_manager.pausetimer(timer_name, self); } void Perl_Mob_ResumeTimer(Mob* self, const char* timer_name) { quest_manager.resumetimer(timer_name, self); } void Perl_Mob_SetTimer(Mob* self, const char* timer_name, int seconds) { quest_manager.settimer(timer_name, seconds, self); } void Perl_Mob_SetTimerMS(Mob* self, const char* timer_name, int milliseconds) { quest_manager.settimerMS(timer_name, milliseconds, self); } void Perl_Mob_StopAllTimers(Mob* self) { quest_manager.stopalltimers(self); } void Perl_Mob_StopTimer(Mob* self, const char* timer_name) { quest_manager.stoptimer(timer_name, self); } perl::array Perl_Mob_GetBuffSpellIDs(Mob* self) { perl::array l; const auto& b = self->GetBuffSpellIDs(); for (const auto& e : b) { l.push_back(e); } return l; } bool Perl_Mob_HasSpellEffect(Mob* self, int effect_id) { return self->HasSpellEffect(effect_id); } perl::array Perl_Mob_GetCloseMobList(Mob* self) { perl::array result; const auto& l = entity_list.GetCloseMobList(self); result.reserve(l.size()); for (const auto& e : l) { result.push_back(e.second); } return result; } perl::array Perl_Mob_GetCloseMobList(Mob* self, float distance) { perl::array result; const auto& l = entity_list.GetCloseMobList(self, distance); result.reserve(l.size()); for (const auto& e : l) { if (self->CalculateDistance(e.second) <= distance) { result.push_back(e.second); } } return result; } perl::array Perl_Mob_GetCloseMobList(Mob* self, float distance, bool ignore_self) { perl::array result; const auto& l = entity_list.GetCloseMobList(self, distance); result.reserve(l.size()); for (const auto& e : l) { if (ignore_self && e.second == self) { continue; } if (self->CalculateDistance(e.second) <= distance) { result.push_back(e.second); } } return result; } StatBonuses* Perl_Mob_GetAABonuses(Mob* self) { return self->GetAABonusesPtr(); } StatBonuses* Perl_Mob_GetItemBonuses(Mob* self) { return self->GetItemBonusesPtr(); } StatBonuses* Perl_Mob_GetSpellBonuses(Mob* self) { return self->GetSpellBonusesPtr(); } std::string Perl_Mob_GetClassPlural(Mob* self) { return self->GetClassPlural(); } uint32 Perl_Mob_GetMobTypeIdentifier(Mob* self) { return self->GetMobTypeIdentifier(); } std::string Perl_Mob_GetRacePlural(Mob* self) { return self->GetRacePlural(); } void perl_register_mob() { perl::interpreter perl(PERL_GET_THX); auto package = perl.new_class("Mob"); package.add("AddFeignMemory", &Perl_Mob_AddFeignMemory); package.add("AddNimbusEffect", &Perl_Mob_AddNimbusEffect); package.add("AddToHateList", (void(*)(Mob*, Mob*))&Perl_Mob_AddToHateList); package.add("AddToHateList", (void(*)(Mob*, Mob*, int64_t))&Perl_Mob_AddToHateList); package.add("AddToHateList", (void(*)(Mob*, Mob*, int64_t, int64_t))&Perl_Mob_AddToHateList); package.add("AddToHateList", (void(*)(Mob*, Mob*, int64_t, int64_t, bool))&Perl_Mob_AddToHateList); package.add("AddToHateList", (void(*)(Mob*, Mob*, int64_t, int64_t, bool, bool))&Perl_Mob_AddToHateList); package.add("AddToHateList", (void(*)(Mob*, Mob*, int64_t, int64_t, bool, bool, bool))&Perl_Mob_AddToHateList); package.add("ApplySpellBuff", (void(*)(Mob*, int))&Perl_Mob_ApplySpellBuff); package.add("ApplySpellBuff", (void(*)(Mob*, int, int))&Perl_Mob_ApplySpellBuff); package.add("ApplySpellBuff", (void(*)(Mob*, int, int, int))&Perl_Mob_ApplySpellBuff); package.add("Attack", (bool(*)(Mob*, Mob*))&Perl_Mob_Attack); package.add("Attack", (bool(*)(Mob*, Mob*, int))&Perl_Mob_Attack); package.add("Attack", (bool(*)(Mob*, Mob*, int, bool))&Perl_Mob_Attack); package.add("BehindMob", (bool(*)(Mob*, Mob*))&Perl_Mob_BehindMob); package.add("BehindMob", (bool(*)(Mob*, Mob*, float))&Perl_Mob_BehindMob); package.add("BehindMob", (bool(*)(Mob*, Mob*, float, float))&Perl_Mob_BehindMob); package.add("BuffCount", (uint32(*)(Mob*))&Perl_Mob_BuffCount); package.add("BuffCount", (uint32(*)(Mob*, bool))&Perl_Mob_BuffCount); package.add("BuffCount", (uint32(*)(Mob*, bool, bool))&Perl_Mob_BuffCount); package.add("BuffFadeAll", &Perl_Mob_BuffFadeAll); package.add("BuffFadeByEffect", (void(*)(Mob*, int))&Perl_Mob_BuffFadeByEffect); package.add("BuffFadeByEffect", (void(*)(Mob*, int, int))&Perl_Mob_BuffFadeByEffect); package.add("BuffFadeBySlot", (void(*)(Mob*, int))&Perl_Mob_BuffFadeBySlot); package.add("BuffFadeBySlot", (void(*)(Mob*, int, bool))&Perl_Mob_BuffFadeBySlot); package.add("BuffFadeBySpellID", &Perl_Mob_BuffFadeBySpellID); package.add("CalculateDistance", (float(*)(Mob*, float, float, float))&Perl_Mob_CalculateDistance); package.add("CalculateDistance", (float(*)(Mob*, Mob*))&Perl_Mob_CalculateDistance); package.add("CalculateHeadingToTarget", &Perl_Mob_CalculateHeadingToTarget); package.add("CameraEffect", (void(*)(Mob*, uint32))&Perl_Mob_CameraEffect); package.add("CameraEffect", (void(*)(Mob*, uint32, float))&Perl_Mob_CameraEffect); package.add("CameraEffect", (void(*)(Mob*, uint32, float, Client*))&Perl_Mob_CameraEffect); package.add("CameraEffect", (void(*)(Mob*, uint32, float, perl::nullable, bool))&Perl_Mob_CameraEffect); package.add("CanBuffStack", (bool(*)(Mob*, uint16, uint8))&Perl_Mob_CanBuffStack); package.add("CanBuffStack", (bool(*)(Mob*, uint16, uint8, bool))&Perl_Mob_CanBuffStack); package.add("CanClassEquipItem", &Perl_Mob_CanClassEquipItem); package.add("CanRaceEquipItem", &Perl_Mob_CanRaceEquipItem); package.add("CanThisClassDodge", &Perl_Mob_CanThisClassDodge); package.add("CanThisClassDoubleAttack", &Perl_Mob_CanThisClassDoubleAttack); package.add("CanThisClassDualWield", &Perl_Mob_CanThisClassDualWield); package.add("CanThisClassParry", &Perl_Mob_CanThisClassParry); package.add("CanThisClassRiposte", &Perl_Mob_CanThisClassRiposte); package.add("CastSpell", (void(*)(Mob*, uint16, uint16))&Perl_Mob_CastSpell); package.add("CastSpell", (void(*)(Mob*, uint16, uint16, int))&Perl_Mob_CastSpell); package.add("CastSpell", (void(*)(Mob*, uint16, uint16, int, int))&Perl_Mob_CastSpell); package.add("CastSpell", (void(*)(Mob*, uint16, uint16, int, int, int))&Perl_Mob_CastSpell); package.add("CastSpell", (void(*)(Mob*, uint16, uint16, int, int, int, int16))&Perl_Mob_CastSpell); package.add("CastToBot", &Perl_Mob_CastToBot); package.add("CastToClient", &Perl_Mob_CastToClient); package.add("CastToCorpse", &Perl_Mob_CastToCorpse); package.add("CastToMob", &Perl_Mob_CastToMob); package.add("CastToNPC", &Perl_Mob_CastToNPC); package.add("CastingSpellID", &Perl_Mob_CastingSpellID); package.add("ChangeSize", (void(*)(Mob*, float))&Perl_Mob_ChangeSize); package.add("ChangeSize", (void(*)(Mob*, float, bool))&Perl_Mob_ChangeSize); package.add("Charmed", &Perl_Mob_Charmed); package.add("CheckAggro", &Perl_Mob_CheckAggro); package.add("CheckAggroAmount", &Perl_Mob_CheckAggroAmount); package.add("CheckHealAggroAmount", (int(*)(Mob*, uint16))&Perl_Mob_CheckHealAggroAmount); package.add("CheckHealAggroAmount", (int(*)(Mob*, uint16, uint32))&Perl_Mob_CheckHealAggroAmount); package.add("CheckLoS", &Perl_Mob_CheckLoS); package.add("CheckLoSToLoc", (bool(*)(Mob*, float, float, float))&Perl_Mob_CheckLoSToLoc); package.add("CheckLoSToLoc", (bool(*)(Mob*, float, float, float, float))&Perl_Mob_CheckLoSToLoc); package.add("ClearEntityVariables", &Perl_Mob_ClearEntityVariables); package.add("ClearFeignMemory", &Perl_Mob_ClearFeignMemory); package.add("ClearSpecialAbilities", &Perl_Mob_ClearSpecialAbilities); 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); package.add("Damage", (void(*)(Mob*, Mob*, int64, uint16_t, int, bool, int8_t, bool))&Perl_Mob_Damage); package.add("DamageArea", (void(*)(Mob*, int64))&Perl_Mob_DamageArea); package.add("DamageArea", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageArea); package.add("DamageAreaBots", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaBots); package.add("DamageAreaBots", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaBots); package.add("DamageAreaBotsPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaBotsPercentage); package.add("DamageAreaBotsPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaBotsPercentage); package.add("DamageAreaClients", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaClients); package.add("DamageAreaClients", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaClients); package.add("DamageAreaClientsPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaClientsPercentage); package.add("DamageAreaClientsPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaClientsPercentage); package.add("DamageAreaNPCs", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaNPCs); package.add("DamageAreaNPCs", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaNPCs); package.add("DamageAreaNPCsPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaNPCsPercentage); package.add("DamageAreaNPCsPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaNPCsPercentage); package.add("DamageAreaPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageAreaPercentage); package.add("DamageAreaPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageAreaPercentage); package.add("DamageHateList", (void(*)(Mob*, int64))&Perl_Mob_DamageHateList); package.add("DamageHateList", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateList); package.add("DamageHateListBots", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListBots); package.add("DamageHateListBots", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListBots); package.add("DamageHateListBotsPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListBotsPercentage); package.add("DamageHateListBotsPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListBotsPercentage); package.add("DamageHateListClients", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListClients); package.add("DamageHateListClients", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListClients); package.add("DamageHateListClientsPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListClientsPercentage); package.add("DamageHateListClientsPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListClientsPercentage); package.add("DamageHateListNPCs", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListNPCs); package.add("DamageHateListNPCs", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListNPCs); package.add("DamageHateListNPCsPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListNPCsPercentage); package.add("DamageHateListNPCsPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListNPCsPercentage); package.add("DamageHateListPercentage", (void(*)(Mob*, int64))&Perl_Mob_DamageHateListPercentage); package.add("DamageHateListPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListPercentage); package.add("DelGlobal", &Perl_Mob_DelGlobal); package.add("DeleteBucket", &Perl_Mob_DeleteBucket); package.add("DeleteEntityVariable", &Perl_Mob_DeleteEntityVariable); package.add("Depop", (void(*)(Mob*))&Perl_Mob_Depop); package.add("Depop", (void(*)(Mob*, bool))&Perl_Mob_Depop); package.add("DivineAura", &Perl_Mob_DivineAura); package.add("DoAnim", (void(*)(Mob*, int))&Perl_Mob_DoAnim); package.add("DoAnim", (void(*)(Mob*, int, int))&Perl_Mob_DoAnim); package.add("DoAnim", (void(*)(Mob*, int, int, bool))&Perl_Mob_DoAnim); package.add("DoAnim", (void(*)(Mob*, int, int, bool, int))&Perl_Mob_DoAnim); package.add("DoArcheryAttackDmg", &Perl_Mob_DoArcheryAttackDmg); package.add("DoKnockback", &Perl_Mob_DoKnockback); package.add("DoMeleeSkillAttackDmg", &Perl_Mob_DoMeleeSkillAttackDmg); package.add("DoSpecialAttackDamage", (void(*)(Mob*, Mob*, int, int))&Perl_Mob_DoSpecialAttackDamage); package.add("DoSpecialAttackDamage", (void(*)(Mob*, Mob*, int, int, int))&Perl_Mob_DoSpecialAttackDamage); package.add("DoSpecialAttackDamage", (void(*)(Mob*, Mob*, int, int, int, int))&Perl_Mob_DoSpecialAttackDamage); package.add("DoSpecialAttackDamage", (void(*)(Mob*, Mob*, int, int, int, int, int))&Perl_Mob_DoSpecialAttackDamage); package.add("DoThrowingAttackDmg", &Perl_Mob_DoThrowingAttackDmg); package.add("DontBuffMeBefore", &Perl_Mob_DontBuffMeBefore); package.add("DontDotMeBefore", &Perl_Mob_DontDotMeBefore); package.add("DontHealMeBefore", &Perl_Mob_DontHealMeBefore); package.add("DontRootMeBefore", &Perl_Mob_DontRootMeBefore); package.add("DontSnareMeBefore", &Perl_Mob_DontSnareMeBefore); package.add("DoubleAggro", &Perl_Mob_DoubleAggro); package.add("Emote", &Perl_Mob_Emote); package.add("EntityVariableExists", &Perl_Mob_EntityVariableExists); package.add("FaceTarget", (void(*)(Mob*))&Perl_Mob_FaceTarget); package.add("FaceTarget", (void(*)(Mob*, Mob*))&Perl_Mob_FaceTarget); package.add("FindBuff", (bool(*)(Mob*, uint16))&Perl_Mob_FindBuff); package.add("FindBuff", (bool(*)(Mob*, uint16, uint16))&Perl_Mob_FindBuff); package.add("FindBuffBySlot", &Perl_Mob_FindBuffBySlot); package.add("FindGroundZ", (float(*)(Mob*, float, float))&Perl_Mob_FindGroundZ); package.add("FindGroundZ", (float(*)(Mob*, float, float, float))&Perl_Mob_FindGroundZ); package.add("FindType", (bool(*)(Mob*, uint16_t))&Perl_Mob_FindType); package.add("FindType", (bool(*)(Mob*, uint16_t, bool))&Perl_Mob_FindType); package.add("FindType", (bool(*)(Mob*, uint16_t, bool, uint16_t))&Perl_Mob_FindType); package.add("GMMove", (void(*)(Mob*, float, float, float))&Perl_Mob_GMMove); package.add("GMMove", (void(*)(Mob*, float, float, float, float))&Perl_Mob_GMMove); package.add("GMMove", (void(*)(Mob*, float, float, float, float, bool))&Perl_Mob_GMMove); package.add("Gate", &Perl_Mob_Gate); package.add("GetAA", &Perl_Mob_GetAA); package.add("GetAABonuses", &Perl_Mob_GetAABonuses); package.add("GetAAByAAID", &Perl_Mob_GetAAByAAID); package.add("GetAC", &Perl_Mob_GetAC); package.add("GetAGI", &Perl_Mob_GetAGI); package.add("GetATK", &Perl_Mob_GetATK); package.add("GetActDoTDamage", (int64_t(*)(Mob*, uint16, int64, Mob*))&Perl_Mob_GetActDoTDamage); package.add("GetActDoTDamage", (int64_t(*)(Mob*, uint16, int64, Mob*, bool))&Perl_Mob_GetActDoTDamage); package.add("GetActReflectedSpellDamage", &Perl_Mob_GetActReflectedSpellDamage); package.add("GetActSpellCasttime", &Perl_Mob_GetActSpellCasttime); package.add("GetActSpellCost", &Perl_Mob_GetActSpellCost); package.add("GetActSpellDamage", (int64_t(*)(Mob*, uint16, int64))&Perl_Mob_GetActSpellDamage); package.add("GetActSpellDamage", (int64_t(*)(Mob*, uint16, int64, Mob*))&Perl_Mob_GetActSpellDamage); package.add("GetActSpellDuration", &Perl_Mob_GetActSpellDuration); package.add("GetActSpellHealing", (int64_t(*)(Mob*, uint16, int64))&Perl_Mob_GetActSpellHealing); package.add("GetActSpellHealing", (int64_t(*)(Mob*, uint16, int64, Mob*))&Perl_Mob_GetActSpellHealing); package.add("GetActSpellHealing", (int64_t(*)(Mob*, uint16, int64, Mob*, bool))&Perl_Mob_GetActSpellHealing); package.add("GetActSpellRange", &Perl_Mob_GetActSpellRange); package.add("GetAggroRange", &Perl_Mob_GetAggroRange); package.add("GetAllowBeneficial", &Perl_Mob_GetAllowBeneficial); package.add("GetAppearance", &Perl_Mob_GetAppearance); package.add("GetArmorTint", &Perl_Mob_GetArmorTint); package.add("GetAssistRange", &Perl_Mob_GetAssistRange); package.add("GetBaseGender", &Perl_Mob_GetBaseGender); package.add("GetBaseRace", &Perl_Mob_GetBaseRace); package.add("GetBaseRaceName", &Perl_Mob_GetBaseRaceName); package.add("GetBaseSize", &Perl_Mob_GetBaseSize); package.add("GetBeard", &Perl_Mob_GetBeard); package.add("GetBeardColor", &Perl_Mob_GetBeardColor); package.add("GetBodyType", &Perl_Mob_GetBodyType); package.add("GetBucket", &Perl_Mob_GetBucket); package.add("GetBucketExpires", &Perl_Mob_GetBucketExpires); package.add("GetBucketKey", &Perl_Mob_GetBucketKey); package.add("GetBucketRemaining", &Perl_Mob_GetBucketRemaining); package.add("GetBuffSlotFromType", &Perl_Mob_GetBuffSlotFromType); package.add("GetBuffSpellIDs", &Perl_Mob_GetBuffSpellIDs); package.add("GetBuffStatValueBySpell", &Perl_Mob_GetBuffStatValueBySpell); package.add("GetBuffStatValueBySlot", &Perl_Mob_GetBuffStatValueBySlot); package.add("GetCHA", &Perl_Mob_GetCHA); package.add("GetCR", &Perl_Mob_GetCR); package.add("GetCasterLevel", &Perl_Mob_GetCasterLevel); package.add("GetClass", &Perl_Mob_GetClass); package.add("GetClassLevelFactor", &Perl_Mob_GetClassLevelFactor); package.add("GetClassPlural", &Perl_Mob_GetClassPlural); package.add("GetClassName", &Perl_Mob_GetClassName); package.add("GetCleanName", &Perl_Mob_GetCleanName); package.add("GetCloseMobList", (perl::array(*)(Mob*))&Perl_Mob_GetCloseMobList); package.add("GetCloseMobList", (perl::array(*)(Mob*, float))&Perl_Mob_GetCloseMobList); package.add("GetCloseMobList", (perl::array(*)(Mob*, float, bool))&Perl_Mob_GetCloseMobList); package.add("GetCorruption", &Perl_Mob_GetCorruption); package.add("GetDefaultRaceSize", (float(*)(Mob*))&Perl_Mob_GetDefaultRaceSize); package.add("GetDefaultRaceSize", (float(*)(Mob*, int))&Perl_Mob_GetDefaultRaceSize); package.add("GetDefaultRaceSize", (float(*)(Mob*, int, int))&Perl_Mob_GetDefaultRaceSize); package.add("GetDEX", &Perl_Mob_GetDEX); package.add("GetDR", &Perl_Mob_GetDR); package.add("GetDamageAmount", &Perl_Mob_GetDamageAmount); package.add("GetDeity", &Perl_Mob_GetDeity); package.add("GetDisplayAC", &Perl_Mob_GetDisplayAC); package.add("GetDrakkinDetails", &Perl_Mob_GetDrakkinDetails); package.add("GetDrakkinHeritage", &Perl_Mob_GetDrakkinHeritage); package.add("GetDrakkinTattoo", &Perl_Mob_GetDrakkinTattoo); package.add("GetEntityVariable", &Perl_Mob_GetEntityVariable); package.add("GetEntityVariables", &Perl_Mob_GetEntityVariables); package.add("GetEquipment", &Perl_Mob_GetEquipment); package.add("GetEquipmentColor", &Perl_Mob_GetEquipmentColor); package.add("GetEquipmentMaterial", &Perl_Mob_GetEquipmentMaterial); package.add("GetEyeColor1", &Perl_Mob_GetEyeColor1); package.add("GetEyeColor2", &Perl_Mob_GetEyeColor2); package.add("GetFR", &Perl_Mob_GetFR); package.add("GetFlurryChance", &Perl_Mob_GetFlurryChance); package.add("GetFollowID", &Perl_Mob_GetFollowID); package.add("GetGender", &Perl_Mob_GetGender); package.add("GetGlobal", &Perl_Mob_GetGlobal); package.add("GetHP", &Perl_Mob_GetHP); package.add("GetHPRatio", &Perl_Mob_GetHPRatio); package.add("GetHairColor", &Perl_Mob_GetHairColor); package.add("GetHairStyle", &Perl_Mob_GetHairStyle); package.add("GetHandToHandDamage", &Perl_Mob_GetHandToHandDamage); package.add("GetHandToHandDelay", &Perl_Mob_GetHandToHandDelay); package.add("GetHaste", &Perl_Mob_GetHaste); package.add("GetHateAmount", (int64_t(*)(Mob*, Mob*))&Perl_Mob_GetHateAmount); package.add("GetHateAmount", (int64_t(*)(Mob*, Mob*, bool))&Perl_Mob_GetHateAmount); package.add("GetHateClosest", (Mob*(*)(Mob*))&Perl_Mob_GetHateClosest); package.add("GetHateClosest", (Mob*(*)(Mob*, bool))&Perl_Mob_GetHateClosest); package.add("GetHateClosestBot", (Bot*(*)(Mob*))&Perl_Mob_GetHateClosestBot); package.add("GetHateClosestBot", (Bot*(*)(Mob*, bool))&Perl_Mob_GetHateClosestBot); package.add("GetHateClosestClient", (Client*(*)(Mob*))&Perl_Mob_GetHateClosestClient); package.add("GetHateClosestClient", (Client*(*)(Mob*, bool))&Perl_Mob_GetHateClosestClient); package.add("GetHateClosestNPC", (NPC*(*)(Mob*))&Perl_Mob_GetHateClosestNPC); package.add("GetHateClosestNPC", (NPC*(*)(Mob*, bool))&Perl_Mob_GetHateClosestNPC); package.add("GetHateDamageTop", &Perl_Mob_GetHateDamageTop); package.add("GetHateList", &Perl_Mob_GetHateList); package.add("GetHateListBots", (perl::array(*)(Mob*))&Perl_Mob_GetHateListBots); package.add("GetHateListBots", (perl::array(*)(Mob*, uint32))&Perl_Mob_GetHateListBots); package.add("GetHateListClients", (perl::array(*)(Mob*))&Perl_Mob_GetHateListClients); package.add("GetHateListClients", (perl::array(*)(Mob*, uint32))&Perl_Mob_GetHateListClients); package.add("GetHateListNPCs", (perl::array(*)(Mob*))&Perl_Mob_GetHateListNPCs); package.add("GetHateListNPCs", (perl::array(*)(Mob*, uint32))&Perl_Mob_GetHateListNPCs); package.add("GetHateListByDistance", (perl::array(*)(Mob*))&Perl_Mob_GetHateListByDistance); package.add("GetHateListByDistance", (perl::array(*)(Mob*, uint32))&Perl_Mob_GetHateListByDistance); package.add("GetHateRandom", &Perl_Mob_GetHateRandom); package.add("GetHateRandomBot", &Perl_Mob_GetHateRandomBot); package.add("GetHateRandomClient", &Perl_Mob_GetHateRandomClient); package.add("GetHateRandomNPC", &Perl_Mob_GetHateRandomNPC); package.add("GetHateTop", &Perl_Mob_GetHateTop); package.add("GetHateTopBot", &Perl_Mob_GetHateTopBot); package.add("GetHateTopClient", &Perl_Mob_GetHateTopClient); package.add("GetHateTopNPC", &Perl_Mob_GetHateTopNPC); package.add("GetHeading", &Perl_Mob_GetHeading); package.add("GetHelmTexture", &Perl_Mob_GetHelmTexture); package.add("GetHerosForgeModel", &Perl_Mob_GetHerosForgeModel); package.add("GetID", &Perl_Mob_GetID); package.add("GetINT", &Perl_Mob_GetINT); package.add("GetInvisibleLevel", &Perl_Mob_GetInvisibleLevel); package.add("GetInvisibleUndeadLevel", &Perl_Mob_GetInvisibleUndeadLevel); package.add("GetInvul", &Perl_Mob_GetInvul); package.add("GetItemBonuses", &Perl_Mob_GetItemBonuses); package.add("GetItemHPBonuses", &Perl_Mob_GetItemHPBonuses); package.add("GetItemStat", &Perl_Mob_GetItemStat); package.add("GetLastName", &Perl_Mob_GetLastName); package.add("GetLevel", &Perl_Mob_GetLevel); package.add("GetLevelCon", &Perl_Mob_GetLevelCon); package.add("GetLevelHP", &Perl_Mob_GetLevelHP); package.add("GetLuclinFace", &Perl_Mob_GetLuclinFace); package.add("GetMR", &Perl_Mob_GetMR); package.add("GetMana", &Perl_Mob_GetMana); package.add("GetManaRatio", &Perl_Mob_GetManaRatio); package.add("GetMaxAGI", &Perl_Mob_GetMaxAGI); package.add("GetMaxCHA", &Perl_Mob_GetMaxCHA); package.add("GetMaxDEX", &Perl_Mob_GetMaxDEX); package.add("GetMaxHP", &Perl_Mob_GetMaxHP); package.add("GetMaxINT", &Perl_Mob_GetMaxINT); package.add("GetMaxMana", &Perl_Mob_GetMaxMana); package.add("GetMaxSTA", &Perl_Mob_GetMaxSTA); package.add("GetMaxSTR", &Perl_Mob_GetMaxSTR); package.add("GetMaxWIS", &Perl_Mob_GetMaxWIS); package.add("GetMeleeMitigation", &Perl_Mob_GetMeleeMitigation); package.add("GetMobTypeIdentifier", &Perl_Mob_GetMobTypeIdentifier); package.add("GetModSkillDmgTaken", &Perl_Mob_GetModSkillDmgTaken); package.add("GetModVulnerability", &Perl_Mob_GetModVulnerability); package.add("GetNPCTypeID", &Perl_Mob_GetNPCTypeID); package.add("GetName", &Perl_Mob_GetName); package.add("GetNimbusEffect1", &Perl_Mob_GetNimbusEffect1); package.add("GetNimbusEffect2", &Perl_Mob_GetNimbusEffect2); package.add("GetNimbusEffect3", &Perl_Mob_GetNimbusEffect3); package.add("GetOwner", &Perl_Mob_GetOwner); package.add("GetOwnerID", &Perl_Mob_GetOwnerID); package.add("GetPR", &Perl_Mob_GetPR); package.add("GetPet", &Perl_Mob_GetPet); package.add("GetPetID", &Perl_Mob_GetPetID); package.add("GetPetOrder", &Perl_Mob_GetPetOrder); package.add("GetPetType", &Perl_Mob_GetPetType); package.add("GetPhR", &Perl_Mob_GetPhR); package.add("GetRace", &Perl_Mob_GetRace); package.add("GetRaceName", &Perl_Mob_GetRaceName); package.add("GetRacePlural", &Perl_Mob_GetRacePlural); package.add("GetRemainingTimeMS", &Perl_Mob_GetRemainingTimeMS); package.add("GetResist", &Perl_Mob_GetResist); package.add("GetReverseFactionCon", &Perl_Mob_GetReverseFactionCon); package.add("GetRunAnimSpeed", &Perl_Mob_GetRunAnimSpeed); package.add("GetRunspeed", &Perl_Mob_GetRunspeed); package.add("GetSTA", &Perl_Mob_GetSTA); package.add("GetSTR", &Perl_Mob_GetSTR); package.add("GetSize", &Perl_Mob_GetSize); package.add("GetSkill", &Perl_Mob_GetSkill); package.add("GetSkillDmgAmt", &Perl_Mob_GetSkillDmgAmt); package.add("GetSkillDmgTaken", &Perl_Mob_GetSkillDmgTaken); package.add("GetSpecialAbility", &Perl_Mob_GetSpecialAbility); package.add("GetSpecialAbilityParam", &Perl_Mob_GetSpecialAbilityParam); package.add("GetSpecializeSkillValue", &Perl_Mob_GetSpecializeSkillValue); package.add("GetSpellBonuses", &Perl_Mob_GetSpellBonuses); package.add("GetSpellHPBonuses", &Perl_Mob_GetSpellHPBonuses); package.add("GetSpellIDFromSlot", &Perl_Mob_GetSpellIDFromSlot); package.add("GetSpellStat", (int(*)(Mob*, uint32, const char*))&Perl_Mob_GetSpellStat); package.add("GetSpellStat", (int(*)(Mob*, uint32, const char*, uint8))&Perl_Mob_GetSpellStat); package.add("GetTarget", &Perl_Mob_GetTarget); package.add("GetTexture", &Perl_Mob_GetTexture); package.add("GetTimerDurationMS", &Perl_Mob_GetTimerDurationMS); package.add("GetUltimateOwner", &Perl_Mob_GetUltimateOwner); package.add("GetWIS", &Perl_Mob_GetWIS); package.add("GetWalkspeed", &Perl_Mob_GetWalkspeed); package.add("GetWaypointH", &Perl_Mob_GetWaypointH); package.add("GetWaypointID", &Perl_Mob_GetWaypointID); package.add("GetWaypointPause", &Perl_Mob_GetWaypointPause); package.add("GetWaypointX", &Perl_Mob_GetWaypointX); package.add("GetWaypointY", &Perl_Mob_GetWaypointY); package.add("GetWaypointZ", &Perl_Mob_GetWaypointZ); package.add("GetX", &Perl_Mob_GetX); package.add("GetY", &Perl_Mob_GetY); package.add("GetZ", &Perl_Mob_GetZ); package.add("GetZoneID", &Perl_Mob_GetZoneID); package.add("GoToBind", &Perl_Mob_GoToBind); package.add("HalveAggro", &Perl_Mob_HalveAggro); package.add("HasNPCSpecialAtk", &Perl_Mob_HasNPCSpecialAtk); package.add("HasOwner", &Perl_Mob_HasOwner); package.add("HasPet", &Perl_Mob_HasPet); package.add("HasProcs", &Perl_Mob_HasProcs); package.add("HasShieldEquipped", &Perl_Mob_HasShieldEquipped); package.add("HasSpellEffect", &Perl_Mob_HasSpellEffect); package.add("HasTimer", &Perl_Mob_HasTimer); package.add("HasTwoHandBluntEquipped", &Perl_Mob_HasTwoHandBluntEquipped); package.add("HasTwoHanderEquipped", &Perl_Mob_HasTwoHanderEquipped); package.add("HateSummon", &Perl_Mob_HateSummon); package.add("Heal", &Perl_Mob_Heal); package.add("HealDamage", (void(*)(Mob*, int64_t))&Perl_Mob_HealDamage); package.add("HealDamage", (void(*)(Mob*, int64_t, Mob*))&Perl_Mob_HealDamage); package.add("InterruptSpell", (void(*)(Mob*))&Perl_Mob_InterruptSpell); package.add("InterruptSpell", (void(*)(Mob*, uint16))&Perl_Mob_InterruptSpell); package.add("IsAIControlled", &Perl_Mob_IsAIControlled); package.add("IsAmnesiad", &Perl_Mob_IsAmnesiad); package.add("IsAttackAllowed", (bool(*)(Mob*, Mob*))&Perl_Mob_IsAttackAllowed); package.add("IsAttackAllowed", (bool(*)(Mob*, Mob*, bool))&Perl_Mob_IsAttackAllowed); package.add("IsAura", &Perl_Mob_IsAura); package.add("IsBeacon", &Perl_Mob_IsBeacon); package.add("IsBeneficialAllowed", &Perl_Mob_IsBeneficialAllowed); package.add("IsBerserk", &Perl_Mob_IsBerserk); package.add("IsBlind", &Perl_Mob_IsBlind); package.add("IsBot", &Perl_Mob_IsBot); package.add("IsCasting", &Perl_Mob_IsCasting); package.add("IsClient", &Perl_Mob_IsClient); package.add("IsCorpse", &Perl_Mob_IsCorpse); package.add("IsDoor", &Perl_Mob_IsDoor); package.add("IsEliteMaterialItem", &Perl_Mob_IsEliteMaterialItem); package.add("IsEncounter", &Perl_Mob_IsEncounter); package.add("IsEngaged", &Perl_Mob_IsEngaged); package.add("IsEnraged", &Perl_Mob_IsEnraged); package.add("IsFeared", &Perl_Mob_IsFeared); package.add("IsFindable", &Perl_Mob_IsFindable); package.add("IsHorse", &Perl_Mob_IsHorse); package.add("IsImmuneToSpell", &Perl_Mob_IsImmuneToSpell); package.add("IsInvisible", (bool(*)(Mob*))&Perl_Mob_IsInvisible); package.add("IsInvisible", (bool(*)(Mob*, Mob*))&Perl_Mob_IsInvisible); package.add("IsMeleeDisabled", &Perl_Mob_IsMeleeDisabled); package.add("IsMerc", &Perl_Mob_IsMerc); package.add("IsMezzed", &Perl_Mob_IsMezzed); package.add("IsMob", &Perl_Mob_IsMob); package.add("IsMoving", &Perl_Mob_IsMoving); package.add("IsNPC", &Perl_Mob_IsNPC); package.add("IsNPCCorpse", &Perl_Mob_IsNPCCorpse); package.add("IsObject", &Perl_Mob_IsObject); package.add("IsOfClientBot", &Perl_Mob_IsOfClientBot); package.add("IsOfClientBotMerc", &Perl_Mob_IsOfClientBotMerc); package.add("IsPausedTimer", &Perl_Mob_IsPausedTimer); package.add("IsPet", &Perl_Mob_IsPet); package.add("IsPlayerCorpse", &Perl_Mob_IsPlayerCorpse); package.add("IsRoamer", &Perl_Mob_IsRoamer); package.add("IsRooted", &Perl_Mob_IsRooted); package.add("IsRunning", &Perl_Mob_IsRunning); package.add("IsSilenced", &Perl_Mob_IsSilenced); package.add("IsStunned", &Perl_Mob_IsStunned); package.add("IsTargetable", &Perl_Mob_IsTargetable); package.add("IsTargeted", &Perl_Mob_IsTargeted); package.add("IsTemporaryPet", &Perl_Mob_IsTemporaryPet); package.add("IsTrackable", &Perl_Mob_IsTrackable); package.add("IsTrap", &Perl_Mob_IsTrap); package.add("IsWarriorClass", &Perl_Mob_IsWarriorClass); package.add("Kill", &Perl_Mob_Kill); package.add("MakePet", (void(*)(Mob*, uint16, const char*))&Perl_Mob_MakePet); package.add("MakePet", (void(*)(Mob*, uint16, const char*, const char*))&Perl_Mob_MakePet); package.add("MakeTempPet", (void(*)(Mob*, uint16))&Perl_Mob_MakeTempPet); package.add("MakeTempPet", (void(*)(Mob*, uint16, const char*))&Perl_Mob_MakeTempPet); package.add("MakeTempPet", (void(*)(Mob*, uint16, const char*, uint32))&Perl_Mob_MakeTempPet); package.add("MakeTempPet", (void(*)(Mob*, uint16, const char*, uint32, Mob*))&Perl_Mob_MakeTempPet); package.add("MakeTempPet", (void(*)(Mob*, uint16, const char*, uint32, Mob*, bool))&Perl_Mob_MakeTempPet); package.add("Mesmerize", &Perl_Mob_Mesmerize); package.add("Message", &Perl_Mob_Message); package.add("Message_StringID", (void(*)(Mob*, uint32, uint32))&Perl_Mob_Message_StringID); package.add("Message_StringID", (void(*)(Mob*, uint32, uint32, uint32))&Perl_Mob_Message_StringID); package.add("ModSkillDmgTaken", &Perl_Mob_ModSkillDmgTaken); package.add("ModVulnerability", &Perl_Mob_ModVulnerability); package.add("NPCSpecialAttacks", (void(*)(Mob*, const char*, int))&Perl_Mob_NPCSpecialAttacks); package.add("NPCSpecialAttacks", (void(*)(Mob*, const char*, int, bool))&Perl_Mob_NPCSpecialAttacks); package.add("NPCSpecialAttacks", (void(*)(Mob*, const char*, int, bool, bool))&Perl_Mob_NPCSpecialAttacks); package.add("NavigateTo", &Perl_Mob_NavigateTo); package.add("PauseTimer", &Perl_Mob_PauseTimer); package.add("ProcessSpecialAbilities", &Perl_Mob_ProcessSpecialAbilities); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int))&Perl_Mob_ProjectileAnim); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int, bool))&Perl_Mob_ProjectileAnim); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int, bool, float))&Perl_Mob_ProjectileAnim); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int, bool, float, float))&Perl_Mob_ProjectileAnim); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int, bool, float, float, float))&Perl_Mob_ProjectileAnim); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int, bool, float, float, float, float))&Perl_Mob_ProjectileAnim); package.add("ProjectileAnim", (void(*)(Mob*, Mob*, int, bool, float, float, float, float, const char*))&Perl_Mob_ProjectileAnim); package.add("RandomizeFeatures", (bool(*)(Mob*))&Perl_Mob_RandomizeFeatures); package.add("RandomizeFeatures", (bool(*)(Mob*, bool))&Perl_Mob_RandomizeFeatures); package.add("RandomizeFeatures", (bool(*)(Mob*, bool, bool))&Perl_Mob_RandomizeFeatures); package.add("RangedAttack", &Perl_Mob_RangedAttack); package.add("RemoveAllAppearanceEffects", &Perl_Mob_RemoveAllAppearanceEffects); package.add("RemoveAllNimbusEffects", &Perl_Mob_RemoveAllNimbusEffects); package.add("RemoveFromFeignMemory", &Perl_Mob_RemoveFromFeignMemory); package.add("RemoveNimbusEffect", &Perl_Mob_RemoveNimbusEffect); package.add("RemovePet", &Perl_Mob_RemovePet); package.add("ResistSpell", &Perl_Mob_ResistSpell); package.add("ResumeTimer", &Perl_Mob_ResumeTimer); package.add("RogueAssassinate", &Perl_Mob_RogueAssassinate); package.add("RunTo", &Perl_Mob_RunTo); package.add("Say", &Perl_Mob_Say); package.add("SeeHide", &Perl_Mob_SeeHide); package.add("SeeImprovedHide", &Perl_Mob_SeeImprovedHide); package.add("SeeInvisible", &Perl_Mob_SeeInvisible); package.add("SeeInvisibleUndead", &Perl_Mob_SeeInvisibleUndead); package.add("SendAppearanceEffect", (void(*)(Mob*, int32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32, uint32, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffect", (void(*)(Mob*, int32, int32, int32, int32, int32, perl::nullable, uint32, uint32, uint32, uint32, uint32, uint32, uint32, uint32, uint32, uint32))&Perl_Mob_SendAppearanceEffect); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32, uint32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32, uint32, int32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32, uint32, int32, uint32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32, uint32, int32, uint32, int32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32, uint32, int32, uint32, int32, uint32))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectActor", (void(*)(Mob*, int32, uint32, int32, uint32, int32, uint32, int32, uint32, int32, uint32, Client*))&Perl_Mob_SendAppearanceEffectActor); package.add("SendAppearanceEffectGround", (void(*)(Mob*, int32))&Perl_Mob_SendAppearanceEffectGround); package.add("SendAppearanceEffectGround", (void(*)(Mob*, int32, int32))&Perl_Mob_SendAppearanceEffectGround); package.add("SendAppearanceEffectGround", (void(*)(Mob*, int32, int32, int32))&Perl_Mob_SendAppearanceEffectGround); package.add("SendAppearanceEffectGround", (void(*)(Mob*, int32, int32, int32, int32))&Perl_Mob_SendAppearanceEffectGround); package.add("SendAppearanceEffectGround", (void(*)(Mob*, int32, int32, int32, int32, int32))&Perl_Mob_SendAppearanceEffectGround); package.add("SendAppearanceEffectGround", (void(*)(Mob*, int32, int32, int32, int32, int32, Client*))&Perl_Mob_SendAppearanceEffectGround); package.add("SendIllusion", (void(*)(Mob*, uint16))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint32))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint32, uint32))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint32, uint32, uint32))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint32, uint32, uint32, float))&Perl_Mob_SendIllusion); package.add("SendIllusion", (void(*)(Mob*, uint16, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint32, uint32, uint32, float, Client*))&Perl_Mob_SendIllusion); package.add("SendIllusionPacket", (void(*)(Mob*, perl::reference))&Perl_Mob_SendIllusionPacket); package.add("SendTo", &Perl_Mob_SendTo); package.add("SendToFixZ", &Perl_Mob_SendToFixZ); package.add("SendWearChange", &Perl_Mob_SendWearChange); package.add("SetAA", (bool(*)(Mob*, int, int))&Perl_Mob_SetAA); package.add("SetAA", (bool(*)(Mob*, int, int, int))&Perl_Mob_SetAA); package.add("SetAllowBeneficial", &Perl_Mob_SetAllowBeneficial); package.add("SetAppearance", (void(*)(Mob*, int))&Perl_Mob_SetAppearance); package.add("SetAppearance", (void(*)(Mob*, int, bool))&Perl_Mob_SetAppearance); package.add("SetBodyType", (void(*)(Mob*, int32))&Perl_Mob_SetBodyType); package.add("SetBodyType", (void(*)(Mob*, int32, bool))&Perl_Mob_SetBodyType); package.add("SetBucket", (void(*)(Mob*, std::string, std::string))&Perl_Mob_SetBucket); package.add("SetBucket", (void(*)(Mob*, std::string, std::string, std::string))&Perl_Mob_SetBucket); package.add("SetBuffDuration", (void(*)(Mob*, int))&Perl_Mob_SetBuffDuration); package.add("SetBuffDuration", (void(*)(Mob*, int, int))&Perl_Mob_SetBuffDuration); package.add("SetBuffDuration", (void(*)(Mob*, int, int, int))&Perl_Mob_SetBuffDuration); package.add("SetCurrentWP", &Perl_Mob_SetCurrentWP); package.add("SetDeltas", &Perl_Mob_SetDeltas); package.add("SetDisableMelee", &Perl_Mob_SetDisableMelee); package.add("SetEntityVariable", &Perl_Mob_SetEntityVariable); package.add("SetExtraHaste", &Perl_Mob_SetExtraHaste); package.add("SetFlurryChance", &Perl_Mob_SetFlurryChance); package.add("SetFlyMode", &Perl_Mob_SetFlyMode); package.add("SetFollowID", &Perl_Mob_SetFollowID); package.add("SetGender", &Perl_Mob_SetGender); package.add("SetGlobal", (void(*)(Mob*, const char*, const char*, int, const char*))&Perl_Mob_SetGlobal); package.add("SetGlobal", (void(*)(Mob*, const char*, const char*, int, const char*, Mob*))&Perl_Mob_SetGlobal); package.add("SetHP", &Perl_Mob_SetHP); package.add("SetHate", (void(*)(Mob*, Mob*))&Perl_Mob_SetHate); package.add("SetHate", (void(*)(Mob*, Mob*, int64_t))&Perl_Mob_SetHate); package.add("SetHate", (void(*)(Mob*, Mob*, int64_t, int64_t))&Perl_Mob_SetHate); package.add("SetHeading", &Perl_Mob_SetHeading); package.add("SetInvisible", &Perl_Mob_SetInvisible); package.add("SetInvul", &Perl_Mob_SetInvul); package.add("SetLD", &Perl_Mob_SetLD); package.add("SetLevel", (void(*)(Mob*, uint8_t))&Perl_Mob_SetLevel); package.add("SetLevel", (void(*)(Mob*, uint8_t, bool))&Perl_Mob_SetLevel); package.add("SetMana", &Perl_Mob_SetMana); package.add("SetMaxHP", &Perl_Mob_SetMaxHP); package.add("SetOOCRegen", &Perl_Mob_SetOOCRegen); package.add("SetOwnerID", &Perl_Mob_SetOwnerID); package.add("SetPet", &Perl_Mob_SetPet); package.add("SetPetID", &Perl_Mob_SetPetID); package.add("SetPetOrder", &Perl_Mob_SetPetOrder); package.add("SetRace", &Perl_Mob_SetRace); package.add("SetRunAnimSpeed", &Perl_Mob_SetRunAnimSpeed); package.add("SetRunning", &Perl_Mob_SetRunning); package.add("SetSeeInvisibleLevel", &Perl_Mob_SetSeeInvisibleLevel); package.add("SetSeeInvisibleUndeadLevel", &Perl_Mob_SetSeeInvisibleUndeadLevel); package.add("SetSlotTint", &Perl_Mob_SetSlotTint); package.add("SetSpecialAbility", &Perl_Mob_SetSpecialAbility); package.add("SetSpecialAbilityParam", &Perl_Mob_SetSpecialAbilityParam); package.add("SetTarget", &Perl_Mob_SetTarget); package.add("SetTargetable", &Perl_Mob_SetTargetable); package.add("SetTexture", &Perl_Mob_SetTexture); package.add("SetTimer", &Perl_Mob_SetTimer); package.add("SetTimerMS", &Perl_Mob_SetTimerMS); package.add("StopAllTimers", &Perl_Mob_StopAllTimers); package.add("StopTimer", &Perl_Mob_StopTimer); package.add("ShieldAbility", (void(*)(Mob*, uint32))&Perl_Mob_ShieldAbility); package.add("ShieldAbility", (void(*)(Mob*, uint32, int32))&Perl_Mob_ShieldAbility); package.add("ShieldAbility", (void(*)(Mob*, uint32, int32, int32))&Perl_Mob_ShieldAbility); package.add("ShieldAbility", (void(*)(Mob*, uint32, int32, int32, int32))&Perl_Mob_ShieldAbility); package.add("ShieldAbility", (void(*)(Mob*, uint32, int32, int32, int32, int32))&Perl_Mob_ShieldAbility); package.add("ShieldAbility", (void(*)(Mob*, uint32, int32, int32, int32, int32, bool))&Perl_Mob_ShieldAbility); package.add("ShieldAbility", (void(*)(Mob*, uint32, int32, int32, int32, int32, bool, bool))&Perl_Mob_ShieldAbility); package.add("Shout", &Perl_Mob_Shout); package.add("SignalClient", &Perl_Mob_SignalClient); package.add("SpellEffect", (void(*)(Mob*, uint32))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32, bool))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32, bool, uint32))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32, bool, uint32, bool))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32, bool, uint32, bool, Client*))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32, bool, uint32, bool, perl::nullable, uint32))&Perl_Mob_SpellEffect); package.add("SpellEffect", (void(*)(Mob*, uint32, uint32, uint32, bool, uint32, bool, perl::nullable, uint32, uint32))&Perl_Mob_SpellEffect); package.add("SpellFinished", (void(*)(Mob*, uint16))&Perl_Mob_SpellFinished); package.add("SpellFinished", (void(*)(Mob*, uint16, Mob*))&Perl_Mob_SpellFinished); package.add("SpellFinished", (void(*)(Mob*, uint16, Mob*, int32))&Perl_Mob_SpellFinished); package.add("SpellFinished", (void(*)(Mob*, uint16, Mob*, int32, uint16))&Perl_Mob_SpellFinished); package.add("Spin", &Perl_Mob_Spin); package.add("StartEnrage", &Perl_Mob_StartEnrage); package.add("StopNavigation", &Perl_Mob_StopNavigation); package.add("Stun", &Perl_Mob_Stun); package.add("TarGlobal", &Perl_Mob_TarGlobal); package.add("TempName", (void(*)(Mob*))&Perl_Mob_TempName); package.add("TempName", (void(*)(Mob*, const char*))&Perl_Mob_TempName); package.add("ThrowingAttack", &Perl_Mob_ThrowingAttack); package.add("TryMoveAlong", (void(*)(Mob*, float, float))&Perl_Mob_TryMoveAlong); package.add("TryMoveAlong", (void(*)(Mob*, float, float, bool))&Perl_Mob_TryMoveAlong); package.add("TypesTempPet", (void(*)(Mob*, uint32))&Perl_Mob_TypesTempPet); package.add("TypesTempPet", (void(*)(Mob*, uint32, const char*))&Perl_Mob_TypesTempPet); package.add("TypesTempPet", (void(*)(Mob*, uint32, const char*, uint32))&Perl_Mob_TypesTempPet); package.add("TypesTempPet", (void(*)(Mob*, uint32, const char*, uint32, bool))&Perl_Mob_TypesTempPet); package.add("TypesTempPet", (void(*)(Mob*, uint32, const char*, uint32, bool, Mob*))&Perl_Mob_TypesTempPet); package.add("TypesTempPet", (void(*)(Mob*, uint32, const char*, uint32, bool, Mob*, bool))&Perl_Mob_TypesTempPet); package.add("WalkTo", &Perl_Mob_WalkTo); package.add("WearChange", (void(*)(Mob*, uint8, uint32))&Perl_Mob_WearChange); package.add("WearChange", (void(*)(Mob*, uint8, uint32, uint32))&Perl_Mob_WearChange); package.add("WearChange", (void(*)(Mob*, uint8, uint32, uint32, uint32))&Perl_Mob_WearChange); package.add("WipeHateList", &Perl_Mob_WipeHateList); } #endif //EMBPERL_XS_CLASSES