// TMW2 scripts. // Authors: // Jesusalva // Description: // Sagratha's House Door // // getq(HurnscaldQuest_Sagratha) // Field 1 // 0 - Sagratha is home and annyoed // 1 - Wyara sent player saggy way // 2 - Rumor Confirmed, check again // Field 2 // RESERVED - INSTANCE ID // Field 3 // During stage 1 and 2: Holds if player looked everywhere // During stage 3 and 4: Control puzzles // During stage 5 boss fight // Check instances and rebuild if needed // Returns map name // SaggyInstCheck( {house=true} ) function script SaggyInstCheck { .@house=getarg(0, true); .@q2=getq2(HurnscaldQuest_Sagratha); // Map name limit: 4 chars (sgt1) .@mapn$="sgt1@"+getcharid(0); .@map2$="sgt2@"+getcharid(0); if (!(isinstance(.@q2) && .@q2 != 0 && instanceowner(.@q2) == getcharid(3))) { .@inst = instance_create("Sagratha House "+getcharid(0), getcharid(3), IOT_CHAR); instance_attachmap("014-5-1", .@inst, false, .@mapn$); //instance_attachmap("015-8", .@inst, false, .@mapn$); instance_attachmap("015-8-1", .@inst, false, .@map2$); // Instance lasts one hour instance_set_timeout(3600, 3600, .@inst); instance_init(.@inst); setq2 HurnscaldQuest_Sagratha, .@inst; } // It broke if (getmapinfo(MAPINFO_SIZE_X, .@mapn$) <= 0) { setq2 HurnscaldQuest_Sagratha, 0; // Infinite Loop? return callfunc("SaggyInstCheck", .@house); } if (.@house) { return .@mapn$; } else { return .@map2$; } } 014-5,122,137,0 script Sagratha Door NPC_HIDDEN,0,0,{ end; L_Magicless: npctalk3 l("A light magic barrier prevents you from entering."); dispbottom l("If I only knew some magic..."); end; L_Lockpick: mesn; mesc l("The door is locked!"); select l("Knock on the door?"), l("Attempt to lockpick?"), l("Leave it alone?"); mes ""; if (@menu == 1) { /* if (getq(HurnscaldQuest_InjuriedMouboo) == 2)) { mesn strcharinfo(0); mesc l("Nobody answers."); mes ""; } */ mesn l("Sagratha"); mesq l("No, I don't need monster repellent nor anything! Go away!"); close; } else if (@menu == 2) { if (LockPicking(4, 5)) { getexp BaseLevel*4, 5; mesn; mesc l("*click*"); next; mesn l("Sagratha"); mesq l("Who is there? Are they trying to break my lock again?!"); next; select l("Run away?"), l("Stay there?"); mes ""; if (@menu == 2) { mesn l("Sagratha"); mesq l("Oh my Jesusalva - You broke my lock! Why?!"); next; select l("I need to talk with you!"), l("No reason."); mes ""; if (@menu == 1) { mesn l("Sagratha"); // I don't take strangers as students. mesq l("No, I don't teach magic to strangers. No, I'm not interested in @@ affairs.", get_race()); next; mesn l("Sagratha"); mesq l("Yes, I know when next Alliance's Council meeting will be. No, I don't need anything."); next; mesn l("Sagratha"); mesq l("Now begone."); } else { mesn l("Sagratha"); mesq l("What?! Do my house look like the place to you pratice your thief skills?!"); mesq col(l("DIE!"), 1); specialeffect(312, SELF, getcharid(3)); percentheal -40, -100; } } } else { mesn l("Sagratha"); mesq l("Who is there? Are they trying to break my lock again?!"); mesq col(l("DIE!"), 1); specialeffect(312, SELF, getcharid(3)); percentheal -40, -100; } } close; L_Open: mesn; mesc l("The door is locked!"); select l("Knock on the door?"), l("Attempt to lockpick?"), l("Say that Mouboos are Cute?"), l("Leave it alone?"); mes ""; if (@menu == 4) close; if (@menu == 3) { mesc l("Surprisingly, nothing happens."); next; mesc l("A close inspection suggests the lock was busted. You approach to inspect."); next; } mesc l("*CREAK*"); mesc l("The pressure you did made the door burst open. It is unusually quiet inside..."); next; //enable_items(); //mesc l("WARNING: Save your game now."), 3; //mesc l("WARNING: Change your equipment now."), 3; //next; //disable_items(); /* if (has_instance("014-5-1") == "") { .@inst = instance_create("Sagratha House", getcharid(3), IOT_CHAR); instance_attachmap("014-5-1", .@inst); // 20 minutes (1200s) inside, or 5 minutes (300s) outside instance_set_timeout(1200, 30, .@inst); instance_init(.@inst); } warp "014-5-1", 33, 44; //addmapmask instance_mapname("014-5-1"), 1; changemusic "014-5-1", "eric_matyas_ghouls.ogg"; */ .@mapn$=SaggyInstCheck(); warp .@mapn$, 33, 44; changemusic .@mapn$, "eric_matyas_ghouls.ogg"; closeclientdialog; close; L_Welcome: warp "014-5-1", 33, 44; dispbottom l("Mouboos are cute"); end; OnTouch: .@q=getq(HurnscaldQuest_Sagratha); if (!MAGIC_LVL) goto L_Magicless; if (.@q >= 1 && .@q < 6) goto L_Open; if (.@q >= 6) goto L_Welcome; // No special condition goto L_Lockpick; end; }