diff --git a/common/servertalk.h b/common/servertalk.h index ba50142fb..0e09091d1 100644 --- a/common/servertalk.h +++ b/common/servertalk.h @@ -229,6 +229,7 @@ #define ServerOP_ReloadContentFlags 0x4013 #define ServerOP_ReloadVariablesWorld 0x4014 #define ServerOP_ReloadMerchants 0x4016 +#define ServerOP_ReloadAAData 0x4017 #define ServerOP_ReloadStaticZoneData 0x4020 #define ServerOP_CZDialogueWindow 0x4500 diff --git a/world/zoneserver.cpp b/world/zoneserver.cpp index 7281a843f..9173805f6 100644 --- a/world/zoneserver.cpp +++ b/world/zoneserver.cpp @@ -889,6 +889,11 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { zoneserver_list.SendPacket(pack); break; } + case ServerOP_ReloadAAData: + { + zoneserver_list.SendPacket(pack); + break; + } case ServerOP_ReloadMerchants: { zoneserver_list.SendPacket(pack); diff --git a/zone/command.cpp b/zone/command.cpp index fcd4902b9..7b9295f64 100755 --- a/zone/command.cpp +++ b/zone/command.cpp @@ -285,7 +285,7 @@ int command_init(void) command_add("raidloot", "[All|GroupLeader|RaidLeader|Selected] - Sets your Raid Loot Type if you have permission to do so.", AccountStatus::Player, command_raidloot) || command_add("randomfeatures", "- Temporarily randomizes the Facial Features of your target", AccountStatus::QuestTroupe, command_randomfeatures) || command_add("refreshgroup", "- Refreshes Group for you or your player target.", AccountStatus::Player, command_refreshgroup) || - command_add("reloadaa", "Reloads AA data", AccountStatus::GMMgmt, command_reloadaa) || + command_add("reloadaa", "Reloads Alternate Advancement data globally", AccountStatus::GMMgmt, command_reloadaa) || command_add("reloadallrules", "Executes a reload of all rules globally.", AccountStatus::QuestTroupe, command_reloadallrules) || command_add("reloadcontentflags", "Executes a reload of all expansion and content flags", AccountStatus::QuestTroupe, command_reloadcontentflags) || command_add("reloademote", "Reloads NPC Emotes", AccountStatus::QuestTroupe, command_reloademote) || diff --git a/zone/entity.cpp b/zone/entity.cpp index 0beb2fb1a..f831b4197 100644 --- a/zone/entity.cpp +++ b/zone/entity.cpp @@ -5601,7 +5601,7 @@ void EntityList::StopMobAI() } void EntityList::SendAlternateAdvancementStats() { - for(auto &c : client_list) { + for (auto &c : client_list) { c.second->SendClearPlayerAA(); c.second->SendAlternateAdvancementTable(); c.second->SendAlternateAdvancementStats(); diff --git a/zone/gm_commands/reloadaa.cpp b/zone/gm_commands/reloadaa.cpp index 5df40b105..4f6f29907 100755 --- a/zone/gm_commands/reloadaa.cpp +++ b/zone/gm_commands/reloadaa.cpp @@ -3,15 +3,9 @@ void command_reloadaa(Client *c, const Seperator *sep) { - c->Message(Chat::White, "Reloading Alternate Advancement Data..."); - zone->LoadAlternateAdvancement(); - c->Message(Chat::White, "Alternate Advancement Data Reloaded"); - entity_list.SendAlternateAdvancementStats(); -} - -inline bool file_exists(const std::string &name) -{ - std::ifstream f(name.c_str()); - return f.good(); + c->Message(Chat::White, "Attempted to reload Alternate Advancement data globally."); + auto pack = new ServerPacket(ServerOP_ReloadAAData, 0); + worldserver.SendPacket(pack); + safe_delete(pack); } diff --git a/zone/worldserver.cpp b/zone/worldserver.cpp index d7463fd1c..06ce894b6 100644 --- a/zone/worldserver.cpp +++ b/zone/worldserver.cpp @@ -2021,7 +2021,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) AccountStatus::GMAdmin, Chat::Yellow, fmt::format( - "Content flags (and expansion) reloaded for {}.", + "Content flags (and expansion) reloaded for {}{}.", fmt::format( "{} ({})", zone->GetLongName(), @@ -2030,7 +2030,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) ( zone->GetInstanceID() ? fmt::format( - "Instance ID: {}", + " (Instance ID {})", zone->GetInstanceID() ) : "" @@ -2073,7 +2073,35 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) parse->LoadPerlEventExportSettings(parse->perl_event_export_settings); break; } + case ServerOP_ReloadAAData: { + if (zone) { + worldserver.SendEmoteMessage( + 0, + 0, + AccountStatus::GMAdmin, + Chat::Yellow, + fmt::format( + "Alternate Advancement data reloaded for {}{}.", + fmt::format( + "{} ({})", + zone->GetLongName(), + zone->GetZoneID() + ), + ( + zone->GetInstanceID() ? + fmt::format( + " (Instance ID {})", + zone->GetInstanceID() + ) : + "" + ) + ).c_str() + ); + zone->LoadAlternateAdvancement(); + } + break; + } case ServerOP_ReloadMerchants: { if (zone) { worldserver.SendEmoteMessage(