Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -10578,6 +10578,10 @@
|
||||
{
|
||||
"npc_id": "487",
|
||||
"loc_data": "{1885,5029,0,0,6}"
|
||||
},
|
||||
{
|
||||
"npc_id": "555",
|
||||
"loc_data": "{2657,3153,0,1,0}"
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
+1117
-1144
File diff suppressed because it is too large
Load Diff
@@ -1,30 +1,30 @@
|
||||
package core.game.content.activity.tzhaar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import core.game.content.activity.ActivityPlugin;
|
||||
import core.game.content.global.BossKillCounter;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.skill.slayer.Tasks;
|
||||
import core.game.interaction.Option;
|
||||
import core.game.node.Node;
|
||||
import core.game.node.entity.Entity;
|
||||
import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.diary.DiaryType;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.skill.slayer.Tasks;
|
||||
import core.game.node.item.GroundItemManager;
|
||||
import core.game.node.item.Item;
|
||||
import core.game.node.object.GameObject;
|
||||
import core.game.system.task.Pulse;
|
||||
import rs09.game.world.GameWorld;
|
||||
import core.game.world.map.Location;
|
||||
import core.game.world.map.build.DynamicRegion;
|
||||
import core.game.world.map.zone.ZoneRestriction;
|
||||
import rs09.game.world.repository.Repository;
|
||||
import core.plugin.Initializable;
|
||||
import core.tools.RandomFunction;
|
||||
import rs09.game.world.GameWorld;
|
||||
import rs09.game.world.repository.Repository;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Handles the Tzhaar Fight caves plugin.
|
||||
@@ -60,7 +60,7 @@ public final class TzhaarFightCavesPlugin extends ActivityPlugin {
|
||||
* @param player The player.
|
||||
*/
|
||||
public TzhaarFightCavesPlugin(Player player) {
|
||||
super("fight caves", true, true, true, ZoneRestriction.CANNON);
|
||||
super("fight caves", true, true, true, ZoneRestriction.CANNON, ZoneRestriction.RANDOM_EVENTS);
|
||||
super.player = player;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ import core.game.world.map.zone.ZoneBorders
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.ai.skillingbot.SkillingBotAssembler
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptName("Falador Coal Miner")
|
||||
@@ -52,7 +54,7 @@ class CoalMiner() : Script() {
|
||||
scriptAPI.walkTo(mine.randomLoc)
|
||||
} else {
|
||||
val rock = scriptAPI.getNearestNode("rocks",true)
|
||||
rock?.interaction?.handle(bot,rock.interaction[0])
|
||||
rock?.let { InteractionListeners.run(rock.id, InteractionListener.OBJECT,"mine",bot,rock) }
|
||||
}
|
||||
overlay!!.setAmount(bot.inventory.getAmount(Items.COAL_453) + coalAmount)
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ import core.game.node.entity.skill.Skills
|
||||
import core.game.node.item.Item
|
||||
import core.game.world.map.zone.ZoneBorders
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
import rs09.tools.stringtools.colorize
|
||||
|
||||
@PlayerCompatible
|
||||
@@ -39,7 +41,8 @@ class DraynorWillows : Script(){
|
||||
scriptAPI.walkTo(willowZone.randomLoc)
|
||||
else {
|
||||
val willowtree = scriptAPI.getNearestNode("willow", true)
|
||||
willowtree?.interaction?.handle(bot, willowtree.interaction[0])
|
||||
willowtree?.let { InteractionListeners.run(willowtree.id,
|
||||
InteractionListener.OBJECT,"chop",bot,willowtree) }
|
||||
if (bot.inventory.isFull)
|
||||
state = State.BANKING
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import core.tools.RandomFunction
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.AIPlayer
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
import rs09.game.world.GameWorld
|
||||
import kotlin.random.Random
|
||||
|
||||
@@ -71,7 +73,7 @@ class LobsterCatcher : Script() {
|
||||
if(spot == null){
|
||||
state = State.IDLE
|
||||
} else {
|
||||
spot!!.interaction.handle(bot, spot.interaction[0])
|
||||
InteractionListeners.run(spot.id,InteractionListener.NPC,"cage",bot,spot)
|
||||
}
|
||||
if(bot.inventory.isFull){
|
||||
state = State.FIND_BANK
|
||||
|
||||
@@ -10,6 +10,8 @@ import core.tools.RandomFunction
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.ai.skillingbot.SkillingBotAssembler
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptName("Seers Magics")
|
||||
@@ -37,7 +39,7 @@ class SeersMagicTrees : Script(){
|
||||
|
||||
State.CHOPPING -> {
|
||||
val tree = scriptAPI.getNearestNode(1306,true)
|
||||
tree?.interaction?.handle(bot,tree.interaction[0])
|
||||
tree?.let { InteractionListeners.run(tree.id, InteractionListener.OBJECT,"chop",bot,tree) }
|
||||
if(bot.inventory.isFull){
|
||||
state = State.FIND_BANK
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ import org.rs09.consts.Items
|
||||
import rs09.game.ai.AIPlayer
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.ge.OfferManager
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
import kotlin.random.Random
|
||||
|
||||
/*
|
||||
@@ -115,7 +117,7 @@ class SharkCatcher : Script() {
|
||||
if (Random.nextBoolean()) {
|
||||
tick = 0
|
||||
val spot = scriptAPI.getNearestNode(334, false)
|
||||
spot!!.interaction.handle(bot, spot.interaction[2])
|
||||
spot?.let { InteractionListeners.run(spot.id, InteractionListener.NPC,"harpoon",bot,spot) }
|
||||
if(bot.inventory.isFull){
|
||||
state = State.FIND_BANK
|
||||
} else {
|
||||
|
||||
@@ -6,6 +6,8 @@ import core.game.world.map.Location
|
||||
import core.game.world.map.zone.ZoneBorders
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.skillingbot.SkillingBotAssembler
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptDescription("Start in varrock bank with rune mysteries complete and a pickaxe equipped/in inventory")
|
||||
@@ -47,7 +49,7 @@ class VarrockEssenceMiner : Script(){
|
||||
|
||||
State.MINING -> {
|
||||
val essence = scriptAPI.getNearestNode(2491,true)
|
||||
essence?.interaction?.handle(bot,essence.interaction[0])
|
||||
essence?.let { InteractionListeners.run(essence.id, InteractionListener.OBJECT,"mine",bot,essence) }
|
||||
if(bot.inventory.isFull)
|
||||
state = State.TO_BANK
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package rs09.game.content.ame
|
||||
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.world.map.zone.ZoneRestriction
|
||||
import rs09.game.system.SystemLogger
|
||||
import rs09.game.world.GameWorld
|
||||
|
||||
@@ -15,6 +16,9 @@ class RandomEventManager(val player: Player) {
|
||||
}
|
||||
|
||||
fun fireEvent(){
|
||||
if(player.zoneMonitor.isRestricted(ZoneRestriction.RANDOM_EVENTS)){
|
||||
return
|
||||
}
|
||||
val ame = RandomEvents.values().random()
|
||||
event = ame.npc.create(player,ame.loot,ame.type)
|
||||
event!!.init()
|
||||
|
||||
@@ -11,14 +11,14 @@ class CerterEventInterface : InterfaceListener() {
|
||||
val OPTION_C_CHILD = 3
|
||||
val ITEM_CHILD = 7
|
||||
val items = mapOf(
|
||||
Items.BRONZE_SCIMITAR_1321 to "a sword",
|
||||
Items.BLACK_SWORD_1283 to "a sword",
|
||||
Items.BRONZE_SWORD_1277 to "a sword",
|
||||
Items.BRONZE_MED_HELM_1139 to "a helmet",
|
||||
Items.BRONZE_FULL_HELM_1155 to "a helmet",
|
||||
Items.BRONZE_CHAINBODY_1103 to "a platebody",
|
||||
Items.BLACK_CHAINBODY_1107 to "a platebody",
|
||||
Items.WOODEN_SHIELD_1171 to "a shield",
|
||||
Items.BRONZE_KITESHIELD_1189 to "a shield",
|
||||
)
|
||||
val falseOptions = arrayOf("a ring","a dragon","a cat","a chestplate","a pair of boots","a fish","a gun","a staff","a cannon","a dwarf","a bow","an arrow","a chinchompa","a chicken","a feather","a ninja","a bot")
|
||||
val falseOptions = arrayOf("a ring","a dragon","a cat","a helmet","a pair of boots","a fish","a gun","a staff","a cannon","a dwarf","a bow","an arrow","a chinchompa","a chicken","a feather","a ninja","a bot")
|
||||
override fun defineListeners() {
|
||||
on(CERTER_INTERFACE){player, _, _, buttonID, _, _ ->
|
||||
val answer = buttonID - 7
|
||||
|
||||
@@ -5,9 +5,11 @@ import core.game.node.entity.player.Player
|
||||
import core.game.world.map.Location
|
||||
|
||||
abstract class InteractionListener : Listener{
|
||||
companion object {
|
||||
val ITEM = 0
|
||||
val OBJECT = 1
|
||||
val NPC = 2
|
||||
}
|
||||
fun on(id: Int, type: Int, vararg option: String,handler: (player: Player, node: Node) -> Boolean){
|
||||
InteractionListeners.add(id,type,option,handler)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.rs09.consts.Items
|
||||
import rs09.game.node.entity.state.newsys.states.SeedlingState
|
||||
|
||||
private val cans = arrayListOf(Items.WATERING_CAN8_5340,Items.WATERING_CAN7_5339,Items.WATERING_CAN6_5338,Items.WATERING_CAN5_5337,Items.WATERING_CAN4_5336,Items.WATERING_CAN3_5335,Items.WATERING_CAN2_5334,Items.WATERING_CAN1_5333)
|
||||
private val seedlings = arrayListOf(Items.OAK_SEEDLING_5358,Items.WILLOW_SEEDLING_5359,Items.MAPLE_SEEDLING_5360,Items.YEW_SEEDLING_5361,Items.MAGIC_SEEDLING_5362)
|
||||
private val seedlings = arrayListOf(Items.OAK_SEEDLING_5358,Items.WILLOW_SEEDLING_5359,Items.MAPLE_SEEDLING_5360,Items.YEW_SEEDLING_5361,Items.MAGIC_SEEDLING_5362,Items.APPLE_TREE_SEED_5283,Items.BANANA_TREE_SEED_5284,Items.ORANGE_TREE_SEED_5285,Items.CURRY_TREE_SEED_5286,Items.PINEAPPLE_SEED_5287,Items.PAPAYA_TREE_SEED_5288,Items.PALM_TREE_SEED_5289)
|
||||
|
||||
@Initializable
|
||||
class SeedlingWaterer : UseWithHandler(*cans.toIntArray()) {
|
||||
|
||||
@@ -164,7 +164,7 @@ object UseWithPatchHandler{
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
player.lock()
|
||||
if(player.inventory.remove(plantItem)) {
|
||||
player.animator.animate(Animation(2291))
|
||||
player.pulseManager.run(object : Pulse(3) {
|
||||
@@ -175,6 +175,7 @@ object UseWithPatchHandler{
|
||||
if(p.patch.type == PatchType.TREE || p.patch.type == PatchType.FRUIT_TREE){
|
||||
player.inventory.add(Item(Items.PLANT_POT_5356))
|
||||
}
|
||||
player.unlock()
|
||||
return true
|
||||
}
|
||||
})
|
||||
|
||||
+8
-8
@@ -51,16 +51,16 @@ class BarbFishingPulse(player: Player) : SkillPulse<NPC>(player,NPC(1176)) {
|
||||
val stragiXP = arrayOf(5,6,7)
|
||||
val fishXP = arrayOf(50,70,80)
|
||||
val reward = getRandomFish()
|
||||
val success = rollSuccess(when(reward){
|
||||
Item(11328) -> 48
|
||||
Item(11330) -> 58
|
||||
Item(11332) -> 70
|
||||
val success = rollSuccess(when(reward.id){
|
||||
11328 -> 48
|
||||
11330 -> 58
|
||||
11332 -> 70
|
||||
else -> 99
|
||||
})
|
||||
val index = (when(reward){
|
||||
Item(11328) -> 0
|
||||
Item(11330) -> 1
|
||||
Item(11332) -> 2
|
||||
val index = (when(reward.id){
|
||||
11328 -> 0
|
||||
11330 -> 1
|
||||
11332 -> 2
|
||||
else -> 0
|
||||
})
|
||||
if(success){
|
||||
|
||||
@@ -41,7 +41,8 @@ enum class Pickpockets(val ids: IntArray, val requiredLevel: Int, val low: Doubl
|
||||
WeightedItem(Items.RUSTY_SWORD_686,1,1,3.5),
|
||||
WeightedItem(Items.BROKEN_ARMOUR_698,1,1,3.5),
|
||||
WeightedItem(Items.BROKEN_STAFF_689,1,1,3.2),
|
||||
WeightedItem(Items.BROKEN_ARROW_687,1,1,3.1)
|
||||
WeightedItem(Items.BROKEN_ARROW_687,1,1,3.1),
|
||||
WeightedItem(Items.BUTTONS_688,1,1,3.0)
|
||||
).insertEasyClue(1.0)),
|
||||
FEMALE_HAM_MEMBER(intArrayOf(1715), 15, 135.0, 240.0, 18.5, 1,3,4, WeightBasedTable.create(
|
||||
WeightedItem(Items.COINS_995,1,21,5.5),
|
||||
@@ -67,7 +68,8 @@ enum class Pickpockets(val ids: IntArray, val requiredLevel: Int, val low: Doubl
|
||||
WeightedItem(Items.RUSTY_SWORD_686,1,1,3.5),
|
||||
WeightedItem(Items.BROKEN_ARMOUR_698,1,1,3.5),
|
||||
WeightedItem(Items.BROKEN_STAFF_689,1,1,3.2),
|
||||
WeightedItem(Items.BROKEN_ARROW_687,1,1,3.1)
|
||||
WeightedItem(Items.BROKEN_ARROW_687,1,1,3.1),
|
||||
WeightedItem(Items.BUTTONS_688,1,1,3.0)
|
||||
).insertEasyClue(1.0)),
|
||||
WARRIOR(intArrayOf(15, 18), 25, 84.0, 240.0, 26.0, 2, 2, 5, WeightBasedTable.create(
|
||||
WeightedItem(Items.COINS_995,18,18,1.0,true)
|
||||
|
||||
Reference in New Issue
Block a user