summaryrefslogtreecommitdiff
path: root/npc/008-2-6/alan.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/008-2-6/alan.txt')
-rw-r--r--npc/008-2-6/alan.txt311
1 files changed, 0 insertions, 311 deletions
diff --git a/npc/008-2-6/alan.txt b/npc/008-2-6/alan.txt
deleted file mode 100644
index a439c91a..00000000
--- a/npc/008-2-6/alan.txt
+++ /dev/null
@@ -1,311 +0,0 @@
-// Evol scripts.
-// Author:
-// Jesusalva
-// Micksha
-// Description:
-// Alan the bow-maker.
-// Quest states (forest bow):
-// [1] 0 - cannot do the quest
-// [1] 1 - can do the quest
-// [1] 2 - alan wants to ask jack
-// [1] 3 - jack explained problem
-// [1] 4 - alan asks to find wood
-// [1] 5 - found perfect wood
-// [1] 6 - got the bow
-// [2] fail count
-// [3] unused
-// [t] unused
-
-008-2-6,31,26,0 script Alan NPC_YOUNG_MAN_KFAHR,{
-
- function bow_intro {
- speech(4,
- l("When you want to buy something then please speak to my apprentice."),
- l("I am only doing special requests."));
-
- selectd(
- l("OK, thanks."),
- rif(BaseLevel >= .min_level, l("Can you make me a really good bow?")),
- rif(getq(.quest_inspector) == 2, l("Have you seen anything strange recently that might be connected to the robberies?")));
-
- switch (@menu)
- {
- case 1: closeclientdialog(); close;
- case 3: speech(l("No.")); close;
- }
-
- speech(4,
- l("You mean like one of my legendary forest bows?"));
-
- selectd(
- l("Yes, that would be nice."));
-
- speech(4,
- l("Sorry, I am not making these anymore."));
-
- selectd(
- l("Oh, too bad."),
- l("What? Why not?"));
-
- if (@menu == 1) {
- closeclientdialog();
- close;
- }
-
- speech(4,
- l("The problem is that I am short of material."),
- l("My forestbows are not made of regular wood, you know."),
- l("They are made of special living wood."),
- l("And only the best logs of living wood are good enough for them."),
- l("I used to get these logs from Jack, the handsome lumberjack."),
- l("But the last time I asked him for a new delivery he said that he would never again get any for me."));
-
- selectd(
- l("Too bad."),
- l("Did you ask him why?"));
-
- if (@menu == 1) {
- closeclientdialog();
- close;
- }
-
- speech(4,
- l("Sure I did."),
- l("But he just told me to leave him alone."),
- l("Maybe you could ask him what's wrong?"));
-
- selectd(
- l("OK, I'll ask him."),
- l("I am sure he got his reasons."));
-
- setq(.quest_bow, 2);
- closeclientdialog();
- close;
- }
-
- function bow_reminder {
- if (getq(.quest_inspector) == 2)
- {
- speech(4,
- l("Did you already ask Jack why he won't deliver me any more living wood?"));
-
- selectd(
- l("Have you seen anything strange recently that might be connected to the robberies?"));
-
- speech(l("No."));
- close;
- }
-
- npctalk3(l("Did you already ask Jack why he won't deliver me any more living wood?"));
- end;
- }
-
- function bow_explain {
- speech(4,
- l("Did you already ask Jack why he won't deliver me any more living wood?"));
-
- selectd(
- l("Yes, I did. He said that the trees turned into dangerous monsters."),
- rif(getq(.quest_inspector) == 2, l("Have you seen anything strange recently that might be connected to the robberies?")));
-
- if (@menu != 1)
- {
- speech(l("No."));
- close;
- }
-
- speech(
- l("Oh, that's really bad news."),
- l("Maybe you can do his job?"),
- l("If you kill some of these tree monsters and bring me their wood I could take a look at them."),
- l("Maybe you will find a piece of wood that is strong enough to become one of my forest bows."));
-
- close2;
- setq(.quest_bow, 4);
- end;
- }
-
- function bow_make {
- speech(4,
- l("I can make you a really nice forest bow out of this."),
- l("I just need %s E for material and work time.",
- format_number(.req_esp)));
-
- selectd(
- l("%s??? What a ripoff!", format_number(.req_esp)),
- rif(Zeny >= .req_esp, l("Sure, here you go!")),
- rif(getq(.quest_inspector) == 2, l("Have you seen anything strange recently that might be connected to the robberies?")));
-
- switch (@menu)
- {
- case 1: speech(l("Fine, I'll just hold on to this log should you ever change your mind.")); close;
- case 3: speech(l("No.")); close;
- }
-
- // XXX: maybe here we could make the player wait real-world hours for Alan to finish?
-
- if (checkweight(.reward_item, 1) != true)
- {
- speech(
- l("It seems you can't carry the bow right now."),
- l("Go clean up your inventory and come back."));
- close;
- }
-
- if (Zeny < .req_esp)
- close; // double-check
-
- setq(.quest_bow, 6);
- Zeny -= .req_esp;
- getitem(.reward_item, 1);
- quest_xp(.maxLevel, .reward_exp);
-
- speech(
- l("Here you go - have fun with it."));
- close;
- }
-
- function bow_check_wood {
- speech(4,
- l("How is the hunt going?"),
- l("Did you bring me any wood?"));
-
- selectd(
- l("No, sorry."),
- rif(countitem(.req_item) >= 1, l("Here, take a look!")),
- rif(getq(.quest_inspector) == 2, l("Have you seen anything strange recently that might be connected to the robberies?")));
-
- switch (@menu)
- {
- case 1: closeclientdialog(); close;
- case 3: speech(l("No.")); close;
- }
-
- .@first = true;
-
- do {
- if (countitem(.req_item) < 1)
- break;
-
- if (.@first == false)
- {
- narrator(4,
- l("You hand him another log."));
- }
-
- delitem(.req_item, 1);
- .@first = false;
-
- speech(4,
- l("Hmmm... looks ok, but is it strong enough?"));
-
- narrator(4,
- l("Alan bends the log over his knee."));
-
- .@fails=getq2(.quest_bow);
- if (rand(.minfail, .maxfail) - .@fails <= 0)
- {
- narrator(4 | 8,
- l("Alan tries as hard as he can but the log won't bend."));
-
- speech(4,
- l("Aaah!"),
- l("Yes!"),
- l("That is a really fine piece of wood you brought me."),
- l("It will make an excellent bow!"));
-
- setq(.quest_bow, 5);
- setq(.quest_shield, 1);
-
- narrator(4,
- l("He proceeds to further scrutinize the log."));
-
- bow_make;
- end;
- }
- setq2(.quest_bow, .@fails+1);
-
- narrator(4 | 8,
- l("The log breaks with a loud crack."));
-
- speech(4,
- l("Sorry, this log was too weak for one of my forest bows."),
- l("Now it is junk."),
- l("Do you wish to try again?"));
-
- selectd(
- l("Sure, here you go."),
- l("Hey! Stop breaking my stuff!"));
-
- if (@menu != 1) {
- closeclientdialog();
- close;
- }
-
- } while (true);
-
- speech(l("It seems you have no wood left."));
- close;
- }
-
- function bow_done {
- speech(4,
- l("I hope you are satisfied with your forest bow."),
- l("It is one of my best works."));
-
- selectd(
- l("I am!"),
- rif(getq(.quest_inspector) == 2, l("Have you seen anything strange recently that might be connected to the robberies?")));
-
- switch (@menu)
- {
- case 2: speech(l("No.")); close;
- default: closeclientdialog(); close;
- }
- }
-
- // OnTalk:
- switch (getq(.quest_bow))
- {
- case 0:
- case 1: bow_intro; break;
- case 2: bow_reminder; break;
- case 3: bow_explain; break;
- case 4: bow_check_wood; break;
- case 5: bow_make; break;
- default: bow_done; break;
- }
-
- closeclientdialog();
- close;
-
-OnPCLoginEvent:
-OnPCBaseLvUpEvent:
- if (BaseLevel >= .min_level && getq(.quest_bow) < 1)
- {
- setq(.quest_bow, 1); // allow the player to do the quest
- dispbottom(l("New quest available: %s (level %d+)",
- getquestlink(.quest_bow), .min_level)); // XXX: requires new manaplus versions, maybe show a different message for old versions?
- }
- end;
-
-OnInit:
- .min_level = 25; // min level to do the quest
- .maxLevel = 50; // max level to obtain full rewards
-
- .req_item = RawLog; // item required to make the bow
- .req_esp = 10000; // amount of Esperin required to make the bow
- .reward_item = ForestBow; // quest reward (item)
- .reward_exp = 500; // quest reward (exp)
-
- // one in X chances to get a perfect log
- .minfail = 10;
- .maxfail = 30;
-
- .quest_bow = HurnscaldQuests_ForestBow;
- .quest_shield = HurnscaldQuests_WoodenShield;
- .quest_inspector = HurnscaldQuests_Inspector;
- .quest_debug = .quest_bow;
- .distance = 3;
- end;
-}