home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / keepsake_demo_en.exe / res / scripts / mill.tcl < prev    next >
Text File  |  2005-10-30  |  34KB  |  1,167 lines

  1. ################################################################################
  2. #                                                                             ##
  3. #    file   mill.tcl                                                          ##
  4. #    brief  Events for the Mill.                                              ##
  5. #                                                                             ##
  6. ################################################################################
  7.  
  8.  
  9. ## ===================================================== ##
  10. ##   Loading script from source                          ##
  11. ## ===================================================== ##
  12.  
  13. source "[AUTO]/mill.mvwrap.tcl"
  14. source "[PUZZLES]/mill.camera.tcl"
  15. source "[PUZZLES]/mill.puzzle.tcl"
  16.  
  17.  
  18. ## ===================================================== ##
  19. ##   Initialization                                      ##
  20. ## ===================================================== ##
  21.  
  22. event "init" {
  23.   ozSet "millRoom" "visited"
  24.  
  25.   deleteEventPriority optionnalConversation.whereMillBehavior short
  26.   deleteEventPriority optionnalConversation.whereMillBehavior medium
  27.   deleteEventPriority optionnalConversation.whereMillBehavior long
  28.   deleteEventPriority optionnalConversation.whereMillBehavior emergency
  29.  
  30.   setAudioEnv "room"
  31.   oz'track::stop $::music_track
  32.   SetAmbient 2d ambiance/forest "0 0 0" 0 0
  33.   SetAmbient 2d ambiance/waterway "0 0 0" 0 0
  34.   SetAmbient 2d ambiance/elvandarRiver "0 0 0" 0 0
  35.   SetAmbient 3d sfx/millWheel "594.459 -21.683 372.964" 30 0 0.6
  36.   SetAmbient 3d sfx/millGearWorking "610 -19 454" 30 0 0.6
  37.   
  38.   if {[ozGet pzlMillMachineA] == 1} {SetAmbient 3d sfx/machineA "541.508 -17.481 274.492" 30 1 0.6}
  39.   if {[ozGet pzlMillMachineB] == 1} {SetAmbient 3d sfx/machineB "584.563 22.187 323.312"  30 1 0.6}
  40.   if {[ozGet pzlMillMachineC] == 1} {SetAmbient 3d sfx/machineC "634.052 22.187 318.092"  30 1 0.6}
  41.   if {[ozGet pzlMillMachineD] == 1} {SetAmbient 3d sfx/machineD "589.581 -16.969 267.858" 30 1 0.6}
  42.   if {[ozGet pzlMillMachineE] == 1} {SetAmbient 3d sfx/machineE "605.908 -30.502 304.112" 30 1 0.6}
  43. }
  44.  
  45.  
  46. ################################################################################
  47. ## ========================================================================== ##
  48. ##   DOOR BLOCKING & PUZZLE SECTION                                           ##
  49. ## ========================================================================== ##
  50. ################################################################################
  51.  
  52.  
  53. ## ===================================================== ##
  54. ##   use Lever A Behavior                                ##
  55. ## ===================================================== ##
  56.  
  57. event "useLeverABehavior" {
  58.   if { [ozGet "puzzleZak"] == "complete" } {
  59.     # Block 1
  60.     wizqQueue 2 {
  61.       wizqEntityMove Zak "627.1 -34.2 305.3" "wait"
  62.       wizqEntityOrientation Zak 140
  63.     }
  64.  
  65.     oz'event {wizEntityStopFollow Zak}
  66.   }
  67.  
  68.   oz'event {wizDisableMouse}
  69.   wizqEntityOrientation Lydia 190 "wait"
  70.   wizqEntitySetCycle Lydia standCycleNormal
  71.  
  72.   # Wait for Block 1
  73.   wizqWaitQueue 2
  74.  
  75.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  76.     oz'event {callEvent "millAlone"}
  77.  
  78.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  79.     oz'event {callEvent "millZak"}
  80.     wizqEntityOrientation Lydia 190 "wait"
  81.   }
  82.   
  83.   oz'event {callEvent "leverAZoomIn"}
  84.  
  85.   oz'event {wizEnableMouse}
  86.   oz'event {wizEntityResumeFollow Zak}
  87. }
  88.  
  89.  
  90. ## ===================================================== ##
  91. ##   use Lever B Behavior                                ##
  92. ## ===================================================== ##
  93.  
  94. event "useLeverBBehavior" {
  95.   if { [ozGet "puzzleZak"] == "complete" } {
  96.     # Block 1
  97.     wizqQueue 2 {
  98.       wizqEntityMove Zak "607.1 13.7 315.3" "wait"
  99.       wizqEntityOrientation Zak 95
  100.     }
  101.  
  102.     oz'event {wizEntityStopFollow Zak}
  103.   }
  104.  
  105.   oz'event {wizDisableMouse}
  106.   wizqEntityOrientation Lydia 80 "wait"
  107.   wizqEntitySetCycle Lydia standCycleNormal
  108.  
  109.   # Wait for Block 1
  110.   wizqWaitQueue 2
  111.  
  112.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  113.     oz'event {callEvent "millAlone"}
  114.  
  115.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  116.     oz'event {callEvent "millZak"}
  117.     wizqEntityOrientation Lydia 80 "wait"
  118.   }
  119.    
  120.   oz'event {callEvent "leverBZoomIn"}
  121.  
  122.   oz'event {wizEnableMouse}
  123.   oz'event {wizEntityResumeFollow Zak}
  124. }
  125.  
  126.  
  127. ## ===================================================== ##
  128. ##   use Lever C Behavior                                ##
  129. ## ===================================================== ##
  130.  
  131. event "useLeverCBehavior" {
  132.   if { [ozGet "puzzleZak"] == "complete" } {
  133.     # Block 1
  134.     wizqQueue 2 {
  135.       wizqEntityMove Zak "607.1 13.7 315.3" "wait"
  136.       wizqEntityOrientation Zak 125
  137.     }
  138.  
  139.     oz'event {wizEntityStopFollow Zak}
  140.   }
  141.  
  142.   oz'event {wizDisableMouse}
  143.   wizqEntityOrientation Lydia 185 "wait"
  144.   wizqEntitySetCycle Lydia standCycleNormal
  145.  
  146.   # Wait for Block 1
  147.   wizqWaitQueue 2
  148.  
  149.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  150.     oz'event {callEvent "millAlone"}
  151.  
  152.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  153.     oz'event {callEvent "millZak"}
  154.     wizqEntityOrientation Lydia 160 "wait"
  155.   }
  156.  
  157.   oz'event {callEvent "leverCZoomIn"}
  158.  
  159.   oz'event {wizEnableMouse}
  160.   oz'event {wizEntityResumeFollow Zak}
  161. }
  162.  
  163.  
  164.  
  165. ## ===================================================== ##
  166. ##   use Lever D Behavior                                ##
  167. ## ===================================================== ##
  168.  
  169. event "useLeverDBehavior" {
  170.   if { [ozGet "puzzleZak"] == "complete" } {
  171.     # Block 1
  172.     wizqQueue 2 {
  173.       wizqEntityMove Zak "580 13.7 310.9" "wait"
  174.       wizqEntityOrientation Zak 120
  175.     }
  176.  
  177.     oz'event {wizEntityStopFollow Zak}
  178.   }
  179.  
  180.   oz'event {wizDisableMouse}
  181.   wizqEntityOrientation Lydia 190 "wait"
  182.   wizqEntitySetCycle Lydia standCycleNormal
  183.  
  184.   # Wait for Block 1
  185.   wizqWaitQueue 2
  186.  
  187.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  188.     oz'event {callEvent "millAlone"}
  189.  
  190.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  191.     oz'event {callEvent "millZak"}
  192.     wizqEntityOrientation Lydia 190 "wait"
  193.   }
  194.  
  195.   oz'event {callEvent "leverDZoomIn"}
  196.  
  197.   oz'event {wizEnableMouse}
  198.   oz'event {wizEntityResumeFollow Zak}
  199. }
  200.  
  201.  
  202. ## ===================================================== ##
  203. ##   use Lever E Behavior                                ##
  204. ## ===================================================== ##
  205.  
  206. event "useLeverEBehavior" {
  207.   if { [ozGet "puzzleZak"] == "complete" } {
  208.     # Block 1
  209.     wizqQueue 2 {
  210.       wizqEntityMove Zak "582.1 13.7 312.3" "wait"
  211.       wizqEntityOrientation Zak 50
  212.     }
  213.  
  214.     oz'event {wizEntityStopFollow Zak}
  215.   }
  216.  
  217.   oz'event {wizDisableMouse}
  218.   wizqEntityOrientation Lydia 10 "wait"
  219.   wizqEntitySetCycle Lydia standCycleNormal
  220.  
  221.   # Wait for Block 1
  222.   wizqWaitQueue 2
  223.  
  224.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  225.     oz'event {callEvent "millAlone"}
  226.  
  227.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  228.     oz'event {callEvent "millZak"}
  229.     wizqEntityOrientation Lydia 10 "wait"
  230.   }
  231.  
  232.   oz'event {callEvent "leverEZoomIn"}
  233.  
  234.   oz'event {wizEnableMouse}
  235.   oz'event {wizEntityResumeFollow Zak}
  236. }
  237.  
  238.  
  239. ## ===================================================== ##
  240. ##   use Lever F Behavior                                ##
  241. ## ===================================================== ##
  242.  
  243. event "useLeverFBehavior" {
  244.   if { [ozGet "puzzleZak"] == "complete" } {
  245.     # Block 1
  246.     wizqQueue 2 {
  247.       wizqEntityMove Zak "610.9 -24.5 275.5" "wait"
  248.       wizqEntityOrientation Zak 260
  249.     }
  250.  
  251.     oz'event {wizEntityStopFollow Zak}
  252.   }
  253.  
  254.   oz'event {wizDisableMouse}
  255.   wizqEntityOrientation Lydia 320 "wait"
  256.   wizqEntitySetCycle Lydia standCycleNormal
  257.  
  258.   # Wait for Block 1
  259.   wizqWaitQueue 2
  260.  
  261.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  262.     oz'event {callEvent "millAlone"}
  263.  
  264.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  265.     oz'event {callEvent "millZak"}
  266.     wizqEntityOrientation Lydia 320 "wait"
  267.   } 
  268.     
  269.   oz'event {callEvent "leverFZoomIn"}
  270.  
  271.   oz'event {wizEnableMouse}
  272.   oz'event {wizEntityResumeFollow Zak}
  273. }
  274.  
  275.  
  276. ## ===================================================== ##
  277. ##   use Lever G Behavior                                ##
  278. ## ===================================================== ##
  279.  
  280. event "useLeverGBehavior" {
  281.   if { [ozGet "puzzleZak"] == "complete" } {
  282.     # Block 1
  283.     wizqQueue 2 {
  284.       wizqEntityMove Zak "587.1 1.2 267.3" "wait"
  285.       wizqEntityOrientation Zak 280
  286.     }
  287.  
  288.     oz'event {wizEntityStopFollow Zak}
  289.   }
  290.  
  291.   oz'event {wizDisableMouse}
  292.   wizqEntityOrientation Lydia 10 "wait"
  293.   wizqEntitySetCycle Lydia standCycleNormal
  294.  
  295.   # Wait for Block 1
  296.   wizqWaitQueue 2
  297.  
  298.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  299.     oz'event {callEvent "millAlone"}
  300.  
  301.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  302.     oz'event {callEvent "millZak"}
  303.     wizqEntityOrientation Lydia 330 "wait"
  304.   }
  305.   
  306.   oz'event {callEvent "leverGZoomIn"}
  307.  
  308.   oz'event {wizEnableMouse}
  309.   oz'event {wizEntityResumeFollow Zak}
  310. }
  311.  
  312.  
  313. ## ===================================================== ##
  314. ##   use Lever H Behavior                                ##
  315. ## ===================================================== ##
  316.  
  317. event "useLeverHBehavior" {
  318.   if { [ozGet "puzzleZak"] == "complete" } {
  319.     # Block 1
  320.     wizqQueue 2 {
  321.       wizqEntityMove Zak "569.1 -24.5 293.3" "wait"
  322.       wizqEntityOrientation Zak 135
  323.     }
  324.  
  325.     oz'event {wizEntityStopFollow Zak}
  326.   }
  327.  
  328.   oz'event {wizDisableMouse}
  329.   wizqEntityOrientation Lydia 120 "wait"
  330.   wizqEntitySetCycle Lydia standCycleNormal
  331.  
  332.   # Wait for Block 1
  333.   wizqWaitQueue 2
  334.  
  335.   if { [getVar "millAlone"] == "" && [getVar "puzzleZak"] == "" } {
  336.     oz'event {callEvent "millAlone"}
  337.  
  338.   } elseif { [getVar "millZak"] == "" && [getVar "puzzleZak"] == "complete" } {
  339.     oz'event {callEvent "millZak"}
  340.   }
  341.    
  342.   oz'event {callEvent "leverHZoomIn"}
  343.  
  344.   oz'event {wizEnableMouse}
  345.   oz'event {wizEntityResumeFollow Zak}
  346. }
  347.  
  348.  
  349. ## ===================================================== ##
  350. ##   use To Waterway Behavior                            ##
  351. ## ===================================================== ##
  352.  
  353. event "useToWaterwayBehavior" {
  354.   if { [ozGet "puzzleZak"] == "complete" } {
  355.     # Block 1
  356.     wizqQueue 2 {
  357.       wizqEntityMove Zak "563.1 -16.2 320.5" "wait"
  358.       wizqEntityOrientation Zak 220
  359.     }
  360.  
  361.     oz'event {wizEntityStopFollow Zak}
  362.   }
  363.  
  364.   oz'event {wizDisableMouse}
  365.   wizqEntityOrientation Lydia 190 "wait"
  366.   wizqEntitySetCycle Lydia standCycleNormal
  367.  
  368.   # Wait for Block 1
  369.   wizqWaitQueue 2
  370.  
  371.   chainEvent { freezePlayer }
  372.   
  373.   if { [getVar "puzzleMillTools"] == "complete" } {
  374.     Play3DSound "characters/lydia/smallDoorUnlocked"
  375.     wizqEntityAction Lydia standOpenDoorRightHand
  376.     chainEvent { delay 2200 }
  377.  
  378.     chainEvent { standardFadeout }
  379.     chainEvent { delay 1000 }
  380.     chainEvent { wizEntitySetPosition Lydia "553.6 -16.9 342" }
  381.     chainEvent { wizEntitySetPosition Zak "558.6 -16.9 349.9" }
  382.  
  383.     chainEvent { setScene "crescentCoastWaterway" world }
  384.  
  385.     chainEvent { wizEntitySetOrientation Lydia 190 }
  386.     wizqEntitySetCycle Lydia standCycleNormal
  387.  
  388.     chainEvent { wizEntitySetOrientation Zak 200 }
  389.     wizqEntitySetCycle Lydia standCycleNormal
  390.  
  391.     chainEvent { standardFadein }
  392.  
  393.     chainEvent {
  394.       unfreezePlayer
  395.       wizEnableMouse
  396.     }
  397.  
  398.   } else {
  399.     ozSet "millDoorToWaterway" "initiated"
  400.  
  401.     Play3DSound "characters/lydia/smallDoorLocked"
  402.     wizqEntityAction Lydia standOpenDoorRightHand
  403.  
  404.     # Block 1
  405.     wizqQueue 1 {
  406.       chainEvent { delay 2000 }
  407.       wizqEntityAction Lydia standHandOnChin "wait"
  408.     }
  409.  
  410.     wizqTalkOpen
  411.     wizqTalkSay Lydia $::lng::useToWaterwayTeleportL1   "sound/vo/$::LNG/scenes/mill/useToWaterwayTeleportL1.ogg"
  412.     wizqTalkSay Lydia $::lng::useToWaterwayTeleportL2   "sound/vo/$::LNG/scenes/mill/useToWaterwayTeleportL2.ogg"
  413.     wizqTalkClose
  414.  
  415.     # Wait for Block 1
  416.     wizqWaitQueue 1
  417.   }
  418.  
  419.   chainEvent { unfreezePlayer }
  420.   oz'event {wizEnableMouse}
  421.   oz'event {wizEntityResumeFollow Zak}
  422. }
  423.  
  424.  
  425. ################################################################################
  426. ## ========================================================================== ##
  427. ##   MOVEMENT                                                                 ##
  428. ## ========================================================================== ##
  429. ################################################################################
  430.  
  431.  
  432. ## ===================================================== ##
  433. ##   use Lever A                                         ##
  434. ## ===================================================== ##
  435.  
  436. event "useLeverA" {
  437.   if { [ozGet "puzzleZak"] == "complete" } {
  438.     # Block 1
  439.     wizqQueue 2 {
  440.       oz'event {wizEntityStopFollow Zak}
  441.       wizqEntityMove Zak "627.1 -34.2 305.3" "wait"
  442.       wizqEntityOrientation Zak 140
  443.       oz'event {wizEntityResumeFollow Zak}
  444.     }
  445.   }
  446.  
  447.   wizqEntityMove Lydia "635.1 -34.2 313.5" "mill.useLeverABehavior" 2
  448.  
  449.   wizqEventEnd "useLeverA"
  450. }
  451.  
  452.  
  453. ## ===================================================== ##
  454. ##   use Lever B                                         ##
  455. ## ===================================================== ##
  456.  
  457. event "useLeverB" {
  458.   if { [ozGet "puzzleZak"] == "complete" } {
  459.     # Block 1
  460.     wizqQueue 2 {
  461.       oz'event {wizEntityStopFollow Zak}
  462.       wizqEntityMove Zak "607.1 13.7 315.3" "wait"
  463.       wizqEntityOrientation Zak 95
  464.       oz'event {wizEntityResumeFollow Zak}
  465.     }
  466.   }
  467.  
  468.   wizqEntityMove Lydia "620.1 13.7 316.4" "mill.useLeverBBehavior" 2
  469.  
  470.   wizqEventEnd "useLeverB"
  471. }
  472.  
  473.  
  474. ## ===================================================== ##
  475. ##   use Lever C                                         ##
  476. ## ===================================================== ##
  477.  
  478. event "useLeverC" {
  479.   if { [ozGet "puzzleZak"] == "complete" } {
  480.     # Block 1
  481.     wizqQueue 2 {
  482.       oz'event {wizEntityStopFollow Zak}
  483.       wizqEntityMove Zak "607.1 13.7 315.3" "wait"
  484.       wizqEntityOrientation Zak 125
  485.       oz'event {wizEntityResumeFollow Zak}
  486.     }
  487.   }
  488.  
  489.   wizqEntityMove Lydia "616.1 13.7 316.4" "mill.useLeverCBehavior" 2
  490.  
  491.   wizqEventEnd "useLeverC"
  492. }
  493.  
  494.  
  495. ## ===================================================== ##
  496. ##   use Lever D                                         ##
  497. ## ===================================================== ##
  498.  
  499. event "useLeverD" {
  500.   if { [ozGet "puzzleZak"] == "complete" } {
  501.     # Block 1
  502.     wizqQueue 2 {
  503.       oz'event {wizEntityStopFollow Zak}
  504.       wizqEntityMove Zak "580 13.7 310.9" "wait"
  505.       wizqEntityOrientation Zak 120
  506.       oz'event {wizEntityResumeFollow Zak}
  507.     }
  508.   }
  509.  
  510.   wizqEntityMove Lydia "590.1 13.7 314.3" "mill.useLeverDBehavior" 2
  511.  
  512.   wizqEventEnd "useLeverD"
  513. }
  514.  
  515.  
  516. ## ===================================================== ##
  517. ##   use Lever E                                         ##
  518. ## ===================================================== ##
  519.  
  520. event "useLeverE" {
  521.   if { [ozGet "puzzleZak"] == "complete" } {
  522.     # Block 1
  523.     wizqQueue 2 {
  524.       oz'event {wizEntityStopFollow Zak}
  525.       wizqEntityMove Zak "582.1 13.7 312.3" "wait"
  526.       wizqEntityOrientation Zak 50
  527.       oz'event {wizEntityResumeFollow Zak}
  528.     }
  529.   }
  530.  
  531.   wizqEntityMove Lydia "588 13.7 309.5" "mill.useLeverEBehavior" 2
  532.  
  533.   wizqEventEnd "useLeverE"
  534. }
  535.  
  536.  
  537. ## ===================================================== ##
  538. ##   use Lever F                                         ##
  539. ## ===================================================== ##
  540.  
  541. event "useLeverF" {
  542.   if { [ozGet "puzzleZak"] == "complete" } {
  543.     # Block 1
  544.     wizqQueue 2 {
  545.       oz'event {wizEntityStopFollow Zak}
  546.       wizqEntityMove Zak "610.9 -24.5 275.5" "wait"
  547.       wizqEntityOrientation Zak 260
  548.       oz'event {wizEntityResumeFollow Zak}
  549.     }
  550.   }
  551.  
  552.   wizqEntityMove Lydia "599.1 -24.5 278.3" "mill.useLeverFBehavior" 2
  553. }
  554.  
  555.  
  556. ## ===================================================== ##
  557. ##   use Lever G                                         ##
  558. ## ===================================================== ##
  559.  
  560. event "useLeverG" {
  561.   if { [ozGet "puzzleZak"] == "complete" } {
  562.     # Block 1
  563.     wizqQueue 2 {
  564.       oz'event {wizEntityStopFollow Zak}
  565.       wizqEntityMove Zak "587.1 1.2 267.3" "wait"
  566.       wizqEntityOrientation Zak 280
  567.       oz'event {wizEntityResumeFollow Zak}
  568.     }
  569.   }
  570.  
  571.   wizqEntityMove Lydia "578.1 1.2 269.5" "mill.useLeverGBehavior" 2
  572.  
  573.   wizqEventEnd "useLeverG"
  574. }
  575.  
  576.  
  577. ## ===================================================== ##
  578. ##   use Lever H                                         ##
  579. ## ===================================================== ##
  580.  
  581. event "useLeverH" {
  582.   if { [ozGet "puzzleZak"] == "complete" } {
  583.     # Block 1
  584.     wizqQueue 2 {
  585.       oz'event {wizEntityStopFollow Zak}
  586.       wizqEntityMove Zak "569.1 -24.5 293.3" "wait"
  587.       wizqEntityOrientation Zak 135
  588.       oz'event {wizEntityResumeFollow Zak}
  589.     }
  590.   }
  591.  
  592.   wizqEntityMove Lydia "578.9 -24.5 304.8" "mill.useLeverHBehavior" 2
  593.  
  594.   wizqEventEnd "useLeverH"
  595. }
  596.  
  597.  
  598. ## ===================================================== ##
  599. ##   use To Waterway                                     ##
  600. ## ===================================================== ##
  601.  
  602. event "useToWaterway" {
  603.   eventState [wizEventStart "useToWaterway"]
  604.  
  605.   if { [ozGet "puzzleZak"] == "complete" } {
  606.     # Block 1
  607.     wizqQueue 2 {
  608.       oz'event {wizEntityStopFollow Zak}
  609.       wizqEntityMove Zak "563.1 -16.2 320.5" "wait"
  610.       wizqEntityOrientation Zak 220
  611.       oz'event {wizEntityResumeFollow Zak}
  612.     }
  613.   }
  614.  
  615.   wizqEntityMove Lydia "555 -16.2 326.5" "mill.useToWaterwayBehavior" 2
  616.  
  617.   wizqEventEnd "useToWaterway"
  618. }
  619.  
  620.  
  621. ## ===================================================== ##
  622. ##   To Mill Store Room                                  ##
  623. ## ===================================================== ##
  624.  
  625. event "ToMillStoreRoom" {
  626.   if { [getVar "leftCloseDoor"] == "" } {
  627.     setScene "millStoreRoom" worldOpened
  628.  
  629.   } else {
  630.     setScene "millStoreRoom" world
  631.   }
  632. }
  633.  
  634.  
  635. ################################################################################
  636. ## ========================================================================== ##
  637. ## ANIMATION & SPECIAL CAMERA SECTION                                         ##
  638. ## ========================================================================== ##
  639. ################################################################################
  640.  
  641.  
  642. ## ===================================================== ##
  643. ##   proc pzlZoomIn                                      ##
  644. ## ===================================================== ##
  645.  
  646. proc pzlZoomIn {device} {
  647.     set s [ozGet pzlMillCloseUp$device]
  648.     if {$s == ""} {set s 0}
  649.  
  650.     oz'event {freezePlayer}
  651.     oz'event {standardFadeout}
  652.     
  653.     oz'event {
  654.         hConvBackEvent "mill.lever${device}ZoomOut"
  655.         wizEntityHide Lydia
  656.         if { \"[ozGet "puzzleZak"]\" == "complete" } {
  657.             wizEntityHide Zak
  658.         }
  659.     }    
  660.  
  661.     oz'event {
  662.         setCamera puzzleCloseUp$device
  663.         wizhCameraChange
  664.         MainDisableSidebar
  665.         MainDisableTalk
  666.     }
  667.  
  668.     oz'event { puzzleCloseUp${device}::newSt switch,${s}St }
  669.     oz'event {oz'delay 0.01}
  670.  
  671.     oz'event {standardFadein}
  672. }
  673.  
  674.  
  675. ## ===================================================== ##
  676. ##   proc pzlZoomOut                                     ##
  677. ## ===================================================== ##
  678.  
  679. proc pzlZoomOut {device camera} {
  680.   oz'event {standardFadeout}
  681.     
  682.   wq'widget::delete& puzzleCloseUp${device}::switch,0St
  683.   wq'widget::delete& puzzleCloseUp${device}::switch,1St
  684.   wq'widget::delete& puzzleCloseUp${device}::switch,2St
  685.   wq'widget::delete& puzzleCloseUp${device}::switch,3St
  686.  
  687.     oz'event {
  688.         setCamera $camera
  689.         wizhCameraChange
  690.         MainEnableSidebar
  691.         MainEnableTalk
  692.     }
  693.  
  694.     oz'event {
  695.         wizEntityShow Lydia
  696.         if { \"[ozGet "puzzleZak"]\" == "complete" } {
  697.             wizEntityShow Zak
  698.         }
  699.         unfreezePlayer
  700.     }
  701.  
  702.     oz'event {standardFadein}
  703. }
  704.  
  705.  
  706. ## ===================================================== ##
  707. ##   lever A Zoom In                                     ##
  708. ## ===================================================== ##
  709.  
  710. event "leverAZoomIn" {
  711.     pzlZoomIn A
  712. }
  713.  
  714.  
  715. ## ===================================================== ##
  716. ##   lever A Zoom Out                                    ##
  717. ## ===================================================== ##
  718.  
  719. event "leverAZoomOut" {
  720.     pzlZoomOut A "machineStart"
  721. }
  722.  
  723.  
  724. ## ===================================================== ##
  725. ##   lever B Zoom In                                     ##
  726. ## ===================================================== ##
  727.  
  728. event "leverBZoomIn" {
  729.     pzlZoomIn B
  730. }
  731.  
  732.  
  733. ## ===================================================== ##
  734. ##   lever B Zoom Out                                    ##
  735. ## ===================================================== ##
  736.  
  737. event "leverBZoomOut" {
  738.     pzlZoomOut B "secondFloor"
  739. }
  740.  
  741.  
  742. ## ===================================================== ##
  743. ##   lever C Zoom In                                     ##
  744. ## ===================================================== ##
  745.  
  746. event "leverCZoomIn" {
  747.     pzlZoomIn C
  748. }
  749.  
  750.  
  751. ## ===================================================== ##
  752. ##   lever C Zoom Out                                    ##
  753. ## ===================================================== ##
  754.  
  755. event "leverCZoomOut" {
  756.     pzlZoomOut C "secondFloor"
  757. }
  758.  
  759.  
  760. ## ===================================================== ##
  761. ##   lever D Zoom In                                     ##
  762. ## ===================================================== ##
  763.  
  764. event "leverDZoomIn" {
  765.     pzlZoomIn D
  766. }
  767.  
  768.  
  769. ## ===================================================== ##
  770. ##   lever D Zoom Out                                    ##
  771. ## ===================================================== ##
  772.  
  773. event "leverDZoomOut" {
  774.     pzlZoomOut D "millEntrance"
  775. }
  776.  
  777.  
  778. ## ===================================================== ##
  779. ##   lever E Zoom In                                     ##
  780. ## ===================================================== ##
  781.  
  782. event "leverEZoomIn" {
  783.     pzlZoomIn E
  784. }
  785.  
  786.  
  787. ## ===================================================== ##
  788. ##   lever E Zoom Out                                    ##
  789. ## ===================================================== ##
  790.  
  791. event "leverEZoomOut" {
  792.     pzlZoomOut E "millEntrance"
  793. }
  794.  
  795.  
  796. ## ===================================================== ##
  797. ##   lever F Zoom In                                     ##
  798. ## ===================================================== ##
  799.  
  800. event "leverFZoomIn" {
  801.     pzlZoomIn F
  802. }
  803.  
  804.  
  805. ## ===================================================== ##
  806. ##   lever F Zoom Out                                    ##
  807. ## ===================================================== ##
  808.  
  809. event "leverFZoomOut" {
  810.     pzlZoomOut F "millFlourSac"
  811. }
  812.  
  813.  
  814. ## ===================================================== ##
  815. ##   lever G Zoom In                                     ##
  816. ## ===================================================== ##
  817.  
  818. event "leverGZoomIn" {
  819.     pzlZoomIn G
  820. }
  821.  
  822.  
  823. ## ===================================================== ##
  824. ##   lever G Zoom Out                                    ##
  825. ## ===================================================== ##
  826.  
  827. event "leverGZoomOut" {
  828.     pzlZoomOut G "millStairs"
  829. }
  830.  
  831.  
  832. ## ===================================================== ##
  833. ##   lever H Zoom In                                     ##
  834. ## ===================================================== ##
  835.  
  836. event "leverHZoomIn" {
  837.     pzlZoomIn H
  838. }
  839.  
  840.  
  841. ## ===================================================== ##
  842. ##   lever H Zoom Out                                    ##
  843. ## ===================================================== ##
  844.  
  845. event "leverHZoomOut" {
  846.     pzlZoomOut H "barrels"
  847. }
  848.  
  849.  
  850. ## ===================================================== ##
  851. ##   camera millEntrance                                 ##
  852. ## ===================================================== ##
  853.  
  854. event "millEntrance" {
  855.   setCamera "millEntrance"
  856.   wizhCameraChange
  857.   wizEntityResumeFollow Zak
  858.   
  859.   chainEvent { delay 500 }
  860.  
  861.   if { [ozGet "puzzleZak"] == "complete" && [ozGet "zakPresentation"] == "" } {
  862.     ozSet "zakPresentation" "discussed"
  863.     callEvent millWalkway.zakPresentation
  864.   }
  865. }
  866.  
  867.  
  868. ## ===================================================== ##
  869. ##   camera secondFloor                                  ##
  870. ## ===================================================== ##
  871.  
  872. event "secondFloor" {
  873.   setCamera "secondFloor"
  874.   wizhCameraChange
  875.   wizEntityResumeFollow Zak
  876. }
  877.  
  878.  
  879. ## ===================================================== ##
  880. ##   camera millStairs                                   ##
  881. ## ===================================================== ##
  882.  
  883. event "millStairs" {
  884.   setCamera "millStairs"
  885.   wizhCameraChange
  886.   wizEntityResumeFollow Zak
  887. }
  888.  
  889.  
  890. ## ===================================================== ##
  891. ##   camera millDownStairs                               ##
  892. ## ===================================================== ##
  893.  
  894. event "millDownStairs" {
  895.   setCamera "millDownStairs"
  896.   wizhCameraChange
  897.   wizEntityResumeFollow Zak
  898. }
  899.  
  900.  
  901. ## ===================================================== ##
  902. ##   camera wheelBarrow                                  ##
  903. ## ===================================================== ##
  904.  
  905. event "wheelBarrow" {
  906.   setCamera "wheelBarrow"
  907.   wizhCameraChange
  908.   wizEntityResumeFollow Zak
  909. }
  910.  
  911.  
  912. ## ===================================================== ##
  913. ##   camera waterway                                     ##
  914. ## ===================================================== ##
  915.  
  916. event "waterway" {
  917.   setCamera "waterway"
  918.   wizhCameraChange
  919.   wizEntityResumeFollow Zak
  920. }
  921.  
  922.  
  923. ################################################################################
  924. ## ========================================================================== ##
  925. ##   NPC DIALOGUE SECTION                                                     ##
  926. ## ========================================================================== ##
  927. ################################################################################
  928.  
  929.  
  930. # NONE FOR NOW
  931.  
  932.  
  933. ################################################################################
  934. ## ========================================================================== ##
  935. ##   FORCED DIALOGUE SECTION                                                  ##
  936. ## ========================================================================== ##
  937. ################################################################################
  938.  
  939.  
  940. ## ===================================================== ##
  941. ##   First glimpse on the Mill alone                     ##
  942. ## ===================================================== ##
  943.  
  944. event "millAlone" {
  945.   checkConversation "millAlone" {
  946.     chainEvent {
  947.       freezePlayer
  948.       wizDisableMouse
  949.     }
  950.     
  951.     # Block 1
  952.     wizqQueue 1 {
  953.       wizqEntityAction Lydia standHandOnChin "wait"
  954.     }
  955.     
  956.     wizqTalkOpen
  957.     wizqTalkSay Lydia $::lng::millAloneL1   "sound/vo/$::LNG/scenes/mill/millAloneL1.ogg"
  958.     wizqTalkClose
  959.  
  960.     # Wait for Block 1
  961.     wizqWaitQueue 1
  962.     
  963.     chainEvent {
  964.       unfreezePlayer
  965.       wizEnableMouse
  966.     }
  967.   }
  968. }
  969.  
  970.  
  971. ## ===================================================== ##
  972. ##   First glimpse on the Mill with Zak                  ##
  973. ## ===================================================== ##
  974.  
  975. event "millZak" {
  976.   checkConversation "millZak" {\
  977.     oz'event {oz'track::play $::music_track "/sound/music/caretaker.ogg" -repeat 1}
  978.     chainEvent {
  979.       freezePlayer
  980.       wizDisableMouse
  981.     }
  982.     
  983.     # Block 1
  984.     wizqQueue 1 {
  985.       wizqEntityAction Lydia standHandOnChin "wait"
  986.       chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
  987.     }
  988.  
  989.     # Block 1-B
  990.     wizqQueue 2 {
  991.       chainEvent { delay 500 }
  992.       chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
  993.     }
  994.     
  995.     wizqTalkOpen
  996.     wizqTalkSay Lydia $::lng::millAloneL1   "sound/vo/$::LNG/scenes/mill/millAloneL1.ogg"
  997.     wizqTalkSay Zak $::lng::millZakZ1   "sound/vo/$::LNG/scenes/mill/millZakZ1.ogg"
  998.  
  999.     # Wait for Block 1 & 1-B
  1000.     wizqWaitQueue 1
  1001.     wizqWaitQueue 2
  1002.  
  1003.     # Block 2
  1004.     wizqQueue 1 {
  1005.       wizqEntityAction Zak standRelax "wait"
  1006.     }
  1007.  
  1008.     wizqTalkSay Zak $::lng::millZakZ2   "sound/vo/$::LNG/scenes/mill/millZakZ2.ogg"
  1009.  
  1010.     # Wait for Block 2
  1011.     wizqWaitQueue 1
  1012.     
  1013.     # Block 3
  1014.     wizqQueue 1 {
  1015.       wizqEntityAction Zak standConfusedRight "wait"
  1016.     }
  1017.  
  1018.     wizqTalkSay Zak $::lng::millZakZ3   "sound/vo/$::LNG/scenes/mill/millZakZ3.ogg"
  1019.  
  1020.     # Wait for Block 3
  1021.     wizqWaitQueue 1
  1022.  
  1023.     # Block 4
  1024.     wizqQueue 1 {
  1025.       chainEvent { delay 2000 }
  1026.       wizqEntityAction Zak standNo "wait"
  1027.     }
  1028.  
  1029.     wizqTalkSay Zak $::lng::millZakZ4   "sound/vo/$::LNG/scenes/mill/millZakZ4.ogg"
  1030.     wizqTalkClose
  1031.  
  1032.     # Wait for Block 4
  1033.     wizqWaitQueue 1
  1034.     
  1035.     chainEvent {
  1036.       unfreezePlayer
  1037.       wizEnableMouse
  1038.     }
  1039.  
  1040.     oz'event {oz'track::play $::music_track "/sound/music/caretaker.ogg" -repeat 0}
  1041.   }
  1042. }
  1043.  
  1044.  
  1045. ## ===================================================== ##
  1046. ##   Mill Wheel Solved                                   ##
  1047. ## ===================================================== ##
  1048. ## trigger is when the player solve the Mill Wheel puzzle
  1049.  
  1050. event "millSolved" {
  1051.   chainEvent {
  1052.     freezePlayer
  1053.     wizDisableFloorevent
  1054.     wizDisableMouse
  1055.     wizEntityStopFollow Zak
  1056.   }
  1057.   
  1058.   ozSet "mill.useLeverA" "false"
  1059.   ozSet "mill.useLeverB" "false"
  1060.   ozSet "mill.useLeverC" "false"
  1061.   ozSet "mill.useLeverD" "false"
  1062.   ozSet "mill.useLeverE" "false"
  1063.   ozSet "mill.useLeverF" "false"
  1064.   ozSet "mill.useLeverG" "false"
  1065.   ozSet "mill.useLeverH" "false"
  1066.  
  1067.   ozSet "puzzleMill" "complete"
  1068.   ozSet "puzzlePowerSurge" "complete"
  1069.  
  1070.     # Block 1
  1071.     wizqQueue 1 {
  1072.       chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
  1073.       chainEvent { delay 1500 }
  1074.       wizqEntityAction Zak standYes "wait"
  1075.     }
  1076.  
  1077.     # Block 1-B
  1078.     wizqQueue 2 {
  1079.       chainEvent { delay 500 }
  1080.       chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
  1081.     }
  1082.     
  1083.     wizqTalkOpen
  1084.     wizqTalkSay Zak $::lng::millSolvedZ1   "sound/vo/$::LNG/scenes/mill/millSolvedZ1.ogg"
  1085.  
  1086.     # Wait for Block 1 & 1-B
  1087.     wizqWaitQueue 1
  1088.     wizqWaitQueue 2
  1089.  
  1090.     # Block 2
  1091.     wizqQueue 1 {
  1092.       wizqEntityAction Lydia standTalkTwoHands "wait"
  1093.     }
  1094.  
  1095.     wizqTalkSay Lydia $::lng::millSolvedL1   "sound/vo/$::LNG/scenes/mill/millSolvedL1.ogg"
  1096.  
  1097.     # Wait for Block 2
  1098.     wizqWaitQueue 1
  1099.     
  1100.     # Block 2-B
  1101.     wizqQueue 2 {
  1102.       chainEvent { delay 1000 }
  1103.       wizqEntityAction Zak standConfusedLeft "wait"
  1104.     }
  1105.  
  1106.     wizqTalkSay Zak $::lng::millSolvedZ2   "sound/vo/$::LNG/scenes/mill/millSolvedZ2.ogg"
  1107.  
  1108.     # Wait for Block 2-B
  1109.     wizqWaitQueue 1
  1110.     wizqWaitQueue 2
  1111.  
  1112.     # Block 3
  1113.     wizqQueue 1 {
  1114.       wizqEntityAction Lydia standWhat "wait"
  1115.     }
  1116.  
  1117.     wizqTalkSay Lydia $::lng::millSolvedL2   "sound/vo/$::LNG/scenes/mill/millSolvedL2.ogg"
  1118.     wizqTalkClose
  1119.  
  1120.     # Wait for Block 3
  1121.     wizqWaitQueue 1
  1122.     
  1123.     chainEvent {
  1124.       unfreezePlayer
  1125.       wizEnableFloorevent
  1126.       wizEnableMouse
  1127.       wizEntityResumeFollow Zak
  1128.     }
  1129.     
  1130.     if { [getVar "lydiasPastConversation"] == "" } {
  1131.       setEventPriority optionnalConversation.lydiasPastBehavior long
  1132.       ozSet "lydiasPastConversation" "initiated"
  1133.     }
  1134. }
  1135.  
  1136.  
  1137. ################################################################################
  1138. ## ========================================================================== ##
  1139. ##   OPTIONNAL DIALOGUE SECTION                                               ##
  1140. ## ========================================================================== ##
  1141. ################################################################################
  1142.  
  1143.  
  1144. # NONE FOR NOW
  1145.  
  1146.  
  1147. ################################################################################
  1148. ## ========================================================================== ##
  1149. ##   TO ADD/ CORRECTIONS NEEDED                                               ##
  1150. ## ========================================================================== ##
  1151. ################################################################################
  1152.  
  1153.  
  1154. # NONE FOR NOW
  1155.  
  1156.  
  1157. ################################################################################
  1158. ## ========================================================================== ##
  1159. ##   TO CHECK                                                                 ##
  1160. ## ========================================================================== ##
  1161. ################################################################################
  1162.  
  1163.  
  1164. # NONE FOR NOW
  1165.  
  1166.  
  1167.