// TMW2 scripts. // Authors: // Jesusalva // TMW Org. // Description: // Controls access to Blue Sage Residence // Minimum level: 36 (implicit) // Minimum jblvl: 16 (implicit) // NivalisQuest_BlueSage STRUCTURE // FIELD 1: // INVESTIGATION // 1 - STBY OUTSIDE // 2 - ACCESS GRANTED // 3 - QUEST ASSIGNED BY PEETU - talk to Oskari (and others) // 4 - Oskari is OK with peetu, but wanna hear from others. He also sends you // to ask what Peetu happened // 5 - Adultered ingredients seems the cause, report to Elias // 6 - Elias is now worried about a visitor. Ask people about and report. // 7 - If everyone found the visitor, confirm Elias the worries // 8 - Elias sent you to Oskari to inform the issue. Blue Sage probably knew all along. // will not advance unless everyone thinks Peetu is good. // 9 - Oskari accepts the cause. Tells to report Peetu that it probably was // a saboutage, to check if the Silk Cocoon really was there. // 10 - Peetu confirmed the saboutage. Report to Blue Sage. // 11 - Blue Sage accepted the evidence, and explains about other sages issues. // It's not known who or what is behind this. He excuses for making you waste // your time. He asks you to return to him later, as he needs to write letters. // 12 - QUEST COMPLETE - You collected your reward // Also picked up a letter for Frostia Mayor, about the incident (Main Story). // FIELD 2: // Bitwise (BS_QVISITOR) // FIELD 3: // Bitwise (BS_QHELPER) 020-7,44,41,0 script #BlueSageEntry NPC_HIDDEN,1,1,{ OnTouch: .@q=getq(NivalisQuest_BlueSage); if (.@q < 2) { slide 42, 43; doevent "Elias::OnAccessDenied"; } end; } // Here we start 020-7,40,41,0 script Elias NPC_BLUESAGEWORKER_MB,{ function eliasWorry; function eliasQuestion; function eliasThankyou; function eliasConfirmed; mesn; mesq l("Hello, and welcome to Blue Sage's Residence, Library, and Nivalis Townhall."); .@q=getq(NivalisQuest_BlueSage); if (.@q >= 2) goto L_Main; next; mesn; mesq l("Due to a recent incident involving slimes, the building is closed to public visits."); .@qn=getq(General_Narrator); mes ""; select l("That's sad to hear."), rif(.@qn == 10 && !.@q, l("I have a letter from Rakinorf.")), rif(.@q == 1, l("So? How was it?")), l("What happened?"); mes ""; switch (@menu) { case 2: mesn; mesq l("Oh, you must be from Hurnscald Household, then. Hand me the letter, I'll have it delivered."); next; mesn; mesq l("Please wait here a short while."); setq NivalisQuest_BlueSage, 1, 0, 0; break; case 3: mesn; mesq l("Yes, the Blue Sage will see you."); next; mesn; mesq l("Please don't mind the mess, there are slimes everywhere, thanks to Peetu."); next; mesn; mesq l("You may pass. The Sage is on the library waiting for you."); setq NivalisQuest_BlueSage, 2, 0, 0; break; case 4: mesn; mesq l("Slimes are on the loose. They have escaped, ate several books, and some are still in the building."); next; mesn; mesq l("Some are dangerous, too. Even if you look capable of fighting, the Blue Sage instructed me to prevent anyone from visiting until the mess is cleared."); break; } //goodbye; close; L_Main: next; // .@q is preserved when you use goto switch (.@q) { case 1: case 2: case 3: case 4: case 5: eliasQuestion(); break; case 6: eliasWorry(); break; case 7: case 8: eliasConfirmed(); break; case 9: case 10: case 11: eliasThankyou(); break; default: mesn; mesq l("I heard you have been assisting the household staff. For that, I am thankful."); break; } close; // Elias is worried with visitor and asks for insights function eliasWorry { .@q2=getq2(NivalisQuest_BlueSage); if (.@q2 == BS_NPCALL) { setq1 NivalisQuest_BlueSage, 7; eliasConfirmed(); close; } mesn; mesq l("After your questions I'm really getting worried about this guy with the mask. In retrospect it really seems suspicous."); next; mesn; mesq l("It might be a good idea to ask around if anyone else observed something odd connected to this person."); return; } // Suspections Confirmed, report back function eliasConfirmed { mesn; mesq l("I heard your investigations reminded other people that they observed suspicious behaviour too."); next; mesn; mesq l("It's all my fault, I should've paid more attention! You should talk to Chief Oskari about this."); if (getq(NivalisQuest_BlueSage) == 7) setq1 NivalisQuest_BlueSage, 8; return; } // Waiting quest to end function eliasThankyou { mesn; mesq l("Now that Chief Oskari knows about the sequence of events, the Sage will take care of it. It's really a shame how malicious people can be."); next; mesn; mesq l("Thanks a lot for your help revealing the truth."); return; } // Main question to Elias function eliasQuestion { select l("Peetu thinks someone put Silk Cocoon along the ingredients."), l("Thanks, pal. I still got some matters to discuss with the Blue Sage if you excuse me."); mes ""; if (@menu == 2) { mesn; mesq l("Yes, of course. We have good relations with Hurnscald Town, so you're welcome."); close; } mesn; mesq l("So, Peetu didn't check the ingredients before casting? That's... Well, I don't know."); next; mesn; mesq l("But that is unlikely, we have no reason to sabotage our own work! You saw the mess it caused. Everyone knew it was important."); next; mesn strcharinfo(0); mesq l("Hmm, it might be a hunch but... Can you tell me if there were any unusual visitors before the incident?"); next; mesn; mesq l("Mh, let me think. There were quite a few visitors with different concerns, but that's usual at this time of the year."); next; mesn; mesq l("One of them was a bit odd, they were wearing a mask and had a strange way of talking. They said they came from Frostia, which is an elven town in the north. Elves are usually shy, so I thought it would have been rude to ask them to remove the mask."); next; mesn; mesq l("If I remember correctly they wanted to see the library. They looked like a man, but you never know."); next; mesn; mesc l("Elias gets a bit excited."); mesq l("Do you think he may have had something to do with the accident? We're a very hospitable house, so I didn't see a reason to deny him the entrance. I mean, his mask might have been a bit unusual, but hey, there could've been many reasons why someone would wear a mask, don't you think?"); setq1 NivalisQuest_BlueSage, 6; next; eliasWorry(); return; } OnAccessDenied: npctalk3 l("You can't go in there!"); end; OnInit: .sex=G_MALE; .distance=5; end; }