From 19459f204040ce070f77086a8349af117bf081c5 Mon Sep 17 00:00:00 2001 From: Joseph Botosh Date: Sun, 23 Aug 2015 00:52:30 +0300 Subject: Katja quest --- npc/001-1/_import.txt | 1 + npc/001-1/katja.txt | 112 +++++++++++++++++++++--- npc/001-1/trees.txt | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 339 insertions(+), 10 deletions(-) create mode 100644 npc/001-1/trees.txt (limited to 'npc') diff --git a/npc/001-1/_import.txt b/npc/001-1/_import.txt index ac82acba..69685a36 100644 --- a/npc/001-1/_import.txt +++ b/npc/001-1/_import.txt @@ -23,3 +23,4 @@ npc: npc/001-1/taree.txt npc: npc/001-1/treeleaf.txt npc: npc/001-1/trozz.txt npc: npc/001-1/xilaxa.txt +npc: npc/001-1/trees.txt diff --git a/npc/001-1/katja.txt b/npc/001-1/katja.txt index bd422140..aad2641e 100644 --- a/npc/001-1/katja.txt +++ b/npc/001-1/katja.txt @@ -1,32 +1,124 @@ // Evol scripts. -// Author: +// Authors: // Reid +// Travolta // Description: // Little girl playing around the hill on top of the port. +// She wants you to find her brother. +// Variables: +// AtrilQuests_LazyBrother = 19 -- quest var +// LazyBrother_TreesLeft = 15 -- how many trees left to search +// LazyBrother_TreeSearched[15] -- whether given tree was searched +// LazyBrother_TreeWithBrother -- the number of tree where he's hiding +// Quest states: +// 0 - quest not started +// 1 - Katja asked help, searching the trees +// 2 - Bobo is found, "bad" ending +// 3 - player decided to tell Katja where her brother is +// 4 - "good" ending, player helped Katja 001-1,164,44,0 script Katja#001-1 NPC_RAIJIN_GIRL,{ + + function QuestReminder { + setcam 5920, 960; + mesq l("Remember, you have to find my brother on the hill to the east from here"); + next; + mesq l("He is probably hiding on one of the trees. Go close to each tree and look up, otherwise you won't notice him."); + next; + restorecam; + } + + .@q = getq(ArtisQuests_LazyBrother); mesn; mesq l("Hey"); next; - mesq l("You look funny, do you want to play with me?"); - - switch (select("Of course!:What game do you want to play?:I don't have much time right now.")) + switch(.@q) { + case 0: + mesq l("You look nice, do you want to help me?"); + break; case 1: + mesq l("Hi, how is it going?"); + next; + select l("Remind me, what should I do?"); + mes ""; + mesn; + QuestReminder; + close; + case 2: + mesq l("I still didn't find my brother..."); + close; + case 3: + mesq l("Did you find my brother?"); + next; + select(l("Yes, and he promised to be home soon")); + mes ""; + mesn; + mesq l("Oh thank you so much!"); + next; + mesq l("Please take this lollypop for your help. Mum sais they are bad for my teeth anyway (FIXME)"); + setq ArtisQuests_LazyBrother, 4; + getitem 509, 1; + getexp 500, 0; + close; + case 4: + mesq l("Thank you again for your help!"); + close; + } + next; + switch (select(l("Of course!"), + l("What kind of help do you need?"), + l("I don't have much time right now."))) + { + case 1: + mes ""; + mesn; + mesq l("Great!"); + next; + // emote *epic* break; case 2: - + mes ""; + mesn; break; case 3: - - break; + mes ""; + mesn; + mesq l("Okay, I'll be here, if you change your mind."); + close; } - goto L_Close; +L_Story: + mesq l("Mommy sent me to find my brother Bobo."); + next; + mesq l("He said he is going to climb the highest hill in Artis, which is not far from here."); + next; + mesq l("Our mommy doesn't allow us to go there, because it's dangerous. But he doesn't listen!"); + next; + mesq l("Can you please go there and find him? He is probably hiding on one of those trees, like always."); + next; + mesq l("Because of the dense foliage on the trees you need to go close to them not to miss him."); + next; -L_Close: - close; + switch (select(l("I will find him, don't worry!"), + l("Highest hill in Artis, you say? Sounds dangerous, I might fall off."))) + { + case 1: + mes ""; + mesn; + mesq l("Thank you!"); + mes ""; + QuestReminder; + setq ArtisQuests_LazyBrother, 1; + LazyBrother_TreesLeft = 15; + close; + case 2: + mes ""; + mesn; + mesq l("Awwww, what will I do now?"); + close; + } OnInit: setnpcsex G_FEMALE; diff --git a/npc/001-1/trees.txt b/npc/001-1/trees.txt new file mode 100644 index 00000000..e375f071 --- /dev/null +++ b/npc/001-1/trees.txt @@ -0,0 +1,236 @@ +// Evol scripts. +// Author: +// Travolta +// Description: +// Invisible tree NPCs for "Lazy Brother" quest +// Variables: +// AtrilQuests_LazyBrother = 19 -- quest var +// LazyBrother_TreesLeft = 15 -- how many trees left to search +// LazyBrother_TreeSearched[15] -- whether given tree was searched +// LazyBrother_TreeWithBrother -- the number of tree where he's hiding +// Quest states: +// 0 - quest not started +// 1 - Katja asked help, searching the trees +// 2 - Bobo is found, "bad" ending +// 3 - player decided to tell Katja where her brother is +// 4 - "good" ending, player helped Katja + + +function script LazyBrotherTreeFunc { + .@q = getq(ArtisQuests_LazyBrother); + if (.@q == 0 || .@q >= 2) + return; + .@TreeNum = getarg(0); + if (LazyBrother_TreeWithBrother == .@TreeNum) + goto L_FoundHim; + if (LazyBrother_TreeWithBrother > 0) + { + mes l("You search the tree but don't find anybody"); + close2; + return; + } + if (LazyBrother_TreeSearched[.@TreeNum] == 1) + { + mes l("You already looked here"); + close2; + return; + } + else + { + LazyBrother_TreeSearched[.@TreeNum] = 1; + } + .@found = rand(1, LazyBrother_TreesLeft--); + if (.@found == 1) + { + mes l("You found him!"); + LazyBrother_TreeWithBrother = .@TreeNum; + next; + } + else + { + mes l("You search the tree but don't find anybody"); + close2; + return; + } + +L_FoundHim: + mes l("You notice a young boy sitting on one of the highest branches of the tree."); + next; + mes l("He is eating an apple, apparently enjoying it."); + next; + select(l("Hey there, are you Bobo, Katja's brother?")); + mes ""; + mesn "Bobo"; + mesq l("Yes, it's me. It's such a beautiful view from here!"); + next; + select(l("Your sister sent me to find you. Your mother is worried.")); + mes ""; + mesn "Bobo"; + mesq l("Oh, nooooo... If I go home now, my mum will give me homework."); + next; + mesq l("But if you tell my sister, that you didn't find me, I can stay here all day, eating apples and enjoying the view"); + next; + mesq l("I will give you my pocket money, if you do so."); + next; + switch (select(l("A small lie isn't a lie, and I could really use some cash..."), + l("I will not lie to a little girl! And your mother needs your help"))) + { + case 1: + mes ""; + mesn "Bobo"; + mesq l("Here you go."); + next; + mesn "Narrator"; + mes l("Somehow you don't feel good about your deed"); + // Karma -= 2; + setq ArtisQuests_LazyBrother, 2; + Zeny += 100; + getexp 500, 0; + break; + case 2: + mes ""; + mesn "Bobo"; + mesq l("Okay... Tell my sister I'll go home soon."); + setq ArtisQuests_LazyBrother, 3; + break; + } + LazyBrother_TreesLeft = 0; + LazyBrother_TreeWithBrother = 0; + cleararray LazyBrother_TreeSearched,0,15; + close; +} + +001-1,179,30,0 script #AtrilTree1 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(1); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,177,29,0 script #AtrilTree2 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(2); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,183,28,0 script #AtrilTree3 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(3); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,182,25,0 script #AtrilTree4 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(4); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,187,26,0 script #AtrilTree5 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(5); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,189,28,0 script #AtrilTree6 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(6); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,184,30,0 script #AtrilTree7 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(7); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,189,31,0 script #AtrilTree8 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(8); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,191,30,0 script #AtrilTree9 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(9); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,191,33,0 script #AtrilTree10 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(10); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,187,34,0 script #AtrilTree11 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(11); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,185,35,0 script #AtrilTree12 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(12); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,182,34,0 script #AtrilTree13 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(13); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,180,33,0 script #AtrilTree14 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(14); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} + +001-1,181,32,0 script #AtrilTree15 NPC_NO_SPRITE,{ + LazyBrotherTreeFunc(15); + end; +OnInit: + setnpcsex G_OTHER; + setnpcdistance 1; + end; +} -- cgit v1.2.3-60-g2f50