diff options
author | Micksha <Micksha@users.noreply.github.com> | 2018-10-05 22:15:07 +0200 |
---|---|---|
committer | Micksha <Micksha@users.noreply.github.com> | 2018-11-05 21:34:37 +0100 |
commit | 862551f1341356d88a4b969a90f1c98de82067dc (patch) | |
tree | dbe90fc525986bc1ebc909af212e96009886f9bf /npc | |
parent | e60f059545cdfaefcb6821fdbb8809ccfa9f265a (diff) | |
download | serverdata-862551f1341356d88a4b969a90f1c98de82067dc.tar.gz serverdata-862551f1341356d88a4b969a90f1c98de82067dc.tar.bz2 serverdata-862551f1341356d88a4b969a90f1c98de82067dc.tar.xz serverdata-862551f1341356d88a4b969a90f1c98de82067dc.zip |
Trying to add some NPCs for Hurns
Diffstat (limited to 'npc')
-rw-r--r-- | npc/001-2-33/_warps.txt | 4 | ||||
-rw-r--r-- | npc/001-2-36/_warps.txt | 2 | ||||
-rw-r--r-- | npc/001-2-4/_warps.txt | 2 | ||||
-rw-r--r-- | npc/008-1/_import.txt | 2 | ||||
-rw-r--r-- | npc/008-1/hinnak.txt | 354 | ||||
-rw-r--r-- | npc/008-1/lumberjack.txt | 19 | ||||
-rw-r--r-- | npc/008-2-0/_import.txt | 1 | ||||
-rw-r--r-- | npc/008-2-0/celestia.txt | 20 | ||||
-rw-r--r-- | npc/008-2-1/_import.txt | 4 | ||||
-rw-r--r-- | npc/008-2-1/generalstore.txt | 20 | ||||
-rw-r--r-- | npc/008-2-1/inspector.txt | 20 | ||||
-rw-r--r-- | npc/008-2-1/richard.txt | 20 | ||||
-rw-r--r-- | npc/008-2-1/selim.txt | 19 | ||||
-rw-r--r-- | npc/008-2-10/_import.txt | 1 | ||||
-rw-r--r-- | npc/008-2-10/airlia.txt | 20 |
15 files changed, 504 insertions, 4 deletions
diff --git a/npc/001-2-33/_warps.txt b/npc/001-2-33/_warps.txt index 73adf059..2b27d09e 100644 --- a/npc/001-2-33/_warps.txt +++ b/npc/001-2-33/_warps.txt @@ -46,8 +46,8 @@ OnInit: doorInit; } -001-2-33,45,30,0 warp #001-2-33_45_30 0,0,001-2-38,24,28 -001-2-33,23,30,0 warp #001-2-33_23_30 0,0,001-2-37,36,28 +001-2-33,45,28,0 warp #001-2-33_45_28 0,0,001-2-38,24,28 +001-2-33,23,28,0 warp #001-2-33_23_28 0,0,001-2-37,36,28 001-2-33,25,40,0 warp #001-2-33_25_40 2,0,001-2-40,27,46 001-2-33,43,40,0 warp #001-2-33_43_40 2,0,001-2-40,45,46 001-2-33,34,46,0 warp #001-2-33_34_46 0,0,001-1,57,42 diff --git a/npc/001-2-36/_warps.txt b/npc/001-2-36/_warps.txt index 530050a7..389a06e4 100644 --- a/npc/001-2-36/_warps.txt +++ b/npc/001-2-36/_warps.txt @@ -1,3 +1,3 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. // Map 001-2-36: unnamed warps -001-2-36,37,30,0 warp #001-2-36_37_30 0,0,001-2-34,24,29 +001-2-36,37,29,0 warp #001-2-36_37_29 0,0,001-2-34,24,29 diff --git a/npc/001-2-4/_warps.txt b/npc/001-2-4/_warps.txt index 73e39877..af130c27 100644 --- a/npc/001-2-4/_warps.txt +++ b/npc/001-2-4/_warps.txt @@ -1,7 +1,7 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. // Map 001-2-4: Library warps 001-2-4,48,41,0 warp #001-2-4_48_41 0,0,001-1,51,81 -001-2-4,57,27,0 warp #001-2-4_57_27 3,0,001-2-6,57,36 +001-2-4,57,26,0 warp #001-2-4_57_26 3,0,001-2-6,57,36 001-2-4,52,27,0 script #001-2-4_52_27_h NPC_HIDDEN,0,0,{ OnTouch: warp "001-2-5", 28, 37; diff --git a/npc/008-1/_import.txt b/npc/008-1/_import.txt index b7797bf0..444d8d9f 100644 --- a/npc/008-1/_import.txt +++ b/npc/008-1/_import.txt @@ -4,5 +4,7 @@ "npc/008-1/_warps.txt", "npc/008-1/confused-tree.txt", "npc/008-1/doors.txt", +"npc/008-1/hinnak.txt", +"npc/008-1/lumberjack.txt", "npc/008-1/mapflags.txt", "npc/008-1/wateranimation.txt", diff --git a/npc/008-1/hinnak.txt b/npc/008-1/hinnak.txt new file mode 100644 index 00000000..9fbcb959 --- /dev/null +++ b/npc/008-1/hinnak.txt @@ -0,0 +1,354 @@ +// Evol scripts. +// Author: +// gumi, Micksha +// Quest states: +// [1] 0 - cannot do the quest +// [1] 1 - can do the quest +// [1] 2 - hinnak asked for help +// [1] 3 - helped hinnak +// [2] kill counter +// Description: + +// Hinnak needs help to get rid of the same stuff than ever. + +008-1,270,74,0 script Hinnak#008-1 NPC_HINNAK,{ + + if (BaseLevel < .min_level) + { + npctalk3 generic(1 | 16 | 64); + end; + } + + function hinn_new_player + { + if(getequipid(EQI_HEAD_TOP) == .bad_hat) + { + narrator 4, + l("The farmer lunges at you with a farming implement."); + heal -50, 0; + + selectd + l("I'm out of here."), + l("Whoa, what are you doing?"); + + if (@menu == 1) + { + return; + } + + speech 4 | 1, + l("Sorry, you look like a pinkie."), + l("They've been destroying my fields, and I guess I got a bit worked up."); + } + + else + { + speech 4, + l("Argh!"), + l("I hate them!"), + l("I @#$% hate them!"), + l("I @#$% hate these @#$% pinkies!"); + + selectd + l("You need some anger control therapy."), + l("Why do you hate them?"); + + if (@menu == 1) + { + return; + } + + speech 4 | 1, + l("These @#$% beasts are jumping around in my fields destroying all my harvest."), + l("But they are too fast."), + l("I can't catch them."); + } + + selectd + l("Want me to help you?"); + + speech 4 | 1, + l("Yes, you look quite fast."), + l("Maybe you can catch some of them."), + l("That will pay them a lesson."), + l("Slay some of them and bring me %d of their antennae.", .drop_count); + + setq .quest, 2, 0; + + selectd + l("How much is this worth to you?"); + + speech 1, + l("Well, I can't offer you much."), + l("But I got an old scythe laying around."), + l("Maybe you can use it as a weapon."); + + close; + } + + function hinn_help + { + if (getequipid(EQI_HEAD_TOP) == .bad_hat) + { + narrator 4, + l("The farmer glares at your hat."); + } + + speech 4, + l("Have you got the %d antennae?", .drop_count); + + selectd + l("Not yet, but I am working on it."), + rif(countitem(.monster_drop) >= .drop_count, l("Sure, here they are!")); + + if (@menu == 1) + { + return; + } + + if (getq2(.quest) < .kill_count) + { + speech 1, + l("Don't try to fool me!"), + l("I know you didn't kill them yourself!"), + l("Kill at least %d pinkies and come back.", .kill_count); + close; + } + + speech 1, + l("Thank you very much"), + l("As promised, here's my old scythe."), + l("Maybe you can use it as a weapon."), + l("It is a bit cumbersome but its strikes are deadly."); + + if (countitem(.monster_drop) >= .drop_count) + { + delitem .monster_drop, .drop_count; + getitem .reward_item, 1; + Zeny += .reward_money; + //getexp .reward_exp, 0; + setq .quest, 3; + } + close; + } + + function hinn_thanks + { + if (getequipid(EQI_HEAD_TOP) == .bad_hat) + { + speech 4, + l("That better be a trophy on your head."); + + selectd + l("It is."); + + speech 4 | 1, + l("Good then."), + l("Thanks for your help with the pinkies."); + } + + else + { + speech 4, + l("Good to see you again."), + l("Thanks again for helping me with the pinkies!"); + } + + selectd + l("Sure, any time!"), + l("Anything else you want me to do?"), + l("You're welcome. Bye!"); + + if (@menu == 3) + { + return; + } + + speech 4 | 1, + l("Actually, it's been a long day."), + l("If it's no trouble, could you get me a %s?", + getitemlink(.drink_item)); + + selectd + rif(countitem(.drink_item) >= 1, l("Here you are.")), + l("Sure, I'll go get one. Bye!"), + l("You shouldn't drink while working!"); + + do + { + switch (@menu) + { + case 2: return; + case 3: + speech 1, + l("Well, I'm done for the day, and I'm quite old enough to decide when I can have a %s, thank you!", + getitemname(.drink_item)); + selectd + rif(countitem(.drink_item) >= 1, l("Sorry... here you are.")), + l("I don't have any."); + break; + default: + if (countitem(.drink_item) < 1) + { + return; + } + delitem .drink_item, 1; + + narrator 4 | 8 | 2 | 1, + l("%s takes a sip.", .name$); + + speech 4, + l("Aaah!"), + l("Nothing like a well-deserved %s after a long day of tending the crops!", + getitemname(.drink_item)), + l("Thanks, that was very kind of you!"); + + narrator 4 | 8 | 1 | 2, + l("He takes another sip."); + + speech 4, + l("Thanks!"), + l("You know, I had the strangest thing happen to me."), + l("I had this patch of ground that was really clumpy; lots of clay, you see."), + l("Right over there."), + // TODO: move cam to the spot + l("Looks much better now, doesn't it?"), + // TODO: restore cam + l("But how I got there is kind of scary..."), + l("I'd been trying to break it up for a while, but that kind of work is a pain."), + l("So my wife said that I should go and see the witch, just in case she knows something."), + l("And sure enough I ask the witch, and she has a look at it."), + l("“Nothing I can do”, she says, “but I can ask a friend”."), + l("So the next day another witch shows up."), + l("Gorgeous woman, but when she looked at me, the scares went scuttling down my spine..."), + l("First thing she asked was if I'm a farmer."), + l("Said her friend had told her that I needed help."), + l("I show her what the problem is, and she tells me to go inside and wait."); + + narrator 4 | 8 | 1 | 2, + l("%s drains his mug in one long sip, then hesitates.", .name$); + + speech 4, + l("So I go inside."), + l("I'm barely in when it starts raining outside, pouring cats and mouboos!"), + l("Not so weird, perhaps, except that it was been bright and sunny just a second before!"), + l("So I rush out, my wife telling me to leave the witch alone, and I see her standing there in the middle of the rain..."), + l("None of the raindrops touched her, as if they were afraid!"), + l("Then she yells out some gobbledygook word, and out of the ground there comes a swarm of maggots, crawling and digging and climbing over each other's backs..."), + // XXX: maybe here insert a reference to SUSAN? + l("And then she turns to me!"), + l("Seeing her gaze, for a moment there I thought she would turn me into a pinkie, for sure..."), + l("But all she says is, “had you stayed inside, you wouldn't be wet now”."); + + selectd + l("Hahaha!"), + l("Whoah, scary..."), + l("What was that gobbledygook word?"), + l("I better go now. Bye."); + + switch (@menu) + { + case 1: + speech 1, + l("Yeah, funny now..."), + l("But you should've seen that gaze!"), + l("Ah, well, never mind."); + close; + case 2: + speech 1, + l("Yeah, you could say that..."); + close; + case 3: + speech 1, + l("Oh, I can't be sure..."), + l("But something like “Nanaj princino”, I think."); // this is "Dwarven Princess" translated to Esperanto + close; + } + return; + } + } while(true); + } + + // OnTalk: + + if (getq(.quest_inspector) == 11) + { + selectd + l("Did you see anyone in a mask come by here at night?"), + l("Did you see anyone with a large satchel come by here at night?"), + l("Hello."); + + switch (@menu) + { + case 1: + speech + l("No."), + l("It tends to be too dark to see a mask."); + close; + + case 2: + speech + l("Yes, I saw someone with a large sack on their back go to the mining camp."); + close; + } + } + + switch (getq(.quest)) + { + case 0: + case 1: hinn_new_player; break; + case 2: hinn_help; break; + default: hinn_thanks; + } + + closeclientdialog(); + close; + +OnNPCKillEvent: + // XXX: maybe have a OnTakeScript on the pinky antena item so we count pickups instead of kills + if (killedrid == .monster_id && getq(.quest) == 2 && + getq2(.quest) < .kill_count && strcharinfo(PC_MAP) == .map$) + { + setq .quest, 2, getq2(.quest) + 1; + } + end; + +OnPCLoginEvent: +OnPCBaseLvUpEvent: + if (BaseLevel >= .min_level && getq(.quest) < 1) + { + setq .quest, 1; // allow the player to do the quest + dispbottom l("New quest available: %s (level %d+)", + getquestlink(.quest), .min_level); // XXX: requires new manaplus versions, maybe show a different message for old versions? + } + end; + +OnInit: + .min_level = 15; // min level to do the quest + .monster_id = Fluffy; // monster to kill // FIXME: change this when we have pinkies + .monster_drop = FluffyFur; // monster drop to collect // FIXME: change this when we have pinkies + .drop_count = 10; // amount of that drop needed + .kill_count = 10; // min number of kills + .reward_item = WoodenSword; // reward item // FIXME: change this when we have he Scythe + .reward_money = 0; // reward money + .reward_exp = 0; // reward exp + .bad_hat = BrimmedFlowerHat; // hinnak attacks you when you wear this hat // FIXME: make this pinky hat when we get it + .drink_item = PumpkishJuice; // the item hinnak asks to drink // FIXME: make this beer when we have it + + .quest = HurnscaldQuests_Hinnak; + .quest_inspector = HurnscaldQuests_Inspector; + .quest_debug = .quest; + .sex = G_MALE; + .distance = 3; + +////////// UNFINISHED ////////// +//////////////////////////////// +// REMOVE THIS CODE WHEN THIS // +// NPC IS NO LONGER A WIP ////// +//////////////////////////////// +if (!debug) disablenpc(.name$); +///////// UNFINISHED /////////// + + end; +} + diff --git a/npc/008-1/lumberjack.txt b/npc/008-1/lumberjack.txt new file mode 100644 index 00000000..46039968 --- /dev/null +++ b/npc/008-1/lumberjack.txt @@ -0,0 +1,19 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// The Legendary Lumberjack. + +001-1,241,116,0 script Lumberjack NPC_LUMBERJACK,{ + speech + l("Oh hey!"), + lg("If you feel bored or anxious, you can always pixel an axe. Wait, what does that even mean?"); + l("Anyhow, it's better than running around in circles doing nothing."); + + close; + +OnInit: + .sex = G_MALE; + .distance = 2; + end; +} diff --git a/npc/008-2-0/_import.txt b/npc/008-2-0/_import.txt index f2ecc3b8..2cd1023b 100644 --- a/npc/008-2-0/_import.txt +++ b/npc/008-2-0/_import.txt @@ -2,4 +2,5 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/008-2-0/_savepoints.txt", "npc/008-2-0/_warps.txt", +"npc/008-2-0/celestia.txt", "npc/008-2-0/mapflags.txt", diff --git a/npc/008-2-0/celestia.txt b/npc/008-2-0/celestia.txt new file mode 100644 index 00000000..50d189a7 --- /dev/null +++ b/npc/008-2-0/celestia.txt @@ -0,0 +1,20 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// Our beloved Princess Celestia. +// THIS IS A PLACEHOLDER! + +008-2-0,38,35,0 script Celestia NPC_CELESTIA,{ + speech + l("Hi!"), + lg("You may remember me, I am Celestia."); + l("Take a cup of tea until something happens here."); + + close; + +OnInit: + .sex = G_FEMALE; + .distance = 2; + end; +} diff --git a/npc/008-2-1/_import.txt b/npc/008-2-1/_import.txt index 1e5137a7..06ba6d3b 100644 --- a/npc/008-2-1/_import.txt +++ b/npc/008-2-1/_import.txt @@ -2,4 +2,8 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/008-2-1/_savepoints.txt", "npc/008-2-1/_warps.txt", +"npc/008-2-1/generalstore.txt", +"npc/008-2-1/inspector.txt", "npc/008-2-1/mapflags.txt", +"npc/008-2-1/richard.txt", +"npc/008-2-1/selim.txt", diff --git a/npc/008-2-1/generalstore.txt b/npc/008-2-1/generalstore.txt new file mode 100644 index 00000000..ac409800 --- /dev/null +++ b/npc/008-2-1/generalstore.txt @@ -0,0 +1,20 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// General Store. +// THIS IS A PLACEHOLDER! + +008-1,38,35,0 script Generalstore#008-1 NPC_GENERAL_STORE,{ + speech + l("Hi!"), + lg("My name is General Store, they still call me this although I left the army a few years ago."); + l("I have nothing to sell, come back later."); + + close; + +OnInit: + .sex = G_MALE; + .distance = 2; + end; +} diff --git a/npc/008-2-1/inspector.txt b/npc/008-2-1/inspector.txt new file mode 100644 index 00000000..62157207 --- /dev/null +++ b/npc/008-2-1/inspector.txt @@ -0,0 +1,20 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// The Inspector not willing to do his job. +// THIS IS A PLACEHOLDER! + +008-1,30,34,0 script Inspector#008-1 NPC_INSPECTOR,{ + speech + l("Oh hey!"), + lg("Got a beer for me? No? Then I am too busy for your stupid problems."); + l("Go away, and bring a beer next time you pass by."); + + close; + +OnInit: + .sex = G_MALE; + .distance = 2; + end; +} diff --git a/npc/008-2-1/richard.txt b/npc/008-2-1/richard.txt new file mode 100644 index 00000000..f71f52d0 --- /dev/null +++ b/npc/008-2-1/richard.txt @@ -0,0 +1,20 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// Richard the Hurns storage guy. +// THIS IS A PLACEHOLDER! + +008-1,26,35,0 script Richard#008-1 NPC_RICHARD_LEGACY,{ + speech + l("Oh hey!"), + lg("I was supposed to act as storagekeeper, but I forgot my key."); + l("Come back later, perhaps I can find it."); + + close; + +OnInit: + .sex = G_MALE; + .distance = 2; + end; +} diff --git a/npc/008-2-1/selim.txt b/npc/008-2-1/selim.txt new file mode 100644 index 00000000..c578f6cd --- /dev/null +++ b/npc/008-2-1/selim.txt @@ -0,0 +1,19 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// Selim the Dyer. +// THIS IS A PLACEHOLDER! + +008-1,38,40,0 script Selim#008-1 NPC_GUMI_THE_DYER,{ + speech + l("Oh hey!"), + lg("Good you are here, you could be handy for me right now."); + + close; + +OnInit: + .sex = G_MALE; + .distance = 2; + end; +} diff --git a/npc/008-2-10/_import.txt b/npc/008-2-10/_import.txt index 994726eb..2dd9ec77 100644 --- a/npc/008-2-10/_import.txt +++ b/npc/008-2-10/_import.txt @@ -1,4 +1,5 @@ // Map 008-2-10: Hurnscald City Hall // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/008-2-10/_warps.txt", +"npc/008-2-10/airlia.txt", "npc/008-2-10/mapflags.txt", diff --git a/npc/008-2-10/airlia.txt b/npc/008-2-10/airlia.txt new file mode 100644 index 00000000..d300b52a --- /dev/null +++ b/npc/008-2-10/airlia.txt @@ -0,0 +1,20 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// Airlia, the girl in the townhall. +// THIS IS A PLACEHOLDER! + +008-2-10,41,29,0 script Airlia NPC_AIRLIA,{ + speech + l("Hi!"), + lg("Did you visit the graveyard already? I havent met people coming back alive for ages."); + l("There must be cruel things going on."); + + close; + +OnInit: + .sex = G_FEMALE; + .distance = 2; + end; +} |