// 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 >= 100) {
mesn;
mesq l("Good job, you've killed the 100 @@ and reported back in time!", 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 @@/100 @@ for us and make the world a safer place!", .@q3, 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 4-3 ::.")), 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;
}