From cd0315255035c3f4958a4b7055d8f6b09d9dd159 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 26 May 2024 10:06:38 -0400 Subject: [PATCH] [Quest API] Add Zone Uptime Exports to Perl/Lua (#4339) --- zone/embparser.cpp | 7 ++++--- zone/lua_general.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/zone/embparser.cpp b/zone/embparser.cpp index 2668932bc..3e40a39a3 100644 --- a/zone/embparser.cpp +++ b/zone/embparser.cpp @@ -1547,16 +1547,17 @@ void PerlembParser::ExportMobVariables( void PerlembParser::ExportZoneVariables(std::string& package_name) { if (zone) { - ExportVar(package_name.c_str(), "zoneid", zone->GetZoneID()); - ExportVar(package_name.c_str(), "zoneln", zone->GetLongName()); - ExportVar(package_name.c_str(), "zonesn", zone->GetShortName()); ExportVar(package_name.c_str(), "instanceid", zone->GetInstanceID()); ExportVar(package_name.c_str(), "instanceversion", zone->GetInstanceVersion()); TimeOfDay_Struct eqTime{ }; zone->zone_time.GetCurrentEQTimeOfDay(time(0), &eqTime); ExportVar(package_name.c_str(), "zonehour", eqTime.hour - 1); + ExportVar(package_name.c_str(), "zoneid", zone->GetZoneID()); + ExportVar(package_name.c_str(), "zoneln", zone->GetLongName()); ExportVar(package_name.c_str(), "zonemin", eqTime.minute); + ExportVar(package_name.c_str(), "zonesn", zone->GetShortName()); ExportVar(package_name.c_str(), "zonetime", (eqTime.hour - 1) * 100 + eqTime.minute); + ExportVar(package_name.c_str(), "zoneuptime", Timer::GetCurrentTime() / 1000); ExportVar(package_name.c_str(), "zoneweather", zone->zone_weather); } } diff --git a/zone/lua_general.cpp b/zone/lua_general.cpp index 505071e74..f370f2135 100644 --- a/zone/lua_general.cpp +++ b/zone/lua_general.cpp @@ -5576,6 +5576,11 @@ bool lua_send_parcel(luabind::object lua_table) return CharacterParcelsRepository::InsertOne(database, e).id; } +uint32 lua_get_zone_uptime() +{ + return Timer::GetCurrentTime() / 1000; +} + #define LuaCreateNPCParse(name, c_type, default_value) do { \ cur = table[#name]; \ if(luabind::type(cur) != LUA_TNIL) { \ @@ -6380,6 +6385,7 @@ luabind::scope lua_register_general() { luabind::def("get_zone_id_by_long_name", &lua_get_zone_id_by_long_name), luabind::def("get_zone_short_name_by_long_name", &lua_get_zone_short_name_by_long_name), luabind::def("send_parcel", &lua_send_parcel), + luabind::def("get_zone_uptime", &lua_get_zone_uptime), /* Cross Zone */