summaryrefslogtreecommitdiff
path: root/npc/024-16
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
committerJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
commita7c45a192268da2601cef47a4cdba987ae2327ca (patch)
treec5fb5b97db109fe7106496dd96498c475881046b /npc/024-16
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/024-16')
-rw-r--r--npc/024-16/_import.txt7
-rw-r--r--npc/024-16/_warps.txt3
-rw-r--r--npc/024-16/craftsman.txt177
-rw-r--r--npc/024-16/generals.txt142
-rw-r--r--npc/024-16/guards.txt30
-rw-r--r--npc/024-16/king.txt249
6 files changed, 608 insertions, 0 deletions
diff --git a/npc/024-16/_import.txt b/npc/024-16/_import.txt
new file mode 100644
index 0000000..402dc74
--- /dev/null
+++ b/npc/024-16/_import.txt
@@ -0,0 +1,7 @@
+// Map 024-16: Frostia's Throne Room
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/024-16/_warps.txt",
+"npc/024-16/craftsman.txt",
+"npc/024-16/generals.txt",
+"npc/024-16/guards.txt",
+"npc/024-16/king.txt",
diff --git a/npc/024-16/_warps.txt b/npc/024-16/_warps.txt
new file mode 100644
index 0000000..5ead61b
--- /dev/null
+++ b/npc/024-16/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 024-16: Frostia's Throne Room warps
+024-16,30,54,0 warp #024-16_30_54 2,0,024-1,98,22
diff --git a/npc/024-16/craftsman.txt b/npc/024-16/craftsman.txt
new file mode 100644
index 0000000..961161e
--- /dev/null
+++ b/npc/024-16/craftsman.txt
@@ -0,0 +1,177 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Craftmaster, teaches player TMW2_CRAFT
+
+024-16,27,42,0 script Dwarf Craftsmaster NPC_DWARF_CRAFTMASTER,{
+ function calcRequisites;
+ function calcPrices;
+ function calcUpgrade;
+ .@q=getq(General_Narrator);
+ if (.@q < 13) {
+ hello;
+ end;
+ }
+ mesn;
+ mesq lg("Look what we have here, it is a girl!", "Look what we have here, it is a boy!");
+ next;
+ mesn;
+ mesq l("I'm Thurgar the mighty craftsman. I can make anything reality! But I only work to the king!");
+ next;
+ mesn;
+ mesq l("...Unless, of course, if you're interested in learning this art. You'll not regret it, I assure you.");
+ next;
+ // Main Loop
+ .@score=CRAFTING_SCORE_COMPLETE/40;
+ mesc l("Crafting Skill Level: @@", getskilllv(TMW2_CRAFT));
+ msObjective(.@score >= calcRequisites(),
+ l("Completed Crafts: @@/@@", .@score, calcRequisites()) );
+ msObjective(Zeny >= calcPrices(),
+ l("Money: @@ GP", format_number(Zeny)) );
+ // Script end
+ if (getskilllv(TMW2_CRAFT) > 6)
+ close;
+ mes "";
+ select
+ rif(!.@score, l("How can I complete a craft?")),
+ rif(.@score >= calcRequisites(), l("Learn crafting for @@ GP", format_number(calcPrices())) ),
+ rif(.@score, l("How can I complete a craft?")),
+ l("Nothing for now, thanks.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ case 3:
+ mesn;
+ mesq l("Well, first of, you'll need an @@ and an Equipment Recipe.", getitemlink(RecipeBook));
+ next;
+ if (!countitem(RecipeBook) && !countitem(JesusalvaGrimorium)) {
+ mesn;
+ mesq l("If you don't have the recipe book, you'll need to find one... Maybe someone in a household you've already helped is willing to give you one.");
+ next;
+ }
+ mesn;
+ mesq l("Anyway, once you have the recipe book and learned a recipe, you can craft items in forges. I think you can buy it in your apartment.");
+ next;
+ mesn;
+ mesq l("That will help you to make your very first first craft! Remember to use @@ to change which bonuses can be applied to your craft items.", b("@ucp"));
+ next;
+ mesn;
+ mesq l("I think someone on Tulimshar is capable to teach you these bonuses. Eh, I don't know. Haven't been there for a while.");
+ break;
+ case 2:
+ if (calcUpgrade()) {
+ mesn;
+ mesq l("There you go. Craft hard, mwhahahahaha!");
+ } else {
+ mesn;
+ mesq l("You don't have met all requisites, like money and successful crafts, or you already reached the maximum level for this skill.");
+ }
+ break;
+ }
+ close;
+
+// Calc successful crafts required to learn crafting
+// Returns amount of crafts needed
+function calcRequisites {
+ switch (getskilllv(TMW2_CRAFT)) {
+ case 0:
+ return 0;
+ case 1:
+ return 3;
+ case 2:
+ return 7;
+ case 3:
+ return 12;
+ case 4:
+ return 18;
+ case 5:
+ return 32;
+ case 6:
+ return 64;
+ }
+ return -1;
+}
+
+// Calc how much GP the skill will cost you
+// Returns amount of GP
+function calcPrices {
+ switch (getskilllv(TMW2_CRAFT)) {
+ case 0:
+ return 1000;
+ case 1:
+ return 5000;
+ case 2:
+ return 9000;
+ case 3:
+ return 15000;
+ case 4:
+ return 27000;
+ case 5:
+ return 36000;
+ case 6:
+ return 50000;
+ }
+ return false;
+}
+
+// calcUpgrade() returns true if skill
+// can be leveled up. And levels it up.
+function calcUpgrade {
+ .@gp=calcPrices();
+ .@cf=calcRequisites();
+ if (Zeny < .@gp)
+ return false;
+ if (CRAFTING_SCORE_COMPLETE / 40 < .@cf)
+ return false;
+ if (.@cf < 0 || .@gp < 0)
+ return false;
+
+ // You may get a free blueprint
+ switch (getskilllv(TMW2_CRAFT)) {
+ case 0:
+ inventoryplace EquipmentBlueprintA, 1;
+ getitem EquipmentBlueprintA, 1;
+
+ // We should aid you getting basic skills - for free!
+ if (!CRAFTSYS[CRGROUP_BASE])
+ CRAFTSYS[CRGROUP_BASE]+=1;
+ if (!CRAFTSYS_CURRENT)
+ CRAFTSYS_CURRENT=CRAFTSYS_CURRENT|CRGROUP_BASE;
+
+ break;
+ case 1:
+ inventoryplace EquipmentBlueprintB, 1;
+ getitem EquipmentBlueprintB, 1;
+ break;
+ case 2:
+ inventoryplace EquipmentBlueprintC, 1;
+ getitem EquipmentBlueprintC, 1;
+ break;
+ case 3:
+ inventoryplace EquipmentBlueprintD, 1;
+ getitem EquipmentBlueprintD, 1;
+ break;
+ case 4:
+ inventoryplace EquipmentBlueprintE, 1;
+ getitem EquipmentBlueprintE, 1;
+ break;
+ case 5:
+ inventoryplace AncientBlueprint, 1;
+ getitem AncientBlueprint, 1;
+ break;
+ default:
+ getexp 1700, 200;
+ break;
+ }
+
+ Zeny-=.@gp;
+ skill TMW2_CRAFT, getskilllv(TMW2_CRAFT)+1, 0;
+ return true;
+}
+
+OnInit:
+ .distance=5;
+ end;
+}
+
diff --git a/npc/024-16/generals.txt b/npc/024-16/generals.txt
new file mode 100644
index 0000000..6f420f5
--- /dev/null
+++ b/npc/024-16/generals.txt
@@ -0,0 +1,142 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Generals
+
+// FrostiaTaskMaster(lvl)
+function script FrostiaTaskMaster {
+ .@q=General_MobHunting4;
+ .@q1=getq(General_MobHunting4);
+ .@q2=getq2(General_MobHunting4);
+ .@q3=getq3(General_MobHunting4);
+ .@d=gettimeparam(GETTIME_DAYOFMONTH);
+ .@lv=getarg(0, 1);
+ // It's a new day, so we must generate a new quest!
+ if (.@q1 != .@d) {
+ .@q1=.@d;
+ .@q2=any(Moggun, IcedFluffy, Fluffy, Pollet, BlueSlime, WhiteSlime, SantaSlime, AzulSlime, RudolphSlime); // WaterFairy
+ setq .@q, .@q1, .@q2, 0;
+ }
+
+ // Maybe there is no monster to kill
+ if (!.@q2) {
+ mesn;
+ mesq l("You've already completed this quest today. Try again tomorrow.");
+ return true;
+ }
+
+ // Maybe you finished the quest?
+ if (.@q3 >= 50) {
+ mesn;
+ mesq l("Good job, you've killed the @@ @@ and reported back in time!", 50, getmonsterlink(.@q2));
+ next;
+ mesn;
+ mesq l("It's not much of a reward, but doesn't it feels great to help others in need?! HAHAHA!");
+ Zeny+=.@lv*8;
+ // Raise LV according to monster level
+ .@lv+=strmobinfo(3, .@q2);
+ getexp BaseLevel*.@lv, .@lv;
+ setq2 .@q, 0;
+ setq3 .@q, 0;
+ return false;
+ }
+
+ mesn;
+ mesq l("Please kill @@/@@ @@ for us and make the world a safer place!", .@q3, 50, getmonsterlink(.@q2));
+ return false;
+}
+
+// FrostiaGeneralQuest( Skillname )
+function script FrostiaGeneralQuest {
+ .@at$=getarg(0);
+ mesn;
+ mesq l("Hey. You there. Time to do @@ and show what you're made of.", .@at$);
+ next;
+ mesn;
+ mesq l("If you conclude the training, you'll be suitable for the difficult mission our King have to you.");
+ next;
+ mesc b(l(".:: Main Quest 6-2 ::.")), 3;
+ msObjective(BaseLevel >= 52, l("* @@/@@ Base Level", BaseLevel, 52));
+ msObjective(JobLevel >= 24, l("* @@/@@ Job Level", JobLevel, 24));
+ //msObjective(JobLevel >= 24, l("* Win an Arena Match"));
+ next;
+ if (BaseLevel >= 52 && JobLevel >= 24) {
+ mesn;
+ mesq l("Congrats, you did it.");
+ next;
+ mesn;
+ mesq l("So, if you hired a Mercenary to protect your back... Would you prefer it to attack from rearguard, or charge against certain death, buying you time?");
+ next;
+ select
+ l("I honestely wouldn't hire a Mercenary."),
+ l("Running is for noobs, we should hold our ground!"),
+ l("I can protect myself, so it should attack from afar.");
+ mes "";
+ // Decide which mercenary you'll get
+ if (@menu == 2)
+ .@card=MercCard_Saulc;
+ else if (@menu == 3)
+ .@card=MercCard_Arthur;
+ else
+ .@card=any(MercCard_Saulc, MercCard_Arthur);
+
+ inventoryplace ElixirOfLife, 1, .@card, 1, Grenade, 3;
+ mesn;
+ mesq l("Take this @@. It might save your life on the secret mission you're about to be assigned to.", getitemlink(.@card));
+ next;
+ mesn;
+ mesq l("I'll also provide you a few @@s and an Elixir. Use them wisely.", getitemlink(Grenade));
+ next;
+ mesn;
+ mesq l("Now go talk to the King.");
+ setq General_Narrator, 15;
+ getitem Grenade, 3;
+ getitem .@card, 1;
+ getitem ElixirOfLife, 1;
+ getexp 0, 400; // Get 10% JEXP. Reference: 3988~5564
+ close;
+ }
+ mesn;
+ mesq l("Now, a simple @@ quest to make you stronger...", .@at$);
+ next;
+ if (FrostiaTaskMaster(20)) {
+ next;
+ mesn;
+ mesq l("Or maybe... You want to try again right now? I'll do whatever needed to level you up to less-noobish levels.");
+ next;
+ if (askyesno() == ASK_YES) {
+ setq General_MobHunting4, 0, 0, 0;
+ FrostiaTaskMaster(20);
+ }
+ }
+ close;
+}
+
+//////////////////////////////////////////////////////////////////////
+024-16,29,21,0 script Wizard General NPC_BLUESABER,{
+ .@q=getq(General_Narrator);
+ if (.@q == 14)
+ FrostiaGeneralQuest("Magic");
+ else
+ FrostiaTaskMaster(20);
+ close;
+
+OnInit:
+ .distance=5;
+ end;
+}
+
+024-16,31,21,0 script Warrior General NPC_REDSABER,{
+ .@q=getq(General_Narrator);
+ if (.@q == 14)
+ FrostiaGeneralQuest("Fight");
+ else
+ FrostiaTaskMaster(20);
+ close;
+
+OnInit:
+ .distance=5;
+ end;
+}
+
diff --git a/npc/024-16/guards.txt b/npc/024-16/guards.txt
new file mode 100644
index 0000000..80405dd
--- /dev/null
+++ b/npc/024-16/guards.txt
@@ -0,0 +1,30 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Frostia King Guards
+
+024-16,33,42,0 script Royal Guard#02416A NPC_BRGUARD_SPEAR,{
+ legiontalk;
+ end;
+
+OnInit:
+ .distance=5;
+ end;
+}
+
+024-16,25,33,0 duplicate(Royal Guard#02416A) Royal Guard#02416B NPC_BRGUARD_SWORD
+024-16,35,33,0 duplicate(Royal Guard#02416A) Royal Guard#02416C NPC_BRGUARD_BOW
+
+
+// Before King Gelid give you his OK, you cannot leave throne room
+024-16,30,53,0 script #FrostiaKingAudience NPC_HIDDEN,1,0,{
+end;
+OnTouch:
+ if (getq(General_Narrator) <= 12) {
+ slide 30, 52;
+ dispbottom l("Ops, I should not leave this room without talking to the king first.");
+ }
+ end;
+}
+
diff --git a/npc/024-16/king.txt b/npc/024-16/king.txt
new file mode 100644
index 0000000..676e61f
--- /dev/null
+++ b/npc/024-16/king.txt
@@ -0,0 +1,249 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Ruler of Frostia (maybe we should instance this map so the king can walk)
+
+024-16,30,23,0 script King Gelid NPC_ELF,{
+ .@q=getq(General_Narrator);
+ if (.@q < 12) {
+ nude();
+ atcommand("#dropall "+strcharinfo(0)); // Evil
+ Exception("FATAL ERROR, PLAYER "+strcharinfo(0)+" NOT ALLOWED TO BE WITHIN FROSTIA'S CASTLE - REASON: SAULC IS A NOOB");
+ slide 30, 52;
+ end;
+ }
+ if (.@q >= 17)
+ goto L_Complete;
+ if (.@q == 16)
+ goto L_Report;
+ if (.@q == 15)
+ goto L_Campaign;
+ if (.@q >= 13)
+ goto L_MainQuest;
+
+ mesn l("King Gelid Frozenheart");
+ mesq l("Hello.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Yes. Frostia is a city-estate, and is ruled by me, King Gelid Frozenheart II.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Is this letter yours? Very well, let me read.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Hm hm. This sounds pretty concerning. Aiming at Sages is also a smart move, as they compose the Alliance Council.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("As about if I have any idea why they said they were from here? ...Actually, I do.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("That aside, I see you've helped Hurnscald Mayor, Nivalis Mayor, Halinarzo Librarian and even the Alliance Representative in Tulimshar!");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq lg("I'm quite interested in you, mah' girl!", "I'm quite interested in you, mah' boy!");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("So, only citzens, elves and dwarves are normally welcome here and I'm NOT going to make you an exception.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("In the ")+b(l("southwest part of the town"))+l(" is the Inn, and you can rent an apartment there for 30 days.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("If you rent an apartment, you'll become a \"citzen\" and be allowed here. Besides, you can buy stuff in your apartment to, for example, craft stuff.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Did I said the best craftsman and craftswoman in the world are here? @@, the legendary bow, was proudly crafted by the first king of Frostia!", getitemlink(Tyranny));
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("He is not alive anymore, so only a single bow of those exist in the whole world... That is why we call it a ")+b(l("legendary weapon"));
+ next;
+ // Finish the quest
+ setq General_Narrator, 13;
+ REAL_ESTATE_CREDITS+=5000;
+
+L_MainQuest:
+ mesn l("King Gelid Frozenheart");
+ mesq l("Anyway, I'll give you @@ Real Estate Credits in advance. Go book yourself a room in the Inn. And then come back to me so we may discuss details.", 5000);
+ next;
+
+ mesc b(l(".:: Main Quest 6-1 ::.")), 3;
+ msObjective(BaseLevel >= 40, l("* @@/@@ Base Level", BaseLevel, 40));
+ msObjective(true, l("* Deliver Nikolai's Letter to Frostia Mayor"));
+ msObjective(ESTATE_RENTTIME >= gettimetick(2), l("* Rent a room in Frostia's Inn"));
+ if (ESTATE_RENTTIME >= gettimetick(2))
+ goto L_Continue;
+ close;
+
+L_Continue:
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Great, I see you've already made yourself comfortable!");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Do not hesit to purchase furniture. The furniture belongs to the house, so if you lose the house, you'll lose it, too. But apartments are never rent to someone else!");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Bah, sorry my manners! I love to chat! Anyway, talk to any General of mine, just behind me. See if they need help.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("There's somewhere I want you to go, but you're not strong enough yet, so be patient and help them first.");
+ if (getq(General_Narrator) == 13) {
+ setq General_Narrator, 14, 0;
+ getexp 0, 40;
+ }
+ close;
+
+L_Campaign:
+ .@q=getq(FrostiaQuest_Homunculus);
+ // We probably should apply you a penalty should you flee... no?
+ setq3 FrostiaQuest_Homunculus, 0;
+
+ // Long intro until you defeat the Yeti.
+ if (!.@q) {
+ mesn l("King Gelid Frozenheart");
+ mesq l("Listen. North of here, is the ruins of an old village. Said village is cursed, and nobody here wants to go there.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("But if you're looking to go to the World Edge, the place where THE WORLD WILL DIE, I guess you are immune to rumors.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("I would bring @@, just in case. Anyway, the place where you're going to is the village where @@ was born.", getitemlink(Coffee), b(l("the Monster King")));
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("I've sent a scout ahead of you, and he reported traps in the caves you'll be needing to use to get there.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("As you can guess, said village was abandoned. However, people are claiming to have seen people walking there, like shadows or zombies.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("As a King, I cannot simply ignore it. Of course, I really doubt it is zombies, but nobody wants to go. That's why I'm resorting to an adventurer like you.");
+ next;
+ }
+ // This is a do{} loop
+ do {
+ mesn l("King Gelid Frozenheart");
+ mesq l("So, will you go?");
+ mesc l("WARNING: Difficult quest, bringing plenty of healing items strongly advised!"), 1;
+ select
+ l("Not right now."),
+ l("Why not Andrei Sakar?"),
+ l("What will be my reward?"),
+ l("Yes, I'll go.");
+ mes "";
+
+ switch (@menu) {
+ case 1:
+ close;
+ case 2:
+ mesn l("King Gelid Frozenheart");
+ if ($FIRESOFSTEAM < 10)
+ mesq l("I tried. He asked for too much money.");
+ else
+ mesq l("Where have you been, pal? He perished.");
+ next;
+ break;
+ case 3:
+ mesn l("King Gelid Frozenheart");
+ mesq l("Whatever you find there is yours to keep.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("I'll also try to bring you to the world's edge, as you've asked.");
+ next;
+ break;
+ case 4:
+ cwarp "023-3", 63, 219; break;
+ }
+ } while (true);
+ end; // fallback
+
+L_Report:
+ mesn strcharinfo(0);
+ mesc l("You report to the King about everything you've found and learned there.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("What?! This changes the whole history. Not only that, but this is a serious issue!");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("I thought I was going to send you in a nest of Yetis, but instead, I've sent you straight to the birthplace of Bandits and Assassins.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Blue Sage will want to know this, I'll write him a letter.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Now, listen to me. I know I promised to bring you to the World's Edge.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Truth is - I cannot do that. Obviously. But I know who can.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Do you know Land Of Fire Village? It is west of Hurnscald and is a major town.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("It only loses to Tulimshar, as far as political and economical importance goes.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Go to the townhall there and show the mayor this other letter.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("They will try to prove your worth before, though. So be ready.");
+ next;
+ mesn l("King Gelid Frozenheart");
+ mesq l("Good luck on your journey!");
+ // Ref. level 52/24 (almost 100% of exp table)
+ getexp 142750, 3950;
+ getvaultexp(10);
+ setq General_Narrator, 17, 0, 0;
+ close;
+
+L_Complete:
+ mesn l("King Gelid Frozenheart");
+ mesq l("Welcome back. Please enjoy your stay here.");
+ next;
+ select
+ l("Could I go back to that cave? It's a good farm spot."),
+ rif($TYRAN_HOLDER$ == "", l("What do you know about the Tyranny Bow?")),
+ l("Thanks, my liege.");
+ mes "";
+ if (@menu == 1)
+ cwarp "023-3", 63, 219;
+ if (@menu == 2) {
+ mesn l("King Gelid Frozenheart");
+ mesq l("It is one of the five legendary weapons. Legend says it was hidden in a tree on Aethyr, and will be given to the one who proves to be an excelent archer.");
+ next;
+ if ($GAME_STORYLINE < 4) {
+ mesn l("King Gelid Frozenheart");
+ mesq l("But this is not a time of need, so it is unlikely to appear even if all other conditions were to be met.");
+ close;
+ }
+ mesn l("King Gelid Frozenheart");
+ mesq l("If it was easy, someone would already have claimed it, so good luck if you plan in obtaining it.");
+ }
+ close;
+
+OnInit:
+ /*
+ <sprite>equipment/legs/assassinpants-male.xml</sprite>
+ <sprite>equipment/feet/boots-male.xml</sprite>
+ <sprite>equipment/hands/armbands-male.xml</sprite>
+ <sprite>hairstyles/hairstyle15.xml|#585858,A4A4A4,C0C0C0,ffffff</sprite>
+ <sprite>equipment/head/crown.xml</sprite>
+ <sprite>equipment/weapons/knife.xml</sprite>
+ <sprite>equipment/chest/warlordplate-male.xml</sprite>
+ <!--sprite>equipment/charm/manta-imperial-male.xml</sprite-->
+ <sound event="hit">weapons/piouslayer/hit1.ogg</sound>
+ */
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, ImperialCrown);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, AssassinPants);
+ setunitdata(.@npcId, UDT_WEAPON, FurBoots); // Boots
+ // TODO: Armbands, imperial robe, etc.
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 15);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 8);
+
+ .distance=4;
+ npcsit;
+ end;
+}
+