summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf4
-rw-r--r--db/re/item_db.conf18
-rw-r--r--db/re/mob_db.conf20
-rw-r--r--npc/003-1-1/yetiking.txt1
-rw-r--r--npc/012-7/_import.txt1
-rw-r--r--npc/012-7/celestia.txt199
6 files changed, 225 insertions, 18 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 0878a8bb0..0c7f10e4c 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -212,6 +212,10 @@ quest_db: (
Id: 93
Name: "HurnscaldQuest_Celestia"
},
+{
+ Id: 94
+ Name: "HurnscaldQuest_TeaParty"
+},
// ID 111 to 130: Nivalis Quests
// ID 131 to 150: Frostia Quests
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index fe3ff75eb..1dd138657 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -1550,9 +1550,9 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 4;
- @max = 400;
- @delay = 3;
+ @min = 500;
+ @max = 700;
+ @delay = 5;
@type = 1;
doevent "rand_sc_heal::OnUse";
">
@@ -3084,7 +3084,7 @@ item_db: (
},
{
Id: 783
- AegisName: "TetiClaw"
+ AegisName: "YetiClaw"
Name: "Yeti Claw"
Type: "IT_ETC"
Buy: 15
@@ -9533,15 +9533,11 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- if (@useType == 1)
- {
- if (!getmapxy(.@map$, .@x, .@y, 0))
- {
+ if (@useType == 1) {
+ if (!getmapxy(.@map$, .@x, .@y, 0)) {
monster(.@map$, .@x, .@y, l("Oak"), 1017, 1);
}
- }
- else
- {
+ } else {
@min = 8;
@max = 30;
@delay = 3;
diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf
index 614aa5349..44d91d97e 100644
--- a/db/re/mob_db.conf
+++ b/db/re/mob_db.conf
@@ -229,6 +229,7 @@ mob_db: (
DamageMotion: 480
MvpExp: 0
Drops: {
+ ChocolateBiscuit: 10000
TortugaShellFragment: 1880
LettuceLeaf: 1800
TortugaTongue: 1000
@@ -810,6 +811,7 @@ mob_db: (
CasinoCoins: 400
RedApple: 350
MoubooSteak: 200
+ ChocolateMouboo: 100
MoubooHat: 1
}
},
@@ -1691,6 +1693,7 @@ mob_db: (
MvpExp: 0
Drops: {
CasinoCoins: 550
+ GingerBreadMan: 440
PileOfAsh: 220
RoastedMaggot: 150
}
@@ -1778,6 +1781,7 @@ mob_db: (
MvpExp: 0
Drops: {
CasinoCoins: 1200
+ ChocolateMouboo: 800
RedApple: 400
MoubooSteak: 215
GoldOre: 100
@@ -1910,7 +1914,8 @@ mob_db: (
DamageMotion: 200
MvpExp: 0
Drops: {
- DarkEggshellHat: 5
+ ChocolateBiscuit: 800
+ DarkEggshellHat: 3
}
},
{
@@ -2221,9 +2226,10 @@ mob_db: (
MvpExp: 0
Drops: {
MushroomSpores: 950
- SmallMushroom: 600
Plushroom: 800
+ SmallMushroom: 600
Chagashroom: 400
+ ChocolateBiscuit: 350
Sapphire: 5
}
},
@@ -2695,6 +2701,7 @@ mob_db: (
MvpExp: 0
Drops: {
//DarCrystal: 700
+ ChocolateBiscuit: 650
Skull: 250
LeatherShirt: 200
Bone: 110
@@ -2747,6 +2754,7 @@ mob_db: (
MvpExp: 0
Drops: {
//DarCrystal: 700
+ ChocolateBiscuit: 650
Skull: 250
LeatherShirt: 200
Bone: 110
@@ -3252,9 +3260,9 @@ mob_db: (
Exp: 16
JExp: 4
AttackRange: 1
- Attack: [35, 40]
+ Attack: [55, 80]
Def: 2
- Mdef: 7
+ Mdef: 70
Stats: {
Str: 9
Agi: 26
@@ -3280,8 +3288,8 @@ mob_db: (
MvpExp: 0
Drops: {
Coal: 500
- IronOre: 450
- GoldOre: 400
+ IronOre: 350
+ GoldOre: 300
CactusDrink: 350
CactusPotion: 250
OrangeCupcake: 200
diff --git a/npc/003-1-1/yetiking.txt b/npc/003-1-1/yetiking.txt
index ab3bfba19..559a3d427 100644
--- a/npc/003-1-1/yetiking.txt
+++ b/npc/003-1-1/yetiking.txt
@@ -5,7 +5,6 @@
// Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can
// summon the Yeti King, helping you while doing the quest by themselves.
-// TODO: OnPCDieEvent must reset quest
// setnpcdisplay getarg(0), NPC_YETI_KING
diff --git a/npc/012-7/_import.txt b/npc/012-7/_import.txt
index 1f927ce5f..f38d358e6 100644
--- a/npc/012-7/_import.txt
+++ b/npc/012-7/_import.txt
@@ -1,3 +1,4 @@
// Map 012-7: Town Hall
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/012-7/_warps.txt",
+"npc/012-7/celestia.txt",
diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt
new file mode 100644
index 000000000..28a85324e
--- /dev/null
+++ b/npc/012-7/celestia.txt
@@ -0,0 +1,199 @@
+// TMW2 Scripts
+// Author:
+// gumi (TMW Org. Team)
+// Jesusalva
+// Description:
+// Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can
+// summon the Yeti King, helping you while doing the quest by themselves.
+
+// TODO: OnPCDieEvent must reset quest
+
+
+012-7,94,21,0 script Celestia NPC_ELF_F,{
+ .@q1=getq(HurnscaldQuest_Celestia);
+ .@q2=getq(HurnscaldQuest_TeaParty);
+ mesn;
+ mesq lg("Hello, darling. I was thinking in doing a tea party.");
+ next;
+ mesn strcharinfo(0);
+ menu
+ l("Sorry, I'm more of a coffee person."), L_Coffee,
+ l("What an amazing crown you have! How do I get it?!"), L_Crown,
+ rif(.@q2 == 0 && BaseLevel > 30, l("Tea party! I want to participate.")), L_TeaQuest,
+ rif(.@q2 == 1, l("I have some sweeties for the Tea Party!")), L_TeaCheck,
+ rif(.@q2 >= 2, l("Tea party! I want to participate.")), L_TeaParty,
+ rif(.@q1 == 0, l("How do you have time for tea parties?!")), L_MainQuest,
+ rif(.@q1 == 99, l("I want to try again.")), L_MainQuest;
+
+L_Coffee:
+ mes "";
+ mesn;
+ mesq l("Hmpf! Coffee is an heresy!");
+ // Except I love coffee ~ Jesusalva
+ close;
+
+L_Crown:
+ mes "";
+ mesn;
+ mesq l("Ooh, this nice shiny thing? It was an event.");
+ next;
+ mesn;
+ mesq l("Saulc is rich, you know. He challenged a group of thirty NPCs to defeat him, whoever won would get this crown.");
+ next;
+ mesn;
+ mesq l("Well, Andrei Sakar said it was a waste a time, and the other NPCs started fighting against themselves, so I won.");
+ next;
+ mesn;
+ if (BaseLevel < 90)
+ mesq l("...Besides, I have this nice @@ with me. I'm not low-level like you.", getitemlink(BansheeBow));
+ else
+ mesq l("...Besides, I have this nice @@ with me. It's a reliable bow.", getitemlink(BansheeBow));
+ close;
+
+L_MainQuest:
+ if (is_admin())
+ setq HurnscaldQuest_Celestia, 1;
+ mesn;
+ mes col("TODO, please report this error to Jesusalva.", 1);
+ close;
+
+L_TeaQuest:
+ mes "";
+ mesn;
+ mesq l("Well, the reason why I'm not doing it already is because, you see, I lack cookies.");
+ //next;
+ //mesn;
+ //mesq l("And anyone who hanged out on #evol-dev knows that, well... Cookies are life!");
+ next;
+ mesn;
+ mesq l("But I can still make it without cookies, as long that you bring me some other sweeties.");
+ next;
+ mesn l("Item List");
+ mes l("@@/20 @@", countitem(Acorn), getitemlink(Acorn));
+ mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo));
+ mes l("@@/20 @@", countitem(ChocolateBar), getitemlink(ChocolateBar));
+ mes l("@@/15 @@", countitem(Candy), getitemlink(Candy));
+ mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake));
+ mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake));
+ mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan));
+ mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit));
+ /* We can't ask for THAT many!
+ mes l("@@/20 @@", countitem(ApanaCake), getitemlink(ApanaCake));
+ mes l("@@/20 @@", countitem(Lollipop), getitemlink(Lollipop));
+ mes l("@@/20 @@", countitem(Mashmallow), getitemlink(Mashmallow));
+ mes l("@@/20 @@", countitem(TonoriDelight), getitemlink(TonoriDelight));
+ mes l("@@/20 @@", countitem(EasterEgg), getitemlink(EasterEgg));
+ mes l("@@/20 @@", countitem(ChocolateBunny), getitemlink(ChocolateBunny));
+ mes l("@@/20 @@", countitem(FrozenYetiTear), getitemlink(FrozenYetiTear));
+ mes l("@@/20 @@", countitem(DeliciousCookie), getitemlink(DeliciousCookie));
+ */
+ setq HurnscaldQuest_TeaParty, 1;
+ close;
+
+L_TeaCheck:
+ mesn l("Item List");
+ mes l("@@/20 @@", countitem(Acorn), getitemlink(Acorn));
+ mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo));
+ mes l("@@/20 @@", countitem(ChocolateBar), getitemlink(ChocolateBar));
+ mes l("@@/15 @@", countitem(Candy), getitemlink(Candy));
+ mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake));
+ mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake));
+ mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan));
+ mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit));
+ next;
+ select
+ l("I will be back shortly."),
+ l("I have all.");
+
+ if (@menu == 1) {
+ closedialog;
+ goodbye;
+ close;
+ }
+ if (countitem(Acorn) < 20 ||
+ countitem(ChocolateMouboo) < 20 ||
+ countitem(ChocolateBar) < 20 ||
+ countitem(Candy) < 15 ||
+ countitem(OrangeCupcake) < 15 ||
+ countitem(CherryCake) < 10 ||
+ countitem(GingerBreadMan) < 5 ||
+ countitem(ChocolateBiscuit) < 2)
+ goto L_Lying;
+
+ delitem Acorn, 20;
+ delitem ChocolateMouboo, 20;
+ delitem ChocolateBar, 20;
+ delitem Candy, 15;
+ delitem OrangeCupcake, 15;
+ delitem CherryCake, 10;
+ delitem GingerBreadMan, 5;
+ delitem ChocolateBiscuit, 2;
+
+ getexp rand(12000, 13000), 0;
+ setq HurnscaldQuest_TeaParty, 2;
+
+ mes "";
+ mesn;
+ mesq l("Many thanks! I'll arrange the table.");
+ close;
+
+L_Lying:
+ mesn;
+ mesq l("Wha- How dare you, to lie to me!");
+ // She'll try to drain all your MP. If you're not MP Full, you'll die. And will have EXP penalty, of course.
+ if (Sp == MaxSp)
+ percentheal 0, -100;
+ else
+ percentheal -100, 0;
+ close;
+
+// begin: Gumi Script
+L_TeaParty:
+ mes "";
+ mesn;
+ mesq l("Wonderful, I am happy to have you over. Lets get things started with some puerh tea.");
+ next;
+ mes col("Celestia hands you a cup filled with some type of tea that is unlike anything you have seen before.", 9);
+ mes col("It has a very dark color and an unusual aroma reminiscent of a moist forest.", 9);
+ next;
+ mes col("For a moment you wonder if Celestia might have gotten confused and tossed in a handful of forest dirt into the teapot.", 9);
+ mes col("You ponder whether or not it would be wise to drink it.", 9);
+ menu
+ l("Uh are you sure this is fit to drink?"), L_QuestionTea,
+ l("(Drink the tea, hoping for the best)"), L_DrinkTea;
+
+L_DrinkTea:
+ // This is easily exploitable on purpose: It's mostly to protect against flood.
+ if (@tmp_teatime < gettimetick(2)) {
+ percentheal 0, 15;
+ @tmp_teatime=gettimetick(2)+140;
+ }
+ mes col("To your pleasant surprise the tea is actually quite good.", 9);
+ next;
+ mes col("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavour, but in a very good way.", 9);
+ next;
+ mes col("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia.", 9);
+ close;
+
+L_QuestionTea:
+ mesq l("Yes, did you really think I was some kind of monster that would try to poison you in my own house?");
+ mes l("##a(it would be way too messy anyway)##0");
+ next;
+ mes col("Celestia then picks up the cup of tea and drinks it in front of you to demonstrate that it is not only harmless but also quite delectable.", 9);
+ close;
+// end: Gumi Script
+
+
+OnInit:
+ .@npcId = getnpcid(0, .name$);
+ setunitdata(.@npcId, UDT_HEADTOP, ValentineDress);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, MurdererCrown);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
+ setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 19);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 10);
+
+ .sex = G_FEMALE;
+ .distance = 5;
+
+}