diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/000-2-3/nard.txt | 2 | ||||
-rw-r--r-- | npc/002-4/_import.txt | 1 | ||||
-rw-r--r-- | npc/002-4/nard.txt | 285 |
3 files changed, 287 insertions, 1 deletions
diff --git a/npc/000-2-3/nard.txt b/npc/000-2-3/nard.txt index 86dbe50a2..f54f0f89f 100644 --- a/npc/000-2-3/nard.txt +++ b/npc/000-2-3/nard.txt @@ -24,7 +24,7 @@ // 11 Gugli gives you the task. // 12 Gave all of the boxes to Gugli. -000-2-3,25,26,0 script Nard NPC_NARD,{ +000-2-3,25,26,0 script Nard#000-2-3 NPC_NARD,{ .@nard = getq(ShipQuests_Nard); .@gugli = getq(ShipQuests_Gugli); .@gado = getq(ShipQuests_ChefGado); diff --git a/npc/002-4/_import.txt b/npc/002-4/_import.txt index ad86a9440..4150b4d2e 100644 --- a/npc/002-4/_import.txt +++ b/npc/002-4/_import.txt @@ -1,3 +1,4 @@ // Map 002-4: Nard's Room // This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/002-4/nard.txt", "npc/002-4/_warps.txt", diff --git a/npc/002-4/nard.txt b/npc/002-4/nard.txt new file mode 100644 index 000000000..85dd9a941 --- /dev/null +++ b/npc/002-4/nard.txt @@ -0,0 +1,285 @@ +// Evol scripts. +// Authors: +// Qwerty Dragon +// Reid +// Description: +// Captain Nard dialogs. +// Nard does the introduction with a small quest. +// This quest is meant to teach the player how to use a weapon,and to bring food to the ship. +// 4 bits array: +// ShipQuests +// Variable: +// 0 ShipQuests_Nard +// 1 ShipQuests_Gugli +// 2 ShipQuests_ChefGado +// Values: +// 00 Introduction of the boxes and Nard. This is displayed when the player never spoke to Nard or his box. +// 01 Nard spoke and gave access to the outdoor of the ship. +// 02 Completed the Gugli quest. +// 03 ChefGado Quest accepted. +// 04 ChefGado Quest completed and "Introduction" chapter finalized. +// 05 Reward taken from the box. +// 06 Intro finished +// 10 Never talked with Gugli. +// 11 Gugli gives you the task. +// 12 Gave all of the boxes to Gugli. + +002-4,25,26,0 script Nard NPC_NARD,{ + .@nard = getq(ShipQuests_Nard); + .@gugli = getq(ShipQuests_Gugli); + .@gado = getq(ShipQuests_ChefGado); + .@narrator = getq(General_Narrator); + +L_Checker: + if (.@gado > 3 && .@nard == 3) goto L_ChefQuestComplete; + if (.@nard == 2) goto L_ChefQuestStart; + if (.@nard == 3) goto L_ChefQuestGiven; + if (.@nard == 4) goto L_Reward; + if (.@nard > 5) goto L_GoBackArtis; + if (.@nard > 4) goto L_Already; + if (.@gugli == 2) goto L_Done; + if (.@nard == 1) goto L_NotYet; + if (.@narrator == 1) goto L_Reward; // TODO + + mesn; + mesq l("Hello."); + next; + mesq l("Let me introduce myself, I am Nard, captain of this ship."); + next; + mesq lg("I am pleased to see that you have woken up and are active. Elmo came here to tell me this good news!"); + next; + + //setcamnpc "Elmo"; + //mesn "Elmo"; + //mesq l("Oh... Err, yes I did, or, well, good day to you!"); + //next; + //restorecam; + + mesn; + mesq l("Hehehe, he is a bit nervous, please forgive him, it is not everyday we have a new member in the crew!"); + next; + mesq l("So, how do you feel? I see that Juliet did a marvelous job! You look like you're in good health now."); + next; + +L_Menu: + menu + lg("I feel ok."), L_Ok, + l("Who's this Juliet?"), L_Juliet, + lg("I'm a bit sick..."), -; + + mes ""; + mesn; + mesq l("Oh, I was going to ask you if you wanted to help the crew search for some food and explore the island out there."); + next; + +L_MenuQuest: + //menu + // l("What do you need?"), -, + // l("Is there a reward?"), L_NeedHead, + // l("Wait, you never came here before?"), L_DrasilIsland; + + //mes ""; + //mesn; + //mesq l("Oh! I like that sort of answer!"); + //next; + //mesq lg("We need manpower on the island... Oh forgive me, women are also welcome, of course.", "We need manpower on the island."); + mesn; + mesq l("Ship travels are not free. See if you can gather some money, and I'll bring you to Tulishmar!"); + next; + mesn; + mesq l("Why Tulishmar, you say? Because well, believe me, if you want to find out anything, the best place to ask around is Tulim!"); + setq General_Narrator, 1; + close; + + //goto L_NeedContent; + +L_NeedHead: + mes ""; + mesn; + mesq l("Of course there is a reward for your task."); + next; + mesq l("Hard work always pays off!"); + next; + mesq l("What? It's not good enough?"); + next; + +L_NeedContent: + mesq l("Our crew is like a family, and if you agree to help us, I would like to invite you to join our family!"); + next; + mesq l("Hmm, I'll also give you one of these hats from the box near you, but only after you complete your task!"); + next; + mesq l("Here, take this key, it opens all the doors on this ship."); + next; + mesq l("Now go outside and talk to Gugli, he'll tell you what we need."); + next; + + inventoryplace JohanneKey, 1; + + setq ShipQuests_Nard, 1; + getitem JohanneKey, 1; + + close; + +L_Ok: + mes ""; + mesn; + mesq l("Good to know."); + next; + mesq l("We have made a stop at a little island, before making it on to the port of Artis."); + next; + mesq l("It would be good for you to do some exercise, the ship isn't big enough for that."); + next; + + goto L_SpecialTask; + +L_Juliet: + mes ""; + mesn; + mesq l("You have an awful case of amnesia."); + next; + mesq l("She is the nurse and shipkeeper of this ship."); + next; + mesq lg("But most important, she is the one who took care of you when you were unconscious."); + next; + +L_SpecialTask: + mesq l("I know that you are just starting to feel better, but I'd like you to explore the island we're currently at."); + next; + + goto L_MenuQuest; + +L_DrasilIsland: + mes ""; + mesn; + mesq l("To be honest, no, never."); + next; + mesq l("But discovering new territories is probably the best thing that can happen to sailors, don't you think?"); + next; + mesq l("I'm really excited, this place reminds me of an ancient mythical tree, you might know what I'm talking about..."); + emotion E_WINK; + next; + mesq l("As captain of this ship, I officially name this newly discovered land the ##BDrasil Island##b!"); + next; + mesq l("Now, lets get back to business."); + next; + + goto L_NeedContent; + +L_NotYet: + mesn; + mesq l("You still haven't completed your tasks."); + close; + +L_Done: + mesn; + mesq l("Hi @@.", strcharinfo(0)); + next; + mesq l("Elmo and Gugli told me that you did all of the tasks outside, congrats!"); + + setq ShipQuests_Nard, 2; + next; + goto L_ChefQuestRedir; + +L_ChefQuestStart: + mesn; + mesq lg("Elmo told me you are now considered family and are numbered among us in our activities on the island. I do so very much appreciate the efforts you did down there."); + next; + +L_ChefQuestRedir: + mesq l("Unfortunately, we still need help from you. This time it will be a delicate task, here onboard."); + next; + mesq l("Elmo brought reports to me about some frictions between my old and new lieutenants. You probably already met Juliet and Chef Gado."); + next; + mesq l("They are each valued individuals and I need them both. In the past, I probably made my share of mistakes. I regret good management is so difficult. I was wondering if you could investigate and... Sort out this situation."); + next; + + select + l("Of the two of them, who has 'good' on their side?"); + + mes ""; + mesq l("I do not want to go pointing my finger at someone. I want to be honorable and fair, and I sense the same quality in you, so I put my trust in you. I am sure you will be able to judge and solve this troubling situation."); + + setq ShipQuests_Nard, 3; + + close; + +L_ChefQuestGiven: + mesn; + mesq l("It seems you still have some work to do."); + + close; + +L_ChefQuestComplete: + mesn; + mesq l("Congratulations!"); + next; + mesq l("You are now officially part of my crew! Thanks again for your help."); + next; + mesq l("Take your reward from the box next to my desk!"); + next; + + select + l("I will take it! Thank you captain!"); + + setq ShipQuests_Nard, 4; + getexp 50, 0; + +// Need to add a skill for the crew at this line. + mes ""; + +L_Already: + speech + l("I recommend you to take a nap on the inferior level, we will soon leave this place."); + + close; + +L_GoBackArtis: + checkclientversion; + speech S_LAST_NEXT, + l("Enough of this island?"), + l("Where would you like to go now?"); + switch (select(l("Let's go to Artis."), + l("Tell me, where are we right now?"), + l("I would like to stay here a bit more."))) + { + case 1: + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Let's set sail then!"); + + savepoint "001-2-22", 50, 38; + if (!getmapxy(.@map$, .@x, .@y, 0)) + { + warp "001-2-24", .@x, .@y; + } + else + { + warp "001-2-24", 22, 27; + } + + closedialog; + close; + + case 2: + closedialog; + npctalk3 l("This is Drasil Island, I named it after an ancient mythical tree."); + close; + + case 3: + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Ok I stay here with my paperwork if you need my help."); + + closedialog; + close; + } + +L_Reward: + mesn; + mesq l("It is still not enough. Go back to work!"); + + close; + +OnInit: + .sex = G_MALE; + .distance = 5; + end; +} |