// TMW2 scripts. // Author: // Jesusalva // Description: // The Impregnable Fortress Control Files // Quest: General_Fortress // (MaxFloor+1, internal, internal) 026-1,60,26,0 script Impregnable#B1F NPC_HIDDEN,0,0,{ end; OnTouch: if (getq(General_Fortress) > 1) goto L_Warp; mesc l(".:: Impregnable Fortress, %sF ::.", "B1"), 3; msObjective(getq(General_Fortress) == 2, l("* Obtain clearance")); msObjective($MK_TEMPVAR < MKIF_LV_B1F, l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B2F)); mes ""; mesc l("Hint: You might need to come back later."); end; L_Warp: // Not unlocked if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B2F) { mesc l("The gate is sealed shut."), 1; mesc l("The monster army is still strong on this floor!"), 1; mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B2F), 1; close; } //warp "026-2", X, Y; dispbottom l("Coming Soon, in Moubootaur Legends!"); end; // Disarm & reset everything OnMinute15: OnMinute45: if ($@DATA_0261[12]) setcells "026-1", 58, 76, 62, 76, 1, "026-1_58_76"; if ($@DATA_0261[13]) setcells "026-1", 25, 32, 25, 32, 1, "026-1_25_32"; if ($@DATA_0261[14]) setcells "026-1", 30, 32, 30, 32, 1, "026-1_30_32"; setnpcdisplay "#026-1_24_28", NPC_SWITCH_ONLINE; setnpcdisplay "#026-1_26_28", NPC_SWITCH_ONLINE; setnpcdisplay "#026-1_62_28", NPC_SWITCH_ONLINE; callfunc "0261_CheckReset"; end; } // Other misc controllers function script 0261_GateChange { //if (Sp < MaxSp) end; if (Hp < MaxHp) {die(); end;} $@DATA_0261[12] = true; percentheal -99, -100; dispbottom "*snap* - Oh noes, there was a trap!"; return; } function script 0261_Flip25 { $@DATA_0261[13] = true; return; } function script 0261_Flip30 { $@DATA_0261[14] = true; return; } function script 0261_CheckReset { if ($@DATA_0261[0] == 1 && $@DATA_0261[1] == 1 && $@DATA_0261[2] == 1 && $@DATA_0261[3] == 1 && $@DATA_0261[4] == 1 && $@DATA_0261[5] == 1 && $@DATA_0261[6] == 1 && $@DATA_0261[7] == 1 && $@DATA_0261[8] == 1 && $@DATA_0261[9] == 1 && $@DATA_0261[10] == 1 && $@DATA_0261[11] == 1) .@r=true; if ($@DATA_0261[0]) delcells "026-1_D0"; if ($@DATA_0261[1]) delcells "026-1_D1"; if ($@DATA_0261[2]) delcells "026-1_D2"; if ($@DATA_0261[3]) delcells "026-1_D3"; if ($@DATA_0261[4]) delcells "026-1_D4"; if ($@DATA_0261[5]) delcells "026-1_D5"; if ($@DATA_0261[6]) delcells "026-1_D6"; if ($@DATA_0261[7]) delcells "026-1_D7"; if ($@DATA_0261[8]) delcells "026-1_D8"; if ($@DATA_0261[9]) delcells "026-1_D9"; if ($@DATA_0261[10]) delcells "026-1_D10"; if ($@DATA_0261[11]) delcells "026-1_D11"; deletearray $@DATA_0261; if (.@r) { $@DATA_0261[12] = true; delcells "026-1_58_76"; } return .@r; } 026-1,29,76,0 script Important Note#B1F NPC_NO_SPRITE,{ function noteBegin; if ($@DATA_0261[12]) end; if (getq2(General_Fortress) == 0) noteBegin(); mesc l("Flip the manaplace?"), 1; next; if (askyesno() == ASK_YES) { .@r=0261_CheckReset(); if (!.@r) warp "003-1", 82, 119; else setq General_Fortress, 2, 0, 0; } close; function noteBegin { mes l("To the monster army:"); mes ""; mes l("There has been a lot of movement here as of late."); mes l("Your Highness does not like it, and you're dirtying the floor faster than staff can clean."); mes ""; mes l("Therefore, we have restricted access to and from B0F/B2F."); mes l("If you could not attend to the meeting (may the king forgive your soul), just restore the objects to their proper position and flip the switch on this manaplace."); mes ""; mes l("Be careful to don't flip the manaplace before all objects are ordered correctly."); mes ""; mes l("-- The Keeper"); next; setq2 General_Fortress, 1; return; } OnInit: .distance=3; end; } // Flip flop 026-1,26,89,0 script #0261_FF@0 NPC_NO_SPRITE,{ explode(.@ni$, .name$, "@"); .@x=atoi(.@ni$[1]); .@v$=sprintf("$@DATA_0261[%d]", .@x); .@i=getd(.@v$); if (.@i == 0) { setd(.@v$, 1); setcells "026-1", .x-1, .y, .x+1, .y, 2, "026-1_D"+.@x; } else if (.@i == 1) { setd(.@v$, 2); delcells "026-1_D"+.@x; setcells "026-1", .x-1, .y, .x+1, .y, 3, "026-1_D"+.@x; } else { setd(.@v$, 0); delcells "026-1_D"+.@x; } end; OnInit: .distance=2; end; } 026-1,32,89,0 duplicate(#0261_FF@0) #0261_FF@1 NPC_NO_SPRITE 026-1,26,86,0 duplicate(#0261_FF@0) #0261_FF@2 NPC_NO_SPRITE 026-1,32,86,0 duplicate(#0261_FF@0) #0261_FF@3 NPC_NO_SPRITE 026-1,71,76,0 duplicate(#0261_FF@0) #0261_FF@4 NPC_NO_SPRITE 026-1,71,81,0 duplicate(#0261_FF@0) #0261_FF@5 NPC_NO_SPRITE 026-1,78,76,0 duplicate(#0261_FF@0) #0261_FF@6 NPC_NO_SPRITE 026-1,78,81,0 duplicate(#0261_FF@0) #0261_FF@7 NPC_NO_SPRITE 026-1,85,76,0 duplicate(#0261_FF@0) #0261_FF@8 NPC_NO_SPRITE 026-1,85,81,0 duplicate(#0261_FF@0) #0261_FF@9 NPC_NO_SPRITE 026-1,92,76,0 duplicate(#0261_FF@0) #0261_FF@10 NPC_NO_SPRITE 026-1,92,81,0 duplicate(#0261_FF@0) #0261_FF@11 NPC_NO_SPRITE