diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-09 11:00:49 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-09 11:00:49 -0300 |
commit | 8a4bf716002a017de77fe7df301ef8e4aaf00a2e (patch) | |
tree | 4947d0b015baad639fa07133369e9a09c8a468bc /npc/001-2-11/mona.txt | |
download | serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.gz serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.bz2 serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.xz serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.zip |
Initial commit
Diffstat (limited to 'npc/001-2-11/mona.txt')
-rw-r--r-- | npc/001-2-11/mona.txt | 170 |
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; +} + |