// 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 and failure is final!"); 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); setunitdata(.luvia, UDT_MODE, MD_BOSS|MD_PLANT|MD_NOKNOCKBACK|MD_CANMOVE); unitwalk(.luvia, 51, 45); end; OnTimer18000: unitwalk(.luvia, 51, 38); end; OnTimer20000: .@pi = getmapusers(.mp$) + 1; areamonster(.mp$, 45, 40, 54, 45, strmobinfo(1, Scar), Scar, .@pi); unittalk(.luvia, "HAHAHahahaha!"); unitwalk(.luvia, 50, 34); 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 minute OnTimer110000: monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, 1); monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, 1); monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, 1); end; // 40 seconds 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; // 1 minute OnTimer210000: monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, 1); monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, 1); monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, 1); end; // 1 minute OnTimer270000: .@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; // 1.5 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; // 1 minute OnTimer420000: monster(.mp$, 50, 29, strmobinfo(1, Scar), Scar, 1); monster(.mp$, 43, 52, strmobinfo(1, Scar), Scar, 1); monster(.mp$, 37, 33, strmobinfo(1, Scar), Scar, 1); end; // 1 minute OnTimer480000: .@pi = getmapusers(.mp$) + 1; monster(.mp$, 50, 29, strmobinfo(1, Terranite), Terranite, .@pi); monster(.mp$, 43, 52, strmobinfo(1, BlackSlimeMother), BlackSlimeMother, 1); monster(.mp$, 37, 33, strmobinfo(1, BlackMamba), BlackMamba, .@pi + 4); 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; }