mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Implemented White Wolf Mountain & Ice Queen
This commit is contained in:
parent
1f6b0e900f
commit
d0f24afc2e
7 changed files with 154 additions and 53 deletions
|
|
@ -58954,5 +58954,19 @@
|
|||
"ids": "3672,3673,5168,5169,5170",
|
||||
"description": "Ram",
|
||||
"main": []
|
||||
},
|
||||
{
|
||||
"default": [],
|
||||
"charm": [],
|
||||
"ids": "795",
|
||||
"description": "",
|
||||
"main": [
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "1.0",
|
||||
"id": "1580",
|
||||
"maxAmount": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -8598,20 +8598,21 @@
|
|||
"examine": "A cold hearted lady.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"magic_level": "55",
|
||||
"magic_level": "1",
|
||||
"respawn_delay": "60",
|
||||
"defence_animation": "0",
|
||||
"weakness": "10",
|
||||
"magic_animation": "0",
|
||||
"death_animation": "836",
|
||||
"name": "Ice Queen",
|
||||
"defence_level": "55",
|
||||
"defence_level": "95",
|
||||
"safespot": null,
|
||||
"lifepoints": "157",
|
||||
"strength_level": "55",
|
||||
"lifepoints": "104",
|
||||
"strength_level": "94",
|
||||
"id": "795",
|
||||
"range_level": "55",
|
||||
"attack_level": "55"
|
||||
"bonuses": "0,0,0,0,0,30,40,20,10,30,0,0,0,0,0",
|
||||
"range_level": "1",
|
||||
"attack_level": "95"
|
||||
},
|
||||
{
|
||||
"examine": "He looks cold and hungry.",
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@
|
|||
},
|
||||
{
|
||||
"npc_id": "64",
|
||||
"loc_data": "{2684,9798,0,1,2}-{2959,3917,0,1,0}-{2960,3925,0,1,0}-{2961,3920,0,1,0}-{2962,3915,0,1,0}-{2962,3933,0,1,0}-{2963,3923,0,1,0}-{2963,3929,0,1,0}-{2965,3927,0,1,0}-{2965,3931,0,1,0}-{2691,9814,0,1,5}-{2694,9819,0,1,6}-{2696,9831,0,1,3}-{2702,9837,0,1,6}-{2709,9844,0,1,3}-{2720,9847,0,1,4}-{2724,9843,0,1,6}-{2733,9846,0,1,4}-{2740,9841,0,1,3}-{2745,9836,0,1,4}-{2745,9828,0,1,5}-{2747,9826,0,1,1}-"
|
||||
"loc_data": "{2684,9798,0,1,2}-{2959,3917,0,1,0}-{2960,3925,0,1,0}-{2961,3920,0,1,0}-{2962,3915,0,1,0}-{2962,3933,0,1,0}-{2963,3923,0,1,0}-{2963,3929,0,1,0}-{2965,3927,0,1,0}-{2965,3931,0,1,0}-{2691,9814,0,1,5}-{2694,9819,0,1,6}-{2696,9831,0,1,3}-{2702,9837,0,1,6}-{2709,9844,0,1,3}-{2720,9847,0,1,4}-{2724,9843,0,1,6}-{2733,9846,0,1,4}-{2740,9841,0,1,3}-{2745,9836,0,1,4}-{2745,9828,0,1,5}-{2747,9826,0,1,1}-{2819,9950,0,1,0}-{2824,9934,0,1,0}-{2827,9925,0,1,0}-{2828,9956,0,1,0}-{2857,9969,0,1,0}-{2872,9972,0,1,0}-{2869,9912,0,1,0}-{2885,9962,0,1,0}-{2887,9936,0,1,0}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "66",
|
||||
|
|
@ -369,7 +369,7 @@
|
|||
},
|
||||
{
|
||||
"npc_id": "111",
|
||||
"loc_data": "{2920,3800,0,1,3}-{2952,3902,0,1,6}-{2953,3889,0,1,6}-{2947,3921,0,1,6}-{3043,9581,0,1,1}-{3055,9577,0,1,6}-{3061,9576,0,1,4}-{3055,9571,0,1,7}-{3052,9566,0,1,6}-"
|
||||
"loc_data": "{2811,3506,0,1,0}-{2883,9932,0,1,0}-{2883,9965,0,1,0}-{2920,3800,0,1,3}-{2952,3902,0,1,6}-{2953,3889,0,1,6}-{2947,3921,0,1,6}-{3043,9581,0,1,1}-{3055,9577,0,1,6}-{3061,9576,0,1,4}-{3055,9571,0,1,7}-{3052,9566,0,1,6}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "112",
|
||||
|
|
@ -417,7 +417,7 @@
|
|||
},
|
||||
{
|
||||
"npc_id": "125",
|
||||
"loc_data": "{2845,3517,0,1,4}-{2848,3515,0,1,4}-{2958,3867,0,1,3}-{2956,3857,0,1,6}-{2952,3862,0,1,3}-{2949,3858,0,1,4}-{2955,3875,0,1,7}-{2954,3874,0,1,5}-{2962,3876,0,1,1}-{2961,3877,0,1,3}-{2947,3878,0,1,6}-{2959,3884,0,1,4}-{2956,3885,0,1,3}-{2956,3886,0,1,3}-{2948,3886,0,1,1}-{2947,3934,0,1,0}-{2948,3917,0,1,0}-{2949,3926,0,1,0}-{2952,3913,0,1,0}-{2952,3936,0,1,0}-{2954,3921,0,1,0}-{2956,3930,0,1,0}-{2964,3944,0,1,0}-{2970,3947,0,1,0}-{2971,3938,0,1,0}-{2977,3953,0,1,0}-{2978,3942,0,1,0}-{2984,3933,0,1,0}-{3227,5443,0,1,5}-{3220,5448,0,1,5}-{3208,5443,0,1,6}-{3207,5448,0,1,4}-{3050,9570,0,1,3}-{3043,9579,0,1,2}-{3056,9585,0,1,0}-{3058,9575,0,1,1}-{3052,9582,0,1,0}-{3049,9577,0,1,4}-{3042,9586,0,1,6}-{3052,9588,0,1,1}-{3049,9590,0,1,5}-{3060,9578,0,1,3}-{3054,9566,0,1,7}-"
|
||||
"loc_data": "{2845,3517,0,1,4}-{2848,3515,0,1,4}-{2958,3867,0,1,3}-{2956,3857,0,1,6}-{2952,3862,0,1,3}-{2949,3858,0,1,4}-{2955,3875,0,1,7}-{2954,3874,0,1,5}-{2962,3876,0,1,1}-{2961,3877,0,1,3}-{2947,3878,0,1,6}-{2959,3884,0,1,4}-{2956,3885,0,1,3}-{2956,3886,0,1,3}-{2948,3886,0,1,1}-{2947,3934,0,1,0}-{2948,3917,0,1,0}-{2949,3926,0,1,0}-{2952,3913,0,1,0}-{2952,3936,0,1,0}-{2954,3921,0,1,0}-{2956,3930,0,1,0}-{2964,3944,0,1,0}-{2970,3947,0,1,0}-{2971,3938,0,1,0}-{2977,3953,0,1,0}-{2978,3942,0,1,0}-{2984,3933,0,1,0}-{3227,5443,0,1,5}-{3220,5448,0,1,5}-{3208,5443,0,1,6}-{3207,5448,0,1,4}-{3050,9570,0,1,3}-{3043,9579,0,1,2}-{3056,9585,0,1,0}-{3058,9575,0,1,1}-{3052,9582,0,1,0}-{3049,9577,0,1,4}-{3042,9586,0,1,6}-{3052,9588,0,1,1}-{3049,9590,0,1,5}-{3060,9578,0,1,3}-{3054,9566,0,1,7}-{2834,9940,0,1,0}-{2836,9953,0,1,0}-{2844,9944,0,1,0}-{2822,9901,0,1,0}-{2836,9905,0,1,0}-{2838,9917,0,1,0}-{2847,9919,0,1,0}-{2848,9912,0,1,0}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "126",
|
||||
|
|
@ -471,6 +471,10 @@
|
|||
"npc_id": "144",
|
||||
"loc_data": "{2842,3298,0,1,6}-{2844,3291,0,1,6}-{2851,3298,0,1,4}-{2855,3303,0,1,4}-{2859,3283,0,1,1}-{2861,3295,0,1,5}-{3075,3848,0,1,0}-{3090,3841,0,1,0}-{3070,3829,0,1,0}-{3070,3836,0,1,0}-{3040,9775,0,1,4}-{3048,9770,0,1,1}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "145",
|
||||
"loc_data": "{2864,9950,0,1,0}-{2865,9951,0,1,0}-{2866,9948,0,1,0}-{2867,9948,0,1,0}-{2867,9951,0,1,0}-{2868,9950,0,1,0}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "146",
|
||||
"loc_data": "{2827,3139,0,1,0}-{2896,2992,0,1,7}-{2976,3053,0,1,0}-{2985,3038,0,1,0}-{2994,3048,0,1,5}-{2992,3030,0,1,0}-"
|
||||
|
|
@ -2219,6 +2223,10 @@
|
|||
"npc_id": "794",
|
||||
"loc_data": "{2793,3191,0,1,3}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "795",
|
||||
"loc_data": "{2866,9956,0,1,6}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "796",
|
||||
"loc_data": "{2903,3511,0,1,3}-"
|
||||
|
|
@ -7821,11 +7829,11 @@
|
|||
},
|
||||
{
|
||||
"npc_id": "4685",
|
||||
"loc_data": "{3209,5552,0,1,1}-{3223,5555,0,1,4}-{3220,5548,0,1,6}-{3220,5557,0,1,4}-"
|
||||
"loc_data": "{2817,3514,0,1,0}-{2884,9959,0,1,0}-{2890,9950,0,1,0}-{3209,5552,0,1,1}-{3223,5555,0,1,4}-{3220,5548,0,1,6}-{3220,5557,0,1,4}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "4686",
|
||||
"loc_data": "{2827,3512,0,1,5}-{2954,3894,0,1,4}-{2950,3932,0,1,0}-{2955,3945,0,1,0}-{3213,5548,0,1,4}-"
|
||||
"loc_data": "{2804,3507,0,1,0}-{2880,9927,0,1,0}-{2887,9955,0,1,0}-{2891,9941,0,1,0}-{2824,3510,0,1,5}-{2954,3894,0,1,4}-{2950,3932,0,1,0}-{2955,3945,0,1,0}-{3213,5548,0,1,4}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "4687",
|
||||
|
|
@ -9857,11 +9865,11 @@
|
|||
},
|
||||
{
|
||||
"npc_id": "6046",
|
||||
"loc_data": "{2835,3509,0,0,1}-{3306,5510,0,1,5}-{3309,5543,0,1,6}-"
|
||||
"loc_data": "{2835,3509,0,1,1}-{3306,5510,0,1,5}-{3309,5543,0,1,6}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "6047",
|
||||
"loc_data": "{2839,3497,0,1,6}-{2840,3504,0,1,4}-"
|
||||
"loc_data": "{2836,3495,0,1,0}-{2837,3499,0,1,0}-{2839,3502,0,1,0}-{2839,3506,0,1,0}-{2842,3504,0,1,0}-{2844,3507,0,1,0}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "6050",
|
||||
|
|
@ -10951,6 +10959,10 @@
|
|||
"npc_id": "7004",
|
||||
"loc_data": "{2581,9891,0,1,2}-{3225,5495,0,1,4}-{3256,5540,0,1,4}-{3247,5536,0,1,6}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "7005",
|
||||
"loc_data": "{2487,2924,0,1,0}-"
|
||||
},
|
||||
{
|
||||
"npc_id": "7009",
|
||||
"loc_data": "{3282,3467,0,0,0}-"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
package content.region.asgarnia.whitewolfmountain
|
||||
|
||||
import content.data.skill.SkillingTool
|
||||
import core.api.*
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.interaction.QueueStrength
|
||||
import core.game.node.entity.skill.Skills
|
||||
import org.rs09.consts.Scenery
|
||||
|
||||
class WhiteWolfMountainListener : InteractionListener {
|
||||
override fun defineListeners() {
|
||||
|
||||
on(Scenery.ROCK_SLIDE_2634, SCENERY, "investigate") { player, node ->
|
||||
// dtWpLjw4X0A
|
||||
sendMessage(player, "These rocks contain nothing interesting.")
|
||||
sendMessage(player, "They are just in the way.")
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(Scenery.ROCK_SLIDE_2634, SCENERY, "mine") { player, node ->
|
||||
val pickaxe = SkillingTool.getPickaxe(player)
|
||||
val rockScenery = node as core.game.node.scenery.Scenery
|
||||
if (getDynLevel(player, Skills.MINING) < 50) {
|
||||
sendMessage(player, "You need a mining level of 50 to mine this rock slide.")
|
||||
return@on true
|
||||
}
|
||||
if (pickaxe == null) {
|
||||
sendMessage(player, "You do not have a pickaxe to use.")
|
||||
return@on true
|
||||
}
|
||||
animate(player, pickaxe.animation)
|
||||
lock(player, 6)
|
||||
queueScript(player, 0, QueueStrength.SOFT) { stage: Int ->
|
||||
when (stage) {
|
||||
// Scenery.ROCKSLIDE_471 is the original rock.
|
||||
0 -> {
|
||||
replaceScenery(rockScenery, Scenery.ROCKSLIDE_472, 2)
|
||||
return@queueScript delayScript(player, 2)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
replaceScenery(rockScenery, Scenery.ROCKSLIDE_473, 2)
|
||||
return@queueScript delayScript(player, 2)
|
||||
}
|
||||
|
||||
2 -> {
|
||||
replaceScenery(rockScenery, 476, 2)
|
||||
player.walkingQueue.reset()
|
||||
if (player.location.x < 2839) {
|
||||
player.walkingQueue.addPath(2840, 3517)
|
||||
} else {
|
||||
player.walkingQueue.addPath(2837, 3518)
|
||||
}
|
||||
return@queueScript delayScript(player, 2)
|
||||
}
|
||||
|
||||
else -> return@queueScript stopExecuting(player)
|
||||
}
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,59 +1,63 @@
|
|||
package content.region.misc.entrana.dialogue
|
||||
|
||||
import core.api.addItemOrDrop
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import core.tools.START_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
/**
|
||||
* @author qmqz
|
||||
*/
|
||||
|
||||
@Initializable
|
||||
class HighPriestEntranaDialogue(player: Player? = null) : DialoguePlugin(player){
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
|
||||
if (!player.questRepository.isComplete("Heroes' Quest")) {
|
||||
npc(FacialExpression.FRIENDLY, "Many greetings. Welcome to our fair island.").also { stage = 10 }
|
||||
} else {
|
||||
options("Have you seen a pair of ice gloves?", "Ask about Entrana").also { stage = 5 }
|
||||
}
|
||||
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when(stage){
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "and devoted the island to those who wish peace for the world.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "The inhabitants of this island are mostly monks who spend their time meditating on Saradomin's ways.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Of course, there are now more pilgrims to this holy site, since Saradomin defeated Zamorak in the battle of Lumbridge. It is good that so many see Saradomin's true glory!").also { stage = 99 }
|
||||
|
||||
5 -> when (buttonId) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "By which you mean the pair of mythical gloves you stole from the cold dead body of the Queen of the Ice?").also { stage = 20 }
|
||||
2 -> npcl(FacialExpression.FRIENDLY,"You are standing on the holy island of Entrana. It was here that Saradomin first stepped upon Gielinor. In homage to Saradomin's first arrival, we have built a great church,").also { stage = 1 }
|
||||
// Ice gloves were NOT reclaimable till 2017.
|
||||
START_DIALOGUE -> npcl(FacialExpression.FRIENDLY, "Many greetings. Welcome to our fair island.").also {
|
||||
if (inInventory(player, Items.SILVER_POT_4658) ||
|
||||
inInventory(player, Items.SILVER_POT_4660) ||
|
||||
inInventory(player, Items.SILVER_POT_4662) ||
|
||||
inInventory(player, Items.SILVER_POT_4664) ||
|
||||
inInventory(player, Items.SILVER_POT_4666)) {
|
||||
stage = 6
|
||||
} else {
|
||||
stage = 1
|
||||
}
|
||||
}
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "You are standing on the holy island of Entrana. It was here that Saradomin first stepped upon Gielinor.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "In homage to Saradomin's first arrival, we have built a great church, and devoted the island to those who wish peace for the world.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "The inhabitants of this island are mostly monks who spend their time meditating on Saradomin's ways.").also { stage++ }
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "Of course, there are now more pilgrims to this holy site, since Saradomin defeated Zamorak in the battle of Lumbridge.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "It is good that so many see Saradomin's true glory!").also { stage = END_DIALOGUE }
|
||||
|
||||
10 -> npc(FacialExpression.FRIENDLY, "Enjoy our stay here. May it be spiritually uplifting!").also { stage = 99 }
|
||||
|
||||
20 -> player(FacialExpression.SUSPICIOUS, "Er...").also { stage++ }
|
||||
21 -> npcl(FacialExpression.ANNOYED, "The gloves that you acquired to aid you in plucking the Entranan firebird? Another victim of your murderous nature, I should add.").also { stage++ }
|
||||
22 -> npcl(FacialExpression.ANNOYED, "The ice gloves that, from context, I would assume you have lost, if not carelessly discarded?").also { stage++ }
|
||||
|
||||
23 -> player(FacialExpression.FRIENDLY, "Those ice gloves, yes.").also { stage++ }
|
||||
24 -> sendDialogue("The high priest of Entrana shivers as he hands you your lost ice gloves.").also {
|
||||
addItemOrDrop(player, Items.ICE_GLOVES_1580, 1)
|
||||
stage++
|
||||
6 -> playerl(FacialExpression.FRIENDLY, "Hi, I was wondering, can you quickly bless this for me?").also { stage++ }
|
||||
7 -> npc(FacialExpression.FRIENDLY, "A somewhat strange request, but I see no harm in it.", "There you go.", "May Saradomin walk with you.").also {
|
||||
if (inInventory(player, Items.SILVER_POT_4658)) {
|
||||
if (removeItem(player, Items.SILVER_POT_4658)) {
|
||||
addItemOrDrop(player, Items.BLESSED_POT_4659)
|
||||
}
|
||||
} else if (inInventory(player, Items.SILVER_POT_4660)) {
|
||||
if (removeItem(player, Items.SILVER_POT_4660)) {
|
||||
addItemOrDrop(player, Items.BLESSED_POT_4661)
|
||||
}
|
||||
} else if (inInventory(player, Items.SILVER_POT_4662)) {
|
||||
if (removeItem(player, Items.SILVER_POT_4662)) {
|
||||
addItemOrDrop(player, Items.BLESSED_POT_4663)
|
||||
}
|
||||
} else if (inInventory(player, Items.SILVER_POT_4664)) {
|
||||
if (removeItem(player, Items.SILVER_POT_4664)) {
|
||||
addItemOrDrop(player, Items.BLESSED_POT_4665)
|
||||
}
|
||||
} else if (inInventory(player, Items.SILVER_POT_4666)) {
|
||||
if (removeItem(player, Items.SILVER_POT_4666)) {
|
||||
addItemOrDrop(player, Items.BLESSED_POT_4667)
|
||||
}
|
||||
}
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
25 -> npcl(FacialExpression.ANNOYED, "One of my monks found these gloves. If only to spare this world from further carnage, I return them to you.").also { stage = 99 }
|
||||
|
||||
99 -> end()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
@ -65,4 +69,4 @@ class HighPriestEntranaDialogue(player: Player? = null) : DialoguePlugin(player)
|
|||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.HIGH_PRIEST_216)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -59,6 +59,9 @@ public enum SpecialLadders implements LadderAchievementCheck {
|
|||
CASTLEWARS_ZAMORAK_OUTERWALL_STAIRS_UP(Location.create(2382, 3130, 0), Location.create(2383, 3132, 0)),
|
||||
CASTLEWARS_ZAMOUTER_WALL_STAIRS_DOWN(Location.create(2382, 3132, 0), Location.create(2382, 3129, 0)),
|
||||
|
||||
WHITE_WOLF_MOUNTAIN_FAKE_LADDER_1_UP(Location.create(2837, 9927, 0), Location.create(2837, 3527, 0)),
|
||||
WHITE_WOLF_MOUNTAIN_FAKE_LADDER_2_UP(Location.create(2823, 9930, 0), Location.create(2823, 3529, 0)),
|
||||
|
||||
PORT_SARIM_RAT_PITS_DOWN(new Location(3018,3232,0), new Location(2962,9650,0)) {
|
||||
@Override
|
||||
public void checkAchievement(Player player) {
|
||||
|
|
|
|||
|
|
@ -85,6 +85,9 @@ public final class MultiwayCombatZone extends MapZone {
|
|||
register(new ZoneBorders(3097, 4224, 3225, 4317));
|
||||
register(new ZoneBorders(3116, 5412, 3362, 5584));
|
||||
register(new ZoneBorders(3078, 5520, 3123, 5552, 0));
|
||||
// Ice queen
|
||||
register(new ZoneBorders(2855, 9928, 2880, 9968));
|
||||
registerRegion(11318); //White wolf mountain
|
||||
registerRegion(11844); //Corporeal beast
|
||||
registerRegion(10329);//TDS
|
||||
registerRegion(13370);//Venenatis
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue