summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-12-29 01:36:01 -0200
committerJesusaves <cpntb1@ymail.com>2018-12-29 01:36:01 -0200
commit9dc0659102fb909f888a07d7ac9eb465e227df53 (patch)
tree79188a781146d31c252f59cb335eee4b467a342e /npc
parent060c8e063c6e8a4b399af2b140e848d1d65d135f (diff)
downloadserverdata-9dc0659102fb909f888a07d7ac9eb465e227df53.tar.gz
serverdata-9dc0659102fb909f888a07d7ac9eb465e227df53.tar.bz2
serverdata-9dc0659102fb909f888a07d7ac9eb465e227df53.tar.xz
serverdata-9dc0659102fb909f888a07d7ac9eb465e227df53.zip
Stranger Quest (basic draft)
Diffstat (limited to 'npc')
-rw-r--r--npc/017-1/stranger.txt113
1 files changed, 109 insertions, 4 deletions
diff --git a/npc/017-1/stranger.txt b/npc/017-1/stranger.txt
index aede21227..c978bc067 100644
--- a/npc/017-1/stranger.txt
+++ b/npc/017-1/stranger.txt
@@ -4,16 +4,121 @@
// Jesusalva
// Description:
// Special quest, can be done every three months, on days 18~25.
-// Months: January, April, July, October
+// Months: February, May, August, September
017-1,44,37,0 script Stranger#LoF NPC_LOF_STRANGER,{
- hello;
- end;
+ if (gettime(GETTIME_MONTH) % 3 != 2 || gettime(GETTIME_DAYOFMONTH) < 18 || gettime(GETTIME_DAYOFMONTH) > 25) {
+ dispbottom l("An error with Stranger#LoF happened! Please report!!");
+ disablenpc .name$;
+ end;
+ }
+
+ .@q=getq(LoFQuest_Hitchhiker);
+ if (.@q == 2) goto L_Complete;
+ if (.@q == 1) goto L_Quizz;
+ mesn;
+ mesq l("Hello, hello! It's great to see you. Maybe you can help me with a little problem I have.");
+ next;
+ mesn;
+ mesq l("I need some materials to repair my spacesh- ahm, it's not important why I need it."); // Translators: Spacesh(ip)
+ next;
+ mesn;
+ mesq l("Anyway, I'd be really happy if you could give me @@ @@, @@ @@, @@ @@ and @@ @@.",
+ 100, getitemlink(Chagashroom),
+ 3, getitemlink(FluoPowder),
+ 1, getitemlink(TinIngot),
+ 1, getitemlink(TitaniumIngot));
+
+ if (countitem(Chagashroom) < 100 ||
+ countitem(FluoPowder) < 3 ||
+ countitem(TinIngot) < 1 ||
+ countitem(TitaniumIngot) < 1)
+ close;
+ next;
+ mesn;
+ mesq l("Do you have that for me?");
+ if (askyesno() == ASK_NO)
+ close;
+ mes "";
+ // We already checked, cheaters will have their inventory ripped apart and I don't care ~ Jesusalva
+ delitem Chagashroom, 100;
+ delitem FluoPowder, 3;
+ delitem TinIngot, 1;
+ delitem TitaniumIngot, 1;
+ getexp (BaseLevel**2)*5, JobLevel*2;
+ setq LoFQuest_Hitchhiker, 1;
+ mesn;
+ mesq l("Great! Thank you!");
+ next;
+ mesn;
+ mesq l("I have a lot of work to do now. But before you leave...");
+ goto L_Quizz;
+
+L_Quizz:
+ inventoryplace OldTowel, 1;
+ mesn;
+ mesq l("Did you knew May 25th it is a very special day - the Towel Day?");
+ next;
+ mesn;
+ mesq l("To celebrate this I'll ask you some questions about my favourite book, The Hitchhiker's Guide to the Galaxy. If you can answer them, I'll give you something very useful.");
+ next;
+ mesn;
+ mesq l("The answers might need to have whitespaces. DO NOT, BY ALL MEANS, insert two whitespaces instead of one.");
+ mesq l("I'll get so mad at you that even if you are correct, I'll say otherwise. Also, mind special characters.");
+ mesq l("If I don't know the answer in your language, try answering in English. That always works.");
+ mesc l("Are you ready?"), 1;
+ mesc l("There's no time limit on this riddle.");
+ next;
+ if (askyesno() == ASK_NO)
+ close;
+ goto L_Easy;
+
+L_Easy:
+ goto L_Medium;
+
+L_Medium:
+ goto L_Hard;
+
+L_Hard:
+ goto L_Reward;
+
+
+// Failure
+L_Fail:
+ mesn;
+ if (rand(1,2) == 1) {
+ mesq l("Sorry, but that's not right.");
+ next;
+ mesn;
+ mesq l("Come try again, some other time.");
+ } else {
+ mesq l("Nah, that's wrong. Come back if you want to try again.");
+ }
+ close;
+
+// Reward
+L_Reward:
+ getitem OldTowel, 1;
+ // If you complete the quest in May, you get 50% more experience
+ if (gettime(GETTIME_MONTH) == MAY)
+ getexp JobLevel*BaseLevel*3/2, BaseLevel*3;
+ else
+ getexp JobLevel*BaseLevel, BaseLevel*2;
+ close;
+
+// TODO: Enable another quest after main quest has been completed
+// TODO: Completing sub quest on May shall give better bonus (gettime(GETTIME_MONTH) == MAY)
+L_Complete:
+ mesn;
+ mesq l("I have a lot of work to do now.");
+ close;
+// Proccessing Core
OnInit:
+ .sex=G_OTHER;
.distance=5;
OnClock0000:
- if (gettime(GETTIME_MONTH) % 3 == 1) {
+ if (gettime(GETTIME_MONTH) % 3 == 2) {
if (gettime(GETTIME_DAYOFMONTH) >= 18 && gettime(GETTIME_DAYOFMONTH) <= 25) {
enablenpc .name$;
end;