From 4c9b88fc2391ff43bfc8daff9fd3da1f0d9ffdaf Mon Sep 17 00:00:00 2001 From: Cekis Date: Sat, 4 Feb 2017 17:07:18 +0000 Subject: [PATCH] Defaulted zone transitioning player to Tatooine if the zone they are transitioning to cannot be found. --- .../systems/movement/zone_transition.java | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/systems/movement/zone_transition.java diff --git a/sku.0/sys.server/compiled/game/script/systems/movement/zone_transition.java b/sku.0/sys.server/compiled/game/script/systems/movement/zone_transition.java old mode 100644 new mode 100755 index a28af15b1..2d9341f0d --- a/sku.0/sys.server/compiled/game/script/systems/movement/zone_transition.java +++ b/sku.0/sys.server/compiled/game/script/systems/movement/zone_transition.java @@ -195,17 +195,28 @@ public class zone_transition extends script.base_script location parent = params.getLocation("location"); obj_id player = params.getObjId("player"); String[] parsed_list = utils.getStringArrayScriptVar(player, "zoneTransition"); - String world = parsed_list[2]; - float locX = utils.stringToFloat(parsed_list[4]); - float locY = utils.stringToFloat(parsed_list[5]); - float locZ = utils.stringToFloat(parsed_list[6]); - locX += parent.x; - locY += parent.y; - locZ += parent.z; - callable.storeCallables(player); - utils.dismountRiderJetpackCheck(player); - warpPlayer(player, world, locX, locY, locZ, null, locX, locY, locZ); - return SCRIPT_CONTINUE; + try { + String world = parsed_list[2]; + float locX = utils.stringToFloat(parsed_list[4]); + float locY = utils.stringToFloat(parsed_list[5]); + float locZ = utils.stringToFloat(parsed_list[6]); + locX += parent.x; + locY += parent.y; + locZ += parent.z; + callable.storeCallables(player); + utils.dismountRiderJetpackCheck(player); + warpPlayer(player, world, locX, locY, locZ, null, locX, locY, locZ); + } + catch(Exception e){ + String scene = ""; + if(parent != null) scene = parent.area; + // if zone transition cannot be found or is invalid. + LOG("zone_transition", "ERROR: Unable to get zoneTransition script var (" + (parsed_list != null ? parsed_list.toString() : "") + ") off player (" + player + ":" + getName(player) + ") located at (" + scene + ":" + parent + ")."); + Thread.dumpStack(); + } + finally{ + return SCRIPT_CONTINUE; + } } public void doLogging(String section, String message) throws InterruptedException {