// TMW 2 Script // Author: // Jesusalva // Micksha // Description: // Controls the great hall // None of the exits work 042-10,86,139,0 script #KDoor04210a NPC_HIDDEN,3,0,{ end; OnTouch: .@g=getcharid(2); if (.@g < 1) percentheal -100, -100; dispbottom l("OH NOES! The ceiling seems to have collapsed. I hope we got the key, or the quest is over for us!"); end; } 042-10,149,136,0 duplicate(#KDoor04210a) #KDoor04210b NPC_HIDDEN,0,0 042-10,21,139,0 duplicate(#KDoor04210a) #KDoor04210c NPC_HIDDEN,2,0 042-10,20,80,0 duplicate(#KDoor04210a) #KDoor04210d NPC_HIDDEN,0,6 // Boss Room control 042-10,142,20,0 script #KDoor04210e NPC_HIDDEN,4,0,{ end; OnTouch: .@g=getcharid(2); if (.@g < 1) percentheal -100, -100; if (!($KAMELOT_QUEST[.@g] & 8) || !($KAMELOT_QUEST[.@g] & 16) || !($KAMELOT_QUEST[.@g] & 32)) goto L_NoAccess; warp "042-11@"+.@g, 41, 56; // TODO Fire Events end; L_NoAccess: dispbottom l("This door is locked, if we only had a %s...", getitemlink(KamelotKey)); end; } // Boss Room Warning 042-10,150,25,0 script Warning#Kamelot NPC_HIDDEN,{ mesc ".:: "+l("DANGER!")+" ::.", 1; mes ""; mesc l("I've sealed a massive amount of dark magic here."), 1; mesc l("Do not break my seal to prevent the curse from reaching Kamelot."), 1; mes ""; mes l("-- Merlin"); end; OnInit: .distance=4; end; } // Magic Seal Main 042-10,135,42,0 script #KamelotSeal NPC_HIDDEN,0,4,{ end; OnTouch: .@g=getcharid(2); if (.@g < 1) percentheal -100, -100; if (!($KAMELOT_QUEST[.@g] & 16) && !($KAMELOT_QUEST[.@g] & 8)) goto L_NoAccessBlock; if (!($KAMELOT_QUEST[.@g] & 16) || !($KAMELOT_QUEST[.@g] & 8)) goto L_NoAccess; // You can pass freely, so we do nothing end; L_NoAccess: slide 127, 36; percentheal -5, -5; dispbottom l("A powerful magic seal repeals you!"); dispbottom l("It's weaker than before, probably only one is working right now."); end; L_NoAccessBlock: slide 127, 36; percentheal -10, -10; dispbottom l("A powerful magic seal repeals you!"); dispbottom l("We need to find what powers these two seals and disable it."); end; } //////////////////////////////////////////////////////////////////// // TODO: Catazuli spots // TODO: Door Mechanism // TODO: Spawn monsters 042-10,128,85,0 script #Katazuli01 NPC_SUMMONING_CIRC,0,0,{ dispbottom l("This is probably related to the magical seals."); end; OnInit: .distance=2; end; OnTouch: npctalk l("TODO FIXME"); // TODO FIXME end; } 042-10,32,108,0 script #Katazuli02 NPC_SUMMONING_CIRC,0,0,{ dispbottom l("This is probably related to the magical seals."); end; OnInit: .distance=2; end; OnTouch: npctalk l("TODO FIXME"); // TODO FIXME end; } //////////////////////////////////////////////////////////////////// // TODO: Catazuli spots // TODO: Door Mechanism // TODO: Spawn monsters // KamelotSwitch( SWITCH ID ) function script KamelotSwitch { .@id=getarg(0); .@g=getcharid(2); if (!($KAMELOT_KEYMASK[.@g] & $KAMELOT_KEY[.@g])) end; // Don't care .@st=($KAMELOT_PASSMASK[.@g] & .@id); mes l("Status: %s", (.@st ? l("Active") : l("Inactive") )); if (!countitem(KamelotKey)) close; mes "Change switch status?"; next; if (askyesno() == ASK_YES) { $KAMELOT_PASSMASK[.@g]=$KAMELOT_PASSMASK[.@g]^.@id; // The meaning of st is now mixed if (.@st) setnpcdisplay instance_npcname(.name$), NPC_SWITCH_OFFLINE; else setnpcdisplay instance_npcname(.name$), NPC_SWITCH_ONLINE; } // Check password and delete key if ($KAMELOT_PASSMASK[.@g] == $KAMELOT_PASSCODE[.@g]) { delitem KamelotKey, 1; $KAMELOT_QUEST=$KAMELOT_QUEST|32; mesc l("Your hear a clink, and the key breaks."), 2; // Player Reward for completing this stage getitem GuildCoin, 1; getexp $KAMELOT_MX[.@g]*50, $KAMELOT_MX[.@g]*10; // Guild Reward for completing this stage .@ggp=1200+$KAMELOT_MX[.@g]*5; .@gxp=$KAMELOT_MX[.@g]*25; $GUILD_BANK[.@g]+=.@ggp; guildgetexp(.@gxp); // 25xp per player average level (max 2500/3750) // Announce mapannounce getmap(), strcharinfo(0)+" has opened the gate!", 0; // Guild Master Notification .@gm$=getguildmaster(.@g); if (!getcharid(3, .@gm$)) return; .@gma=getcharid(3, .@gm$); .@gmb=getcharid(0, .@gm$); if (!isloggedin(.@gma, .@gmb)) return; message .@gm$, strcharinfo(0)+" opened the gate: Guild GP +"+.@ggp+" Guild XP +"+.@gxp; } return; } 042-10,128,85,0 script #K4210Note01 NPC_NO_SPRITE,{ .@g=getcharid(2); if (!($KAMELOT_KEYMASK[.@g] & $KAMELOT_KEY[.@g])) end; // Don't care if ($KAMELOT_PASSCODE[.@g] & 1) dispbottom l("Active"); else dispbottom l("Inactive"); end; OnInit: .distance=2; end; } 042-10,128,85,0 script #K4210Switch01 NPC_SWITCH_OFFLINE,{ KamelotSwitch(1); close; OnInit: .distance=2; .id=1; end; }