Fixed some issues with incorrectly reading varbit values
Fixed Dwarf Cannon quest Improved varp/varbit interface and handling
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user