diff --git a/sku.0/sys.server/compiled/game/script/item/tool/reverse_engineering_tool.java b/sku.0/sys.server/compiled/game/script/item/tool/reverse_engineering_tool.java index 0888825ff..3e89dbbce 100755 --- a/sku.0/sys.server/compiled/game/script/item/tool/reverse_engineering_tool.java +++ b/sku.0/sys.server/compiled/game/script/item/tool/reverse_engineering_tool.java @@ -491,6 +491,8 @@ public class reverse_engineering_tool extends script.base_script obj_id powerup = static_item.createNewItemFunction(getGemTemplateByClass(player, ratio, 1), inventory); if (isIdValid(powerup)) { + if(power > 117) + power = 117; setObjVar(powerup, "reverse_engineering.reverse_engineering_power", power); setObjVar(powerup, "reverse_engineering.reverse_engineering_modifier", mod); setObjVar(powerup, "reverse_engineering.reverse_engineering_ratio", ratio); diff --git a/sku.0/sys.server/compiled/game/script/player/player_instance.java b/sku.0/sys.server/compiled/game/script/player/player_instance.java index a4ef083fb..4b4f45474 100755 --- a/sku.0/sys.server/compiled/game/script/player/player_instance.java +++ b/sku.0/sys.server/compiled/game/script/player/player_instance.java @@ -705,6 +705,15 @@ public class player_instance extends script.base_script } public int handleAwardtoken(obj_id self, dictionary params) throws InterruptedException { + obj_id instanceController = instance.getAreaInstanceController(self); + if (!isIdValid(instanceController)) + { + return SCRIPT_CONTINUE; + } + if (!instance.isPlayerInPlayerList(self, instance.getPlayerList(instanceController))) + { + return SCRIPT_CONTINUE; + } int tokenIndex = params.getInt("tokenIndex"); int count = 1; if (params.containsKey("tokenCount")) diff --git a/sku.0/sys.server/compiled/game/script/player/player_saga_quest.java b/sku.0/sys.server/compiled/game/script/player/player_saga_quest.java index 9e66764d4..234a4dc3c 100755 --- a/sku.0/sys.server/compiled/game/script/player/player_saga_quest.java +++ b/sku.0/sys.server/compiled/game/script/player/player_saga_quest.java @@ -510,7 +510,14 @@ public class player_saga_quest extends script.base_script { name = new string_id("saga_system", "holocron_reward_unknown"); } - if (utils.isNestedWithin(rewardItem, self)) + final obj_id itemContainer = getContainedBy(rewardItem); + if (!isValidId(itemContainer) || !isValidId(playerInventory)) + { + pp = prose.getPackage(new string_id("saga_system", "holocron_reward_not_in_inventory"), name); + sendSystemMessageProse(self, pp); + pgc_quests.logReward(self, questHolocron, "Player attempted to donate a reward item but it was not in their inventory: " + name + "(" + rewardItem + ")"); + } + else if (itemContainer == playerInventory) { if (pgc_quests.isEligiblePgcReward(rewardItem)) { diff --git a/sku.0/sys.server/compiled/game/script/systems/storyteller/prop_controller.java b/sku.0/sys.server/compiled/game/script/systems/storyteller/prop_controller.java index 7f39faa15..79ac6a6d6 100755 --- a/sku.0/sys.server/compiled/game/script/systems/storyteller/prop_controller.java +++ b/sku.0/sys.server/compiled/game/script/systems/storyteller/prop_controller.java @@ -23,6 +23,14 @@ public class prop_controller extends script.base_script messageTo(self, "handleStorytellerPropInitialize", null, 5, false); return SCRIPT_CONTINUE; } + public int OnAboutToBeTransferred(obj_id self, obj_id destContainer, obj_id transferer) throws InterruptedException + { + if (isPlayer(getContainedBy(destContainer))) + { + return SCRIPT_OVERRIDE; + } + return SCRIPT_CONTINUE; + } public int handleStorytellerPropInitialize(obj_id self, dictionary params) throws InterruptedException { if (!hasObjVar(self, "eventTeamCleaupOverride") && !utils.hasScriptVar(self, "storytellerOnAttachFired"))