// TMW2 scripts.
// Authors:
// Jesusalva
// Description:
// Gemini Sisters Quest - Part A: Party Room
034-4,43,52,0 script #GeminiNoBack NPC_HIDDEN,0,0,{
end;
OnTouch:
if (instance_id() < 0 || getcharid(1) < 1) end;
GeminiCheck(8);
npctalkonce l("Oh noes ─ the door is sealed! We can only press forward!");
end;
}
034-4,43,51,0 script #GeminiIntro NPC_HIDDEN,2,2,{
end;
OnTouch:
if (instance_id() < 0 || getcharid(1) < 1) end;
GeminiCheck(8);
.@p=getcharid(1);
if (strcharinfo(0) != getpartyleader(.@p)) end;
if (!.state) {
.mp$ = getmap();
.pn$ = getpartyname(getcharid(1));
.pid = getcharid(1);
.state = true;
initnpctimer;
killmonsterall(.mp$); // Cancel everything done thus far, incl. showdown
}
end;
OnTimer1000:
.luvia = monster(.mp$, 48, 45, "Luvia Gemini", Luvia, 1);
immortal(.luvia);
setunitdata(.luvia, UDT_MODE, MD_BOSS|MD_PLANT|MD_NOKNOCKBACK);
end;
OnTimer2500:
unittalk(.luvia, "Well, well, well, look at what we have here!");
end;
OnTimer6000:
unittalk(.luvia, sprintf("If it isn't the so-called \"%s\"!", .pn$));
end;
OnTimer9500:
unittalk(.luvia, "I'm sure it was a long journey to reach here, and well, this IS an Inn.");
end;
OnTimer13000:
unittalk(.luvia, "Where are my manners, of course I'll offer you room to sleep...");
end;
OnTimer16500:
unittalk(.luvia, "...Yes, I'll put all of you to sleep... PERMANENTLY! Hahahaha!");
.@pi = getmapusers(.mp$) + 2;
areamonster(.mp$, 45, 40, 54, 45, strmobinfo(1, Scar), Scar, .@pi / 2);
end;
OnTimer20000:
.@pi = getmapusers(.mp$) + 1;
areamonster(.mp$, 45, 40, 54, 45, strmobinfo(1, Scar), Scar, .@pi);
unittalk(.luvia, "HAHAHahahaha!");
unitwalk(.luvia, 51, 38);
end;
OnTimer24000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, .@pi);
unitwalk(.luvia, 50, 29);
end;
OnTimer28000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, .@pi);
unitwarp(.luvia, "034-4", 45, 45);
end;
OnTimer25000:
unitkill(.luvia);
end;
OnTimer50000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, .@pi * 3 / 2);
end;
// 1.75 minutes (should be OK?)
OnTimer150000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, .@pi * 3 / 2);
monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 43, 52, strmobinfo(1, BlackMamba), BlackMamba, 1);
end;
// 2.5 minutes (too much?)
OnTimer300000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, .@pi * 3 / 2);
monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, .@pi);
monster(.mp$, 43, 52, strmobinfo(1, Terranite), Terranite, 1+(.@pi/2));
end;
// 2 minutes
OnTimer360000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, 1+(.@pi/2));
monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, 1+(.@pi/2));
monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, 1+(.@pi/2));
monster(.mp$, 50, 29, strmobinfo(1, Terranite), Terranite, .@pi);
monster(.mp$, 43, 52, strmobinfo(1, Forain), Forain, .@pi);
monster(.mp$, 37, 33, strmobinfo(1, AzulSkullSlime), AzulSkullSlime, 1+(.@pi/2));
end;
// +2 minutes
OnTimer480000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, Terranite), Terranite, .@pi);
monster(.mp$, 43, 52, strmobinfo(1, BlackSlimeMother), BlackSlimeMother, .@pi);
monster(.mp$, 37, 33, strmobinfo(1, BlackMamba), BlackMamba, .@pi + 1);
end;
// +1 minute
// Bypass, or it'll take... a while
OnTimer40000:
if (!$@GM_OVERRIDE) end;
OnTimer540000:
.@pi = getmapusers(.mp$) + 1;
monster(.mp$, 50, 29, strmobinfo(1, GoboBear), GoboBear, 1+(.@pi/2));
$@VALIA_STATUS[.pid] = 10;
stopnpctimer;
end;
OnInit:
OnInstanceInit:
.state = false;
.mp$ = "";
.pn$ = "";
.pid = 0;
.luvia = 0;
end;
}
034-4,50,29,0 script #GeminiPartB NPC_HIDDEN,0,0,{
end;
OnTouch:
if (instance_id() < 0 || getcharid(1) < 1) end;
GeminiCheck(8);
.@p=getcharid(1);
if ($@VALIA_STATUS[.@p] < 10) {
dispbottom l("Uh? I can't pass. I wonder why, maybe I need to wait?");
end;
}
if (mobcount(getmap(), "all") > 0) {
dispbottom l("I should defeat all mobs before passing.");
end;
}
if (mobcount(getmap(), "all") <= 0 && $@VALIA_STATUS[.@p] == 10) {
$@VALIA_STATUS[.@p]=11;
}
if ($@VALIA_STATUS[.@p] >= 11) {
slide 33, 81;
}
end;
}