diff --git a/maps/m40_60.jm2 b/maps/m40_60.jm2 index bbd350978b..537de775b0 100644 --- a/maps/m40_60.jm2 +++ b/maps/m40_60.jm2 @@ -7462,5 +7462,5 @@ 0 54 43: 1364 0 55 59: 1361 0 57 57: 1401 -0 60 55: 1360 +0 61 55: 1360 1 52 37: 1359 diff --git a/scripts/areas/area_miscellania/configs/miscellania.constant b/scripts/areas/area_miscellania/configs/miscellania.constant new file mode 100644 index 0000000000..f3b8084440 --- /dev/null +++ b/scripts/areas/area_miscellania/configs/miscellania.constant @@ -0,0 +1,2 @@ +^to_miscellania_tele_coord = 0_40_60_20_5 +^from_miscellania_tele_coord = 0_41_57_5_44 \ No newline at end of file diff --git a/scripts/areas/area_miscellania/scripts/etc_fish_monger.rs2 b/scripts/areas/area_miscellania/scripts/etc_fish_monger.rs2 new file mode 100644 index 0000000000..0461dbb74d --- /dev/null +++ b/scripts/areas/area_miscellania/scripts/etc_fish_monger.rs2 @@ -0,0 +1,6 @@ +[opnpc1,etc_fish_monger] +~chatnpc("Welcome <~get_viking_name>. My fish is fresher than any in Miscellania!"); +~openshop_activenpc; + +[opnpc3,etc_fish_monger] +~openshop_activenpc; \ No newline at end of file diff --git a/scripts/areas/area_miscellania/scripts/etc_veg_monger.rs2 b/scripts/areas/area_miscellania/scripts/etc_veg_monger.rs2 new file mode 100644 index 0000000000..5eb955786f --- /dev/null +++ b/scripts/areas/area_miscellania/scripts/etc_veg_monger.rs2 @@ -0,0 +1,6 @@ +[opnpc1,etc_veg_monger] +~chatnpc("Hello <~get_viking_name>. You've come to the right place for yer greens!"); +~openshop_activenpc; + +[opnpc3,etc_veg_monger] +~openshop_activenpc; \ No newline at end of file diff --git a/scripts/areas/area_miscellania/scripts/fisherman_frodi.rs2 b/scripts/areas/area_miscellania/scripts/fisherman_frodi.rs2 index cb5bdd6ec0..437d3ffee0 100644 --- a/scripts/areas/area_miscellania/scripts/fisherman_frodi.rs2 +++ b/scripts/areas/area_miscellania/scripts/fisherman_frodi.rs2 @@ -24,10 +24,11 @@ if (%misc_quest = ^misc_complete) { [proc,frodi_intercept_fish](string $fishing_mes)(boolean) if (inzone(^miscellania_lower_bound, ^miscellania_upper_bound, coord) = true) { if (%misc_approval < 127) { %misc_approval = add(%misc_approval, 1); } - if (npc_find(0_40_60_16_12, misc_fisherman, 2, 0) = true) { - npc_say("Thanks!"); + // Secondary pointer, because if primary, it overrides fishing pointers. + if (.npc_find(0_40_60_16_12, misc_fisherman, 2, 0) = true) { + .npc_say("Thanks!"); if (%misc_approval >= 127) { - ~chatnpcnoturn(" Don't trouble yourself further, Your Highness, you've already done so much!"); + ~.chatnpcnoturn(" Don't trouble yourself further, Your Highness, you've already done so much!"); } } mes(" and give it to Fisherman Frodi."); diff --git a/scripts/areas/area_miscellania/scripts/flower_girl.rs2 b/scripts/areas/area_miscellania/scripts/flower_girl.rs2 index 68ca68532d..d47977b99a 100644 --- a/scripts/areas/area_miscellania/scripts/flower_girl.rs2 +++ b/scripts/areas/area_miscellania/scripts/flower_girl.rs2 @@ -21,6 +21,7 @@ if (inv_total(inv, coins) >= 15) { if (inv_total(inv, coins) >= 15) { inv_del(inv, coins, 15); inv_add(inv, flowers_waterfall_quest_mixed, 1); + if (%misc_approval < 127) { %misc_approval = add(%misc_approval, 1); } } [label,flower_girl_no_thanks] diff --git a/scripts/areas/area_miscellania/scripts/miner_magnus.rs2 b/scripts/areas/area_miscellania/scripts/miner_magnus.rs2 index 84627297db..d0eadf3e4a 100644 --- a/scripts/areas/area_miscellania/scripts/miner_magnus.rs2 +++ b/scripts/areas/area_miscellania/scripts/miner_magnus.rs2 @@ -22,6 +22,9 @@ if (%misc_quest = ^misc_complete) { [oploc1,misc_dummy_coalrock1] // https://www.youtube.com/watch?v=CB18DoDgCbQ mes("Miner Magnus is already mining that."); +[oploc2,misc_dummy_coalrock1] +@prospect_rock(finish_prospect_normal); + // This is to intercept mining in miscellania [proc,magnus_intercept_ore](string $fishing_mes, int $exp)(boolean) if (inzone(^miscellania_lower_bound, ^miscellania_upper_bound, coord) = true) { diff --git a/scripts/areas/area_miscellania/scripts/misc_banker.rs2 b/scripts/areas/area_miscellania/scripts/misc_banker.rs2 new file mode 100644 index 0000000000..a049e76f2f --- /dev/null +++ b/scripts/areas/area_miscellania/scripts/misc_banker.rs2 @@ -0,0 +1,29 @@ +[apnpc1,misc_banker] +if (npc_range(coord) > 2) { + p_aprange(2); + return; +} +~chatnpc("Hi there, can I help you with anything?"); +def_int $option = ~p_choice3("Is this a bank?", 1, "Do you get many customers?", 2, "I'd like to access my bank, please.", 3); +switch_int ($option) { + case 1 : + ~chatplayer("Is this a bank?"); + ~chatnpc("Why yes, what else would it be?"); + ~chatnpc("Anything else?"); + + case 2 : + ~chatplayer("Do you get many customers?"); + ~chatnpc("We're the only bank on these two islands, so business is pretty good."); + ~chatnpc("Anything else?"); + + case 3 : + ~chatplayer("I'd like to access my bank, please."); + @openbank; +} + +[apnpc3,misc_banker] +if (npc_range(coord) > 2) { + p_aprange(2); + return; +} +@openbank; \ No newline at end of file diff --git a/scripts/areas/area_miscellania/scripts/misc_fish_monger.rs2 b/scripts/areas/area_miscellania/scripts/misc_fish_monger.rs2 index 5e3d4ce08c..5d1edcc9b7 100644 --- a/scripts/areas/area_miscellania/scripts/misc_fish_monger.rs2 +++ b/scripts/areas/area_miscellania/scripts/misc_fish_monger.rs2 @@ -1,4 +1,7 @@ [opnpc1,misc_fish_monger] ~chatnpc("Greetings, Sir. Get your fresh fish here!"); ~chatnpc("I've heard that the Etceterian fish is stored in a cow shed."); +~openshop_activenpc; + +[opnpc3,misc_fish_monger] ~openshop_activenpc; \ No newline at end of file diff --git a/scripts/areas/area_miscellania/scripts/misc_sailor.rs2 b/scripts/areas/area_miscellania/scripts/misc_sailor.rs2 new file mode 100644 index 0000000000..721f5d28c1 --- /dev/null +++ b/scripts/areas/area_miscellania/scripts/misc_sailor.rs2 @@ -0,0 +1,19 @@ +[opnpc1,misc_sailor] + ~chatplayer("Hello. Can I get a ride on your ship?"); + ~chatnpc("Hello again, <~get_viking_name>. If you're ready to jump aboard, we're all ready to set sail with the tide!"); + def_int $choice = ~p_choice2("Let's go!", 1, "Actually, no.", 2); + if ($choice = 2) { + ~chatplayer("Actually, no."); + ~chatnpc("Okay. Suit yourself."); + return; + } + ~chatplayer("Let's go!"); + if_openmain(misc_shipjourney); + if_setanim(misc_shipjourney:com_6, misc_shipjourney_to_rellekka); + ~music_jingle("sailing journey"); + mes("You board the longship..."); + + p_telejump(^from_miscellania_tele_coord); + p_delay(8); + if_close; + ~mesbox("The ship arrives at Rellekka."); \ No newline at end of file diff --git a/scripts/areas/area_miscellania/scripts/misc_veg_monger.rs2 b/scripts/areas/area_miscellania/scripts/misc_veg_monger.rs2 index 43e56c4671..877b682e8f 100644 --- a/scripts/areas/area_miscellania/scripts/misc_veg_monger.rs2 +++ b/scripts/areas/area_miscellania/scripts/misc_veg_monger.rs2 @@ -1,3 +1,6 @@ [opnpc1,misc_veg_monger] ~chatnpc("Welcome, Sir. I sell only the finest and freshest vegetables!"); +~openshop_activenpc; + +[opnpc3,misc_veg_monger] ~openshop_activenpc; \ No newline at end of file diff --git a/scripts/minigames/game_managing_miscellania/scripts/ghrims_book.rs2 b/scripts/minigames/game_managing_miscellania/scripts/ghrims_book.rs2 index df2dce3dea..a440f81945 100644 --- a/scripts/minigames/game_managing_miscellania/scripts/ghrims_book.rs2 +++ b/scripts/minigames/game_managing_miscellania/scripts/ghrims_book.rs2 @@ -3,6 +3,16 @@ %open_book = misc_ghrimbook; @open_misc_ghrimbook; +[oploc1,misc_bookcase] +mes("You search the bookcase..."); +p_delay(3); +if(inv_total(inv, misc_ghrimbook) > 0 ) { + mes("You find nothing of interest."); + return; +} +inv_add(inv, misc_ghrimbook, 1); +mes("You find a copy of Advisor Ghrim's book."); // Inauthentic, the new one talks about editions, which doesn't exist when it was only one quest. + [label,open_misc_ghrimbook] @book_flip_page(0, 0, 5, ghrims_book); diff --git a/scripts/quests/quest_misc/scripts/misc_journal.rs2 b/scripts/quests/quest_misc/scripts/misc_journal.rs2 index 5743eaf733..16537872d1 100644 --- a/scripts/quests/quest_misc/scripts/misc_journal.rs2 +++ b/scripts/quests/quest_misc/scripts/misc_journal.rs2 @@ -7,9 +7,9 @@ if(%misc_quest = 0) { $x = append($x, "@dbl@I can start this quest by talking to @dre@King Vargas@dbl@ in|"); $x = append($x, "@dre@Miscellania@dbl@. To start this quest I need to have completed:|"); if(%heroquest >= ^hero_complete) { - $x = append($x, "@dre@Heroes Quest|"); + $x = append($x, "@dre@Hero's Quest|"); } else { - $x = append($x, "@str@Heroes Quest|"); + $x = append($x, "@str@Hero's Quest|"); } if (%viking < ^viking_complete) { $x = append($x, "@dre@The Fremennik Trials|"); diff --git a/scripts/quests/quest_viking/scripts/viking_sailor.rs2 b/scripts/quests/quest_viking/scripts/viking_sailor.rs2 index f8bc1f8395..0317de2e5e 100644 --- a/scripts/quests/quest_viking/scripts/viking_sailor.rs2 +++ b/scripts/quests/quest_viking/scripts/viking_sailor.rs2 @@ -14,7 +14,24 @@ if(%viking = ^viking_not_started) { } else if(%viking = ^viking_complete) { // total guess... changes with miscellania ~chatplayer("Hello. Can I get a ride on your ship?"); - ~chatnpc("Hello again, <~get_viking_name>. I still need to fix this longboat."); + //~chatnpc("Hello again, <~get_viking_name>. I still need to fix this longboat."); + ~chatnpc("Hello again, <~get_viking_name>. If you're ready to jump aboard, we're all ready to set sail with the tide!"); + def_int $choice = ~p_choice2("Let's go!", 1, "Actually, no.", 2); + if ($choice = 2) { + ~chatplayer("Actually, no."); + ~chatnpc("Okay. Suit yourself."); + return; + } + ~chatplayer("Let's go!"); + if_openmain(misc_shipjourney); + if_setanim(misc_shipjourney:com_6, misc_shipjourney_to_misc); + ~music_jingle("sailing journey"); + mes("You board the longship..."); + + p_telejump(^to_miscellania_tele_coord); + p_delay(8); + if_close; + ~mesbox("The ship arrives at Miscellania."); } [label,viking_sailor_merchant] diff --git a/scripts/skill_mining/configs/mine.dbrow b/scripts/skill_mining/configs/mine.dbrow index bea7bb6283..586253e9f5 100644 --- a/scripts/skill_mining/configs/mine.dbrow +++ b/scripts/skill_mining/configs/mine.dbrow @@ -65,6 +65,7 @@ data=rock,coalrock1 data=rock,coalrock2 data=rock,macro_coalrock1 data=rock,macro_coalrock2 +data=rock,misc_dummy_coalrock1 data=ore_name,coal data=rock_output,coal data=rock_level,30 diff --git a/scripts/skill_woodcutting/scripts/woodcut.rs2 b/scripts/skill_woodcutting/scripts/woodcut.rs2 index 24c5d9ddc6..a3ac8eca6c 100644 --- a/scripts/skill_woodcutting/scripts/woodcut.rs2 +++ b/scripts/skill_woodcutting/scripts/woodcut.rs2 @@ -129,10 +129,13 @@ if ($respawnrate = 0) { } if (stat_random(woodcutting, $tree_chance_low, $tree_chance_high) = true) { def_namedobj $product = db_getfield($data, woodcutting_trees:product, 0); - if (~leif_intercept_wood("You get some .", db_getfield($data, woodcutting_trees:productexp, 0)) = true) { return; } // Intercept for Miscellania, you don't get the wood. - mes("You get some ."); - stat_advance(woodcutting, db_getfield($data, woodcutting_trees:productexp, 0)); - inv_add(inv, $product, 1); + if (~leif_intercept_wood("You get some .", db_getfield($data, woodcutting_trees:productexp, 0)) = true) { + // Intercept for Miscellania, you don't get the wood. + } else { + mes("You get some ."); + stat_advance(woodcutting, db_getfield($data, woodcutting_trees:productexp, 0)); + inv_add(inv, $product, 1); + } if (random($deplete_chance) = 0) { $respawnrate = ~scale_by_playercount($respawnrate); loc_change(loc_param(next_loc_stage), $respawnrate);