summaryrefslogtreecommitdiff
path: root/npc/001-2-11/mona.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-2-11/mona.txt')
-rw-r--r--npc/001-2-11/mona.txt170
1 files changed, 170 insertions, 0 deletions
diff --git a/npc/001-2-11/mona.txt b/npc/001-2-11/mona.txt
new file mode 100644
index 00000000..f3a65651
--- /dev/null
+++ b/npc/001-2-11/mona.txt
@@ -0,0 +1,170 @@
+// Evol scripts.
+// Author:
+// Reid
+// Jesusalva
+// Description:
+// A rich girl holding a candle. Her father went to examine weird noises in the
+// sewers and still hasn't come back. Her mother is gone, but it is not clear
+// whether she died, abandoned them, or something else.
+// Variable:
+// MONA_TIME = gettimeparam(GETTIME_DAYOFMONTH) so you need 3 days
+// MONA_REPEAT = How many times the quest was done
+// ArtisQuests_MonaDad
+// Quest states:
+// 0 - Quest not started
+// 1 - Mona explained that her dad was missing
+// 2 - Player is bringing Mundane out of Sewers
+// 3 - Quest is complete
+// Note:
+// Any misformatted code is Jesusalva's fault.
+
+001-2-11,39,30,0 script Mona NPC_MONA,{
+
+ function find_daddy_quest
+ {
+ speech S_LAST_NEXT,
+ l("Hey you!");
+
+ switch (select(l("Yes?"), l("Sorry, I have to go.")))
+ {
+ case 1:
+ mes "";
+ break;
+ case 2:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("No you don't have to go. I need your help, so you have to stay.");
+ break;
+ }
+
+ speech S_LAST_NEXT | S_NO_NPC_NAME,
+ l("Daddy never came back home... He said that he would be back for lunch but it has already been two days!"),
+ l("You have to find him, or else I will tell him that you did not help me.");
+
+ switch (select(l("You do not give me a lot of options."), l("Your dad ran away from you!")))
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE,
+ l("He said that he would check why weird noises were coming from the manhole next to the house."),
+ l("But he never returned."),
+ l("Please find my daddy...");
+
+ setq ArtisQuests_MonaDad, 1;
+ break;
+ case 2:
+ speech S_FIRST_BLANK_LINE,
+ l("I will tell my dad!");
+ break;
+ }
+ emotion E_SAD;
+ close;
+ }
+
+ // You're here to report that Mundane is out of the sewers.
+ // Forcing you to enter an instanced map would require more work.
+ // This means adding a warp NPC and a global instance.
+ // Global Instances get reset every 10 days or so, it would need a patch
+ // only to support Global Instances and in general is not a smart thing to do.
+ function check_daddy_quest
+ {
+ // Did you really bring Mundane to sewer exit?
+ // We need to add 1 tile in each direction of tolerance because addtimer()
+ // is not exactly what I would call “a reliable way to do stuff”
+ // Note that @variables sometimes get erasen AT RANDOM.
+ // If this problem happens, move it char variables.
+ // (that might cause problems with logout though.)
+ // Temporary variables give you a time limit to report back...
+ //
+ // There's no need to check if instance still exists, because
+ // when the instance expires, you get warped to *somewhere*.
+ // This means the timer will die and MUNDANE_OLD* variables will stop
+ // being updated.
+ .@success=false;
+
+ // Sewer mouths (warps to 001-1)
+ if (is_between(151, 153, @MUNDANE_OLDX) &&
+ is_between(55, 57, @MUNDANE_OLDY))
+ .@success=true;
+
+ if (is_between(195, 197, @MUNDANE_OLDX) &&
+ is_between(34, 36, @MUNDANE_OLDY))
+ .@success=true;
+
+ if (is_between(197, 199, @MUNDANE_OLDX) &&
+ is_between(59, 61, @MUNDANE_OLDY))
+ .@success=true;
+
+ if (is_between(84, 86, @MUNDANE_OLDX) &&
+ is_between(129, 131, @MUNDANE_OLDY))
+ .@success=true;
+
+ if (.@success)
+ return true;
+ else
+ return false;
+ }
+
+ // Here the script really starts
+ if (getq(ArtisQuests_MonaDad) == 0)
+ {
+ find_daddy_quest();
+ }
+ else if (getq(ArtisQuests_MonaDad) == 3)
+ {
+ // Quest Repeat takes priority. Don't worry, you won't lose password unless
+ // you accept the quest again.
+ if (MONA_TIME <= gettimeparam(GETTIME_DAYOFMONTH)) {
+ find_daddy_quest();
+ }
+
+ // Sagratha is Great B-)
+ npctalkonce any(
+ l("Thanks for finding daddy... I wish he spent more time with me..."),
+ l("Sagratha is great. Why does the strange woman near the Legion building always say that to daddy...?")); // TODO: Polish
+ }
+ else if (getq(ArtisQuests_MonaDad) == 2)
+ {
+ if (check_daddy_quest())
+ {
+ if (!MONA_REPEAT)
+ {
+ inventoryplace WoodenSword, 1;
+ speech 0x0,
+ l("Daddy finally came back home! He grabbed a snack and said he would be returning to the sewers."),
+ l("He did say that I should give you this @@ as a gift. He says you are very skilled and will make good use of his old weapon.",
+ getitemlink(WoodenSword)),
+ l("He has never been the same since mommy went away...");
+ getitem WoodenSword, 1;
+ }
+ else if (MONA_REPEAT == 10)
+ {
+ speech
+ l("Daddy asked me to give you some money as a thank you for looking out for me."),
+ l("I don't want you! I want daddy!");
+ mesc l("*sniff sniff*");
+ emotion E_SAD;
+ Zeny+=1000;
+ }
+ else
+ {
+ inventoryplace TrainingArrow, 100;
+ getitem TrainingArrow, min(MONA_REPEAT*20, 100);
+ }
+ setq(ArtisQuests_MonaDad, 3);
+ MONA_TIME=gettimeparam(GETTIME_DAYOFMONTH)+3;
+ MONA_REPEAT+=1;
+ close;
+ }
+ }
+ else
+ {
+ npctalkonce l("Please find daddy...");
+ }
+
+ emotion E_SAD;
+ close;
+
+OnInit:
+ .distance = 3;
+ end;
+}
+