Fixed some issues with incorrectly reading varbit values
Fixed Dwarf Cannon quest Improved varp/varbit interface and handling
This commit is contained in:
@@ -281,7 +281,7 @@ enum class EnchantedJewellery(
|
||||
"assigned to kill ${getSlayerTaskName(player).lowercase(Locale.getDefault())}'s; " +
|
||||
"only ${getSlayerTaskKillsRemaining(player)} more to go.", core.game.dialogue.FacialExpression.FRIENDLY)
|
||||
// Slayer tracker UI
|
||||
setVarbit(player, 2502, 0, slayerManager.flags.taskFlags shr 4)
|
||||
setVarp(player, 2502, slayerManager.flags.taskFlags shr 4)
|
||||
}
|
||||
|
||||
private fun canTeleport(player: Player, item: Item): Boolean {
|
||||
@@ -335,4 +335,4 @@ enum class EnchantedJewellery(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,9 +37,9 @@ object DrillDemonUtils {
|
||||
}
|
||||
|
||||
fun changeSignsAndAssignTask(player: Player){
|
||||
player.varpManager.get(DD_SIGN_VARP).clearBitRange(0,31)
|
||||
setVarp(player, DD_SIGN_VARP, 0)
|
||||
val tempList = arrayListOf(DD_SIGN_JOG, DD_SIGN_JUMP, DD_SIGN_PUSHUP, DD_SIGN_SITUP).shuffled().toMutableList()
|
||||
val tempOffsetList = arrayListOf(0,2,4,6).shuffled().toMutableList()
|
||||
val tempOffsetList = arrayListOf(1335, 1336, 1337, 1338).shuffled().toMutableList()
|
||||
val task = tempList.random()
|
||||
val taskOffset = tempOffsetList.random()
|
||||
|
||||
@@ -48,9 +48,9 @@ object DrillDemonUtils {
|
||||
|
||||
tempList.remove(task)
|
||||
tempOffsetList.remove(taskOffset)
|
||||
player.varpManager.get(DD_SIGN_VARP).setVarbit(taskOffset,task).send(player)
|
||||
setVarbit(player, taskOffset, task)
|
||||
for(i in 0 until tempList.size){
|
||||
player.varpManager.get(DD_SIGN_VARP).setVarbit(tempOffsetList[i],tempList[i]).send(player)
|
||||
setVarbit(player, tempOffsetList[i], tempList[i])
|
||||
}
|
||||
|
||||
player.dialogueInterpreter.sendDialogues(NPCs.SERGEANT_DAMIEN_2790, core.game.dialogue.FacialExpression.OLD_NORMAL,when(task){
|
||||
@@ -63,18 +63,18 @@ object DrillDemonUtils {
|
||||
player.unlock()
|
||||
}
|
||||
|
||||
fun getOffsetForID(id: Int): Int{
|
||||
fun getVarbitForId(id: Int): Int{
|
||||
return when(id){
|
||||
10076 -> 0
|
||||
10077 -> 2
|
||||
10078 -> 4
|
||||
10079 -> 6
|
||||
10076 -> 1335
|
||||
10077 -> 1336
|
||||
10078 -> 1337
|
||||
10079 -> 1338
|
||||
else -> 0
|
||||
}
|
||||
}
|
||||
|
||||
fun getMatTask(id: Int, player: Player): Int{
|
||||
return player.varpManager.get(DD_SIGN_VARP).getVarbitValue(getOffsetForID(id)) ?: 0
|
||||
return getVarbit(player, getVarbitForId(id))
|
||||
}
|
||||
|
||||
fun cleanup(player: Player){
|
||||
@@ -117,4 +117,4 @@ object DrillDemonUtils {
|
||||
GroundItemManager.create(reward,player)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,7 @@ class FairyRingInterface : InterfaceListener {
|
||||
player.removeAttribute("fr:ring1")
|
||||
player.removeAttribute("fr:ring2")
|
||||
player.removeAttribute("fr:ring3")
|
||||
clearVarp(player, 816)
|
||||
setVarbit(player, 816, 0, 0)
|
||||
setVarp(player, 816, 0)
|
||||
closeTabInterface(player)
|
||||
return@onClose true
|
||||
}
|
||||
@@ -76,7 +75,7 @@ class FairyRingInterface : InterfaceListener {
|
||||
toSet = !toSet
|
||||
player.setAttribute("fr:sortorder",toSet)
|
||||
if(toSet) {
|
||||
setVarbit(player, 816, 0, ring1index)
|
||||
setVarp(player, 816, ring1index)
|
||||
player.setAttribute("fr:ring2",0)
|
||||
player.setAttribute("fr:ring3",0)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package content.global.handlers.iface;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
@@ -78,7 +80,7 @@ public class SettingTabInterface extends ComponentPlugin {
|
||||
break;
|
||||
case 8:// house
|
||||
p.getInterfaceManager().close();
|
||||
p.getConfigManager().set(261, p.getConfigManager().get(261) & 0x1);
|
||||
setVarp(p, 261, getVarp(p, 261) & 0x1);
|
||||
p.getInterfaceManager().openSingleTab(new Component(398));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ import core.game.node.entity.player.Player;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents the plugin used for the skilling interface.
|
||||
* @author 'Vexia
|
||||
@@ -23,9 +25,8 @@ public final class SkillInterface extends ComponentPlugin {
|
||||
|
||||
@Override
|
||||
public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) {
|
||||
player.varpManager.get(965)
|
||||
.setVarbit(0,player.getAttribute("skillMenu",-1))
|
||||
.setVarbit(10, button - 10).send(player);
|
||||
setVarbit(player, 3288, player.getAttribute("skillMenu", -1));
|
||||
setVarbit(player, 3289, button - 10);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ import core.game.world.GameWorld;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents the plugin used to handle the skilling tab.
|
||||
* @author Vexia
|
||||
@@ -35,12 +37,12 @@ public final class SkillTabInterface extends ComponentPlugin {
|
||||
if (p.getAttribute("levelup:" + config.getSkillId(), false)) {
|
||||
p.removeAttribute("levelup:" + config.getSkillId());
|
||||
LevelUp.sendFlashingIcons(p, -1);
|
||||
p.getConfigManager().set(1230, ADVANCE_CONFIGS[config.getSkillId()]);
|
||||
setVarp(p, 1230, ADVANCE_CONFIGS[config.getSkillId()]);
|
||||
p.getInterfaceManager().open(new Component(741));
|
||||
} else {
|
||||
p.getPulseManager().clear();
|
||||
p.getInterfaceManager().open(new Component(499));
|
||||
p.getConfigManager().set(965, config.getConfig());
|
||||
setVarp(p, 965, config.getConfig());
|
||||
p.getAttributes().put("skillMenu", config.getConfig());
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -30,7 +30,7 @@ class StockMarket : InterfaceListener {
|
||||
player.packetDispatch.sendInterfaceConfig(105, 193, true)
|
||||
player.packetDispatch.sendIfaceSettings(6, 211, 105, -1, -1)
|
||||
player.packetDispatch.sendIfaceSettings(6, 209, 105, -1, -1)
|
||||
player.varpManager.get(1112).setVarbit(0, -1).send(player)
|
||||
setVarp(player, 1112, -1)
|
||||
return@onOpen true
|
||||
}
|
||||
|
||||
@@ -187,13 +187,13 @@ class StockMarket : InterfaceListener {
|
||||
fun updateOfferValue(player: Player, offer: GrandExchangeOffer, newAmt: Int)
|
||||
{
|
||||
offer.offeredValue = newAmt
|
||||
player.varpManager.get(1111).setVarbit(0, newAmt).send(player)
|
||||
setVarp(player, 1111, newAmt)
|
||||
}
|
||||
|
||||
fun updateOfferAmount(player: Player, offer: GrandExchangeOffer, newAmt: Int)
|
||||
{
|
||||
offer.amount = newAmt
|
||||
player.varpManager.get(1110).setVarbit(0, newAmt).send(player)
|
||||
setVarp(player, 1110, newAmt)
|
||||
}
|
||||
|
||||
fun abortOffer(player: Player, offer: GrandExchangeOffer?)
|
||||
@@ -320,14 +320,14 @@ class StockMarket : InterfaceListener {
|
||||
lowPrice = (recommendedPrice * 0.95).toInt()
|
||||
highPrice = (recommendedPrice * 1.05).toInt()
|
||||
}
|
||||
player.varpManager.get(1109).setVarbit(0, offer?.itemID ?: -1).send(player)
|
||||
player.varpManager.get(1110).setVarbit(0, offer?.amount ?: 0).send(player)
|
||||
player.varpManager.get(1111).setVarbit(0, offer?.offeredValue ?: 0).send(player)
|
||||
player.varpManager.get(1112).setVarbit(0, index).send(player)
|
||||
player.varpManager.get(1113).setVarbit(0, if (isSale) 1 else 0).send(player)
|
||||
player.varpManager.get(1114).setVarbit(0, recommendedPrice).send(player)
|
||||
player.varpManager.get(1115).setVarbit(0, lowPrice).send(player)
|
||||
player.varpManager.get(1116).setVarbit(0, highPrice).send(player)
|
||||
setVarp(player, 1109, offer?.itemID ?: -1)
|
||||
setVarp(player, 1110, offer?.amount ?: 0)
|
||||
setVarp(player, 1111, offer?.offeredValue ?: 0)
|
||||
setVarp(player, 1112, index)
|
||||
setVarp(player, 1113, if (isSale) 1 else 0)
|
||||
setVarp(player, 1114, recommendedPrice)
|
||||
setVarp(player, 1115, lowPrice)
|
||||
setVarp(player, 1116, highPrice)
|
||||
if (offer != null) {
|
||||
PacketRepository.send(
|
||||
ContainerPacket::class.java,
|
||||
@@ -392,4 +392,4 @@ class StockMarket : InterfaceListener {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ import core.plugin.ClassScanner;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the dragonfire shield options.
|
||||
* @author Emperor
|
||||
@@ -49,7 +51,7 @@ public final class DragonfireShieldPlugin extends OptionHandler {
|
||||
boolean usingAttack = !player.getAttribute("dfs_spec", false);
|
||||
if (!usingAttack) {
|
||||
if (!player.getSettings().isSpecialToggled()) {
|
||||
player.getConfigManager().set(301, 0);
|
||||
setVarp(player, 301, 0);
|
||||
}
|
||||
player.removeAttribute("dfs_spec");
|
||||
player.getProperties().getCombatPulse().setTemporaryHandler(null);
|
||||
@@ -70,7 +72,7 @@ public final class DragonfireShieldPlugin extends OptionHandler {
|
||||
player.getPacketDispatch().sendMessage("Your dragonfire shield is recharging.");
|
||||
return true;
|
||||
}
|
||||
player.getConfigManager().set(301, 1);
|
||||
setVarp(player, 301, 1);
|
||||
player.setAttribute("dfs_spec", true);
|
||||
SwitchAttack attack = new SwitchAttack(null, Animation.create(6696), Graphics.create(1165), new Graphics(1167, 96), Projectile.create(player, null, 1166, 36, 36, 80, 70, 0, 11));
|
||||
DragonfireSwingHandler handler = new DragonfireSwingHandler(false, 26, attack, true) {
|
||||
@@ -79,7 +81,7 @@ public final class DragonfireShieldPlugin extends OptionHandler {
|
||||
if (entity instanceof Player) {
|
||||
Player player = (Player) entity;
|
||||
if (!player.getSettings().isSpecialToggled()) {
|
||||
player.getConfigManager().set(301, 0);
|
||||
setVarp(player, 301, 0);
|
||||
}
|
||||
player.removeAttribute("dfs_spec");
|
||||
Item shield = player.getEquipment().get(EquipmentContainer.SLOT_SHIELD);
|
||||
|
||||
@@ -43,7 +43,7 @@ class EnchantedGemDialogue() : DialogueFile() {
|
||||
} else {
|
||||
npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You're currently assigned to kill ${getSlayerTaskName(player!!)}s; only ${getSlayerTaskKillsRemaining(player!!)} more to go.")
|
||||
}
|
||||
setVarbit(player!!, 2502, 0, getSlayerTaskFlags(player!!) shr 4)
|
||||
setVarp(player!!, 2502, getSlayerTaskFlags(player!!) shr 4)
|
||||
stage = 1
|
||||
}
|
||||
}
|
||||
@@ -63,4 +63,4 @@ class EnchantedGemDialogue() : DialogueFile() {
|
||||
401 -> player(core.game.dialogue.FacialExpression.HAPPY, "Great, thanks!").also { stage = 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import core.game.node.scenery.Scenery;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the creating of an imp jar.
|
||||
* @author Vexia
|
||||
@@ -62,12 +64,12 @@ public final class ImpJarCreatePlugin extends UseWithHandler {
|
||||
* @param player the player.
|
||||
*/
|
||||
private void fillOilStill(Player player, Item used) {
|
||||
int configValue = player.getConfigManager().get(425);
|
||||
int configValue = getVarp(player, 425);
|
||||
if (used.getId() == 11262 || used.getId() == 10012) {
|
||||
if (configValue == 0 && used.getId() == 11262) {
|
||||
player.getInventory().replace(new Item(229), used.getSlot());
|
||||
player.sendMessage("You refine some imp repellent.");
|
||||
player.getConfigManager().set(425, 64, true);
|
||||
setVarp(player, 425, 64, true);
|
||||
return;
|
||||
} else if (configValue == 32) {
|
||||
player.sendMessage("There is already lamp oil in the still.");
|
||||
@@ -77,7 +79,7 @@ public final class ImpJarCreatePlugin extends UseWithHandler {
|
||||
player.sendMessage("There is already imp repellent in the still.");
|
||||
} else {
|
||||
player.getInventory().replace(new Item(11260), used.getSlot());
|
||||
player.getConfigManager().set(425, 0, true);
|
||||
setVarp(player, 425, 0, true);
|
||||
player.sendMessage("You turn the butterfly jar into an impling jar.");
|
||||
}
|
||||
return;
|
||||
@@ -95,7 +97,7 @@ public final class ImpJarCreatePlugin extends UseWithHandler {
|
||||
}
|
||||
if (used.getId() == 1939) {
|
||||
if (player.getInventory().remove(new Item(1939))) {
|
||||
player.getConfigManager().set(425, 32, true);
|
||||
setVarp(player, 425, 32, true);
|
||||
player.sendMessage("You refine some swamp tar into lamp oil.");
|
||||
}
|
||||
} else {
|
||||
@@ -105,7 +107,7 @@ public final class ImpJarCreatePlugin extends UseWithHandler {
|
||||
if (player.getInventory().contains(4525, 1) || player.getInventory().contains(4535, 1) || player.getInventory().contains(4546, 1) || player.getInventory().contains(4700, 1)) {
|
||||
Item replace = new Item(used.getId() == 4525 ? 4522 : used.getId() == 4535 ? 4537 : used.getId() == 4546 ? 4548 : 4701);
|
||||
player.getInventory().replace(replace, used.getSlot());
|
||||
player.getConfigManager().set(425, 0, true);
|
||||
setVarp(player, 425, 0, true);
|
||||
player.sendMessage("You fill the item with oil.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class GWDEntranceRopeListener : InteractionListener {
|
||||
return@onUseWith false
|
||||
}
|
||||
|
||||
setVarbit(player,1048,0,1,true)
|
||||
setVarbit(player, 3932, 1, true)
|
||||
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@ import core.tools.StringUtils;
|
||||
import content.global.skill.summoning.pet.IncubatorState;
|
||||
import core.plugin.ClassScanner;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the incubator.
|
||||
* @author Vexia
|
||||
@@ -46,7 +48,7 @@ public class IncubatorPlugin extends OptionHandler {
|
||||
}
|
||||
{
|
||||
String name = egg.getProduct().getName().toLowerCase();
|
||||
player.varpManager.get(1160).setVarbit(4,0).send(player);
|
||||
setVarbit(player, 4277, 0);
|
||||
player.sendMessage("You take your " + name + " out of the incubator.");
|
||||
if(!player.getInventory().add(egg.getProduct())){
|
||||
GroundItemManager.create(egg.getProduct(),player);
|
||||
@@ -58,7 +60,7 @@ public class IncubatorPlugin extends OptionHandler {
|
||||
if (player.states.get("incubator") != null || inc != -1) {
|
||||
IncubatorState p = (IncubatorState) player.states.get("incubator");
|
||||
if(p != null && p.getPulse() == null){
|
||||
player.varpManager.get(1160).setVarbit(4,0).send(player);
|
||||
setVarbit(player, 4277, 0);
|
||||
return true;
|
||||
}
|
||||
String name = p == null ? IncubatorEgg.values()[inc].getProduct().getName().toLowerCase() : p.getEgg().getProduct().getName().toLowerCase();
|
||||
|
||||
@@ -10,6 +10,8 @@ import core.plugin.PluginManifest;
|
||||
import core.plugin.PluginType;
|
||||
import core.game.world.GameWorld;
|
||||
|
||||
import static core.api.ContentAPIKt.setVarp;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
@@ -60,7 +62,7 @@ public final class LoginValidationPlugin implements Plugin<Player> {
|
||||
ActivityManager.start(player, "falconry", true);
|
||||
}
|
||||
if (player.getSavedData().getQuestData().getDragonSlayerAttribute("repaired")) {
|
||||
player.getConfigManager().set(177, 1967876);
|
||||
setVarp(player, 177, 1967876); //lol?
|
||||
}
|
||||
if (player.getSavedData().getGlobalData().getLootShareDelay() < System.currentTimeMillis() && player.getSavedData().getGlobalData().getLootShareDelay() != 0L) {
|
||||
player.getGlobalData().setLootSharePoints((int) (player.getGlobalData().getLootSharePoints() - player.getGlobalData().getLootSharePoints() * 0.10));
|
||||
|
||||
@@ -65,7 +65,7 @@ class MillingListener : InteractionListener {
|
||||
}
|
||||
}
|
||||
playAudio(player, SOUND)
|
||||
setVarbit(player, VARP, 0, 1, true)
|
||||
setVarp(player, VARP, 1, true)
|
||||
}
|
||||
|
||||
private fun fillHopper(player: Player, used: Item) {
|
||||
@@ -94,8 +94,8 @@ class MillingListener : InteractionListener {
|
||||
sendMessage(player, if (player.getAttribute("milling:grain", 0) > 0) "You fill a pot with flour from the bin." else "You fill a pot with the last of the flour in the bin.")
|
||||
}
|
||||
if (getAttribute(player, "milling:sweetcorn", 0) + getAttribute(player, "milling:grain", 0) <= 0) {
|
||||
setVarbit(player, VARP, 0, 0, true)
|
||||
setVarp(player, VARP, 0, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ import core.tools.RandomFunction;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the Brimhaven agility arena zone.
|
||||
*
|
||||
@@ -77,7 +79,7 @@ public final class BrimhavenArena extends MapZone implements Plugin<Object> {
|
||||
player.setAttribute("brim-tagcount", 0);
|
||||
}
|
||||
player.setAttribute("brim-tagged", false);
|
||||
player.getConfigManager().set(309, 0);
|
||||
setVarp(player, 309, 0);
|
||||
int index = RandomFunction.randomize(DISPENSERS.length);
|
||||
if (index == player.getAttribute("brim-tag", -1)) {
|
||||
index = (index + 1) % DISPENSERS.length;
|
||||
@@ -137,7 +139,7 @@ public final class BrimhavenArena extends MapZone implements Plugin<Object> {
|
||||
player.setAttribute("brim-tagged", true);
|
||||
int tags = player.getAttribute("brim-tagcount", 0) + 1;
|
||||
player.setAttribute("brim-tagcount", tags);
|
||||
player.getConfigManager().set(309, 4);
|
||||
setVarp(player, 309, 4);
|
||||
if (tags > 1) {
|
||||
int amount = 1;
|
||||
if (!player.getInventory().add(new Item(TICKET.getId(), amount))) {
|
||||
|
||||
@@ -19,6 +19,8 @@ import core.game.world.map.Location;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.ClassScanner;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the agility pryamid course.
|
||||
* @author Vexia
|
||||
@@ -147,7 +149,7 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||
case 10855:
|
||||
case 10856:
|
||||
addConfig(player, 10869, 0, true);
|
||||
if (player.getConfigManager().get(640) == 505 || player.getConfigManager().get(640) == 515) {
|
||||
if (getVarp(player, 640) == 505 || getVarp(player, 640) == 515) {
|
||||
player.getSkills().addExperience(Skills.AGILITY, 300, true);
|
||||
}
|
||||
player.getDialogueInterpreter().sendDialogue("You climb down the steep passage. It leads to the base of the", "pyramid.");
|
||||
@@ -387,7 +389,7 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||
@Override
|
||||
public boolean pulse() {
|
||||
player.getSkills().addExperience(Skills.AGILITY, 1000);
|
||||
if (player.getConfigManager().get(640) == 505 || player.getConfigManager().get(640) == 515) {
|
||||
if (getVarp(player, 640) == 505 || getVarp(player, 640) == 515) {
|
||||
player.getPacketDispatch().sendMessage("You find nothing on top of the pyramid.");
|
||||
return true;
|
||||
}
|
||||
@@ -510,7 +512,7 @@ public final class AgilityPyramidCourse extends AgilityCourse {
|
||||
final VarbitDefinition definition = VarbitDefinition.forObjectID(SceneryDefinition.forId(objectId).getVarbitID());
|
||||
final int oldVal = (definition.getValue(player) << definition.getStartBit());
|
||||
final int newVal = (value << definition.getStartBit());
|
||||
player.getConfigManager().set(CONFIG_ID, (player.getConfigManager().get(CONFIG_ID) - oldVal) + newVal, save);
|
||||
setVarp(player, CONFIG_ID, (getVarp(player, CONFIG_ID) - oldVal) + newVal, save);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,7 +23,7 @@ import core.tools.SystemLogger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static core.api.ContentAPIKt.log;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Utility class for building.
|
||||
@@ -134,12 +134,12 @@ public final class BuildingUtils {
|
||||
if (hasRequirements) {
|
||||
c261Value += (1 << (menuIndex + 1));
|
||||
}
|
||||
player.getConfigManager().set(1485 + menuIndex, hasRequirements || player.isStaff() ? 1 : 0);
|
||||
setVarp(player, 1485 + menuIndex, hasRequirements || player.isStaff() ? 1 : 0);
|
||||
player.getPacketDispatch().sendString("Level " + decoration.getLevel(), 396, 140 + menuIndex);
|
||||
//player.getPacketDispatch().sendItemZoomOnInterface(items[i].protocol(), 50000, 396, 49 + i);
|
||||
}
|
||||
|
||||
player.getConfigManager().set(261, c261Value);
|
||||
setVarp(player, 261, c261Value);
|
||||
PacketRepository.send(ContainerPacket.class, new ContainerContext(player, 396, 132, 8, items, false));
|
||||
}
|
||||
|
||||
@@ -699,4 +699,4 @@ public final class BuildingUtils {
|
||||
}
|
||||
return exits;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,8 +236,8 @@ public final class HouseManager {
|
||||
}
|
||||
|
||||
private void updateVarbits(Player player, boolean build) {
|
||||
player.varpManager.get(261).setVarbit(0, build ? 1 : 0);
|
||||
player.varpManager.get(262).setVarbit(0, getRoomAmount());
|
||||
setVarp(player, 261, build ? 1 : 0);
|
||||
setVarp(player, 262, getRoomAmount());
|
||||
}
|
||||
|
||||
private void unlockMusicTrack(Player player) {
|
||||
|
||||
@@ -162,8 +162,8 @@ class LecternPlugin : OptionHandler() {
|
||||
val id = player.getAttribute("ttb:objectid", 0)
|
||||
val deco = Decoration.forObjectId(id)
|
||||
val values = decorationVarps[deco] ?: Pair(0, 0)
|
||||
player.varpManager.get(261).setVarbit(0, values.first).send(player)
|
||||
player.varpManager.get(262).setVarbit(0, values.second).send(player)
|
||||
setVarp(player, 261, values.first)
|
||||
setVarp(player, 262, values.second)
|
||||
return@onOpen true
|
||||
}
|
||||
on(400) { player, _, _, buttonID, _, _ ->
|
||||
|
||||
@@ -118,19 +118,20 @@ class CompostBin(val player: Player, val bin: CompostBins) {
|
||||
}
|
||||
|
||||
fun updateBit(){
|
||||
player.varpManager.get(bin.varpIndex).clearBitRange(bin.varpOffest,bin.varpOffest + 7)
|
||||
if(items.isNotEmpty()) {
|
||||
if (isFinished) {
|
||||
player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 1, if(items.size == 15) 15 else 14)
|
||||
if (isTomatoes) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 7, 1)
|
||||
else if (isSuperCompost) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 5, 1)
|
||||
if (isClosed) {
|
||||
setVarbit(player, bin.varbit, 0x40)
|
||||
} else if (isFinished) {
|
||||
var finalValue = if (items.size == 15) 15 else 14
|
||||
if (isTomatoes) finalValue += 0x80
|
||||
else if (isSuperCompost) finalValue += 0x20
|
||||
setVarbit(player, bin.varbit, finalValue)
|
||||
} else {
|
||||
player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest, items.size)
|
||||
if (isTomatoes) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 7, 1)
|
||||
var finalValue = items.size
|
||||
if (isTomatoes) finalValue += 0x80
|
||||
setVarbit(player, bin.varbit, finalValue)
|
||||
}
|
||||
if (isClosed) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 6, 1)
|
||||
}
|
||||
player.varpManager.get(bin.varpIndex).send(player)
|
||||
} else setVarbit(player, bin.varbit, 0)
|
||||
}
|
||||
|
||||
fun save(root: JSONObject){
|
||||
@@ -176,4 +177,4 @@ class CompostBin(val player: Player, val bin: CompostBins) {
|
||||
updateBit()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,15 @@ import core.cache.def.impl.VarbitDefinition
|
||||
import core.game.node.scenery.Scenery
|
||||
import core.game.node.entity.player.Player
|
||||
|
||||
enum class CompostBins(val varpIndex: Int, val varpOffest: Int) {
|
||||
FALADOR_COMPOST(511,0),
|
||||
CATHERBY_COMPOST(511,8),
|
||||
PORT_PHAS_COMPOST(511,16),
|
||||
ARDOUGNE_COMPOST(511,24);
|
||||
enum class CompostBins(val varbit: Int) {
|
||||
FALADOR_COMPOST(740),
|
||||
CATHERBY_COMPOST(741),
|
||||
PORT_PHAS_COMPOST(742),
|
||||
ARDOUGNE_COMPOST(743);
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val bins = values().map { (it.varpIndex shl it.varpOffest) to it }.toMap()
|
||||
val bins = values().map { it.varbit to it }.toMap()
|
||||
|
||||
@JvmStatic
|
||||
fun forObject(obj: Scenery): CompostBins?{
|
||||
@@ -23,8 +23,7 @@ enum class CompostBins(val varpIndex: Int, val varpOffest: Int) {
|
||||
@JvmStatic
|
||||
fun forObjectID(id: Int): CompostBins?{
|
||||
val objDef = SceneryDefinition.forId(id)
|
||||
val def = VarbitDefinition.forObjectID(objDef.varbitID)
|
||||
return bins[def.varpId shl def.startBit]
|
||||
return bins[objDef.varbitID]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,4 +35,4 @@ enum class CompostBins(val varpIndex: Int, val varpOffest: Int) {
|
||||
} else
|
||||
state.getBin(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,73 +5,73 @@ import core.cache.def.impl.VarbitDefinition
|
||||
import core.game.node.scenery.Scenery
|
||||
import core.game.node.entity.player.Player
|
||||
|
||||
enum class FarmingPatch(val varpIndex: Int, val varpOffset: Int, val type: PatchType) {
|
||||
enum class FarmingPatch(val varbit: Int, val type: PatchType) {
|
||||
//Allotments
|
||||
S_FALADOR_ALLOTMENT_NW(504,0,PatchType.ALLOTMENT),
|
||||
S_FALADOR_ALLOTMENT_SE(504,8,PatchType.ALLOTMENT),
|
||||
CATHERBY_ALLOTMENT_N(504,16,PatchType.ALLOTMENT),
|
||||
CATHERBY_ALLOTMENT_S(504,24,PatchType.ALLOTMENT),
|
||||
ARDOUGNE_ALLOTMENT_S(505,8,PatchType.ALLOTMENT),
|
||||
ARDOUGNE_ALLOTMENT_N(505,0,PatchType.ALLOTMENT),
|
||||
PORT_PHAS_ALLOTMENT_NW(505,16,PatchType.ALLOTMENT),
|
||||
PORT_PHAS_ALLOTMENT_SE(505,24,PatchType.ALLOTMENT),
|
||||
HARMONY_ISLAND_ALLOTMENT(982,8,PatchType.ALLOTMENT),
|
||||
S_FALADOR_ALLOTMENT_NW(708,PatchType.ALLOTMENT),
|
||||
S_FALADOR_ALLOTMENT_SE(709,PatchType.ALLOTMENT),
|
||||
CATHERBY_ALLOTMENT_N(710,PatchType.ALLOTMENT),
|
||||
CATHERBY_ALLOTMENT_S(711,PatchType.ALLOTMENT),
|
||||
ARDOUGNE_ALLOTMENT_S(713,PatchType.ALLOTMENT),
|
||||
ARDOUGNE_ALLOTMENT_N(712,PatchType.ALLOTMENT),
|
||||
PORT_PHAS_ALLOTMENT_NW(714,PatchType.ALLOTMENT),
|
||||
PORT_PHAS_ALLOTMENT_SE(715,PatchType.ALLOTMENT),
|
||||
HARMONY_ISLAND_ALLOTMENT(3402,PatchType.ALLOTMENT),
|
||||
|
||||
//Herb
|
||||
CATHERBY_HERB_CE(515,8,PatchType.HERB),
|
||||
S_FALADOR_HERB_NE(515,0,PatchType.HERB),
|
||||
ARDOUGNE_HERB_CE(515,16,PatchType.HERB),
|
||||
PORT_PHAS_HERB_NE(515,24,PatchType.HERB),
|
||||
TROLL_STRONGHOLD_HERB(830,0,PatchType.HERB),
|
||||
CATHERBY_HERB_CE(781,PatchType.HERB),
|
||||
S_FALADOR_HERB_NE(780,PatchType.HERB),
|
||||
ARDOUGNE_HERB_CE(782,PatchType.HERB),
|
||||
PORT_PHAS_HERB_NE(783,PatchType.HERB),
|
||||
TROLL_STRONGHOLD_HERB(2788,PatchType.HERB),
|
||||
|
||||
//Flower
|
||||
S_FALADOR_FLOWER_C(508,0,PatchType.FLOWER),
|
||||
CATHERBY_FLOWER_C(508,8,PatchType.FLOWER),
|
||||
ARDOUGNE_FLOWER_C(508,16,PatchType.FLOWER),
|
||||
PORT_PHAS_FLOWER_C(508,24,PatchType.FLOWER),
|
||||
WILDERNESS_FLOWER(1183,12,PatchType.FLOWER),
|
||||
S_FALADOR_FLOWER_C(728,PatchType.FLOWER),
|
||||
CATHERBY_FLOWER_C(729,PatchType.FLOWER),
|
||||
ARDOUGNE_FLOWER_C(730,PatchType.FLOWER),
|
||||
PORT_PHAS_FLOWER_C(731,PatchType.FLOWER),
|
||||
WILDERNESS_FLOWER(5067,PatchType.FLOWER),
|
||||
|
||||
//Tree
|
||||
N_FALADOR_TREE(502,8,PatchType.TREE),
|
||||
TAVERLY_TREE(502,0,PatchType.TREE),
|
||||
GNOME_STRONGHOLD_TREE(830,11,PatchType.TREE),
|
||||
LUMBRIDGE_TREE(502,24,PatchType.TREE),
|
||||
VARROCK_TREE(502,16,PatchType.TREE),
|
||||
N_FALADOR_TREE(701,PatchType.TREE),
|
||||
TAVERLY_TREE(700,PatchType.TREE),
|
||||
GNOME_STRONGHOLD_TREE(2953,PatchType.TREE),
|
||||
LUMBRIDGE_TREE(703,PatchType.TREE),
|
||||
VARROCK_TREE(702,PatchType.TREE),
|
||||
|
||||
//Fruit Tree
|
||||
GNOME_STRONGHOLD_FRUIT_TREE(503,0,PatchType.FRUIT_TREE),
|
||||
CATHERBY_FRUIT_TREE(503,24,PatchType.FRUIT_TREE),
|
||||
TREE_GNOME_VILLAGE_FRUIT_TREE(503,8,PatchType.FRUIT_TREE),
|
||||
BRIMHAVEN_FRUIT_TREE(503,16,PatchType.FRUIT_TREE),
|
||||
LLETYA_FRUIT_TREE(830,23,PatchType.FRUIT_TREE),
|
||||
GNOME_STRONGHOLD_FRUIT_TREE(704,PatchType.FRUIT_TREE),
|
||||
CATHERBY_FRUIT_TREE(707,PatchType.FRUIT_TREE),
|
||||
TREE_GNOME_VILLAGE_FRUIT_TREE(705,PatchType.FRUIT_TREE),
|
||||
BRIMHAVEN_FRUIT_TREE(706,PatchType.FRUIT_TREE),
|
||||
LLETYA_FRUIT_TREE(4317,PatchType.FRUIT_TREE),
|
||||
|
||||
//Hops
|
||||
ENTRANA_HOPS(506,8,PatchType.HOPS),
|
||||
LUMBRIDGE_HOPS(506,16,PatchType.HOPS),
|
||||
MCGRUBOR_HOPS(506,24,PatchType.HOPS),
|
||||
YANILLE_HOPS(506,0,PatchType.HOPS),
|
||||
ENTRANA_HOPS(717,PatchType.HOPS),
|
||||
LUMBRIDGE_HOPS(718,PatchType.HOPS),
|
||||
MCGRUBOR_HOPS(719,PatchType.HOPS),
|
||||
YANILLE_HOPS(716,PatchType.HOPS),
|
||||
|
||||
//Bushes
|
||||
CHAMPIONS_GUILD_BUSH(509,0,PatchType.BUSH),
|
||||
RIMMINGTON_BUSH(509,8,PatchType.BUSH),
|
||||
ARDOUGNE_BUSH(509,24,PatchType.BUSH),
|
||||
ETCETERIA_BUSH(509,16,PatchType.BUSH),
|
||||
CHAMPIONS_GUILD_BUSH(732,PatchType.BUSH),
|
||||
RIMMINGTON_BUSH(733,PatchType.BUSH),
|
||||
ARDOUGNE_BUSH(735,PatchType.BUSH),
|
||||
ETCETERIA_BUSH(734,PatchType.BUSH),
|
||||
|
||||
//Spirit Tree
|
||||
ETCETERIA_SPIRIT_TREE(507,8,PatchType.SPIRIT_TREE),
|
||||
PORT_SARIM_SPIRIT_TREE(507,0,PatchType.SPIRIT_TREE),
|
||||
KARAMJA_SPIRIT_TREE(507,16,PatchType.SPIRIT_TREE),
|
||||
ETCETERIA_SPIRIT_TREE(722,PatchType.SPIRIT_TREE),
|
||||
PORT_SARIM_SPIRIT_TREE(720,PatchType.SPIRIT_TREE),
|
||||
KARAMJA_SPIRIT_TREE(724,PatchType.SPIRIT_TREE),
|
||||
|
||||
//Other
|
||||
DRAYNOR_BELLADONNA(512, 16, PatchType.BELLADONNA),
|
||||
CANIFIS_MUSHROOM(512, 8, PatchType.MUSHROOM),
|
||||
ALKHARID_CACTUS(512, 0, PatchType.CACTUS),
|
||||
EVIL_TURNIP(1171, 7, PatchType.EVIL_TURNIP);
|
||||
DRAYNOR_BELLADONNA(748, PatchType.BELLADONNA),
|
||||
CANIFIS_MUSHROOM(746, PatchType.MUSHROOM),
|
||||
ALKHARID_CACTUS(744, PatchType.CACTUS),
|
||||
EVIL_TURNIP(4291, PatchType.EVIL_TURNIP);
|
||||
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val patches = FarmingPatch.values().map { (it.varpIndex shl it.varpOffset) to it }.toMap()
|
||||
val patches = FarmingPatch.values().map { it.varbit to it }.toMap()
|
||||
|
||||
@JvmStatic
|
||||
fun forObject(obj: Scenery): FarmingPatch?{
|
||||
@@ -81,8 +81,7 @@ enum class FarmingPatch(val varpIndex: Int, val varpOffset: Int, val type: Patch
|
||||
@JvmStatic
|
||||
fun forObjectID(id: Int): FarmingPatch?{
|
||||
val objDef = SceneryDefinition.forId(id)
|
||||
val def = VarbitDefinition.forObjectID(objDef.varbitID)
|
||||
return patches[def.varpId shl def.startBit]
|
||||
return patches[objDef.varbitID]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,9 +38,8 @@ class InspectionHandler : OptionHandler() {
|
||||
val status3 = if(p.compost == CompostType.NONE) "This patch has not been treated." else "This patch has been treated with ${p.compost.name.toLowerCase()} compost."
|
||||
player.sendMessage("$status1 $status2")
|
||||
player.sendMessage(status3)
|
||||
val varpValue = player.varpManager.get(patch.varpIndex).getBitRangeValue(patch.varpOffset,patch.varpOffset + 7)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package content.global.skill.farming
|
||||
|
||||
import core.api.log
|
||||
import core.api.*
|
||||
import core.game.node.entity.player.Player
|
||||
import core.tools.Log
|
||||
import core.tools.RandomFunction
|
||||
@@ -90,11 +90,11 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl
|
||||
}
|
||||
|
||||
fun getCurrentState(): Int{
|
||||
return player.varpManager.get(patch.varpIndex).getVarbitValue(patch.varpOffset) ?: 0
|
||||
return getVarbit(player, patch.varbit)
|
||||
}
|
||||
|
||||
fun setCurrentState(state: Int){
|
||||
player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,state)
|
||||
setVarbit(player, patch.varbit, state)
|
||||
updateBit()
|
||||
}
|
||||
|
||||
@@ -109,58 +109,60 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl
|
||||
private fun updateBit(){
|
||||
if(isCheckHealth){
|
||||
when(patch.type){
|
||||
PatchType.FRUIT_TREE -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,plantable!!.value + plantable!!.stages + 20)
|
||||
PatchType.BUSH -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,250 + (plantable!!.ordinal - Plantable.REDBERRY_SEED.ordinal))
|
||||
PatchType.CACTUS -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, 31)
|
||||
PatchType.FRUIT_TREE -> setVarbit(player, patch.varbit, plantable!!.value + plantable!!.stages + 20)
|
||||
PatchType.BUSH -> setVarbit(player, patch.varbit, 250 + (plantable!!.ordinal - Plantable.REDBERRY_SEED.ordinal))
|
||||
PatchType.CACTUS -> setVarbit(player, patch.varbit, 31)
|
||||
else -> log(this::class.java, Log.WARN, "Invalid setting of isCheckHealth for patch type: " + patch.type.name)
|
||||
}
|
||||
} else {
|
||||
when(patch.type){
|
||||
PatchType.ALLOTMENT,PatchType.FLOWER,PatchType.HOPS -> {
|
||||
player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 6, if (isWatered || isDead) 1 else 0)
|
||||
player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 7, if (isDiseased) 1 else 0)
|
||||
var state = getUnmodifiedValue()
|
||||
if (isWatered || isDead) state = state or 0x40
|
||||
if (isDiseased) state = state or 0x80
|
||||
|
||||
if (state != getVarbit(player, patch.varbit))
|
||||
setVarbit(player, patch.varbit, state)
|
||||
}
|
||||
PatchType.BUSH -> {
|
||||
if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,getBushDeathValue())
|
||||
else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,getBushDiseaseValue())
|
||||
//else player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
if(isDead) setVarbit(player, patch.varbit, getBushDeathValue())
|
||||
else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getBushDiseaseValue())
|
||||
}
|
||||
PatchType.TREE -> {
|
||||
if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 7,1)
|
||||
else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 6, 1)
|
||||
var state = getVarbit(player, patch.varbit)
|
||||
|
||||
if (isDead) state = state or 0x80
|
||||
else if (isDiseased) state = state or 0x40
|
||||
|
||||
if (state != getVarbit(player, patch.varbit))
|
||||
setVarbit(player, patch.varbit, state)
|
||||
}
|
||||
PatchType.FRUIT_TREE -> {
|
||||
if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,getFruitTreeDeathValue())
|
||||
else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getFruitTreeDiseaseValue())
|
||||
if(isDead) setVarbit(player, patch.varbit, getFruitTreeDeathValue())
|
||||
else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getFruitTreeDiseaseValue())
|
||||
}
|
||||
PatchType.BELLADONNA -> {
|
||||
if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getBelladonnaDeathValue())
|
||||
else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getBelladonnaDiseaseValue())
|
||||
else player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
if(isDead) setVarbit(player, patch.varbit, getBelladonnaDeathValue())
|
||||
else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getBelladonnaDiseaseValue())
|
||||
else setVarbit(player, patch.varbit, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
}
|
||||
PatchType.CACTUS -> {
|
||||
if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getCactusDeathValue())
|
||||
else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getCactusDiseaseValue())
|
||||
if(isDead) setVarbit(player, patch.varbit, getCactusDeathValue())
|
||||
else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getCactusDiseaseValue())
|
||||
}
|
||||
PatchType.HERB -> {
|
||||
if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getHerbDeathValue())
|
||||
else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getHerbDiseaseValue())
|
||||
else player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
if(isDead) setVarbit(player, patch.varbit, getHerbDeathValue())
|
||||
else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getHerbDiseaseValue())
|
||||
else setVarbit(player, patch.varbit, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
player.varpManager.get(patch.varpIndex).send(player)
|
||||
}
|
||||
|
||||
fun cureDisease() {
|
||||
setVarbit(player, patch.varbit, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
isDiseased = false
|
||||
when(patch.type){
|
||||
PatchType.BUSH,PatchType.FRUIT_TREE -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,(plantable?.value ?: 0) + currentGrowthStage)
|
||||
PatchType.TREE -> player.varpManager.get(patch.varpIndex).clearBitRange(patch.varpOffset + 6, patch.varpOffset + 7)
|
||||
PatchType.CACTUS -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage)
|
||||
else -> {}
|
||||
}
|
||||
updateBit()
|
||||
}
|
||||
|
||||
@@ -169,6 +171,10 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl
|
||||
updateBit()
|
||||
}
|
||||
|
||||
private fun getUnmodifiedValue(): Int {
|
||||
return (plantable?.value ?: 0) + currentGrowthStage
|
||||
}
|
||||
|
||||
private fun getBushDiseaseValue(): Int{
|
||||
if(plantable == Plantable.POISON_IVY_SEED){
|
||||
return (plantable?.value ?: 0) + currentGrowthStage + 12
|
||||
@@ -306,7 +312,7 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl
|
||||
isDiseased = false
|
||||
isDead = false
|
||||
plantable = null
|
||||
player.varpManager.get(patch.varpIndex).clearBitRange(patch.varpOffset,patch.varpOffset + 7)
|
||||
setVarbit(player, patch.varbit, 0)
|
||||
nextGrowth = 0L
|
||||
currentGrowthStage = 3
|
||||
setCurrentState(3)
|
||||
|
||||
@@ -8,16 +8,13 @@ import org.rs09.consts.Components
|
||||
import org.rs09.consts.Items
|
||||
import core.game.interaction.InterfaceListener
|
||||
|
||||
private const val varp = 615
|
||||
class ToolLeprechaunInterface : InterfaceListener {
|
||||
|
||||
private val FARMING_TOOLS = Components.FARMING_TOOLS_125
|
||||
private val TOOLS_SIDE = Components.FARMING_TOOLS_SIDE_126
|
||||
|
||||
override fun defineInterfaceListeners() {
|
||||
|
||||
onOpen(FARMING_TOOLS){player, component ->
|
||||
player.varpManager?.flagSave(varp)
|
||||
player.interfaceManager.openSingleTab(Component(TOOLS_SIDE))
|
||||
return@onOpen true
|
||||
}
|
||||
@@ -48,7 +45,6 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
40 -> doStackedWithdrawal(player,Items.COMPOST_6032,getAmount(opcode),::updateCompost,::getNumCompost)
|
||||
41 -> doStackedWithdrawal(player,Items.SUPERCOMPOST_6034,getAmount(opcode),::updateSuperCompost,::getNumSuperCompost)
|
||||
}
|
||||
player.varpManager.get(varp).send(player)
|
||||
return@on true
|
||||
}
|
||||
|
||||
@@ -90,7 +86,6 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
25 -> doStackedDeposit(player,Items.COMPOST_6032,getAmount(opcode),::updateCompost,::getNumCompost)
|
||||
26 -> doStackedDeposit(player,Items.SUPERCOMPOST_6034,getAmount(opcode),::updateSuperCompost,::getNumSuperCompost)
|
||||
}
|
||||
player.varpManager.get(varp).send(player)
|
||||
return@on true
|
||||
}
|
||||
|
||||
@@ -149,7 +144,6 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
}
|
||||
player.inventory.remove(Item(item,amt))
|
||||
updateQuantityMethod.invoke(player,amt)
|
||||
player.varpManager.get(varp).send(player)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -200,7 +194,6 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
} else {
|
||||
player.inventory.add(Item(item, amt))
|
||||
updateQuantityMethod.invoke(player, -amt)
|
||||
player.varpManager.get(varp).send(player)
|
||||
}
|
||||
}
|
||||
return
|
||||
@@ -231,43 +224,43 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
}
|
||||
|
||||
private fun hasRake(player: Player?): Boolean{
|
||||
return checkBit(player,0)
|
||||
return getVarbit(player!!, 1435) == 1
|
||||
}
|
||||
|
||||
private fun setHasRake(player: Player?,hasRake: Boolean){
|
||||
player?.varpManager?.get(varp)?.setVarbit(0,if(hasRake) 1 else 0)
|
||||
setVarbit(player!!, 1435, if (hasRake) 1 else 0, true)
|
||||
}
|
||||
|
||||
private fun hasDibber(player: Player?): Boolean{
|
||||
return checkBit(player,1)
|
||||
return getVarbit(player!!, 1436) == 1
|
||||
}
|
||||
|
||||
private fun setHasDibber(player: Player?,hasDibber: Boolean){
|
||||
player?.varpManager?.get(varp)?.setVarbit(1,if(hasDibber) 1 else 0)
|
||||
setVarbit(player!!, 1436, if (hasDibber) 1 else 0, true)
|
||||
}
|
||||
|
||||
private fun hasSpade(player: Player?): Boolean{
|
||||
return checkBit(player,2)
|
||||
return getVarbit(player!!, 1437) == 1
|
||||
}
|
||||
|
||||
private fun setHasSpade(player: Player?,hasSpade: Boolean){
|
||||
player?.varpManager?.get(varp)?.setVarbit(2,if(hasSpade) 1 else 0)
|
||||
setVarbit(player!!, 1437, if (hasSpade) 1 else 0, true)
|
||||
}
|
||||
|
||||
private fun hasSecateurs(player: Player?): Boolean{
|
||||
return checkBit(player,3)
|
||||
return getVarbit(player!!, 1438) == 1
|
||||
}
|
||||
|
||||
private fun setHasSecateurs(player: Player?,hasSecateurs: Boolean){
|
||||
player?.varpManager?.get(varp)?.setVarbit(3,if(hasSecateurs) 1 else 0)
|
||||
setVarbit(player!!, 1438, if (hasSecateurs) 1 else 0, true)
|
||||
}
|
||||
|
||||
private fun hasWateringCan(player: Player?): Boolean{
|
||||
return checkBitRange(player,4,7) > 0
|
||||
return getVarbit(player!!, 1439) > 0
|
||||
}
|
||||
|
||||
private fun getWateringCan(player: Player?): Int{
|
||||
var can = checkBitRange(player,4,7) //Watering cans are stored in the Varp as a number between 1 and 9. Watering Can(0) is 1 and Watering Can(8) is 9
|
||||
var can = getVarbit(player!!, 1439) //Watering cans are stored in the Varp as a number between 1 and 9. Watering Can(0) is 1 and Watering Can(8) is 9
|
||||
if(can == 1) can = 0
|
||||
return Items.WATERING_CAN_5331 + can
|
||||
}
|
||||
@@ -285,61 +278,53 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
Items.WATERING_CAN8_5340 -> 9
|
||||
else -> 0
|
||||
}
|
||||
player?.varpManager?.get(varp)?.setVarbit(4,can)
|
||||
setVarbit(player!!, 1439, can, true)
|
||||
}
|
||||
|
||||
private fun setNoWateringCan(player: Player?){
|
||||
player?.varpManager?.get(varp)?.setVarbit(4,0)
|
||||
setVarbit(player!!, 1439, 0, true)
|
||||
}
|
||||
|
||||
private fun hasGardeningTrowel(player: Player?): Boolean {
|
||||
return checkBit(player,8)
|
||||
return getVarbit(player!!, 1440) == 1
|
||||
}
|
||||
|
||||
private fun setHasGardeningTrowel(player: Player?,hasTrowel: Boolean){
|
||||
player?.varpManager?.get(varp)?.setVarbit(8,if(hasTrowel) 1 else 0)
|
||||
setVarbit(player!!, 1440, if (hasTrowel) 1 else 0, true)
|
||||
}
|
||||
|
||||
private fun getNumBuckets(player: Player?): Int {
|
||||
return checkBitRange(player,9,13)
|
||||
return getVarbit(player!!, 1441)
|
||||
}
|
||||
|
||||
private fun updateBuckets(player: Player?,amount: Int){
|
||||
player?.varpManager?.get(varp)?.setVarbit(9,getNumBuckets(player) + amount)
|
||||
setVarbit(player!!, 1441, getNumBuckets(player) + amount, true)
|
||||
}
|
||||
|
||||
private fun getNumCompost(player: Player?): Int {
|
||||
return checkBitRange(player,14,21)
|
||||
return getVarbit(player!!, 1442)
|
||||
}
|
||||
|
||||
private fun updateCompost(player: Player?,amount: Int){
|
||||
player?.varpManager?.get(varp)?.setVarbit(14,getNumCompost(player) + amount)
|
||||
setVarbit(player!!, 1442, getNumCompost(player) + amount, true)
|
||||
}
|
||||
|
||||
private fun getNumSuperCompost(player: Player?): Int {
|
||||
return checkBitRange(player,22,29)
|
||||
return getVarbit(player!!, 1443)
|
||||
}
|
||||
|
||||
private fun updateSuperCompost(player: Player?,amount: Int){
|
||||
player?.varpManager?.get(varp)?.setVarbit(22,getNumSuperCompost(player) + amount)
|
||||
setVarbit(player!!, 1443, getNumSuperCompost(player) + amount, true)
|
||||
}
|
||||
|
||||
private fun hasMagicSecateurs(player: Player?): Boolean {
|
||||
return checkBit(player,30)
|
||||
return getVarbit(player!!, 1848) == 1
|
||||
}
|
||||
|
||||
private fun setHasMagicSecateurs(player: Player?,hasMagic: Boolean){
|
||||
player?.varpManager?.get(varp)?.setVarbit(30,if(hasMagic) 1 else 0)
|
||||
setVarbit(player!!, 1848, if (hasMagic) 1 else 0, true)
|
||||
}
|
||||
|
||||
private fun checkBitRange(player: Player?,start: Int, end: Int): Int{
|
||||
return (player?.varpManager?.get(varp)?.getBitRangeValue(start,end) ?: 0) ushr start
|
||||
}
|
||||
|
||||
private fun checkBit(player: Player?,offset: Int): Boolean{
|
||||
return player?.varpManager?.get(varp)?.getVarbitValue(offset) == 1
|
||||
}
|
||||
|
||||
private fun getHighestCan(player: Player?): Item?{
|
||||
player ?: return null
|
||||
var highestCan = Item(0)
|
||||
@@ -352,4 +337,4 @@ class ToolLeprechaunInterface : InterfaceListener {
|
||||
return if(highestCan.id == 0) null else highestCan
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,28 +60,28 @@ val HUNTER_REQS = hashMapOf(
|
||||
"Sabre-toothed kyatt" to 55,
|
||||
)
|
||||
//val pitVarpOffsets = hashMapOf( 19264 to 3, 19265 to 6, 19266 to 9, 19267 to 12, 19268 to 15,)
|
||||
data class Pit(val varpId: Int, val varpOffset: Int, val horizontal: Boolean)
|
||||
data class Pit(val varbitId: Int, val horizontal: Boolean)
|
||||
val pitVarps = hashMapOf(
|
||||
// Larupia pits (the duplicate 24 is likely authentic)
|
||||
Location.create(2565,2888) to Pit(917, 27, true),
|
||||
Location.create(2573,2885) to Pit(918, 0, false),
|
||||
Location.create(2556,2893) to Pit(917, 18, false),
|
||||
Location.create(2552,2904) to Pit(917, 24, true),
|
||||
Location.create(2543,2908) to Pit(917, 21, false),
|
||||
Location.create(2538,2899) to Pit(917, 24, true),
|
||||
Location.create(2565,2888) to Pit(2967, true),
|
||||
Location.create(2573,2885) to Pit(2968, false),
|
||||
Location.create(2556,2893) to Pit(2964, false),
|
||||
Location.create(2552,2904) to Pit(2966, true),
|
||||
Location.create(2543,2908) to Pit(2965, false),
|
||||
Location.create(2538,2899) to Pit(2966, true),
|
||||
// Kyatt pits
|
||||
Location.create(2700,3795) to Pit(917, 0, true),
|
||||
Location.create(2700,3785) to Pit(917, 3, false),
|
||||
Location.create(2706,3789) to Pit(917, 6, false),
|
||||
Location.create(2730,3791) to Pit(917, 9, true),
|
||||
Location.create(2737,3784) to Pit(917, 12, true),
|
||||
Location.create(2730,3780) to Pit(917, 15, false),
|
||||
Location.create(2700,3795) to Pit(2958, true),
|
||||
Location.create(2700,3785) to Pit(2959, false),
|
||||
Location.create(2706,3789) to Pit(2960, false),
|
||||
Location.create(2730,3791) to Pit(2961, true),
|
||||
Location.create(2737,3784) to Pit(2962, true),
|
||||
Location.create(2730,3780) to Pit(2963, false),
|
||||
// Graahk pits
|
||||
Location.create(2766,3010) to Pit(918, 3, false),
|
||||
Location.create(2762,3005) to Pit(918, 6, false),
|
||||
Location.create(2771,3004) to Pit(918, 9, true),
|
||||
Location.create(2777,3001) to Pit(918, 12, false),
|
||||
Location.create(2784,3001) to Pit(918, 15, true),
|
||||
Location.create(2766,3010) to Pit(2969, false),
|
||||
Location.create(2762,3005) to Pit(2970, false),
|
||||
Location.create(2771,3004) to Pit(2971, true),
|
||||
Location.create(2777,3001) to Pit(2972, false),
|
||||
Location.create(2784,3001) to Pit(2973, true),
|
||||
)
|
||||
/*val pitJumpSpots = hashMapOf(
|
||||
Location.create(2766,3010) to hashMapOf(
|
||||
@@ -298,7 +298,7 @@ class PitfallListeners : InteractionListener {
|
||||
|
||||
fun setPitState(player: Player, loc: Location, state: Int) {
|
||||
val pit = pitVarps[loc]!!
|
||||
player.varpManager.get(pit.varpId).setVarbit(pit.varpOffset, state).send(player)
|
||||
setVarbit(player, pit.varbitId, state)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,22 +14,22 @@ class CommonKebbitEast : HunterTracking() {
|
||||
init {
|
||||
initialMap = hashMapOf(
|
||||
19439 to arrayListOf(
|
||||
TrailDefinition(0,TrailType.LINKING, false,Location.create(2354, 3595, 0),Location.create(2360, 3602, 0)),
|
||||
TrailDefinition(3,TrailType.LINKING,false,Location.create(2354, 3595, 0),Location.create(2355, 3601, 0)),
|
||||
TrailDefinition(6,TrailType.LINKING,false,Location.create(2354, 3594, 0),Location.create(2349, 3604, 0))
|
||||
TrailDefinition(2974,TrailType.LINKING, false,Location.create(2354, 3595, 0),Location.create(2360, 3602, 0)),
|
||||
TrailDefinition(2975,TrailType.LINKING,false,Location.create(2354, 3595, 0),Location.create(2355, 3601, 0)),
|
||||
TrailDefinition(2976,TrailType.LINKING,false,Location.create(2354, 3594, 0),Location.create(2349, 3604, 0))
|
||||
),
|
||||
19440 to arrayListOf(
|
||||
TrailDefinition(18,TrailType.LINKING,true,Location.create(2361, 3611, 0),Location.create(2360, 3602, 0)),
|
||||
TrailDefinition(21,TrailType.LINKING,true,Location.create(2360, 3612, 0),Location.create(2357, 3607, 0))
|
||||
TrailDefinition(2980,TrailType.LINKING,true,Location.create(2361, 3611, 0),Location.create(2360, 3602, 0)),
|
||||
TrailDefinition(2981,TrailType.LINKING,true,Location.create(2360, 3612, 0),Location.create(2357, 3607, 0))
|
||||
)
|
||||
)
|
||||
|
||||
linkingTrails = arrayListOf(
|
||||
TrailDefinition(24,TrailType.LINKING,false,Location.create(2357, 3607, 0),Location.create(2354, 3609, 0),Location.create(2355, 3608, 0)),
|
||||
TrailDefinition(27,TrailType.LINKING,false,Location.create(2354, 3609, 0),Location.create(2349, 3604, 0),Location.create(2351, 3608, 0)),
|
||||
TrailDefinition(9,TrailType.LINKING,false ,Location.create(2360, 3602, 0),Location.create(2355, 3601, 0),Location.create(2358, 3599, 0)),
|
||||
TrailDefinition(12,TrailType.LINKING,false,Location.create(2355, 3601, 0),Location.create(2349, 3604, 0),Location.create(2352, 3603, 0)),
|
||||
TrailDefinition(15,TrailType.LINKING,false,Location.create(2360, 3602, 0),Location.create(2357, 3607, 0),Location.create(2358, 3603, 0))
|
||||
TrailDefinition(2982,TrailType.LINKING,false,Location.create(2357, 3607, 0),Location.create(2354, 3609, 0),Location.create(2355, 3608, 0)),
|
||||
TrailDefinition(2983,TrailType.LINKING,false,Location.create(2354, 3609, 0),Location.create(2349, 3604, 0),Location.create(2351, 3608, 0)),
|
||||
TrailDefinition(2977,TrailType.LINKING,false ,Location.create(2360, 3602, 0),Location.create(2355, 3601, 0),Location.create(2358, 3599, 0)),
|
||||
TrailDefinition(2978,TrailType.LINKING,false,Location.create(2355, 3601, 0),Location.create(2349, 3604, 0),Location.create(2352, 3603, 0)),
|
||||
TrailDefinition(2979,TrailType.LINKING,false,Location.create(2360, 3602, 0),Location.create(2357, 3607, 0),Location.create(2358, 3603, 0))
|
||||
)
|
||||
experience = 36.0
|
||||
varp = 919
|
||||
@@ -71,4 +71,4 @@ class CommonKebbitEast : HunterTracking() {
|
||||
|
||||
return this
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package content.global.skill.hunter.tracking
|
||||
|
||||
import core.api.log
|
||||
import core.api.*
|
||||
import core.game.interaction.OptionHandler
|
||||
import core.game.node.Node
|
||||
import core.game.node.scenery.Scenery
|
||||
@@ -70,7 +70,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||
nextTrail ?: continue
|
||||
var offsetUsed = false
|
||||
for(i in trail){
|
||||
if(i.offset == nextTrail.offset){ offsetUsed = true; break }
|
||||
if(i.varbit == nextTrail.varbit){ offsetUsed = true; break }
|
||||
}
|
||||
if(offsetUsed) continue
|
||||
if(nextTrail.type == TrailType.TUNNEL){
|
||||
@@ -94,7 +94,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||
val possibleTrails = ArrayList<TrailDefinition>()
|
||||
for(trail in linkingTrails){
|
||||
val invTrail = getTrailInverse(trail,false)
|
||||
if(invTrail.type == TrailType.TUNNEL && previousTrail.endLocation.withinDistance(invTrail.startLocation,5) && !previousTrail.endLocation.equals(invTrail.startLocation) && previousTrail.offset != trail.offset){
|
||||
if(invTrail.type == TrailType.TUNNEL && previousTrail.endLocation.withinDistance(invTrail.startLocation,5) && !previousTrail.endLocation.equals(invTrail.startLocation) && previousTrail.varbit != trail.varbit){
|
||||
possibleTrails.add(trail)
|
||||
}
|
||||
}
|
||||
@@ -102,7 +102,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||
}
|
||||
val possibleTrails = ArrayList<TrailDefinition>()
|
||||
for(trail in linkingTrails){
|
||||
if(trail.startLocation.equals(previousTrail.endLocation) && previousTrail.offset != trail.offset){
|
||||
if(trail.startLocation.equals(previousTrail.endLocation) && previousTrail.varbit != trail.varbit){
|
||||
possibleTrails.add(trail)
|
||||
}
|
||||
}
|
||||
@@ -116,8 +116,8 @@ abstract class HunterTracking : OptionHandler(){
|
||||
*/
|
||||
fun getTrailInverse(trail: TrailDefinition, swapLocations: Boolean): TrailDefinition{
|
||||
if(swapLocations)
|
||||
return TrailDefinition(trail.offset,if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING,!trail.inverted,trail.endLocation,trail.startLocation, trail.triggerObjectLocation)
|
||||
return TrailDefinition(trail.offset, if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING, !trail.inverted, trail.startLocation, trail.endLocation)
|
||||
return TrailDefinition(trail.varbit,if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING,!trail.inverted,trail.endLocation,trail.startLocation, trail.triggerObjectLocation)
|
||||
return TrailDefinition(trail.varbit, if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING, !trail.inverted, trail.startLocation, trail.endLocation)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,8 +145,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||
fun clearTrail(player: Player){
|
||||
player.removeAttribute(attribute)
|
||||
player.removeAttribute(indexAttribute)
|
||||
player.varpManager.get(varp).clear()
|
||||
player.varpManager.get(varp).send(player)
|
||||
setVarp(player, varp, 0)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -191,10 +190,9 @@ abstract class HunterTracking : OptionHandler(){
|
||||
val trailIndex = player.getAttribute(indexAttribute,0)
|
||||
for(index in 0..trailIndex){
|
||||
val trl = trail[index]
|
||||
player.varpManager.get(varp).setVarbit(trl.offset + 2,1)
|
||||
player.varpManager.get(varp).setVarbit(trl.offset,if(trl.inverted) 1 else 0)
|
||||
var current = getVarp(player, varp)
|
||||
setVarbit(player, trl.varbit, (if (trl.inverted) 1 else 0) or (1 shl 2))
|
||||
}
|
||||
player.varpManager.get(varp).send(player)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -217,7 +215,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||
trail.get(currentIndex)
|
||||
}
|
||||
} else {
|
||||
TrailDefinition(0,TrailType.LINKING,false,Location(0,0,0),Location(0,0,0),Location(0,0,0))
|
||||
return false
|
||||
}
|
||||
when(option){
|
||||
|
||||
@@ -264,4 +262,4 @@ abstract class HunterTracking : OptionHandler(){
|
||||
fun hasNooseWand(player: Player) : Boolean{
|
||||
return player.equipment.contains(Items.NOOSE_WAND_10150,1) || player.inventory.contains(Items.NOOSE_WAND_10150,1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,20 +27,20 @@ class PolarKebbitHunting : HunterTracking() {
|
||||
)
|
||||
initialMap = hashMapOf(
|
||||
19640 to arrayListOf(
|
||||
TrailDefinition(24,TrailType.TUNNEL,false,Location.create(2712, 3831, 1),Location.create(2718, 3832, 1)),
|
||||
TrailDefinition(21,TrailType.LINKING,true,Location.create(2712, 3831, 1),Location.create(2716, 3827, 1),Location.create(2713,3827,1)),
|
||||
TrailDefinition(12,TrailType.LINKING,false,Location.create(2712, 3831, 1),Location.create(2708, 3819, 1),Location.create(2708,3825,1))
|
||||
TrailDefinition(3061,TrailType.TUNNEL,false,Location.create(2712, 3831, 1),Location.create(2718, 3832, 1)),
|
||||
TrailDefinition(3060,TrailType.LINKING,true,Location.create(2712, 3831, 1),Location.create(2716, 3827, 1),Location.create(2713,3827,1)),
|
||||
TrailDefinition(3057,TrailType.LINKING,false,Location.create(2712, 3831, 1),Location.create(2708, 3819, 1),Location.create(2708,3825,1))
|
||||
),
|
||||
19641 to arrayListOf(
|
||||
TrailDefinition(0,TrailType.LINKING,true,Location.create(2718, 3820, 1),Location.create(2708, 3819, 1),Location.create(2712,3815,1)),
|
||||
TrailDefinition(6,TrailType.TUNNEL,false, Location.create(2718, 3820, 1),Location.create(2715, 3820, 1)),
|
||||
TrailDefinition(9,TrailType.TUNNEL,false,Location.create(2718, 3820, 1),Location.create(2721, 3827, 1))
|
||||
TrailDefinition(3053,TrailType.LINKING,true,Location.create(2718, 3820, 1),Location.create(2708, 3819, 1),Location.create(2712,3815,1)),
|
||||
TrailDefinition(3055,TrailType.TUNNEL,false, Location.create(2718, 3820, 1),Location.create(2715, 3820, 1)),
|
||||
TrailDefinition(3056,TrailType.TUNNEL,false,Location.create(2718, 3820, 1),Location.create(2721, 3827, 1))
|
||||
)
|
||||
)
|
||||
linkingTrails = arrayListOf(
|
||||
TrailDefinition(15,TrailType.LINKING,true,Location.create(2714,3821,1),Location.create(2716, 3827, 1)),
|
||||
TrailDefinition(18,TrailType.TUNNEL,true,Location.create(2716, 3827, 1),Location.create(2718,3829,1)),
|
||||
TrailDefinition(3,TrailType.TUNNEL,false,Location.create(2708, 3819, 1),Location.create(2711, 3819, 1))
|
||||
TrailDefinition(3058,TrailType.LINKING,true,Location.create(2714,3821,1),Location.create(2716, 3827, 1)),
|
||||
TrailDefinition(3059,TrailType.TUNNEL,true,Location.create(2716, 3827, 1),Location.create(2718,3829,1)),
|
||||
TrailDefinition(3054,TrailType.TUNNEL,false,Location.create(2708, 3819, 1),Location.create(2711, 3819, 1))
|
||||
)
|
||||
experience = 30.0
|
||||
varp = 926
|
||||
@@ -65,4 +65,4 @@ class PolarKebbitHunting : HunterTracking() {
|
||||
SceneryDefinition.forId(19435).handlers["option:attack"] = this
|
||||
return this
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@ package content.global.skill.hunter.tracking
|
||||
|
||||
import core.game.world.map.Location
|
||||
|
||||
class TrailDefinition(val offset: Int, val type: TrailType, var inverted: Boolean, val startLocation: Location, val endLocation: Location, val triggerObjectLocation: Location = endLocation){
|
||||
class TrailDefinition(val varbit: Int, val type: TrailType, var inverted: Boolean, val startLocation: Location, val endLocation: Location, val triggerObjectLocation: Location = endLocation){
|
||||
override fun toString(): String {
|
||||
return "$startLocation $endLocation [offset: $offset] [${type.name}] [inverted: $inverted]"
|
||||
return "$startLocation $endLocation [varbit: $varbit] [${type.name}] [inverted: $inverted]"
|
||||
}
|
||||
}
|
||||
enum class TrailType{
|
||||
LINKING,
|
||||
INITIAL,
|
||||
TUNNEL
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package content.global.skill.runecrafting;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
import core.cache.def.impl.VarbitDefinition;
|
||||
import core.cache.def.impl.ItemDefinition;
|
||||
import core.cache.def.impl.SceneryDefinition;
|
||||
@@ -38,27 +40,27 @@ public final class TiaraPlugin implements Plugin<Object> {
|
||||
switch (identifier) {
|
||||
case "equip":
|
||||
if (item.getName().contains("cape")) {
|
||||
player.getConfigManager().set(CONFIG, 6143);
|
||||
setVarp(player, CONFIG, 6143);
|
||||
break;
|
||||
}
|
||||
MysteriousRuin ruin = MysteriousRuin.forTalisman(Tiara.forItem(item).getTalisman());
|
||||
player.getConfigManager().set(CONFIG, 1 << VarbitDefinition.forObjectID(SceneryDefinition.forId(ruin.getObject()[0]).getVarbitID()).getStartBit(), true);
|
||||
setVarbit(player, SceneryDefinition.forId(ruin.getObject()[0]).getVarbitID(), 1, true);
|
||||
break;
|
||||
case "unequip":
|
||||
final Item other = args.length == 2 ? null : (Item) args[2];
|
||||
if (other != null) {
|
||||
if (other.getName().toLowerCase().contains("cape")) {
|
||||
player.getConfigManager().set(CONFIG, 6143);
|
||||
setVarp(player, CONFIG, 6143);
|
||||
break;
|
||||
}
|
||||
Tiara tiara = Tiara.forItem(other);
|
||||
if (tiara != null) {
|
||||
MysteriousRuin r = MysteriousRuin.forTalisman(tiara.getTalisman());
|
||||
player.getConfigManager().set(CONFIG, 1 << VarbitDefinition.forObjectID(SceneryDefinition.forId(r.getObject()[0]).getVarbitID()).getStartBit(), true);
|
||||
setVarbit(player, SceneryDefinition.forId(r.getObject()[0]).getVarbitID(), 1, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
player.getConfigManager().set(CONFIG, 0);
|
||||
setVarp(player, CONFIG, 0);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -244,7 +244,7 @@ class AbyssPlugin : InteractionListener {
|
||||
* Used to make sure the player lands by the blocked obstacle.
|
||||
*/
|
||||
fun rotateObstacles(player: Player, abyssLoc: AbyssLoc) {
|
||||
setVarbit(player,VARP_SCENERY_ABYSS,ABYSS_OBSTACLES,abyssLoc.getSegment(),true)
|
||||
setVarbit(player, 625, abyssLoc.getSegment(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -266,7 +266,7 @@ class AbyssPlugin : InteractionListener {
|
||||
3 -> return if (RandomFunction.random(100) < getStatLevel(player,skill)
|
||||
) {
|
||||
sendMessage(player, colorize("%G${messages[1]}"))
|
||||
if(varbitVal != null) { setVarbit(player,VARP_SCENERY_ABYSS,ABYSS_OBSTACLES,varbitVal) }
|
||||
if(varbitVal != null) { setVarbit(player, 625, varbitVal) }
|
||||
false
|
||||
} else {
|
||||
sendMessage(player, colorize("%R${messages[2]}"))
|
||||
@@ -274,7 +274,7 @@ class AbyssPlugin : InteractionListener {
|
||||
true
|
||||
}
|
||||
5 -> {
|
||||
if(varbitVal != null) { setVarbit(player,VARP_SCENERY_ABYSS,ABYSS_OBSTACLES,varbitVal or 1) }
|
||||
if(varbitVal != null) { setVarbit(player, 625, varbitVal or 1) }
|
||||
}
|
||||
7 -> {
|
||||
player.unlock()
|
||||
|
||||
@@ -6,6 +6,8 @@ import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
|
||||
/**
|
||||
* Handles the zamorak mages dialogue.
|
||||
@@ -460,7 +462,7 @@ public final class ZamorakMageDialogue extends DialoguePlugin {
|
||||
* @param stage the stage.
|
||||
*/
|
||||
public void setStage(int stage) {
|
||||
player.getConfigManager().set(492, stage, true);
|
||||
setVarp(player, 492, stage, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -468,6 +470,6 @@ public final class ZamorakMageDialogue extends DialoguePlugin {
|
||||
* @return the stage.
|
||||
*/
|
||||
public int getStage() {
|
||||
return player.getConfigManager().get(492);
|
||||
return getVarp(player, 492);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer,
|
||||
|
||||
fun decrementAmount(amount: Int) {
|
||||
flags.decrementTaskAmount(amount)
|
||||
player!!.varpManager.get(2502).setVarbit(0, flags.taskFlags shr 4).send(player)
|
||||
setVarp(player!!, 2502, flags.taskFlags shr 4)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -10,6 +10,7 @@ import content.global.skill.slayer.Tasks
|
||||
import core.tools.RandomFunction
|
||||
import org.rs09.consts.Items
|
||||
import java.util.ArrayList
|
||||
import core.api.*
|
||||
|
||||
object SlayerUtils {
|
||||
fun generate(player: Player, master: Master): Tasks?
|
||||
@@ -44,7 +45,7 @@ object SlayerUtils {
|
||||
} else if (master == Master.VANNAKA) {
|
||||
player.achievementDiaryManager.finishTask(player, DiaryType.VARROCK, 1, 14)
|
||||
}
|
||||
player.varpManager.get(2502).setVarbit(0, SlayerManager.getInstance(player).flags.taskFlags shr 4).send(player)
|
||||
setVarp(player, 2502, SlayerManager.getInstance(player).flags.taskFlags shr 4)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
|
||||
@@ -33,6 +33,8 @@ import core.net.packet.out.MinimapState;
|
||||
import core.plugin.Plugin;
|
||||
import core.plugin.ClassScanner;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the summoning training room.
|
||||
* @author Emperor
|
||||
@@ -83,7 +85,7 @@ public final class SummoningTrainingRoom extends OptionHandler {
|
||||
int questVal = quest.getStage(player) == 0 ? 0 : quest.getStage(player) > 0 && quest.getStage(player) < 100 ? 5 : 28893;
|
||||
switch (option) {
|
||||
case "close":
|
||||
player.getConfigManager().set(1178, questVal == 28893 ? 32989 : (1 << 11) + questVal);
|
||||
setVarp(player, 1178, questVal == 28893 ? 32989 : (1 << 11) + questVal);
|
||||
return true;
|
||||
case "open":
|
||||
if (quest.getStage(player) < 40) {
|
||||
@@ -92,13 +94,13 @@ public final class SummoningTrainingRoom extends OptionHandler {
|
||||
} else if (quest.getStage(player) == 40) {
|
||||
if (player.getAttribute("has-key", false) || player.getInventory().remove(TRAPDOOR_KEY)) {
|
||||
player.setAttribute("has-key", true);
|
||||
player.getConfigManager().set(1178, (2 << 11) + questVal, true);
|
||||
setVarp(player, 1178, (2 << 11) + questVal, true);
|
||||
} else {
|
||||
player.getPacketDispatch().sendMessage("The trapdoor is locked.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
player.getConfigManager().set(1178, questVal == 28893 ? 28893 : (2 << 11) + questVal);
|
||||
setVarp(player, 1178, questVal == 28893 ? 28893 : (2 << 11) + questVal);
|
||||
return true;
|
||||
case "climb-down":
|
||||
if (object.getId() == 28653) {
|
||||
|
||||
@@ -34,7 +34,7 @@ import content.global.skill.summoning.SummoningPouch;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static core.api.ContentAPIKt.log;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents a familiar.
|
||||
@@ -339,10 +339,8 @@ public abstract class Familiar extends NPC implements Plugin<Object> {
|
||||
private void sendTimeRemaining() {
|
||||
int minutes = ticks / 100;
|
||||
int centiminutes = ticks % 100;
|
||||
owner.varpManager.get(1176)
|
||||
.setVarbit(7, minutes)
|
||||
.setVarbit(6, centiminutes > 49 ? 1 : 0)
|
||||
.send(owner);
|
||||
setVarbit(owner, 4534, minutes);
|
||||
setVarbit(owner, 4290, centiminutes > 49 ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -542,9 +540,9 @@ public abstract class Familiar extends NPC implements Plugin<Object> {
|
||||
* Sends the familiar packets.
|
||||
*/
|
||||
public void sendConfiguration() {
|
||||
owner.getConfigManager().set(448, getPouchId());
|
||||
owner.getConfigManager().set(1174, getOriginalId());
|
||||
owner.getConfigManager().set(1175, specialCost << 23);
|
||||
setVarp(owner, 448, getPouchId());
|
||||
setVarp(owner, 1174, getOriginalId());
|
||||
setVarp(owner, 1175, specialCost << 23);
|
||||
sendTimeRemaining();
|
||||
updateSpecialPoints(0);
|
||||
}
|
||||
@@ -605,10 +603,10 @@ public abstract class Familiar extends NPC implements Plugin<Object> {
|
||||
getPulseManager().clear();
|
||||
owner.getInterfaceManager().removeTabs(7);
|
||||
owner.getFamiliarManager().setFamiliar(null);
|
||||
owner.getConfigManager().set(448, -1);
|
||||
owner.getConfigManager().set(1176, 0);
|
||||
owner.getConfigManager().set(1175, 182986);
|
||||
owner.getConfigManager().set(1174, -1);
|
||||
setVarp(owner, 448, -1);
|
||||
setVarp(owner, 1176, 0);
|
||||
setVarp(owner, 1175, 182986);
|
||||
setVarp(owner, 1174, -1);
|
||||
if (owner.getSkullManager().isWilderness()) {
|
||||
owner.getAppearance().sync();
|
||||
}
|
||||
@@ -624,7 +622,7 @@ public abstract class Familiar extends NPC implements Plugin<Object> {
|
||||
if (specialPoints > 60) {
|
||||
specialPoints = 60;
|
||||
}
|
||||
owner.getConfigManager().set(1177, specialPoints);
|
||||
setVarp(owner, 1177, specialPoints);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,6 +22,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles a player's familiar.
|
||||
* @author Emperor
|
||||
@@ -412,9 +414,9 @@ public final class FamiliarManager {
|
||||
* @param value the value.
|
||||
*/
|
||||
public void setConfig(int value) {
|
||||
int current = player.getConfigManager().get(1160);
|
||||
int current = getVarp(player, 1160);
|
||||
int newVal = current + value;
|
||||
player.getConfigManager().set(1160, newVal);
|
||||
setVarp(player, 1160, newVal);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,6 +5,7 @@ import core.game.node.entity.state.PlayerState
|
||||
import core.game.node.entity.state.State
|
||||
import core.game.system.task.Pulse
|
||||
import org.json.simple.JSONObject
|
||||
import core.api.*
|
||||
|
||||
@PlayerState("incubator")
|
||||
class IncubatorState(player: Player? = null) : State(player) {
|
||||
@@ -35,7 +36,7 @@ class IncubatorState(player: Player? = null) : State(player) {
|
||||
override fun createPulse() {
|
||||
player ?: return
|
||||
egg ?: return
|
||||
player.varpManager.get(1160).setVarbit(4,1).send(player)
|
||||
setVarbit(player, 4277, 1)
|
||||
pulse = object : Pulse(){
|
||||
override fun pulse(): Boolean {
|
||||
if(ticksLeft-- <= 0){
|
||||
@@ -49,4 +50,4 @@ class IncubatorState(player: Player? = null) : State(player) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import content.global.skill.summoning.familiar.Familiar;
|
||||
import content.global.skill.summoning.familiar.FamiliarSpecial;
|
||||
import core.game.node.entity.player.Player;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents a pet.
|
||||
* @author Emperor
|
||||
@@ -48,9 +50,9 @@ public final class Pet extends Familiar {
|
||||
|
||||
@Override
|
||||
public void sendConfiguration() {
|
||||
owner.getConfigManager().set(1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9));
|
||||
owner.getConfigManager().set(1174, getId());
|
||||
owner.getConfigManager().set(448, itemId);
|
||||
setVarp(owner, 1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9));
|
||||
setVarp(owner, 1174, getId());
|
||||
setVarp(owner, 448, itemId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,7 +71,7 @@ public final class Pet extends Familiar {
|
||||
if (hunger >= 100.0 && growthRate != 0 && pet.getFood().length != 0) {
|
||||
owner.getFamiliarManager().dismiss(false);
|
||||
owner.getFamiliarManager().setFamiliar(null);
|
||||
owner.getConfigManager().set(1175, 0);
|
||||
setVarp(owner, 1175, 0);
|
||||
owner.sendMessage("<col=ff0000>Your pet has run away.</col>");
|
||||
return;
|
||||
}
|
||||
@@ -87,7 +89,7 @@ public final class Pet extends Familiar {
|
||||
} else if (!getPulseManager().hasPulseRunning()) {
|
||||
startFollowing();
|
||||
}
|
||||
owner.getConfigManager().set(1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9));
|
||||
setVarp(owner, 1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,7 @@ package content.global.travel
|
||||
|
||||
import content.global.skill.magic.TeleportMethod
|
||||
import core.game.event.TeleportEvent
|
||||
import core.api.*
|
||||
import core.api.lock
|
||||
import core.api.teleport
|
||||
import core.api.unlock
|
||||
@@ -142,7 +143,7 @@ object EssenceTeleport {
|
||||
* @return the stage.
|
||||
*/
|
||||
fun getStage(player: Player): Int {
|
||||
return player.varpManager.get(492).getValue()
|
||||
return getVarp(player, 492)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -49,7 +49,7 @@ class CanoeInterfaceListeners : InterfaceListener {
|
||||
player.pulseManager.run(object : Pulse(3) {
|
||||
override fun pulse(): Boolean {
|
||||
if (RandomFunction.random(if (canoe == Canoe.WAKA) 8 else 6) == 1) {
|
||||
player.varpManager.setVarbit(varbit, CanoeUtils.getCraftValue(canoe, false))
|
||||
setVarbit(player,varbit, CanoeUtils.getCraftValue(canoe, false))
|
||||
player.skills.addExperience(Skills.WOODCUTTING, canoe.experience)
|
||||
player.unlock()
|
||||
return true
|
||||
@@ -128,7 +128,7 @@ class CanoeInterfaceListeners : InterfaceListener {
|
||||
if(destIndex == 4){
|
||||
player.sendMessage("There are no trees nearby to make a new canoe. Guess you're walking.")
|
||||
}
|
||||
player.varpManager.setVarbit(varbit,0)
|
||||
setVarbit(player,varbit,0)
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -138,4 +138,4 @@ class CanoeInterfaceListeners : InterfaceListener {
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import org.rs09.consts.Components
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.interaction.IntType
|
||||
|
||||
import core.api.*
|
||||
|
||||
class CanoeStationListener : InteractionListener {
|
||||
|
||||
private val STATION_IDs = intArrayOf(12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12149, 12150)
|
||||
@@ -33,7 +35,7 @@ class CanoeStationListener : InteractionListener {
|
||||
val axe: SkillingTool? = SkillingTool.getHatchet(player)
|
||||
val varbit = node.asScenery().definition.configFile
|
||||
if(varbit.getValue(player) != 0){
|
||||
player.varpManager.setVarbit(varbit,0)
|
||||
setVarbit(player,varbit,0)
|
||||
}
|
||||
|
||||
if (axe == null) {
|
||||
@@ -45,14 +47,14 @@ class CanoeStationListener : InteractionListener {
|
||||
return@on true
|
||||
}
|
||||
player.lock()
|
||||
player.varpManager.get(varbit.varpId).clearBitRange(0,31)
|
||||
setVarp(player, varbit.varpId, 0)
|
||||
player.faceLocation(CanoeUtils.getFaceLocation(player.location))
|
||||
player.animate(axe.animation)
|
||||
player.varpManager.setVarbit(varbit,STAGE_TREE_NONINTERACTABLE)
|
||||
setVarbit(player,varbit,STAGE_TREE_NONINTERACTABLE)
|
||||
player.pulseManager.run(object : Pulse(4){
|
||||
override fun pulse(): Boolean {
|
||||
player.animator.stop()
|
||||
player.varpManager.setVarbit(varbit,STAGE_LOG_CHOPPED)
|
||||
setVarbit(player,varbit,STAGE_LOG_CHOPPED)
|
||||
player.packetDispatch.sendSceneryAnimation(node.asScenery().getChild(player), FALL, false)
|
||||
player.unlock()
|
||||
return true
|
||||
@@ -64,7 +66,7 @@ class CanoeStationListener : InteractionListener {
|
||||
on(STATION_IDs, IntType.SCENERY, "shape-canoe"){ player, node ->
|
||||
val varbit = node.asScenery().definition.configFile
|
||||
if(varbit.getValue(player) != STAGE_LOG_CHOPPED){
|
||||
player.varpManager.setVarbit(varbit,0)
|
||||
setVarbit(player,varbit,0)
|
||||
return@on true
|
||||
}
|
||||
player.faceLocation(CanoeUtils.getFaceLocation(player.location))
|
||||
@@ -81,7 +83,7 @@ class CanoeStationListener : InteractionListener {
|
||||
player.faceLocation(CanoeUtils.getFaceLocation(player.location))
|
||||
player.pulseManager.run(object : Pulse(){
|
||||
override fun pulse(): Boolean {
|
||||
player.varpManager.setVarbit(varbit, CanoeUtils.getCraftValue(canoe, true))
|
||||
setVarbit(player,varbit, CanoeUtils.getCraftValue(canoe, true))
|
||||
player.packetDispatch.sendSceneryAnimation(node.asScenery(), FLOAT, false)
|
||||
player.unlock()
|
||||
return true
|
||||
@@ -95,4 +97,4 @@ class CanoeStationListener : InteractionListener {
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ import core.net.packet.context.MinimapStateContext;
|
||||
import core.net.packet.out.CameraViewPacket;
|
||||
import core.net.packet.out.MinimapState;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
|
||||
/**
|
||||
* Represents the pulse used for a glider.
|
||||
*
|
||||
@@ -49,7 +52,7 @@ public final class GliderPulse extends Pulse {
|
||||
public boolean pulse() {
|
||||
final boolean crash = glider == Gliders.LEMANTO_ADRA;
|
||||
if (count == 1) {
|
||||
player.varpManager.get(153).setVarbit(0,glider.getConfig()).send(player);
|
||||
setVarp(player, 153, glider.getConfig());
|
||||
PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 2));
|
||||
} else if (count == 2 && crash) {
|
||||
PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.SHAKE, 4, 4, 1200, 4, 4));
|
||||
@@ -68,7 +71,7 @@ public final class GliderPulse extends Pulse {
|
||||
player.getInterfaceManager().closeOverlay();
|
||||
player.getInterfaceManager().close();
|
||||
PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 0));
|
||||
player.varpManager.get(153).setVarbit(0,0).send(player);
|
||||
setVarp(player, 153, 0);
|
||||
// Use the gnome glider to travel to Karamja
|
||||
if (!crash && glider == Gliders.GANDIUS) {
|
||||
player.getAchievementDiaryManager().finishTask(player, DiaryType.KARAMJA, 1, 11);
|
||||
|
||||
@@ -4,6 +4,8 @@ import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.world.map.Location;
|
||||
|
||||
import static core.api.ContentAPIKt.setVarp;
|
||||
|
||||
/**
|
||||
* Represents an enum of glider locations.
|
||||
* @author 'Vexia
|
||||
@@ -60,7 +62,7 @@ public enum Gliders {
|
||||
if (g == null) {
|
||||
return;
|
||||
}
|
||||
player.getConfigManager().set(153, g.getConfig());
|
||||
setVarp(player, 153, g.getConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,6 +8,8 @@ import core.net.packet.PacketRepository;
|
||||
import core.net.packet.context.MinimapStateContext;
|
||||
import core.net.packet.out.MinimapState;
|
||||
|
||||
import static core.api.ContentAPIKt.setVarp;
|
||||
|
||||
/**
|
||||
* Represents a pulse used to travel a player to a location.
|
||||
* @author Vexia
|
||||
@@ -65,7 +67,7 @@ public final class ShipTravelPulse extends Pulse {
|
||||
*/
|
||||
private void arrive() {
|
||||
player.unlock();
|
||||
player.getConfigManager().set(75, -1);
|
||||
setVarp(player, 75, 0);
|
||||
player.getInterfaceManager().close();
|
||||
PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 0));
|
||||
if (!ship.getName().equals("Crandor")) {
|
||||
@@ -96,6 +98,6 @@ public final class ShipTravelPulse extends Pulse {
|
||||
player.lock(ship.getDelay() + 1);
|
||||
player.getInterfaceManager().open(new Component(299));
|
||||
PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 2));
|
||||
player.getConfigManager().set(75, ship.getConfig());
|
||||
setVarp(player, 75, ship.getConfig());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package content.minigame.allfiredup
|
||||
|
||||
import core.api.log
|
||||
import core.api.*
|
||||
import core.game.node.entity.player.Player
|
||||
import core.tools.SystemLogger
|
||||
import core.game.world.map.Location
|
||||
@@ -10,21 +10,21 @@ import core.tools.Log
|
||||
* Various data for beacons, such as varp and offset, required FM level, etc
|
||||
* @author Ceikry
|
||||
*/
|
||||
enum class AFUBeacon(val title: String, val fmLevel: Int, val varpId: Int, val offset: Int, val location: Location, val experience: Double, val keeper: Int = 0) {
|
||||
RIVER_SALVE("",43,1283,0,Location.create(3396, 3464, 0),216.2,8065),
|
||||
RAG_AND_BONE("",43,1283,3,Location.create(3343, 3510, 0),235.8,8066),
|
||||
JOLLY_BOAR("",48,1283,6,Location.create(3278, 3525, 0), 193.8,8067),
|
||||
NORTH_VARROCK_CASTLE("",53,1283,9,Location.create(3236, 3527, 0),178.5,8068),
|
||||
GRAND_EXCHANGE("",59,1283,12,Location.create(3170, 3536, 0),194.3,8069),
|
||||
EDGEVILLE("",62,1283,15,Location.create(3087, 3516, 0),86.7,8070),
|
||||
MONASTERY("",68,1283,18,Location.create(3034, 3518, 0),224.4,8071),
|
||||
GOBLIN_VILLAGE("",72,1283,21,Location.create(2968, 3516, 0),194.8,8072),
|
||||
BURTHORPE("",76,1283,24,Location.create(2940, 3565, 0),195.3,8073),
|
||||
DEATH_PLATEAU("",79,1288,0,Location.create(2944, 3622, 0),249.9,8074),
|
||||
TROLLHEIM("",83,1288,3,Location.create(2939, 3680, 0),201.0,8075),
|
||||
GWD("",87,1288,6,Location.create(2937, 3773, 0),255.0,8076),
|
||||
TEMPLE("",89,1288,9,Location.create(2946, 3836, 0),198.9),
|
||||
PLATEAU("",92,1288,12,Location.create(2964, 3931, 0),147.9);
|
||||
enum class AFUBeacon(val title: String, val fmLevel: Int, val varbit: Int, val location: Location, val experience: Double, val keeper: Int = 0) {
|
||||
RIVER_SALVE("",43,5146,Location.create(3396, 3464, 0),216.2,8065),
|
||||
RAG_AND_BONE("",43,5147,Location.create(3343, 3510, 0),235.8,8066),
|
||||
JOLLY_BOAR("",48,5148,Location.create(3278, 3525, 0), 193.8,8067),
|
||||
NORTH_VARROCK_CASTLE("",53,5149,Location.create(3236, 3527, 0),178.5,8068),
|
||||
GRAND_EXCHANGE("",59,5150,Location.create(3170, 3536, 0),194.3,8069),
|
||||
EDGEVILLE("",62,5151,Location.create(3087, 3516, 0),86.7,8070),
|
||||
MONASTERY("",68,5152,Location.create(3034, 3518, 0),224.4,8071),
|
||||
GOBLIN_VILLAGE("",72,5153,Location.create(2968, 3516, 0),194.8,8072),
|
||||
BURTHORPE("",76,5154,Location.create(2940, 3565, 0),195.3,8073),
|
||||
DEATH_PLATEAU("",79,5155,Location.create(2944, 3622, 0),249.9,8074),
|
||||
TROLLHEIM("",83,5156,Location.create(2939, 3680, 0),201.0,8075),
|
||||
GWD("",87,5157,Location.create(2937, 3773, 0),255.0,8076),
|
||||
TEMPLE("",89,5158,Location.create(2946, 3836, 0),198.9),
|
||||
PLATEAU("",92,5159,Location.create(2964, 3931, 0),147.9);
|
||||
|
||||
companion object {
|
||||
fun forLocation(location: Location): content.minigame.allfiredup.AFUBeacon {
|
||||
@@ -36,33 +36,33 @@ enum class AFUBeacon(val title: String, val fmLevel: Int, val varpId: Int, val o
|
||||
|
||||
fun resetAllBeacons(player: Player){
|
||||
for(beacon in values()){
|
||||
player.varpManager.get(beacon.varpId).setVarbit(beacon.offset,0).send(player)
|
||||
setVarbit(player, beacon.varbit, 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun light(player: Player){
|
||||
player.varpManager.get(varpId).setVarbit(offset,2).send(player)
|
||||
setVarbit(player, varbit, 2)
|
||||
}
|
||||
|
||||
fun diminish(player: Player){
|
||||
player.varpManager.get(varpId).setVarbit(offset,3).send(player)
|
||||
setVarbit(player, varbit, 3)
|
||||
}
|
||||
|
||||
fun extinguish(player: Player){
|
||||
player.varpManager.get(varpId).setVarbit(offset,0).send(player)
|
||||
setVarbit(player, varbit, 0)
|
||||
}
|
||||
|
||||
fun lightGnomish(player: Player){
|
||||
player.varpManager.get(varpId).setVarbit(offset,4).send(player)
|
||||
setVarbit(player, varbit, 4)
|
||||
}
|
||||
|
||||
fun fillWithLogs(player: Player){
|
||||
player.varpManager.get(varpId).setVarbit(offset,1).send(player)
|
||||
setVarbit(player, varbit, 1, true)
|
||||
}
|
||||
|
||||
fun getState(player: Player): content.minigame.allfiredup.BeaconState {
|
||||
return content.minigame.allfiredup.BeaconState.values()[player.varpManager.get(varpId).getVarbit(offset) ?: 0]
|
||||
return BeaconState.values()[getVarbit(player, varbit)]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,4 +72,4 @@ enum class BeaconState{
|
||||
LIT,
|
||||
DYING,
|
||||
WARNING
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,6 @@ class AFUBeaconListeners : InteractionListener {
|
||||
if(questComplete){
|
||||
session?.setLogs(beacon.ordinal,logs)
|
||||
}
|
||||
player.varpManager.flagSave(beacon.varpId);
|
||||
}
|
||||
2 -> player.unlock().also {player.animator.animate(Animation.RESET); return true }
|
||||
}
|
||||
@@ -215,4 +214,4 @@ class AFUBeaconListeners : InteractionListener {
|
||||
return inventory.containsItem(Item(Items.INFERNO_ADZE_13661)) || bank.containsItem(Item(Items.INFERNO_ADZE_13661)) || equipment.containsItem(Item(Items.INFERNO_ADZE_13661))
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import core.game.world.update.flag.context.Animation
|
||||
import org.rs09.consts.Items
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.interaction.IntType
|
||||
import core.api.*
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
@@ -93,19 +94,18 @@ class AFURepairClimbHandler : InteractionListener {
|
||||
}
|
||||
}
|
||||
|
||||
player.varpManager.get(rco.varp).setVarbit(rco.offset,1).send(player)
|
||||
player.varpManager.flagSave(rco.varp)
|
||||
setVarbit(player, rco.varbit, 1, true)
|
||||
}
|
||||
|
||||
private fun climb(player: Player, rco: RepairClimbObject, location: Location){
|
||||
ForceMovement.run(player,location,rco.getOtherLocation(player),rco.getAnimation(player),rco.getAnimation(player),rco.getDirection(player),20).endAnimation = Animation(-1)
|
||||
}
|
||||
|
||||
private enum class RepairClimbObject(val varp: Int, val offset: Int, val destinationUp: Location?, val destinationDown: Location?, val levelRequirement: Pair<Int,Int>?){
|
||||
DEATH_PLATEAU(1282,15,Location.create(2949, 3623, 0),Location.create(2954, 3623, 0), Pair(Skills.CONSTRUCTION,42)),
|
||||
BURTHORPE(1282,14,Location.create(2941, 3563, 0),Location.create(2934, 3563, 0),Pair(Skills.SMITHING,56)),
|
||||
GWD(1283,27,null,null,Pair(Skills.CRAFTING,60)),
|
||||
TEMPLE(1287,29,Location.create(2949, 3835, 0),Location.create(2956, 3835, 0),Pair(Skills.SMITHING,64));
|
||||
private enum class RepairClimbObject(val varbit: Int, val destinationUp: Location?, val destinationDown: Location?, val levelRequirement: Pair<Int,Int>?){
|
||||
DEATH_PLATEAU(5161,Location.create(2949, 3623, 0),Location.create(2954, 3623, 0), Pair(Skills.CONSTRUCTION,42)),
|
||||
BURTHORPE(5160,Location.create(2941, 3563, 0),Location.create(2934, 3563, 0),Pair(Skills.SMITHING,56)),
|
||||
GWD(5163,null,null,Pair(Skills.CRAFTING,60)),
|
||||
TEMPLE(5164,Location.create(2949, 3835, 0),Location.create(2956, 3835, 0),Pair(Skills.SMITHING,64));
|
||||
|
||||
fun getOtherLocation(player: Player): Location?{
|
||||
if(player.location == destinationDown) return destinationUp
|
||||
@@ -124,7 +124,7 @@ class AFURepairClimbHandler : InteractionListener {
|
||||
}
|
||||
|
||||
fun isRepaired(player: Player): Boolean{
|
||||
return player.varpManager.get(varp).getVarbit(offset) == 1
|
||||
return getVarbit(player, varbit) == 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,4 +138,4 @@ class AFURepairClimbHandler : InteractionListener {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import core.tools.RandomFunction;
|
||||
import core.game.world.GameWorld;
|
||||
import core.plugin.ClassScanner;
|
||||
|
||||
import static core.api.ContentAPIKt.getWorldTicks;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the barrows activity plugin.
|
||||
@@ -137,8 +137,8 @@ public final class BarrowsActivityPlugin extends ActivityPlugin {
|
||||
}
|
||||
}
|
||||
Player player = (Player) e;
|
||||
if ((player.getConfigManager().get(1270) == 1) != tunnel) {
|
||||
player.getConfigManager().set(1270, tunnel ? 3 : 0, true);//@emp: proper value seems to be 3, val of 1 makes corridors black
|
||||
if ((getVarp(player, 1270) == 1) != tunnel) {
|
||||
setVarp(player, 1270, tunnel ? 3 : 0, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -149,8 +149,8 @@ public final class BarrowsActivityPlugin extends ActivityPlugin {
|
||||
Player player = (Player) e;
|
||||
PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 2));
|
||||
player.getInterfaceManager().openOverlay(OVERLAY);
|
||||
player.getConfigManager().set(0, 1);
|
||||
if (player.getConfigManager().get(452) == 0) {
|
||||
setVarp(player, 0, 1);
|
||||
if (getVarp(player, 452) == 0) {
|
||||
shuffleCatacombs(player);
|
||||
}
|
||||
sendConfiguration(player);
|
||||
@@ -212,7 +212,7 @@ public final class BarrowsActivityPlugin extends ActivityPlugin {
|
||||
public static void shuffleCatacombs(Player player) {
|
||||
int value = TUNNEL_CONFIGS[RandomFunction.random(TUNNEL_CONFIGS.length)];
|
||||
value |= 1 << (6 + RandomFunction.random(4));
|
||||
player.getConfigManager().set(452, value);
|
||||
setVarp(player, 452, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -330,7 +330,7 @@ public final class BarrowsActivityPlugin extends ActivityPlugin {
|
||||
if (player.getAttribute("barrow:opened_chest", false)) {
|
||||
config |= 1 << 16;
|
||||
}
|
||||
player.getConfigManager().set(453, config);
|
||||
setVarp(player, 453, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,6 +7,8 @@ import core.game.world.map.Location;
|
||||
import core.plugin.PluginManifest;
|
||||
import core.plugin.PluginType;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* The tunnel entrance dialogue handling plugin.
|
||||
* @author Emperor
|
||||
@@ -57,7 +59,7 @@ public final class TunnelEntranceDialogue extends DialoguePlugin {
|
||||
case 1:
|
||||
int offsetX = 0;
|
||||
int offsetY = 0;
|
||||
int configValue = player.getConfigManager().get(452);
|
||||
int configValue = getVarp(player, 452);
|
||||
if ((configValue & (1 << 7)) != 0) {
|
||||
offsetX = 34;
|
||||
offsetY = 34;
|
||||
|
||||
@@ -145,7 +145,7 @@ object BlastFurnace {
|
||||
var oreAmount = player.blastOre.itemCount()
|
||||
var totalAmount = barsAmount + oreAmount
|
||||
if (barsHot) {
|
||||
player.varpManager.get(543).setVarbit(8, 2).send(player)
|
||||
setVarbit(player, 936, 2)
|
||||
}else if (makeBars && playerOre.isNotEmpty() && barsAmountFree > 0 && totalAmount < 56 && player.getAttribute("OreInPot",false) == true) {
|
||||
playerOre.forEach { oreID ->
|
||||
playerCoal = player.blastCoal.getAmount(Items.COAL_453)
|
||||
@@ -178,7 +178,7 @@ object BlastFurnace {
|
||||
}
|
||||
}
|
||||
if(removed) {
|
||||
player.varpManager.get(543).setVarbit(8, 1).send(player)
|
||||
setVarbit(player, 936, 1)
|
||||
barsHot = true
|
||||
player.blastBars.add(bar.product)
|
||||
var experience = bar.experience
|
||||
@@ -207,11 +207,11 @@ object BlastFurnace {
|
||||
}
|
||||
}
|
||||
if (coalToAdd < 0){
|
||||
player.varpManager.get(543).setVarbit(12, 0).send(player)
|
||||
} else player.varpManager.get(543).setVarbit(12, coalToAdd).send(player)
|
||||
setVarbit(player, 940, 0)
|
||||
} else setVarbit(player, 940, coalToAdd)
|
||||
}
|
||||
else if(playerOre.isEmpty()) {
|
||||
player.varpManager.get(543).setVarbit(12,0).send(player)
|
||||
setVarbit(player, 940, 0)
|
||||
}
|
||||
if(playerOre.isEmpty() && player.getAttribute("OreInPot",false)){
|
||||
player.removeAttribute("OreInPot")
|
||||
@@ -306,56 +306,4 @@ object BlastFurnace {
|
||||
replaceScenery(cogs2!!, 9104, -1)
|
||||
}
|
||||
}
|
||||
|
||||
/**Hi kids!
|
||||
* Do you like Varbits?
|
||||
* Wanna see me stick Nine Binary Bytes, through each one of my eyelids?
|
||||
* Wanna look at how many bars you have left inside the furnace???
|
||||
|
||||
fun interfaceManager() {
|
||||
var playerBars = listOf<Item>()
|
||||
var bronzeBit = 1
|
||||
var ironBit = 1
|
||||
var steelBit = 1
|
||||
var mithrilBit = 1
|
||||
var adamantiteBit = 1
|
||||
var runiteBit = 1
|
||||
var silverBit = 1
|
||||
var goldBit = 1
|
||||
var barTotal = 0
|
||||
blastFurnacePlayerList.forEach { player ->
|
||||
playerBars = player.blastBars.toArray().filterNotNull()
|
||||
var barAmount = player.blastBars.toArray().filterNotNull().count()
|
||||
var updateInterface = true
|
||||
if (playerBars.isNotEmpty() && updateInterface) {
|
||||
playerBars.forEach { barItem ->
|
||||
when (barItem.id) {
|
||||
Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit++).send(player)
|
||||
Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit++).send(player)
|
||||
Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit++).send(player)
|
||||
Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit++).send(player)
|
||||
Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit++).send(player)
|
||||
Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit++).send(player)
|
||||
Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit++).send(player)
|
||||
Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit++).send(player)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (barTotal > barAmount) {
|
||||
playerBars.forEach { barItem ->
|
||||
when (barItem.id) {
|
||||
Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit--).send(player)
|
||||
Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit--).send(player)
|
||||
Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit--).send(player)
|
||||
Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit--).send(player)
|
||||
Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit--).send(player)
|
||||
Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit--).send(player)
|
||||
Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit--).send(player)
|
||||
Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit--).send(player)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package content.minigame.blastfurnace
|
||||
|
||||
import core.api.addItem
|
||||
import core.api.freeSlots
|
||||
import core.api.*
|
||||
import core.game.interaction.InterfaceListener
|
||||
import core.game.node.item.Item
|
||||
import org.rs09.consts.Components
|
||||
@@ -28,19 +27,32 @@ class BlastFurnaceInterfaceListener : InterfaceListener {
|
||||
var silverBit = 1
|
||||
var goldBit = 1
|
||||
var barTotal = 0
|
||||
val barCounts = HashMap<Int, Int>()
|
||||
if (playerBars.isEmpty()) {
|
||||
return@onOpen true
|
||||
} else {
|
||||
playerBars.forEach { barItem ->
|
||||
when (barItem.id) {
|
||||
Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit++).send(player)
|
||||
Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit++).send(player)
|
||||
Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit++).send(player)
|
||||
Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit++).send(player)
|
||||
Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit++).send(player)
|
||||
Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit++).send(player)
|
||||
Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit++).send(player)
|
||||
Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit++).send(player)
|
||||
Items.BRONZE_BAR_2349 -> barCounts[barItem.id] = bronzeBit++
|
||||
Items.IRON_BAR_2351 -> barCounts[barItem.id] = ironBit++
|
||||
Items.STEEL_BAR_2353 -> barCounts[barItem.id] = steelBit++
|
||||
Items.MITHRIL_BAR_2359 -> barCounts[barItem.id] = mithrilBit++
|
||||
Items.ADAMANTITE_BAR_2361 -> barCounts[barItem.id] = adamantiteBit++
|
||||
Items.RUNITE_BAR_2363 -> barCounts[barItem.id] = runiteBit++
|
||||
Items.SILVER_BAR_2355 -> barCounts[barItem.id] = silverBit++
|
||||
Items.GOLD_BAR_2357 -> barCounts[barItem.id] = goldBit++
|
||||
}
|
||||
}
|
||||
for ((id, amount) in barCounts) {
|
||||
when (id) {
|
||||
Items.BRONZE_BAR_2349 -> setVarbit(player, 941, amount)
|
||||
Items.IRON_BAR_2351 -> setVarbit(player, 942, amount)
|
||||
Items.STEEL_BAR_2353 -> setVarbit(player, 943, amount)
|
||||
Items.MITHRIL_BAR_2359 -> setVarbit(player, 944, amount)
|
||||
Items.ADAMANTITE_BAR_2361 -> setVarbit(player, 945, amount)
|
||||
Items.RUNITE_BAR_2363 -> setVarbit(player, 946, amount)
|
||||
Items.SILVER_BAR_2355 -> setVarbit(player, 948, amount)
|
||||
Items.GOLD_BAR_2357 -> setVarbit(player, 947, amount)
|
||||
}
|
||||
}
|
||||
return@onOpen true
|
||||
@@ -50,7 +62,7 @@ class BlastFurnaceInterfaceListener : InterfaceListener {
|
||||
on(Components.BLAST_FURNACE_BAR_STOCK_28){ player, _, _, buttonID, _, _ ->
|
||||
val bar = BFBars.forId(buttonID) ?: return@on false
|
||||
val isAll = buttonID == bar.allButtonId
|
||||
val playerAmt = player.varpManager.get(bar.varpIndex).getVarbitValue(bar.offset) ?: 0
|
||||
val playerAmt = getVarbit(player, bar.varbit)
|
||||
if(playerAmt == 0) return@on true
|
||||
|
||||
var amtToWithdraw = if(isAll) playerAmt else 1
|
||||
@@ -70,28 +82,28 @@ class BlastFurnaceInterfaceListener : InterfaceListener {
|
||||
BFBars.GOLD -> Items.GOLD_BAR_2357
|
||||
}
|
||||
|
||||
player.varpManager.get(bar.varpIndex).setVarbit(bar.offset, playerAmt - amtToWithdraw).send(player)
|
||||
|
||||
setVarbit(player, bar.varbit, playerAmt - amtToWithdraw)
|
||||
|
||||
while(amtToWithdraw > 0){
|
||||
if(addItem(player, barItemId, 1) && player.blastBars.remove(Item(barItemId))) {
|
||||
amtToWithdraw--
|
||||
} else break
|
||||
}
|
||||
if(player.blastBars.isEmpty) player.varpManager.get(543).clear().send(player)
|
||||
if(player.blastBars.isEmpty)
|
||||
setVarp(player, 543, 0)
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
internal enum class BFBars(val buttonId: Int, val varpIndex: Int, val offset: Int, val allButtonId: Int = buttonId + 2){
|
||||
BRONZE(43, 545, 0, 44),
|
||||
IRON(40, 545, 8, 41),
|
||||
STEEL(36, 545, 16),
|
||||
MITHRIL(33, 545, 24),
|
||||
ADAMANT(30, 546, 0),
|
||||
RUNITE(27, 546, 8),
|
||||
SILVER(24, 546, 24),
|
||||
GOLD(21, 546, 16);
|
||||
internal enum class BFBars(val buttonId: Int, val varbit: Int, val allButtonId: Int = buttonId + 2){
|
||||
BRONZE(43, 941, 44),
|
||||
IRON(40, 942, 41),
|
||||
STEEL(36, 943),
|
||||
MITHRIL(33, 944),
|
||||
ADAMANT(30, 945),
|
||||
RUNITE(27, 946),
|
||||
SILVER(24, 948),
|
||||
GOLD(21, 947);
|
||||
|
||||
companion object {
|
||||
private val idMap = values().associateBy { it.buttonId }
|
||||
@@ -102,4 +114,4 @@ class BlastFurnaceInterfaceListener : InterfaceListener {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ class BlastFurnaceListeners : InteractionListener {
|
||||
/**This handles taking bars from the dispenser*/
|
||||
|
||||
on(dispenser,SCENERY,"search", "take"){ player, _ ->
|
||||
if(player.varpManager.get(543).getVarbitValue(8) == 0 || player.varpManager.get(543).getVarbitValue(8) == 3) {
|
||||
if (getVarbit(player, 936) == 0 || getVarbit(player, 936) == 3) {
|
||||
player.interfaceManager.openComponent(28)
|
||||
}
|
||||
return@on true
|
||||
@@ -306,20 +306,20 @@ class BlastFurnaceListeners : InteractionListener {
|
||||
/**Handles using a bucket of water on the bar dispenser*/
|
||||
|
||||
onUseWith(SCENERY,Items.BUCKET_OF_WATER_1929,*dispenser){ player, _, _ ->
|
||||
when {
|
||||
player.varpManager.get(543).getVarbitValue(8) == 2 -> {
|
||||
when (getVarbit(player, 936)) {
|
||||
2 -> {
|
||||
removeItem(player,Items.BUCKET_OF_WATER_1929,Container.INVENTORY)
|
||||
addItem(player,Items.BUCKET_1925)
|
||||
BlastFurnace.barsHot = false
|
||||
player.varpManager.get(543).setVarbit(8,3).send(player)
|
||||
setVarbit(player, 936, 3)
|
||||
}
|
||||
player.varpManager.get(543).getVarbitValue(8) == 0 -> {
|
||||
0 -> {
|
||||
sendDialogue(player,"There's nothing to cool off!")
|
||||
}
|
||||
player.varpManager.get(543).getVarbitValue(8) == 1 -> {
|
||||
1 -> {
|
||||
sendDialogue(player,"I should wait until the machine is finished")
|
||||
}
|
||||
player.varpManager.get(543).getVarbitValue(8) == 3 -> {
|
||||
3 -> {
|
||||
sendDialogue(player,"These bars have already cooled off!")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package content.minigame.bountyhunter;
|
||||
|
||||
import core.api.*;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
@@ -33,6 +34,8 @@ import core.tools.RandomFunction;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the Bounty hunter activity.
|
||||
* @author Emperor
|
||||
@@ -317,7 +320,7 @@ public final class BountyHunterActivity extends ActivityPlugin {
|
||||
} else if (interfaceId == 271 && buttonId == 25) {
|
||||
if (player.getAttribute("exit_penalty", 0) > GameWorld.getTicks()) {
|
||||
player.getPacketDispatch().sendMessage("You can't use the protect item prayer until your penalty has passed.");
|
||||
player.getConfigManager().send(PrayerType.PROTECT_ITEMS.getConfig(), 0);
|
||||
setVarp(player, PrayerType.PROTECT_ITEMS.getConfig(), 0);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import core.api.setVarbit
|
||||
import core.api.*
|
||||
import core.game.node.entity.player.Player
|
||||
|
||||
/**
|
||||
@@ -8,7 +8,7 @@ import core.game.node.entity.player.Player
|
||||
object CastleWarsOverlay {
|
||||
@JvmStatic
|
||||
fun sendLobbyUpdate(player: Player, bothTeamsHavePlayers: Boolean, gameStartMinutes: Int) {
|
||||
player.varpManager.get(380).setVarbit(0, if (bothTeamsHavePlayers) gameStartMinutes else 0).send(player)
|
||||
setVarp(player, 380, if (bothTeamsHavePlayers) gameStartMinutes else 0)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
|
||||
@@ -15,7 +15,6 @@ import core.game.node.entity.Entity;
|
||||
import core.game.node.entity.combat.CombatStyle;
|
||||
import core.game.node.entity.impl.PulseManager;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.ConfigurationManager.Configuration;
|
||||
import core.game.node.scenery.Scenery;
|
||||
import core.game.node.scenery.SceneryBuilder;
|
||||
import core.game.system.communication.ClanEntry;
|
||||
@@ -34,6 +33,8 @@ import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the clan wars activity.
|
||||
* @author Emperor
|
||||
@@ -239,7 +240,7 @@ public final class ClanWarsActivityPlugin extends ActivityPlugin {
|
||||
if (pulse.getTicksPassed() < 200) {
|
||||
value |= (200 - pulse.getTicksPassed()) << 23;
|
||||
}
|
||||
p.getConfigManager().set(Configuration.CLAN_WAR_DATA, value);
|
||||
setVarp(p, 1147, value);
|
||||
p.getPacketDispatch().sendString(name, 265, 2);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import core.game.interaction.OptionHandler;
|
||||
import core.game.node.Node;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.plugin.Plugin;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the challenge option for dueling.
|
||||
@@ -32,7 +33,7 @@ public class ChallengeOptionPlugin extends OptionHandler {
|
||||
player.getInterfaceManager().open(DuelArenaActivity.DUEL_TYPE_SELECT);
|
||||
player.setAttribute("duel:staked", false);
|
||||
player.setAttribute("duel:partner", other);
|
||||
player.getConfigManager().set(283, 1 << 26);
|
||||
setVarp(player, 283, 1 << 26);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@ import core.plugin.Initializable;
|
||||
import core.plugin.ClassScanner;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the Duel Arena activity.
|
||||
* @author Emperor
|
||||
@@ -76,7 +78,7 @@ public final class DuelArenaActivity extends ActivityPlugin {
|
||||
Player player = (Player) e;
|
||||
player.getInterfaceManager().openOverlay(OVERLAY);
|
||||
player.getInteraction().set(CHALLENGE_OPTION);
|
||||
player.getConfigManager().set(286, 0);
|
||||
setVarp(player, 286, 0);
|
||||
}
|
||||
return super.enter(e);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ import core.game.node.entity.player.Player;
|
||||
import core.game.world.GameWorld;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the duel arena components.
|
||||
* @author Vexia
|
||||
@@ -60,7 +62,7 @@ public class DuelComponentPlugin extends ComponentPlugin {
|
||||
return false;
|
||||
}
|
||||
player.setAttribute("duel:staked", staked);
|
||||
player.getConfigManager().set(283, (staked ? 2 : 1) << 26);
|
||||
setVarp(player, 283, (staked ? 2 : 1) << 26);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -230,7 +230,7 @@ public final class DuelSession extends ComponentPlugin {
|
||||
* @param player The player.
|
||||
*/
|
||||
private void openRules(Player player, Player opponent) {
|
||||
player.getConfigManager().set(286, 0);
|
||||
setVarp(player, 286, 0);
|
||||
if (staked) {
|
||||
StakeContainer container = new StakeContainer(player, this);
|
||||
if (player == this.player) {
|
||||
@@ -249,7 +249,7 @@ public final class DuelSession extends ComponentPlugin {
|
||||
player.getPacketDispatch().sendString(Integer.toString(opponent.getProperties().getCurrentCombatLevel()), 637, 18);
|
||||
player.getPacketDispatch().sendString("", 637, 45);
|
||||
}
|
||||
player.getConfigManager().set(286, 0);
|
||||
setVarp(player, 286, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -495,8 +495,8 @@ public final class DuelSession extends ComponentPlugin {
|
||||
value |= 1 << rules[i].getConfigIndex();
|
||||
}
|
||||
}
|
||||
player.getConfigManager().set(286, value);
|
||||
other.getConfigManager().set(286, value);
|
||||
setVarp(player, 286, value);
|
||||
setVarp(other, 286, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1024,4 +1024,4 @@ public final class DuelSession extends ComponentPlugin {
|
||||
public void setFightState(int fightState) {
|
||||
this.fightState = fightState;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package content.minigame.fishingtrawler
|
||||
|
||||
import core.game.node.entity.player.Player
|
||||
import core.api.*
|
||||
|
||||
private const val configIndex = 391
|
||||
private const val interfaceID = 366
|
||||
@@ -17,10 +18,10 @@ private const val timeChild = 30
|
||||
object FishingTrawlerOverlay {
|
||||
@JvmStatic
|
||||
fun sendUpdate(player: Player, waterPercent: Int, NetRipped: Boolean, fishCaught: Int, timeLeft: Int){
|
||||
player.configManager.set(configIndex,waterPercent)
|
||||
setVarp(player, configIndex, waterPercent)
|
||||
player.packetDispatch.sendInterfaceConfig(interfaceID,if(NetRipped) netRippedChild else netOkayChild, false)
|
||||
player.packetDispatch.sendInterfaceConfig(interfaceID,if(NetRipped) netOkayChild else netRippedChild, true)
|
||||
player.packetDispatch.sendString("${if(fishCaught > 0) fishCaught else "Nothing"}", interfaceID, fishChild)
|
||||
player.packetDispatch.sendString("$timeLeft Minutes", interfaceID, timeChild)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import core.game.component.Component;
|
||||
import core.game.dialogue.FacialExpression;
|
||||
import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.ConfigurationManager.Configuration;
|
||||
import core.game.node.scenery.Scenery;
|
||||
import core.game.world.map.Location;
|
||||
import core.game.world.map.Point;
|
||||
@@ -15,6 +14,7 @@ import core.game.world.map.build.DynamicRegion;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static content.minigame.pestcontrol.PestControlActivityPlugin.MAX_TEAM_SIZE;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents a pest control session.
|
||||
@@ -166,7 +166,7 @@ public final class PestControlSession {
|
||||
public void sendConfig(int value) {
|
||||
for (Player p : region.getPlanes()[0].getPlayers()) {
|
||||
if (p.isActive()) {
|
||||
p.getConfigManager().set(Configuration.PC_PORTALS, value);
|
||||
setVarp(p, 719, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -264,7 +264,7 @@ public final class PestControlSession {
|
||||
Random r = RandomFunction.RANDOM;
|
||||
Location l = region.getBaseLocation();
|
||||
p.getProperties().setTeleportLocation(l.transform(32 + r.nextInt(4), 49 + r.nextInt(6), 0));
|
||||
p.getConfigManager().set(Configuration.PC_PORTALS, 0);
|
||||
setVarp(p, 1147, 0);
|
||||
p.getDialogueInterpreter().sendDialogues(3781, FacialExpression.FURIOUS, "You must defend the Void Knight while the portals are", "unsummoned. The ritual takes twenty minutes though,", "so you can help out by destroying them yourselves!", "Now GO GO GO!");
|
||||
}
|
||||
|
||||
@@ -386,4 +386,4 @@ public final class PestControlSession {
|
||||
return barricades;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import core.plugin.ClassScanner;
|
||||
|
||||
import content.minigame.puropuro.ElnockInquisitorDialogue.ElnockExchangeInterfaceHandler.ElnockExchange;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the elnock inquisitor dialogue.
|
||||
* @author Vexia
|
||||
@@ -225,7 +227,7 @@ public final class ElnockInquisitorDialogue extends DialoguePlugin {
|
||||
public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) {
|
||||
ElnockExchange exchange = player.getAttribute("exchange", null);
|
||||
if (button == 34) {
|
||||
player.getConfigManager().set(1018, 0);
|
||||
setVarp(player, 1018, 0);
|
||||
if (exchange == null) {
|
||||
player.sendMessage("Making a selection before confirming.");
|
||||
return true;
|
||||
@@ -254,7 +256,7 @@ public final class ElnockInquisitorDialogue extends DialoguePlugin {
|
||||
exchange = ElnockExchange.forButton(button);
|
||||
if (exchange != null) {
|
||||
player.setAttribute("exchange", exchange);
|
||||
player.getConfigManager().set(1018, exchange.getConfigValue());
|
||||
setVarp(player, 1018, exchange.getConfigValue());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -144,13 +144,9 @@ object PlunderUtils {
|
||||
|
||||
fun resetObjectVarbits(player: Player)
|
||||
{
|
||||
var varp = player.varpManager.get(821)
|
||||
varp.clear()
|
||||
varp.send(player)
|
||||
varp = player.varpManager.get(820)
|
||||
varp.clear()
|
||||
varp.send(player)
|
||||
PlunderData.doorVarbits.forEach { player.varpManager.setVarbit(it, 0) }
|
||||
setVarp(player, 821, 0)
|
||||
setVarp(player, 820, 0)
|
||||
PlunderData.doorVarbits.forEach { setVarbit(player, it, 0) }
|
||||
}
|
||||
|
||||
fun openOverlay(player: Player)
|
||||
@@ -161,14 +157,14 @@ object PlunderUtils {
|
||||
|
||||
fun updateOverlay(player: Player)
|
||||
{
|
||||
player.varpManager.setVarbit(2375, 500 - (PlunderData.timeLeft[player] ?: 0))
|
||||
player.varpManager.setVarbit(2376, 11 + (getRoom(player)!!.room * 10))
|
||||
player.varpManager.setVarbit(2377, getRoom(player)!!.room)
|
||||
setVarbit(player, 2375, 500 - (PlunderData.timeLeft[player] ?: 0))
|
||||
setVarbit(player, 2376, 11 + (getRoom(player)!!.room * 10))
|
||||
setVarbit(player, 2377, getRoom(player)!!.room)
|
||||
}
|
||||
|
||||
fun resetOverlay(player: Player)
|
||||
{
|
||||
player.varpManager.setVarbit(2375, 0)
|
||||
setVarbit(player, 2375, 0)
|
||||
player.packetDispatch.resetInterface(Components.NTK_OVERLAY_428)
|
||||
player.interfaceManager.closeOverlay()
|
||||
}
|
||||
@@ -304,4 +300,4 @@ object PlunderUtils {
|
||||
val room = getRoom(player)!!.room
|
||||
return RandomFunction.random(level) > (room * if(charmed) 2 else 4)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
sendMessage(player, "You successfully loot the urn.")
|
||||
rewardXP(player, Skills.THIEVING, PlunderUtils.getUrnXp(player, false))
|
||||
addItemOrDrop(player, PlunderUtils.rollArtifact(player, 1))
|
||||
player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1)
|
||||
setVarbit(player, node.asScenery().definition.varbitID, 1)
|
||||
}
|
||||
}
|
||||
return@on true
|
||||
@@ -137,7 +137,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
lock(player, 1)
|
||||
runTask(player, 1){
|
||||
animate(player, URN_BIT)
|
||||
player.varpManager.setVarbit(urn.definition.varbitID, 2)
|
||||
setVarbit(player, urn.definition.varbitID, 2)
|
||||
animateScenery(urn, SNAKE_URN_ANIM)
|
||||
}
|
||||
return@on true
|
||||
@@ -153,7 +153,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
animate(player, CHARM_ANIM)
|
||||
runTask(player, 1)
|
||||
{
|
||||
player.varpManager.setVarbit(node.asScenery().definition.varbitID, 3)
|
||||
setVarbit(player, node.asScenery().definition.varbitID, 3)
|
||||
sendMessage(player, "You charm the snake with your music.")
|
||||
}
|
||||
return@on true
|
||||
@@ -176,7 +176,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
sendMessage(player, "You successfully loot the urn.")
|
||||
addItemOrDrop(player, PlunderUtils.rollArtifact(player, 1))
|
||||
rewardXP(player, Skills.THIEVING, PlunderUtils.getUrnXp(player, false) * 0.66)
|
||||
player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1)
|
||||
setVarbit(player, node.asScenery().definition.varbitID, 1)
|
||||
}
|
||||
}
|
||||
return@on true
|
||||
@@ -199,7 +199,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
return false
|
||||
animate(player, PUSH_LID_FINISH)
|
||||
runTask(player, 3){
|
||||
player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1)
|
||||
setVarbit(player, node.asScenery().definition.varbitID, 1)
|
||||
rewardXP(player, Skills.STRENGTH, PlunderUtils.getSarcophagusXp(player))
|
||||
if(RandomFunction.roll(25))
|
||||
{
|
||||
@@ -236,7 +236,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
if(!PlunderUtils.rollSceptre(player))
|
||||
addItemOrDrop(player, PlunderUtils.rollArtifact(player, 3))
|
||||
}
|
||||
player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1)
|
||||
setVarbit(player, node.asScenery().definition.varbitID, 1)
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
@@ -274,7 +274,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
PlunderUtils.resetObjectVarbits(player)
|
||||
} else {
|
||||
sendMessage(player, "The door leads to a dead end.")
|
||||
player.varpManager.setVarbit(varbitId, 1)
|
||||
setVarbit(player, varbitId, 1)
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -375,4 +375,4 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener
|
||||
PlunderUtils.openOverlay(player)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,7 +362,7 @@ class Vinesweeper : InteractionListener, InterfaceListener, MapArea {
|
||||
|
||||
fun sendUpdatedPoints(player: Player) {
|
||||
val points = player.getAttribute("vinesweeper:points", 0);
|
||||
player.varpManager.get(1195).setVarbit(6, points).send(player)
|
||||
setVarbit(player, 4449, points)
|
||||
}
|
||||
|
||||
var SEED_LOCS: HashSet<Location> = HashSet()
|
||||
|
||||
+3
-1
@@ -26,6 +26,8 @@ import core.plugin.Plugin;
|
||||
import core.plugin.ClassScanner;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the Barrel room.
|
||||
* @author Emperor
|
||||
@@ -172,7 +174,7 @@ public final class BarrelRoom extends MapZone implements Plugin<Object> {
|
||||
player.getEquipment().replace(null, EquipmentContainer.SLOT_HAT);
|
||||
player.getAppearance().setAnimations();
|
||||
player.getAppearance().sync();
|
||||
player.getConfigManager().set(793, 0);
|
||||
setVarp(player, 793, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-1
@@ -34,6 +34,8 @@ import core.plugin.ClassScanner;
|
||||
import core.plugin.Initializable;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static core.api.ContentAPIKt.setVarp;
|
||||
|
||||
/**
|
||||
* The catapult room.
|
||||
* @author Emperor
|
||||
@@ -207,7 +209,7 @@ public final class CatapultRoom extends MapZone implements Plugin<Object> {
|
||||
if (button >= 9 && button <= 12) {
|
||||
CatapultAttack attack = CatapultAttack.values()[button - 9];
|
||||
player.setAttribute("catapult_def", attack);
|
||||
player.getConfigManager().set(788, (button - 8) % 4);
|
||||
setVarp(player, 788, (button - 8) % 4);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
+4
-1
@@ -21,6 +21,9 @@ import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
|
||||
/**
|
||||
* Manages the droped party balloons.
|
||||
* @author Vexia
|
||||
@@ -83,7 +86,7 @@ public final class BalloonManager extends OptionHandler {
|
||||
public boolean pulse() {
|
||||
int realCount = --countdown - GameWorld.getTicks();
|
||||
for (ChestViewer viewer : PartyRoomPlugin.getViewers().values()) {
|
||||
viewer.getPlayer().getConfigManager().set(1135, realCount);
|
||||
setVarp(viewer.getPlayer(), 1135, realCount);
|
||||
}
|
||||
if (--realCount - GameWorld.getTicks() <= 0) {
|
||||
drop();
|
||||
|
||||
@@ -13,6 +13,9 @@ import core.net.packet.PacketRepository;
|
||||
import core.net.packet.context.ContainerContext;
|
||||
import core.net.packet.out.ContainerPacket;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
|
||||
/**
|
||||
* A chest viewer.
|
||||
* @author Vexia
|
||||
@@ -69,7 +72,7 @@ public final class ChestViewer {
|
||||
player.getPacketDispatch().sendRunScript(150, "IviiiIsssssssss", INV_OPTIONS);
|
||||
player.getInterfaceManager().openSingleTab(new Component(648));
|
||||
player.getInterfaceManager().open(new Component(647).setCloseEvent(new ChestCloseEvent()));
|
||||
player.getConfigManager().set(1135, 0);
|
||||
setVarp(player, 1135, 0);
|
||||
update(0, null);
|
||||
update(1, null);
|
||||
return this;
|
||||
|
||||
+4
-1
@@ -27,6 +27,9 @@ import core.tools.RandomFunction;
|
||||
import core.tools.StringUtils;
|
||||
import core.game.dialogue.FacialExpression;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
|
||||
/**
|
||||
* Represents the goblin diplomacy cutscene plugin.
|
||||
* @author 'Vexia
|
||||
@@ -364,7 +367,7 @@ public final class GDiplomacyCutscene extends CutscenePlugin {
|
||||
player.setAttribute("/save:tlt-goblin-emotes",true);
|
||||
player.getEmoteManager().unlock(Emotes.GOBLIN_BOW);
|
||||
player.getEmoteManager().unlock(Emotes.GOBLIN_SALUTE);
|
||||
player.varpManager.get(465).setVarbit(0,7).send(player);
|
||||
setVarbit(player, 532, 7, true);
|
||||
player.getQuestRepository().getQuest("Lost Tribe").setStage(player,44);
|
||||
stage++;
|
||||
break;
|
||||
|
||||
+4
-2
@@ -3,6 +3,8 @@ package content.region.asgarnia.goblinvillage.quest.goblindiplomacy;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents a grub foot.
|
||||
* @author Vexia
|
||||
@@ -43,7 +45,7 @@ public enum GrubFoot {
|
||||
* @return the grub foot.
|
||||
*/
|
||||
public static GrubFoot forConfig(final Player player) {
|
||||
int config = player.getConfigManager().get(62);
|
||||
int config = getVarp(player, 62);
|
||||
for (GrubFoot foot : values()) {
|
||||
if (foot.getValue() == config) {
|
||||
if (foot.ordinal() + 1 >= values().length) {
|
||||
@@ -60,7 +62,7 @@ public enum GrubFoot {
|
||||
* @param player the player.
|
||||
*/
|
||||
public void setConfig(Player player) {
|
||||
player.getConfigManager().set(62, value);
|
||||
setVarp(player, 62, value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -75,7 +75,6 @@ public class WitchsPotion extends Quest {
|
||||
@Override
|
||||
public void finish(Player player) {
|
||||
super.finish(player);
|
||||
player.getConfigManager().set(101, player.getQuestRepository().getPoints());
|
||||
player.getPacketDispatch().sendString("1 Quest Point", 277, 8 + 2);
|
||||
player.getPacketDispatch().sendString("325 Magic XP", 277, 9 + 2);
|
||||
player.getSkills().addExperience(Skills.MAGIC, 325);
|
||||
|
||||
@@ -9,6 +9,8 @@ import core.game.node.entity.player.link.quest.Quest;
|
||||
import core.plugin.Initializable;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the PikkupstixDialogue dialogue.
|
||||
* @author Vexia
|
||||
@@ -125,7 +127,7 @@ public final class PikkupstixDialogue extends DialoguePlugin {
|
||||
continue;
|
||||
}
|
||||
if (!player.getInventory().containsItem(i) && !player.getBank().containsItem(i) && player.getAttribute("taken-summoning-supplies") == null) {
|
||||
if (i.getId() == 12528 && player.getConfigManager().get(1178) == (2 << 11)) {
|
||||
if (i.getId() == 12528 && getVarp(player, 1178) == (2 << 11)) {
|
||||
continue;
|
||||
}
|
||||
player.setAttribute("taken-summoning-supplies", true);
|
||||
|
||||
@@ -6,6 +6,9 @@ import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.quest.Quest;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
|
||||
/**
|
||||
* Represents the demon slayer quest.
|
||||
* @author 'Vexia
|
||||
@@ -75,7 +78,7 @@ public class WolfWhistle extends Quest {
|
||||
|
||||
@Override
|
||||
public int[] getConfig(Player player, int stage) {
|
||||
int val = player.getConfigManager().get(1178);
|
||||
int val = getVarp(player, 1178);
|
||||
boolean open = val >= 4096;
|
||||
boolean closed = val == 2048;
|
||||
if (stage == 100) {
|
||||
|
||||
@@ -49,7 +49,6 @@ public class WitchsHouse extends Quest {
|
||||
@Override
|
||||
public void finish(Player player) {
|
||||
super.finish(player);
|
||||
player.getConfigManager().set(101, player.getQuestRepository().getPoints());
|
||||
player.getPacketDispatch().sendString("4 Quest Points", 277, 8 + 2);
|
||||
player.getPacketDispatch().sendString("6325 Hitpoints XP", 277, 9 + 2);
|
||||
player.getSkills().addExperience(Skills.HITPOINTS, 6325);
|
||||
|
||||
@@ -11,6 +11,8 @@ import core.game.world.map.Location;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the dying knight dialogue.
|
||||
* @author Emperor
|
||||
@@ -64,7 +66,7 @@ public final class GWDKnightDialogue extends DialoguePlugin {
|
||||
@Override
|
||||
public boolean open(Object... args) {
|
||||
npc = (NPC) args[0];
|
||||
if ((player.getConfigManager().get(1048) & 16) != 0) {
|
||||
if ((getVarp(player, 1048) & 16) != 0) {
|
||||
player.getPacketDispatch().sendMessage("The knight has already died.");
|
||||
return false;
|
||||
}
|
||||
@@ -91,7 +93,7 @@ public final class GWDKnightDialogue extends DialoguePlugin {
|
||||
case 3:
|
||||
if (player.getInventory().add(SCROLL)) {
|
||||
interpreter.sendItemMessage(11734, "The knight hands you a scroll.");
|
||||
player.varpManager.get(1048).setVarbit(4,1).send(player);
|
||||
setVarbit(player, 3936, 1, true);
|
||||
stage = 5;
|
||||
} else {
|
||||
stage = 4;
|
||||
|
||||
+3
-4
@@ -17,7 +17,7 @@ import core.game.world.map.RegionManager;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.hasRequirement;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the entrance hole to the godwars dungeon.
|
||||
@@ -44,15 +44,14 @@ public final class GodwarsEntranceHandler extends OptionHandler {
|
||||
player.getPacketDispatch().sendMessage("You don't have a rope to tie around the pillar.");
|
||||
return true;
|
||||
}
|
||||
player.varpManager.get(1048).setVarbit(0,1).send(player);
|
||||
player.varpManager.flagSave(1048, false);
|
||||
setVarbit(player, 3932, 1, true);
|
||||
return true;
|
||||
case 26341:
|
||||
if (player.getSkills().getStaticLevel(Skills.AGILITY) < 15) {
|
||||
player.getPacketDispatch().sendMessage("You need an Agility level of 15 to enter this.");
|
||||
return true;
|
||||
}
|
||||
if (player.varpManager.get(1048).getVarbit(4) == 0) {
|
||||
if (getVarbit(player, 3936) == 0) {
|
||||
player.getDialogueInterpreter().sendDialogues(6201, FacialExpression.HALF_GUILTY, "Cough... Hey, over here.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import core.plugin.Plugin;
|
||||
import core.tools.StringUtils;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
import static core.api.ContentAPIKt.log;
|
||||
|
||||
/**
|
||||
@@ -89,7 +90,7 @@ public final class GodwarsMapzone extends MapZone implements Plugin<Object> {
|
||||
* @param setting The setting.
|
||||
*/
|
||||
public void setRopeSetting(Player player, int setting) {
|
||||
player.varpManager.get(1048).setVarbit(setting,1).send(player);
|
||||
setVarbit(player, setting == 1 ? 3933 : 3934, 1, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -290,7 +290,7 @@ public final class RugMerchantDialogue extends DialoguePlugin {
|
||||
*/
|
||||
public void travel(final RugDestination current, final Player player) {
|
||||
player.lock();
|
||||
player.getConfigManager().set(499, 0);
|
||||
setVarp(player, 499, 0);
|
||||
player.getImpactHandler().setDisabledTicks(GameWorld.getTicks() + 200);
|
||||
player.getInterfaceManager().removeTabs(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
|
||||
player.getEquipment().replace(new Item(Items.MAGIC_CARPET_5614),EquipmentContainer.SLOT_WEAPON);
|
||||
@@ -328,7 +328,7 @@ public final class RugMerchantDialogue extends DialoguePlugin {
|
||||
player.faceLocation(getLocation());
|
||||
break;
|
||||
case 4:
|
||||
player.getConfigManager().set(499, 1);
|
||||
setVarp(player, 499, 1);
|
||||
break;
|
||||
case 200:
|
||||
break;
|
||||
@@ -339,7 +339,7 @@ public final class RugMerchantDialogue extends DialoguePlugin {
|
||||
player.getImpactHandler().setDisabledTicks(0);
|
||||
player.unlock();
|
||||
player.animate(new Animation(-1));
|
||||
player.getConfigManager().set(499, 0);
|
||||
setVarp(player, 499, 0);
|
||||
|
||||
clearLogoutListener(player, "magic-carpet");
|
||||
|
||||
|
||||
@@ -222,16 +222,14 @@ class TheGolemListeners : InteractionListener {
|
||||
if(player.questRepository.getStage("The Golem") >= 100) {
|
||||
clientStage = Math.max(clientStage, 10)
|
||||
}
|
||||
player.varpManager.get(437)
|
||||
.setVarbit(0, clientStage)
|
||||
.setVarbit(7, clayUsed)
|
||||
.setVarbit(16, gemsTaken)
|
||||
.setVarbit(17, statuetteTaken)
|
||||
.setVarbit(10, rotation1)
|
||||
.setVarbit(11, rotation2)
|
||||
.setVarbit(12, rotation3)
|
||||
.setVarbit(13, statuettePlaced * (rotation4 + 1))
|
||||
.send(player)
|
||||
setVarbit(player, 346, clientStage)
|
||||
setVarbit(player, 348, clayUsed)
|
||||
setVarbit(player, 354, gemsTaken)
|
||||
setVarbit(player, 355, statuetteTaken)
|
||||
setVarbit(player, 349, rotation1)
|
||||
setVarbit(player, 350, rotation2)
|
||||
setVarbit(player, 351, rotation3)
|
||||
setVarbit(player, 352, statuettePlaced * (rotation4 + 1))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ import core.game.world.map.zone.ZoneBorders;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.ClassScanner;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* The main type for the tourist trap quest.
|
||||
* @author Aero
|
||||
@@ -253,7 +255,7 @@ public final class TouristTrap extends Quest {
|
||||
* @param player the player.
|
||||
*/
|
||||
public static void addConfig(final Player player, final int value) {
|
||||
player.getConfigManager().set(CONFIG_ID, value, true);
|
||||
setVarp(player, CONFIG_ID, value, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -38,6 +38,8 @@ import core.tools.RandomFunction;
|
||||
import content.region.desert.quest.thetouristrap.TouristTrapPlugin.AnnaCartHandler.AnnaCartCutscene;
|
||||
import content.region.desert.quest.thetouristrap.TouristTrapPlugin.BedabinAnvilHandler.AnnaWinchHandler;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents the plugin used to handle interactions for tourist trap.
|
||||
*
|
||||
@@ -429,7 +431,7 @@ public final class TouristTrapPlugin extends OptionHandler {
|
||||
@Override
|
||||
public boolean pulse() {
|
||||
player.getPacketDispatch().sendMessage("You bend the bars back.");
|
||||
player.getConfigManager().set(907, player.getConfigManager().get(907) + 1);
|
||||
setVarp(player, 907, getVarp(player, 907) + 1);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -10,6 +10,8 @@ import kotlin.Unit;
|
||||
import core.game.world.GameWorld;
|
||||
import core.game.world.map.Location;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the jarvald dialogue.
|
||||
* @author Vexia
|
||||
@@ -131,7 +133,7 @@ public final class JarvaldDialogue extends DialoguePlugin {
|
||||
stage++;
|
||||
break;
|
||||
case 31:
|
||||
player.getConfigManager().set(520, 1 << 13, true);
|
||||
setVarp(player, 520, 1 << 13, true);
|
||||
end();
|
||||
break;
|
||||
case 32:
|
||||
@@ -232,7 +234,7 @@ public final class JarvaldDialogue extends DialoguePlugin {
|
||||
stage = 36;
|
||||
return;
|
||||
}
|
||||
if (player.getConfigManager().get(520) == 0) {
|
||||
if (getVarp(player, 520) == 0) {
|
||||
npc("This should not concern you, outerlander.", "I am awaiting other Fremenniks to join me on an", "expedition to Waterbirth Island.");
|
||||
stage = 21;
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,7 @@ import core.game.world.map.zone.ZoneBorders
|
||||
import core.game.world.map.zone.ZoneBuilder
|
||||
import core.plugin.Initializable
|
||||
import core.plugin.Plugin
|
||||
import core.api.*
|
||||
|
||||
/**
|
||||
* Handles the stone circle zone south of Ardougne.
|
||||
@@ -33,15 +34,15 @@ class StoneCircleZone : MapZone("stone circle", true), Plugin<Any> {
|
||||
|
||||
override fun enter(e: Entity): Boolean {
|
||||
if (e is Player) {
|
||||
e.varpManager.get(1184).setVarbit(28, 1).send(e)
|
||||
setVarbit(e, 4833, 1)
|
||||
}
|
||||
return super.enter(e)
|
||||
}
|
||||
|
||||
override fun leave(e: Entity, logout: Boolean): Boolean {
|
||||
if (!logout && e is Player) {
|
||||
e.varpManager.get(1184).setVarbit(28, 0).send(e)
|
||||
setVarbit(e, 4833, 0)
|
||||
}
|
||||
return super.leave(e, logout)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+7
-5
@@ -5,6 +5,8 @@ import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.quest.Quest;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles captains lawgof dialogue.
|
||||
* @author Vexia
|
||||
@@ -95,7 +97,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin {
|
||||
case 10:
|
||||
switch (stage) {
|
||||
case 0:
|
||||
if (player.getConfigManager().get(1) == 2016) {
|
||||
if (DwarfCannon.allRailsFixed(player)) {
|
||||
npc("Well done, trooper! The goblins seems to have stopped", "getting in. I think you've done the job!");
|
||||
stage = 105;
|
||||
break;
|
||||
@@ -182,7 +184,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin {
|
||||
stage++;
|
||||
break;
|
||||
case 112:
|
||||
player.getConfigManager().set(0, 3, true);
|
||||
setVarp(player, 0, 3, true);
|
||||
quest.setStage(player, 20);
|
||||
end();
|
||||
break;
|
||||
@@ -236,7 +238,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin {
|
||||
break;
|
||||
case 10:
|
||||
end();
|
||||
player.getConfigManager().set(0, 5, true);
|
||||
setVarp(player, 0, 5, true);
|
||||
player.getInventory().remove(DwarfCannon.DWARF_REMAINS);
|
||||
quest.setStage(player, 30);
|
||||
break;
|
||||
@@ -293,7 +295,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin {
|
||||
break;
|
||||
case 8:
|
||||
player.getInventory().add(DwarfCannon.TOOL_KIT, player);
|
||||
player.getConfigManager().set(0, 7);
|
||||
setVarp(player, 0, 7);
|
||||
quest.setStage(player, 50);
|
||||
end();
|
||||
break;
|
||||
@@ -393,7 +395,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin {
|
||||
case 13:
|
||||
player.getInventory().remove(DwarfCannon.TOOL_KIT);
|
||||
player.sendMessage("You give the toolkit back to Captain Lawgof.");
|
||||
player.getConfigManager().set(0, 9, true);
|
||||
setVarp(player, 0, 9, true);
|
||||
quest.setStage(player, 70);
|
||||
end();
|
||||
break;
|
||||
|
||||
@@ -7,6 +7,8 @@ import core.plugin.Initializable;
|
||||
import core.plugin.ClassScanner;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents the dwarf cannon quest.
|
||||
* @author Vexia
|
||||
@@ -38,6 +40,7 @@ public class DwarfCannon extends Quest {
|
||||
* The mould item.
|
||||
*/
|
||||
public static final Item MOULD = new Item(4);
|
||||
public static int[] railVarbits = new int[] { 2240, 2241, 2242, 2243, 2244, 2245 };
|
||||
|
||||
/**
|
||||
* Constructs a new {@Code DwarfCannon} {@Code Object}
|
||||
@@ -64,7 +67,7 @@ public class DwarfCannon extends Quest {
|
||||
line(player, "<blue>I can start this quest by speaking to <red>Lawgof the Dwarven<n><red>Captain of the Black Watch <blue>, he is defending an area<n><red>North-west of the Fishing Guild <blue>against <red>goblin <blue>attack.", 11);
|
||||
break;
|
||||
case 10:
|
||||
line(player, "<str>I have spoken to Captain Lawgof, he recruited me into the<n><str>Black Guard and asked me to help the dwarves.<n><n>" + (player.getConfigManager().get(1) == 2016 ? "<str>I have repaired all the broken railings,<n><blue>I should report back to <red>Captain Lawgof." : "<blue>My first task is to <red>fix the broken railings<n><blue>in the dwarves defensive perimeter."), 11);
|
||||
line(player, "<str>I have spoken to Captain Lawgof, he recruited me into the<n><str>Black Guard and asked me to help the dwarves.<n><n>" + (allRailsFixed(player) ? "<str>I have repaired all the broken railings,<n><blue>I should report back to <red>Captain Lawgof." : "<blue>My first task is to <red>fix the broken railings<n><blue>in the dwarves defensive perimeter."), 11);
|
||||
break;
|
||||
case 20:
|
||||
line(player, "<str>I have spoken to Captain Lawgof, he recruited me into the<n><str>Black Guard and asked me to help the dwarves.<n><n>" + (player.hasItem(DWARF_REMAINS) ? "<str>I went to the watchtower where I found the remains of<n><str>Gilob.<n><blue>I should take them back to <red>Captain Lawgof." : "<str>I have repaired all the broken railings,<n><blue>Captain Lawgof has asked me to check up on his guards at<n><red>the watchtower <blue>to the South of this camp."), 11);
|
||||
@@ -96,7 +99,7 @@ public class DwarfCannon extends Quest {
|
||||
@Override
|
||||
public void start(Player player) {
|
||||
super.start(player);
|
||||
player.getConfigManager().set(0, 1);
|
||||
setVarp(player, 0, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,9 +120,16 @@ public class DwarfCannon extends Quest {
|
||||
if (stage >= 100) {
|
||||
val = 11;
|
||||
} else if (stage > 0 && stage < 100) {
|
||||
val = player.getConfigManager().get(0);
|
||||
val = getVarp(player, 0);
|
||||
}
|
||||
return new int[] { 0, val };
|
||||
}
|
||||
|
||||
public static boolean allRailsFixed (Player player) {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
if (getVarbit(player, railVarbits[i]) != 1)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,9 @@ import core.game.world.map.Location;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
import core.tools.RandomFunction;
|
||||
import core.game.node.scenery.Scenery;
|
||||
|
||||
import static core.api.ContentAPIKt.log;
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the dwarf cannon quest interactions.
|
||||
@@ -65,8 +66,8 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
player.getDialogueInterpreter().sendDialogues(player, null, "This should work nicely now that I've fixed it.");
|
||||
return true;
|
||||
}
|
||||
player.getConfigManager().set(1, 2041, true);
|
||||
player.getConfigManager().set(0, 8, true);
|
||||
//setVarp(player, 1, 2041, true);
|
||||
setVarp(player, 0, 8, true);
|
||||
player.getQuestRepository().getQuest(DwarfCannon.NAME).setStage(player, 60);
|
||||
player.sendMessage("Well done! You've fixed the cannon! Better go and tell Captain Lawgof.");
|
||||
/*
|
||||
@@ -123,6 +124,7 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
case 18:
|
||||
case 19:
|
||||
case 20:
|
||||
int index = 15 - node.getId();
|
||||
final int shift = 10 - (20 - node.getId());
|
||||
player.faceLocation(node.getLocation());
|
||||
player.getDialogueInterpreter().sendDialogue("The railing is broken and needs to be replaced.");
|
||||
@@ -167,8 +169,8 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
}
|
||||
player.getInventory().remove(new Item(14));
|
||||
player.sendMessage("The railing is now fixed.");
|
||||
player.getConfigManager().set(1, player.getConfigManager().get(1) + (1 << shift), true);
|
||||
if (player.getConfigManager().get(1) == 2016) {
|
||||
setVarbit(player, ((Scenery) node).getDefinition().getVarbitID(), 1, true);
|
||||
if (DwarfCannon.allRailsFixed(player)) {
|
||||
player.getDialogueInterpreter().sendDialogues(player, null, "I've fixed all these railings now.");
|
||||
}
|
||||
return true;
|
||||
@@ -193,7 +195,7 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
if (!player.getInventory().hasSpaceFor(DwarfCannon.DWARF_REMAINS)) {
|
||||
return;
|
||||
}
|
||||
player.getConfigManager().set(0, 4);
|
||||
setVarp(player, 0, 4, true);
|
||||
player.getInventory().add(DwarfCannon.DWARF_REMAINS);
|
||||
}
|
||||
|
||||
@@ -205,13 +207,14 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
return true;
|
||||
}
|
||||
quest.setStage(player, 40);
|
||||
player.getConfigManager().set(0, 6, true);
|
||||
setVarp(player, 0, 6, true);
|
||||
spawnLollk(player);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Spawns the lollk npc.
|
||||
* @param player the player.
|
||||
@@ -303,8 +306,9 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
part.interact(player, this.tool, toggled[part.ordinal()]);
|
||||
if (toggled[0] && toggled[1] && toggled[2]) {
|
||||
player.lock(5);
|
||||
player.getConfigManager().set(1, 2041, true);
|
||||
player.getConfigManager().set(0, 8, true);
|
||||
|
||||
//setVarp(player, 1, 2041, true);
|
||||
//setVarp(player, 0, 8, true);
|
||||
player.getQuestRepository().getQuest(DwarfCannon.NAME).setStage(player, 60);
|
||||
player.sendMessage("Well done! You've fixed the cannon! Better go and tell Captain Lawgof.");
|
||||
GameWorld.getPulser().submit(new Pulse(5, player) {
|
||||
@@ -315,7 +319,7 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
}
|
||||
});
|
||||
}
|
||||
player.sendMessage("Interacting with a part. Toggled=" + toggled[part.ordinal()] + ", configVal=" + player.getConfigManager().get(1) + ".");
|
||||
//player.sendMessage("Interacting with a part. Toggled=" + toggled[part.ordinal()] + ", configVal=" + player.getConfigManager().get(1) + ".");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -358,7 +362,7 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
* @param player the player.
|
||||
*/
|
||||
public Tool select(Player player) {
|
||||
player.getConfigManager().set(1, configValue);
|
||||
//setVarp(player, 1, configValue);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -436,7 +440,7 @@ public class DwarfCannonPlugin extends OptionHandler {
|
||||
* @param toggled if toggled on.
|
||||
*/
|
||||
public void interact(Player player, Tool tool, boolean toggled) {
|
||||
player.getConfigManager().set(1, toggled ? getConfigValue() : tool.getConfigValue());
|
||||
//setVarp(player, 1, toggled ? getConfigValue() : tool.getConfigValue());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,6 +6,8 @@ import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.quest.Quest;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles captains lawgof dialogue.
|
||||
* @author Vexia
|
||||
@@ -93,7 +95,7 @@ public class NulodionDialogue extends DialoguePlugin {
|
||||
stage++;
|
||||
break;
|
||||
case 7:
|
||||
player.getConfigManager().set(0, 10);
|
||||
setVarp(player, 0, 10);
|
||||
quest.setStage(player, 80);
|
||||
player.sendMessage("The Cannon Engineer gives you some notes and a mould.");
|
||||
player.getInventory().add(DwarfCannon.NULODION_NOTES, player);
|
||||
|
||||
@@ -62,7 +62,6 @@ public class WaterFall extends Quest {
|
||||
public void finish(Player player) {
|
||||
super.finish(player);
|
||||
player.getQuestRepository().syncronizeTab(player);
|
||||
player.getConfigManager().set(101, player.getQuestRepository().getPoints());
|
||||
|
||||
player.getPacketDispatch().sendString("1 Quest Point", 277, 8+ 2);
|
||||
player.getPacketDispatch().sendString("13,750 Strength XP", 277, 9+ 2);
|
||||
|
||||
@@ -34,6 +34,8 @@ import core.game.world.map.RegionManager;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Represents the plugin used for the ranging guild.
|
||||
*
|
||||
@@ -1115,9 +1117,9 @@ public final class RangingGuildPlugin extends OptionHandler {
|
||||
|
||||
private void showInterface(int points, int arrowsLeft, int target, String msg) {
|
||||
player.getInterfaceManager().openComponent(325);
|
||||
player.getConfigManager().set(156, 11 - arrowsLeft);
|
||||
player.getConfigManager().set(157, points);
|
||||
player.getConfigManager().set(158, target);
|
||||
setVarp(player, 156, 11 - arrowsLeft);
|
||||
setVarp(player, 157, points);
|
||||
setVarp(player, 158, target);
|
||||
player.getPacketDispatch().sendString(msg, 325, 32);
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -334,7 +334,7 @@ class EWListeners : InteractionListener {
|
||||
sendMessage(player, "You empty the lava into the furnace.")
|
||||
}
|
||||
2 -> {
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, FURNACE_STATE, ENABLED, true)
|
||||
setVarbit(player, FURNACE_STATE, ENABLED, true)
|
||||
sendMessage(player, "The furnace bursts to life.")
|
||||
return true
|
||||
}
|
||||
@@ -469,7 +469,7 @@ class EWListeners : InteractionListener {
|
||||
sendMessage(player, "You turn the handle.")
|
||||
}
|
||||
3 -> {
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, offset, enabled, true)
|
||||
setVarbit(player, offset, enabled, true)
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -491,8 +491,8 @@ class EWListeners : InteractionListener {
|
||||
if (EWUtils.waterWheelEnabled(player)) {
|
||||
playAudio(player, pullLeverDisabledSFX)
|
||||
sendMessage(player, "You hear the sound of a water wheel coming to a standstill.")
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE, DISABLED, true)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE, DISABLED, true)
|
||||
setVarbit(player, WATER_WHEEL_STATE, DISABLED, true)
|
||||
setVarbit(player, BELLOWS_STATE, DISABLED, true)
|
||||
return@on true
|
||||
}
|
||||
|
||||
@@ -500,15 +500,15 @@ class EWListeners : InteractionListener {
|
||||
if (!EWUtils.leftWaterControlEnabled(player) || !EWUtils.rightWaterControlEnabled(player)) {
|
||||
playAudio(player, pullLeverResetGatesSFX)
|
||||
sendMessage(player, "You hear the sound of the flow gates resetting.")
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE, DISABLED, true)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE, DISABLED, true)
|
||||
setVarbit(player, LEFT_WATER_CONTROL_STATE, DISABLED, true)
|
||||
setVarbit(player, RIGHT_WATER_CONTROL_STATE, DISABLED, true)
|
||||
return@on true
|
||||
}
|
||||
|
||||
// If both of the above are false, the water wheel can start running
|
||||
playAudio(player, pullLeverEnabledSFX)
|
||||
sendMessage(player, "You hear the sound of a water wheel starting up.")
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE, ENABLED, true)
|
||||
setVarbit(player, WATER_WHEEL_STATE, ENABLED, true)
|
||||
return@on true
|
||||
}
|
||||
|
||||
@@ -573,13 +573,13 @@ class EWListeners : InteractionListener {
|
||||
// Bellows lever "OFF" state
|
||||
if (EWUtils.bellowsEnabled(player)) {
|
||||
sendMessage(player, "The bellows stop pumping air.")
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE, DISABLED, true)
|
||||
setVarbit(player, BELLOWS_STATE, DISABLED, true)
|
||||
return@on true
|
||||
}
|
||||
|
||||
// Bellows lever "ON" state
|
||||
sendMessage(player, "The bellows pump air down the pipe.")
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE, ENABLED, true)
|
||||
setVarbit(player, BELLOWS_STATE, ENABLED, true)
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
@@ -605,4 +605,4 @@ class EWListeners : InteractionListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@ package content.region.kandarin.seers.quest.elementalworkshop
|
||||
import content.global.handlers.iface.BookLine
|
||||
import content.global.handlers.iface.Page
|
||||
import content.global.handlers.iface.PageSet
|
||||
import core.api.getVarbitValue
|
||||
import core.game.node.entity.player.Player
|
||||
import org.rs09.consts.Vars
|
||||
import core.api.*
|
||||
|
||||
/**
|
||||
* Utils for the Elemental Workshop I quest
|
||||
@@ -71,37 +71,37 @@ object EWUtils {
|
||||
)
|
||||
|
||||
/* OFFSETS */
|
||||
const val LEFT_WATER_CONTROL_STATE = 3
|
||||
const val RIGHT_WATER_CONTROL_STATE = 4
|
||||
const val WATER_WHEEL_STATE = 5
|
||||
const val FURNACE_STATE = 7
|
||||
const val BELLOWS_STATE = 9
|
||||
const val LEFT_WATER_CONTROL_STATE = 2058
|
||||
const val RIGHT_WATER_CONTROL_STATE = 2059
|
||||
const val WATER_WHEEL_STATE = 2060
|
||||
const val FURNACE_STATE = 2062
|
||||
const val BELLOWS_STATE = 2063
|
||||
|
||||
fun leftWaterControlBit(player: Player): Int {
|
||||
return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE)
|
||||
return getVarbit(player, LEFT_WATER_CONTROL_STATE)
|
||||
}
|
||||
|
||||
fun rightWaterControlBit(player: Player): Int {
|
||||
return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE)
|
||||
return getVarbit(player, RIGHT_WATER_CONTROL_STATE)
|
||||
}
|
||||
|
||||
fun leftWaterControlEnabled(player: Player): Boolean {
|
||||
return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) == 1
|
||||
return getVarbit(player, LEFT_WATER_CONTROL_STATE) == 1
|
||||
}
|
||||
|
||||
fun rightWaterControlEnabled(player: Player): Boolean {
|
||||
return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) == 1
|
||||
return getVarbit(player, RIGHT_WATER_CONTROL_STATE) == 1
|
||||
}
|
||||
|
||||
fun waterWheelEnabled(player: Player): Boolean {
|
||||
return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE) == 1
|
||||
return getVarbit(player, WATER_WHEEL_STATE) == 1
|
||||
}
|
||||
|
||||
fun bellowsEnabled(player: Player): Boolean {
|
||||
return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE) == 1
|
||||
return getVarbit(player, BELLOWS_STATE) == 1
|
||||
}
|
||||
|
||||
fun currentStage(player: Player): Int {
|
||||
return player.questRepository.getStage("Elemental Workshop I")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-12
@@ -1,9 +1,6 @@
|
||||
package content.region.kandarin.seers.quest.elementalworkshop
|
||||
|
||||
import core.api.Commands
|
||||
import core.api.addItem
|
||||
import core.api.setAttribute
|
||||
import core.api.setVarbit
|
||||
import core.api.*
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.player.link.quest.Quest
|
||||
import core.game.node.entity.skill.Skills
|
||||
@@ -120,8 +117,7 @@ class ElementalWorkshopQuest : Quest("Elemental Workshop I", 52, 51, 1), Command
|
||||
setAttribute(player, "/save:ew1:got_leather", false)
|
||||
setAttribute(player, "/save:ew1:bellows_fixed", false)
|
||||
player.questRepository.setStageNonmonotonic(player.questRepository.forIndex(52), 0)
|
||||
player.varpManager.get(Vars.VARP_QUEST_ELEMENTAL_WORKSHOP).clearBitRange(0, 31)
|
||||
player.varpManager.get(Vars.VARP_QUEST_ELEMENTAL_WORKSHOP).send(player)
|
||||
setVarp(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, 0)
|
||||
player.teleport(Location.create(2715, 3481, 0))
|
||||
player.inventory.clear()
|
||||
addItem(player, Items.KNIFE_946)
|
||||
@@ -138,11 +134,11 @@ class ElementalWorkshopQuest : Quest("Elemental Workshop I", 52, 51, 1), Command
|
||||
setAttribute(player, "/save:ew1:got_leather", true)
|
||||
setAttribute(player, "/save:ew1:bellows_fixed", true)
|
||||
player.questRepository.setStageNonmonotonic(player.questRepository.forIndex(52), 95)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.BELLOWS_STATE, enabled, true)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.FURNACE_STATE, enabled, true)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.WATER_WHEEL_STATE, enabled, true)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.RIGHT_WATER_CONTROL_STATE, enabled, true)
|
||||
setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.LEFT_WATER_CONTROL_STATE, enabled, true)
|
||||
setVarbit(player, EWUtils.BELLOWS_STATE, enabled, true)
|
||||
setVarbit(player, EWUtils.FURNACE_STATE, enabled, true)
|
||||
setVarbit(player, EWUtils.WATER_WHEEL_STATE, enabled, true)
|
||||
setVarbit(player, EWUtils.RIGHT_WATER_CONTROL_STATE, enabled, true)
|
||||
setVarbit(player, EWUtils.LEFT_WATER_CONTROL_STATE, enabled, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import core.plugin.ClassScanner;
|
||||
import core.tools.RandomFunction;
|
||||
import core.tools.StringUtils;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* The main type or the jungle potion quest.
|
||||
* @author Vexia
|
||||
@@ -77,8 +79,11 @@ public final class JunglePotion extends Quest {
|
||||
player.getPacketDispatch().sendItemZoomOnInterface(Herbs.VOLENCIA_MOSS.getProduct().getId(), 235, 277, 3 + 2);
|
||||
player.getSkills().addExperience(Skills.HERBLORE, 775);
|
||||
player.getQuestRepository().syncronizeTab(player);
|
||||
player.varpManager.get(534).setVarbit(15,2).setVarbit(18,2).setVarbit(21,2).setVarbit(24,2).setVarbit(12,2).send(player);
|
||||
player.varpManager.flagSave(534, false);
|
||||
setVarbit(player, 897, 2);
|
||||
setVarbit(player, 898, 2);
|
||||
setVarbit(player, 899, 2);
|
||||
setVarbit(player, 900, 2);
|
||||
setVarbit(player, 896, 2, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,6 +31,8 @@ import core.game.world.map.zone.ZoneBorders;
|
||||
import core.game.world.map.zone.ZoneRestriction;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
import static core.api.ContentAPIKt.*;
|
||||
|
||||
/**
|
||||
* Handles the Tzhaar Fight pits.
|
||||
* @author Emperor
|
||||
@@ -353,7 +355,7 @@ public final class TzhaarFightPitsPlugin extends ActivityPlugin {
|
||||
}
|
||||
int size = (LOBBY_PLAYERS.size() + WAR_PLAYERS.size()) - 1;
|
||||
if (!WAR_PLAYERS.isEmpty()) {
|
||||
WAR_PLAYERS.get(0).getConfigManager().set(560, size);
|
||||
setVarp(WAR_PLAYERS.get(0), 560, size);
|
||||
}
|
||||
for (Iterator<Player> it = LOBBY_PLAYERS.iterator(); it.hasNext();) {
|
||||
Player p = it.next();
|
||||
@@ -365,7 +367,7 @@ public final class TzhaarFightPitsPlugin extends ActivityPlugin {
|
||||
}
|
||||
p.getSkullManager().setSkullCheckDisabled(true);
|
||||
p.getSkullManager().setWilderness(true);
|
||||
p.getConfigManager().set(560, size);
|
||||
setVarp(p, 560, size);
|
||||
p.getProperties().setTeleportLocation(getZoneDestination());
|
||||
p.getInteraction().set(Option._P_ATTACK);
|
||||
tokkulAmount += p.getProperties().getCurrentCombatLevel();
|
||||
@@ -447,7 +449,7 @@ public final class TzhaarFightPitsPlugin extends ActivityPlugin {
|
||||
*/
|
||||
public static void sendPlayersRemaining(int value) {
|
||||
for (Player p : WAR_PLAYERS) {
|
||||
p.getConfigManager().set(560, value);
|
||||
setVarp(p, 560, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -137,7 +137,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
||||
|
||||
40 -> {
|
||||
setAttribute(player, "/save:tutorial:complete", true)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
teleport(player, Location.create(3233, 3230), TeleportManager.TeleportType.NORMAL)
|
||||
closeOverlay(player)
|
||||
|
||||
@@ -202,4 +202,4 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di
|
||||
return intArrayOf(NPCs.MAGIC_INSTRUCTOR_946)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -67,7 +67,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di
|
||||
""
|
||||
)
|
||||
)
|
||||
setVarbit(player, 1021, 0, 3)
|
||||
setVarbit(player, 3756, 3)
|
||||
player.interfaceManager.openTab(Component(Components.QUESTJOURNAL_V2_274))
|
||||
}
|
||||
28 -> when(stage)
|
||||
@@ -119,4 +119,4 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di
|
||||
return intArrayOf(NPCs.QUEST_GUIDE_949)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ object TutorialStage {
|
||||
1 -> {
|
||||
hideTabs(player, login)
|
||||
player.interfaceManager.openTab(Component(Components.OPTIONS_261))
|
||||
setVarbit(player, 1021, 0, 12)
|
||||
setVarbit(player, 3756, 12)
|
||||
removeHintIcon(player)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -92,7 +92,7 @@ object TutorialStage {
|
||||
}
|
||||
|
||||
2 -> {
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
hideTabs(player, login)
|
||||
registerHintIcon(player, Repository.findNPC(945)!!)
|
||||
Component.setUnclosable(
|
||||
@@ -144,7 +144,7 @@ object TutorialStage {
|
||||
5 -> {
|
||||
hideTabs(player, login)
|
||||
player.interfaceManager.openTab(Component(Components.INVENTORY_149))
|
||||
setVarbit(player, 1021, 0, 4)
|
||||
setVarbit(player, 3756, 4)
|
||||
removeHintIcon(player)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -160,7 +160,7 @@ object TutorialStage {
|
||||
|
||||
6 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 4)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -219,7 +219,7 @@ object TutorialStage {
|
||||
10 -> {
|
||||
hideTabs(player, login)
|
||||
player.interfaceManager.openTab(Component(Components.STATS_320))
|
||||
setVarbit(player, 1021, 0, 2)
|
||||
setVarbit(player, 3756, 2)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -234,7 +234,7 @@ object TutorialStage {
|
||||
|
||||
11 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 2)
|
||||
registerHintIcon(player, Repository.findNPC(943)!!)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -250,7 +250,7 @@ object TutorialStage {
|
||||
|
||||
12 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 406, 0, 2)
|
||||
setVarp(player, 406, 2)
|
||||
removeHintIcon(player)
|
||||
registerHintIcon(player, Repository.findNPC(952)!!)
|
||||
Component.setUnclosable(
|
||||
@@ -402,7 +402,7 @@ object TutorialStage {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
player.interfaceManager.openTab(Component(Components.MUSIC_V3_187))
|
||||
setVarbit(player, 1021, 0, 14)
|
||||
setVarbit(player, 3756, 14)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
|
||||
@@ -418,7 +418,7 @@ object TutorialStage {
|
||||
|
||||
22 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
registerHintIcon(player, Location.create(3072, 3090, 0), 125)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -435,7 +435,7 @@ object TutorialStage {
|
||||
|
||||
23 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 13)
|
||||
setVarbit(player, 3756, 13)
|
||||
removeHintIcon(player)
|
||||
player.interfaceManager.openTab(Component(Components.EMOTES_464))
|
||||
stopWalk(player)
|
||||
@@ -454,7 +454,7 @@ object TutorialStage {
|
||||
|
||||
24 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
player.locks.lockMovement(100000)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -517,7 +517,7 @@ object TutorialStage {
|
||||
|
||||
28 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -533,7 +533,7 @@ object TutorialStage {
|
||||
29 -> {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
registerHintIcon(player, Location.create(3088, 3119, 0), 15)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -550,7 +550,7 @@ object TutorialStage {
|
||||
30 -> {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
registerHintIcon(player, Repository.findNPC(948)!!)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -794,7 +794,7 @@ object TutorialStage {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
player.interfaceManager.openTab(Component(Components.WORNITEMS_387))
|
||||
setVarbit(player, 1021, 0, 5)
|
||||
setVarbit(player, 3756, 5)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -810,7 +810,7 @@ object TutorialStage {
|
||||
|
||||
46 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -857,7 +857,7 @@ object TutorialStage {
|
||||
|
||||
49 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 1)
|
||||
setVarbit(player, 3756, 1)
|
||||
var wepInter = player.getExtension<WeaponInterface>(WeaponInterface::class.java)
|
||||
if(wepInter == null)
|
||||
{
|
||||
@@ -879,7 +879,7 @@ object TutorialStage {
|
||||
|
||||
50 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
registerHintIcon(player, Location.create(3110,9518,0), 75)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -1053,7 +1053,7 @@ object TutorialStage {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
player.interfaceManager.openTab(Component(Components.PRAYER_271))
|
||||
setVarbit(player, 1021, 0, 6)
|
||||
setVarbit(player, 3756, 6)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -1085,7 +1085,7 @@ object TutorialStage {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
player.interfaceManager.openTab(Component(Components.FRIENDS2_550))
|
||||
setVarbit(player, 1021, 0, 9)
|
||||
setVarbit(player, 3756, 9)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -1100,7 +1100,7 @@ object TutorialStage {
|
||||
|
||||
64 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 10)
|
||||
setVarbit(player, 3756, 10)
|
||||
player.interfaceManager.openTab(Component(Components.IGNORE2_551))
|
||||
player.interfaceManager.openTab(Component(Components.CLANJOIN_589))
|
||||
Component.setUnclosable(
|
||||
@@ -1117,7 +1117,7 @@ object TutorialStage {
|
||||
|
||||
65 -> {
|
||||
hideTabs(player, login)
|
||||
setVarbit(player, 1021, 0, 0)
|
||||
setVarbit(player, 3756, 0)
|
||||
registerHintIcon(player, Repository.findNPC(945)!!)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
@@ -1167,7 +1167,7 @@ object TutorialStage {
|
||||
hideTabs(player, login)
|
||||
removeHintIcon(player)
|
||||
player.interfaceManager.openTab(Component(player.spellBookManager.spellBook))
|
||||
setVarbit(player, 1021, 0, 7)
|
||||
setVarbit(player, 3756, 7)
|
||||
Component.setUnclosable(
|
||||
player,
|
||||
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
|
||||
@@ -1274,7 +1274,7 @@ object TutorialStage {
|
||||
val stage = getAttribute(player, "tutorial:stage", 0)
|
||||
val percent = if(stage == 0) 0 else ((stage.toDouble() / 71.0) * 100.0).toInt()
|
||||
val barPercent = if(stage == 0) 0 else (((percent.toDouble() / 100.0) * 20.0).toInt() + 1)
|
||||
setVarbit(player, 406, 0, barPercent)
|
||||
setVarp(player, 406, barPercent)
|
||||
setInterfaceText(player, "$percent% Done", 371, 1)
|
||||
}
|
||||
|
||||
@@ -1296,4 +1296,4 @@ object TutorialStage {
|
||||
{
|
||||
setAttribute(player, "tutorial:hinticon", HintIconManager.registerHintIcon(player, location, 1, -1, player.hintIconManager.freeSlot(), height, 3))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user