Shops will no longer charge if inventory is full
The ::shop can no longer be opened if the player is movement or interaction locked Rogues now drop the proper coin Rewrote the canoe station chop down as a soft script to be uninterruptible Fixed the player locks for Rellekka trapped chest and better handled the case when inventory is full Corrected the examine text of the armadyl plateskirt Fixed the dialogue for lady of the lake The player is now locked and can't interrupt stepping stone shortcuts
This commit is contained in:
@@ -159,7 +159,6 @@
|
|||||||
" /this @name looks dumb",
|
" /this @name looks dumb",
|
||||||
"AAAAAAAAAAAAAAAAAAAAAAAAHHHHHH!!!",
|
"AAAAAAAAAAAAAAAAAAAAAAAAHHHHHH!!!",
|
||||||
"como estas @name",
|
"como estas @name",
|
||||||
"Summer = always the best community manaer",
|
|
||||||
"so how about that ceikry guy",
|
"so how about that ceikry guy",
|
||||||
"so how about that kermit dude",
|
"so how about that kermit dude",
|
||||||
"woah is an abusive mod",
|
"woah is an abusive mod",
|
||||||
@@ -169,7 +168,6 @@
|
|||||||
"Where do i find partyhats?",
|
"Where do i find partyhats?",
|
||||||
"Why do mobs drop boxes?",
|
"Why do mobs drop boxes?",
|
||||||
"What exp rate do you play on @name?",
|
"What exp rate do you play on @name?",
|
||||||
"Have you met Summer?",
|
|
||||||
"Hey @name",
|
"Hey @name",
|
||||||
"Hey @name",
|
"Hey @name",
|
||||||
"Hey @name",
|
"Hey @name",
|
||||||
|
|||||||
@@ -10372,13 +10372,13 @@
|
|||||||
{
|
{
|
||||||
"minAmount": "15",
|
"minAmount": "15",
|
||||||
"weight": "4.0",
|
"weight": "4.0",
|
||||||
"id": "6964",
|
"id": "995",
|
||||||
"maxAmount": "15"
|
"maxAmount": "15"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"minAmount": "25",
|
"minAmount": "25",
|
||||||
"weight": "1.0",
|
"weight": "1.0",
|
||||||
"id": "6964",
|
"id": "995",
|
||||||
"maxAmount": "25"
|
"maxAmount": "25"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -99642,7 +99642,7 @@
|
|||||||
{
|
{
|
||||||
"requirements": "{1,70}-{4,70}",
|
"requirements": "{1,70}-{4,70}",
|
||||||
"ge_buy_limit": "2",
|
"ge_buy_limit": "2",
|
||||||
"examine": "A rune plateskirt in the colours of Armadyl.",
|
"examine": "A plateskirt of great craftsmanship.",
|
||||||
"rare_item": "true",
|
"rare_item": "true",
|
||||||
"durability": null,
|
"durability": null,
|
||||||
"weight": "8",
|
"weight": "8",
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package content.global.skill.agility.shortcuts
|
package content.global.skill.agility.shortcuts
|
||||||
|
|
||||||
|
import core.api.*
|
||||||
import core.cache.def.impl.SceneryDefinition
|
import core.cache.def.impl.SceneryDefinition
|
||||||
import core.game.interaction.OptionHandler
|
import core.game.interaction.OptionHandler
|
||||||
|
import core.game.interaction.QueueStrength
|
||||||
import core.game.node.Node
|
import core.game.node.Node
|
||||||
import core.game.node.entity.impl.ForceMovement
|
import core.game.node.entity.impl.ForceMovement
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
@@ -38,15 +40,18 @@ class SteppingStoneShortcut : OptionHandler() {
|
|||||||
}
|
}
|
||||||
val offset = getOffset(player,finalDest)
|
val offset = getOffset(player,finalDest)
|
||||||
player.debug("Offset: ${offset.first},${offset.second}")
|
player.debug("Offset: ${offset.first},${offset.second}")
|
||||||
player.pulseManager.run(object : Pulse(2){
|
lock(player, 3)
|
||||||
override fun pulse(): Boolean {
|
player.locks.lockTeleport(3)
|
||||||
|
queueScript(player, 2, QueueStrength.SOFT) {
|
||||||
val there = player.location == finalDest
|
val there = player.location == finalDest
|
||||||
if (!there) {
|
if (!there) {
|
||||||
|
lock(player, 3)
|
||||||
|
player.locks.lockTeleport(3)
|
||||||
ForceMovement.run(player,player.location,player.location.transform(offset.first,offset.second,0), ANIMATION,10)
|
ForceMovement.run(player,player.location,player.location.transform(offset.first,offset.second,0), ANIMATION,10)
|
||||||
|
return@queueScript delayScript(player, 2)
|
||||||
}
|
}
|
||||||
return there
|
return@queueScript stopExecuting(player)
|
||||||
}
|
}
|
||||||
})
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import core.game.world.update.flag.context.Animation;
|
|||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
|
|
||||||
|
import static core.api.ContentAPIKt.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the thieving of chests.
|
* Handles the thieving of chests.
|
||||||
* @author Vexia
|
* @author Vexia
|
||||||
@@ -146,19 +148,19 @@ public final class ThievableChestPlugin extends OptionHandler {
|
|||||||
player.sendMessage("It looks like this chest has already been looted.");
|
player.sendMessage("It looks like this chest has already been looted.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.lock();
|
|
||||||
player.animate(Animation.create(536));
|
|
||||||
if (player.getSkills().getLevel(Skills.THIEVING) < level) {
|
if (player.getSkills().getLevel(Skills.THIEVING) < level) {
|
||||||
player.lock(2);
|
animate(player, 536, false);
|
||||||
|
lock(player, 2);
|
||||||
player.sendMessage("You search the chest for traps.");
|
player.sendMessage("You search the chest for traps.");
|
||||||
player.sendMessage("You find nothing.", 1);
|
player.sendMessage("You find nothing.", 1);
|
||||||
player.unlock();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getInventory().freeSlots() == 0) {
|
if (player.getInventory().freeSlots() == 0) {
|
||||||
player.getPacketDispatch().sendMessage("Not enough inventory space.");
|
player.getPacketDispatch().sendMessage("Not enough inventory space.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
lock(player, 6);
|
||||||
|
animate(player, 536, false);
|
||||||
player.sendMessage("You find a trap on the chest...");
|
player.sendMessage("You find a trap on the chest...");
|
||||||
player.getImpactHandler().setDisabledTicks(6);
|
player.getImpactHandler().setDisabledTicks(6);
|
||||||
GameWorld.getPulser().submit(new Pulse(1, player) {
|
GameWorld.getPulser().submit(new Pulse(1, player) {
|
||||||
@@ -172,10 +174,10 @@ public final class ThievableChestPlugin extends OptionHandler {
|
|||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
player.animate(Animation.create(536));
|
player.animate(Animation.create(536));
|
||||||
|
player.faceLocation(object.getLocation());
|
||||||
player.sendMessage("You open the chest.");
|
player.sendMessage("You open the chest.");
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
player.unlock();
|
|
||||||
for (Item i : rewards) {
|
for (Item i : rewards) {
|
||||||
player.getInventory().add(i, player);
|
player.getInventory().add(i, player);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import core.game.interaction.InteractionListener
|
|||||||
import core.game.interaction.IntType
|
import core.game.interaction.IntType
|
||||||
|
|
||||||
import core.api.*
|
import core.api.*
|
||||||
|
import core.game.interaction.QueueStrength
|
||||||
import org.rs09.consts.Sounds
|
import org.rs09.consts.Sounds
|
||||||
|
|
||||||
class CanoeStationListener : InteractionListener {
|
class CanoeStationListener : InteractionListener {
|
||||||
@@ -52,15 +53,13 @@ class CanoeStationListener : InteractionListener {
|
|||||||
player.faceLocation(CanoeUtils.getFaceLocation(player.location))
|
player.faceLocation(CanoeUtils.getFaceLocation(player.location))
|
||||||
player.animate(axe.animation)
|
player.animate(axe.animation)
|
||||||
setVarbit(player,varbit,STAGE_TREE_NONINTERACTABLE)
|
setVarbit(player,varbit,STAGE_TREE_NONINTERACTABLE)
|
||||||
player.pulseManager.run(object : Pulse(4){
|
queueScript(player, 4, QueueStrength.SOFT) {
|
||||||
override fun pulse(): Boolean {
|
|
||||||
player.animator.stop()
|
player.animator.stop()
|
||||||
setVarbit(player,varbit,STAGE_LOG_CHOPPED)
|
setVarbit(player,varbit,STAGE_LOG_CHOPPED)
|
||||||
player.packetDispatch.sendSceneryAnimation(node.asScenery().getChild(player), FALL, false)
|
player.packetDispatch.sendSceneryAnimation(node.asScenery().getChild(player), FALL, false)
|
||||||
player.unlock()
|
player.unlock()
|
||||||
return true
|
return@queueScript stopExecuting(player)
|
||||||
}
|
}
|
||||||
})
|
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -82,7 +82,14 @@ class TheLadyOfTheLake(player: Player? = null) : DialoguePlugin(player) {
|
|||||||
117 -> player("Thanks!").also { stage = 10000 }
|
117 -> player("Thanks!").also { stage = 10000 }
|
||||||
145 -> options("I seek the sword Excalibur.", "Good day.").also { stage = 150 }
|
145 -> options("I seek the sword Excalibur.", "Good day.").also { stage = 150 }
|
||||||
150 -> when (buttonId) {
|
150 -> when (buttonId) {
|
||||||
1 -> player("I seek the sword Excalibur.").also { stage = 161 }
|
1 -> {
|
||||||
|
player("I seek the sword Excalibur.")
|
||||||
|
if (quest.getStage(player) < 50) {
|
||||||
|
stage = 250
|
||||||
|
} else {
|
||||||
|
stage = 161
|
||||||
|
}
|
||||||
|
}
|
||||||
2 -> player("Good day.").also { stage = 10000 }
|
2 -> player("Good day.").also { stage = 10000 }
|
||||||
}
|
}
|
||||||
161 -> if (quest.getStage(player) == 50 || quest.getStage(player) == 60) { // they haven't proven themselves yet
|
161 -> if (quest.getStage(player) == 50 || quest.getStage(player) == 60) { // they haven't proven themselves yet
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ class Shop(val title: String, val stock: Array<ShopItem>, val general: Boolean =
|
|||||||
{
|
{
|
||||||
if(removeItem(player, cost))
|
if(removeItem(player, cost))
|
||||||
{
|
{
|
||||||
if (item.amount == 0 && amountInInventory(player, cost.id) == 0) {
|
if (item.amount == 0) {
|
||||||
item.amount = 1
|
item.amount = 1
|
||||||
}
|
}
|
||||||
if(!hasSpaceFor(player, item)) {
|
if(!hasSpaceFor(player, item)) {
|
||||||
|
|||||||
@@ -175,7 +175,9 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){
|
|||||||
* Opens the credit/voting shop
|
* Opens the credit/voting shop
|
||||||
*/
|
*/
|
||||||
define("shop", Privilege.STANDARD, "", "Opens the credit shop."){ player, _ ->
|
define("shop", Privilege.STANDARD, "", "Opens the credit shop."){ player, _ ->
|
||||||
player.interfaceManager.open(Component(Components.CREDIT_SHOP))
|
if (player.locks.isInteractionLocked || player.locks.isMovementLocked) {
|
||||||
|
sendMessage(player, "You can't open the shop right now.")
|
||||||
|
} else player.interfaceManager.open(Component(Components.CREDIT_SHOP))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user