From 9d5db4c9b4bbb05153b29ee7340acbd35ed226bf Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 7 Jan 2019 01:03:26 -0200 Subject: Rakinorf Initial Version (Main Storyline 2-2) --- db/constants.conf | 1 + db/re/item_db.conf | 23 +++---- npc/009-2/librarian.txt | 12 ++-- npc/012-2/GonzoDark.txt | 2 +- npc/012-2/Saulc.txt | 2 +- npc/012-2/_import.txt | 1 + npc/012-2/door.txt | 4 +- npc/012-2/rakinorf.txt | 162 ++++++++++++++++++++++++++++++++++++++++++++++++ npc/012-7/airlia.txt | 25 +++++--- 9 files changed, 204 insertions(+), 28 deletions(-) create mode 100644 npc/012-2/rakinorf.txt 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