// 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 (countitem(RentCart)) {
mesc l("You cannot met the King while using a %s.", getitemlink(RentCart)), 1;
close;
}
setcart 0;
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-state, and 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 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 supplies.");
next;
mesn l("King Gelid Frozenheart");
mesq l("Did I said the best craftspeople in the world are here? %s, the legendary bow, was proudly crafted by the first king of Frostia!", getitemlink(Tyranny));
next;
mesn l("King Gelid Frozenheart");
mesq l("He died many moons ago and his masterwork, Tyranny, will remain one of a kind forever... That is why we call it a ")+b(l("legendary weapon")+".");
next;
mesc l("Legendary weapons can not be duplicated in any form, so only a single person in the world can own it at a time.");
mesc l("Should the owner go missing for over a month, the legendary weapon returns to its original place and can be claimed by someone else.");
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 hesitate to purchase furniture, it will help you tremendously in preparing for your ardous journey.");
next;
mesn l("King Gelid Frozenheart");
mesq l("Keep in mind that unlike houses, furniture acquired by previous owners will not be present.");
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, are the ruins of an old village. Said village is cursed, and nobody 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 FATE OF THE WORLD WILL BE DECIDED...");
select
l("Really?!"),
l("[Say nothing]");
mes "";
switch (@menu) {
case 1:
mesc l("He laughs.");
mesq lg("I'm just joking, mah' girl!", "I'm just joking, mah' boy!");
case 2:
mesq l("I guess you are immune to rumors and scary stories.");
}
next;
mesn l("King Gelid Frozenheart");
mesq l("I would bring some %s, just in case. Anyway, the place where you're going to is the village where %s was born.", getitemlink(Coffee), b(l("the Monster King")));
next;
mesn l("King Gelid Frozenheart");
mesq l("I've sent a scout ahead, and he reported traps in the caves you'll be needing to traverse to get there.");
next;
mesn l("King Gelid Frozenheart");
mesq l("As you can guess, the village was abandoned. However, people are claiming to have seen people walking there, maybe 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 into 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("The 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 the Land Of Fire Village? It is west of Hurnscald and 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("You need to prove your worth once again, 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 excellent 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;
}