summaryrefslogtreecommitdiff
path: root/npc/015-3
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-04-09 13:33:57 -0300
committerJesusaves <cpntb1@ymail.com>2021-04-09 13:33:57 -0300
commitcf18ce071c79ae37e14ea38943e0b1d88da70a7b (patch)
treef9159c9b60b3018300dd22ffba0d797bc5e828e5 /npc/015-3
parent8a4bf716002a017de77fe7df301ef8e4aaf00a2e (diff)
downloadserverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.gz
serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.bz2
serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.xz
serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.zip
Override
Diffstat (limited to 'npc/015-3')
-rw-r--r--npc/015-3/_import.txt8
-rw-r--r--npc/015-3/_mobs.txt6
-rw-r--r--npc/015-3/_warps.txt3
-rwxr-xr-xnpc/015-3/barrier.txt38
-rwxr-xr-xnpc/015-3/katze.txt185
-rwxr-xr-xnpc/015-3/mapflags.txt2
-rwxr-xr-xnpc/015-3/pot.txt122
7 files changed, 364 insertions, 0 deletions
diff --git a/npc/015-3/_import.txt b/npc/015-3/_import.txt
new file mode 100644
index 00000000..fedbd433
--- /dev/null
+++ b/npc/015-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 015-3: Cat's Cave
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/015-3/_mobs.txt",
+"npc/015-3/_warps.txt",
+"npc/015-3/barrier.txt",
+"npc/015-3/katze.txt",
+"npc/015-3/mapflags.txt",
+"npc/015-3/pot.txt",
diff --git a/npc/015-3/_mobs.txt b/npc/015-3/_mobs.txt
new file mode 100644
index 00000000..0e700948
--- /dev/null
+++ b/npc/015-3/_mobs.txt
@@ -0,0 +1,6 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 015-3: Cat's Cave mobs
+015-3,22,25,1,2 monster Manana Tree 1017,2,100000,30000
+015-3,29,31,1,1 monster Piou 1002,2,100000,30000
+015-3,23,19,0,0 monster Piou 1002,1,100000,30000
+015-3,40,19,0,0 monster Frostiana 1012,1,100000,30000
diff --git a/npc/015-3/_warps.txt b/npc/015-3/_warps.txt
new file mode 100644
index 00000000..a9ba28a6
--- /dev/null
+++ b/npc/015-3/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 015-3: Cat's Cave warps
+015-3,31,43,0 warp #015-3_31_43 0,0,015-1,59,32
diff --git a/npc/015-3/barrier.txt b/npc/015-3/barrier.txt
new file mode 100755
index 00000000..320025f6
--- /dev/null
+++ b/npc/015-3/barrier.txt
@@ -0,0 +1,38 @@
+
+015-3,31,42,0 script #CatCaveBarrier NPC45,1,1,{
+ @Hiss = ((Katze & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
+ if (getequipid(equip_head) != 1217
+ && (getequipid(equip_head) > 0
+ || getequipid(equip_shield) > 0
+ || getequipid(equip_hand1) > 0
+ || getequipid(equip_hand2) > 0
+ || getequipid(equip_gloves) > 0
+ || getequipid(equip_shoes) > 0
+ || getequipid(equip_misc1) > 0
+ || getequipid(equip_misc2) > 0
+ || getequipid(equip_torso) > 0
+ || getequipid(equip_legs) > 0))
+ goto L_Not_Naked;
+
+ if (@Hiss != 2)
+ mes "\"Hissss...\"";
+ @Hiss = 2;
+ callsub S_Update_Hiss;
+ goto L_close;
+
+L_Not_Naked:
+ warp "015-1", 60, 32;
+ @Hiss = 1;
+ callsub S_Update_Hiss;
+ mes "\"GRAAUWL! Hissss...\"";
+ mes "Scared of what you hear, you flee back outside.";
+ goto L_close;
+
+L_close:
+ @Hiss = 0;
+ close;
+
+S_Update_Hiss:
+ Katze = (Katze & ~(NIBBLE_1_MASK)) | (@Hiss << NIBBLE_1_SHIFT);
+ return;
+}
diff --git a/npc/015-3/katze.txt b/npc/015-3/katze.txt
new file mode 100755
index 00000000..0647abc6
--- /dev/null
+++ b/npc/015-3/katze.txt
@@ -0,0 +1,185 @@
+
+015-3,32,25,0 script Katze NPC172,{
+ @cat = ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
+
+ if (@cat == 1 && @catNeedsAlone == 0) goto L_NeedsFood;
+ if (@cat == 1) goto L_NeedsFood;
+ if (@cat == 2 && @catNeedsAlone == 0) goto L_NeedsFur;
+ if (@cat == 2) goto L_NeedsFur;
+ if (@cat == 3) goto L_NeedsWood;
+ if (@cat == 4 && @catNeedsAlone == 0) goto L_NeedsStuff;
+ if (@cat == 4) goto L_PreNeedsStuff;
+ if (@cat == 5) goto L_NeedsStuff2;
+ if (@cat == 6 && @catNeedsAlone == 0) goto L_GainEars;
+ if (@cat == 6) goto L_PreGainEars;
+ if (@cat == 7) goto L_Finished;
+ goto L_NeedsMilk;
+
+L_NeedsMilk:
+ mes "[Katze]";
+ mes "\"Meow.\"";
+ next;
+ menu "Throw a stone at the cat.", L_ThrowStone,
+ "Leave the cat alone.", L_close;
+
+L_ThrowStone:
+ @cat = 0;
+ callsub S_Update_Katze;
+ heal ((MaxHp/100) * -30), 0;
+ warp "015-1", 60, 32;
+ mes "\"GRAAUWL! Hissss...\"";
+ mes "Yikes, the cat attacked you! Your whole body is scratched. Maybe throwing a stone wasn't such a great idea...";
+ goto L_close;
+
+L_NeedsFood:
+ mes "[Katze]";
+ mes "\"Meow, prrrr...\"";
+ next;
+ menu
+ "Throw a stone at the cat.", L_ThrowStone,
+ "Leave the cat alone.", L_close;
+
+L_NeedsFur:
+ mes "[Katze]";
+ mes "\"Prrr. Meow, prrr...\"";
+ next;
+ if (countitem("WhiteFur") > 0)
+ menu
+ "Make funny movements with the fur near the ground.", L_MoveFur,
+ "Throw a stone at the cat.", L_ThrowStone,
+ "Leave the cat alone.", L_close;
+ if (countitem("WhiteFur") == 0)
+ menu
+ "Throw a stone at the cat.", L_ThrowStone,
+ "Leave the cat alone.", L_close;
+ goto L_close;
+
+L_MoveFur:
+ delitem "WhiteFur", 1;
+ @cat = 3;
+ callsub S_Update_Katze;
+ mes "The cat jumps at the fur! You quickly let go of it. The cat happily returns to its spot, carrying the fur in its mouth.";
+ next;
+ mes "The cat drops the fur and looks at you with half opened eyes. Suddenly she starts talking, and says: \"That was very kind of you.\" She seems to be smiling.";
+ goto L_close;
+
+L_NeedsWood:
+ mes "[Katze]";
+ mes "\"Prrrr, now I'd like something to sharpen my claws on.\"";
+ next;
+
+ if (countitem("RawLog") > 0)
+ menu
+ "Want this piece of wood?", L_GiveWood,
+ "Ok, see you later.", L_close;
+ goto L_close;
+
+L_GiveWood:
+ mes "[Katze]";
+ mes "\"Sure! Please put it next to the pot.\"";
+ goto L_close;
+
+L_PreNeedsStuff:
+ mes "The cat is still eyeing the piece of wood. She probably needs to be left alone for a bit again.";
+ goto L_close;
+
+L_NeedsStuff:
+ @cat = 5;
+ callsub S_Update_Katze;
+ mes "[Katze]";
+ mes "\"You've been really kind to me. I can make you something nice, but I will need";
+ mes "2 Snake Skins,";
+ mes "2 Snake Tongues,";
+ mes "2 Maggot Slimes,";
+ mes "2 White Furs,";
+ mes "2 Hard Spikes and";
+ mes "2 Tiny Healing Potions.\"";
+ goto L_close;
+
+L_NeedsStuff2:
+ mes "[Katze]";
+ mes "\"Did you bring what I asked you for?\"";
+ next;
+ menu
+ "Look here.", L_CatChecksStuff,
+ "What do you need again?", L_WhatsNeeded,
+ "No, I haven't got everything yet.", L_close;
+
+L_WhatsNeeded:
+ mes "[Katze]";
+ mes "\"Actually, you should have remembered yourself.\"";
+ next;
+ menu
+ "Please tell me.", L_Please,
+ "Never mind.", L_close;
+
+L_Please:
+ mes "[Katze]";
+ mes "\"Alright... [the cat glares at you] it was";
+ mes "2 Snake Skins,";
+ mes "2 Snake Tongues,";
+ mes "2 Maggot Slimes,";
+ mes "2 White Furs,";
+ mes "2 Hard Spikes and";
+ mes "2 Tiny Healing Potions.\"";
+ goto L_close;
+
+L_CatChecksStuff:
+ if (countitem("SnakeSkin") > 1
+ && countitem("SnakeTongue") > 1
+ && countitem("MaggotSlime") > 1
+ && countitem("WhiteFur") > 1
+ && countitem("HardSpike") > 1
+ && countitem("TinyHealingPotion") > 1)
+ goto L_GiveStuff;
+ mes "[Katze]";
+ mes "\"You don't seem to have everything yet. Come back later when you do.\"";
+ goto L_close;
+
+L_GiveStuff:
+ delitem "SnakeSkin", 2;
+ delitem "SnakeTongue", 2;
+ delitem "MaggotSlime", 2;
+ delitem "WhiteFur", 2;
+ delitem "HardSpike", 2;
+ delitem "TinyHealingPotion", 2;
+ @cat = 6;
+ callsub S_Update_Katze;
+ @catNeedsAlone = 1;
+ mes "[Katze]";
+ mes "\"Nicely done! Now leave me alone for a while, I need some time to prepare your present.\"";
+ goto L_close;
+
+L_PreGainEars:
+ mes "[Katze]";
+ mes "\"Please leave me alone for a while, so I can prepare your present.\"";
+ goto L_close;
+
+L_GainEars:
+ getitem "CatEars", 1;
+ @xpval = 5000;
+ getexp @xpval, 0;
+ @cat = 7;
+ callsub S_Update_Katze;
+ mes "[Katze]";
+ mes "\"Look what I made for you! It makes you look a bit like me! Maybe it will give you a feeling of what it is like to be a cat.\"";
+ mes "The cat winks at you.";
+ mes "[You gain " + @xpval + " experience points]";
+ goto L_close;
+
+L_Finished:
+ mes "[Katze]";
+ if (getequipid(equip_head) == 1217) // Cat ears
+ mes "\"Meow, fellow cat.\"";
+ if (getequipid(equip_head) != 1217)
+ mes "\"Meow. Lost your ears?\"";
+ goto L_close;
+
+L_close:
+ @cat = 0;
+ close;
+
+S_Update_Katze:
+ Katze = (Katze & ~(NIBBLE_0_MASK)) | (@cat << NIBBLE_0_SHIFT);
+ return;
+}
diff --git a/npc/015-3/mapflags.txt b/npc/015-3/mapflags.txt
new file mode 100755
index 00000000..049e6274
--- /dev/null
+++ b/npc/015-3/mapflags.txt
@@ -0,0 +1,2 @@
+015-3 mapflag nosave 015-1,59,32
+//015-3 mapflag resave 010-1,27,97
diff --git a/npc/015-3/pot.txt b/npc/015-3/pot.txt
new file mode 100755
index 00000000..4516c13f
--- /dev/null
+++ b/npc/015-3/pot.txt
@@ -0,0 +1,122 @@
+
+015-3,37,29,0 script Pot NPC400,{
+ @cat = ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
+
+ if (@cat > 0)
+ mes "It's that old pot again.";
+ if (@cat == 0)
+ mes "It's a pot.";
+ next;
+
+ if (@cat == 1 && @catNeedsAlone == 0)
+ goto L_NeedsFood;
+ if (@cat == 1)
+ goto L_HasMilk;
+ if (@cat == 2 && @catNeedsAlone == 0)
+ goto L_NeedsFur;
+ if (@cat == 2)
+ goto L_HasFood;
+ if (@cat == 3)
+ goto L_NeedsWood;
+ if (@cat == 4 && @catNeedsAlone == 1)
+ goto L_HasWood;
+ if (@cat >= 4)
+ goto L_close;
+ goto L_NeedsMilk;
+
+L_NeedsMilk:
+ if (countitem("Milk") > 0)
+ menu
+ "Pour in some milk.", L_GiveMilk,
+ "Leave it alone.", L_close;
+ goto L_close;
+
+L_GiveMilk:
+ delitem "Milk", 1;
+ @cat = 1;
+ callsub S_Update_Katze;
+ @catNeedsAlone = 1;
+ goto L_close;
+
+L_HasMilk:
+ mes "There is milk in it.";
+ goto L_close;
+
+L_NeedsFood:
+ mes "The milk is gone!";
+ next;
+
+ if (countitem("ChickenLeg") > 0 && countitem("Steak") > 0)
+ menu
+ "Put in a chicken leg.", L_GiveChicken,
+ "Put in a steak.", L_GiveSteak,
+ "Leave it alone.", L_close;
+ if (countitem("ChickenLeg") > 0 && countitem("Steak") == 0)
+ menu
+ "Put in a chicken leg.", L_GiveChicken,
+ "Leave it alone.", L_close;
+ if (countitem("ChickenLeg") == 0 && countitem("Steak") > 0)
+ menu
+ "Put in a steak.", L_GiveSteak,
+ "Leave it alone.", L_close;
+ goto L_close;
+
+L_GiveChicken:
+ delitem "ChickenLeg", 1;
+ @cat = 2;
+ callsub S_Update_Katze;
+ @catNeedsAlone = 1;
+ goto L_close;
+
+L_GiveSteak:
+ delitem "Steak", 1;
+ @cat = 2;
+ callsub S_Update_Katze;
+ @catNeedsAlone = 1;
+ goto L_close;
+
+L_HasFood:
+ mes "There is some food in it.";
+ goto L_close;
+
+L_NeedsFur:
+ mes "And it's empty!";
+ next;
+
+ if (countitem("WhiteFur") > 0)
+ menu
+ "Put a white fur next to the pot.", L_GiveFur,
+ "Leave it alone.", L_close;
+ goto L_close;
+
+L_GiveFur:
+ mes "You put down the fur, but the cat doesn't seem to take any notice. Maybe there's something else you could do. You pick the fur up again.";
+ goto L_close;
+
+L_NeedsWood:
+ if (countitem("RawLog") > 0)
+ menu
+ "Put a wooden log next to the pot.", L_GiveWood,
+ "Leave it alone.", L_close;
+ goto L_close;
+
+L_GiveWood:
+ delitem "RawLog", 1;
+ @cat = 4;
+ callsub S_Update_Katze;
+ @catNeedsAlone = 1;
+ mes "You put the wooden log next to the pot. The cat eyes it suspiciously, but remains on her spot.";
+ goto L_close;
+
+L_HasWood:
+ mes "A wooden log is patiently lying next to it.";
+ goto L_close;
+
+L_close:
+ @cat = 0;
+ close;
+
+S_Update_Katze:
+ Katze = (Katze & ~(NIBBLE_0_MASK)) | (@cat << NIBBLE_0_SHIFT);
+ return;
+}