#include "../common/features.h" #ifdef EMBPERL_XS_CLASSES #include "../common/global_define.h" #include "embperl.h" #include "client.h" #include "expedition.h" #include "titles.h" #include "dialogue_window.h" void Perl_Client_SendSound(Client* self) // @categories Script Utility { self->SendSound(); } bool Perl_Client_Save(Client* self, uint8 commit_now) // @categories Script Utility { return self->Save(commit_now); } bool Perl_Client_Connected(Client* self) // @categories Script Utility { return self->Connected(); } bool Perl_Client_InZone(Client* self) // @categories Script Utility { return self->InZone(); } void Perl_Client_Kick(Client* self) // @categories Script Utility { self->Kick("Perl Quest"); } void Perl_Client_Disconnect(Client* self) // @categories Script Utility { self->Disconnect(); } bool Perl_Client_IsLD(Client* self) // @categories Account and Character { return self->IsLD(); } void Perl_Client_WorldKick(Client* self) // @categories Script Utility { self->WorldKick(); } void Perl_Client_SendToGuildHall(Client* self) // @categories Script Utility, Guild { self->SendToGuildHall(); } int Perl_Client_GetAnon(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetAnon(); } void Perl_Client_SetAnon(Client* self, uint8 anon_flag) // @categories Account and Character, Stats and Attributes { self->SetAnon(anon_flag); } int Perl_Client_GetAFK(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetAFK(); } void Perl_Client_SetAFK(Client* self, uint8 afk_flag) // @categories Account and Character, Stats and Attributes { self->SetAFK(afk_flag); } void Perl_Client_Duck(Client* self) // @categories Account and Character { self->Duck(); } void Perl_Client_DyeArmorBySlot(Client* self, uint8 slot, uint8 red, uint8 green, uint8 blue) // @categories Account and Character, Inventory and Items { self->DyeArmorBySlot(slot, red, green, blue); } void Perl_Client_DyeArmorBySlot(Client* self, uint8 slot, uint8 red, uint8 green, uint8 blue, uint8 use_tint) // @categories Account and Character, Inventory and Items { self->DyeArmorBySlot(slot, red, green, blue, use_tint); } void Perl_Client_Stand(Client* self) // @categories Script Utility { self->Stand(); } void Perl_Client_SetGM(Client* self, bool on) // @categories Account and Character { self->SetGM(on); } void Perl_Client_SetPVP(Client* self, bool on) // @categories Account and Character { self->SetPVP(on); } bool Perl_Client_GetPVP(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetPVP(); } bool Perl_Client_GetGM(Client* self) // @categories Account and Character { return self->GetGM(); } void Perl_Client_SetBaseClass(Client* self, uint32 class_id) // @categories Account and Character, Stats and Attributes { self->SetBaseClass(class_id); } void Perl_Client_SetBaseRace(Client* self, uint32 race_id) // @categories Account and Character, Stats and Attributes { self->SetBaseRace(race_id); } void Perl_Client_SetBaseGender(Client* self, uint32 gender_id) // @categories Account and Character, Stats and Attributes { self->SetBaseGender(gender_id); } int Perl_Client_GetBaseFace(Client* self) // @categories Stats and Attributes { return self->GetBaseFace(); } int Perl_Client_GetLanguageSkill(Client* self, uint16 lanuage_id) // @categories Account and Character, Stats and Attributes { return self->GetLanguageSkill(lanuage_id); } uint32_t Perl_Client_GetLDoNPointsTheme(Client* self, int theme) // @categories Currency and Points { return self->GetLDoNPointsTheme(theme); } int Perl_Client_GetBaseSTR(Client* self) // @categories Stats and Attributes { return self->GetBaseSTR(); } int Perl_Client_GetBaseSTA(Client* self) // @categories Stats and Attributes { return self->GetBaseSTA(); } int Perl_Client_GetBaseCHA(Client* self) // @categories Stats and Attributes { return self->GetBaseCHA(); } int Perl_Client_GetBaseDEX(Client* self) // @categories Stats and Attributes { return self->GetBaseDEX(); } int Perl_Client_GetBaseINT(Client* self) // @categories Stats and Attributes { return self->GetBaseINT(); } int Perl_Client_GetBaseAGI(Client* self) // @categories Stats and Attributes { return self->GetBaseAGI(); } int Perl_Client_GetBaseWIS(Client* self) // @categories Stats and Attributes { return self->GetBaseWIS(); } int Perl_Client_GetWeight(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetWeight(); } uint32_t Perl_Client_GetEXP(Client* self) // @categories Experience and Level { return self->GetEXP(); } uint32_t Perl_Client_GetAAExp(Client* self) // @categories Alternative Advancement, Experience and Level { return self->GetAAXP(); } uint32_t Perl_Client_GetAAPercent(Client* self) // @categories Alternative Advancement, Experience and Level { return self->GetAAPercent(); } uint32_t Perl_Client_GetTotalSecondsPlayed(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetTotalSecondsPlayed(); } bool Perl_Client_UpdateLDoNPoints(Client* self, uint32 theme_id, int points) // @categories Currency and Points { return self->UpdateLDoNPoints(theme_id, points); } void Perl_Client_SetDeity(Client* self, uint32 deity_id) // @categories Account and Character, Stats and Attributes { self->SetDeity(deity_id); } void Perl_Client_AddEXP(Client* self, uint32 add_exp) // @categories Experience and Level { self->AddEXP(ExpSource::Quest, add_exp); } void Perl_Client_AddEXP(Client* self, uint32 add_exp, uint8 conlevel) // @categories Experience and Level { self->AddEXP(ExpSource::Quest, add_exp, conlevel); } void Perl_Client_AddEXP(Client* self, uint32 add_exp, uint8 conlevel, bool resexp) // @categories Experience and Level { self->AddEXP(ExpSource::Quest, add_exp, conlevel, resexp); } void Perl_Client_SetEXP(Client* self, uint64 set_exp, uint64 set_aaxp) // @categories Experience and Level { self->SetEXP(ExpSource::Quest, set_exp, set_aaxp); } void Perl_Client_SetEXP(Client* self, uint64 set_exp, uint64 set_aaxp, bool resexp) // @categories Experience and Level { self->SetEXP(ExpSource::Quest, set_exp, set_aaxp, resexp); } void Perl_Client_SetBindPoint(Client* self) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0); } void Perl_Client_SetBindPoint(Client* self, int to_zone) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0, to_zone); } void Perl_Client_SetBindPoint(Client* self, int to_zone, int to_instance) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0, to_zone, to_instance); } void Perl_Client_SetBindPoint(Client* self, int to_zone, int to_instance, float new_x) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0, to_zone, to_instance, glm::vec4(new_x, 0.0f, 0.0f, 0.0f)); } void Perl_Client_SetBindPoint(Client* self, int to_zone, int to_instance, float new_x, float new_y) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0, to_zone, to_instance, glm::vec4(new_x, new_y, 0.0f, 0.0f)); } void Perl_Client_SetBindPoint(Client* self, int to_zone, int to_instance, float new_x, float new_y, float new_z) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0, to_zone, to_instance, glm::vec4(new_x, new_y, new_z, 0.0f)); } void Perl_Client_SetBindPoint(Client* self, int to_zone, int to_instance, float new_x, float new_y, float new_z, float new_heading) // @categories Account and Character, Stats and Attributes { self->SetBindPoint2(0, to_zone, to_instance, glm::vec4(new_x, new_y, new_z, new_heading)); } float Perl_Client_GetBindX(Client* self) // @categories Account and Character { return self->GetBindX(); } float Perl_Client_GetBindX(Client* self, int index) // @categories Account and Character { return self->GetBindX(index); } float Perl_Client_GetBindY(Client* self) // @categories Account and Character { return self->GetBindY(); } float Perl_Client_GetBindY(Client* self, int index) // @categories Account and Character { return self->GetBindY(index); } float Perl_Client_GetBindZ(Client* self) // @categories Account and Character { return self->GetBindZ(); } float Perl_Client_GetBindZ(Client* self, int index) // @categories Account and Character { return self->GetBindZ(index); } float Perl_Client_GetBindHeading(Client* self) // @categories Account and Character { return self->GetBindHeading(); } float Perl_Client_GetBindHeading(Client* self, int index) // @categories Account and Character { return self->GetBindHeading(index); } uint32_t Perl_Client_GetBindZoneID(Client* self) // @categories Account and Character { return self->GetBindZoneID(); } uint32_t Perl_Client_GetBindZoneID(Client* self, int index) // @categories Account and Character { return self->GetBindZoneID(index); } void Perl_Client_MovePC(Client* self, uint32 zone_id, float x, float y, float z, float heading) // @categories Script Utility { self->MovePC(zone_id, x, y, z, heading); } void Perl_Client_MovePCInstance(Client* self, uint32 zone_id, uint32 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility { self->MovePC(zone_id, instance_id, x, y, z, heading); } void Perl_Client_ChangeLastName(Client* self, std::string last_name) // @categories Account and Character { self->ChangeLastName(last_name); } int Perl_Client_GetFactionLevel(Client* self, uint32 char_id, uint32 npc_id, uint32 race_id, uint32 class_id, uint32 deity_id, uint32 faction_id, Mob* tnpc) // @categories Faction { return self->GetFactionLevel(char_id, npc_id, race_id, class_id, deity_id, faction_id, tnpc); } void Perl_Client_SetFactionLevel(Client* self, uint32 char_id, uint32 npc_faction_id, uint8 char_class, uint8 char_race, uint8 char_deity) // @categories Faction { self->SetFactionLevel(char_id, npc_faction_id, char_class, char_race, char_deity); } void Perl_Client_SetFactionLevel2(Client* self, uint32 char_id, int32 faction_id, uint8 char_class, uint8 char_race, uint8 char_deity, int32 value) // @categories Faction { self->SetFactionLevel2(char_id, faction_id, char_class, char_race, char_deity, value, 0); } void Perl_Client_SetFactionLevel2(Client* self, uint32 char_id, int32 faction_id, uint8 char_class, uint8 char_race, uint8 char_deity, int32 value, uint8 temp) // @categories Faction { self->SetFactionLevel2(char_id, faction_id, char_class, char_race, char_deity, value, temp); } int Perl_Client_GetRawItemAC(Client* self) // @categories Inventory and Items { return self->GetRawItemAC(); } uint32_t Perl_Client_AccountID(Client* self) // @categories Account and Character { return self->AccountID(); } std::string Perl_Client_AccountName(Client* self) // @categories Account and Character { return self->AccountName(); } int16 Perl_Client_Admin(Client* self) // @categories Account and Character { return self->Admin(); } uint32_t Perl_Client_CharacterID(Client* self) // @categories Account and Character { return self->CharacterID(); } void Perl_Client_UpdateAdmin(Client* self) // @categories Account and Character { self->UpdateAdmin(); } void Perl_Client_UpdateAdmin(Client* self, bool from_database) // @categories Account and Character { self->UpdateAdmin(from_database); } void Perl_Client_UpdateWho(Client* self) // @categories Script Utility { self->UpdateWho(); } void Perl_Client_UpdateWho(Client* self, uint8 remove) // @categories Script Utility { self->UpdateWho(remove); } int Perl_Client_GuildRank(Client* self) // @categories Account and Character, Guild { return self->GuildRank(); } uint32_t Perl_Client_GuildID(Client* self) // @categories Account and Character, Guild { return self->GuildID(); } int Perl_Client_GetFace(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetFace(); } bool Perl_Client_TakeMoneyFromPP(Client* self, uint64 copper) // @categories Currency and Points { return self->TakeMoneyFromPP(copper); } bool Perl_Client_TakeMoneyFromPP(Client* self, uint64 copper, bool update_client) // @categories Currency and Points { return self->TakeMoneyFromPP(copper, update_client); } void Perl_Client_AddMoneyToPP(Client* self, uint32 copper, uint32 silver, uint32 gold, uint32 platinum) // @categories Currency and Points { self->AddMoneyToPP(copper, silver, gold, platinum); } void Perl_Client_AddMoneyToPP(Client* self, uint32 copper, uint32 silver, uint32 gold, uint32 platinum, bool update_client) // @categories Currency and Points { self->AddMoneyToPP(copper, silver, gold, platinum, update_client); } bool Perl_Client_TGB(Client* self) // @categories Spells and Disciplines { return self->TGB(); } int Perl_Client_GetSkillPoints(Client* self) // @categories Skills and Recipes { return self->GetSkillPoints(); } void Perl_Client_SetSkillPoints(Client* self, int points) // @categories Skills and Recipes { self->SetSkillPoints(points); } void Perl_Client_IncreaseSkill(Client* self, int skill_id) // @categories Skills and Recipes { self->IncreaseSkill(skill_id); } void Perl_Client_IncreaseSkill(Client* self, int skill_id, int value) // @categories Skills and Recipes { self->IncreaseSkill(skill_id, value); } void Perl_Client_IncreaseLanguageSkill(Client* self, uint8 language_id) // @categories Skills and Recipes { self->IncreaseLanguageSkill(language_id); } void Perl_Client_IncreaseLanguageSkill(Client* self, uint8 language_id, uint8 increase) // @categories Skills and Recipes { self->IncreaseLanguageSkill(language_id, increase); } uint32_t Perl_Client_GetRawSkill(Client* self, int skill_id) // @categories Skills and Recipes { return self->GetRawSkill(static_cast(skill_id)); } bool Perl_Client_HasSkill(Client* self, int skill_id) // @categories Skills and Recipes { return self->HasSkill(static_cast(skill_id)); } bool Perl_Client_CanHaveSkill(Client* self, int skill_id) // @categories Skills and Recipes { return self->CanHaveSkill(static_cast(skill_id)); } void Perl_Client_SetSkill(Client* self, int skill_id, uint16 value) // @categories Skills and Recipes { self->SetSkill(static_cast(skill_id), value); } void Perl_Client_AddSkill(Client* self, int skill_id, uint16 value) // @categories Skills and Recipes { self->AddSkill(static_cast(skill_id), value); } void Perl_Client_CheckSpecializeIncrease(Client* self, uint16 spell_id) // @categories Spells and Disciplines { self->CheckSpecializeIncrease(spell_id); } bool Perl_Client_CheckIncreaseSkill(Client* self, int skill_id) // @categories Skills and Recipes { return self->CheckIncreaseSkill(static_cast(skill_id), nullptr); } bool Perl_Client_CheckIncreaseSkill(Client* self, int skill_id, int chance_modifier) // @categories Skills and Recipes { return self->CheckIncreaseSkill(static_cast(skill_id), nullptr, chance_modifier); } void Perl_Client_SetLanguageSkill(Client* self, uint8 language_id, uint8 language_skill) // @categories Account and Character, Skills and Recipes, Stats and Attributes { self->SetLanguageSkill(language_id, language_skill); } int Perl_Client_MaxSkill(Client* self, uint16 skill_id) // @categories Skills and Recipes { return self->MaxSkill(static_cast(skill_id), self->GetClass(), self->GetLevel()); } int Perl_Client_MaxSkill(Client* self, uint16 skill_id, uint16 class_id) // @categories Skills and Recipes { return self->MaxSkill(static_cast(skill_id), class_id, self->GetLevel()); } int Perl_Client_MaxSkill(Client* self, uint16 skill_id, uint16 class_id, uint16 level) // @categories Skills and Recipes { return self->MaxSkill(static_cast(skill_id), class_id, level); } void Perl_Client_GMKill(Client* self) // @categories Script Utility { self->GMKill(); } bool Perl_Client_IsMedding(Client* self) // @categories Account and Character { return self->IsMedding(); } uint32_t Perl_Client_GetDuelTarget(Client* self) // @categories Account and Character, Script Utility { return self->GetDuelTarget(); } bool Perl_Client_IsDueling(Client* self) // @categories Account and Character { return self->IsDueling(); } void Perl_Client_SetDuelTarget(Client* self, uint32_t set_id) // @categories Account and Character { self->SetDuelTarget(set_id); } void Perl_Client_SetDueling(Client* self, bool duel) // @categories Account and Character, Script Utility { self->SetDueling(duel); } void Perl_Client_ResetAA(Client* self) // @categories Alternative Advancement { self->ResetAA(); } void Perl_Client_MemSpell(Client* self, uint16 spell_id, int slot) // @categories Spells and Disciplines { self->MemSpell(spell_id, slot); } void Perl_Client_MemSpell(Client* self, uint16 spell_id, int slot, bool update_client) // @categories Spells and Disciplines { self->MemSpell(spell_id, slot, update_client); } void Perl_Client_UnmemSpell(Client* self, int slot) // @categories Spells and Disciplines { self->UnmemSpell(slot); } void Perl_Client_UnmemSpell(Client* self, int slot, bool update_client) // @categories Spells and Disciplines { self->UnmemSpell(slot, update_client); } void Perl_Client_UnmemSpellBySpellID(Client* self, int spell_id) // @categories Spells and Disciplines { self->UnmemSpellBySpellID(spell_id); } void Perl_Client_UnmemSpellAll(Client* self) // @categories Spells and Disciplines { self->UnmemSpellAll(); } void Perl_Client_UnmemSpellAll(Client* self, bool update_client) // @categories Spells and Disciplines { self->UnmemSpellAll(update_client); } int Perl_Client_FindEmptyMemSlot(Client* self) // @categories Account and Character, Spells and Disciplines { return self->FindEmptyMemSlot(); } int Perl_Client_FindMemmedSpellBySlot(Client* self, int slot) // @categories Account and Character, Spells and Disciplines { return self->FindMemmedSpellBySlot(slot); } int Perl_Client_FindMemmedSpellBySpellID(Client* self, uint16 spell_id) // @categories Account and Character, Spells and Disciplines { return self->FindMemmedSpellBySpellID(spell_id); } int Perl_Client_MemmedCount(Client* self) // @categories Spells and Disciplines { return self->MemmedCount(); } void Perl_Client_ScribeSpell(Client* self, uint16 spell_id, int slot) // @categories Spells and Disciplines { self->ScribeSpell(spell_id, slot); } void Perl_Client_ScribeSpell(Client* self, uint16 spell_id, int slot, bool update_client) // @categories Spells and Disciplines { self->ScribeSpell(spell_id, slot, update_client); } void Perl_Client_UnscribeSpell(Client* self, int slot) // @categories Spells and Disciplines { self->UnscribeSpell(slot); } void Perl_Client_UnscribeSpell(Client* self, int slot, bool update_client) // @categories Spells and Disciplines { self->UnscribeSpell(slot, update_client); } void Perl_Client_UnscribeSpellAll(Client* self) { self->UnscribeSpellAll(); } void Perl_Client_UnscribeSpellAll(Client* self, bool update_client) { self->UnscribeSpellAll(update_client); } void Perl_Client_TrainDiscBySpellID(Client* self, int spell_id) // @categories Spells and Disciplines { self->TrainDiscBySpellID(spell_id); } int Perl_Client_GetDiscSlotBySpellID(Client* self, int spell_id) // @categories Spells and Disciplines { return self->GetDiscSlotBySpellID(spell_id); } void Perl_Client_UntrainDisc(Client* self, int slot) // @categories Spells and Disciplines { self->UntrainDisc(slot); } void Perl_Client_UntrainDisc(Client* self, int slot, bool update_client) // @categories Spells and Disciplines { self->UntrainDisc(slot, update_client); } void Perl_Client_UntrainDiscAll(Client* self) // @categories Spells and Disciplines { self->UntrainDiscAll(); } void Perl_Client_UntrainDiscAll(Client* self, bool update_client) // @categories Spells and Disciplines { self->UntrainDiscAll(update_client); } bool Perl_Client_IsStanding(Client* self) // @categories Account and Character { return self->IsStanding(); } void Perl_Client_Sit(Client* self) { self->Sit(); } bool Perl_Client_IsSitting(Client* self) // @categories Account and Character { return self->IsSitting(); } bool Perl_Client_IsCrouching(Client* self) // @categories Account and Character { return self->IsCrouching(); } bool Perl_Client_IsBecomeNPC(Client* self) // @categories Account and Character { return self->IsBecomeNPC(); } int Perl_Client_GetBecomeNPCLevel(Client* self) // @categories Experience and Level { return self->GetBecomeNPCLevel(); } void Perl_Client_SetBecomeNPC(Client* self, bool flag) // @categories Account and Character, Stats and Attributes { self->SetBecomeNPC(flag); } void Perl_Client_SetBecomeNPCLevel(Client* self, uint8 level) // @categories Account and Character, Stats and Attributes { self->SetBecomeNPCLevel(level); } void Perl_Client_SetFeigned(Client* self, bool feigned) // @categories Script Utility { self->SetFeigned(feigned); } bool Perl_Client_GetFeigned(Client* self) // @categories Script Utility { return self->GetFeigned(); } bool Perl_Client_AutoSplitEnabled(Client* self) // @categories Currency and Points { return self->AutoSplitEnabled(); } void Perl_Client_SetHorseId(Client* self, uint16_t horseid) // @categories Script Utility { self->SetHorseId(horseid); } int Perl_Client_GetHorseId(Client* self) // @categories Account and Character, Script Utility { return self->GetHorseId(); } uint32 Perl_Client_NukeItem(Client* self, uint32 item_id) // @categories Inventory and Items { return self->NukeItem(item_id, 0xFF); } uint32 Perl_Client_NukeItem(Client* self, uint32 item_id, uint8 slot_to_check) // @categories Inventory and Items { return self->NukeItem(item_id, slot_to_check); } void Perl_Client_SetTint(Client* self, int16 slot_id, uint32 color) // @categories Inventory and Items { self->SetTint(slot_id, color); } void Perl_Client_SetMaterial(Client* self, int16 slot_id, uint32 item_id) // @categories Inventory and Items { self->SetMaterial(slot_id, item_id); } void Perl_Client_Undye(Client* self) // @categories Script Utility { self->Undye(); } int Perl_Client_GetItemIDAt(Client* self, int16 slot_id) // @categories Inventory and Items { return self->GetItemIDAt(slot_id); } int Perl_Client_GetAugmentIDAt(Client* self, int16 slot_id, uint8 aug_slot) // @categories Inventory and Items { return self->GetAugmentIDAt(slot_id, aug_slot); } void Perl_Client_DeleteItemInInventory(Client* self, int16 slot_id) // @categories Inventory and Items { self->DeleteItemInInventory(slot_id); } void Perl_Client_DeleteItemInInventory(Client* self, int16 slot_id, int16 quantity) // @categories Inventory and Items { self->DeleteItemInInventory(slot_id, quantity); } void Perl_Client_DeleteItemInInventory(Client* self, int16 slot_id, int16 quantity, bool client_update) // @categories Inventory and Items { self->DeleteItemInInventory(slot_id, quantity, client_update); } void Perl_Client_SummonItem(Client* self, uint32 item_id) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, 0, 0, 0, 0, 0, 0, attune); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune, uint32 aug1) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, aug1, 0, 0, 0, 0, 0, attune); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune, uint32 aug1, uint32 aug2) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, aug1, aug2, 0, 0, 0, 0, attune); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune, uint32 aug1, uint32 aug2, uint32 aug3) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, aug1, aug2, aug3, 0, 0, 0, attune); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune, uint32 aug1, uint32 aug2, uint32 aug3, uint32 aug4) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, aug1, aug2, aug3, aug4, 0, 0, attune); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune, uint32 aug1, uint32 aug2, uint32 aug3, uint32 aug4, uint32 aug5) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, aug1, aug2, aug3, aug4, aug5, 0, attune); } void Perl_Client_SummonItem(Client* self, uint32 item_id, int16 charges, bool attune, uint32 aug1, uint32 aug2, uint32 aug3, uint32 aug4, uint32 aug5, uint16 slot_id) // @categories Inventory and Items, Script Utility { self->SummonItem(item_id, charges, aug1, aug2, aug3, aug4, aug5, 0, attune, slot_id); } void Perl_Client_SetStats(Client* self, uint8 type, uint16 increase_val) // @categories Account and Character, Stats and Attributes { self->SetStats(type, increase_val); } void Perl_Client_IncStats(Client* self, uint8 type, uint16 increase_val) // @categories Account and Character, Stats and Attributes { self->IncStats(type, increase_val); } void Perl_Client_DropItem(Client* self, int16 slot_id) // @categories Inventory and Items { self->DropItem(slot_id); } void Perl_Client_BreakInvis(Client* self) // @categories Spells and Disciplines, Script Utility { self->BreakInvis(); } Group* Perl_Client_GetGroup(Client* self) // @categories Account and Character, Group { return self->GetGroup(); } void Perl_Client_LeaveGroup(Client* self) // @categories Account and Character, Group { self->LeaveGroup(); } Raid* Perl_Client_GetRaid(Client* self) // @categories Account and Character, Raid { return self->GetRaid(); } bool Perl_Client_IsGrouped(Client* self) // @categories Account and Character, Group { return self->IsGrouped(); } bool Perl_Client_IsRaidGrouped(Client* self) // @categories Account and Character, Group, Raid { return self->IsRaidGrouped(); } bool Perl_Client_Hungry(Client* self) // @categories Account and Character, Stats and Attributes { return self->Hungry(); } bool Perl_Client_Thirsty(Client* self) // @categories Script Utility { return self->Thirsty(); } int Perl_Client_GetInstrumentMod(Client* self, uint16 spell_id) // @categories Spells and Disciplines { return self->GetInstrumentMod(spell_id); } bool Perl_Client_DecreaseByID(Client* self, uint32 type, int16 quantity) // @categories Script Utility { return self->DecreaseByID(type, quantity); } int Perl_Client_SlotConvert2(Client* self, uint8 slot) // @categories Inventory and Items { return self->SlotConvert2(slot); } void Perl_Client_Escape(Client* self) // @categories Account and Character, Skills and Recipes { self->Escape(); } void Perl_Client_RemoveNoRent(Client* self) // @categories Inventory and Items { self->RemoveNoRent(); } void Perl_Client_GoFish(Client* self) // @categories Skills and Recipes { self->GoFish(); } void Perl_Client_ForageItem(Client* self) // @categories Skills and Recipes { self->ForageItem(); } float Perl_Client_CalcPriceMod(Client* self) // @categories Currency and Points { return self->CalcPriceMod(); } float Perl_Client_CalcPriceMod(Client* self, Mob* other) // @categories Currency and Points { return self->CalcPriceMod(other); } float Perl_Client_CalcPriceMod(Client* self, Mob* other, bool reverse) // @categories Currency and Points { return self->CalcPriceMod(other, reverse); } void Perl_Client_ResetTrade(Client* self) // @categories Script Utility { self->ResetTrade(); } bool Perl_Client_UseDiscipline(Client* self, uint32 spell_id, uint32 target) // @categories Spells and Disciplines { return self->UseDiscipline(spell_id, target); } uint32_t Perl_Client_GetDisciplineTimer(Client* self, uint32 timer_id) // @categories Spells and Disciplines { return self->GetDisciplineTimer(timer_id); } void Perl_Client_ResetDisciplineTimer(Client* self, uint32_t timer_id) // @categories Spells and Disciplines { self->ResetDisciplineTimer(timer_id); } int Perl_Client_GetCharacterFactionLevel(Client* self, int faction_id) // @categories Faction { return self->GetCharacterFactionLevel(faction_id); } void Perl_Client_SetZoneFlag(Client* self, uint32 zone_id) // @categories Account and Character, Zones { self->SetZoneFlag(zone_id); } void Perl_Client_ClearZoneFlag(Client* self, uint32 zone_id) // @categories Script Utility { self->ClearZoneFlag(zone_id); } bool Perl_Client_HasZoneFlag(Client* self, uint32 zone_id) // @categories Account and Character { return self->HasZoneFlag(zone_id); } void Perl_Client_SendZoneFlagInfo(Client* self, Client* to) // @categories Account and Character, Zones { self->SendZoneFlagInfo(to); } void Perl_Client_LoadZoneFlags(Client* self) // @categories Zones { self->LoadZoneFlags(); } void Perl_Client_SetAATitle(Client* self, std::string title) // @categories Alternative Advancement { if (title.size() > 31) { throw std::runtime_error("Title must be 31 characters or less."); } self->SetAATitle(title); } void Perl_Client_SetAATitle(Client* self, std::string title, bool save) // @categories Alternative Advancement { if (title.size() > 31) { throw std::runtime_error("Title must be 31 characters or less."); } if (!save) { self->SetAATitle(title); } else { title_manager.CreateNewPlayerTitle(self, title); } } uint32_t Perl_Client_GetClientVersion(Client* self) // @categories Script Utility { return static_cast(self->ClientVersion()); } uint32_t Perl_Client_GetClientVersionBit(Client* self) // @categories Script Utility { return self->ClientVersionBit(); } void Perl_Client_SetTitleSuffix(Client* self, std::string suffix) // @categories Account and Character { if (suffix.size() > 31) { throw std::runtime_error("Suffix must be 31 characters or less."); } self->SetTitleSuffix(suffix); } void Perl_Client_SetTitleSuffix(Client* self, std::string suffix, bool save) // @categories Account and Character { if (suffix.size() > 31) { throw std::runtime_error("Suffix must be 31 characters or less."); } if (!save) { self->SetTitleSuffix(suffix); } else { title_manager.CreateNewPlayerSuffix(self, suffix); } } void Perl_Client_SetAAPoints(Client* self, uint32 points) // @categories Alternative Advancement { return self->SetAAPoints(points); } uint32_t Perl_Client_GetAAPoints(Client* self) // @categories Alternative Advancement, Experience and Level { return self->GetAAPoints(); } uint32_t Perl_Client_GetSpentAA(Client* self) // @categories Alternative Advancement { return self->GetSpentAA(); } void Perl_Client_AddAAPoints(Client* self, uint32 points) // @categories Alternative Advancement { self->AddAAPoints(points); } void Perl_Client_RefundAA(Client* self) // @categories Alternative Advancement { self->RefundAA(); } int Perl_Client_GetModCharacterFactionLevel(Client* self, int faction_id) // @categories Faction { return self->GetModCharacterFactionLevel(faction_id); } uint32_t Perl_Client_GetLDoNWins(Client* self) // @categories Currency and Points { return self->GetLDoNWins(); } uint32_t Perl_Client_GetLDoNLosses(Client* self) // @categories Currency and Points { return self->GetLDoNLosses(); } uint32_t Perl_Client_GetLDoNWinsTheme(Client* self, uint32_t theme) // @categories Currency and Points { return self->GetLDoNWinsTheme(theme); } uint32_t Perl_Client_GetLDoNLossesTheme(Client* self, uint32_t theme) // @categories Currency and Points { return self->GetLDoNLossesTheme(theme); } EQ::ItemInstance* Perl_Client_GetItemAt(Client* self, uint32 slot) // @categories Inventory and Items { return self->GetInv().GetItem(slot); } EQ::ItemInstance* Perl_Client_GetAugmentAt(Client* self, uint32 slot, uint32 aug_slot) // @categories Inventory and Items { EQ::ItemInstance* inst = self->GetInv().GetItem(slot); if (inst) { return inst->GetAugment(aug_slot); } return nullptr; } uint32_t Perl_Client_GetStartZone(Client* self) // @categories Account and Character { return self->GetStartZone(); } void Perl_Client_SetStartZone(Client* self, uint32 zone_id) { self->SetStartZone(zone_id); } void Perl_Client_SetStartZone(Client* self, uint32 zone_id, float x, float y, float z) { self->SetStartZone(zone_id, x, y, z); } void Perl_Client_SetStartZone(Client* self, uint32 zone_id, float x, float y, float z, float heading) { self->SetStartZone(zone_id, x, y, z, heading); } void Perl_Client_KeyRingAdd(Client* self, uint32 item_id) // @categories Account and Character, Inventory and Items { self->KeyRingAdd(item_id);; } bool Perl_Client_KeyRingCheck(Client* self, uint32 item_id) // @categories Account and Character, Inventory and Items { return self->KeyRingCheck(item_id); } void Perl_Client_AddPVPPoints(Client* self, uint32 points) // @categories Currency and Points { self->AddPVPPoints(points);; } void Perl_Client_AddCrystals(Client* self, uint32 radiant_count, uint32 ebon_count) // @categories Currency and Points { if (ebon_count != 0) { if (ebon_count > 0) { self->AddEbonCrystals(ebon_count); return; } self->RemoveEbonCrystals(ebon_count); } if (radiant_count != 0) { if (radiant_count > 0) { self->AddRadiantCrystals(radiant_count); return; } self->RemoveRadiantCrystals(radiant_count); } } void Perl_Client_SetEbonCrystals(Client* self, uint32 value) { self->SetEbonCrystals(value); } void Perl_Client_SetRadiantCrystals(Client* self, uint32 value) { self->SetRadiantCrystals(value); } uint32_t Perl_Client_GetPVPPoints(Client* self) // @categories Currency and Points { return self->GetPVPPoints(); } uint32_t Perl_Client_GetRadiantCrystals(Client* self) // @categories Currency and Points { return self->GetRadiantCrystals(); } uint32_t Perl_Client_GetEbonCrystals(Client* self) // @categories Currency and Points { return self->GetEbonCrystals(); } void Perl_Client_ReadBook(Client* self, const char* book_text, uint8 type) // @categories Script Utility { self->QuestReadBook(book_text, type); } void Perl_Client_SetGMStatus(Client* self, int new_status) // @categories Script Utility { self->SetGMStatus(new_status); } int16 Perl_Client_GetGMStatus(Client* self) // @categories Account and Character { return self->Admin(); } void Perl_Client_UpdateGroupAAs(Client* self, int points, uint32 type) // @categories Alternative Advancement, Group { self->UpdateGroupAAs(points, type); } uint32_t Perl_Client_GetGroupPoints(Client* self) // @categories Account and Character, Group { return self->GetGroupPoints(); } uint32_t Perl_Client_GetRaidPoints(Client* self) // @categories Account and Character, Raid { return self->GetRaidPoints(); } void Perl_Client_LearnRecipe(Client* self, uint32 recipe_id) // @categories Skills and Recipes { self->LearnRecipe(recipe_id); } int64_t Perl_Client_GetEndurance(Client* self) // @categories Stats and Attributes { return self->GetEndurance(); } int64_t Perl_Client_GetMaxEndurance(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetMaxEndurance(); } int Perl_Client_GetEnduranceRatio(Client* self) // @categories Stats and Attributes { return self->GetEndurancePercent(); } void Perl_Client_SetEndurance(Client* self, int endurance) // @categories Account and Character, Stats and Attributes { self->SetEndurance(endurance); } void Perl_Client_SendOPTranslocateConfirm(Client* self, Mob* caster, uint16 spell_id) // @categories Script Utility { self->SendOPTranslocateConfirm(caster, spell_id); } void Perl_Client_NPCSpawn(Client* self, NPC* target_npc, const char* option) // @categories Script Utility, Spawns { return self->NPCSpawn(target_npc, option, 1200); } void Perl_Client_NPCSpawn(Client* self, NPC* target_npc, const char* option, uint32 respawn_time) // @categories Script Utility, Spawns { return self->NPCSpawn(target_npc, option, respawn_time); } uint32_t Perl_Client_GetIP(Client* self) // @categories Script Utility { return self->GetIP(); } void Perl_Client_AddLevelBasedExp(Client* self, uint8 exp_percentage) // @categories Experience and Level { self->AddLevelBasedExp(ExpSource::Quest, exp_percentage); } void Perl_Client_AddLevelBasedExp(Client* self, uint8 exp_percentage, uint8 max_level) // @categories Experience and Level { self->AddLevelBasedExp(ExpSource::Quest, exp_percentage, max_level); } void Perl_Client_AddLevelBasedExp(Client* self, uint8 exp_percentage, uint8 max_level, bool ignore_mods) // @categories Experience and Level { self->AddLevelBasedExp(ExpSource::Quest, exp_percentage, max_level, ignore_mods); } void Perl_Client_IncrementAA(Client* self, uint32 aa_skill_id) // @categories Alternative Advancement { self->IncrementAlternateAdvancementRank(aa_skill_id); } bool Perl_Client_GrantAlternateAdvancementAbility(Client* self, int aa_id, int points) // @categories Alternative Advancement { return self->GrantAlternateAdvancementAbility(aa_id, points); } bool Perl_Client_GrantAlternateAdvancementAbility(Client* self, int aa_id, int points, bool ignore_cost) // @categories Alternative Advancement { return self->GrantAlternateAdvancementAbility(aa_id, points, ignore_cost); } void Perl_Client_ResetAlternateAdvancementRank(Client* self, int aa_id) // @categories Alternative Advancement { return self->ResetAlternateAdvancementRank(aa_id); } uint32_t Perl_Client_GetAALevel(Client* self, uint32 aa_skill_id) // @categories Alternative Advancement, Experience and Level { return self->GetAA(aa_skill_id); } void Perl_Client_MarkCompassLoc(Client* self, float x, float y, float z) // @categories Adventures and Expeditions { self->MarkSingleCompassLoc(x, y, z); } void Perl_Client_ClearCompassMark(Client* self) // @categories Adventures and Expeditions { self->MarkSingleCompassLoc(0, 0, 0, 0); } int Perl_Client_GetFreeSpellBookSlot(Client* self) // @categories Spells and Disciplines { return self->GetNextAvailableSpellBookSlot(); } int Perl_Client_GetFreeSpellBookSlot(Client* self, uint32 start_slot) // @categories Spells and Disciplines { return self->GetNextAvailableSpellBookSlot(start_slot); } int Perl_Client_GetSpellBookSlotBySpellID(Client* self, uint32 spell_id) // @categories Spells and Disciplines { return self->FindSpellBookSlotBySpellID(spell_id); } uint32_t Perl_Client_GetSpellIDByBookSlot(Client* self, int slot_id) { return self->GetSpellIDByBookSlot(slot_id); } void Perl_Client_UpdateTaskActivity(Client* self, int task_id, int activity_id, int count) // @categories Tasks and Activities { self->UpdateTaskActivity(task_id, activity_id, count); } void Perl_Client_UpdateTaskActivity(Client* self, int task_id, int activity_id, int count, bool ignore_quest_update) // @categories Tasks and Activities { self->UpdateTaskActivity(task_id, activity_id, count, ignore_quest_update); } int Perl_Client_GetTaskActivityDoneCount(Client* self, int task_id, int activity_id) // @categories Tasks and Activities { return self->GetTaskActivityDoneCountFromTaskID(task_id, activity_id); } void Perl_Client_AssignTask(Client* self, int task_id) // @categories Tasks and Activities { self->AssignTask(task_id); } void Perl_Client_AssignTask(Client* self, int task_id, int npc_id) // @categories Tasks and Activities { self->AssignTask(task_id, npc_id); } void Perl_Client_AssignTask(Client* self, int task_id, int npc_id, bool enforce_level_requirement) // @categories Tasks and Activities { self->AssignTask(task_id, npc_id, enforce_level_requirement); } void Perl_Client_FailTask(Client* self, int task_id) // @categories Tasks and Activities { self->FailTask(task_id); } bool Perl_Client_IsTaskCompleted(Client* self, int task_id) // @categories Tasks and Activities { return self->IsTaskCompleted(task_id); } bool Perl_Client_IsTaskActive(Client* self, int task_id) // @categories Tasks and Activities { return self->IsTaskActive(task_id); } bool Perl_Client_IsTaskActivityActive(Client* self, int task_id, int activity_id) // @categories Tasks and Activities { return self->IsTaskActivityActive(task_id, activity_id); } void Perl_Client_LockSharedTask(Client* self, bool lock) { return self->LockSharedTask(lock); } void Perl_Client_EndSharedTask(Client* self) { return self->EndSharedTask(); } void Perl_Client_EndSharedTask(Client* self, bool send_fail) { return self->EndSharedTask(send_fail); } int64_t Perl_Client_GetCorpseCount(Client* self) // @categories Account and Character, Corpse { return self->GetCorpseCount(); } uint32_t Perl_Client_GetCorpseID(Client* self, uint8 corpse) // @categories Account and Character, Corpse { return self->GetCorpseID(corpse); } uint32_t Perl_Client_GetCorpseItemAt(Client* self, uint32 corpse_id, uint16 slot_id) // @categories Inventory and Items, Corpse { return self->GetCorpseItemAt(corpse_id, slot_id); } void Perl_Client_AssignToInstance(Client* self, uint16 instance_id) // @categories Adventures and Expeditions { self->AssignToInstance(instance_id); } void Perl_Client_RemoveFromInstance(Client* self, uint16 instance_id) // @categories Adventures and Expeditions { self->RemoveFromInstance(instance_id); } void Perl_Client_Freeze(Client* self) { self->SendAppearancePacket(AppearanceType::Animation, Animation::Freeze); } void Perl_Client_UnFreeze(Client* self) { self->SendAppearancePacket(AppearanceType::Animation, Animation::Standing); } uint32 Perl_Client_GetAggroCount(Client* self) // @categories Script Utility, Hate and Aggro { return self->GetAggroCount(); } uint64_t Perl_Client_GetCarriedMoney(Client* self) // @categories Currency and Points { return self->GetCarriedMoney(); } uint64_t Perl_Client_GetAllMoney(Client* self) // @categories Currency and Points { return self->GetAllMoney(); } EQ::ItemInstance* Perl_Client_GetItemInInventory(Client* self, int16 slot_id) // @categories Inventory and Items { return self->GetInv().GetItem(slot_id); } void Perl_Client_SetCustomItemData(Client* self, int16 slot_id, std::string identifier, std::string value) // @categories Inventory and Items { self->GetInv().SetCustomItemData(self->CharacterID(), slot_id, identifier, value); } std::string Perl_Client_GetCustomItemData(Client* self, int16 slot_id, std::string identifier) // @categories Inventory and Items, Corpse { return self->GetInv().GetCustomItemData(slot_id, identifier); } void Perl_Client_OpenLFGuildWindow(Client* self) // @categories Script Utility, Guild { self->OpenLFGuildWindow(); } void Perl_Client_NotifyNewTitlesAvailable(Client* self) // @categories Account and Character { self->NotifyNewTitlesAvailable(); } void Perl_Client_AddAlternateCurrencyValue(Client* self, uint32 currency_id, int amount) // @categories Currency and Points { self->AddAlternateCurrencyValue(currency_id, amount, true); } void Perl_Client_SetAlternateCurrencyValue(Client* self, uint32 currency_id, uint32 amount) // @categories Currency and Points { self->SetAlternateCurrencyValue(currency_id, amount); } uint32 Perl_Client_GetAlternateCurrencyValue(Client* self, uint32_t currency_id) // @categories Currency and Points { return self->GetAlternateCurrencyValue(currency_id); } void Perl_Client_SendWebLink(Client* self, const char* url) // @categories Script Utility { self->SendWebLink(url); } int Perl_Client_GetInstanceID(Client* self) // @categories Adventures and Expeditions { return self->GetInstanceID(); } bool Perl_Client_HasSpellScribed(Client* self, int spell_id) // @categories Spells and Disciplines { return self->HasSpellScribed(spell_id); } void Perl_Client_ClearAccountFlag(Client* self, std::string flag) // @categories Account and Character { self->ClearAccountFlag(flag); } void Perl_Client_SetAccountFlag(Client* self, std::string flag, std::string value) // @categories Account and Character { self->SetAccountFlag(flag, value); } std::string Perl_Client_GetAccountFlag(Client* self, std::string flag) // @categories Account and Character { return self->GetAccountFlag(flag); } perl::array Perl_Client_GetAccountFlags(Client* self) { perl::array result; const auto& l = self->GetAccountFlags(); result.reserve(l.size()); for (const auto& e : l) { result.push_back(e); } return result; } int Perl_Client_GetHunger(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetHunger(); } int Perl_Client_GetThirst(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetThirst(); } int Perl_Client_GetIntoxication(Client* self) // @categories Account and Character, Stats and Attributes { return self->GetIntoxication(); } void Perl_Client_SetHunger(Client* self, int in_hunger) // @categories Script Utility, Stats and Attributes { self->SetHunger(in_hunger); } void Perl_Client_SetThirst(Client* self, int in_thirst) // @categories Account and Character, Stats and Attributes { self->SetThirst(in_thirst); } void Perl_Client_SendTargetCommand(Client* self, uint32 entity_id) // @categories Script Utility { self->SendTargetCommand(entity_id); } void Perl_Client_SetConsumption(Client* self, int hunger_amount, int thirst_amount) // @categories Script Utility, Stats and Attributes { self->SetConsumption(hunger_amount, thirst_amount); } void Perl_Client_SilentMessage(Client* self, const char* message) // @categories Script Utility { if (self->GetTarget() != NULL) { if (self->GetTarget()->IsNPC()) { if (DistanceSquaredNoZ(self->GetPosition(), self->GetTarget()->GetPosition()) <= 200) { if (self->GetTarget()->CastToNPC()->IsMoving() && !self->GetTarget()->CastToNPC()->IsOnHatelist(self->GetTarget())) self->GetTarget()->CastToNPC()->PauseWandering(RuleI(NPC, SayPauseTimeInSec)); self->ChannelMessageReceived(ChatChannel_Say, Language::CommonTongue, Language::MaxValue, message, nullptr, true); } } } } void Perl_Client_PlayMP3(Client* self, const char* file) // @categories Script Utility { self->PlayMP3(file); } // todo: this is some legacy api for 'cust_inst_players' and can possibly be removed (not related to current expeditions) void Perl_Client_ExpeditionMessage(Client* self, int expedition_id, const char* message) // @categories Adventures and Expeditions { self->ExpeditionSay(message, expedition_id); } void Perl_Client_SendColoredText(Client* self, uint32 color, std::string msg) // @categories Script Utility { self->SendColoredText(color, std::move(msg)); } void Perl_Client_SendSpellAnim(Client* self, uint16 targetid, uint16 spell_id) { self->SendSpellAnim(targetid, spell_id); } float Perl_Client_GetTargetRingX(Client* self) // @categories Script Utility { return self->GetTargetRingX(); } float Perl_Client_GetTargetRingY(Client* self) // @categories Script Utility { return self->GetTargetRingY(); } float Perl_Client_GetTargetRingZ(Client* self) // @categories Script Utility { return self->GetTargetRingZ(); } uint64_t Perl_Client_CalcEXP(Client* self, uint8 consider_level) { return self->CalcEXP(consider_level); } uint64_t Perl_Client_CalcEXP(Client* self, uint8 consider_level, bool ignore_modifiers) { return self->CalcEXP(consider_level, ignore_modifiers); } void Perl_Client_QuestReward(Client* self, Mob* mob) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper, uint32 silver) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper, silver); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper, uint32 silver, uint32 gold) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper, silver, gold); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper, uint32 silver, uint32 gold, uint32 platinum) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper, silver, gold, platinum); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper, uint32 silver, uint32 gold, uint32 platinum, uint32 item_id) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper, silver, gold, platinum, item_id); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper, uint32 silver, uint32 gold, uint32 platinum, uint32 item_id, uint32 exp) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper, silver, gold, platinum, item_id, exp); } void Perl_Client_QuestReward(Client* self, Mob* mob, uint32 copper, uint32 silver, uint32 gold, uint32 platinum, uint32 item_id, uint32 exp, bool faction) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction { self->QuestReward(mob, copper, silver, gold, platinum, item_id, exp, faction); } void Perl_Client_CashReward(Client* self, uint32 copper, uint32 silver, uint32 gold, uint32 platinum) { self->CashReward(copper, silver, gold, platinum); } uint32_t Perl_Client_GetMoney(Client* self, int8 type, int8 subtype) { return self->GetMoney(type, subtype); } int Perl_Client_GetAccountAge(Client* self) { return self->GetAccountAge(); } void Perl_Client_Popup2(Client* self, const char* title, const char* text) // @categories Script Utility { self->SendFullPopup(title, text); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id) // @categories Script Utility { self->SendFullPopup(title, text, popup_id); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id, uint32 negative_id) // @categories Script Utility { self->SendFullPopup(title, text, popup_id, negative_id); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id, uint32 negative_id, uint32 buttons) // @categories Script Utility { self->SendFullPopup(title, text, popup_id, negative_id, buttons); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id, uint32 negative_id, uint32 buttons, uint32 duration) // @categories Script Utility { self->SendFullPopup(title, text, popup_id, negative_id, buttons, duration); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id, uint32 negative_id, uint32 buttons, uint32 duration, const char* button_name_0) // @categories Script Utility { self->SendFullPopup(title, text, popup_id, negative_id, buttons, duration, button_name_0); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id, uint32 negative_id, uint32 buttons, uint32 duration, const char* button_name_0, const char* button_name_1) // @categories Script Utility { self->SendFullPopup(title, text, popup_id, negative_id, buttons, duration, button_name_0, button_name_1); } void Perl_Client_Popup2(Client* self, const char* title, const char* text, uint32 popup_id, uint32 negative_id, uint32 buttons, uint32 duration, const char* button_name_0, const char* button_name_1, uint32 sound_controls) // @categories Script Utility { self->SendFullPopup(title, text, popup_id, negative_id, buttons, duration, button_name_0, button_name_1, sound_controls); } void Perl_Client_SetPrimaryWeaponOrnamentation(Client* self, int model_id) // @categories Account and Character, Inventory and Items { self->SetPrimaryWeaponOrnamentation(model_id); } void Perl_Client_SetSecondaryWeaponOrnamentation(Client* self, int model_id) // @categories Account and Character, Inventory and Items { self->SetSecondaryWeaponOrnamentation(model_id); } void Perl_Client_SetClientMaxLevel(Client* self, uint8 max_level) { self->SetClientMaxLevel(max_level); } int Perl_Client_GetClientMaxLevel(Client* self) { return self->GetClientMaxLevel(); } DynamicZoneLocation GetDynamicZoneLocationFromHash(perl::hash table) { // dynamic zone helper method, defaults invalid/missing keys to 0 perl::scalar zone = table["zone"]; uint32_t zone_id = zone.is_string() ? ZoneID(zone.c_str()) : zone.as(); float x = table.exists("x") ? table["x"] : 0.0f; float y = table.exists("y") ? table["y"] : 0.0f; float z = table.exists("z") ? table["z"] : 0.0f; float h = table.exists("h") ? table["h"] : 0.0f; return { zone_id, x, y, z, h }; } Expedition* Perl_Client_CreateExpedition(Client* self, perl::reference table_ref) { perl::hash table = table_ref; perl::hash expedition = table["expedition"]; perl::hash instance = table["instance"]; perl::scalar zone = instance["zone"]; uint32_t version = instance["version"]; uint32_t duration = instance["duration"]; uint32_t zone_id = zone.is_string() ? ZoneID(zone.c_str()) : zone.as(); DynamicZone dz{ zone_id, version, duration, DynamicZoneType::Expedition }; dz.SetName(expedition["name"]); dz.SetMinPlayers(expedition["min_players"]); dz.SetMaxPlayers(expedition["max_players"]); if (table.exists("compass")) { auto compass = GetDynamicZoneLocationFromHash(table["compass"]); dz.SetCompass(compass); } if (table.exists("safereturn")) { auto safereturn = GetDynamicZoneLocationFromHash(table["safereturn"]); dz.SetSafeReturn(safereturn); } if (table.exists("zonein")) { auto zonein = GetDynamicZoneLocationFromHash(table["zonein"]); dz.SetZoneInLocation(zonein); } if (table.exists("switchid")) { dz.SetSwitchID(table["switchid"].as()); } if (expedition.exists("disable_messages")) { return self->CreateExpedition(dz, expedition["disable_messages"].as()); } return self->CreateExpedition(dz); } Expedition* Perl_Client_CreateExpedition(Client* self, std::string zone_name, uint32 version, uint32 duration, std::string expedition_name, uint32 min_players, uint32 max_players) { return self->CreateExpedition(zone_name, version, duration, expedition_name, min_players, max_players); } Expedition* Perl_Client_CreateExpedition(Client* self, std::string zone_name, uint32 version, uint32 duration, std::string expedition_name, uint32 min_players, uint32 max_players, bool disable_messages) { return self->CreateExpedition(zone_name, version, duration, expedition_name, min_players, max_players, disable_messages); } Expedition* Perl_Client_CreateExpeditionFromTemplate(Client* self, uint32_t dz_template_id) { return self->CreateExpeditionFromTemplate(dz_template_id); } void Perl_Client_CreateTaskDynamicZone(Client* self, int task_id, perl::reference table_ref) { perl::hash table = table_ref; perl::hash instance = table["instance"]; perl::scalar zone = instance["zone"]; uint32_t version = instance["version"]; uint32_t zone_id = zone.is_string() ? ZoneID(zone.c_str()) : zone.as(); // tasks override dz duration so duration is ignored here DynamicZone dz{ zone_id, version, 0, DynamicZoneType::None }; if (table.exists("compass")) { auto compass = GetDynamicZoneLocationFromHash(table["compass"]); dz.SetCompass(compass); } if (table.exists("safereturn")) { auto safereturn = GetDynamicZoneLocationFromHash(table["safereturn"]); dz.SetSafeReturn(safereturn); } if (table.exists("zonein")) { auto zonein = GetDynamicZoneLocationFromHash(table["zonein"]); dz.SetZoneInLocation(zonein); } if (table.exists("switchid")) { dz.SetSwitchID(table["switchid"].as()); } self->CreateTaskDynamicZone(task_id, dz); } Expedition* Perl_Client_GetExpedition(Client* self) { return self->GetExpedition(); } perl::reference Perl_Client_GetExpeditionLockouts(Client* self) { perl::hash lockout_hash; auto lockouts = self->GetExpeditionLockouts(); for (const auto& lockout : lockouts) { if (!lockout_hash.exists(lockout.GetExpeditionName())) { lockout_hash[lockout.GetExpeditionName()] = perl::reference(perl::hash()); } perl::hash events = lockout_hash[lockout.GetExpeditionName()]; // nested events[lockout.GetEventName()] = lockout.GetSecondsRemaining(); } return perl::reference(lockout_hash); } perl::reference Perl_Client_GetExpeditionLockouts(Client* self, std::string expedition_name) { perl::hash event_hash; auto lockouts = self->GetExpeditionLockouts(expedition_name); for (const auto& lockout : lockouts) { event_hash[lockout.GetEventName()] = lockout.GetSecondsRemaining(); } return perl::reference(event_hash); } std::string Perl_Client_GetLockoutExpeditionUUID(Client* self, std::string expedition_name, std::string event_name) { auto lockout = self->GetExpeditionLockout(expedition_name, event_name); return lockout ? lockout->GetExpeditionUUID() : std::string{}; } void Perl_Client_AddExpeditionLockout(Client* self, std::string expedition_name, std::string event_name, uint32 seconds) { self->AddNewExpeditionLockout(expedition_name, event_name, seconds); } void Perl_Client_AddExpeditionLockout(Client* self, std::string expedition_name, std::string event_name, uint32 seconds, std::string uuid) { self->AddNewExpeditionLockout(expedition_name, event_name, seconds, uuid); } void Perl_Client_AddExpeditionLockoutDuration(Client* self, std::string expedition_name, std::string event_name, int seconds) { self->AddExpeditionLockoutDuration(expedition_name, event_name, seconds, {}, true); } void Perl_Client_AddExpeditionLockoutDuration(Client* self, std::string expedition_name, std::string event_name, int seconds, std::string uuid) { self->AddExpeditionLockoutDuration(expedition_name, event_name, seconds, uuid, true); } void Perl_Client_RemoveAllExpeditionLockouts(Client* self) { self->RemoveAllExpeditionLockouts({}, true); } void Perl_Client_RemoveAllExpeditionLockouts(Client* self, std::string expedition_name) { self->RemoveAllExpeditionLockouts(expedition_name, true); } void Perl_Client_RemoveExpeditionLockout(Client* self, std::string expedition_name, std::string event_name) { self->RemoveExpeditionLockout(expedition_name, event_name, true); } bool Perl_Client_HasExpeditionLockout(Client* self, std::string expedition_name, std::string event_name) { return self->HasExpeditionLockout(expedition_name, event_name); } void Perl_Client_MovePCDynamicZone(Client* self, perl::scalar zone) { uint32_t zone_id = zone.is_string() ? ZoneID(zone.c_str()) : zone.as(); self->MovePCDynamicZone(zone_id); } void Perl_Client_MovePCDynamicZone(Client* self, perl::scalar zone, int zone_version) { uint32_t zone_id = zone.is_string() ? ZoneID(zone.c_str()) : zone.as(); self->MovePCDynamicZone(zone_id, zone_version); } void Perl_Client_MovePCDynamicZone(Client* self, perl::scalar zone, int zone_version, bool msg_if_invalid) { uint32_t zone_id = zone.is_string() ? ZoneID(zone.c_str()) : zone.as(); self->MovePCDynamicZone(zone_id, zone_version, msg_if_invalid); } void Perl_Client_Fling(Client* self, float target_x, float target_y, float target_z) { self->Fling(0, target_x, target_y, target_z, false, false, true); } void Perl_Client_Fling(Client* self, float target_x, float target_y, float target_z, bool ignore_los) { self->Fling(0, target_x, target_y, target_z, ignore_los, false, true); } void Perl_Client_Fling(Client* self, float target_x, float target_y, float target_z, bool ignore_los, bool clip_through_walls) { self->Fling(0, target_x, target_y, target_z, ignore_los, clip_through_walls, true); } void Perl_Client_Fling(Client* self, float value, float target_x, float target_y, float target_z) { self->Fling(value, target_x, target_y, target_z); } void Perl_Client_Fling(Client* self, float value, float target_x, float target_y, float target_z, bool ignore_los) { self->Fling(value, target_x, target_y, target_z, ignore_los); } void Perl_Client_Fling(Client* self, float value, float target_x, float target_y, float target_z, bool ignore_los, bool clip_through_walls) { self->Fling(value, target_x, target_y, target_z, ignore_los, clip_through_walls); } bool Perl_Client_HasDisciplineLearned(Client* self, uint16 spell_id) { return self->HasDisciplineLearned(spell_id); } uint16_t Perl_Client_GetClassBitmask(Client* self) { return GetPlayerClassBit(self->GetClass()); } uint32_t Perl_Client_GetDeityBitmask(Client* self) { return static_cast(EQ::deity::GetDeityBitmask(static_cast(self->GetDeity()))); } uint16_t Perl_Client_GetRaceBitmask(Client* self) // @categories Stats and Attributes { return GetPlayerRaceBit(self->GetBaseRace()); } perl::array Perl_Client_GetLearnableDisciplines(Client* self) { perl::array result; auto learnable_disciplines = self->GetLearnableDisciplines(); for (int i = 0; i < learnable_disciplines.size(); ++i) { result.push_back(learnable_disciplines[i]); } return result; } perl::array Perl_Client_GetLearnableDisciplines(Client* self, uint8 min_level) { perl::array result; auto learnable_disciplines = self->GetLearnableDisciplines(min_level); for (int i = 0; i < learnable_disciplines.size(); ++i) { result.push_back(learnable_disciplines[i]); } return result; } perl::array Perl_Client_GetLearnableDisciplines(Client* self, uint8 min_level, uint8 max_level) { perl::array result; auto learnable_disciplines = self->GetLearnableDisciplines(min_level, max_level); for (int i = 0; i < learnable_disciplines.size(); ++i) { result.push_back(learnable_disciplines[i]); } return result; } perl::array Perl_Client_GetLearnedDisciplines(Client* self) { perl::array result; auto learned_disciplines = self->GetLearnedDisciplines(); for (int i = 0; i < learned_disciplines.size(); ++i) { result.push_back(learned_disciplines[i]); } return result; } perl::array Perl_Client_GetMemmedSpells(Client* self) { perl::array result; auto memmed_spells = self->GetMemmedSpells(); for (int i = 0; i < memmed_spells.size(); ++i) { result.push_back(memmed_spells[i]); } return result; } perl::array Perl_Client_GetScribeableSpells(Client* self) { perl::array result; auto scribeable_spells = self->GetScribeableSpells(); for (int i = 0; i < scribeable_spells.size(); ++i) { result.push_back(scribeable_spells[i]); } return result; } perl::array Perl_Client_GetScribeableSpells(Client* self, uint8 min_level) { perl::array result; auto scribeable_spells = self->GetScribeableSpells(min_level); for (int i = 0; i < scribeable_spells.size(); ++i) { result.push_back(scribeable_spells[i]); } return result; } perl::array Perl_Client_GetScribeableSpells(Client* self, uint8 min_level, uint8 max_level) { perl::array result; auto scribeable_spells = self->GetScribeableSpells(min_level, max_level); for (int i = 0; i < scribeable_spells.size(); ++i) { result.push_back(scribeable_spells[i]); } return result; } perl::array Perl_Client_GetScribedSpells(Client* self) { perl::array result; auto scribed_spells = self->GetScribedSpells(); for (int i = 0; i < scribed_spells.size(); ++i) { result.push_back(scribed_spells[i]); } return result; } EQ::InventoryProfile* Perl_Client_GetInventory(Client* self) { return &self->GetInv(); } float Perl_Client_GetAAEXPModifier(Client* self) { return zone->GetAAEXPModifier(self); } float Perl_Client_GetAAEXPModifier(Client* self, uint32 zone_id) { return self->GetAAEXPModifier(zone_id); } float Perl_Client_GetAAEXPModifier(Client* self, uint32 zone_id, int16 instance_version) { return self->GetAAEXPModifier(zone_id, instance_version); } float Perl_Client_GetEXPModifier(Client* self) { return zone->GetEXPModifier(self); } float Perl_Client_GetEXPModifier(Client* self, uint32 zone_id) { return self->GetEXPModifier(zone_id); } float Perl_Client_GetEXPModifier(Client* self, uint32 zone_id, int16 instance_version) { return self->GetEXPModifier(zone_id, instance_version); } void Perl_Client_SetAAEXPModifier(Client* self, float aa_modifier) { zone->SetAAEXPModifier(self, aa_modifier); } void Perl_Client_SetAAEXPModifier(Client* self, uint32 zone_id, float aa_modifier) { self->SetAAEXPModifier(zone_id, aa_modifier); } void Perl_Client_SetAAEXPModifier(Client* self, uint32 zone_id, float aa_modifier, int16 instance_version) { self->SetAAEXPModifier(zone_id, aa_modifier, instance_version); } void Perl_Client_SetEXPModifier(Client* self, float exp_modifier) { zone->SetEXPModifier(self, exp_modifier); } void Perl_Client_SetEXPModifier(Client* self, uint32 zone_id, float exp_modifier) { self->SetEXPModifier(zone_id, exp_modifier); } void Perl_Client_SetEXPModifier(Client* self, uint32 zone_id, float exp_modifier, int16 instance_version) { self->SetEXPModifier(zone_id, exp_modifier, instance_version); } void Perl_Client_AddLDoNLoss(Client* self, uint32 theme_id) { self->UpdateLDoNWinLoss(theme_id); } void Perl_Client_AddLDoNWin(Client* self, uint32 theme_id) { self->UpdateLDoNWinLoss(theme_id, true); } void Perl_Client_SetHideMe(Client* self, bool hide_me_state) { self->SetHideMe(hide_me_state); } void Perl_Client_ResetAllDisciplineTimers(Client* self) // @categories Spells and Disciplines { self->ResetAllDisciplineTimers(); } void Perl_Client_SendToInstance(Client* self, std::string instance_type, std::string zone_short_name, uint32 instance_version, float x, float y, float z, float heading, std::string instance_identifier, uint32 duration) { self->SendToInstance(instance_type, zone_short_name, instance_version, x, y, z, heading, instance_identifier, duration); } int Perl_Client_CountItem(Client* self, uint32 item_id) { return self->CountItem(item_id); } void Perl_Client_RemoveItem(Client* self, uint32 item_id) // @categories Spells and Disciplines { self->RemoveItem(item_id); } void Perl_Client_RemoveItem(Client* self, uint32 item_id, uint32 quantity) // @categories Spells and Disciplines { self->RemoveItem(item_id, quantity); } void Perl_Client_DialogueWindow(Client* self, std::string window_markdown) // @categories Script Utility { DialogueWindow::Render(self, std::move(window_markdown)); } void Perl_Client_DiaWind(Client* self, std::string window_markdown) // @categories Script Utility { DialogueWindow::Render(self, std::move(window_markdown)); } int Perl_Client_GetIPExemption(Client* self) // @categories Account and Character { return self->GetIPExemption(); } std::string Perl_Client_GetIPString(Client* self) // @categories Account and Character { return self->GetIPString(); } void Perl_Client_SetIPExemption(Client* self, int exemption_amount) // @categories Account and Character { self->SetIPExemption(exemption_amount); } void Perl_Client_ReadBookByName(Client* self, std::string book_name, uint8 book_type) // @categories Script Utility { self->ReadBookByName(book_name, book_type); } void Perl_Client_UntrainDiscBySpellID(Client* self, uint16 spell_id) // @categories Spells and Disciplines { self->UntrainDiscBySpellID(spell_id); } void Perl_Client_UntrainDiscBySpellID(Client* self, uint16 spell_id, bool update_client) // @categories Spells and Disciplines { self->UntrainDiscBySpellID(spell_id, update_client); } void Perl_Client_SummonBaggedItems(Client* self, uint32 bag_item_id, perl::reference bag_items_ref) // @categories Inventory and Items, Script Utility { std::vector bagged_items; perl::array bag_items = bag_items_ref; for (perl::hash bag_item : bag_items) // only works if all elements are hashrefs { if (bag_item.exists("item_id") && bag_item.exists("charges")) { LootItem item{}; item.item_id = bag_item["item_id"]; item.charges = bag_item["charges"]; item.attuned = bag_item.exists("attuned") ? bag_item["attuned"] : 0; item.aug_1 = bag_item.exists("augment_one") ? bag_item["augment_one"] : 0; item.aug_2 = bag_item.exists("augment_two") ? bag_item["augment_two"] : 0; item.aug_3 = bag_item.exists("augment_three") ? bag_item["augment_three"] : 0; item.aug_4 = bag_item.exists("augment_four") ? bag_item["augment_four"] : 0; item.aug_5 = bag_item.exists("augment_five") ? bag_item["augment_five"] : 0; item.aug_6 = bag_item.exists("augment_six") ? bag_item["augment_six"] : 0; bagged_items.emplace_back(item); } } self->SummonBaggedItems(bag_item_id, bagged_items); } void Perl_Client_RemoveLDoNLoss(Client* self, uint32 theme_id) { self->UpdateLDoNWinLoss(theme_id, false, true); } void Perl_Client_RemoveLDoNWin(Client* self, uint32 theme_id) { self->UpdateLDoNWinLoss(theme_id, true, true); } int Perl_Client_GetFreeDisciplineSlot(Client* self) // @categories Spells and Disciplines { return self->GetNextAvailableDisciplineSlot(); } int Perl_Client_GetFreeDisciplineSlot(Client* self, int starting_slot) // @categories Spells and Disciplines { return self->GetNextAvailableDisciplineSlot(starting_slot); } int Perl_Client_ScribeSpells(Client* self, uint8 min_level, uint8 max_level) // @categories Spells and Disciplines { return self->ScribeSpells(min_level, max_level); } int Perl_Client_LearnDisciplines(Client* self, uint8 min_level, uint8 max_level) // @categories Spells and Disciplines { return self->LearnDisciplines(min_level, max_level); } void Perl_Client_ResetCastbarCooldownBySlot(Client* self, int slot) { self->ResetCastbarCooldownBySlot(slot); } void Perl_Client_ResetAllCastbarCooldowns(Client* self) { self->ResetAllCastbarCooldowns(); } void Perl_Client_ResetCastbarCooldownBySpellID(Client* self, uint32 spell_id) { self->ResetCastbarCooldownBySpellID(spell_id); } void Perl_Client_UnscribeSpellBySpellID(Client* self, uint16 spell_id) { self->UnscribeSpellBySpellID(spell_id); } void Perl_Client_UnscribeSpellBySpellID(Client* self, uint16 spell_id, bool update_client) { self->UnscribeSpellBySpellID(spell_id, update_client); } int Perl_Client_GetEnvironmentDamageModifier(Client* self) // @categories Script Utility { return self->GetEnvironmentDamageModifier(); } void Perl_Client_SetEnvironmentDamageModifier(Client* self, int modifier) // @categories Script Utility { self->SetEnvironmentDamageModifier(modifier); } bool Perl_Client_GetInvulnerableEnvironmentDamage(Client* self) // @categories Script Utility { return self->GetInvulnerableEnvironmentDamage(); } void Perl_Client_SetInvulnerableEnvironmentDamage(Client* self, bool invul) // @categories Script Utility { self->SetInvulnerableEnvironmentDamage(invul); } void Perl_Client_AddItem(Client* self, perl::reference table_ref) { perl::hash table = table_ref; if (!table.exists("item_id") || !table.exists("charges")) { return; } uint32 item_id = table["item_id"]; int16 charges = table["charges"]; uint32 augment_one = table.exists("augment_one") ? table["augment_one"] : 0; uint32 augment_two = table.exists("augment_two") ? table["augment_two"] : 0; uint32 augment_three = table.exists("augment_three") ? table["augment_three"] : 0; uint32 augment_four = table.exists("augment_four") ? table["augment_four"] : 0; uint32 augment_five = table.exists("augment_five") ? table["augment_five"] : 0; uint32 augment_six = table.exists("augment_six") ? table["augment_six"] : 0; bool attuned = table.exists("attuned") ? table["attuned"] : false; uint16 slot_id = table.exists("slot_id") ? table["slot_id"] : EQ::invslot::slotCursor; self->SummonItem(item_id, charges, augment_one, augment_two, augment_three, augment_four, augment_five, augment_six, attuned, slot_id); } int Perl_Client_CountAugmentEquippedByID(Client* self, uint32 item_id) { return self->GetInv().CountAugmentEquippedByID(item_id); } bool Perl_Client_HasAugmentEquippedByID(Client* self, uint32 item_id) { return self->GetInv().HasAugmentEquippedByID(item_id); } int Perl_Client_CountItemEquippedByID(Client* self, uint32 item_id) { return self->GetInv().CountItemEquippedByID(item_id); } bool Perl_Client_HasItemEquippedByID(Client* self, uint32 item_id) { return self->GetInv().HasItemEquippedByID(item_id); } void Perl_Client_AddPlatinum(Client* self, uint32 platinum) { self->AddPlatinum(platinum); } void Perl_Client_AddPlatinum(Client* self, uint32 platinum, bool update_client) { self->AddPlatinum(platinum, update_client); } uint32 Perl_Client_GetCarriedPlatinum(Client* self) { return self->GetCarriedPlatinum(); } bool Perl_Client_TakePlatinum(Client* self, uint32 platinum) { return self->TakePlatinum(platinum); } bool Perl_Client_TakePlatinum(Client* self, uint32 platinum, bool update_client) { return self->TakePlatinum(platinum, update_client); } void Perl_Client_ClearPEQZoneFlag(Client* self, uint32 zone_id) { self->ClearPEQZoneFlag(zone_id); } bool Perl_Client_HasPEQZoneFlag(Client* self, uint32 zone_id) { return self->HasPEQZoneFlag(zone_id); } void Perl_Client_LoadPEQZoneFlags(Client* self) { self->LoadPEQZoneFlags(); } void Perl_Client_SendPEQZoneFlagInfo(Client* self, Client* to) { self->SendPEQZoneFlagInfo(to); } void Perl_Client_SetPEQZoneFlag(Client* self, uint32 zone_id) { self->SetPEQZoneFlag(zone_id); } int Perl_Client_GetHealAmount(Client* self) { return self->GetHealAmt(); } int Perl_Client_GetSpellDamage(Client* self) { return self->GetSpellDmg(); } void Perl_Client_TaskSelector(Client* self, perl::array task_ids) { std::vector tasks; for (int i = 0; i < task_ids.size() && i < MAXCHOOSERENTRIES; ++i) { tasks.push_back(task_ids[i]); } self->TaskQuestSetSelector(self, tasks, false); } void Perl_Client_TaskSelectorNoCooldown(Client* self, perl::array task_ids) { std::vector tasks; for (int i = 0; i < task_ids.size() && i < MAXCHOOSERENTRIES; ++i) { tasks.push_back(task_ids[i]); } self->TaskQuestSetSelector(self, tasks, true); } bool Perl_Client_TeleportToPlayerByCharacterID(Client* self, uint32 character_id) { return self->GotoPlayer(database.GetCharNameByID(character_id)); } bool Perl_Client_TeleportToPlayerByName(Client* self, std::string player_name) { return self->GotoPlayer(player_name); } bool Perl_Client_TeleportGroupToPlayerByCharacterID(Client* self, uint32 character_id) { return self->GotoPlayerGroup(database.GetCharNameByID(character_id)); } bool Perl_Client_TeleportGroupToPlayerByName(Client* self, std::string player_name) { return self->GotoPlayerGroup(player_name); } bool Perl_Client_TeleportRaidToPlayerByCharacterID(Client* self, uint32 character_id) { return self->GotoPlayerRaid(database.GetCharNameByID(character_id)); } bool Perl_Client_TeleportRaidToPlayerByName(Client* self, std::string player_name) { return self->GotoPlayerRaid(player_name); } int Perl_Client_GetRecipeMadeCount(Client* self, uint32 recipe_id) // @categories Skills and Recipes { return self->GetRecipeMadeCount(recipe_id); } bool Perl_Client_HasRecipeLearned(Client* self, uint32 recipe_id) // @categories Skills and Recipes { return self->HasRecipeLearned(recipe_id); } bool Perl_Client_SendGMCommand(Client* self, std::string message) // @categories Script Utility { return self->SendGMCommand(message); } bool Perl_Client_SendGMCommand(Client* self, std::string message, bool ignore_status) // @categories Script Utility { return self->SendGMCommand(message, ignore_status); } void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, std::string message) // @categories Script Utility { self->SendMarqueeMessage(type, message); } void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, std::string message, uint32 duration) // @categories Script Utility { self->SendMarqueeMessage(type, message, duration); } void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message) // @categories Script Utility { self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message); } void Perl_Client_MoveZone(Client* self, const char* zone_short_name) // @categories Script Utility { self->MoveZone(zone_short_name); } void Perl_Client_MoveZone(Client* self, const char* zone_short_name, float x, float y, float z) // @categories Script Utility { self->MoveZone(zone_short_name, glm::vec4(x, y, z, 0.0f)); } void Perl_Client_MoveZone(Client* self, const char* zone_short_name, float x, float y, float z, float heading) // @categories Script Utility { self->MoveZone(zone_short_name, glm::vec4(x, y, z, heading)); } void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name) // @categories Script Utility, Group { self->MoveZoneGroup(zone_short_name); } void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name, float x, float y, float z) // @categories Script Utility { self->MoveZoneGroup(zone_short_name, glm::vec4(x, y, z, 0.0f)); } void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name, float x, float y, float z, float heading) // @categories Script Utility { self->MoveZoneGroup(zone_short_name, glm::vec4(x, y, z, heading)); } void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name) // @categories Script Utility, Raid { self->MoveZoneRaid(zone_short_name); } void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name, float x, float y, float z) // @categories Script Utility { self->MoveZoneRaid(zone_short_name, glm::vec4(x, y, z, 0.0f)); } void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name, float x, float y, float z, float heading) // @categories Script Utility { self->MoveZoneRaid(zone_short_name, glm::vec4(x, y, z, heading)); } void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstance(instance_id); } void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id, float x, float y, float z) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstance(instance_id, glm::vec4(x, y, z, 0.0f)); } void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstance(instance_id, glm::vec4(x, y, z, heading)); } void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility, Group { self->MoveZoneInstanceGroup(instance_id); } void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id, float x, float y, float z) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstanceGroup(instance_id, glm::vec4(x, y, z, 0.0f)); } void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstanceGroup(instance_id, glm::vec4(x, y, z, heading)); } void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility, Raid { self->MoveZoneInstanceRaid(instance_id); } void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id, float x, float y, float z) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstanceRaid(instance_id, glm::vec4(x, y, z, 0.0f)); } void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility { self->MoveZoneInstanceRaid(instance_id, glm::vec4(x, y, z, heading)); } void Perl_Client_ApplySpell(Client* self, int spell_id) { self->ApplySpell(spell_id); } void Perl_Client_ApplySpell(Client* self, int spell_id, int duration) { self->ApplySpell(spell_id, duration); } void Perl_Client_ApplySpell(Client* self, int spell_id, int duration, int level) { self->ApplySpell(spell_id, duration, level); } void Perl_Client_ApplySpell(Client* self, int spell_id, int duration, int level, bool allow_pets) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Solo, allow_pets); } void Perl_Client_ApplySpell(Client* self, int spell_id, int duration, int level, bool allow_pets, bool allow_bots) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Solo, allow_pets, true, allow_bots); } void Perl_Client_ApplySpellGroup(Client* self, int spell_id) { self->ApplySpell(spell_id, 0, -1, ApplySpellType::Group); } void Perl_Client_ApplySpellGroup(Client* self, int spell_id, int duration) { self->ApplySpell(spell_id, duration, -1, ApplySpellType::Group); } void Perl_Client_ApplySpellGroup(Client* self, int spell_id, int duration, int level) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Group); } void Perl_Client_ApplySpellGroup(Client* self, int spell_id, int duration, int level, bool allow_pets) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Group, allow_pets); } void Perl_Client_ApplySpellGroup(Client* self, int spell_id, int duration, int level, bool allow_pets, bool allow_bots) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Group, allow_pets, true, allow_bots); } void Perl_Client_ApplySpellRaid(Client* self, int spell_id) { self->ApplySpell(spell_id, 0, -1, ApplySpellType::Raid); } void Perl_Client_ApplySpellRaid(Client* self, int spell_id, int duration) { self->ApplySpell(spell_id, duration, -1, ApplySpellType::Raid); } void Perl_Client_ApplySpellRaid(Client* self, int spell_id, int duration, int level) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Raid); } void Perl_Client_ApplySpellRaid(Client* self, int spell_id, int duration, int level, bool allow_pets) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Raid, allow_pets); } void Perl_Client_ApplySpellRaid(Client* self, int spell_id, int duration, int level, bool allow_pets, bool is_raid_group_only) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Raid, allow_pets, is_raid_group_only); } void Perl_Client_ApplySpellRaid(Client* self, int spell_id, int duration, int level, bool allow_pets, bool is_raid_group_only, bool allow_bots) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Raid, allow_pets, is_raid_group_only, allow_bots); } void Perl_Client_SetSpellDuration(Client* self, int spell_id) { self->SetSpellDuration(spell_id); } void Perl_Client_SetSpellDuration(Client* self, int spell_id, int duration) { self->SetSpellDuration(spell_id, duration); } void Perl_Client_SetSpellDuration(Client* self, int spell_id, int duration, int level) { self->SetSpellDuration(spell_id, duration, level); } void Perl_Client_SetSpellDuration(Client* self, int spell_id, int duration, int level, bool allow_pets) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Solo, allow_pets); } void Perl_Client_SetSpellDuration(Client* self, int spell_id, int duration, int level, bool allow_pets, bool allow_bots) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Solo, allow_pets, true, allow_bots); } void Perl_Client_SetSpellDurationGroup(Client* self, int spell_id) { self->SetSpellDuration(spell_id, 0, -1, ApplySpellType::Group); } void Perl_Client_SetSpellDurationGroup(Client* self, int spell_id, int duration) { self->SetSpellDuration(spell_id, duration, -1, ApplySpellType::Group); } void Perl_Client_SetSpellDurationGroup(Client* self, int spell_id, int duration, int level) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Group); } void Perl_Client_SetSpellDurationGroup(Client* self, int spell_id, int duration, int level, bool allow_pets) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Group, allow_pets); } void Perl_Client_SetSpellDurationGroup(Client* self, int spell_id, int duration, int level, bool allow_pets, bool allow_bots) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Group, allow_pets, true, allow_bots); } void Perl_Client_SetSpellDurationRaid(Client* self, int spell_id) { self->ApplySpell(spell_id, 0, -1, ApplySpellType::Raid); } void Perl_Client_SetSpellDurationRaid(Client* self, int spell_id, int duration) { self->ApplySpell(spell_id, duration, -1, ApplySpellType::Raid); } void Perl_Client_SetSpellDurationRaid(Client* self, int spell_id, int duration, int level) { self->ApplySpell(spell_id, duration, level, ApplySpellType::Raid); } void Perl_Client_SetSpellDurationRaid(Client* self, int spell_id, int duration, int level, bool allow_pets) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Raid, allow_pets); } void Perl_Client_SetSpellDurationRaid(Client* self, int spell_id, int duration, int level, bool allow_pets, bool is_raid_group_only) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Raid, allow_pets, is_raid_group_only); } void Perl_Client_SetSpellDurationRaid(Client* self, int spell_id, int duration, int level, bool allow_pets, bool is_raid_group_only, bool allow_bots) { self->SetSpellDuration(spell_id, duration, level, ApplySpellType::Raid, allow_pets, is_raid_group_only, allow_bots); } perl::array Perl_Client_GetPEQZoneFlags(Client* self) { perl::array a; auto l = self->GetPEQZoneFlags(); for (const auto& f : l) { a.push_back(f); } return a; } perl::array Perl_Client_GetZoneFlags(Client* self) { perl::array a; auto l = self->GetZoneFlags(); for (const auto& f : l) { a.push_back(f); } return a; } void Perl_Client_SendPayload(Client* self, int payload_id) // @categories Script Utility { self->SendPayload(payload_id); } void Perl_Client_SendPayload(Client* self, int payload_id, std::string payload_value) // @categories Script Utility { self->SendPayload(payload_id, payload_value); } void Perl_Client_Signal(Client* self, int signal_id) { self->Signal(signal_id); } void Perl_Client_SignalClient(Client* self, int signal_id) // @categories Script Utility { self->Signal(signal_id); } std::string Perl_Client_GetGuildPublicNote(Client* self) { return self->GetGuildPublicNote(); } void Perl_Client_MaxSkills(Client* self) { self->MaxSkills(); } perl::array Perl_Client_GetAugmentIDsBySlotID(Client* self, int16 slot_id) { perl::array result; auto augments = self->GetInv().GetAugmentIDsBySlotID(slot_id); for (int i = 0; i < augments.size(); ++i) { result.push_back(augments[i]); } return result; } bool Perl_Client_IsEXPEnabled(Client* self) { return self->IsEXPEnabled(); } void Perl_Client_SetEXPEnabled(Client* self, bool is_exp_enabled) { self->SetEXPEnabled(is_exp_enabled); } bool Perl_Client_CanEnterZone(Client* self, std::string zone_short_name) { return self->CanEnterZone(zone_short_name); } bool Perl_Client_CanEnterZone(Client* self, std::string zone_short_name, int16 instance_version) { return self->CanEnterZone(zone_short_name, instance_version); } void Perl_Client_SendPath(Client* self, Mob* target) { self->SendPath(target); } int Perl_Client_GetBotRequiredLevel(Client* self) { return self->GetBotRequiredLevel(); } int Perl_Client_GetBotRequiredLevel(Client* self, uint8 class_id) { return self->GetBotRequiredLevel(class_id); } uint32 Perl_Client_GetBotCreationLimit(Client* self) { return self->GetBotCreationLimit(); } uint32 Perl_Client_GetBotCreationLimit(Client* self, uint8 class_id) { return self->GetBotCreationLimit(class_id); } int Perl_Client_GetBotSpawnLimit(Client* self) { return self->GetBotSpawnLimit(); } int Perl_Client_GetBotSpawnLimit(Client* self, uint8 class_id) { return self->GetBotSpawnLimit(class_id); } void Perl_Client_SetBotRequiredLevel(Client* self, int new_required_level) { self->SetBotRequiredLevel(new_required_level); } void Perl_Client_SetBotRequiredLevel(Client* self, int new_required_level, uint8 class_id) { self->SetBotRequiredLevel(new_required_level, class_id); } void Perl_Client_SetBotCreationLimit(Client* self, uint32 new_creation_limit) { self->SetBotCreationLimit(new_creation_limit); } void Perl_Client_SetBotCreationLimit(Client* self, uint32 new_creation_limit, uint8 class_id) { self->SetBotCreationLimit(new_creation_limit, class_id); } void Perl_Client_SetBotSpawnLimit(Client* self, int new_spawn_limit) { self->SetBotSpawnLimit(new_spawn_limit); } void Perl_Client_SetBotSpawnLimit(Client* self, int new_spawn_limit, uint8 class_id) { self->SetBotSpawnLimit(new_spawn_limit, class_id); } void Perl_Client_CampAllBots(Client* self) { self->CampAllBots(); } void Perl_Client_CampAllBots(Client* self, uint8 class_id) { self->CampAllBots(class_id); } void Perl_Client_ResetItemCooldown(Client* self, uint32 item_id) { self->ResetItemCooldown(item_id); } void Perl_Client_SetItemCooldown(Client* self, uint32 item_id, uint32 in_time) { self->SetItemCooldown(item_id, false, in_time); } uint32 Perl_Client_GetItemCooldown(Client* self, uint32 item_id) { return self->GetItemCooldown(item_id); } void Perl_Client_UseAugmentContainer(Client* self, int container_slot) { self->UseAugmentContainer(container_slot); } bool Perl_Client_IsAutoAttackEnabled(Client* self) { return self->AutoAttackEnabled(); } bool Perl_Client_IsAutoFireEnabled(Client* self) { return self->AutoFireEnabled(); } bool Perl_Client_ReloadDataBuckets(Client* self) { return DataBucket::GetDataBuckets(self); } uint32 Perl_Client_GetEXPForLevel(Client* self, uint16 check_level) { return self->GetEXPForLevel(check_level); } std::string Perl_Client_GetClassAbbreviation(Client* self) { return GetPlayerClassAbbreviation(self->GetBaseClass()); } std::string Perl_Client_GetRaceAbbreviation(Client* self) { return GetPlayerRaceAbbreviation(self->GetBaseRace()); } void Perl_Client_SetLDoNPoints(Client* self, uint32 theme_id, uint32 points) { self->SetLDoNPoints(theme_id, points); } void Perl_Client_GrantAllAAPoints(Client* self) { self->GrantAllAAPoints(); } void Perl_Client_GrantAllAAPoints(Client* self, uint8 unlock_level) { self->GrantAllAAPoints(unlock_level); } void Perl_Client_AddEbonCrystals(Client* self, uint32 amount) { self->AddEbonCrystals(amount); } void Perl_Client_AddRadiantCrystals(Client* self, uint32 amount) { self->AddRadiantCrystals(amount); } void Perl_Client_RemoveEbonCrystals(Client* self, uint32 amount) { self->RemoveEbonCrystals(amount); } void Perl_Client_RemoveRadiantCrystals(Client* self, uint32 amount) { self->RemoveRadiantCrystals(amount); } void Perl_Client_SummonItemIntoInventory(Client* self, perl::reference table_ref) { perl::hash table = table_ref; if (!table.exists("item_id") || !table.exists("charges")) { return; } const uint32 item_id = table["item_id"]; const int16 charges = table["charges"]; const uint32 augment_one = table.exists("augment_one") ? table["augment_one"] : 0; const uint32 augment_two = table.exists("augment_two") ? table["augment_two"] : 0; const uint32 augment_three = table.exists("augment_three") ? table["augment_three"] : 0; const uint32 augment_four = table.exists("augment_four") ? table["augment_four"] : 0; const uint32 augment_five = table.exists("augment_five") ? table["augment_five"] : 0; const uint32 augment_six = table.exists("augment_six") ? table["augment_six"] : 0; const bool attuned = table.exists("attuned") ? table["attuned"] : false; self->SummonItemIntoInventory( item_id, charges, augment_one, augment_two, augment_three, augment_four, augment_five, augment_six, attuned ); } bool Perl_Client_HasItemOnCorpse(Client* self, uint32 item_id) { return self->HasItemOnCorpse(item_id); } void Perl_Client_ClearXTargets(Client* self) { self->ClearXTargets(); } int Perl_Client_GetAAEXPPercentage(Client* self) { return self->GetAAEXPPercentage(); } int Perl_Client_GetEXPPercentage(Client* self) { return self->GetEXPPercentage(); } bool Perl_Client_IsInAGuild(Client* self) { return self->IsInAGuild(); } bool Perl_Client_RemoveAAPoints(Client* self, uint32 points) { return self->RemoveAAPoints(points); } bool Perl_Client_RemoveAlternateCurrencyValue(Client* self, uint32 currency_id, uint32 amount) { return self->RemoveAlternateCurrencyValue(currency_id, amount); } perl::array Perl_Client_GetRaidOrGroupOrSelf(Client* self) { perl::array result; const auto& l = self->GetRaidOrGroupOrSelf(); result.reserve(l.size()); for (const auto& e : l) { result.push_back(e); } return result; } perl::array Perl_Client_GetRaidOrGroupOrSelf(Client* self, bool clients_only) { perl::array result; const auto& l = self->GetRaidOrGroupOrSelf(clients_only); result.reserve(l.size()); for (const auto& e : l) { result.push_back(e); } return result; } std::string Perl_Client_GetAutoLoginCharacterName(Client* self) { return quest_manager.GetAutoLoginCharacterNameByAccountID(self->AccountID()); } bool Perl_Client_SetAutoLoginCharacterName(Client* self) { return quest_manager.SetAutoLoginCharacterNameByAccountID(self->AccountID(), self->GetCleanName()); } bool Perl_Client_SetAutoLoginCharacterName(Client* self, std::string character_name) { return quest_manager.SetAutoLoginCharacterNameByAccountID(self->AccountID(), character_name); } void Perl_Client_DescribeSpecialAbilities(Client* self, NPC* n) { n->DescribeSpecialAbilities(self); } void Perl_Client_ResetLeadershipAA(Client* self) { self->ResetLeadershipAA(); } uint8 Perl_Client_GetSkillTrainLevel(Client* self, int skill_id) { return self->GetSkillTrainLevel(static_cast(skill_id), self->GetClass()); } void perl_register_client() { perl::interpreter perl(PERL_GET_THX); auto package = perl.new_class("Client"); package.add_base_class("Mob"); package.add("AccountID", &Perl_Client_AccountID); package.add("AccountName", &Perl_Client_AccountName); package.add("AddAAPoints", &Perl_Client_AddAAPoints); package.add("AddAlternateCurrencyValue", &Perl_Client_AddAlternateCurrencyValue); package.add("AddCrystals", &Perl_Client_AddCrystals); package.add("AddEXP", (void(*)(Client*, uint32))&Perl_Client_AddEXP); package.add("AddEXP", (void(*)(Client*, uint32, uint8))&Perl_Client_AddEXP); package.add("AddEXP", (void(*)(Client*, uint32, uint8, bool))&Perl_Client_AddEXP); package.add("AddEbonCrystals", &Perl_Client_AddEbonCrystals); package.add("AddExpeditionLockout", (void(*)(Client*, std::string, std::string, uint32))&Perl_Client_AddExpeditionLockout); package.add("AddExpeditionLockout", (void(*)(Client*, std::string, std::string, uint32, std::string))&Perl_Client_AddExpeditionLockout); package.add("AddExpeditionLockoutDuration", (void(*)(Client*, std::string, std::string, int))&Perl_Client_AddExpeditionLockoutDuration); package.add("AddExpeditionLockoutDuration", (void(*)(Client*, std::string, std::string, int, std::string))&Perl_Client_AddExpeditionLockoutDuration); package.add("AddItem", &Perl_Client_AddItem); package.add("AddLDoNLoss", &Perl_Client_AddLDoNLoss); package.add("AddLDoNWin", &Perl_Client_AddLDoNWin); package.add("AddLevelBasedExp", (void(*)(Client*, uint8))&Perl_Client_AddLevelBasedExp); package.add("AddLevelBasedExp", (void(*)(Client*, uint8, uint8))&Perl_Client_AddLevelBasedExp); package.add("AddLevelBasedExp", (void(*)(Client*, uint8, uint8, bool))&Perl_Client_AddLevelBasedExp); package.add("AddMoneyToPP", (void(*)(Client*, uint32, uint32, uint32, uint32))&Perl_Client_AddMoneyToPP); package.add("AddMoneyToPP", (void(*)(Client*, uint32, uint32, uint32, uint32, bool))&Perl_Client_AddMoneyToPP); package.add("AddPlatinum", (void(*)(Client*, uint32))&Perl_Client_AddPlatinum); package.add("AddPlatinum", (void(*)(Client*, uint32, bool))&Perl_Client_AddPlatinum); package.add("AddPVPPoints", &Perl_Client_AddPVPPoints); package.add("AddRadiantCrystals", &Perl_Client_AddRadiantCrystals); package.add("AddSkill", &Perl_Client_AddSkill); package.add("Admin", &Perl_Client_Admin); package.add("ApplySpell", (void(*)(Client*, int))&Perl_Client_ApplySpell); package.add("ApplySpell", (void(*)(Client*, int, int))&Perl_Client_ApplySpell); package.add("ApplySpell", (void(*)(Client*, int, int, int))&Perl_Client_ApplySpell); package.add("ApplySpell", (void(*)(Client*, int, int, int, bool))&Perl_Client_ApplySpell); package.add("ApplySpell", (void(*)(Client*, int, int, int, bool, bool))&Perl_Client_ApplySpell); package.add("ApplySpellGroup", (void(*)(Client*, int))&Perl_Client_ApplySpellGroup); package.add("ApplySpellGroup", (void(*)(Client*, int, int))&Perl_Client_ApplySpellGroup); package.add("ApplySpellGroup", (void(*)(Client*, int, int, int))&Perl_Client_ApplySpellGroup); package.add("ApplySpellGroup", (void(*)(Client*, int, int, int, bool))&Perl_Client_ApplySpellGroup); package.add("ApplySpellGroup", (void(*)(Client*, int, int, int, bool, bool))&Perl_Client_ApplySpellGroup); package.add("ApplySpellRaid", (void(*)(Client*, int))&Perl_Client_ApplySpellRaid); package.add("ApplySpellRaid", (void(*)(Client*, int, int))&Perl_Client_ApplySpellRaid); package.add("ApplySpellRaid", (void(*)(Client*, int, int, int))&Perl_Client_ApplySpellRaid); package.add("ApplySpellRaid", (void(*)(Client*, int, int, int, bool))&Perl_Client_ApplySpellRaid); package.add("ApplySpellRaid", (void(*)(Client*, int, int, int, bool, bool))&Perl_Client_ApplySpellRaid); package.add("ApplySpellRaid", (void(*)(Client*, int, int, int, bool, bool, bool))&Perl_Client_ApplySpellRaid); package.add("AssignTask", (void(*)(Client*, int))&Perl_Client_AssignTask); package.add("AssignTask", (void(*)(Client*, int, int))&Perl_Client_AssignTask); package.add("AssignTask", (void(*)(Client*, int, int, bool))&Perl_Client_AssignTask); package.add("AssignToInstance", &Perl_Client_AssignToInstance); package.add("AutoSplitEnabled", &Perl_Client_AutoSplitEnabled); package.add("BreakInvis", &Perl_Client_BreakInvis); package.add("CalcEXP", (uint64(*)(Client*, uint8))&Perl_Client_CalcEXP); package.add("CalcEXP", (uint64(*)(Client*, uint8, bool))&Perl_Client_CalcEXP); package.add("CalcPriceMod", (float(*)(Client*))&Perl_Client_CalcPriceMod); package.add("CalcPriceMod", (float(*)(Client*, Mob*))&Perl_Client_CalcPriceMod); package.add("CalcPriceMod", (float(*)(Client*, Mob*, bool))&Perl_Client_CalcPriceMod); package.add("CampAllBots", (void(*)(Client*))&Perl_Client_CampAllBots); package.add("CampAllBots", (void(*)(Client*, uint8))&Perl_Client_CampAllBots); package.add("CanEnterZone", (bool(*)(Client*, std::string))&Perl_Client_CanEnterZone); package.add("CanEnterZone", (bool(*)(Client*, std::string, int16))&Perl_Client_CanEnterZone); package.add("CanHaveSkill", &Perl_Client_CanHaveSkill); package.add("CashReward", &Perl_Client_CashReward); package.add("ChangeLastName", &Perl_Client_ChangeLastName); package.add("CharacterID", &Perl_Client_CharacterID); package.add("CheckIncreaseSkill", (bool(*)(Client*, int))&Perl_Client_CheckIncreaseSkill); package.add("CheckIncreaseSkill", (bool(*)(Client*, int, int))&Perl_Client_CheckIncreaseSkill); package.add("CheckSpecializeIncrease", &Perl_Client_CheckSpecializeIncrease); package.add("ClearCompassMark", &Perl_Client_ClearCompassMark); package.add("ClearAccountFlag", &Perl_Client_ClearAccountFlag); package.add("ClearPEQZoneFlag", &Perl_Client_ClearPEQZoneFlag); package.add("ClearXTargets", &Perl_Client_ClearXTargets); package.add("ClearZoneFlag", &Perl_Client_ClearZoneFlag); package.add("Connected", &Perl_Client_Connected); package.add("CountAugmentEquippedByID", &Perl_Client_CountAugmentEquippedByID); package.add("CountItem", &Perl_Client_CountItem); package.add("CountItemEquippedByID", &Perl_Client_CountItemEquippedByID); package.add("CreateExpedition", (Expedition*(*)(Client*, perl::reference))&Perl_Client_CreateExpedition); package.add("CreateExpedition", (Expedition*(*)(Client*, std::string, uint32, uint32, std::string, uint32, uint32))&Perl_Client_CreateExpedition); package.add("CreateExpedition", (Expedition*(*)(Client*, std::string, uint32, uint32, std::string, uint32, uint32, bool))&Perl_Client_CreateExpedition); package.add("CreateExpeditionFromTemplate", &Perl_Client_CreateExpeditionFromTemplate); package.add("CreateTaskDynamicZone", &Perl_Client_CreateTaskDynamicZone); package.add("DecreaseByID", &Perl_Client_DecreaseByID); package.add("DescribeSpecialAbilities", &Perl_Client_DescribeSpecialAbilities); package.add("DeleteItemInInventory", (void(*)(Client*, int16))&Perl_Client_DeleteItemInInventory); package.add("DeleteItemInInventory", (void(*)(Client*, int16, int16))&Perl_Client_DeleteItemInInventory); package.add("DeleteItemInInventory", (void(*)(Client*, int16, int16, bool))&Perl_Client_DeleteItemInInventory); package.add("DiaWind", &Perl_Client_DiaWind); package.add("DialogueWindow", &Perl_Client_DialogueWindow); package.add("Disconnect", &Perl_Client_Disconnect); package.add("DropItem", &Perl_Client_DropItem); package.add("Duck", &Perl_Client_Duck); package.add("DyeArmorBySlot", (void(*)(Client*, uint8, uint8, uint8, uint8))&Perl_Client_DyeArmorBySlot); package.add("DyeArmorBySlot", (void(*)(Client*, uint8, uint8, uint8, uint8, uint8))&Perl_Client_DyeArmorBySlot); package.add("EndSharedTask", (void(*)(Client*))&Perl_Client_EndSharedTask); package.add("EndSharedTask", (void(*)(Client*, bool))&Perl_Client_EndSharedTask); package.add("Escape", &Perl_Client_Escape); package.add("ExpeditionMessage", &Perl_Client_ExpeditionMessage); package.add("FailTask", &Perl_Client_FailTask); package.add("FindEmptyMemSlot", &Perl_Client_FindEmptyMemSlot); package.add("FindMemmedSpellBySlot", &Perl_Client_FindMemmedSpellBySlot); package.add("FindMemmedSpellBySpellID", &Perl_Client_FindMemmedSpellBySpellID); package.add("Fling", (void(*)(Client*, float, float, float))&Perl_Client_Fling); package.add("Fling", (void(*)(Client*, float, float, float, bool))&Perl_Client_Fling); package.add("Fling", (void(*)(Client*, float, float, float, bool, bool))&Perl_Client_Fling); package.add("Fling", (void(*)(Client*, float, float, float, float))&Perl_Client_Fling); package.add("Fling", (void(*)(Client*, float, float, float, float, bool))&Perl_Client_Fling); package.add("Fling", (void(*)(Client*, float, float, float, float, bool, bool))&Perl_Client_Fling); package.add("ForageItem", &Perl_Client_ForageItem); package.add("Freeze", &Perl_Client_Freeze); package.add("GMKill", &Perl_Client_GMKill); package.add("GetAAEXPModifier", (float(*)(Client*))&Perl_Client_GetAAEXPModifier); package.add("GetAAEXPModifier", (float(*)(Client*, uint32))&Perl_Client_GetAAEXPModifier); package.add("GetAAEXPModifier", (float(*)(Client*, uint32, int16))&Perl_Client_GetAAEXPModifier); package.add("GetAAEXPPercentage", &Perl_Client_GetAAEXPPercentage); package.add("GetAAExp", &Perl_Client_GetAAExp); package.add("GetAALevel", &Perl_Client_GetAALevel); package.add("GetAAPercent", &Perl_Client_GetAAPercent); package.add("GetAAPoints", &Perl_Client_GetAAPoints); package.add("GetAFK", &Perl_Client_GetAFK); package.add("GetAccountAge", &Perl_Client_GetAccountAge); package.add("GetAccountFlag", &Perl_Client_GetAccountFlag); package.add("GetAccountFlags", &Perl_Client_GetAccountFlags); package.add("GetAggroCount", &Perl_Client_GetAggroCount); package.add("GetAllMoney", &Perl_Client_GetAllMoney); package.add("GetAlternateCurrencyValue", &Perl_Client_GetAlternateCurrencyValue); package.add("GetAnon", &Perl_Client_GetAnon); package.add("GetAugmentAt", &Perl_Client_GetAugmentAt); package.add("GetAugmentIDAt", &Perl_Client_GetAugmentIDAt); package.add("GetAugmentIDsBySlotID", &Perl_Client_GetAugmentIDsBySlotID); package.add("GetAutoLoginCharacterName", &Perl_Client_GetAutoLoginCharacterName); package.add("GetBaseAGI", &Perl_Client_GetBaseAGI); package.add("GetBaseCHA", &Perl_Client_GetBaseCHA); package.add("GetBaseDEX", &Perl_Client_GetBaseDEX); package.add("GetBaseFace", &Perl_Client_GetBaseFace); package.add("GetBaseINT", &Perl_Client_GetBaseINT); package.add("GetBaseSTA", &Perl_Client_GetBaseSTA); package.add("GetBaseSTR", &Perl_Client_GetBaseSTR); package.add("GetBaseWIS", &Perl_Client_GetBaseWIS); package.add("GetBecomeNPCLevel", &Perl_Client_GetBecomeNPCLevel); package.add("GetBindHeading", (float(*)(Client*))&Perl_Client_GetBindHeading); package.add("GetBindHeading", (float(*)(Client*, int))&Perl_Client_GetBindHeading); package.add("GetBindX", (float(*)(Client*))&Perl_Client_GetBindX); package.add("GetBindX", (float(*)(Client*, int))&Perl_Client_GetBindX); package.add("GetBindY", (float(*)(Client*))&Perl_Client_GetBindY); package.add("GetBindY", (float(*)(Client*, int))&Perl_Client_GetBindY); package.add("GetBindZ", (float(*)(Client*))&Perl_Client_GetBindZ); package.add("GetBindZ", (float(*)(Client*, int))&Perl_Client_GetBindZ); package.add("GetBindZoneID", (uint32_t(*)(Client*))&Perl_Client_GetBindZoneID); package.add("GetBindZoneID", (uint32_t(*)(Client*, int))&Perl_Client_GetBindZoneID); package.add("GetBotCreationLimit", (uint32(*)(Client*))&Perl_Client_GetBotCreationLimit); package.add("GetBotCreationLimit", (uint32(*)(Client*, uint8))&Perl_Client_GetBotCreationLimit); package.add("GetBotRequiredLevel", (int(*)(Client*))&Perl_Client_GetBotRequiredLevel); package.add("GetBotRequiredLevel", (int(*)(Client*, uint8))&Perl_Client_GetBotRequiredLevel); package.add("GetBotSpawnLimit", (int(*)(Client*))&Perl_Client_GetBotSpawnLimit); package.add("GetBotSpawnLimit", (int(*)(Client*, uint8))&Perl_Client_GetBotSpawnLimit); package.add("GetCarriedMoney", &Perl_Client_GetCarriedMoney); package.add("GetCarriedPlatinum", &Perl_Client_GetCarriedPlatinum); package.add("GetCharacterFactionLevel", &Perl_Client_GetCharacterFactionLevel); package.add("GetClassAbbreviation", &Perl_Client_GetClassAbbreviation); package.add("GetClassBitmask", &Perl_Client_GetClassBitmask); package.add("GetClientMaxLevel", &Perl_Client_GetClientMaxLevel); package.add("GetClientVersion", &Perl_Client_GetClientVersion); package.add("GetClientVersionBit", &Perl_Client_GetClientVersionBit); package.add("GetCorpseCount", &Perl_Client_GetCorpseCount); package.add("GetCorpseID", &Perl_Client_GetCorpseID); package.add("GetCorpseItemAt", &Perl_Client_GetCorpseItemAt); package.add("GetCustomItemData", &Perl_Client_GetCustomItemData); package.add("GetDeityBitmask", &Perl_Client_GetDeityBitmask); package.add("GetDiscSlotBySpellID", &Perl_Client_GetDiscSlotBySpellID); package.add("GetDisciplineTimer", &Perl_Client_GetDisciplineTimer); package.add("GetDuelTarget", &Perl_Client_GetDuelTarget); package.add("GetEnvironmentDamageModifier", &Perl_Client_GetEnvironmentDamageModifier); package.add("GetEXP", &Perl_Client_GetEXP); package.add("GetEXPForLevel", &Perl_Client_GetEXPForLevel); package.add("GetEXPModifier", (float(*)(Client*))&Perl_Client_GetEXPModifier); package.add("GetEXPModifier", (float(*)(Client*, uint32))&Perl_Client_GetEXPModifier); package.add("GetEXPModifier", (float(*)(Client*, uint32, int16))&Perl_Client_GetEXPModifier); package.add("GetEXPPercentage", &Perl_Client_GetEXPPercentage); package.add("GetEbonCrystals", &Perl_Client_GetEbonCrystals); package.add("GetEndurance", &Perl_Client_GetEndurance); package.add("GetEnduranceRatio", &Perl_Client_GetEnduranceRatio); package.add("GetExpedition", &Perl_Client_GetExpedition); package.add("GetExpeditionLockouts", (perl::reference(*)(Client*))&Perl_Client_GetExpeditionLockouts); package.add("GetExpeditionLockouts", (perl::reference(*)(Client*, std::string))&Perl_Client_GetExpeditionLockouts); package.add("GetFace", &Perl_Client_GetFace); package.add("GetFactionLevel", &Perl_Client_GetFactionLevel); package.add("GetFeigned", &Perl_Client_GetFeigned); package.add("GetFreeDisciplineSlot", (int(*)(Client*))&Perl_Client_GetFreeDisciplineSlot); package.add("GetFreeDisciplineSlot", (int(*)(Client*, int))&Perl_Client_GetFreeDisciplineSlot); package.add("GetFreeSpellBookSlot", (int(*)(Client*))&Perl_Client_GetFreeSpellBookSlot); package.add("GetFreeSpellBookSlot", (int(*)(Client*, uint32))&Perl_Client_GetFreeSpellBookSlot); package.add("GetGM", &Perl_Client_GetGM); package.add("GetGMStatus", &Perl_Client_GetGMStatus); package.add("GetGroup", &Perl_Client_GetGroup); package.add("GetGroupPoints", &Perl_Client_GetGroupPoints); package.add("GetGuildPublicNote", &Perl_Client_GetGuildPublicNote); package.add("GetHorseId", &Perl_Client_GetHorseId); package.add("GetHealAmount", &Perl_Client_GetHealAmount); package.add("GetHunger", &Perl_Client_GetHunger); package.add("GetIntoxication", &Perl_Client_GetIntoxication); package.add("GetIP", &Perl_Client_GetIP); package.add("GetIPExemption", &Perl_Client_GetIPExemption); package.add("GetIPString", &Perl_Client_GetIPString); package.add("GetInstanceID", &Perl_Client_GetInstanceID); package.add("GetInstrumentMod", &Perl_Client_GetInstrumentMod); package.add("GetInventory", &Perl_Client_GetInventory); package.add("GetInvulnerableEnvironmentDamage", &Perl_Client_GetInvulnerableEnvironmentDamage); package.add("GetItemAt", &Perl_Client_GetItemAt); package.add("GetItemCooldown", &Perl_Client_GetItemCooldown); package.add("GetItemIDAt", &Perl_Client_GetItemIDAt); package.add("GetItemInInventory", &Perl_Client_GetItemInInventory); package.add("GetLDoNLosses", &Perl_Client_GetLDoNLosses); package.add("GetLDoNLossesTheme", &Perl_Client_GetLDoNLossesTheme); package.add("GetLDoNPointsTheme", &Perl_Client_GetLDoNPointsTheme); package.add("GetLDoNWins", &Perl_Client_GetLDoNWins); package.add("GetLDoNWinsTheme", &Perl_Client_GetLDoNWinsTheme); package.add("GetLanguageSkill", &Perl_Client_GetLanguageSkill); package.add("GetLearnableDisciplines", (perl::array(*)(Client*))&Perl_Client_GetLearnableDisciplines); package.add("GetLearnableDisciplines", (perl::array(*)(Client*, uint8))&Perl_Client_GetLearnableDisciplines); package.add("GetLearnableDisciplines", (perl::array(*)(Client*, uint8, uint8))&Perl_Client_GetLearnableDisciplines); package.add("GetLearnedDisciplines", &Perl_Client_GetLearnedDisciplines); package.add("GetLockoutExpeditionUUID", &Perl_Client_GetLockoutExpeditionUUID); package.add("GetMaxEndurance", &Perl_Client_GetMaxEndurance); package.add("GetMemmedSpells", &Perl_Client_GetMemmedSpells); package.add("GetModCharacterFactionLevel", &Perl_Client_GetModCharacterFactionLevel); package.add("GetMoney", &Perl_Client_GetMoney); package.add("GetPVP", &Perl_Client_GetPVP); package.add("GetPVPPoints", &Perl_Client_GetPVPPoints); package.add("GetRaceAbbreviation", &Perl_Client_GetRaceAbbreviation); package.add("GetRaceBitmask", &Perl_Client_GetRaceBitmask); package.add("GetRadiantCrystals", &Perl_Client_GetRadiantCrystals); package.add("GetRaid", &Perl_Client_GetRaid); package.add("GetRaidOrGroupOrSelf", (perl::array(*)(Client*))&Perl_Client_GetRaidOrGroupOrSelf); package.add("GetRaidOrGroupOrSelf", (perl::array(*)(Client*, bool))&Perl_Client_GetRaidOrGroupOrSelf); package.add("GetRaidPoints", &Perl_Client_GetRaidPoints); package.add("GetRawItemAC", &Perl_Client_GetRawItemAC); package.add("GetRawSkill", &Perl_Client_GetRawSkill); package.add("GetRecipeMadeCount", &Perl_Client_GetRecipeMadeCount); package.add("GetScribeableSpells", (perl::array(*)(Client*))&Perl_Client_GetScribeableSpells); package.add("GetScribeableSpells", (perl::array(*)(Client*, uint8))&Perl_Client_GetScribeableSpells); package.add("GetScribeableSpells", (perl::array(*)(Client*, uint8, uint8))&Perl_Client_GetScribeableSpells); package.add("GetScribedSpells", &Perl_Client_GetScribedSpells); package.add("GetSkillPoints", &Perl_Client_GetSkillPoints); package.add("GetSpellDamage", &Perl_Client_GetSpellDamage); package.add("GetSpellBookSlotBySpellID", &Perl_Client_GetSpellBookSlotBySpellID); package.add("GetSpellIDByBookSlot", &Perl_Client_GetSpellIDByBookSlot); package.add("GetSpentAA", &Perl_Client_GetSpentAA); package.add("GetStartZone", &Perl_Client_GetStartZone); package.add("GetTargetRingX", &Perl_Client_GetTargetRingX); package.add("GetTargetRingY", &Perl_Client_GetTargetRingY); package.add("GetTargetRingZ", &Perl_Client_GetTargetRingZ); package.add("GetTaskActivityDoneCount", &Perl_Client_GetTaskActivityDoneCount); package.add("GetThirst", &Perl_Client_GetThirst); package.add("GetTotalSecondsPlayed", &Perl_Client_GetTotalSecondsPlayed); package.add("GetSkillTrainLevel", &Perl_Client_GetSkillTrainLevel); package.add("GetWeight", &Perl_Client_GetWeight); package.add("GetPEQZoneFlags", &Perl_Client_GetPEQZoneFlags); package.add("GetZoneFlags", &Perl_Client_GetZoneFlags); package.add("GoFish", &Perl_Client_GoFish); package.add("GrantAllAAPoints", (void(*)(Client*))&Perl_Client_GrantAllAAPoints); package.add("GrantAllAAPoints", (void(*)(Client*, uint8))&Perl_Client_GrantAllAAPoints); package.add("GrantAlternateAdvancementAbility", (bool(*)(Client*, int, int))&Perl_Client_GrantAlternateAdvancementAbility); package.add("GrantAlternateAdvancementAbility", (bool(*)(Client*, int, int, bool))&Perl_Client_GrantAlternateAdvancementAbility); package.add("GuildID", &Perl_Client_GuildID); package.add("GuildRank", &Perl_Client_GuildRank); package.add("HasAugmentEquippedByID", &Perl_Client_HasAugmentEquippedByID); package.add("HasDisciplineLearned", &Perl_Client_HasDisciplineLearned); package.add("HasExpeditionLockout", &Perl_Client_HasExpeditionLockout); package.add("HasItemEquippedByID", &Perl_Client_HasItemEquippedByID); package.add("HasItemOnCorpse", &Perl_Client_HasItemOnCorpse); package.add("HasPEQZoneFlag", &Perl_Client_HasPEQZoneFlag); package.add("HasRecipeLearned", &Perl_Client_HasRecipeLearned); package.add("HasSkill", &Perl_Client_HasSkill); package.add("HasSpellScribed", &Perl_Client_HasSpellScribed); package.add("HasZoneFlag", &Perl_Client_HasZoneFlag); package.add("Hungry", &Perl_Client_Hungry); package.add("InZone", &Perl_Client_InZone); package.add("IncStats", &Perl_Client_IncStats); package.add("IncreaseLanguageSkill", (void(*)(Client*, uint8))&Perl_Client_IncreaseLanguageSkill); package.add("IncreaseLanguageSkill", (void(*)(Client*, uint8, uint8))&Perl_Client_IncreaseLanguageSkill); package.add("IncreaseSkill", (void(*)(Client*, int))&Perl_Client_IncreaseSkill); package.add("IncreaseSkill", (void(*)(Client*, int, int))&Perl_Client_IncreaseSkill); package.add("IncrementAA", &Perl_Client_IncrementAA); package.add("IsAutoAttackEnabled", &Perl_Client_IsAutoAttackEnabled); package.add("IsAutoFireEnabled", &Perl_Client_IsAutoFireEnabled); package.add("IsBecomeNPC", &Perl_Client_IsBecomeNPC); package.add("IsCrouching", &Perl_Client_IsCrouching); package.add("IsDueling", &Perl_Client_IsDueling); package.add("IsEXPEnabled", &Perl_Client_IsEXPEnabled); package.add("IsGrouped", &Perl_Client_IsGrouped); package.add("IsInAGuild", &Perl_Client_IsInAGuild); package.add("IsLD", &Perl_Client_IsLD); package.add("IsMedding", &Perl_Client_IsMedding); package.add("IsRaidGrouped", &Perl_Client_IsRaidGrouped); package.add("IsSitting", &Perl_Client_IsSitting); package.add("IsStanding", &Perl_Client_IsStanding); package.add("IsTaskActive", &Perl_Client_IsTaskActive); package.add("IsTaskActivityActive", &Perl_Client_IsTaskActivityActive); package.add("IsTaskCompleted", &Perl_Client_IsTaskCompleted); package.add("KeyRingAdd", &Perl_Client_KeyRingAdd); package.add("KeyRingCheck", &Perl_Client_KeyRingCheck); package.add("Kick", &Perl_Client_Kick); package.add("LearnDisciplines", &Perl_Client_LearnDisciplines); package.add("LearnRecipe", &Perl_Client_LearnRecipe); package.add("LeaveGroup", &Perl_Client_LeaveGroup); package.add("LoadPEQZoneFlags", &Perl_Client_LoadPEQZoneFlags); package.add("LoadZoneFlags", &Perl_Client_LoadZoneFlags); package.add("LockSharedTask", &Perl_Client_LockSharedTask); package.add("MarkCompassLoc", &Perl_Client_MarkCompassLoc); package.add("Marquee", (void(*)(Client*, uint32, std::string))&Perl_Client_SendMarqueeMessage); package.add("Marquee", (void(*)(Client*, uint32, std::string, uint32))&Perl_Client_SendMarqueeMessage); package.add("Marquee", (void(*)(Client*, uint32, uint32, uint32, uint32, uint32, std::string))&Perl_Client_SendMarqueeMessage); package.add("MaxSkill", (int(*)(Client*, uint16))&Perl_Client_MaxSkill); package.add("MaxSkill", (int(*)(Client*, uint16, uint16))&Perl_Client_MaxSkill); package.add("MaxSkill", (int(*)(Client*, uint16, uint16, uint16))&Perl_Client_MaxSkill); package.add("MaxSkills", &Perl_Client_MaxSkills); package.add("MemSpell", (void(*)(Client*, uint16, int))&Perl_Client_MemSpell); package.add("MemSpell", (void(*)(Client*, uint16, int, bool))&Perl_Client_MemSpell); package.add("MemmedCount", &Perl_Client_MemmedCount); package.add("MovePC", &Perl_Client_MovePC); package.add("MovePCDynamicZone", (void(*)(Client*, perl::scalar))&Perl_Client_MovePCDynamicZone); package.add("MovePCDynamicZone", (void(*)(Client*, perl::scalar, int))&Perl_Client_MovePCDynamicZone); package.add("MovePCDynamicZone", (void(*)(Client*, perl::scalar, int, bool))&Perl_Client_MovePCDynamicZone); package.add("MovePCInstance", &Perl_Client_MovePCInstance); package.add("MoveZone", (void(*)(Client*, const char*))&Perl_Client_MoveZone); package.add("MoveZone", (void(*)(Client*, const char*, float, float, float))&Perl_Client_MoveZone); package.add("MoveZone", (void(*)(Client*, const char*, float, float, float, float))&Perl_Client_MoveZone); package.add("MoveZoneGroup", (void(*)(Client*, const char*))&Perl_Client_MoveZoneGroup); package.add("MoveZoneGroup", (void(*)(Client*, const char*, float, float, float))&Perl_Client_MoveZoneGroup); package.add("MoveZoneGroup", (void(*)(Client*, const char*, float, float, float, float))&Perl_Client_MoveZoneGroup); package.add("MoveZoneInstance", (void(*)(Client*, uint16))&Perl_Client_MoveZoneInstance); package.add("MoveZoneInstance", (void(*)(Client*, uint16, float, float, float))&Perl_Client_MoveZoneInstance); package.add("MoveZoneInstance", (void(*)(Client*, uint16, float, float, float, float))&Perl_Client_MoveZoneInstance); package.add("MoveZoneInstanceGroup", (void(*)(Client*, uint16))&Perl_Client_MoveZoneInstanceGroup); package.add("MoveZoneInstanceGroup", (void(*)(Client*, uint16, float, float, float))&Perl_Client_MoveZoneInstanceGroup); package.add("MoveZoneInstanceGroup", (void(*)(Client*, uint16, float, float, float, float))&Perl_Client_MoveZoneInstanceGroup); package.add("MoveZoneInstanceRaid", (void(*)(Client*, uint16))&Perl_Client_MoveZoneInstanceRaid); package.add("MoveZoneInstanceRaid", (void(*)(Client*, uint16, float, float, float))&Perl_Client_MoveZoneInstanceRaid); package.add("MoveZoneInstanceRaid", (void(*)(Client*, uint16, float, float, float, float))&Perl_Client_MoveZoneInstanceRaid); package.add("MoveZoneRaid", (void(*)(Client*, const char*))&Perl_Client_MoveZoneRaid); package.add("MoveZoneRaid", (void(*)(Client*, const char*, float, float, float))&Perl_Client_MoveZoneRaid); package.add("MoveZoneRaid", (void(*)(Client*, const char*, float, float, float, float))&Perl_Client_MoveZoneRaid); package.add("NPCSpawn", (void(*)(Client*, NPC*, const char*))&Perl_Client_NPCSpawn); package.add("NPCSpawn", (void(*)(Client*, NPC*, const char*, uint32))&Perl_Client_NPCSpawn); package.add("NotifyNewTitlesAvailable", &Perl_Client_NotifyNewTitlesAvailable); package.add("NukeItem", (uint32_t(*)(Client*, uint32))&Perl_Client_NukeItem); package.add("NukeItem", (uint32_t(*)(Client*, uint32, uint8))&Perl_Client_NukeItem); package.add("OpenLFGuildWindow", &Perl_Client_OpenLFGuildWindow); package.add("PlayMP3", &Perl_Client_PlayMP3); package.add("Popup2", (void(*)(Client*, const char*, const char*))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32, uint32))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32, uint32, uint32))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32, uint32, uint32, uint32))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32, uint32, uint32, uint32, const char*))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32, uint32, uint32, uint32, const char*, const char*))&Perl_Client_Popup2); package.add("Popup2", (void(*)(Client*, const char*, const char*, uint32, uint32, uint32, uint32, const char*, const char*, uint32))&Perl_Client_Popup2); package.add("QuestReward", (void(*)(Client*, Mob*))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32, uint32))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32, uint32, uint32))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32, uint32, uint32, uint32))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32, uint32, uint32, uint32, uint32))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32, uint32, uint32, uint32, uint32, uint32))&Perl_Client_QuestReward); package.add("QuestReward", (void(*)(Client*, Mob*, uint32, uint32, uint32, uint32, uint32, uint32, bool))&Perl_Client_QuestReward); package.add("ReadBook", &Perl_Client_ReadBook); package.add("ReadBookByName", &Perl_Client_ReadBookByName); package.add("RefundAA", &Perl_Client_RefundAA); package.add("ReloadDataBuckets", &Perl_Client_ReloadDataBuckets); package.add("RemoveAAPoints", &Perl_Client_RemoveAAPoints); package.add("RemoveAllExpeditionLockouts", (void(*)(Client*))&Perl_Client_RemoveAllExpeditionLockouts); package.add("RemoveAllExpeditionLockouts", (void(*)(Client*, std::string))&Perl_Client_RemoveAllExpeditionLockouts); package.add("RemoveAlternateCurrencyValue", (bool(*)(Client*, uint32, uint32))&Perl_Client_RemoveAlternateCurrencyValue); package.add("RemoveEbonCrystals", &Perl_Client_RemoveEbonCrystals); package.add("RemoveExpeditionLockout", &Perl_Client_RemoveExpeditionLockout); package.add("RemoveFromInstance", &Perl_Client_RemoveFromInstance); package.add("RemoveItem", (void(*)(Client*, uint32))&Perl_Client_RemoveItem); package.add("RemoveItem", (void(*)(Client*, uint32, uint32))&Perl_Client_RemoveItem); package.add("RemoveLDoNLoss", &Perl_Client_RemoveLDoNLoss); package.add("RemoveLDoNWin", &Perl_Client_RemoveLDoNWin); package.add("RemoveNoRent", &Perl_Client_RemoveNoRent); package.add("RemoveRadiantCrystals", &Perl_Client_RemoveRadiantCrystals); package.add("ResetAA", &Perl_Client_ResetAA); package.add("ResetAllDisciplineTimers", &Perl_Client_ResetAllDisciplineTimers); package.add("ResetAllCastbarCooldowns", &Perl_Client_ResetAllCastbarCooldowns); package.add("ResetAlternateAdvancementRank", &Perl_Client_ResetAlternateAdvancementRank); package.add("ResetCastbarCooldownBySlot", &Perl_Client_ResetCastbarCooldownBySlot); package.add("ResetCastbarCooldownBySpellID", &Perl_Client_ResetCastbarCooldownBySpellID); package.add("ResetDisciplineTimer", &Perl_Client_ResetDisciplineTimer); package.add("ResetItemCooldown", &Perl_Client_ResetItemCooldown); package.add("ResetLeadershipAA", &Perl_Client_ResetLeadershipAA); package.add("ResetTrade", &Perl_Client_ResetTrade); package.add("Save", &Perl_Client_Save); package.add("ScribeSpell", (void(*)(Client*, uint16, int))&Perl_Client_ScribeSpell); package.add("ScribeSpell", (void(*)(Client*, uint16, int, bool))&Perl_Client_ScribeSpell); package.add("ScribeSpells", &Perl_Client_ScribeSpells); package.add("SendColoredText", &Perl_Client_SendColoredText); package.add("SendGMCommand", (bool(*)(Client*, std::string))&Perl_Client_SendGMCommand); package.add("SendGMCommand", (bool(*)(Client*, std::string, bool))&Perl_Client_SendGMCommand); package.add("SendMarqueeMessage", (void(*)(Client*, uint32, std::string))&Perl_Client_SendMarqueeMessage); package.add("SendMarqueeMessage", (void(*)(Client*, uint32, std::string, uint32))&Perl_Client_SendMarqueeMessage); package.add("SendMarqueeMessage", (void(*)(Client*, uint32, uint32, uint32, uint32, uint32, std::string))&Perl_Client_SendMarqueeMessage); package.add("SendOPTranslocateConfirm", &Perl_Client_SendOPTranslocateConfirm); package.add("SendPayload", (void(*)(Client*, int))&Perl_Client_SendPayload); package.add("SendPayload", (void(*)(Client*, int, std::string))&Perl_Client_SendPayload); package.add("SendPath", &Perl_Client_SendPath); package.add("SendPEQZoneFlagInfo", &Perl_Client_SendPEQZoneFlagInfo); package.add("SendSound", &Perl_Client_SendSound); package.add("SendSpellAnim", &Perl_Client_SendSpellAnim); package.add("SendTargetCommand", &Perl_Client_SendTargetCommand); package.add("SendToGuildHall", &Perl_Client_SendToGuildHall); package.add("SendToInstance", &Perl_Client_SendToInstance); package.add("SendWebLink", &Perl_Client_SendWebLink); package.add("SendZoneFlagInfo", &Perl_Client_SendZoneFlagInfo); package.add("SetAAEXPModifier", (void(*)(Client*, float))&Perl_Client_SetAAEXPModifier); package.add("SetAAEXPModifier", (void(*)(Client*, uint32, float))&Perl_Client_SetAAEXPModifier); package.add("SetAAEXPModifier", (void(*)(Client*, uint32, float, int16))&Perl_Client_SetAAEXPModifier); package.add("SetAAPoints", &Perl_Client_SetAAPoints); package.add("SetAATitle", (void(*)(Client*, std::string))&Perl_Client_SetAATitle); package.add("SetAATitle", (void(*)(Client*, std::string, bool))&Perl_Client_SetAATitle); package.add("SetAFK", &Perl_Client_SetAFK); package.add("SetAccountFlag", &Perl_Client_SetAccountFlag); package.add("SetAlternateCurrencyValue", &Perl_Client_SetAlternateCurrencyValue); package.add("SetAnon", &Perl_Client_SetAnon); package.add("SetAutoLoginCharacterName", (bool(*)(Client*))&Perl_Client_SetAutoLoginCharacterName); package.add("SetAutoLoginCharacterName", (bool(*)(Client*, std::string))&Perl_Client_SetAutoLoginCharacterName); package.add("SetBaseClass", &Perl_Client_SetBaseClass); package.add("SetBaseGender", &Perl_Client_SetBaseGender); package.add("SetBaseRace", &Perl_Client_SetBaseRace); package.add("SetBecomeNPC", &Perl_Client_SetBecomeNPC); package.add("SetBecomeNPCLevel", &Perl_Client_SetBecomeNPCLevel); package.add("SetBindPoint", (void(*)(Client*))&Perl_Client_SetBindPoint); package.add("SetBindPoint", (void(*)(Client*, int))&Perl_Client_SetBindPoint); package.add("SetBindPoint", (void(*)(Client*, int, int))&Perl_Client_SetBindPoint); package.add("SetBindPoint", (void(*)(Client*, int, int, float))&Perl_Client_SetBindPoint); package.add("SetBindPoint", (void(*)(Client*, int, int, float, float))&Perl_Client_SetBindPoint); package.add("SetBindPoint", (void(*)(Client*, int, int, float, float, float))&Perl_Client_SetBindPoint); package.add("SetBindPoint", (void(*)(Client*, int, int, float, float, float, float))&Perl_Client_SetBindPoint); package.add("SetBotCreationLimit", (void(*)(Client*, uint32))&Perl_Client_SetBotCreationLimit); package.add("SetBotCreationLimit", (void(*)(Client*, uint32, uint8))&Perl_Client_SetBotCreationLimit); package.add("SetBotRequiredLevel", (void(*)(Client*, int))&Perl_Client_SetBotRequiredLevel); package.add("SetBotRequiredLevel", (void(*)(Client*, int, uint8))&Perl_Client_SetBotRequiredLevel); package.add("SetBotSpawnLimit", (void(*)(Client*, int))&Perl_Client_SetBotSpawnLimit); package.add("SetBotSpawnLimit", (void(*)(Client*, int, uint8))&Perl_Client_SetBotSpawnLimit); package.add("SetClientMaxLevel", &Perl_Client_SetClientMaxLevel); package.add("SetConsumption", &Perl_Client_SetConsumption); package.add("SetCustomItemData", &Perl_Client_SetCustomItemData); package.add("SetDeity", &Perl_Client_SetDeity); package.add("SetDuelTarget", &Perl_Client_SetDuelTarget); package.add("SetDueling", &Perl_Client_SetDueling); package.add("SetEXP", (void(*)(Client*, uint64, uint64))&Perl_Client_SetEXP); package.add("SetEXP", (void(*)(Client*, uint64, uint64, bool))&Perl_Client_SetEXP); package.add("SetEXPModifier", (void(*)(Client*, float))&Perl_Client_SetEXPModifier); package.add("SetEXPModifier", (void(*)(Client*, uint32, float))&Perl_Client_SetEXPModifier); package.add("SetEXPModifier", (void(*)(Client*, uint32, float, int16))&Perl_Client_SetEXPModifier); package.add("SetEbonCrystals", &Perl_Client_SetEbonCrystals); package.add("SetEndurance", &Perl_Client_SetEndurance); package.add("SetEnvironmentDamageModifier", &Perl_Client_SetEnvironmentDamageModifier); package.add("SetEXPEnabled", &Perl_Client_SetEXPEnabled); package.add("SetFactionLevel", &Perl_Client_SetFactionLevel); package.add("SetFactionLevel2", (void(*)(Client*, uint32, int32, uint8, uint8, uint8, int32))&Perl_Client_SetFactionLevel2); package.add("SetFactionLevel2", (void(*)(Client*, uint32, int32, uint8, uint8, uint8, int32, uint8))&Perl_Client_SetFactionLevel2); package.add("SetFeigned", &Perl_Client_SetFeigned); package.add("SetGM", &Perl_Client_SetGM); package.add("SetGMStatus", &Perl_Client_SetGMStatus); package.add("SetHideMe", &Perl_Client_SetHideMe); package.add("SetHorseId", &Perl_Client_SetHorseId); package.add("SetHunger", &Perl_Client_SetHunger); package.add("SetIPExemption", &Perl_Client_SetIPExemption); package.add("SetInvulnerableEnvironmentDamage", &Perl_Client_SetInvulnerableEnvironmentDamage); package.add("SetItemCooldown", &Perl_Client_SetItemCooldown); package.add("SetLanguageSkill", &Perl_Client_SetLanguageSkill); package.add("SetLDoNPoints", &Perl_Client_SetLDoNPoints); package.add("SetMaterial", &Perl_Client_SetMaterial); package.add("SetPEQZoneFlag", &Perl_Client_SetPEQZoneFlag); package.add("SetPVP", &Perl_Client_SetPVP); package.add("SetPrimaryWeaponOrnamentation", &Perl_Client_SetPrimaryWeaponOrnamentation); package.add("SetRadiantCrystals", &Perl_Client_SetRadiantCrystals); package.add("SetSecondaryWeaponOrnamentation", &Perl_Client_SetSecondaryWeaponOrnamentation); package.add("SetSkill", &Perl_Client_SetSkill); package.add("SetSkillPoints", &Perl_Client_SetSkillPoints); package.add("SetSpellDuration", (void(*)(Client*, int))&Perl_Client_SetSpellDuration); package.add("SetSpellDuration", (void(*)(Client*, int, int))&Perl_Client_SetSpellDuration); package.add("SetSpellDuration", (void(*)(Client*, int, int, int))&Perl_Client_SetSpellDuration); package.add("SetSpellDuration", (void(*)(Client*, int, int, int, bool))&Perl_Client_SetSpellDuration); package.add("SetSpellDuration", (void(*)(Client*, int, int, int, bool, bool))&Perl_Client_SetSpellDuration); package.add("SetSpellDurationGroup", (void(*)(Client*, int))&Perl_Client_SetSpellDurationGroup); package.add("SetSpellDurationGroup", (void(*)(Client*, int, int))&Perl_Client_SetSpellDurationGroup); package.add("SetSpellDurationGroup", (void(*)(Client*, int, int, int))&Perl_Client_SetSpellDurationGroup); package.add("SetSpellDurationGroup", (void(*)(Client*, int, int, int, bool))&Perl_Client_SetSpellDurationGroup); package.add("SetSpellDurationGroup", (void(*)(Client*, int, int, int, bool, bool))&Perl_Client_SetSpellDurationGroup); package.add("SetSpellDurationRaid", (void(*)(Client*, int))&Perl_Client_SetSpellDurationRaid); package.add("SetSpellDurationRaid", (void(*)(Client*, int, int))&Perl_Client_SetSpellDurationRaid); package.add("SetSpellDurationRaid", (void(*)(Client*, int, int, int))&Perl_Client_SetSpellDurationRaid); package.add("SetSpellDurationRaid", (void(*)(Client*, int, int, int, bool))&Perl_Client_SetSpellDurationRaid); package.add("SetSpellDurationRaid", (void(*)(Client*, int, int, int, bool, bool))&Perl_Client_SetSpellDurationRaid); package.add("SetSpellDurationRaid", (void(*)(Client*, int, int, int, bool, bool, bool))&Perl_Client_SetSpellDurationRaid); package.add("SetSpellDurationRaid", (void(*)(Client*, int, int, int, bool, bool, bool))&Perl_Client_SetSpellDurationRaid); package.add("SetStartZone", (void(*)(Client*, uint32))&Perl_Client_SetStartZone); package.add("SetStartZone", (void(*)(Client*, uint32, float, float, float))&Perl_Client_SetStartZone); package.add("SetStartZone", (void(*)(Client*, uint32, float, float, float, float))&Perl_Client_SetStartZone); package.add("SetStats", &Perl_Client_SetStats); package.add("SetThirst", &Perl_Client_SetThirst); package.add("SetTint", &Perl_Client_SetTint); package.add("SetTitleSuffix", (void(*)(Client*, std::string))&Perl_Client_SetTitleSuffix); package.add("SetTitleSuffix", (void(*)(Client*, std::string, bool))&Perl_Client_SetTitleSuffix); package.add("SetZoneFlag", &Perl_Client_SetZoneFlag); package.add("Signal", &Perl_Client_Signal); package.add("SignalClient", &Perl_Client_SignalClient); package.add("SilentMessage", &Perl_Client_SilentMessage); package.add("Sit", &Perl_Client_Sit); package.add("SlotConvert2", &Perl_Client_SlotConvert2); package.add("Stand", &Perl_Client_Stand); package.add("SummonBaggedItems", &Perl_Client_SummonBaggedItems); package.add("SummonItem", (void(*)(Client*, uint32))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool, uint32))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool, uint32, uint32))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool, uint32, uint32, uint32))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool, uint32, uint32, uint32, uint32))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool, uint32, uint32, uint32, uint32, uint32))&Perl_Client_SummonItem); package.add("SummonItem", (void(*)(Client*, uint32, int16, bool, uint32, uint32, uint32, uint32, uint32, uint16))&Perl_Client_SummonItem); package.add("SummonItemIntoInventory", &Perl_Client_SummonItemIntoInventory); package.add("TGB", &Perl_Client_TGB); package.add("TakeMoneyFromPP", (bool(*)(Client*, uint64_t))&Perl_Client_TakeMoneyFromPP); package.add("TakeMoneyFromPP", (bool(*)(Client*, uint64_t, bool))&Perl_Client_TakeMoneyFromPP); package.add("TakePlatinum", (bool(*)(Client*, uint32))&Perl_Client_TakePlatinum); package.add("TakePlatinum", (bool(*)(Client*, uint32, bool))&Perl_Client_TakePlatinum); package.add("TeleportToPlayerByCharID", &Perl_Client_TeleportToPlayerByCharacterID); package.add("TeleportToPlayerByName", &Perl_Client_TeleportToPlayerByName); package.add("TeleportGroupToPlayerByCharID", &Perl_Client_TeleportGroupToPlayerByCharacterID); package.add("TeleportGroupToPlayerByName", &Perl_Client_TeleportGroupToPlayerByName); package.add("TeleportRaidToPlayerByCharID", &Perl_Client_TeleportRaidToPlayerByCharacterID); package.add("TeleportRaidToPlayerByName", &Perl_Client_TeleportRaidToPlayerByName); package.add("TaskSelector", &Perl_Client_TaskSelector); package.add("TaskSelectorNoCooldown", &Perl_Client_TaskSelectorNoCooldown); package.add("Thirsty", &Perl_Client_Thirsty); package.add("TrainDiscBySpellID", &Perl_Client_TrainDiscBySpellID); package.add("UnFreeze", &Perl_Client_UnFreeze); package.add("Undye", &Perl_Client_Undye); package.add("UnmemSpell", (void(*)(Client*, int))&Perl_Client_UnmemSpell); package.add("UnmemSpell", (void(*)(Client*, int, bool))&Perl_Client_UnmemSpell); package.add("UnmemSpellAll", (void(*)(Client*))&Perl_Client_UnmemSpellAll); package.add("UnmemSpellAll", (void(*)(Client*, bool))&Perl_Client_UnmemSpellAll); package.add("UnmemSpellBySpellID", &Perl_Client_UnmemSpellBySpellID); package.add("UnscribeSpell", (void(*)(Client*, int))&Perl_Client_UnscribeSpell); package.add("UnscribeSpell", (void(*)(Client*, int, bool))&Perl_Client_UnscribeSpell); package.add("UnscribeSpellAll", (void(*)(Client*))&Perl_Client_UnscribeSpellAll); package.add("UnscribeSpellAll", (void(*)(Client*, bool))&Perl_Client_UnscribeSpellAll); package.add("UnscribeSpellBySpellID", (void(*)(Client*, uint16))&Perl_Client_UnscribeSpellBySpellID); package.add("UnscribeSpellBySpellID", (void(*)(Client*, uint16, bool))&Perl_Client_UnscribeSpellBySpellID); package.add("UntrainDisc", (void(*)(Client*, int))&Perl_Client_UntrainDisc); package.add("UntrainDisc", (void(*)(Client*, int, bool))&Perl_Client_UntrainDisc); package.add("UntrainDiscAll", (void(*)(Client*))&Perl_Client_UntrainDiscAll); package.add("UntrainDiscAll", (void(*)(Client*, bool))&Perl_Client_UntrainDiscAll); package.add("UntrainDiscBySpellID", (void(*)(Client*, uint16))&Perl_Client_UntrainDiscBySpellID); package.add("UntrainDiscBySpellID", (void(*)(Client*, uint16, bool))&Perl_Client_UntrainDiscBySpellID); package.add("UpdateAdmin", (void(*)(Client*))&Perl_Client_UpdateAdmin); package.add("UpdateAdmin", (void(*)(Client*, bool))&Perl_Client_UpdateAdmin); package.add("UpdateGroupAAs", &Perl_Client_UpdateGroupAAs); package.add("UpdateLDoNPoints", &Perl_Client_UpdateLDoNPoints); package.add("UpdateTaskActivity", (void(*)(Client*, int, int, int))&Perl_Client_UpdateTaskActivity); package.add("UpdateTaskActivity", (void(*)(Client*, int, int, int, bool))&Perl_Client_UpdateTaskActivity); package.add("UpdateWho", (void(*)(Client*))&Perl_Client_UpdateWho); package.add("UpdateWho", (void(*)(Client*, uint8))&Perl_Client_UpdateWho); package.add("UseDiscipline", &Perl_Client_UseDiscipline); package.add("UseAugmentContainer", &Perl_Client_UseAugmentContainer); package.add("WorldKick", &Perl_Client_WorldKick); } #endif //EMBPERL_XS_CLASSES