// TMW-2 Script // Author: // Jesusalva // Description: // Legendary hero // I started with 'Greetings, citzen' and then I thought on 4144. // He would never do such formal, hero-ish introduction. So I decided for something // more realistic, which sounded like a human hero (ie. a normal player). 012-1,75,58,0 script Andrei Sakar NPC_ANDREI,{ mesn l("Andrei Sakar, Legendary Hero"); if ($NLIB_DAY) goto L_Quizz; L_Default: if (strcharinfo(0) == $MOST_HEROIC$) mesq l("Hi, @@.", strcharinfo(0)); else mesq l("Hi."); close; L_Quizz: .@q=getq3(Q_NivalisLibday); if (.@q == 0) { setq3 Q_NivalisLibday, 100; .@q=100; } else if (.@q > 100) { goto L_Default; } mesq l("We are assembling forces to take Nivalis back."); mesq l("I'll make you five questions about lore and general knowledge. You'll have 30 seconds to read and answer each."); mesq l("If you finish everything, and answer everything right, you may get a reward."); mesq l("If you take too long you'll be penalized."); mesq l("Do you want to start?"); next; if (askyesno() == ASK_NO) close; mes ""; addtimer(30000, "Andrei Sakar::OnTooLong"); .@q=getq3(Q_NivalisLibday); setq3 Q_NivalisLibday, .@q-7; mesn; mesq l("Did you really thought I would allow you to read the question answers on the source code?"); select l("Yes."), l("You really should."), l("Of course."), l("It was worth the shot."); mes ""; deltimer("Andrei Sakar::OnTooLong"); if (@menu == 4) { .@q=getq3(Q_NivalisLibday); setq3 Q_NivalisLibday, .@q+7; mesn; mesq l("That's right."); next; } else { mesn; mesq l("Sorry, but that's wrong."); close; } mesn; .@q=getq3(Q_NivalisLibday); // You cannot go above 100 points. if (.@q > 100) { mesq l("...More bugs."); mesc l("A bug was found. Aborting script."), 1; close; } else if (.@q == 100) { mesq l("Congratulations. You really know about the world lore."); getitem HastePotion, 2; getitem StrengthPotion, 2; getitem Bread, 5; } else if (.@q > 90) { mesq l("Outstanding. Congratulations."); getitem HastePotion, 2; getitem StrengthPotion, 2; getitem Bread, 4; } else if (.@q > 75) { mesq l("Good, knowing the world lore is important."); getitem HastePotion, 1; getitem StrengthPotion, 1; getitem Bread, 4; } else if (.@q > 50) { mesq l("Good job."); getitem HastePotion, 1; getitem StrengthPotion, 1; getitem Bread, 2; } else if (.@q > 25) { mesq l("Well, that was bad, but at least you know a bit from story."); getitem Bread, 2; } else if (.@q > 0) { mesq l("Terrible. You know almost nothing from world lore..."); getitem Bread, 1; } else { mesq l("You really should read the dialogs."); } // If you got a negative value, this will default to 1. getexp .@q*BaseLevel, .@q*JobLevel; setq3 Q_NivalisLibday, 9999; close; OnTooLong: .@q=getq3(Q_NivalisLibday); setq3 Q_NivalisLibday, .@q-21; npctalk3 l("You took too long to answer."); close; OnInit: .sex = G_MALE; .distance = 5; end; }