Merge pull request #26 from SWG-Source/exploit_fixes

Exploit fixes
This commit is contained in:
Tekaoh
2019-04-03 12:30:57 -05:00
committed by GitHub
4 changed files with 27 additions and 1 deletions

View File

@@ -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);

View File

@@ -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"))

View File

@@ -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))
{

View File

@@ -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"))