// 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;
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."),
l("Thanks, my liege.");
mes "";
if (@menu == 1)
cwarp "023-3", 63, 219;
close;
OnInit:
/*
equipment/legs/assassinpants-male.xml
equipment/feet/boots-male.xml
equipment/hands/armbands-male.xml
hairstyles/hairstyle15.xml|#585858,A4A4A4,C0C0C0,ffffff
equipment/head/crown.xml
equipment/weapons/knife.xml
equipment/chest/warlordplate-male.xml
weapons/piouslayer/hit1.ogg
*/
.@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=3;
npcsit;
end;
}