summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GNUmakefile7
-rw-r--r--world/map/conf/.gitignore3
-rwxr-xr-xworld/map/conf/build-magic.sh19
-rw-r--r--world/map/conf/magic-secrets.sex.template241
-rw-r--r--world/map/npc/002-2/stranger.txt235
-rw-r--r--world/map/npc/functions/quiz.txt5
-rw-r--r--world/map/npc/functions/strangerquiz.txt8
-rw-r--r--world/map/npc/magic/README.md18
-rw-r--r--world/map/npc/scripts.conf1
9 files changed, 99 insertions, 438 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 85989f6a..8f124784 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -7,16 +7,11 @@ maps:
% : | %.example
cp "$|" "$@"
-conf: world/map/conf/magic-secrets.sex \
-login/conf/login_local.conf login/conf/ladmin_local.conf login/save/gm_account.txt login/save/account.txt \
+conf: login/conf/login_local.conf login/conf/ladmin_local.conf login/save/gm_account.txt login/save/account.txt \
world/conf/char_local.conf \
world/map/conf/map_local.conf world/map/conf/battle_local.conf world/map/conf/atcommand_local.conf world/map/db/const-debugflag.txt \
world/map/npc/functions/motd.txt world/map/npc/commands/_atcommand_local.txt
-world/map/conf/magic-secrets.sex: world/map/conf/magic-secrets.sex.template world/map/conf/secrets-build
- cd world/map/conf && ./build-magic.sh
-world/map/conf/secrets-build:
-
format:
find world/map/npc -type f -exec sed -ri \
-e "s%([^|]+)\|script\|([^|]+)\|-1%\1|script|\2|32767%ig" \
diff --git a/world/map/conf/.gitignore b/world/map/conf/.gitignore
index c2b48eb6..2c43e911 100644
--- a/world/map/conf/.gitignore
+++ b/world/map/conf/.gitignore
@@ -1,4 +1 @@
/*_local.conf
-/magic-secrets.conf
-/magic-secrets.sex
-/secrets-build
diff --git a/world/map/conf/build-magic.sh b/world/map/conf/build-magic.sh
deleted file mode 100755
index 77337df7..00000000
--- a/world/map/conf/build-magic.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /bin/bash
-
-OUTPUT=magic-secrets.sex
-INPUT=$OUTPUT.template
-RSCRIPT=secrets-build
-
-if ! grep -q -s '/bin/sed' $RSCRIPT; then
- echo '#! /bin/sed -f' > $RSCRIPT;
- chmod a+x $RSCRIPT
-fi
-
-for n in `grep -o '"#..."' $INPUT`; do
- if ! grep -q $n $RSCRIPT; then
- echo "New secret ${n} needs to be set in $RSCRIPT!"
- echo "s/${n}/${n}/" >> $RSCRIPT;
- fi
-done
-
-./$RSCRIPT $INPUT > $OUTPUT
diff --git a/world/map/conf/magic-secrets.sex.template b/world/map/conf/magic-secrets.sex.template
deleted file mode 100644
index 78d5e5d7..00000000
--- a/world/map/conf/magic-secrets.sex.template
+++ /dev/null
@@ -1,241 +0,0 @@
-" coding of generic spellinvocations"
-" #[indicates difficulty level][indicates questionnumber][indicates answerpossibility]"
-" X = easy; Y = medium; Z = hard"
-" each question have a number of possible answers (mostly using capital letters or not)"
-(SPELL (NONMAGIC) towelanswer00a "#X00" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer00b "#X01" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer01a "#X10" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer01b "#X11" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer02a "#X20" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer02b "#X21" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer03a "#X30" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer03b "#X31" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer04a "#X40" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer04b "#X41" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer05a "#X50" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer05b "#X51" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer05c "#X52" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer05d "#X53" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer06a "#X60" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer06b "#X61" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer06c "#X62" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer06d "#X63" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer07a "#X70" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer07b "#X71" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer08a "#X80" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer08b "#X81" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer08c "#X82" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer08d "#X83" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer09a "#X90" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer09b "#X91" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer10a "#Y00" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer10b "#Y01" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer11a "#Y10" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer11b "#Y11" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer12a "#Y20" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer12b "#Y21" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer13a "#Y30" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer13b "#Y31" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer14a "#Y40" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer14b "#Y41" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer15a "#Y50" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer15b "#Y51" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer15c "#Y52" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer16a "#Y60" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer16b "#Y61" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer17a "#Y70" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer17b "#Y71" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer18a "#Y80" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer18b "#Y81" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer18c "#Y82" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer18d "#Y83" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer19a "#Y90" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer19b "#Y91" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer19c "#Y92" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer19d "#Y93" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer110a "#YA0" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer110b "#YA1" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer111a "#YB0" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer111b "#YB1" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer20a "#Z00" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer20b "#Z01" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer20c "#Z02" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer20d "#Z03" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer21a "#Z10" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer21b "#Z11" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer22a "#Z20" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer22b "#Z21" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer23a "#Z30" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer23b "#Z31" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer24a "#Z40" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer24b "#Z41" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer25a "#Z50" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer25b "#Z51" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer26a "#Z60" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer26b "#Z61" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer27a "#Z62" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer27b "#Z63" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer27c "#Z70" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer27d "#Z71" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer28a "#Z72" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer28b "#Z73" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer29a "#Z80" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
-(SPELL (NONMAGIC) towelanswer29b "#Z81" ()
- (EFFECT
- (SCRIPT "{ message strcharinfo(0), \"\"; }")))
diff --git a/world/map/npc/002-2/stranger.txt b/world/map/npc/002-2/stranger.txt
index 8186636b..1367e6f7 100644
--- a/world/map/npc/002-2/stranger.txt
+++ b/world/map/npc/002-2/stranger.txt
@@ -58,171 +58,104 @@ L_Towel:
mes "\"The first one is easy.\"";
next;
- setarray @easy_questions$,
- "What two words are written in big friendly letters on the back cover?",
- "What's the name of the paranoid robot?",
- "What is the answer to life, the universe and everything?",
- "What is the first name of the author of the hitchhikers guide?",
- "What is the last name of the author of the hitchhikers guide?",
- "Who is the male human protagonist?",
- "Who is the female human protagonist?",
- "According to the Guide, space is ____?",
- "What is the name of the spaceship which was stolen by the president of the universe?",
- "How many heads does Zaphod Beeblebrox have?";
-
- setarray @easy_answers_amount,2,2,2,2,2,4,4,2,4,2;
-
- set @random, rand(10);
- mes "\"" + @easy_questions$[@random] + "\"";
- input @answer$;
-
- if (@easy_answers_amount[@random] < 4)
- goto L_Easy_Skip4;
- set @quizparam$, "towelanswer0" + @random + "d";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Easy;
- goto L_Easy_Skip4;
-
-L_Easy_Skip4:
- if (@easy_answers_amount[@random] < 3)
- goto L_Easy_Skip3;
- set @quizparam$, "towelanswer0" + @random + "c";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Easy;
- goto L_Easy_Skip3;
-
-L_Easy_Skip3:
- set @quizparam$, "towelanswer0" + @random + "b";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Easy;
-
- set @quizparam$, "towelanswer0" + @random + "a";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Easy;
-
- goto L_Wrong_Answer;
-
-L_Right_Answer_Easy:
+ setarray @quiz_questions$[0],
+ "What two words are written in big friendly letters on the back cover?",
+ "What's the name of the paranoid robot?",
+ "What is the answer to life, the universe and everything?",
+ "What is the first name of the author of the hitchhikers guide?",
+ "What is the last name of the author of the hitchhikers guide?",
+ "Who is the male human protagonist?",
+ "Who is the female human protagonist?",
+ "According to the Guide, space is ___?",
+ "What is the name of the spaceship which was stolen by the president of the universe?",
+ "How many heads does Zaphod Beeblebrox have?";
+ setarray @quiz_answers$[0],
+ "Don't Panic",
+ "Marvin",
+ "42",
+ "Douglas",
+ "Adams",
+ "Arthur Philip Dent",
+ "Trillian",
+ "Big",
+ "Heart of Gold",
+ "2";
+
+ callfunc "MultiQuiz";
+ if (@success == 0) goto L_Wrong_Answer;
+
mes "[Stranger]";
mes "\"You're absolutely right. The next one will be more tricky.\"";
next;
- setarray @medium_questions$,
- "What is the name of the rock group claiming to be the loudest band in the universe?",
- "What star is near Ford's home planet?",
- "Which country does the human protagonist come from?",
- "What is the name of the computer on The Heart of Gold?",
- "What color is a Babel Fish?",
- "What did the bowl of petunias think?",
- "What body orifice should a babel fish be inserted in to work properly?",
- "What is the name of the super computer?",
- "What were the second most intelligent creatures on Earth?",
- "What race creates the worst poetry in universe?",
- "What is the name of the Vogon home planet?",
- "What is the name of the Restaurant at the End of the Universe?";
-
- setarray @medium_answers_amount,2,2,2,2,2,3,2,2,4,4,2,2;
-
- set @random, rand(12);
- mes "\"" + @medium_questions$[@random] + "\"";
- input @answer$;
-
- if (@medium_answers_amount[@random] < 4)
- goto L_Medium_Skip4;
-
- set @quizparam$, "towelanswer1" + @random + "d";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Medium;
- goto L_Medium_Skip4;
-
-L_Medium_Skip4:
- if (@medium_answers_amount[@random] < 3)
- goto L_Medium_Skip3;
- set @quizparam$, "towelanswer1" + @random + "c";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Medium;
- goto L_Medium_Skip3;
-
-L_Medium_Skip3:
- set @quizparam$, "towelanswer1" + @random + "b";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Medium;
-
- set @quizparam$, "towelanswer1" + @random + "a";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Medium;
-
- goto L_Wrong_Answer;
-
-L_Right_Answer_Medium:
+ setarray @quiz_questions$[0],
+ "What is the name of the rock group claiming to be the loudest band in the universe?",
+ "What star is near Ford's home planet?",
+ "Which country does the human protagonist come from?",
+ "What is the name of the computer on The Heart of Gold?",
+ "What color is a Babel Fish?",
+ "What did the bowl of petunias think?",
+ "What body orifice should a babel fish be inserted in to work properly?",
+ "What is the name of the super computer?",
+ "What were the second most intelligent creatures on Earth?",
+ "What race creates the worst poetry in universe?",
+ "What is the name of the Vogon home planet?",
+ "What is the name of the Restaurant at the End of the Universe?";
+ setarray @quiz_answers$[0],
+ "Disaster Area",
+ "Betelgeuse",
+ "England",
+ "Eddie",
+ "Yellow",
+ "Oh no, not again",
+ "Ear",
+ "Deep Thought",
+ "Dolphins",
+ "Vogons",
+ "Vogsphere",
+ "Milliways";
+
+ callfunc "MultiQuiz";
+ if (@success == 0) goto L_Wrong_Answer;
+
mes "[Stranger]";
mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\"";
next;
- setarray @hard_questions$,
- "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?",
- "How many pints of beers should you drink before hitchhiking?",
- "What initials are carved into Zaphod Beeblebrox's brain?",
- "What is Ford Prefect's nickname?",
- "Who is responsible for the fjords of Norway?",
- "What game is played on earth as a relict of memories to an ancient war?",
- "What is the name of the triple-breasted whore from Eroticon VI?",
- "Who will insult every living being in the universe, because he is immortal and getting bored?",
- "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?";
-
- setarray @hard_answers_amount,4,2,2,2,2,2,2,4,2;
-
- set @random, rand(9);
- mes "\"" + @hard_questions$[@random] + "\"";
- input @answer$;
-
- if (@hard_answers_amount[@random] < 4)
- goto L_Hard_Skip4;
- set @quizparam$, "towelanswer2" + @random + "d";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Hard;
- goto L_Hard_Skip4;
-
-L_Hard_Skip4:
- if (@hard_answers_amount[@random] < 3)
- goto L_Hard_Skip3;
- set @quizparam$, "towelanswer2" + @random + "c";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Hard;
- goto L_Hard_Skip3;
-
-L_Hard_Skip3:
- set @quizparam$, "towelanswer2" + @random + "b";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Hard;
-
- set @quizparam$, "towelanswer2" + @random + "a";
- callfunc "StrangerQuiz";
- if (("###" + @answer$ == @quizanswer$))
- goto L_Right_Answer_Hard;
-
- goto L_Wrong_Answer;
-
-L_Right_Answer_Hard:
+ setarray @quiz_questions$[0],
+ "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?",
+ "How many pints of beers should you drink before hitchhiking?",
+ "What initials are carved into Zaphod Beeblebrox's brain?",
+ "What is Ford Prefect's nickname?",
+ "Who is responsible for the fjords of Norway?",
+ "What game is played on earth as a relict of memories to an ancient war?",
+ "What is the name of the triple-breasted whore from Eroticon VI?",
+ "Who will insult every living being in the universe, because he is immortal and getting bored?",
+ "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?";
+ setarray @quiz_answers$[0],
+ "Pan Galactic Gargle Blaster",
+ "3",
+ "ZB",
+ "Ix",
+ "Slartibartfast",
+ "Cricket",
+ "Eccentrica Gallumbits",
+ "Wowbagger",
+ "Agrajag";
+
+ callfunc "MultiQuiz";
+ if (@success == 0) goto L_Wrong_Answer;
+
mes "[Stranger]";
mes "\"Unbelievable! You're really a wise person.\"";
next;
mes "\"One last question, but this shouldn't be a problem for you.\"";
next;
mes "\"What is the most important item for every hitchhiker to have?\"";
- input @answer$;
- if (@answer$ != "Towel" && @answer$ != "towel")
+ mes "";
+ mes "##BDrag & drop the item from your inventory##b.";
+ requestitem @answer$;
+ if (@answer$ != "Towel" && @answer$ != "HitchhikersTowel")
goto L_Wrong_Answer;
mes "[Stranger]";
diff --git a/world/map/npc/functions/quiz.txt b/world/map/npc/functions/quiz.txt
index ea10a3c4..0f2f7c87 100644
--- a/world/map/npc/functions/quiz.txt
+++ b/world/map/npc/functions/quiz.txt
@@ -1,3 +1,8 @@
+// FIXME/TODO: some variables should be scoped, and some other variables
+// combined in an array, with a very specific name, to avoid
+// collisions. The script as a whole should be optimized to
+// take advangage of magic-v3
+
function|script|MultiQuiz
{
if((getarraysize(@quiz_answers$) != getarraysize(@quiz_questions$)) ||
diff --git a/world/map/npc/functions/strangerquiz.txt b/world/map/npc/functions/strangerquiz.txt
deleted file mode 100644
index 3427a0ee..00000000
--- a/world/map/npc/functions/strangerquiz.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-function|script|StrangerQuiz
-{
- // param @quizparam$$
- // return in @quizanswer$
- set @quizanswer$, (@quizparam$);
- return;
-}
diff --git a/world/map/npc/magic/README.md b/world/map/npc/magic/README.md
index 1ba351d1..89d0fe12 100644
--- a/world/map/npc/magic/README.md
+++ b/world/map/npc/magic/README.md
@@ -1,15 +1,15 @@
# To-do
- [X] finish the missing spells and push them so they can be tested
- [ ] Deal with the removal of the following spells from magic to NPCs or Commands
- - Ched
- - [ ] merge-concentration-potions
- - [ ] Auldsbel
- - [ ] make-short-tanktop
- - [ ] make-tanktop
- - [ ] make-shirt
- - [ ] make-concentration-potion
- - Wyara
- - [ ] sense-spouse
+ - [X] Ched
+ - [ ] merge-concentration-potions
+ - [ ] Auldsbel
+ - [ ] make-short-tanktop
+ - [ ] make-tanktop
+ - [ ] make-shirt
+ - [ ] make-concentration-potion
+ - [X] Wyara
+ - [ ] sense-spouse
---
---
diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf
index 68a348e1..57aa43e0 100644
--- a/world/map/npc/scripts.conf
+++ b/world/map/npc/scripts.conf
@@ -14,7 +14,6 @@ npc: npc/functions/mob_points.txt
npc: npc/functions/process_equip.txt
npc: npc/functions/slot_machine.txt
npc: npc/functions/soul_menhir.txt
-npc: npc/functions/strangerquiz.txt
npc: npc/functions/time.txt
npc: npc/functions/water_bottle.txt
npc: npc/functions/evil_obelisk.txt