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(" 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, 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, 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