[Quest API] Add Instance Methods to Perl/Lua. (#2573)

* [Quest API] Add Instance Methods to Perl/Lua.

# Perl
- Add `quest::GetInstanceIDs(zone_name)`.
- Add `quest::GetInstanceIDsByCharID(zone_name, character_id)`.
- Add `quest::GetInstanceVersionByID(instance_id)`.
- Add `quest::GetInstanceZoneIDByID(instance_id)`.

# Lua
- Add `eq.get_instance_ids(zone_name)`.
- Add `eq.get_instance_ids_by_char_id(zone_name, character_id)`.
- Add `eq.get_instance_version_by_id(instance_id)`.
- Add `eq.get_instance_zone_id_by_id(instance_id)`.

# Notes
- The instance IDs methods return arrays of IDs for looping so you can check on mass the instances a player has for a zone.
- Keeps operators from having to guess which possible versions of a zone a player has an instance for or loop through them all to find out.
- Cleanup `common/database_instances.cpp` to mostly use repositories where possible.

* Update database.h

* Update character_corpses_repository.h
This commit is contained in:
Alex King
2022-11-26 10:43:29 -05:00
committed by GitHub
parent 1d1ffc66fe
commit b91d879662
10 changed files with 382 additions and 328 deletions
+2 -2
View File
@@ -545,11 +545,11 @@ void Client::MoveZoneRaid(const char *zone_short_name, const glm::vec4 &location
}
void Client::MoveZoneInstance(uint16 instance_id, const glm::vec4 &location) {
if (!database.CharacterInInstanceGroup(instance_id, CharacterID())) {
if (!database.CheckInstanceByCharID(instance_id, CharacterID())) {
database.AddClientToInstance(instance_id, CharacterID());
}
ProcessMovePC(database.ZoneIDFromInstanceID(instance_id), instance_id, location.x, location.y, location.z, location.w, 3, ZoneToSafeCoords);
ProcessMovePC(database.GetInstanceZoneID(instance_id), instance_id, location.x, location.y, location.z, location.w, 3, ZoneToSafeCoords);
}
void Client::MoveZoneInstanceGroup(uint16 instance_id, const glm::vec4 &location) {