summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf4
-rw-r--r--npc/012-2/khafar.txt76
-rw-r--r--npc/020-4/baktar.txt1
3 files changed, 79 insertions, 2 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 3b5bad2dd..449950f53 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -293,6 +293,10 @@ quest_db: (
Id: 102
Name: "HurnscaldQuest_HungryGuard"
},
+{
+ Id: 103
+ Name: "HurnscaldQuest_Khafar"
+},
// ID 111 to 130: Nivalis Quests
{
diff --git a/npc/012-2/khafar.txt b/npc/012-2/khafar.txt
index dc60285c5..a3007bec7 100644
--- a/npc/012-2/khafar.txt
+++ b/npc/012-2/khafar.txt
@@ -4,10 +4,16 @@
// Description:
// Kfahr - Placeholder
// Quests:
-// NivalisQuest_Baktar
+// HurnscaldQuest_Khafar
+// .@q1 = when even, must buy a beer
+// when odd, can ask another story
+// .@q2 = Temporary variable, holds last story
+// Secrets Unlocked:
+// NivalisQuest_Baktar (status 1→2)
// Win arm wrestling to unlock Braknar Shield Secrets
012-2,54,46,2 script Khafar NPC_ORC,{
+ function MustDrink;
mesc l("You stand before a battle-scarred, darkly tanned warrior, brimming with muscles.");
mesc l("Just looking at him you smell danger, adventure, excitement...");
next;
@@ -16,13 +22,79 @@
mesc l("The warrior turns towards you, grinning broadly.");
next;
mesn;
- mesq l("Why, hello there! Come to visit Kfahr the Warrior to hear of my exploits, have you?");
+ mesq l("Why, hello there! Come to visit me to hear Kfahr the Warrior or Andrei Sakar's exploits, have you?");
mesc l("He laughs heartily and gives you a slap on the back.");
next;
mesn;
mesq l("Can't blame you, can't blame you at all! Here, take a seat!");
+ next;
+ goto L_Menu;
+
+L_Menu:
+ do
+ {
+ .@q=getq(HurnscaldQuest_Khafar);
+ if (.@q % 2 == 0)
+ MustDrink();
+ select
+ l("Don't you have any exploit of your own?"),
+ l("Who is Kfahr the Warrior?"),
+ l("Who is Andrei Sakar?"),
+ l("Nah, see you later.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ mesn;
+ mesq l("I once killed a Giant Maggot alone!");
+ next;
+ break;
+ case 2:
+ mesn;
+ mesq l("He is my grand-grand-grandfather! The might Kfahr, with his friend Braknar, and heroes from Tulimshar legends.");
+ next;
+ mesn;
+ mesq l("Togheter, they wrote legends. They slayed Toby Rick the Desert Worm, the mightiest desert beast.");
+ next;
+ mesn;
+ mesq l("Braknar also used a pseudonym - Arvek. If you hear that name in some tale, it is the same person.");
+ next;
+ mesn;
+ mesq l("Well, that was a good fight. My grand-grand-grandfeather gave his shield to Arvek -- err, Braknar I mean.");
+ next;
+ mesn;
+ mesq l("The last time they were seen... They went to explore the Desert Temple. None returned alive.");
+ next;
+ break;
+ default:
+ mesn;
+ mesq lg("See you later, my friend! Thanks for the drink!");
+ close;
+ break;
+ }
+ setq1 HurnscaldQuest_Khafar, .@q+1;
+ getexp 50, 0; // Beer is now lost - get 50xp
+ } while (true);
close;
+function MustDrink {
+ mesn;
+ mesq l("But first... My throat is dry. Can you bring me a beer?");
+ if (!countitem(Beer))
+ close;
+ next;
+ select
+ l("Here, you can have a glass."),
+ l("Sorry, I have nothing.");
+ mes "";
+ if (@menu == 1) {
+ delitem Beer, 1;
+ .@q=getq(HurnscaldQuest_Khafar);
+ setq1 HurnscaldQuest_Khafar, .@q+1;
+ return;
+ }
+ close;
+}
+
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, FairyHat);
diff --git a/npc/020-4/baktar.txt b/npc/020-4/baktar.txt
index 342c72010..e812167e0 100644
--- a/npc/020-4/baktar.txt
+++ b/npc/020-4/baktar.txt
@@ -6,6 +6,7 @@
// Quests:
// NivalisQuest_Baktar
// .@q1 = Controls Braknar Shield
+// (0= Not met, 1= Khafar, 2= Baktar, 3= Complete)
// .@q2 = bitmask with Tulimshar items given
020-4,64,39,6 script Baktar NPC_RAIJIN,{