summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-04-11 13:35:08 -0300
committerJesusaves <cpntb1@ymail.com>2021-04-11 13:35:08 -0300
commit7ec475c058c340dd95f49e9c599dcc62bd19fb16 (patch)
tree8c33fc5d33428b99e0df50088b4884b3aa9eafa9
parentf0b75fb23e0e6f9e7e99907f3dac6ee327c52528 (diff)
downloadserverdata-7ec475c058c340dd95f49e9c599dcc62bd19fb16.tar.gz
serverdata-7ec475c058c340dd95f49e9c599dcc62bd19fb16.tar.bz2
serverdata-7ec475c058c340dd95f49e9c599dcc62bd19fb16.tar.xz
serverdata-7ec475c058c340dd95f49e9c599dcc62bd19fb16.zip
Fix typos. Add the newer npcs: Ashley, Kytty and The Beheader
-rw-r--r--db/constants.conf2
-rw-r--r--npc/002-1/luca.txt10
-rw-r--r--npc/003-4/_import.txt1
-rw-r--r--npc/003-4/ashley.txt60
-rw-r--r--npc/009-1/_import.txt1
-rw-r--r--npc/009-1/event.txt160
-rw-r--r--npc/012-3/_import.txt1
-rw-r--r--npc/012-3/beheader.txt187
8 files changed, 417 insertions, 5 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 07aa31e8..dc9eaab9 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -5822,6 +5822,8 @@ more than one separator can be used in a row (so 12_3___456 is illegal).
NPC417:417
NPC418:418
NPC419:419
+ NPC429:429
+ NPC430:430
NPC32767:32767
@include "conf/import/constants.conf"
diff --git a/npc/002-1/luca.txt b/npc/002-1/luca.txt
index 609cc389..9821ca9a 100644
--- a/npc/002-1/luca.txt
+++ b/npc/002-1/luca.txt
@@ -60,15 +60,15 @@ L_Teach:
rif(getskilllv(SKILL_MALLARDS_EYE),
l("Toggle Focus - Mallards Eye")), SKILL_MALLARDS_EYE,
rif(getskilllv(SKILL_BRAWLING),
- l("Toggle Focus - Brawling"), SKILL_BRAWLING,
+ l("Toggle Focus - Brawling")), SKILL_BRAWLING,
rif(getskilllv(SKILL_SPEED),
- l("Toggle Focus - Speed"), SKILL_SPEED,
+ l("Toggle Focus - Speed")), SKILL_SPEED,
rif(getskilllv(SKILL_RESIST_POISON),
- l("Toggle Focus - Resist Ailment"), SKILL_RESIST_POISON,
+ l("Toggle Focus - Resist Ailment")), SKILL_RESIST_POISON,
rif(getskilllv(SKILL_ASTRAL_SOUL),
- l("Toggle Focus - Astral Soul"), SKILL_ASTRAL_SOUL,
+ l("Toggle Focus - Astral Soul")), SKILL_ASTRAL_SOUL,
rif(getskilllv(SKILL_RAGING),
- l("Toggle Focus - Raging"), SKILL_RAGING;
+ l("Toggle Focus - Raging")), SKILL_RAGING;
mes "";
switch (@menuret) {
case -3: close;
diff --git a/npc/003-4/_import.txt b/npc/003-4/_import.txt
index 00ff0aad..19764510 100644
--- a/npc/003-4/_import.txt
+++ b/npc/003-4/_import.txt
@@ -2,3 +2,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/003-4/_mobs.txt",
"npc/003-4/_warps.txt",
+"npc/003-4/ashley.txt",
diff --git a/npc/003-4/ashley.txt b/npc/003-4/ashley.txt
new file mode 100644
index 00000000..9be78493
--- /dev/null
+++ b/npc/003-4/ashley.txt
@@ -0,0 +1,60 @@
+003-4,35,25,0 script Ashley NPC139,{
+ mes "[Ashley]";
+ mes "\"Ah, hello. Your smell is different, you seem to have come from a different time.";
+ mes "Perhaps you have the rare item I'm looking for?\"";
+ menu
+ "Sure!",L_Next,
+ "Sorry, I'm busy.",L_close;
+
+L_Next:
+ mes "She smiles mischievously.";
+ mes "[Ashley]";
+ mes "\"Oho, I need an item which doesn't exists at this time... It is called Mylarin Dust.\"";
+ next;
+ mes "[Ashley]";
+ mes "Grinning intensifies";
+ mes "\"I'll even give you an old weapon as a reward.\"";
+ next;
+ mes "[Ashley]";
+ mes "\"So, do you have it?\"";
+ menu
+ "Yeah, here is it.",L_Next1,
+ "Not yet.",L_close;
+
+L_Next1:
+ if (countitem("MylarinDust") < 1)
+ goto L_NoMylarin;
+
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_FullInv;
+
+ delitem "MylarinDust", 1;
+ getexp 2000, 0;
+ getitem "SandCutter", 1;
+ mes "[Ashley]";
+ mes "Grinning widely";
+ mes "\"Thanks, mortal. This will help me a bit...\"";
+ next;
+ mes "[Ashley]";
+ mes "\"And if you have more Mylarin Dust with you, I will not hesitate to give you another old weapon as a reward.\"";
+ goto L_close;
+
+L_NoMylarin:
+ mes "[Ashley]";
+ mes "She fakes smiles at you";
+ mes "\"Oh, did you said you wanted me to play with you?\"";
+ next;
+ mes "[Ashley]";
+ mes "\"While I would love to play... I still have to put a prank on Cupid, so you'll have to wait your turn.\"";
+ goto L_close;
+
+L_FullInv:
+ mes "[Ashley]";
+ mes "\"You're carrying so many things that I feel the urge of stomping you.\"";
+ goto L_close;
+
+L_close:
+ @inventorylist_count = 0;
+ close;
+}
diff --git a/npc/009-1/_import.txt b/npc/009-1/_import.txt
index 207b090c..a414e690 100644
--- a/npc/009-1/_import.txt
+++ b/npc/009-1/_import.txt
@@ -3,6 +3,7 @@
"npc/009-1/_mobs.txt",
"npc/009-1/_warps.txt",
"npc/009-1/constable.txt",
+"npc/009-1/event.txt",
"npc/009-1/guide.txt",
"npc/009-1/jack.txt",
"npc/009-1/mapflags.txt",
diff --git a/npc/009-1/event.txt b/npc/009-1/event.txt
new file mode 100644
index 00000000..edd39f34
--- /dev/null
+++ b/npc/009-1/event.txt
@@ -0,0 +1,160 @@
+
+009-1,30,34,0 script Kytty NPC430,{
+ // Core Variable Switcher
+ if (gettime(5) >= 13 && gettime(5) <= 15) goto L_Quest;
+ if (gettime(5) > 15 && strcharinfo(0) == "kytty" && $VALENTINE) goto L_StopEvent;
+ if (gettime(5) > 15 && #VALENTINE) goto L_ClaimRewards;
+ if (gettime(5) > 15 && GM >= GM_DEV && $VALENTINE) goto L_ReadOnly;
+ mes "[Kytty]";
+ mes "\"Uh? Hello there. I am looking for my husband to stare at him, don't mind me.\"";
+ close;
+
+L_Quest:
+ if (#VALENTINE) goto L_Running;
+ // Core dialog
+ mes "[Kytty]";
+ mes "\"Hey, "+strcharinfo(0)+"! I have a problem and perhaps you can help me!\"";
+ next;
+ menu
+ "Sure, m'am... What should I do?", L_Continue,
+ "Who, me? Sorry, wrong person.", L_close;
+
+L_Continue:
+ mes "";
+ mes "[Kytty]";
+ mes "\"I feel like my husband is staring at other people, and that is ABSURD! He should only stare at kytty!\" %%e";
+ next;
+ mes "[Kytty]";
+ mes "\"So kytty came up with a great plan - kytty will brew some [@@5263|Love Potions@@] so hubby only stares at me!\"";
+ next;
+ mes "[Kytty]";
+ mes "\"I have most ingredients, but a few are still missing and I was hoping you could help me out:\"";
+ mes "- 20x Cherry";
+ mes "- 20x Chocolate Bar";
+ mes "- 1x Diamond";
+ mes "- 1x Chocolate Cake";
+ next;
+ mes "[Kytty]";
+ mes "\"Uh? Of course I won't put everything in the potion! Wyara will sell me some other ingredients for the diamond, and... Hey, stop making questions!\"";
+ next;
+ mes "[Kytty]";
+ mes "\"Do you have everything I've asked for?\"";
+ menu
+ "I do.", L_Check,
+ "I don't.", L_close;
+
+L_Check:
+ mes "";
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full;
+
+ if (countitem("ChocolateBar") < 20) goto L_NotEnough;
+ if (countitem("Cherry") < 20) goto L_NotEnough;
+ if (countitem("Diamond") < 1) goto L_NotEnough;
+ if (countitem("ChocolateCake") < 1) goto L_NotEnough;
+
+ delitem "ChocolateBar", 20;
+ delitem "Cherry", 20;
+ delitem "Diamond", 1;
+ delitem "ChocolateCake", 1;
+ getitem "LovePotion", 1;
+ getexp 50000, 0;
+ #VALENTINE = 1;
+ mes "[Kytty]";
+ mes "\"With this, he will totally stare only at me now! Thanks for the help. Here, you can have an extra, but you are not cute like him so don't blame me if it don't work or present... side effects.\"";
+ next;
+ mes "[Kytty]";
+ mes "\"Also, I love chocolate. I'll give you a spare potion every fifty [@@509|@@] you bring me.\"";
+ close;
+
+L_NotEnough:
+ mes "";
+ mes "[Kytty]";
+ mes "\"Don't try to troll me, I know you don't have everything.\"";
+ close;
+
+L_Full:
+ mes "[Kytty]";
+ mes "\"Free up some space in your inventory, please.\"";
+ close;
+
+L_Running:
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full;
+ mes "[Kytty]";
+ mes "\"Have you brought me more chocolate? I am starving with only "+$VALENTINE+" [@@509|@@]. You ##Bonly##b gave me "+(#VALENTINE-1)+" bar(s), after all!\"";
+ next;
+ menu
+ "Not yet, but I'll be back.", L_close,
+ "Sure thing miss, take all you want!", L_Collect;
+
+L_Collect:
+ mes "";
+ @choco = countitem("ChocolateBar");
+ @bonus = (#VALENTINE%50)+@choco;
+ @potio = @bonus/50;
+ //debugmes "Choco "+@choco+" Potio "+@potio+" Bonus "+@bonus+".";
+ @bonus = 0;
+ delitem "ChocolateBar", @choco;
+ #VALENTINE = #VALENTINE+@choco;
+ $VALENTINE = $VALENTINE+@choco;
+ getexp @choco*15, @choco*7;
+ if (@potio) goto L_BonusPots;
+ mes "[Kytty]";
+ mes "\"Yummy! Thanks for your support. Tell me if you have more chocolate!\"";
+ close;
+
+L_BonusPots:
+ getitem "LovePotion", @potio;
+ mes "[Kytty]";
+ mes "\"Here are some love potions for you. But as I said - I'm not sure if you are cute enough for them.\"";
+ close;
+
+L_StopEvent:
+ mes "[Kytty]";
+ mes "\"Hey other me! I still have "+$VALENTINE+" chocolate bars, but I'm a NPC and cannot eat them, so here they are!\"";
+ next;
+ @choco = min($VALENTINE, 30000);
+ getitem "ChocolateBar", @choco;
+ $VALENTINE = $VALENTINE-@choco;
+ mes "[Kytty]";
+ mes "\"Also: Jesusalva asked me to wish you a happy Valentine Day.\"";
+ close;
+
+L_ReadOnly:
+ mes "[Kytty]";
+ mes "\"I'm still holding on "+$VALENTINE+" chocolate bars, but I'll eat them soon!\"";
+ close;
+
+L_ClaimRewards:
+ if(!#VALENTINE) goto L_close;
+ getinventorylist;
+ if (@inventorylist_count > 95) goto L_Full;
+ setarray @oldstock$, "GrassFedTofu", "Honey", "VeganWater", "FairTradeSoil", "LactoseFreeAcorn", "RawAir", "FreeRangeMoss";
+ getitem @oldstock$[rand(getarraysize(@oldstock$))], 1;
+ cleararray @oldstock$, "", getarraysize(@oldstock$);
+ //getitem "BlueWolfHelmet", 1; // FIXME?
+ getitem "ShockSweet", rand(4, 7);
+ getitem "DarkConcentrationPotion", rand(2, 5);
+ getexp 1+(#VALENTINE*BaseLevel)/2, 0;
+ #VALENTINE = 0;
+ close;
+
+L_close:
+ close;
+
+L_Off:
+ disablenpc "Kytty";
+ end;
+
+L_On:
+ enablenpc "Kytty";
+ end;
+
+OnInit:
+ if (gettime(6) == 2) goto L_On; // NPC shows only in February
+ goto L_Off;
+
+OnClock0000:
+ goto OnInit;
+}
diff --git a/npc/012-3/_import.txt b/npc/012-3/_import.txt
index 09c1f9b0..14dac983 100644
--- a/npc/012-3/_import.txt
+++ b/npc/012-3/_import.txt
@@ -2,6 +2,7 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/012-3/_mobs.txt",
"npc/012-3/_warps.txt",
+"npc/012-3/beheader.txt",
"npc/012-3/mana-seed.txt",
"npc/012-3/mapflags.txt",
"npc/012-3/traveler.txt",
diff --git a/npc/012-3/beheader.txt b/npc/012-3/beheader.txt
new file mode 100644
index 00000000..f0725754
--- /dev/null
+++ b/npc/012-3/beheader.txt
@@ -0,0 +1,187 @@
+
+012-3,450,67,0 script The Beheader NPC429,{
+ if (FLAGS & FLAG_BEHEADER_MASK) goto L_Complete;
+ mes "[The Beheader]";
+ mes "\"I am The Beheader, known for beheading Terranites.\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"Unfortunately, even with this disguise they could recognize and avoid me. I'll need a new one...\"";
+ next;
+ menu
+ "I'm sorry to hear that.", L_close,
+ "Uh... Try wearing a mask?", L_Mask,
+ "Can I behead Terranites on my own?", L_Beheader,
+ "You monster!", L_close;
+
+L_Mask:
+ mes "";
+ mes "[The Beheader]";
+ mes "\"A mask, ohh! Not a bad idea. I might even have a better idea! If only...\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"Hey, how about we do this deal: You bring me a [@@766|@@] and I'll give you one of my finest [@@5209|@@]. It has even been polished and might be useful in combat for you.\"";
+ next;
+ menu
+ "Maybe later, pal.", L_close,
+ "Sorry, I'm keeping my helmet.", L_Confirm,
+ "Take it, I thought it was ugly anyway...", L_Exchange;
+
+L_Exchange:
+ mes "";
+ if (countitem("TerraniteHelmet") < 1)
+ goto L_Nope;
+
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_Nope;
+
+ delitem "TerraniteHelmet", 1;
+ getitem "TerraniteHead", 1;
+ getexp 100000, 0;
+ FLAGS = FLAGS | FLAG_BEHEADER_MASK;
+ mes "[The Beheader]";
+ mes "\"Muahaha, I'll let you know how it went later.\"";
+ close;
+
+L_Confirm:
+ mes "";
+ mes "[The Beheader]";
+ mes "\"What, really? A Terranite Head is waaay cooler than the helmet. And to be honest, you will never be able to obtain a head as cool as the one I am offering you.\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"You may regret in not making this deal with me! I ask you to reconsider.\"";
+ mes "##9Note: Refusing to exchange is permanent and you'll never be able to obtain a [@@5209|@@] with this char, unless you win one at an event. Please be sure you really want this.##0";
+ next;
+ menu
+ "...I'll think on this more thoroughly.", L_close,
+ "Sorry, I'm keeping my helmet.", L_ReallyGiveUp;
+
+L_ReallyGiveUp:
+ mes "";
+ if (countitem("TerraniteHelmet") < 1)
+ goto L_Nope;
+ getexp 100000, 0;
+ FLAGS = FLAGS | FLAG_BEHEADER_MASK;
+ mes "[The Beheader]";
+ mes "\"Meeeh, I'll try to get someone else to do it for me, then! Hmpf.\"";
+ close;
+
+L_Complete:
+ mes "[The Beheader]";
+ mes "\"I am The Beheader, known for beheading Terranites.\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"Come back later, my [@@576|@@] is itching to strike on something.\"";
+ next;
+ menu
+ "Okay, good bye.", L_close,
+ "How much later?", L_Later,
+ "Can I behead Terranites on my own?", L_Beheader;
+
+L_Later:
+ mes "";
+ mes "[The Beheader]";
+ mes "\"Time passes so quickly. It would seem that later is now. I wonder if now is then, then. Hmmmm...\"";
+ if (!(FLAGS & FLAG_GOT_BEHEADER_SWORD)) goto L_MaybeBeheader;
+ // NOTE: Room for future expansion if needed.
+ // Previous text: "Some February, I don't know. If you want to help, go to Hurnscald square, look for the noisy person with an AFK Cap which is always sitting with their kitty, and tell them to start working. That might just do the trick."
+ // The "noisy person w/ an AFK Cap and a kytty" is Jesusalva (script author)
+ close;
+
+L_MaybeBeheader:
+ next;
+ menu
+ "Okay, good bye.", L_close,
+ "Can I behead Terranites on my own?", L_Beheader;
+
+L_Beheader:
+ if (FLAGS & FLAG_GOT_BEHEADER_SWORD) goto L_Again;
+ if (TERRAC == 1501) goto L_Finish;
+ if (TERRAC > 0) goto L_Status;
+ mes "";
+ mes "[The Beheader]";
+ mes "\"You obviously know nothing about Terranite Anatomy, hahaha!\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"You don't even have the proper tools. Nah, I bet you wouldn't know how to use them even if you had, hahaha!\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"Sorry, this is just funny! Most people of your age already realized that it takes a life of dedication and skill honing to be able to scavenge anything from a monster.\"";
+
+ // Quest requirement check (not really needed, is old code)
+ if (BaseLevel < 60) goto L_close;
+ next;
+ mes "[The Beheader]";
+ mes "\"Maybe we can make a deal. I can give you the proper tools but not the proper training, so don't expect much; But I'm interested in seeing how you'll fail at my hands... I'm an old man and seeing young people like you running around doing meaningless tasks is fun.\"";
+ next;
+ //mes "\"So. Hmm. Lemme think. What I wanted again? *suffers from AFK-induced amnesia and becomes a huge TODO sign*\"";
+ menu
+ "Very well. Give me your task.", L_Accept,
+ "I knew it, you are as crazy as Arkim!", L_close;
+
+L_Accept:
+ mes "";
+ mes "[The Beheader]";
+ mes "So... Hmm, lemme think... Ah, I know! Thou shall ##Bkill me 1500 [@@m1062|@@]##b. Why? Because that's pointless, and you want a weapon you won't be able to use, so a pointless task for a pointless reward! Now get going!";
+ TERRAC = 1;
+ close;
+
+L_Status:
+ mes "";
+ mes "[The Beheader]";
+ mes "\"Get going, running in circles and amusing me, you only killed "+(TERRAC-1)+"/1500 [@@m1062|@@] until now.\"";
+ close;
+
+L_Again:
+ mes "";
+ mes "[The Beheader]";
+ mes "\"Again, it takes a life of dedication and skill honing to be able to scavenge anything from a monster.\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"You must imagine where the Hyoid bone would be in a Terranite and make a clear cut with a [@@576|@@], but as you are currently, that will not be possible. Maybe in the future you may find a monster anatomy professor.\"";
+ mes "##9(Development note: TMWA Engine does not support altering monster drops depending on the weapon. However, Evol2 engine does, and TMW rEvolt probably will have this feature.)##0";
+ close;
+
+L_Finish:
+ mes "";
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_Nope;
+
+ mes "[The Beheader]";
+ mes "\"I'm always impressed at how the young folks never give up on their dreams. Well, listen carefully:\"";
+ next;
+
+ mes "[The Beheader]";
+ mes "\"To behead a Terranite, you need a clear cut at the Hyoid Bone, otherwise you won't be able to behead them even with the proper weapon. I took a decade training and even so I rarely manage to get a clear cut.\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"Uh? No man, Terranites doesn't have neck bones. Ever saw a Terranite turning its neck to face you?? I said that because we Talpans have and it was the only reference I could think of for you.\"";
+ next;
+ mes "[The Beheader]";
+ mes "\"Well, I guess you'll need an anatomy professor to teach you the specifics to get a Terranite Head... Uh, and of course, you might want to learn how to polish them. You know. For the bonuses.\"";
+ next;
+
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_Nope;
+
+ getitem "Beheader", 1;
+ getexp 750000, 0;
+ FLAGS = FLAGS | FLAG_GOT_BEHEADER_SWORD;
+ TERRAC = 0;
+
+ mes "[The Beheader]";
+ mes "\"Anyway, a deal is a deal and here is your [@@576|@@]. I hope you can actually make good use of it!\"";
+ mes "##9(Development note: TMWA Engine does not support altering monster drops depending on the weapon. However, Evol2 engine does, and TMW rEvolt probably will have this feature.)##0";
+ close;
+
+L_Nope:
+ mes "[The Beheader]";
+ mes "\"Stop trolling me, or I might consider putting your head on my collection.\"";
+ close;
+
+L_close:
+ close;
+}
+