diff options
-rw-r--r-- | npc/018-6-0/ctrl | 2 | ||||
-rw-r--r-- | npc/018-6-0/main.txt | 17 | ||||
-rw-r--r-- | npc/018-6-2/main.txt | 71 |
3 files changed, 84 insertions, 6 deletions
diff --git a/npc/018-6-0/ctrl b/npc/018-6-0/ctrl index 865cd9903..fad4beb65 100644 --- a/npc/018-6-0/ctrl +++ b/npc/018-6-0/ctrl @@ -13,7 +13,7 @@ q1 1 West puzzle solved (&) (west lever) 2 East puzzle solved (&) (east lever) 3 South puzzle unlocked (w/e lever) - 4 South puzzle node (e/w lever) + 4 South puzzle node (unused) 5 South puzzle solved, access to shrine granted &64 West Puzzle in Progress &128 East Puzzle in Progress diff --git a/npc/018-6-0/main.txt b/npc/018-6-0/main.txt index 9789d82f7..2d30b3f48 100644 --- a/npc/018-6-0/main.txt +++ b/npc/018-6-0/main.txt @@ -11,12 +11,17 @@ OnTouch: .@q=getq(LoFQuest_Barbara); - if (.@q >= 2) { - warp BarbaraInstCheck(3), 31, 151; - //warp BarbaraInstCheck(0), 90+any(-1, 1), 90+any(-1,1); - } else { - Exception("ERROR, YOU SHOULD NOT BEEN SEEING THIS. 018-6-1.TFC"); + .@q2=getq2(LoFQuest_Barbara); + .@q3=getq3(LoFQuest_Barbara); + if (.@q < 2 || .@q3 != 5) + Exception("ERROR, YOU SHOULD NOT BEEN SEEING THIS. 018-6-1.TFC.INVALID", RB_DEFAULT|RB_ISFATAL); + // Make the speech + if (.@q == 2) { + setq1 LoFQuest_Barbara, 3; + setq3 LoFQuest_Barbara, 0; } + // Execute the warp + warp BarbaraInstCheck(3), 31, 151; end; @@ -58,6 +63,8 @@ OnTouch: .@q2=getq2(LoFQuest_Barbara); .@q3=getq3(LoFQuest_Barbara); if (.@q == 2 && .@q3 >= 3) { + enablenpc instance_npcname("#FromWestHall", .@q2); + enablenpc instance_npcname("#FromEastHall", .@q2); warp BarbaraInstCheck(2), 90, 32; //warp BarbaraInstCheck(0), 90+any(-1, 1), 90+any(-1,1); } else { diff --git a/npc/018-6-2/main.txt b/npc/018-6-2/main.txt index a990e5781..dd92bd730 100644 --- a/npc/018-6-2/main.txt +++ b/npc/018-6-2/main.txt @@ -59,4 +59,75 @@ OnInstanceInit: } +///////////////////////////// +018-6-2,70,152,0 script #FromWestHall NPC_SUMMONING_CIRC,0,0,{ + dispbottom l("Should I walk on it?"); + end; + +OnTouch: + .@q=getq(LoFQuest_Barbara); + .@q2=getq2(LoFQuest_Barbara); + .@q3=getq3(LoFQuest_Barbara); + if (.@q != 2) + Exception("ERROR, INVALID WARP", RB_DEFAULT|RB_ISFATAL); + + // East hall not yet enabled, we must repeat + if (!(.@q3 & 128)) { + // Mark the west hall as complete (again) + setq3 LoFQuest_Barbara, .@q3|64; + disablenpc instance_npcname(.name$, .@q2); + warp BarbaraInstCheck(2), 90, 32; + } else { + // Quest is over! + setq3 LoFQuest_Barbara, 5; + disablenpc instance_npcname(.name$, .@q2); + enablenpc instance_npcname("#ToForgottenShrine", .@q2); + warp BarbaraInstCheck(0), 90, 112; + } + end; + + +OnInit: + disablenpc .name$; + end; +OnInstanceInit: + disablenpc instance_npcname(.name$); + end; +} + +///////////////////////////// +018-6-2,103,156,0 script #FromEastHall NPC_SUMMONING_CIRC,0,0,{ + dispbottom l("Should I walk on it?"); + end; + +OnTouch: + .@q=getq(LoFQuest_Barbara); + .@q2=getq2(LoFQuest_Barbara); + .@q3=getq3(LoFQuest_Barbara); + if (.@q != 2) + Exception("ERROR, INVALID WARP", RB_DEFAULT|RB_ISFATAL); + + // West hall not yet enabled, we must repeat + if (!(.@q3 & 64)) { + // Mark the east hall as complete (again) + setq3 LoFQuest_Barbara, .@q3|128; + disablenpc instance_npcname(.name$, .@q2); + warp BarbaraInstCheck(2), 90, 32; + } else { + // Quest is over! + setq3 LoFQuest_Barbara, 5; + disablenpc instance_npcname(.name$, .@q2); + enablenpc instance_npcname("#ToForgottenShrine", .@q2); + warp BarbaraInstCheck(0), 90, 112; + } + end; + + +OnInit: + disablenpc .name$; + end; +OnInstanceInit: + disablenpc instance_npcname(.name$); + end; +} |