summaryrefslogblamecommitdiff
path: root/npc/003-1/magic.txt
blob: 9fe18037b6686ff0a9f91062479633739d90bca0 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                                  
                         



                                                                                                                       
                                     
                                      











                                                                                                                       
     
      
                                                              


                                                                              
     

                         

        
































                                                                                                 
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Controlled Warp to Magic School (+whatever magic stuff we need to add later)

003-1,34,33,0	script	#MagicSchoolGate1	NPC_HIDDEN,0,0,{
    end;
OnTouch:
    // Event Restrictions
    if (countitem(Event1HSword)+countitem(Event2HSword)+countitem(EventBow)+countitem(EventWand)+countitem(RentCart)) {
        mesc l("You cannot enter here while you have event weapons or a cart."), 1;
        close;
    }
    // TODO: Main Quest Event Control
    if (LUA_ASKED_TO_SAVE_PROFESSOR) {
    	.@mapn$="0030@"+getcharid(0);
        // Instance doesn't exists
        if (!(isinstance(LUA_ASKED_TO_SAVE_PROFESSOR)) || instanceowner(LUA_ASKED_TO_SAVE_PROFESSOR) != getcharid(3)) {
		    .@inst = instance_create("Academy "+getcharid(0), getcharid(3), IOT_CHAR);
	        instance_attachmap("003-0", .@inst, false, .@mapn$);
	        // Instance lasts 15 minutes
		    instance_set_timeout(900, 900, .@inst);
		    instance_init(.@inst);
            LUA_ASKED_TO_SAVE_PROFESSOR=.@inst;
        }
        warp .@mapn$, 48, 51;
        end;
    }
    /*
    if (countitem(JesusalvaGrimorium) <= 0 || MAGIC_LVL < 2) {
        slide 36, 39;
        percentheal -5, -10;
        dispbottom l("Powerful magic repels you away from this magic place!");
    }
    */
    warp "003-0", 48, 51;
    end;
}

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$;
	}
}