summaryrefslogtreecommitdiff
path: root/npc/008-1-1/galimatia.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/008-1-1/galimatia.txt')
-rw-r--r--npc/008-1-1/galimatia.txt107
1 files changed, 82 insertions, 25 deletions
diff --git a/npc/008-1-1/galimatia.txt b/npc/008-1-1/galimatia.txt
index 6197d3bf..29db843a 100644
--- a/npc/008-1-1/galimatia.txt
+++ b/npc/008-1-1/galimatia.txt
@@ -6,8 +6,6 @@
// Jesusalva
// Description:
// Galimatia the beekeeper.
-// THIS IS A PLACEHOLDER!
-
// KEEP item_db.conf updated as well
function script usePurificationPotion {
@@ -52,15 +50,7 @@ function script useFertilityPotion {
function QuestPart4;
function QuestPart5;
function QuestPart6;
-
- // TODO FIXME remove this once ready
- if (!debug) {
- speech
- l("Hello."),
- l("If only someone could help me to make my flowers bloom again."),
- l("I just dont know what to do. Perhaps all gets better when I stay here, whining and waiting. Please, leave me alone.");
- close;
- }
+ function galimatiaQuestDaily;
switch(getq(ArgaesQuest_Galimatia)) {
case 0: QuestPart0(); break;
@@ -70,6 +60,7 @@ function script useFertilityPotion {
case 4: QuestPart4(); break;
case 5: QuestPart5(); break;
case 6: QuestPart6(); break;
+ case 7: galimatiaQuestDaily(); break;
default:
mesq l("[Invalid quest status: %d, check script]", getq(ArgaesQuest_Galimatia));
}
@@ -149,7 +140,7 @@ function NPCcrafting {
getarg(4);
if (askyesno() == ASK_NO) {
mesq l("Come on, move!");
- close();
+ close;
} else {
switch(craftFromPlayer(getarg(0), getarg(1), getarg(2), getarg(3))) {
case 0:
@@ -159,7 +150,8 @@ function NPCcrafting {
case 1:
mesq getarg(6);
- printIngredients(.REQ0_INGREDIENTS, .REQ0_INGREDIENTS_AMOUNT);
+ // FIXME - Gather proper variables
+ printIngredients(getarg(0), getarg(1));
break;
case 2:
@@ -216,11 +208,14 @@ function QuestPart0 {
l("Hello."),
l("If only someone could help me to make my flowers bloom again."),
l("I just dont know what to do. Perhaps all gets better when I stay here, whining and waiting. Please, leave me alone.");
+ next;
select(
l("What about making some fertilizing-something?"),
l("I don't have time to spend on flowers.")
);
+ mes "";
+ mesn;
switch(@menu) {
case 1:
@@ -268,7 +263,7 @@ function QuestPart1 {
l("Why you don't have a %s with you? You need me to make another one?", getitemlink(.REQ0_OUTPUT));
if (askyesno() == ASK_NO) {
mesq l("Come on, stop wasting my time!");
- close();
+ close;
} else{
if (NPCcrafting(
.REQ0_INGREDIENTS, .REQ0_INGREDIENTS_AMOUNT,
@@ -294,6 +289,7 @@ If you weren't able to trash the potion, the land is now healed, but nothing gro
function QuestPart2 {
+ mesn;
mesq l("Fine. The land is healthy now but nothing will grow yet. This time I need you to get:");
printIngredients(.REQ1_INGREDIENTS, .REQ1_INGREDIENTS_AMOUNT);
mesq l("So making a %s will make things easier.", getitemlink(.REQ1_OUTPUT));
@@ -322,8 +318,9 @@ function QuestPart3 {
speech
l("Got drunk with the %s? You need me to make another one?", getitemlink(.REQ1_OUTPUT));
if (askyesno() == ASK_NO) {
+ mesn;
mesq l("Come on, stop wasting my time!");
- close();
+ close;
} else{
if (NPCcrafting(
.REQ1_INGREDIENTS, .REQ1_INGREDIENTS_AMOUNT,
@@ -350,13 +347,19 @@ NOTE: Flower seeds are dropped directly from Clover Patches, however grass seeds
*/
function QuestPart4 {
- speech
- l("Now I need %d %s.", .REQ2_INGREDIENTS_AMOUNT, getitemlink(.REQ2_INGREDIENTS));
- // We take player items without asking
+ speech
+ l("Thanks for the help earlier. The soil is now fertile thanks to your efforts."),
+ l("Do you know Blossom? She is the flower girl. Bees won't come without flowers."),
+ l("So, now I need %d %s.", .REQ2_INGREDIENTS_AMOUNT, getitemlink(.REQ2_INGREDIENTS));
+ next;
+ // We don't take player items without asking
+ mesc l("Deliver items to Blossom?");
+ if (askyesno() == ASK_NO) close;
if(checkForItems(.REQ2_INGREDIENTS, .REQ2_INGREDIENTS_AMOUNT)) {
- speech
- l("Nice, gimme that!");
advanceQuest();
+ speech
+ l("Nice, gimme that!"),
+ l("I'll go plant them. Now go, maybe I need your help again later.");
} else {
speech
l("Go get some!");
@@ -377,7 +380,8 @@ Galimatia gives the player their reward: Player must select a simple Magic Wand
function QuestPart5 {
speech
l("Nice job."),
- l("What do you want?"),
+ l("I've heard bees are scared of fire, you know."),
+ l("So, what do you want?"),
l("A %s or a %s?", getitemlink(.QUESTPRIZES[0]) , getitemlink(.QUESTPRIZES[1]));
select(
l("I want the %s!", getitemname(.QUESTPRIZES[0])),
@@ -401,13 +405,14 @@ This enables the player to receive a Rose Hat. Fighting the flowers that were ju
*/
function QuestPart6 {
+ mesn;
mesq l("Hello again! Do you want me to exchange %d %s and %d GP for a %s?",
.REQ3_INGREDIENTS_AMOUNT[0], getitemlink(.REQ3_INGREDIENTS[0]),
.REQ3_COST, getitemlink(.REQ3_OUTPUT)
);
if (askyesno() == ASK_NO) {
mesq l("As you wish.");
- close();
+ close;
} else {
if(Zeny>=.REQ3_COST) {
if(NPCcrafting(
@@ -417,7 +422,10 @@ function QuestPart6 {
l("Have fun!"),
l("Nope. I wont exchange for such less."),
l("I can't give you nothing if you don't leave some room for it!")
- )) Zeny-=(.REQ3_COST);
+ )) {
+ Zeny-=(.REQ3_COST);
+ advanceQuest();
+ }
} else {
mesq l("Ain't working for free, pal!");
}
@@ -426,6 +434,16 @@ function QuestPart6 {
return;
}
+/*
+Daily Part
+Allows players to sell Honey for Galimatia
+*/
+function galimatiaQuestDaily {
+ // DailyQuest(lvl, cost, count, item)
+ DailyQuest(10, 3, 1, Honey);
+ return;
+}
+
OnInit:
// NPC ITEM REQUESTS
setarray(.REQ0_INGREDIENTS , BottleOfWater , PinkPetal );
@@ -433,7 +451,6 @@ OnInit:
.REQ0_OUTPUT = PurificationPotion;
.REQ0_OUTPUT_AMOUNT = 1 ;
- // FIXME ingredients are wrong (because I'm tired of use /createitems everytime)
setarray(.REQ1_INGREDIENTS , BottleOfWater, MaggotSlime, MauveHerb);
setarray(.REQ1_INGREDIENTS_AMOUNT , 1 , 10 , 5);
.REQ1_OUTPUT = FertilityPotion;
@@ -442,7 +459,7 @@ OnInit:
setarray(.REQ2_INGREDIENTS , FlowerSeeds);
setarray(.REQ2_INGREDIENTS_AMOUNT , 5);
- setarray(.QUESTPRIZES , TrainingWand , RubberBat );
+ setarray(.QUESTPRIZES , TrainingWand , ManaTorch );
setarray(.QUESTPRIZES_AMOUNT , 1 , 1 );
setarray(.REQ3_INGREDIENTS , ABlueRose);
@@ -455,3 +472,43 @@ OnInit:
.distance = 4;
end;
}
+
+// ------------------------------------
+// Bees Hotspot
+008-1-1,93,46,0 script #GalimatiaInst NPC_HIDDEN,0,1,{
+ end;
+
+// Transport
+OnTouch:
+ if (getq(ArgaesQuest_Galimatia) >= 5) {
+ if (getmap() == "008-1-1")
+ warp "gali@matia", 94, 46;
+ else
+ warp "008-1-1", 92, 46;
+ }
+ end;
+
+// Populate
+OnInstanceInit:
+ areamonster("gali@matia", 95, 45, 97, 46, strmobinfo(1, RedRose), RedRose, 1, "#GalimatiaInst::OnRed");
+ areamonster("gali@matia", 95, 47, 99, 48, strmobinfo(1, YellowRose), YellowRose, 1, "#GalimatiaInst::OnYellow");
+ monster("gali@matia", 99, 45, strmobinfo(1, BlueRose), BlueRose, 1, "#GalimatiaInst::OnBlue");
+ end;
+
+// Respawn
+OnRed:
+ sleep(60000);
+ areamonster("gali@matia", 95, 45, 97, 46, strmobinfo(1, RedRose), RedRose, 1, "#GalimatiaInst::OnRed");
+ end;
+
+OnBlue:
+ sleep(120000);
+ monster("gali@matia", 99, 45, strmobinfo(1, BlueRose), BlueRose, 1, "#GalimatiaInst::OnBlue");
+ end;
+
+OnYellow:
+ sleep(25000);
+ areamonster("gali@matia", 95, 47, 99, 48, strmobinfo(1, YellowRose), YellowRose, 1, "#GalimatiaInst::OnYellow");
+ end;
+}
+