diff options
Diffstat (limited to 'npc/017-1/townhall.txt')
-rw-r--r-- | npc/017-1/townhall.txt | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/npc/017-1/townhall.txt b/npc/017-1/townhall.txt index 35482d5ed..61df25334 100644 --- a/npc/017-1/townhall.txt +++ b/npc/017-1/townhall.txt @@ -6,6 +6,7 @@ 017-1,180,20,0 script #LoF_Townhall01 NPC_HIDDEN,{ end; + OnTouch: // Sponsor and Main Quest 17+ - access granted .@q=getq(General_Narrator); @@ -21,6 +22,7 @@ OnInit: 017-1,182,20,0 script #LoF_Townhall02 NPC_HIDDEN,{ end; + OnTouch: // Sponsor and Main Quest 17+ - access granted .@q=getq(General_Narrator); @@ -35,6 +37,7 @@ OnInit: 017-1,171,20,0 script #LoF_Townhall03 NPC_HIDDEN,{ end; + OnTouch: // Sponsor and Main Quest 17+ - access granted .@q=getq(General_Narrator); @@ -49,6 +52,7 @@ OnInit: 017-1,190,20,0 script #LoF_Townhall04 NPC_HIDDEN,{ end; + OnTouch: // Sponsor and Main Quest 17+ - access granted .@q=getq(General_Narrator); @@ -60,4 +64,60 @@ OnInit: .distance=1; end; } +///////////////////////////// +// Main Quest 6 +// LoF Arc +///////////////// +// Check instances and rebuild if needed +// Returns map name +// BarbaraInstCheck( {submap=mines} ) +// 0- Chamber ; 1 - Mines ; 2 - Hall ; 3 - Shrine +function script BarbaraInstCheck { + .@house=getarg(0, true); + + .@q2=getq2(LoFQuest_Barbara); + // Map name limit: 4 chars (sgt1) + .@map0$="brb0@"+getcharid(0); + .@map1$="brb1@"+getcharid(0); + .@map2$="brb2@"+getcharid(0); + .@map3$="brb3@"+getcharid(0); + if (!(isinstance(.@q2) && .@q2 != 0)) { + .@inst = instance_create("Forgotten Shrine "+getcharid(0), getcharid(3), IOT_CHAR); + instance_attachmap("018-6-0", .@inst, false, .@map0$); + instance_attachmap("018-6-1", .@inst, false, .@map1$); + //instance_attachmap("018-6-2", .@inst, false, .@map2$); + //instance_attachmap("018-6-3", .@inst, false, .@map3$); + // Instance lasts two hours + instance_set_timeout(7200, 7200, .@inst); + instance_init(.@inst); + setq2 LoFQuest_Barbara, .@inst; + } + + // It broke + if (getmapinfo(MAPINFO_SIZE_X, .@map1$) <= 0) { + setq2 LoFQuest_Barbara, 0; + // Infinite Loop? + return callfunc("BarbaraInstCheck", .@house); + } + + // Return map name + return getd(".@map"+.@house+"$"); +} + +017-1,32,44,0 script #LoF_EleniumMines NPC_HIDDEN,{ + end; + +OnTouch: + // TODO: OnQuest: Instance + .@q=getq(LoFQuest_Barbara); + if (.@q >= 1) { + warp BarbaraInstCheck(1), 80, 199; + } else { + warp "018-6-1", 80, 199; + } + end; +OnInit: + .distance=1; + end; +} |