void PlanetManagerImplementation::loadLuaConfig() { String planetName = zone->getZoneName(); Lua* lua = new Lua(); lua->init(); lua->runFile("scripts/managers/planet_manager.lua"); //Get's the configuration settings object for this planet. LuaObject luaObject = lua->getGlobalObject(planetName); if (luaObject.isValidTable()) { bool weatherEnabled = luaObject.getIntField("weatherEnabled"); if(weatherEnabled) { weatherManager = new WeatherManager(zone); weatherManager->initialize(); } else { info("Weather Disabled", true); } bool gcwEnabled = luaObject.getIntField("gcwEnabled"); if(gcwEnabled) { gcwManager = new GCWManager(zone); gcwManager->start(); } LuaObject planetTravelPointsTable = luaObject.getObjectField("planetTravelPoints"); planetTravelPointList->readLuaObject(&planetTravelPointsTable); planetTravelPointsTable.pop(); loadSnapshotObjects(); LuaObject planetObjectsTable = luaObject.getObjectField("planetObjects"); loadPlanetObjects(&planetObjectsTable); planetObjectsTable.pop(); LuaObject badges = luaObject.getObjectField("badgeAreas"); loadBadgeAreas(&badges); badges.pop(); } else { warning("Configuration settings not found."); } luaObject.pop(); // Configure shuttleport timing if ((shuttleportAwayTime = lua->getGlobalInt("shuttleportAwayTime")) <= 0) shuttleportAwayTime = 300; if ((shuttleportLandedTime = lua->getGlobalInt("shuttleportLandedTime")) <= 0) shuttleportLandedTime = 120; if ((shuttleportLandingTime = lua->getGlobalInt("shuttleportLandingTime")) <= 0) shuttleportLandingTime = 11; // Configure starport timing if ((starportAwayTime = lua->getGlobalInt("starportAwayTime")) <= 0) starportAwayTime = 60; if ((starportLandedTime = lua->getGlobalInt("starportLandedTime")) <= 0) starportLandedTime = 120; if ((starportLandingTime = lua->getGlobalInt("starportLandingTime")) <= 0) starportLandingTime = 120; delete lua; lua = NULL; }
void PlanetManagerImplementation::loadLuaConfig() { String planetName = zone->getZoneName(); Lua* lua = new Lua(); lua->init(); lua->runFile("scripts/managers/planet_manager.lua"); //Get's the configuration settings object for this planet. LuaObject luaObject = lua->getGlobalObject(planetName); if (luaObject.isValidTable()) { bool weatherEnabled = luaObject.getIntField("weatherEnabled"); if(weatherEnabled) { weatherManager = new WeatherManager(zone); weatherManager->initialize(); } else { info("Weather Disabled", true); } LuaObject planetTravelPointsTable = luaObject.getObjectField("planetTravelPoints"); planetTravelPointList->readLuaObject(&planetTravelPointsTable); planetTravelPointsTable.pop(); loadSnapshotObjects(); LuaObject planetObjectsTable = luaObject.getObjectField("planetObjects"); loadPlanetObjects(&planetObjectsTable); planetObjectsTable.pop(); } else { warning("Configuration settings not found."); } luaObject.pop(); // Configure shuttleport timing if ((shuttleportAwayTime = lua->getGlobalInt("shuttleportAwayTime")) <= 0) shuttleportAwayTime = 300; if ((shuttleportLandedTime = lua->getGlobalInt("shuttleportLandedTime")) <= 0) shuttleportLandedTime = 120; if ((shuttleportLandingTime = lua->getGlobalInt("shuttleportLandingTime")) <= 0) shuttleportLandingTime = 11; // Configure starport timing if ((starportAwayTime = lua->getGlobalInt("starportAwayTime")) <= 0) starportAwayTime = 60; if ((starportLandedTime = lua->getGlobalInt("starportLandedTime")) <= 0) starportLandedTime = 120; if ((starportLandingTime = lua->getGlobalInt("starportLandingTime")) <= 0) starportLandingTime = 120; lua->runFile("scripts/managers/spawn_manager/" + zone->getZoneName() + ".lua"); LuaObject badges = lua->getGlobalObject(zone->getZoneName() + "_badges"); if (badges.isValidTable()) { uint32 hashCode = String("object/badge_area.iff").hashCode(); for (int i = 1; i <= badges.getTableSize(); ++i) { lua_rawgeti(lua->getLuaState(), -1, i); LuaObject badge(lua->getLuaState()); String badgeName = badge.getStringAt(1); float x = badge.getFloatAt(2); float y = badge.getFloatAt(3); float radius = badge.getFloatAt(4); int badgeID = badge.getIntAt(5); ManagedReference<BadgeActiveArea*> obj = server->getZoneServer()->createObject(hashCode, 0).castTo<BadgeActiveArea*>(); obj->setRadius(radius); obj->setBadge(badgeID); obj->initializePosition(x, 0, y); zone->transferObject(obj, -1, false); badge.pop(); } } badges.pop(); delete lua; lua = NULL; }