summaryrefslogblamecommitdiff
path: root/npc/014-5/sagratha.txt
blob: a5e2ebfb931e7b380661a5749be283368cd4bfee (plain) (tree)
1
2
3
4
5




                           









                                                               

                                             
 














                                                                                                 

                                                         



                                                  



                                                   
                                                   

     






                               



                                                        
                                                                    
                                                 











                                  






                                                        


























                                                                             

                                                                                                                      
























                                                                                                                   
       




                                  
                                        

                             
                   
              





                                                                                            


                                                                                             
                     
                                                


                                                       







                                                                                   
                           


                                                    

                                 

                                                  

          

                           
                                     

        
        
                                      
                                     

                                         

                           



                    
// 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)) {
		.@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;

}