// TMW2 scripts. // Author: // Jesusalva // Description: // 023-3-1 The First Monster King's Throne Room Configuration File 023-3-1 mapflag zone MMO 023-3-1,45,27,0 script #Finish02331 NPC_HIDDEN,0,0,{ end; OnTouch: .@n=getq(General_Narrator); .@q=getq(FrostiaQuest_Homunculus); // Cheater Detected if (.@n < 15) { warp "Save", 0, 0; percentheal -100, -100; return false; } if (.@q < 3) { // TODO: mobcount()? dispbottom l("The magic power outflowing in the room prevents you from leaving."); end; } .@mapn$="023-3-2"; warp .@mapn$, any(39,40), 58; end; } 023-3-1,45,80,0 script #Exit02331 NPC_HIDDEN,1,0,{ end; OnTouch: .@n=getq(General_Narrator); .@q=getq3(FrostiaQuest_Homunculus); // Cheater Detected if (.@n < 15) { warp "Save", 0, 0; percentheal -100, -100; return false; } if (.@n == 15) { dispbottom lg("I'm not a coward! I must press forward!"); end; } .@mapn$="001-7"; warp .@mapn$, 59, 45; end; } // To the traps! 023-3-1,45,63,0 script #Ambush02331 NPC_HIDDEN,10,0,{ OnTouch: .@q=getq3(FrostiaQuest_Homunculus); if (!.@q) { .@m$=getmap(); .@mobID1=monster(.@m$, 43, 55, l("Assassin"), HoodedNinja, 1); .@mobID2=monster(.@m$, 48, 55, l("Assassin"), HoodedNinja, 1); monster(.@m$, 43, 60, l("Assassin"), Assassin, 1); monster(.@m$, 43, 65, l("Assassin"), Assassin, 1); monster(.@m$, 48, 60, l("Assassin"), Assassin, 1); monster(.@m$, 48, 65, l("Assassin"), Assassin, 1); if (any(true,false)) unittalk(.@mobID1, l("Kill 'em!")); else unittalk(.@mobID2, l("Kill 'em!")); setq3 FrostiaQuest_Homunculus, 1; } end; } // Main event core 023-3-1,45,52,0 script #Core02331 NPC_HIDDEN,10,0,{ OnTouch: .@n$=instance_npcname(.name$); .@q=getq3(FrostiaQuest_Homunculus); if (.@q == 1) { // Begin the event core setq3 FrostiaQuest_Homunculus, 2; addtimer(1100, .@n$+"::OnEvent01"); initnpctimer; } end; OnEvent01: .@m$=getmap(); .@n$=instance_npcname(.name$); slide 45, 45; @ISBAMUTH=monster(.@m$, 45, 34, l("Isbamuth"), Isbamuth, 1, .@n$+"::OnMobDie"); .@g1=monster(.@m$, 42, 37, l("Assassin"), HoodedNinja, 1, .@n$+"::OnMobDie"); .@g2=monster(.@m$, 48, 37, l("Assassin"), HoodedNinja, 1, .@n$+"::OnMobDie"); .@g3=monster(.@m$, 39, 40, l("Assassin"), Assassin, 1, .@n$+"::OnMobDie"); .@g4=monster(.@m$, 51, 40, l("Assassin"), Assassin, 1, .@n$+"::OnMobDie"); // Block everyone for cutscene (includes invencibility boost) setpcblock(255, true); sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, @ISBAMUTH); sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g1); sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g2); sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g3); sc_start(SC_STUN, 7500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@g4); unittalk(@ISBAMUTH, l("Seems like the rat have come after the cheese.")); addtimer(1500, .@n$+"::OnE02"); end; OnE02: .@m$=getmap(); .@n$=instance_npcname(.name$); unittalk(@ISBAMUTH, l("HAHAHAHA! How foolish of you, didn't even bother trying to sneak in!")); addtimer(1500, .@n$+"::OnE03"); end; OnE03: .@m$=getmap(); .@n$=instance_npcname(.name$); unittalk(@ISBAMUTH, l("Remember my name: I am Isbamuth, and I've took the Throne which rightfully belongs to me.")); addtimer(1500, .@n$+"::OnE04"); end; OnE04: .@m$=getmap(); .@n$=instance_npcname(.name$); unittalk(@ISBAMUTH, l("This throne is not from the Monster King... IT BELONGS ONLY TO ME!")); addtimer(1500, .@n$+"::OnE05"); end; OnE05: .@m$=getmap(); .@n$=instance_npcname(.name$); unittalk(@ISBAMUTH, l("Now, as you gave yourself the trouble of coming here...")); addtimer(1500, .@n$+"::OnE06"); end; OnE06: .@m$=getmap(); .@n$=instance_npcname(.name$); setpcblock(255, false); unittalk(@ISBAMUTH, l("LET'S DANCE!")); addtimer(15000, .@n$+"::OnW01"); addtimer(60000, .@n$+"::OnW02"); addtimer(180000, .@n$+"::OnE07"); end; // War events OnW01: .@m$=getmap(); .@n$=instance_npcname(.name$); unittalk(@ISBAMUTH, l("Be cursed, you fool!")); sc_start(SC_CURSE, 3000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK); addtimer(45000, .@n$+"::OnW01"); end; OnW02: .@m$=getmap(); .@n$=instance_npcname(.name$); unittalk(@ISBAMUTH, l("Come to my aid! Vanish this fool!")); monster(.@m$, 42, 37, l("Assassin"), any(Assassin,Bandit,RobinBandit), 1, .@n$+"::OnMobDie"); monster(.@m$, 48, 37, l("Assassin"), HoodedNinja, 1, .@n$+"::OnMobDie"); monster(.@m$, 39, 40, l("Assassin"), any(Assassin,Bandit,RobinBandit), 1, .@n$+"::OnMobDie"); monster(.@m$, 51, 40, l("Assassin"), Assassin, 1, .@n$+"::OnMobDie"); addtimer(60000, .@n$+"::OnW02"); end; // Secret events OnIsbamuthDefeat: dispbottom l("Are you crazy?"); end; // For mobcount() only OnMobDie: end; OnTimer1000: if (getmapusers(instance_mapname("023-3-1"))) initnpctimer; // TODO: Cleanup end; }