summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf1
-rw-r--r--db/re/item_db.conf23
-rw-r--r--npc/009-2/librarian.txt12
-rw-r--r--npc/012-2/GonzoDark.txt2
-rw-r--r--npc/012-2/Saulc.txt2
-rw-r--r--npc/012-2/_import.txt1
-rw-r--r--npc/012-2/door.txt4
-rw-r--r--npc/012-2/rakinorf.txt162
-rw-r--r--npc/012-7/airlia.txt25
9 files changed, 204 insertions, 28 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 6b017886a..d878ba5be 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -4019,6 +4019,7 @@ constants_db: {
NPC_BRGUARD_SWORD: 306
NPC_JOURNALMAN: 309
NPC_FISHERMAN_HALI: 311
+ NPC_ANSELMO_BR: 315
NPC_FAIRY_A: 316
NPC_FAIRY_B: 317
NPC_FAIRY_C: 318
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 311954496..0b694e8dd 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -6230,7 +6230,7 @@ item_db: (
Weight: 1
Def: 100
Loc: "EQP_HEAD_MID"
- EquipLv: 70
+ EquipLv: 64
Refine: true
ViewSprite: 1328
Script: <"
@@ -7641,6 +7641,7 @@ item_db: (
id5036: 1
}
},
+// Shields
{
Id: 2700
AegisName: "Barrel"
@@ -7651,7 +7652,7 @@ item_db: (
Weight: 400
Def: 100
Loc: "EQP_HAND_L"
- EquipLv: 5
+ EquipLv: 4
Refine: false
ViewSprite: 2700
Script: <"
@@ -7669,7 +7670,7 @@ item_db: (
Weight: 410
Def: 50
Loc: "EQP_HAND_L"
- EquipLv: 15
+ EquipLv: 20
Refine: false
ViewSprite: 2701
Script: <"
@@ -7688,7 +7689,7 @@ item_db: (
Weight: 1980
Def: 85
Loc: "EQP_HAND_L"
- EquipLv: 31
+ EquipLv: 43
Refine: false
ViewSprite: 2702
Script: <"
@@ -7707,7 +7708,7 @@ item_db: (
Weight: 2400
Def: 172
Loc: "EQP_HAND_L"
- EquipLv: 66
+ EquipLv: 70
Refine: false
ViewSprite: 2703
Script: <"
@@ -7745,7 +7746,7 @@ item_db: (
Weight: 2710
Def: 250
Loc: "EQP_HAND_L"
- EquipLv: 92
+ EquipLv: 102
Refine: false
ViewSprite: 2705
Script: <"
@@ -7783,7 +7784,7 @@ item_db: (
Weight: 90
Def: 35
Loc: "EQP_HAND_L"
- EquipLv: 3
+ EquipLv: 10
Refine: false
ViewSprite: 2707
Script: <"
@@ -7820,7 +7821,7 @@ item_db: (
Weight: 2360
Def: 105
Loc: "EQP_HAND_L"
- EquipLv: 39
+ EquipLv: 44
Refine: false
ViewSprite: 2709
Script: <"
@@ -7839,7 +7840,7 @@ item_db: (
Weight: 1650
Def: 72
Loc: "EQP_HAND_L"
- EquipLv: 24
+ EquipLv: 30
Refine: false
ViewSprite: 2710
Script: <"
@@ -7858,7 +7859,7 @@ item_db: (
Weight: 2500
Def: 200
Loc: "EQP_HAND_L"
- EquipLv: 76
+ EquipLv: 80
Refine: false
ViewSprite: 2711
Script: <"
@@ -7877,7 +7878,7 @@ item_db: (
Weight: 2500
Def: 200
Loc: "EQP_HAND_L"
- EquipLv: 76
+ EquipLv: 92
Refine: false
ViewSprite: 2712
Script: <"
diff --git a/npc/009-2/librarian.txt b/npc/009-2/librarian.txt
index 2c07ad585..f743ee382 100644
--- a/npc/009-2/librarian.txt
+++ b/npc/009-2/librarian.txt
@@ -7,12 +7,12 @@
009-2,67,60,2 script Book Keeper NPC_FEMALE,{
.@n = getq(General_Narrator);
- if (.@n == 6) mesn;
- if (.@n == 6) mesc l("Anyway, I think you should go to Hurnscald Townhall again, and speak with the mayor.");
- if (.@n == 6) next;
- if (.@n >= 6) goto L_Complete;
- if (.@n == 5) goto L_Report;
- if (.@n == 4) goto L_Advance;
+ if (.@n == 8) mesn;
+ if (.@n == 8) mesc l("Anyway, I think you should go to Hurnscald Townhall again, and speak with the mayor.");
+ if (.@n == 8) next;
+ if (.@n >= 8) goto L_Complete;
+ if (.@n == 7) goto L_Report;
+ if (.@n == 6) goto L_Advance;
mesn;
mesq l("Hello. I am the book keeper, responsible for keeping Halinarzo History.");
// TODO: Import data from BR-002-5 (Royal Library) and make available story about TMW-BR
diff --git a/npc/012-2/GonzoDark.txt b/npc/012-2/GonzoDark.txt
index 6cc84c872..f5e65314f 100644
--- a/npc/012-2/GonzoDark.txt
+++ b/npc/012-2/GonzoDark.txt
@@ -42,7 +42,7 @@ L_Finish:
setq1 SQuest_Sponsor, .@q | .questID;
mes "";
mesn;
- mesq l("Many thanks! Come back later to bring me extra @@!", getitemlink(RedScorpionStinger));
+ mesq l("Many thanks! Come back later to bring me extra @@!", getitemlink(.itemID));
close;
L_Where:
diff --git a/npc/012-2/Saulc.txt b/npc/012-2/Saulc.txt
index 888d0fa4d..e4f790475 100644
--- a/npc/012-2/Saulc.txt
+++ b/npc/012-2/Saulc.txt
@@ -42,7 +42,7 @@ L_Finish:
setq1 SQuest_Sponsor, .@q | .questID;
mes "";
mesn;
- mesq l("Many thanks! Come back later to bring me extra @@!", getitemlink(RedScorpionStinger));
+ mesq l("Many thanks! Come back later to bring me extra @@!", getitemlink(.itemID));
close;
L_Where:
diff --git a/npc/012-2/_import.txt b/npc/012-2/_import.txt
index c8887f3cc..30a1058df 100644
--- a/npc/012-2/_import.txt
+++ b/npc/012-2/_import.txt
@@ -7,3 +7,4 @@
"npc/012-2/helena.txt",
"npc/012-2/melina.txt",
"npc/012-2/note.txt",
+"npc/012-2/rakinorf.txt",
diff --git a/npc/012-2/door.txt b/npc/012-2/door.txt
index 9329367cc..cc424a65f 100644
--- a/npc/012-2/door.txt
+++ b/npc/012-2/door.txt
@@ -16,8 +16,8 @@ OnTouch:
end;
L_Unauthorized:
- // Per r8.0 Apane Invasion, there's a moment on main storyline you'll be allowed
- if (getq(General_Narrator) == 3 && getq2(General_Narrator) == 3)
+ // Per r8.0 Apane Invasion, there's a moment on main storyline you'll be allowed in
+ if (getq(General_Narrator) == 5)
slide 59, 82;
if (@sp_notrespass > 0)
diff --git a/npc/012-2/rakinorf.txt b/npc/012-2/rakinorf.txt
new file mode 100644
index 000000000..dc4a29c57
--- /dev/null
+++ b/npc/012-2/rakinorf.txt
@@ -0,0 +1,162 @@
+// TMW2/LoF scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Current Hurnscald Mayor
+// Variable:
+// SQuest_Sponsor
+// Quest ID: 4
+
+012-2,34,79,0 script Rakinorf, Hurnscald Mayor NPC_ANSELMO_BR,{
+ function resetSQS {
+ setq SQuest_Sponsor, 0, gettime(GETTIME_MONTH);
+ }
+ // Check monthly quest
+ .@d=getq2(SQuest_Sponsor);
+ if (.@d != gettime(GETTIME_MONTH)) resetSQS();
+
+ .@n=getq(General_Narrator);
+ .@q=getq(SQuest_Sponsor);
+ mesn;
+ mesq l("Ah... I need more beer to keep going... This is so awful...");
+ // Handle main storyline
+ if (.@n >= 5 && .@n < 6)
+ goto L_MainStory;
+ // Handle main storyline
+
+ // Core
+ .@q=getq(SQuest_Sponsor);
+ if (!(.@q & .questID) && getgmlevel()) goto L_Menu;
+ close;
+
+L_Menu:
+ mesq l("I will reward you for 7 @@.", getitemlink(.itemID));
+ mes "";
+ menu
+ rif(countitem(.itemID) >= 7, l("Here they are!")), L_Finish,
+ l("Where can I find them?"),L_Where,
+ l("No, thanks."),L_Close;
+
+L_Finish:
+ delitem .itemID, 7;
+ getitem StrangeCoin, rand(2,4);
+ .@q=getq(SQuest_Sponsor);
+ setq1 SQuest_Sponsor, .@q | .questID;
+ mes "";
+ mesn;
+ mesq l("Many thanks! Come back later to bring me extra @@!", getitemlink(.itemID));
+ close;
+
+L_Where:
+ mes "";
+ mesq l("Ah, there are lots with Melina, downstairs.");
+ next;
+
+L_Close:
+ closedialog;
+ goodbye;
+ close;
+
+// Main Storyline
+L_MainStory:
+ next;
+ // 5 - First time speaking
+ // setq2
+ // 0 - Not Assigned
+ // 1 - Need to bring Beer
+ // 2 - Need to find out how Arkim is doing
+ // 3 - Complete, Reluctancy node
+ // 4 - Told about Hurnscald Liberation Day, but didn't told where previous mayor is
+ // 5 - Told you to tell Airlia about.
+ // 6 - Airlia told you what she knew, must talk to Rakinorf
+ // 7 - Need to get levels (standard quest)
+ // 6 - Must visit Halinarzo Library
+
+ // 8 - TODO
+
+ .@n2=getq2(General_Narrator);
+
+ select
+ rif(getgmlevel(), l("Maybe I could give you more beer?")),
+ rif(.@n2 == 0, l("I know it may sound silly, but I need your help to find out who I am.")),
+ rif(.@n2 == 1, l("I have brought you the beer.")),
+ rif(.@n2 == 2, l("I know how many bat teeth and wings Arkim collected.")),
+ rif(.@n2 == 3, l("I know it may sound silly, but I need your help to find out who I am.")),
+ rif(.@n2 == 4, l("Where can I find the previous mayor?")),
+ rif(.@n2 == 6, l("Airlia told me XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")),
+ rif(.@n2 == 7, l("I think I'm ready.")),
+ l("Ok, thanks.");
+
+ mes "";
+ switch (@menu) {
+ case 1:
+ goto L_Menu; break;
+ case 2:
+ mesn;
+ mesq l("Not now... *hic* I need @@... *hic* Bring me seven if you *hic* can...", getitemlink(Beer));
+ setq2 General_Narrator, 1;
+ break;
+ case 3:
+ if (countitem(Beer) < 7) {
+ mesn;
+ mesq l("That's not *hic*... That's not what I asked you for...");
+ next;
+ mesn;
+ mesq l("Please bring me *hic*... Bring me 7 @@!", getitemlink(Beer));
+ close;
+ }
+ delitem Beer, 7;
+ getexp BaseLevel*10, JobLevel*3;
+ setq2 General_Narrator, 2;
+ mesn;
+ mesq l("Aaaaaaaahhhhh.... Much better now *hic*.");
+ next;
+ mesn;
+ mesq l("Could you *hic* do me a favor? Arkim, on a cave southeast of *hic* here, is collecting some stuff.");
+ next;
+ mesn;
+ mesq l("He's an *hic* hermit, and collects *hic* Bat teeth and wings... Tell me how many he collected!");
+ break;
+ case 4:
+ mesn;
+ mesq l("So? How many *hic* he collect?");
+ mesc l("Protip: Arkim is in a cave southeast of here and is an hermit.");
+ input .@am;
+ mes "";
+ // If players give up to 10 wings/teeths since you check, I don't mind
+ if (.@am < ($ARKIM_ST-10) || .@am > $ARKIM_ST)
+ goto L_Fail;
+ mesn;
+ mesq l("Thanks. You can go, now.");
+ getexp BaseLevel*2, JobLevel;
+ setq2 General_Narrator, 3;
+ break;
+ case 5:
+ mesn;
+ mesq l("Maybe later.");
+ break;
+
+ }
+ close;
+
+L_Fail:
+ mesn;
+ mes l("Eh? You sure?");
+ if (.@am > $ARKIM_ST)
+ mes l("I don't think he could have collected that many!");
+ else
+ mes l("Last time they told me he collected more than that...");
+ next;
+ mesn;
+ mesq l("Could you try again, please?");
+ // No penalty? Really??
+ close;
+
+OnInit:
+ .questID=4;
+ .itemID=Beer;
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/012-7/airlia.txt b/npc/012-7/airlia.txt
index 732232f78..fad5f1f15 100644
--- a/npc/012-7/airlia.txt
+++ b/npc/012-7/airlia.txt
@@ -18,7 +18,7 @@
.@n = getq(General_Narrator);
if (strcharinfo(0) == $MOST_HEROIC$) npctalk3 l("Ah, if it isn't @@? You're the talk of the town!", $MOST_HEROIC$);
if (.@q1 == 4) goto L_Letter;
- if (.@n == 3) goto L_Mayor;
+ if (.@n >= 3 && .@n < 6) goto L_Mayor;
mesn;
mesq l("Oh, a visitor. Welcome to the city hall. Please, enjoy your stay.");
close;
@@ -42,10 +42,21 @@ L_Letter:
// Main Storyline & Airlia Quest
L_Mayor:
.@q=getq2(General_Narrator);
- if (.@q == 3) goto L_In4;
- if (.@q == 2) goto L_In3;
- if (.@q == 1) goto L_In2;
- if (.@q == 0) goto L_In1;
+
+ // 3 - Quest Not Assigned
+ if (.@n == 3)
+ goto L_In1;
+
+ // 4 - Airlia doesn't wants to talk about </3
+ if (.@n == 4) {
+ if (.@q == 2) goto L_In3;
+ if (.@q == 1) goto L_In2;
+ }
+
+ // 5 - Access to Rakinorf was granted
+ if (.@n == 5)
+ goto L_In4;
+
mesc l("Script Error"), 1;
close;
@@ -58,7 +69,7 @@ L_In1:
next;
mesn;
mesq l("Anyway, he is not available at the moment. Try your luck again later.");
- setq2 General_Narrator, 1;
+ setq General_Narrator, 4, 1;
close;
L_In2:
@@ -89,7 +100,7 @@ L_In3:
next;
mesn;
mesq l("Usually only sponsors are allowed up there, but I'll make an exception today. Go meet the mayor.");
- setq2 General_Narrator, 3;
+ setq General_Narrator, 5, 0;
close;
L_In4: