Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- common/database.cpp | 20 ++++++++++++++++++++
- common/database.h | 1 +
- zone/lua_general.cpp | 14 ++++++++++++++
- 3 files changed, 35 insertions(+)
- diff --git a/common/database.cpp b/common/database.cpp
- index 0ea3b88..ace5bf4 100644
- --- a/common/database.cpp
- +++ b/common/database.cpp
- @@ -2834,6 +2834,26 @@ uint16 Database::GetInstanceID(uint32 zone, uint32 charid, int16 version)
- return 0;
- }
- +void Database::GetCharactersInInstance(uint16 instance_id, std::list<uint32> &charid_list) {
- + char errbuf[MYSQL_ERRMSG_SIZE];
- + char *query = 0;
- + MYSQL_RES *result;
- + MYSQL_ROW row;
- +
- + if (RunQuery(query, MakeAnyLenString(&query, "SELECT charid FROM instance_lockout_player WHERE id=%u", instance_id), errbuf, &result)) {
- + safe_delete_array(query);
- + while ((row = mysql_fetch_row(result)))
- + {
- + charid_list.push_back(atoi(row[0]));
- + }
- + mysql_free_result(result);
- + }
- + else {
- + LogFile->write(EQEMuLog::Error, "Error in GetCharactersInInstace query '%s': %s", query, errbuf);
- + safe_delete_array(query);
- + }
- +}
- +
- void Database::AssignGroupToInstance(uint32 gid, uint32 instance_id)
- {
- char errbuf[MYSQL_ERRMSG_SIZE];
- diff --git a/common/database.h b/common/database.h
- index 849f6f6..300fc98 100644
- --- a/common/database.h
- +++ b/common/database.h
- @@ -163,6 +163,7 @@ public:
- uint16 GetInstanceVersion(uint16 instance_id);
- uint16 GetInstanceID(const char* zone, uint32 charid, int16 version);
- uint16 GetInstanceID(uint32 zone, uint32 charid, int16 version);
- + void GetCharactersInInstance(uint16 instance_id, std::list<uint32> &charid_list);
- void AssignGroupToInstance(uint32 gid, uint32 instance_id);
- void AssignRaidToInstance(uint32 rid, uint32 instance_id);
- void FlagInstanceByGroupLeader(uint32 zone, int16 version, uint32 charid, uint32 gid);
- diff --git a/zone/lua_general.cpp b/zone/lua_general.cpp
- index 5bddbd2..8746985 100644
- --- a/zone/lua_general.cpp
- +++ b/zone/lua_general.cpp
- @@ -781,6 +781,19 @@ int lua_get_zone_instance_version() {
- return zone->GetInstanceVersion();
- }
- +luabind::object lua_get_characters_in_instance(lua_State *L, uint16 instance_id) {
- + luabind::object ret = luabind::newtable(L);
- +
- + std::list<uint32> charid_list;
- + database.GetCharactersInInstance(instance_id,charid_list);
- + auto iter = charid_list.begin();
- + while(iter != charid_list.end()) {
- + ret[*iter] = *iter;
- + ++iter;
- + }
- + return ret;
- +}
- +
- int lua_get_zone_weather() {
- if(!zone)
- return 0;
- @@ -1164,6 +1177,7 @@ luabind::scope lua_register_general() {
- luabind::def("create_instance", &lua_create_instance),
- luabind::def("destroy_instance", &lua_destroy_instance),
- luabind::def("get_instance_id", &lua_get_instance_id),
- + luabind::def("get_characters_in_instance", (luabind::object(*)(uint16))&lua_get_characters_in_instance),
- luabind::def("assign_to_instance", &lua_assign_to_instance),
- luabind::def("assign_group_to_instance", &lua_assign_group_to_instance),
- luabind::def("assign_raid_to_instance", &lua_assign_raid_to_instance),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement