summaryrefslogtreecommitdiff
path: root/npc/018-5-4
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-06-21 09:55:38 +0000
committerJesusaves <cpntb1@ymail.com>2020-06-21 09:55:38 +0000
commit81fa429681fca2d6586b8f925ba488a92d9886c7 (patch)
treea6b21cb6038ecbd34b02dd06b32139284cdb8045 /npc/018-5-4
parent27140ff716ab751f350c7f369a98b3e93732ba2c (diff)
parentb3af3029e1f8d0aaae388a71bbbd3d470a40aa40 (diff)
downloadserverdata-81fa429681fca2d6586b8f925ba488a92d9886c7.tar.gz
serverdata-81fa429681fca2d6586b8f925ba488a92d9886c7.tar.bz2
serverdata-81fa429681fca2d6586b8f925ba488a92d9886c7.tar.xz
serverdata-81fa429681fca2d6586b8f925ba488a92d9886c7.zip
Merge branch 'DuckElderQuest' into 'master'
Duck elder quest See merge request TMW2/serverdata!36
Diffstat (limited to 'npc/018-5-4')
-rw-r--r--npc/018-5-4/elder.txt142
1 files changed, 136 insertions, 6 deletions
diff --git a/npc/018-5-4/elder.txt b/npc/018-5-4/elder.txt
index 829e0894b..830cc4616 100644
--- a/npc/018-5-4/elder.txt
+++ b/npc/018-5-4/elder.txt
@@ -3,11 +3,17 @@
// dangerDuck
// Description:
// Duck Elder is a friendly npc.
-// May eventually implement a quest that needs Duck Feathers
-// Variable:
-// none
+// The first stage of the Elder's quest consists of a supply restock
+// Second stage of the quest will be a pirate attack (WIP)
+// Third stage will consist of planting mage acorns around the island (WIP)
+// Variables:
+// LilitQuest_PiratesOfSARAH
018-5-4,28,73,0 script Duck Elder NPC_DUCK_ELDER,{
+ function elderQuest;
+ function elderSupplyList;
+ function elderSupplyGive;
+ function elderPirateAttack;
function elderAbout;
function elderAboutSarah;
function elderClose;
@@ -15,19 +21,138 @@
mesq l("Hello %s. What brings you here?", get_race());
next;
select
+ l("I've heard tidings of strange goings-on in this area..."),
l("Oh, I'm just exploring. What can you tell me about this island?"),
l("I came to enjoy a beautiful day with some ducks!");
mes "";
switch (@menu) {
case 1:
+ elderQuest();
+ break;
+ case 2:
elderAbout();
// fallthrough
- case 2:
+ case 3:
elderClose();
break;
}
close;
+function elderQuest {
+ if(BaseLevel < 50) {
+ mesn;
+ mesq l("Unfortunately, a mere fledgling like you is not strong enough to help us.");
+ next;
+ elderClose();
+ return;
+ }
+ .@q = getq(LilitQuest_PiratesOfSARAH);
+ switch (.@q) {
+ case 0:
+ mesn;
+ mesq l("Your information is correct, %s. Pirates have been plaguing our shores and cutting off our supply lines.", get_race());
+ next;
+ mesn;
+ mesq l("We are in desperate need of food and nesting material, as well as our sacred supply of @@.", getitemlink(CrystallizedMaggot));
+ next;
+ setq LilitQuest_PiratesOfSARAH, 1;
+ elderSupplyList();
+ break;
+ case 1:
+ mesn;
+ mesq l("Did you bring the supplies?");
+ next;
+ select
+ l("Yes, I have them right here."),
+ l("What did you want? I've forgotten."),
+ l("Not yet. I've been... delayed.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ elderSupplyGive();
+ break;
+ case 2:
+ elderSupplyList();
+ break;
+ case 3:
+ close;
+ break;
+ }
+ break;
+ case 2:
+ elderPirateAttack();
+ break;
+ case 3:
+ break;
+ }
+ close;
+ return;
+}
+
+function elderSupplyList {
+ mesq "";
+ mesn;
+ mesq l("We need:");
+ mesq l("%d/%d %s", countitem(Moss), 300, getitemlink(Moss));
+ mesq l("%d/%d %s", countitem(RoastedMaggot), 250, getitemlink(RoastedMaggot));
+ mesq l("%d/%d %s", countitem(CommonCarp), 250, getitemlink(CommonCarp));
+ mesq l("%d/%d %s", countitem(GrassCarp), 75, getitemlink(GrassCarp));
+ mesq l("%d/%d %s", countitem(CrystallizedMaggot), 1, getitemlink(CrystallizedMaggot));
+ next;
+ mesq l("Of course, we'll find a way to reward you for your efforts.");
+ return;
+}
+
+function elderSupplyGive {
+ if (countitem(Moss) < 300 ||
+ countitem(RoastedMaggot) < 250 ||
+ countitem(CommonCarp) < 250 ||
+ countitem(GrassCarp) < 75 ||
+ countitem(CrystallizedMaggot) < 1) {
+ mesn;
+ mesq l("This isn't what we requested. Perhaps you should count your items more carefully.");
+ next;
+ mesn;
+ mesq l("If you aren't more careful, we might... accidentally... mistake you for an agent of S.A.R.A.H.");
+ percentheal -99, 0;
+ close;
+ }
+ inventoryplace RubberDucky, 1;
+
+ delitem(Moss, 300);
+ delitem(RoastedMaggot, 250);
+ delitem(CommonCarp, 250);
+ delitem(GrassCarp, 75);
+ delitem(CrystallizedMaggot, 1);
+
+ getitem(RubberDucky, 1);
+ getexp(34576, 19226);
+ setq(LilitQuest_PiratesOfSARAH, 2);
+
+ mes "";
+ mesn;
+ mesq l("We appreciate your help. Take this %s as a token of goodwill.", getitemlink(RubberDucky));
+ next;
+ mesn;
+ mesq l("If you're ever in need, you may use it to call upon the aid of the ducks.");
+ next;
+ if(BaseLevel < 75) {
+ mesn;
+ mesq l("Go now, with the blessing of ducks. There may come a time when we require your aid once again, O %s.", get_race());
+ } else {
+ mesn;
+ mesq l("We may require your aid again soon. The tritan pirates are amassing and we fear they are planning a siege of Duck Island. I must speak with the council...");
+ }
+ close;
+}
+
+function elderPirateAttack {
+ mesn;
+ mesq l("The tritan pirates amass for their siege, but they will not attack yet. Return later. King DD is working to find a solution.");
+ next;
+ close;
+}
+
function elderAbout {
mesn;
mesq l("This is Duck Island, the last safe refuge for birds. Ducks tend to be very peaceful, but our young ruler, King DD, has been taken up with the art of war.");
@@ -49,7 +174,7 @@ function elderAboutSarah {
mesq l("As I said, S.A.R.A.H. is a terrorist organization. They are dedicated to wiping out every single duck, worldwide. No duck has ever survived an encounter with a S.A.R.A.H. agent. You would do best to avoid them.");
next;
mesn;
- mesq l("I suggest you leave now, %s. If you are even suspected of being a S.A.R.A.H. agent . . .", get_race());
+ mesq l("I suggest you leave now, %s. If you are even suspected of being a S.A.R.A.H. agent...", get_race());
close;
return;
}
@@ -59,7 +184,12 @@ function elderClose {
mesq l("Enjoy your time here, %s. And keep your eye out for agents of S.A.R.A.H.", get_race());
next;
mesn;
- mesq l("Perhaps you may be of assistance later . . .");
+ if (BaseLevel < 50) {
+ mesq l("Perhaps you may be of assistance later...");
+ }
+ else{
+ mesq l("I may have a task for you. Return when you tired of exploring...");
+ }
close;
return;
}