summaryrefslogtreecommitdiff
path: root/npc/001-2-22/alige.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-2-22/alige.txt')
-rw-r--r--npc/001-2-22/alige.txt324
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;
+}