mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
[Quest API] Add GetBotListByClientName() Class Overload to Perl/Lua. (#2577)
# Perl - Add `$entity_list->GetBotListByClientName(client_name, class_id)`. # Lua - Add `eq.get_entity_list():GetBotListByClientName(client_name, class_id)`. # Notes - Adds overload to get bots by client name and class ID.
This commit is contained in:
parent
25f8ee2084
commit
290ebf3b26
@ -5185,7 +5185,7 @@ std::vector<Bot *> EntityList::GetBotListByCharacterID(uint32 character_id, uint
|
||||
return client_bot_list;
|
||||
}
|
||||
|
||||
std::vector<Bot *> EntityList::GetBotListByClientName(std::string client_name)
|
||||
std::vector<Bot *> EntityList::GetBotListByClientName(std::string client_name, uint8 class_id)
|
||||
{
|
||||
std::vector<Bot *> client_bot_list;
|
||||
|
||||
@ -5196,7 +5196,8 @@ std::vector<Bot *> EntityList::GetBotListByClientName(std::string client_name)
|
||||
for (const auto& b : bot_list) {
|
||||
if (
|
||||
b->GetOwner() &&
|
||||
Strings::ToLower(b->GetOwner()->GetCleanName()) == Strings::ToLower(client_name)
|
||||
Strings::ToLower(b->GetOwner()->GetCleanName()) == Strings::ToLower(client_name) &&
|
||||
(!class_id || b->GetClass() == class_id)
|
||||
) {
|
||||
client_bot_list.push_back(b);
|
||||
}
|
||||
|
||||
@ -551,7 +551,7 @@ public:
|
||||
#ifdef BOTS
|
||||
inline const std::list<Bot *> &GetBotList() { return bot_list; }
|
||||
std::vector<Bot *> GetBotListByCharacterID(uint32 character_id, uint8 class_id = 0);
|
||||
std::vector<Bot *> GetBotListByClientName(std::string client_name);
|
||||
std::vector<Bot *> GetBotListByClientName(std::string client_name, uint8 class_id = 0);
|
||||
void SignalAllBotsByOwnerCharacterID(uint32 character_id, int signal_id);
|
||||
void SignalBotByBotID(uint32 bot_id, int signal_id);
|
||||
void SignalBotByBotName(std::string bot_name, int signal_id);
|
||||
|
||||
@ -441,6 +441,20 @@ Lua_Bot_List Lua_EntityList::GetBotListByClientName(std::string client_name) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
Lua_Bot_List Lua_EntityList::GetBotListByClientName(std::string client_name, uint8 class_id) {
|
||||
Lua_Safe_Call_Class(Lua_Bot_List);
|
||||
Lua_Bot_List ret;
|
||||
auto bot_list = self->GetBotListByClientName(client_name, class_id);
|
||||
|
||||
if (bot_list.size()) {
|
||||
for (auto bot : bot_list) {
|
||||
ret.entries.push_back(Lua_Bot(bot));
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Lua_EntityList::SignalAllBotsByOwnerCharacterID(uint32 character_id, int signal_id) {
|
||||
Lua_Safe_Call_Void();
|
||||
self->SignalAllBotsByOwnerCharacterID(character_id, signal_id);
|
||||
@ -638,6 +652,7 @@ luabind::scope lua_register_entity_list() {
|
||||
.def("GetBotListByCharacterID", (Lua_Bot_List(Lua_EntityList::*)(uint32))&Lua_EntityList::GetBotListByCharacterID)
|
||||
.def("GetBotListByCharacterID", (Lua_Bot_List(Lua_EntityList::*)(uint32,uint8))&Lua_EntityList::GetBotListByCharacterID)
|
||||
.def("GetBotListByClientName", (Lua_Bot_List(Lua_EntityList::*)(std::string))&Lua_EntityList::GetBotListByClientName)
|
||||
.def("GetBotListByClientName", (Lua_Bot_List(Lua_EntityList::*)(std::string,uint8))&Lua_EntityList::GetBotListByClientName)
|
||||
#endif
|
||||
.def("GetClientByAccID", (Lua_Client(Lua_EntityList::*)(uint32))&Lua_EntityList::GetClientByAccID)
|
||||
.def("GetClientByCharID", (Lua_Client(Lua_EntityList::*)(uint32))&Lua_EntityList::GetClientByCharID)
|
||||
|
||||
@ -137,6 +137,7 @@ public:
|
||||
Lua_Bot_List GetBotListByCharacterID(uint32 character_id);
|
||||
Lua_Bot_List GetBotListByCharacterID(uint32 character_id, uint8 class_id);
|
||||
Lua_Bot_List GetBotListByClientName(std::string client_name);
|
||||
Lua_Bot_List GetBotListByClientName(std::string client_name, uint8 class_id);
|
||||
Lua_Bot GetRandomBot();
|
||||
Lua_Bot GetRandomBot(float x, float y, float z, float distance);
|
||||
Lua_Bot GetRandomBot(float x, float y, float z, float distance, Lua_Bot exclude_bot);
|
||||
|
||||
@ -450,6 +450,17 @@ perl::array Perl_EntityList_GetBotListByClientName(EntityList* self, std::string
|
||||
return result;
|
||||
}
|
||||
|
||||
perl::array Perl_EntityList_GetBotListByClientName(EntityList* self, std::string client_name, uint8 class_id) // @categories Script Utility, Bot
|
||||
{
|
||||
perl::array result;
|
||||
auto current_bot_list = self->GetBotListByClientName(client_name, class_id);
|
||||
for (int i = 0; i < current_bot_list.size(); ++i)
|
||||
{
|
||||
result.push_back(current_bot_list[i]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void Perl_EntityList_SignalAllBotsByOwnerCharacterID(EntityList* self, uint32_t character_id, int signal_id) // @categories Script Utility
|
||||
{
|
||||
entity_list.SignalAllBotsByOwnerCharacterID(character_id, signal_id);
|
||||
@ -609,7 +620,8 @@ void perl_register_entitylist()
|
||||
package.add("GetBotList", &Perl_EntityList_GetBotList);
|
||||
package.add("GetBotListByCharacterID", (perl::array(*)(EntityList*, uint32))&Perl_EntityList_GetBotListByCharacterID);
|
||||
package.add("GetBotListByCharacterID", (perl::array(*)(EntityList*, uint32, uint8))&Perl_EntityList_GetBotListByCharacterID);
|
||||
package.add("GetBotListByClientName", &Perl_EntityList_GetBotListByClientName);
|
||||
package.add("GetBotListByClientName", (perl::array(*)(EntityList*, std::string))&Perl_EntityList_GetBotListByClientName);
|
||||
package.add("GetBotListByClientName", (perl::array(*)(EntityList*, std::string, uint8))&Perl_EntityList_GetBotListByClientName);
|
||||
#endif
|
||||
package.add("GetClientByAccID", &Perl_EntityList_GetClientByAccID);
|
||||
package.add("GetClientByCharID", &Perl_EntityList_GetClientByCharID);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user