diff options
Diffstat (limited to 'npc/001-2-22/alige.txt')
-rw-r--r-- | npc/001-2-22/alige.txt | 324 |
1 files changed, 324 insertions, 0 deletions
diff --git a/npc/001-2-22/alige.txt b/npc/001-2-22/alige.txt new file mode 100644 index 000000000..70e6058e4 --- /dev/null +++ b/npc/001-2-22/alige.txt @@ -0,0 +1,324 @@ +// Evol scripts. +// Authors: +// Ablu +// Alige +// Qwerty Dragon +// Reid +// Vasily_Makarov +// Description: +// Hidden in a ship's hole. +// 2 bits array: +// ShipQuests +// Variable: +// ShipQuests_Alige +// Values: +// 0 Never talk. +// 1 First talk. +// 2 Accept the task. +// 3 Bring first food. + +001-2-22,43,32,0 script AligeTrigger#Artis NPC_HIDDEN,1,1,{ + +OnTouch: + if (getareausers() <= 1) + { + setnpcdir "Alige#Artis", 2; + stopnpctimer; + initnpctimer; + } + + if (getq(ShipQuests_Alige) > 0) close; + doevent "Alige#Artis::OnFirstEncounter"; + + close; + +OnUnTouch: + if (getareausers() == 0) + { + setnpcdir "Alige#Artis", 4; + stopnpctimer; + initnpctimer; + } + close; + +OnTimer190: + stopnpctimer; + + if (getnpcdir("Alige#Artis") == 2) setnpcdir "Alige#Artis", 6; + if (getnpcdir("Alige#Artis") == 4) setnpcdir "Alige#Artis", 8; + + end; +} + +001-2-22,43,31,0 script Alige#Artis NPC_ALIGE,{ + .@q = getq(ShipQuests_Alige); + if (.@q > 1) goto L_AskForFood; + + goto OnFirstEncounter; + +OnFirstEncounter: + setq ShipQuests_Alige, 1; + + setcamnpc; + mesn "Hidden Person"; + mesq l("Hey, psst! You're not a sailor, right?"); + next; + restorecam; + + menu + lg("I am, who are you?"), -, + lg("Indeed, I am not."), L_NeedHelp; + + mes ""; + mesn "Narrator"; + mes col(l("The stowaway doesn't answer."), 9); + + close; + +L_NeedHelp: + setcamnpc; + mes ""; + mesn "Hidden Person"; + mesq l("Good, good... Hey, could you help me please? I beg you, please, pleeeease..."); + next; + restorecam; + + menu + l("Why not, but who are you, and what kind of help do you need?"), L_CanHelp; + l("Sorry but I have no time for this."), -; + + closedialog; + close; + +L_CanHelp: + setcamnpc; + mes ""; + mesn; + mesq l("My name is Alige, I've been hiding here for weeks. All I have to eat are these berries... berries... berries..."); + next; + mesq l("I'm losing my mind here, I need something else to eat!"); + next; + mesq l("Could you please bring me something which isn't a berry, and I'm not big on vegetables either. I need proteins!"); + next; + restorecam; + + menu + l("Sure, but what will you give me in exchange?"), L_AboutReward, + l("Why don't you come out?"), -; + +L_ExplainHiding: + setcamnpc; + mes ""; + mesn; + mesq l("No, I can't. I won't! All I wanted was to travel across the seas for fun, growl... sniff. And in this hole in the floor, as you can see, I have lots of fun."); + next; + mesq l("Oh... um... actually... all I wanted was to get to Artis. Err... but I didn't, uhm... have enough money to pay for the ferry!"); + next; + mesq l("Please don't tell people you saw me. I don't want to be decapitated or get thrown into the sea as food for sharks, or get my hair mussed!"); + next; + restorecam; + + if (getq(ShipQuests_Alige) == 2) goto L_SoAskForFood; + goto L_Accept; + +L_AboutReward: + setcamnpc; + mes ""; + mesn; + mesq l("I'll share my berries with you if you help me."); + next; + restorecam; + +L_Accept: + menu + l("Understood, I will help you."), L_FirstAccepted, + l("We arrived in Artis today."), L_Artis, + l("I think I should report you to the crew members."), -; + + setcamnpc; + mesq lg("Growl, sniff, grr! You'd better not tell anyone you saw me!"); + + close; + +L_Artis: + setcamnpc; + mes ""; + mesn; + mesq l("Of course, so why do I still see open sea from the porthole?"); + next; + mesq l("I wonder who is in delarium now..."); + next; + mesq l("But hey, back to me. Remember my mentioning that I'm hun...grrr...eee!"); + next; + restorecam; + + if (.@q == 2) goto L_SoAskForFood; + goto L_Accept; + +L_FirstAccepted: + if (getq(ShipQuests_Alige) >= 2) goto L_Accepted; + setq ShipQuests_Alige, 2; + + goto L_Accepted; + +L_Accepted: + setcamnpc; + mes ""; + mesn; + mesq lg("Great, what food do you have for me today?"); + next; + restorecam; + +L_GiveFood: + mes ""; + menuint + rif(countitem(Acorn), l(getitemname(Acorn))), 0, + rif(countitem(Bread), l(getitemname(Bread))), 502, + rif(countitem(Fungus), l(getitemname(Fungus))), 503, + rif(countitem(Cheese), l(getitemname(Cheese))), 504, + rif(countitem(PiouLegs), l(getitemname(PiouLegs))), 505, + rif(countitem(LettuceLeaf), l(getitemname(LettuceLeaf))), 0, + rif(countitem(Piberries), l(getitemname(Piberries))), 2, + rif(countitem(SeaDrops), l(getitemname(SeaDrops))), 1, + rif(countitem(Aquada), l(getitemname(Aquada))), 509, + rif(countitem(PinkBlobime), l(getitemname(PinkBlobime))), 1, + rif(countitem(HalfCroconut), l(getitemname(HalfCroconut))), 512, + rif(countitem(Croconut), l(getitemname(Croconut))), 0, + rif(countitem(Plushroom), l(getitemname(Plushroom))), 515, + rif(countitem(PumpkinSeeds), l(getitemname(PumpkinSeeds))), 1, + rif(countitem(UrchinMeat), l(getitemname(UrchinMeat))), 1, + rif(countitem(EasterEgg), l(getitemname(EasterEgg))), 1, + rif(countitem(PumpkishJuice), l(getitemname(PumpkishJuice))), 527, + rif(countitem(Manana), l(getitemname(Manana))), 528, + rif(countitem(Curshroom), l(getitemname(Curshroom))), 529, + rif(countitem(Carrot), l(getitemname(Carrot))), 530, + rif(countitem(RedPlushWine), l(getitemname(RedPlushWine))), 3, + l("I don't have anything good for you today."), -1; + + .@id = @menuret; + if (.@id == -1) goto L_Quit; // Quit message. + if (.@id == 0) goto L_NoReward; // In case of wrong food. + if (.@id == 1) goto L_Poison; // In case of poisoned food. + if (.@id == 2) goto L_NoMore; // In case of Piberries. + if (.@id == 3) goto L_Drunk; // In case of Alcohol. + if (countitem(.@id) == 0) goto L_Quit; +// if (.@id == item's ID) then food is correct. +// Do not put any other number than -1, 0, 1, 2 or the item's ID, that'll avoid confusion. + + inventoryplace Piberries, 3; + delitem .@id, 1; + + setcamnpc; + mes ""; + mesn; + mesq l("Thank you so much! Here, have some of my berries."); + + setq ShipQuests_Alige, 3; + getitem Piberries, rand(1, 3); + next; + + goto L_ReturnMenu; + +L_NoReward: + setcamnpc; + mes ""; + mesn; + mesq l("You don't expect me to eat that, do you? Give me something else!"); + next; + restorecam; + + goto L_GiveFood; + +L_Drunk: + setcamnpc; + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("I asked for food but... *hips* Ah, that'll do nicely!"); + restorecam; + + goto L_GiveFood; + +L_ReturnMenu: + setcamnpc; + mesq l("Do you have anything else for me?"); + next; + restorecam; + + goto L_GiveFood; + +L_NoMore: + setcamnpc; + mes ""; + mesn; + mesq l("Grr, don't give me more berries! I don't want them, stupid berries, stupid... Stupid... Stupid!"); + next; + + goto L_ReturnMenu; + +L_Poison: + setcamnpc; + mes ""; + mesn; + mesq l("Don't try to poison me! I know what that does!"); + next; + restorecam; + goto L_ReturnMenu; + +L_SoAskForFood: + setcamnpc; + mesn; + mesq l("So, do you have anything for me today?"); + next; + restorecam; + goto L_IntroMenu; + +L_AskForFood: + setcamnpc; + mesn; + mesq l("Do you have anything for me today?"); + next; + restorecam; + +L_IntroMenu: + menu + l("Yes."), L_GiveFood, + l("Where can I find some food?"), L_FindFood, + l("Why are you hiding?") + " " + l("Why don't you come out?"), L_ExplainHiding, + l("We arrived in Artis today."), L_Artis, + l("I think I should report you to the crew members."), -; + + setcamnpc; + mesq lg("Growl, sniff, grr! You'd better not tell anyone you saw me!"); + + close; + +L_FindFood: + setcamnpc; + mes ""; + mesn; + mesq l("There are some flying yellow plushes around you. They're called pious. Getting a roasted leg of one of them would be perfect."); + next; + mesq l("I'd like to catch one of them, but they fly away when I try."); + next; + mesq l("Walking around a bit, it'll be easy for you to catch one, I bet. Impale one of them for me please."); + next; + restorecam; + mesn "Narrator"; + mes col(l("You can attack a monster by clicking on it, or from your keyboard you can press the 'A' key to select the monster followed by 'Ctrl' to attack it."), 9); + next; + mes col(l("Once the monster is dead, click on the dropped items to add them to your inventory. You can also use the 'Z' key to claim the drops."), 9); + + close; + +L_Quit: + setcamnpc; + mes ""; + mesn; + mesq l("Too bad... Come back when you'll have some nice food for me. Growl... grumble... grumble."); + + close; + +OnInit: + .sex = G_MALE; + .distance = 2; + end; +} |