From 8ba1784c4e0f20c07d6e0e813a1e5bd552e8843d Mon Sep 17 00:00:00 2001 From: Ceikry Date: Thu, 1 Apr 2021 23:39:29 -0500 Subject: [PATCH] Fixed sum shit --- Server/data/configs/item_configs.json | 2 +- .../game/node/entity/impl/GameAttributes.java | 1 + .../world/map/zone/impl/WildernessZone.java | 4 +- .../content/activity/barrows/RewardChest.kt | 85 ++--- .../node/entity/skill/thieving/Pickpocket.kt | 321 ------------------ .../kotlin/rs09/game/world/GameSettings.kt | 3 + 6 files changed, 51 insertions(+), 365 deletions(-) delete mode 100644 Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpocket.kt diff --git a/Server/data/configs/item_configs.json b/Server/data/configs/item_configs.json index b0bffdcd6..ca854943a 100644 --- a/Server/data/configs/item_configs.json +++ b/Server/data/configs/item_configs.json @@ -44633,7 +44633,7 @@ "id": "4564" }, { - "bankable": "false", + "bankable": "true", "turn90cw_anim": "821", "examine": "Hand them out to spread the Easter happiness.", "walk_anim": "1836", diff --git a/Server/src/main/java/core/game/node/entity/impl/GameAttributes.java b/Server/src/main/java/core/game/node/entity/impl/GameAttributes.java index bdf765a18..46b42c0d5 100644 --- a/Server/src/main/java/core/game/node/entity/impl/GameAttributes.java +++ b/Server/src/main/java/core/game/node/entity/impl/GameAttributes.java @@ -145,6 +145,7 @@ public final class GameAttributes { */ @SuppressWarnings("unchecked") public T getAttribute(String key) { + key = key.replace("/save:",""); if (!attributes.containsKey(key)) { return null; } diff --git a/Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java b/Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java index 881fbd42e..efee40538 100644 --- a/Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java +++ b/Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java @@ -304,7 +304,9 @@ public final class WildernessZone extends MapZone { p.getInterfaceManager().openWildernessOverlay(new Component(381)); p.getSkullManager().setLevel(getWilderness(p)); p.getPacketDispatch().sendString("Level: " + p.getSkullManager().getLevel(), 381, 1); - p.getInteraction().set(Option._P_ATTACK); + if(GameWorld.getSettings().getWild_pvp_enabled()) { + p.getInteraction().set(Option._P_ATTACK); + } p.getSkullManager().setWilderness(true); } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt b/Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt index d9d26836e..8374cb7be 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt +++ b/Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt @@ -6,10 +6,11 @@ import core.game.content.global.BossKillCounter import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager import core.game.node.item.Item -import core.game.node.item.WeightedChanceItem import core.tools.RandomFunction import org.rs09.consts.Components import org.rs09.consts.Items +import rs09.game.content.global.WeightBasedTable +import rs09.game.content.global.WeightedItem import java.util.* /** @@ -21,49 +22,49 @@ object RewardChest { /** * The low profit drop table. */ - private val DROP_TABLE = arrayOf( + private val DROP_TABLE = WeightBasedTable.create( //Weighted total = 3050 - WeightedChanceItem(Items.COINS_995, 1, 5306, 950), - WeightedChanceItem(Items.MIND_RUNE_558, 60, 60, 300), - WeightedChanceItem(Items.MIND_RUNE_558, 100, 850, 300), - WeightedChanceItem(Items.CHAOS_RUNE_562, 115, 720, 300), - WeightedChanceItem(Items.DEATH_RUNE_560, 15, 15, 300), - WeightedChanceItem(Items.DEATH_RUNE_560, 70, 230, 300), - WeightedChanceItem(Items.BLOOD_RUNE_565, 35, 230, 300), - WeightedChanceItem(Items.BOLT_RACK_4740, 35, 280, 300), + WeightedItem(Items.COINS_995, 1, 5306, 950.0), + WeightedItem(Items.MIND_RUNE_558, 60, 60, 300.0), + WeightedItem(Items.MIND_RUNE_558, 100, 850, 300.0), + WeightedItem(Items.CHAOS_RUNE_562, 115, 720, 300.0), + WeightedItem(Items.DEATH_RUNE_560, 15, 15, 300.0), + WeightedItem(Items.DEATH_RUNE_560, 70, 230, 300.0), + WeightedItem(Items.BLOOD_RUNE_565, 35, 230, 300.0), + WeightedItem(Items.BOLT_RACK_4740, 35, 280, 300.0), //Weight total = 975 - WeightedChanceItem(Items.SUPER_DEFENCE2_165, 1, 1, 325), - WeightedChanceItem(Items.PRAYER_POTION2_141, 1, 1, 325), - WeightedChanceItem(Items.RESTORE_POTION2_129, 1, 1, 325), + WeightedItem(Items.SUPER_DEFENCE2_165, 1, 1, 325.0), + WeightedItem(Items.PRAYER_POTION2_141, 1, 1, 325.0), + WeightedItem(Items.RESTORE_POTION2_129, 1, 1, 325.0), //Weight total = 53 - WeightedChanceItem(Items.TOOTH_HALF_OF_A_KEY_985, 1, 1, 25), - WeightedChanceItem(Items.LOOP_HALF_OF_A_KEY_987, 1, 1, 25), - WeightedChanceItem(Items.DRAGON_MED_HELM_1149, 1, 1, 3), + WeightedItem(Items.TOOTH_HALF_OF_A_KEY_985, 1, 1, 25.0), + WeightedItem(Items.LOOP_HALF_OF_A_KEY_987, 1, 1, 25.0), + WeightedItem(Items.DRAGON_MED_HELM_1149, 1, 1, 3.0), //Weight total = 120 BARROWS ITEMS V - WeightedChanceItem(4708, 1, 1, 5), - WeightedChanceItem(4710, 1, 1, 5), - WeightedChanceItem(4712, 1, 1, 5), - WeightedChanceItem(4714, 1, 1, 5), - WeightedChanceItem(4716, 1, 1, 5), - WeightedChanceItem(4718, 1, 1, 5), - WeightedChanceItem(4720, 1, 1, 5), - WeightedChanceItem(4722, 1, 1, 5), - WeightedChanceItem(4724, 1, 1, 5), - WeightedChanceItem(4726, 1, 1, 5), - WeightedChanceItem(4728, 1, 1, 5), - WeightedChanceItem(4730, 1, 1, 5), - WeightedChanceItem(4732, 1, 1, 5), - WeightedChanceItem(4734, 1, 1, 5), - WeightedChanceItem(4736, 1, 1, 5), - WeightedChanceItem(4738, 1, 1, 5), - WeightedChanceItem(4745, 1, 1, 5), - WeightedChanceItem(4747, 1, 1, 5), - WeightedChanceItem(4749, 1, 1, 5), - WeightedChanceItem(4751, 1, 1, 5), - WeightedChanceItem(4753, 1, 1, 5), - WeightedChanceItem(4755, 1, 1, 5), - WeightedChanceItem(4757, 1, 1, 5), - WeightedChanceItem(4759, 1, 1, 5) + WeightedItem(4708, 1, 1, 5.0), + WeightedItem(4710, 1, 1, 5.0), + WeightedItem(4712, 1, 1, 5.0), + WeightedItem(4714, 1, 1, 5.0), + WeightedItem(4716, 1, 1, 5.0), + WeightedItem(4718, 1, 1, 5.0), + WeightedItem(4720, 1, 1, 5.0), + WeightedItem(4722, 1, 1, 5.0), + WeightedItem(4724, 1, 1, 5.0), + WeightedItem(4726, 1, 1, 5.0), + WeightedItem(4728, 1, 1, 5.0), + WeightedItem(4730, 1, 1, 5.0), + WeightedItem(4732, 1, 1, 5.0), + WeightedItem(4734, 1, 1, 5.0), + WeightedItem(4736, 1, 1, 5.0), + WeightedItem(4738, 1, 1, 5.0), + WeightedItem(4745, 1, 1, 5.0), + WeightedItem(4747, 1, 1, 5.0), + WeightedItem(4749, 1, 1, 5.0), + WeightedItem(4751, 1, 1, 5.0), + WeightedItem(4753, 1, 1, 5.0), + WeightedItem(4755, 1, 1, 5.0), + WeightedItem(4757, 1, 1, 5.0), + WeightedItem(4759, 1, 1, 5.0) ) /** @@ -87,9 +88,9 @@ object RewardChest { var maxRolls = 2 + RandomFunction.random(0,player.savedData.activityData.barrowKills / 3) if(maxRolls > 6) maxRolls = 6 for (i in 0 until maxRolls) { - rewards.add(RandomFunction.rollWeightedChanceTable(*DROP_TABLE)) + rewards.addAll(DROP_TABLE.roll()) } - InterfaceContainer.generateItems(player, rewards.toTypedArray(), arrayOf("Pog!","Examine"), 364, 4,3,4) + InterfaceContainer.generateItems(player, rewards.toTypedArray(), arrayOf("Examine"), 364, 4,3,4) player.interfaceManager.open(Component(Components.TRAIL_REWARD_364)) BossKillCounter.addtoBarrowsCount(player) for(item in rewards){ diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpocket.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpocket.kt deleted file mode 100644 index 97a5fba93..000000000 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpocket.kt +++ /dev/null @@ -1,321 +0,0 @@ -package rs09.game.node.entity.skill.thieving - -import core.game.content.ttrail.ClueLevel -import core.game.content.ttrail.ClueScrollPlugin -import core.game.node.entity.npc.NPC -import core.game.node.entity.npc.drop.DropFrequency -import core.game.node.entity.player.Player -import core.game.node.item.ChanceItem -import core.game.node.item.Item -import core.tools.RandomFunction -import java.util.* -import java.util.stream.IntStream - -/** - * Represents a pickpocket npc. - * @author Ceikry - */ -enum class Pickpocket(val npc: IntArray, val level: Int, val experience: Double, val stunDamage: Int, val loot: Array) { - MAN(intArrayOf(1, 2, 3, 4, 5, 6, 16, 24, 170, 3915), 1, 8.0, 1, arrayOf( - ChanceItem(995, 3, DropFrequency.ALWAYS) - )), - FARMER(intArrayOf(7, 1757, 1758), 10, 14.5, 1, arrayOf( - ChanceItem(995, 9, DropFrequency.COMMON), - ChanceItem(5318, 1, DropFrequency.UNCOMMON) - )), - MALE_HAM_MEMBER(intArrayOf(1714), 20, 18.5, 1, arrayOf( - ChanceItem(995, 20, DropFrequency.COMMON), - ChanceItem(995, 3, DropFrequency.COMMON), - ChanceItem(590, 1, DropFrequency.COMMON), - ChanceItem(697, 1, DropFrequency.COMMON), - ChanceItem(1511, 1, DropFrequency.COMMON), - ChanceItem(201, 1, DropFrequency.COMMON), - ChanceItem(203, 1, DropFrequency.COMMON), - ChanceItem(205, 1, DropFrequency.COMMON), - ChanceItem(688, 1, DropFrequency.COMMON), - ChanceItem(1269, 1, DropFrequency.COMMON), - ChanceItem(1267, 1, DropFrequency.COMMON), - ChanceItem(1353, 1, DropFrequency.COMMON), - ChanceItem(199, 1, DropFrequency.COMMON), - ChanceItem(321, 1, DropFrequency.COMMON), - ChanceItem(2138, 1, DropFrequency.COMMON), - ChanceItem(1621, 1, DropFrequency.UNCOMMON), - ChanceItem(1623, 1, DropFrequency.UNCOMMON), - ChanceItem(995, 50, DropFrequency.UNCOMMON), - ChanceItem(453, 1, DropFrequency.UNCOMMON), - ChanceItem(4298, 1, DropFrequency.RARE), - ChanceItem(4300, 1, DropFrequency.RARE), - ChanceItem(4302, 1, DropFrequency.RARE), - ChanceItem(4304, 1, DropFrequency.RARE), - ChanceItem(4306, 1, DropFrequency.RARE), - ChanceItem(4308, 1, DropFrequency.RARE), - ChanceItem(995, 100, DropFrequency.RARE), - ChanceItem(4310, 1, DropFrequency.RARE), - ChanceItem(1625, 1, DropFrequency.RARE) - )), - FEMALE_HAM_MEMBER(intArrayOf(1715), 15, 18.5, 1, arrayOf( - ChanceItem(995, 20, DropFrequency.COMMON), - ChanceItem(995, 3, DropFrequency.COMMON), - ChanceItem(590, 1, DropFrequency.COMMON), - ChanceItem(697, 1, DropFrequency.COMMON), - ChanceItem(1511, 1, DropFrequency.COMMON), - ChanceItem(201, 1, DropFrequency.COMMON), - ChanceItem(203, 1, DropFrequency.COMMON), - ChanceItem(205, 1, DropFrequency.COMMON), - ChanceItem(688, 1, DropFrequency.COMMON), - ChanceItem(1269, 1, DropFrequency.COMMON), - ChanceItem(1267, 1, DropFrequency.COMMON), - ChanceItem(1353, 1, DropFrequency.COMMON), - ChanceItem(199, 1, DropFrequency.COMMON), - ChanceItem(321, 1, DropFrequency.COMMON), - ChanceItem(2138, 1, DropFrequency.COMMON), - ChanceItem(1621, 1, DropFrequency.UNCOMMON), - ChanceItem(1623, 1, DropFrequency.UNCOMMON), - ChanceItem(995, 50, DropFrequency.UNCOMMON), - ChanceItem(453, 1, DropFrequency.UNCOMMON), - ChanceItem(4298, 1, DropFrequency.RARE), - ChanceItem(4300, 1, DropFrequency.RARE), - ChanceItem(4302, 1, DropFrequency.RARE), - ChanceItem(4304, 1, DropFrequency.RARE), - ChanceItem(4306, 1, DropFrequency.RARE), - ChanceItem(4308, 1, DropFrequency.RARE), - ChanceItem(995, 100, DropFrequency.RARE), - ChanceItem(4310, 1, DropFrequency.RARE), - ChanceItem(1625, 1, DropFrequency.RARE) - )), - WARRIOR(intArrayOf(15, 18), 25, 26.0, 2, arrayOf( - ChanceItem(995, 18, DropFrequency.ALWAYS) - )), - ROGUE(intArrayOf(187, 2267, 2268, 2269, 8122), 32, 35.5, 2, arrayOf( - ChanceItem(995, 25, DropFrequency.COMMON), - ChanceItem(995, 40, DropFrequency.COMMON), - ChanceItem(1993, 1, DropFrequency.COMMON), - ChanceItem(556, 1, DropFrequency.COMMON), - ChanceItem(1219, 1, DropFrequency.COMMON), - ChanceItem(1523, 1, DropFrequency.COMMON), - ChanceItem(1944, 1, DropFrequency.COMMON) - )), - CAVE_GOBLIN(IntStream.rangeClosed(5752, 5768).toArray(), 36, 40.0, 2, arrayOf( - ChanceItem(995, 1, 30, DropFrequency.COMMON), - ChanceItem(4522, 1, DropFrequency.UNCOMMON), - ChanceItem(4544, 1, DropFrequency.UNCOMMON), - ChanceItem(596, 1, DropFrequency.COMMON), - ChanceItem(1939, 1, DropFrequency.UNCOMMON), - ChanceItem(442, 1, 4, DropFrequency.UNCOMMON), - ChanceItem(441, 1, DropFrequency.COMMON), - ChanceItem(10981, 1, DropFrequency.RARE) - )), - MASTER_FARMER(intArrayOf(2234, 2235), 38, 43.0, 3, arrayOf( - ChanceItem(5096, 1, DropFrequency.COMMON), - ChanceItem(5097, 1, DropFrequency.COMMON), - ChanceItem(5098, 1, DropFrequency.COMMON), - ChanceItem(5099, 1, DropFrequency.COMMON), - ChanceItem(5100, 1, DropFrequency.COMMON), - ChanceItem(5101, 1, DropFrequency.COMMON), - ChanceItem(5102, 1, DropFrequency.COMMON), - ChanceItem(5103, 1, DropFrequency.COMMON), - ChanceItem(5104, 1, DropFrequency.COMMON), - ChanceItem(5105, 1, DropFrequency.COMMON), - ChanceItem(5106, 1, DropFrequency.COMMON), - ChanceItem(5291, 1, DropFrequency.UNCOMMON), - ChanceItem(5292, 1, DropFrequency.UNCOMMON), - ChanceItem(5293, 1, DropFrequency.UNCOMMON), - ChanceItem(5294, 1, DropFrequency.UNCOMMON), - ChanceItem(5295, 1, DropFrequency.UNCOMMON), - ChanceItem(5296, 1, DropFrequency.UNCOMMON), - ChanceItem(5297, 1, DropFrequency.UNCOMMON), - ChanceItem(5298, 1, DropFrequency.UNCOMMON), - ChanceItem(5299, 1, DropFrequency.UNCOMMON), - ChanceItem(5300, 1, DropFrequency.UNCOMMON), - ChanceItem(5301, 1, DropFrequency.UNCOMMON), - ChanceItem(5302, 1, DropFrequency.UNCOMMON), - ChanceItem(5303, 1, DropFrequency.UNCOMMON), - ChanceItem(5304, 1, DropFrequency.UNCOMMON) - )), - GUARD(intArrayOf(9, 32, 206, 296, 297, 298, 299, 344, 345, 346, 368, 678, 812, 9, 32, 296, 297, 298, 299, 2699, 2700, 2701, 2702, 2703, 3228, 3229, 3230, 3231, 3232, 3233, 3241, 3407, 3408, 4307, 4308, 4309, 4310, 4311, 5919, 5920), 40, 46.5, 2, arrayOf( - ChanceItem(995, 30, DropFrequency.ALWAYS) - )), - FREMENIK_CITIZEN(intArrayOf(2462), 45, 65.0, 2, arrayOf( - ChanceItem(995, 40, DropFrequency.ALWAYS) - )), - BEARDED_BANDIT(intArrayOf(1880, 1881, 6174), 45, 65.0, 5, arrayOf( - ChanceItem(995, 40, DropFrequency.ALWAYS) - )), - DESERT_BANDIT(intArrayOf(1926, 1921), 53, 79.5, 3, arrayOf( - ChanceItem(995, 30, DropFrequency.ALWAYS) - )), - KNIGHT_OF_ADROUGNE(intArrayOf(23, 26), 55, 84.3, 3, arrayOf( - ChanceItem(995, 50, DropFrequency.ALWAYS) - )), - YANILLE_WATCHMAN(intArrayOf(34), 65, 137.5, 5, arrayOf( - ChanceItem(995, 60, DropFrequency.ALWAYS) - )), - MENAPHITE_THUG(intArrayOf(1905), 65, 137.5, 5, arrayOf( - ChanceItem(995, 60, DropFrequency.ALWAYS) - )), - PALADIN(intArrayOf(20, 2256), 70, 151.75, 3, arrayOf( - ChanceItem(995, 80, DropFrequency.ALWAYS), - ChanceItem(562, 1, 2, DropFrequency.ALWAYS) - )), - MONKEY_KNIFE_FIGHTER(intArrayOf(13195, 13212, 13213), 70, 150.0, 1, arrayOf( - ChanceItem(995, 1, DropFrequency.COMMON), - ChanceItem(995, 50, DropFrequency.UNCOMMON), - ChanceItem(869, 1, 4, DropFrequency.COMMON), - ChanceItem(874, 1, 2, DropFrequency.COMMON), - ChanceItem(379, 1, DropFrequency.COMMON), - ChanceItem(1331, 1, DropFrequency.COMMON), - ChanceItem(1333, 1, DropFrequency.COMMON), - ChanceItem(4587, 1, DropFrequency.COMMON) - )), - GNOME(intArrayOf(66, 67, 68, 168, 169, 2249, 2250, 2251, 2371, 2649, 2650, 6002, 6004), 75, 198.5, 1, arrayOf( - ChanceItem(995, 1, 300, DropFrequency.COMMON), - ChanceItem(557, 1, DropFrequency.COMMON), - ChanceItem(444, 1, DropFrequency.COMMON), - ChanceItem(569, 1, DropFrequency.COMMON), - ChanceItem(2150, 1, DropFrequency.COMMON), - ChanceItem(2162, 1, DropFrequency.COMMON) - )), - HERO(intArrayOf(21), 80, 273.3, 5, arrayOf( - ChanceItem(995, 1, 200, DropFrequency.COMMON), - ChanceItem(995, 1, 300, DropFrequency.UNCOMMON), - ChanceItem(560, 1, 2, DropFrequency.COMMON), - ChanceItem(565, 1, DropFrequency.COMMON), - ChanceItem(569, 1, DropFrequency.COMMON), - ChanceItem(1601, 1, DropFrequency.COMMON), - ChanceItem(444, 1, DropFrequency.COMMON), - ChanceItem(1993, 1, DropFrequency.COMMON) - )), - ELF(intArrayOf(), 85, 353.0, 5, arrayOf( - ChanceItem(995, 250, DropFrequency.COMMON), - ChanceItem(995, 350, DropFrequency.COMMON), - ChanceItem(995, 300, DropFrequency.COMMON) - )), - DWARF_TRADER(intArrayOf(2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126), 90, 556.5, 1, arrayOf( - ChanceItem(995, 1, 100, DropFrequency.COMMON), - ChanceItem(995, 1, 400, DropFrequency.COMMON), - ChanceItem(2350, 1, DropFrequency.COMMON), - ChanceItem(2352, 1, DropFrequency.COMMON), - ChanceItem(2354, 1, DropFrequency.COMMON), - ChanceItem(2360, 1, DropFrequency.COMMON), - ChanceItem(2362, 1, DropFrequency.COMMON), - ChanceItem(2364, 1, DropFrequency.COMMON), - ChanceItem(437, 1, DropFrequency.COMMON), - ChanceItem(439, 1, DropFrequency.COMMON), - ChanceItem(441, 1, DropFrequency.COMMON), - ChanceItem(448, 1, DropFrequency.COMMON), - ChanceItem(450, 1, DropFrequency.COMMON), - ChanceItem(452, 1, DropFrequency.COMMON), - ChanceItem(454, 1, DropFrequency.COMMON) - )), - MARTIN_THE_MASTER_GARDENER(intArrayOf(3299), 38, 43.0, 3, arrayOf( - ChanceItem(5318, 1, 4, DropFrequency.COMMON), - ChanceItem(5319, 1, 3, DropFrequency.COMMON), - ChanceItem(5324, 1, 3, DropFrequency.COMMON), - ChanceItem(5322, 1, 2, DropFrequency.COMMON), - ChanceItem(5320, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5323, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5321, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5096, 1, 1, DropFrequency.COMMON), - ChanceItem(5097, 1, 1, DropFrequency.COMMON), - ChanceItem(5098, 1, 1, DropFrequency.COMMON), - ChanceItem(5099, 1, 2, DropFrequency.COMMON), - ChanceItem(5100, 1, 1, DropFrequency.COMMON), - ChanceItem(5305, 1, 4, DropFrequency.COMMON), - ChanceItem(5307, 1, 3, DropFrequency.COMMON), - ChanceItem(5308, 1, 2, DropFrequency.COMMON), - ChanceItem(5306, 1, 3, DropFrequency.COMMON), - ChanceItem(5319, 1, 3, DropFrequency.COMMON), - ChanceItem(5309, 1, 2, DropFrequency.COMMON), - ChanceItem(5310, 1, 1, DropFrequency.COMMON), - ChanceItem(5311, 1, 1, DropFrequency.COMMON), - ChanceItem(5101, 1, 1, DropFrequency.COMMON), - ChanceItem(5102, 1, 1, DropFrequency.COMMON), - ChanceItem(5103, 1, 1, DropFrequency.COMMON), - ChanceItem(5104, 1, 2, DropFrequency.COMMON), - ChanceItem(5105, 1, 1, DropFrequency.COMMON), - ChanceItem(5106, 1, 1, DropFrequency.COMMON), - ChanceItem(5291, 1, 1, DropFrequency.COMMON), - ChanceItem(5292, 1, 1, DropFrequency.COMMON), - ChanceItem(5293, 1, 1, DropFrequency.COMMON), - ChanceItem(5294, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5295, 1, 1, DropFrequency.RARE), - ChanceItem(5296, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5297, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5298, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5299, 1, 1, DropFrequency.RARE), - ChanceItem(5300, 1, 1, DropFrequency.VERY_RARE), - ChanceItem(5301, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5302, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5303, 1, 1, DropFrequency.RARE), - ChanceItem(5304, 1, 1, DropFrequency.VERY_RARE), - ChanceItem(5282, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5280, 1, 1, DropFrequency.UNCOMMON), - ChanceItem(5281, 1, 1, DropFrequency.UNCOMMON) - )); - - companion object { - private val idMap = HashMap() - @JvmStatic - fun forNPC(npc: NPC): Pickpocket { - var pp = idMap[npc.id] - if (pp == null) { - println("Unhandled pickpocket option for: " + npc.name + "(" + npc.id + ")") - pp = MAN - } - return pp - } - - init { - Arrays.stream(values()).forEach{entry -> Arrays.stream(entry.npc).forEach{id -> idMap.putIfAbsent(id,entry)}} - } - } - - private val messages: Array = arrayOf( - "You attempt to pick the " + "@name" + "'s pocket...", - "You pick the " + "@name" + "'s pocket.", - "You fail to pick the " + "@name" + "'s pocket.", - "What do you think you're doing?" - ) - - val startMessage: String - get() = messages[0] - - val rewardMessage: String - get() = messages[1] - - val failMessage: String - get() = messages[2] - - val forceMessage: String - get() = messages[3] - - fun getRandomLoot(player: Player): List { - // 5/250 chance for easy clue scroll - if ((this == MALE_HAM_MEMBER || this == FEMALE_HAM_MEMBER) && RandomFunction.random(250) <= 5 && !player.treasureTrailManager.hasClue()) { - return ArrayList(listOf((ClueScrollPlugin.getClue(ClueLevel.EASY)))) - } - val loot = RandomFunction.rollChanceTable(true, *loot) - - // Calculate any bonus multipliers - var bonusMultiplier = 1 - var rogueItemsWorn = 0 - val rogueItemIds = intArrayOf(5553, 5554, 5555, 5556, 5557) - - // Figure out how many rogue equipment pieces are worn - rogueItemIds.forEach { - if(player.equipment.contains(it, 1)){ - rogueItemsWorn += 1 - } - } - - // Calculate if the player will get double the loot for this pickpocket - if(RandomFunction.random(0.0, 1.0) <= 0.2 * rogueItemsWorn){ - bonusMultiplier += 1 - } - - // Multiply the loot amounts by the bonus multiplier - loot.stream().forEach { item: Item -> item.amount = item.amount * bonusMultiplier } - return loot - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/world/GameSettings.kt b/Server/src/main/kotlin/rs09/game/world/GameSettings.kt index 473818b99..b3c2d9b82 100644 --- a/Server/src/main/kotlin/rs09/game/world/GameSettings.kt +++ b/Server/src/main/kotlin/rs09/game/world/GameSettings.kt @@ -79,6 +79,7 @@ class GameSettings var increased_door_time: Boolean, var enabled_botting : Boolean, var max_adv_bots: Int, + var wild_pvp_enabled: Boolean, /**"Lobby" interface * The message of the week models to display @@ -130,6 +131,7 @@ class GameSettings val increased_door_time = if(data.containsKey("increased_door_time")) data["increased_door_time"] as Boolean else false val enable_botting = if(data.containsKey("botting_enabled")) data["botting_enabled"] as Boolean else false val max_adv_bots = if(data.containsKey("max_adv_bots")) data["max_adv_bots"].toString().toInt() else 100 + val wild_pvp_enabled = if(data.containsKey("wild_pvp_enabled")) data["wild_pvp_enabled"] as Boolean else true val allow_token_purchase = data["allow_token_purchase"] as Boolean val message_of_the_week_identifier = data["message_of_the_week_identifier"].toString().toInt() val message_of_the_week_text = data["message_of_the_week_text"].toString() @@ -156,6 +158,7 @@ class GameSettings increased_door_time, enable_botting, max_adv_bots, + wild_pvp_enabled, message_of_the_week_identifier, message_of_the_week_text )