home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CyberMycha 2006 April
/
SGP.iso
/
dema
/
Keepsake-Demo-en-li-v1.0.exe
/
res
/
scripts
/
basement.tcl
next >
Wrap
Text File
|
2005-12-07
|
33KB
|
1,084 lines
################################################################################
# ##
# file basement.tcl ##
# brief Events for the Basement. ##
# ##
################################################################################
## ===================================================== ##
## Loading script from source ##
## ===================================================== ##
source "[PUZZLES]/basement.camera.tcl"
source "[AUTO]/basement.mvwrap.tcl"
source "[PUZZLES]/basement.puzzle.tcl"
## ===================================================== ##
## Initialization ##
## ===================================================== ##
event "init" {
zakFollowDist 15
setAudioEnv "city"
oz'track::stop $::music_track
SetAmbient 2d ambiance/forest "0 0 0" 0 0
SetAmbient 2d ambiance/waterway "0 0 0" 0 0
SetAmbient 2d ambiance/elvandarRiver "0 0 0" 0 0
SetAmbient 3d sfx/millGearWorking "610 -19 454" 30 0 0.6
SetAmbient 3d sfx/millWheel "594.459 -21.683 372.964" 30 0 0.6
SetAmbient 3d sfx/dragonFountainLoop "227 71 157" 30 0 0.6
SetAmbient 3d sfx/gardenPond "245 71 270" 30 0 0.6
SetAmbient 2d ambiance/basement "0 0 0" 0 1
SetAmbient 3d sfx/fallsFar "130 144 870" 10000 0
ozSet "basementRoom" "visited"
ozSet "basement.useBrickPuzzle" "false"
if { [getVar "basementFear"] != "complete" || [getVar "secretPassage"] != "complete" } {
ozSet "basementFear" "initiated"
}
if { [getVar "hauntedBasement"] == "ok" } {
callEvent "ghostWhining"
}
}
################################################################################
## ========================================================================== ##
## DOOR BLOCKING & PUZZLE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Ghosts whining ##
## ===================================================== ##
event "ghostWhining" {
if ![canZakTalk] {eventState queue}
eventState [checkTime [ozGet "ghostWhiningVar"] ]
ozSet "ghostWhiningVar" [expr 10000 + [ random 5000]]
if { [ozGet "sysScene"] != "basement" && [ozGet "sysScene"] != "wineCave" } {
eventState queue
}
if { [ozGet "basementFear"] == "complete" } {
return
}
if { [getVar "whining"] == "" } {
callEvent "ghostWhiningOne"
chainCallEvent "ghostWhining"
} elseif { [getVar "whining"] == "first" } {
callEvent "ghostWhiningTwo"
chainCallEvent "ghostWhining"
} elseif { [getVar "whining"] == "second" } {
callEvent "ghostWhiningThree"
chainCallEvent "ghostWhining"
} elseif { [getVar "whining"] == "third" } {
callEvent "ghostWhiningFour"
chainCallEvent "ghostWhining"
} elseif { [getVar "whining"] == "fourth" } {
callEvent "ghostWhiningFive"
}
}
################################################################################
## ========================================================================== ##
## MOVEMENT ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## transJunctionEnd ##
## ===================================================== ##
event "transJunctionEnd" {
wizEntityMove Lydia "339.1 38.7 507.5"
}
## ===================================================== ##
## transEntranceStairs ##
## ===================================================== ##
event "transEntranceStairs" {
wizEntityMove Lydia "260 62 492" "basement.toGarden" 2
}
## ===================================================== ##
## toGardenClick ##
## ===================================================== ##
event "toGardenClick" {
wizEntityMove Lydia "263 61.9 492.5" "basement.toGarden" 2
}
## ===================================================== ##
## toGarden ##
## ===================================================== ##
event "toGarden" {
eventState [wizEventStart "toGarden"]
chainEvent {
freezePlayer
wizDisableMouse
}
wizEntityOrientation Lydia 10
Play3DSound "characters/lydia/smallDoorUnlocked"
wizqEntityAction Lydia standOpenDoorRightHand
chainEvent { delay 2200 }
chainEvent {
standardFadeout
setThreadID 4
wq'widget::delete& entranceStairs::lightLantern
setThreadID 0
}
chainEvent { delay 1000 }
chainEvent { wizEntitySetPosition Lydia "256.6 61.9 483.9" }
chainEvent { wizEntitySetPosition Zak "262.6 61.9 483.9" }
chainEvent { setScene "garden" world }
chainEvent { wizEntitySetOrientation Lydia 280 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { wizEntitySetOrientation Zak 300 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { standardFadein }
chainEvent {
unfreezePlayer
wizEnableMouse
}
wizqEventEnd "toGarden"
}
## ===================================================== ##
## toCrescentCoastWaterwayTeleport ##
## ===================================================== ##
event "toCrescentCoastWaterwayTeleport" {
if { [getVar "secretPassage"] == "" } {
callEvent "secretPassage"
return
}
if { [getVar "pendantBreak"] == "" } {
chainEvent {wizDisableMouse}
chainEvent { standardFadeout }
callEvent crescentCoastWaterway.pendantBreakingMovie
} else {
chainEvent { standardFadeout }
chainEvent { wizEntitySetPosition Lydia "311.6 -6.02 469.9" }
chainEvent { wizEntitySetPosition Zak "311.6 -6.02 463.9" }
chainEvent { setScene "crescentCoastWaterway" world }
chainEvent { wizEntitySetOrientation Lydia 80 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { wizEntitySetOrientation Zak 90 }
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { standardFadein }
}
}
## ===================================================== ##
## Use Brick Puzzle ##
## ===================================================== ##
event "useBrickPuzzle" {
eventState [wizEventStart "useBrickPuzzle"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityMove Zak "408.1 21.2 519.5" "wait"
wizqEntityOrientation Zak 140
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia "414.1 21.1 529.5" "basement.brickPuzzleBehavior" 2
wizqEventEnd "useBrickPuzzle"
}
## ===================================================== ##
## transeEntranceStairs ##
## ===================================================== ##
event "transToCrescentCoastWaterway" {
eventState [wizEventStart "transToCrescentCoastWaterway"]
# Block 1
wizqQueue 2 {
chainEvent { wizEntityStopFollow Zak }
wizqEntityMove Zak "290 16.8 502.7" "wait"
wizqEntityOrientation Zak 330
}
wizEntityMove Lydia "283.3 16.9 490.6"
# Wait for Block 1
wizqWaitQueue 2
wizqEntityMove Lydia "283.3 16.9 490.6" "basement.toCrescentCoastWaterwayTeleport" 2
wizqEventEnd "transToCrescentCoastWaterway"
}
## ===================================================== ##
## lookStageEnd ##
## ===================================================== ##
event "lookStageEnd" {
eventState [wizEventStart "lookStageEnd"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityMove Zak "269.8 35.6 532.5" "wait"
wizqEntityOrientation Zak 135
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia "277.1 35.6 534.5" "basement.cratesZoomIn" 2
wizqEventEnd "lookStageEnd"
}
################################################################################
## ========================================================================== ##
## ANIMATION & SPECIAL CAMERA SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Wine Cave Puzzle Zoom In ##
## ===================================================== ##
event "wCPuzzleZoomIn" {
wizqZoomIn "wineCavePuzzleCloseUp" "basement.wCPuzzleZoomOut"
}
## ===================================================== ##
## Wine Cave Puzzle Zoom Out ##
## ===================================================== ##
event "wCPuzzleZoomOut" {
useBrickReset
wizqZoomOut "wineCavePuzzle"
chainEvent { hRemoveBack }
}
## ===================================================== ##
## crates Zoom Out ##
## ===================================================== ##
event "cratesZoomOut" {
wizqZoomOut "stageEndCrates"
chainEvent { hRemoveBack }
}
## ===================================================== ##
## junction camera ##
## ===================================================== ##
event "junction" {
setCamera "junction"
wizhCameraChange
chainEvent { delay 500 }
if { [getVar "hauntedBasement"] == "" } {
callEvent "hauntedBasement"
} else {
chainCallEvent "ghostWhining"
}
}
## ===================================================== ##
## under Ground Corner camera ##
## ===================================================== ##
event "underGroundCorner" {
setCamera "underGroundCorner"
wizhCameraChange
chainEvent { delay 500 }
callEvent "windSource"
}
## ===================================================== ##
## under Ground Alley camera ##
## ===================================================== ##
event "underGroundAlley" {
setCamera "underGroundAlley"
wizhCameraChange
chainEvent { delay 500 }
callEvent "windSource"
}
## ===================================================== ##
## under River Entrance camera ##
## ===================================================== ##
event "underRiverEntrance" {
setCamera "underRiverEntrance"
wizhCameraChange
}
## ===================================================== ##
## Wine Cave Puzzle Camera ##
## ===================================================== ##
event "wineCavePuzzle" {
if { [getVar "wineCavePuzzle"] == "complete" } {
setCamera "wineCavePuzzleComplete"
wizhCameraChange
} else {
setCamera "wineCavePuzzle"
wizhCameraChange
}
}
## ===================================================== ##
## small stairs camera ##
## ===================================================== ##
event "smallStairs" {
if { [ozGet "wineCavePuzzle"] == "complete" } {
setCamera "smallStairsOpen"
wizhCameraChange
} else {
setCamera "smallStairs"
wizhCameraChange
}
wizEntityResumeFollow Zak
}
## ===================================================== ##
## stage End camera ##
## ===================================================== ##
event "stageEnd" {
if { [ozGet "puzzleMustavioPathway"] == "complete" } {
setCamera "stageEnd"
wizhCameraChange
} else {
setCamera "stageEndCrates"
wizhCameraChange
}
}
## ===================================================== ##
## stage Entrance camera ##
## ===================================================== ##
event "stageEntrance" {
if { [ozGet "puzzleMustavioPathway"] == "" } {
setCamera "stageEntranceCrates"
wizhCameraChange
} else {
setCamera "stageEntrance"
wizhCameraChange
}
}
################################################################################
## ========================================================================== ##
## NPC DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## crates Zoom In ##
## ===================================================== ##
event "cratesZoomIn" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityMove Zak "269.8 35.6 532.5" "wait"
wizqEntityOrientation Zak 135
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 180 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
# Block 1
wizqQueue 1 {
chainEvent { delay 1000 }
wizqZoomIn "crateMustavio" "basement.cratesZoomOut"
wizqDisableMouse
}
ozSet "puzzleMustavioCrates" "complete"
wizqTalkOpen
if { [ozGet "caretakerDeal"] == "discussed" } {
wizqTalkSay Lydia $::lng::cratesZoomInL1 "sound/vo/$::LNG/scenes/basement/cratesZoomInL1.ogg"
} elseif { [ozGet "mustavioIntroduction"] == "discussed" } {
wizqTalkSay Lydia $::lng::cratesZoomInL2 "sound/vo/$::LNG/scenes/basement/cratesZoomInL2.ogg"
} elseif { [ozGet "mustavioMeaning"] == "" } {
ozSet "mustavioMeaning" "discussed"
wizqTalkSay Lydia $::lng::cratesZoomInL3 "sound/vo/$::LNG/scenes/basement/cratesZoomInL3.ogg"
wizqTalkSay Zak $::lng::cratesZoomInZ1 "sound/vo/$::LNG/scenes/basement/cratesZoomInZ1.ogg"
} else {
wizqTalkSay Lydia $::lng::cratesZoomInL4 "sound/vo/$::LNG/scenes/basement/cratesZoomInL4.ogg"
}
wizqTalkClose
# Wait for Block 1
wizqWaitQueue 1
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
################################################################################
## ========================================================================== ##
## FORCED DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Haunted basement ##
## ===================================================== ##
## trigger is when the player enter the basement
## for the first time
event "hauntedBasement" {
checkConversation "hauntedBasement" {
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
wizEntityStopFollow Zak
}
# Block 1
wizqQueue 1 {
wizqEntityWalk Lydia "264 51.1 548.5" "wait"
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
}
# Block 1-B
wizqQueue 2 {
wizqEntityWalk Zak "269 51.1 525.5" "wait"
wizqEntitySetCycle Zak lieCycleFear
}
wizqTalkOpen
wizqTalkSay Zak $::lng::hauntedBasementZ1 "sound/vo/$::LNG/scenes/basement/hauntedBasementZ1.ogg"
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 2
wizqQueue 1 {
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkSay Lydia $::lng::hauntedBasementL1 "sound/vo/$::LNG/scenes/basement/hauntedBasementL1.ogg" fastout
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
wizqEntityWalk Lydia "270.1 51.1 531.9" "wait"
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
wizqEntityChangeCycle Lydia crouchCycleNormal standToCrouch "wait"
}
wizqTalkSay Zak $::lng::hauntedBasementZ2 "sound/vo/$::LNG/scenes/basement/hauntedBasementZ2.ogg" fastin
# Wait for Block 3
wizqWaitQueue 1
# Block 4
wizqQueue 1 {
wizqEntityAction Lydia crouchTalk "wait"
chainEvent { delay 500 }
wizqEntityAction Lydia crouchTalk "wait"
}
wizqTalkSay Lydia $::lng::hauntedBasementL2 "sound/vo/$::LNG/scenes/basement/hauntedBasementL2.ogg"
# Block 4-B
wizqQueue 2 {
wizqEntitySetCycle Zak standCycleNormal
}
wizqTalkSay Zak $::lng::hauntedBasementZ3 "sound/vo/$::LNG/scenes/basement/hauntedBasementZ3.ogg"
# Wait for Block 4 & 4-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 5
wizqQueue 1 {
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
}
wizqTalkSay Lydia $::lng::hauntedBasementL3 "sound/vo/$::LNG/scenes/basement/hauntedBasementL3.ogg"
wizqTalkClose
# Wait for Block 5
wizqWaitQueue 1
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
wizEntityResumeFollow Zak
}
}
chainCallEvent "ghostWhining"
}
## ===================================================== ##
## Wind of Guidance ##
## ===================================================== ##
## trigger is when the player get close to the crescent
## coast waterway exit.
event "windSource" {
checkConversation "windSource" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::windSourceL1 "sound/vo/$::LNG/scenes/basement/windSourceL1.ogg"
wizqTalkClose
}
}
## ===================================================== ##
## Wind Source ##
## ===================================================== ##
## trigger is the secret entrance to the Crescent
## Coast Waterway
event "secretPassage" {
chainEvent {
freezePlayer
wizDisableMouse
wizEntityStopFollow Zak
}
ozSet "basementFear" "complete"
chainEvent { wizqEntityAction Lydia standHandOnChin "wait" }
# Block 1
wizqQueue 1 {
chainEvent { delay 100 }
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntitySetCycle Zak sitCycleNormal
}
# Block 1-B
wizqQueue 2 {
chainEvent { delay 500 }
wizqEntityWalk Lydia "283.3 16.9 490.6" "wait"
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
chainEvent { delay 500 }
wizqEntityAction Lydia standTalkHandHip "wait"
wizqEntityAction Lydia standNo "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::secretWayL1 "sound/vo/$::LNG/scenes/basement/secretWayL1.ogg"
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntitySetOrientationTarget Lydia None
# Block 2
wizqQueue 1 {
wizqEntityAction Lydia standArmCross "wait"
}
wizqTalkSay Lydia $::lng::secretWayL2 "sound/vo/$::LNG/scenes/basement/secretWayL2.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
wizqEntityAction Zak sitNo "wait"
}
wizqTalkSay Zak $::lng::secretWayZ1 "sound/vo/$::LNG/scenes/basement/secretWayZ1.ogg"
# Block 3-B
wizqQueue 2 {
wizqEntityWalk Lydia "285.1 16.8 499.5" "wait"
wizqEntityChangeCycle Lydia crouchCycleNormal standToCrouch "wait"
}
wizqTalkSay Zak $::lng::secretWayZ2 "sound/vo/$::LNG/scenes/basement/secretWayZ2.ogg"
# Wait for Block 3 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 4
wizqQueue 1 {
wizqEntityAction Lydia crouchTalk "wait"
}
wizqTalkSay Lydia $::lng::secretWayL3 "sound/vo/$::LNG/scenes/basement/secretWayL3.ogg" fastout
# Wait for Block 4
wizqWaitQueue 1
# Block 5
wizqQueue 1 {
wizqEntityAction Zak sitLoseHope
}
wizqTalkSay Zak $::lng::secretWayZ3 "sound/vo/$::LNG/scenes/basement/secretWayZ3.ogg" fastin
# Wait for Block 5
wizqWaitQueue 1
# Block 6
wizqQueue 1 {
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
}
wizqTalkSay Lydia $::lng::secretWayL4 "sound/vo/$::LNG/scenes/basement/secretWayL4.ogg"
wizqTalkClose
# Wait for Block 6
wizqWaitQueue 1
chainEvent {
unfreezePlayer
wizEnableMouse
wizEntityResumeFollow Zak
ozSet "secretPassage" "complete"
}
}
## ===================================================== ##
## Zak's whining of ghosts One ##
## ===================================================== ##
## trigger is the first time Zak whine about ghosts
event "ghostWhiningOne" {
# Zak and Lydia's conversation
checkConversation "ghostWhiningOne" {
wizqTalkOpen
wizqTalkSay Zak $::lng::ghostWhiningOneZ1 "sound/vo/$::LNG/scenes/basement/ghostWhiningOneZ1.ogg" fastout
wizqTalkSay Lydia $::lng::ghostWhiningOneL1 "sound/vo/$::LNG/scenes/basement/ghostWhiningOneL1.ogg" fastin
wizqTalkClose
}
ozSet "whining" "first"
}
## ===================================================== ##
## Zak's whining of ghosts Two ##
## ===================================================== ##
## trigger is the second time Zak whine about ghosts
event "ghostWhiningTwo" {
# Zak and Lydia's conversation
checkConversation "ghostWhiningTwo" {
wizqTalkOpen
wizqTalkSay Zak $::lng::ghostWhiningTwoZ1 "sound/vo/$::LNG/scenes/basement/ghostWhiningTwoZ1.ogg"
wizqTalkSay Lydia $::lng::ghostWhiningTwoL1 "sound/vo/$::LNG/scenes/basement/ghostWhiningTwoL1.ogg" fastout
wizqTalkSay Zak $::lng::ghostWhiningTwoZ2 "sound/vo/$::LNG/scenes/basement/ghostWhiningTwoZ2.ogg" fastin
wizqTalkClose
}
ozSet "whining" "second"
}
## ===================================================== ##
## Zak's whining of ghosts Three ##
## ===================================================== ##
## trigger is the third time Zak whine about ghosts
event "ghostWhiningThree" {
# Zak and Lydia's conversation
checkConversation "ghostWhiningThree" {
wizqTalkOpen
wizqTalkSay Zak $::lng::ghostWhiningThreeZ1 "sound/vo/$::LNG/scenes/basement/ghostWhiningThreeZ1.ogg"
wizqTalkSay Lydia $::lng::ghostWhiningThreeL1 "sound/vo/$::LNG/scenes/basement/ghostWhiningThreeL1.ogg"
wizqTalkSay Zak $::lng::ghostWhiningThreeZ2 "sound/vo/$::LNG/scenes/basement/ghostWhiningThreeZ2.ogg"
wizqTalkClose
}
ozSet "whining" "third"
}
## ===================================================== ##
## Zak's whining of ghosts Four ##
## ===================================================== ##
## trigger is the fourth time Zak whine about ghosts
event "ghostWhiningFour" {
# Zak and Lydia's conversation
checkConversation "ghostWhiningFour" {
wizqTalkOpen
wizqTalkSay Zak $::lng::ghostWhiningFourZ1 "sound/vo/$::LNG/scenes/basement/ghostWhiningFourZ1.ogg"
wizqTalkSay Zak $::lng::ghostWhiningFourZ2 "sound/vo/$::LNG/scenes/basement/ghostWhiningFourZ2.ogg"
wizqTalkSay Lydia $::lng::ghostWhiningFourL1 "sound/vo/$::LNG/scenes/basement/ghostWhiningFourL1.ogg"
wizqTalkClose
}
ozSet "whining" "fourth"
}
## ===================================================== ##
## Zak's whining of ghosts Five ##
## ===================================================== ##
## trigger is the fifth time Zak whine about ghosts
event "ghostWhiningFive" {
# Zak and Lydia's conversation
checkConversation "ghostWhiningFive" {
wizqTalkOpen
wizqTalkSay Zak $::lng::ghostWhiningFiveZ1 "sound/vo/$::LNG/scenes/basement/ghostWhiningFiveZ1.ogg" fastout
wizqTalkSay Lydia $::lng::ghostWhiningFiveL1 "sound/vo/$::LNG/scenes/basement/ghostWhiningFiveL1.ogg" fastin
wizqTalkSay Lydia $::lng::ghostWhiningFiveL2 "sound/vo/$::LNG/scenes/basement/ghostWhiningFiveL2.ogg"
wizqTalkSay Zak $::lng::ghostWhiningFiveZ2 "sound/vo/$::LNG/scenes/basement/ghostWhiningFiveZ2.ogg" fastout
wizqTalkSay Lydia $::lng::ghostWhiningFiveL3 "sound/vo/$::LNG/scenes/basement/ghostWhiningFiveL3.ogg" fastin
wizqTalkSay Zak $::lng::ghostWhiningFiveZ3 "sound/vo/$::LNG/scenes/basement/ghostWhiningFiveZ3.ogg"
wizqTalkClose
}
ozSet "whining" "fifth"
ozSet "basementFear" "complete"
}
## ===================================================== ##
## transWineCavePuzzle ##
## ===================================================== ##
event "brickPuzzleBehavior" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityMove Zak "408.1 21.2 519.5" "wait"
wizqEntityOrientation Zak 140
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 95 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
if { [getVar "wineCavePuzzleSolved"] == "" } {
if { [getVar "wineCavePuzzleDiscussion"] == "" } {
chainEvent {
freezePlayer
wizDisableMouse
}
# Block 1
wizqQueue 1 {
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
chainEvent { delay 500 }
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::transWineCavePuzzleL1 "sound/vo/$::LNG/scenes/basement/transWineCavePuzzleL1.ogg"
# Wait for Block 1
wizqWaitQueue 1
wizqWaitQueue 2
# Block 2
wizqQueue 1 {
chainEvent { delay 500 }
wizqEntityAction Zak standNo "wait"
}
# Block 2-B
wizqQueue 2 {
chainEvent { delay 2000 }
wizqEntityAction Lydia standHandOnChin "wait"
}
wizqTalkSay Zak $::lng::transWineCavePuzzleZ1 "sound/vo/$::LNG/scenes/basement/transWineCavePuzzleZ1.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
chainEvent { delay 1500 }
wizqEntityAction Zak standYes "wait"
}
wizqTalkSay Zak $::lng::transWineCavePuzzleZ2 "sound/vo/$::LNG/scenes/basement/transWineCavePuzzleZ2.ogg"
wizqTalkClose
# Wait for Block 3 & 2-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 3
wizqQueue 1 {
chainEvent { delay 500 }
wizqEntityAction Lydia standTalkHandHip "wait"
wizqEntityAction Lydia standYes "wait"
chainEvent { delay 1000 }
wizqEntityOrientation Lydia 95 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 500 }
callEvent "wCPuzzleZoomIn"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::transWineCavePuzzleL2 "sound/vo/$::LNG/scenes/basement/transWineCavePuzzleL2.ogg"
wizqTalkSay Lydia $::lng::transWineCavePuzzleL3 "sound/vo/$::LNG/scenes/basement/transWineCavePuzzleL3.ogg"
wizqTalkClose
# Wait for Block 3
wizqWaitQueue 1
ozSet "wineCavePuzzleDiscussion" "discussed"
chainEvent {
wizEnableMouse
}
} else {
callEvent "wCPuzzleZoomIn"
}
}
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
## ===================================================== ##
## transWineCavePuzzle completed ##
## ===================================================== ##
event "wineCavePuzzleSolved" {
ozSet "wineCavePuzzle" "complete"
ozSet "wineCave.transEntrance" ""
#Will unfreeze and everything at the end of this event
chainEvent {
wizEntityShow Lydia
wizEntityShow Zak
freezePlayer
wizDisableMouse
wizEntityStopFollow Zak
setCamera "wineCavePuzzleComplete"
wizhCameraChange
hRemoveBack
}
chainEvent {
wineCavePuzzleCloseUp::new complete
ozqSound::New3DFX s "sound/sfx/charmingFall.ogg"
ozqSound::Position $s "415 21 530"
ozqSound::ReferenceDistance $s 30
ozqSound::Rolloff $s 0.6
ozqSound::Play $s
unset s
}
chainEvent { delay 2000 }
ozqSound::NewFX "sound/sfx/vaseBreaking.ogg"
oz'track::play $::music_track "sound/music/nathanielsOwl.ogg"
# Block 1
wizqQueue 1 {
wizqEntityRun Zak "412 21.2 543" "wait"
wizqEntitySetCycle Zak lieCycleFear
}
# Block 1-B
wizqQueue 2 {
wizqEntityAction Lydia standSurprise "wait"
wizqEntityOrientation Lydia 270
}
wizqTalkOpen
wizqTalkSay Zak $::lng::wineCavePuzzleSolvedZ1 "sound/vo/$::LNG/scenes/basement/wineCavePuzzleSolvedZ1.ogg" fastout
wizqTalkSay Lydia $::lng::wineCavePuzzleSolvedL1 "sound/vo/$::LNG/scenes/basement/wineCavePuzzleSolvedL1.ogg" fastin
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 2
wizqQueue 1 {
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
wizqEntityAction Lydia standDisbelief "wait"
}
wizqTalkSay Lydia $::lng::wineCavePuzzleSolvedL2 "sound/vo/$::LNG/scenes/basement/wineCavePuzzleSolvedL2.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
wizqEntityAction Lydia standArmCross "wait"
}
wizqTalkSay Zak $::lng::wineCavePuzzleSolvedZ2 "sound/vo/$::LNG/scenes/basement/wineCavePuzzleSolvedZ2.ogg"
# Wait for Block 3
wizqWaitQueue 1
# Block 4
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip "wait"
}
wizqTalkSay Lydia $::lng::wineCavePuzzleSolvedL3 "sound/vo/$::LNG/scenes/basement/wineCavePuzzleSolvedL3.ogg"
wizqTalkClose
# Wait for Block 4
wizqWaitQueue 1
wizqEntitySetCycle Zak standCycleNormal
chainEvent { delay 500 }
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wq'widget::waitfor $wineCavePuzzleCloseUp::complete -animate
wq'widget::delete& wineCavePuzzleCloseUp::complete
chainEvent {
unfreezePlayer
wizEnableMouse
wizEntityResumeFollow Zak
}
}
event "toCrescentCoastWaterway" {
setCamera "underRiverEntrance"
wizhCameraChange
}
################################################################################
## ========================================================================== ##
## OPTIONNAL DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO ADD/ CORRECTIONS NEEDED ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO CHECK ##
## ========================================================================== ##
################################################################################
# This is a fix for Zak teleport bug
event "transStageEntrance" {
wizqEntityStopFollow Zak
wizqEntityMove Lydia "298.3 35.6 511.9"
wizqEntityMove Zak "309.9 35.6 518.7" "wait"
wizqEntityResumeFollow Zak
}