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