home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar 2006 April
/
Gamestar_83_2006-04_dvd.iso
/
Dema
/
keepsake_demo_en.exe
/
res
/
scripts
/
gardenWatch.tcl
< prev
next >
Wrap
Text File
|
2005-12-06
|
22KB
|
690 lines
################################################################################
# ##
# file gardenWatch.tcl ##
# brief Events for the Garden Watch. ##
# ##
################################################################################
## ===================================================== ##
## Loading script from source ##
## ===================================================== ##
source "[AUTO]/gardenWatch.mvwrap.tcl"
source "[PUZZLES]/gardenWatch.camera.tcl"
source "[PUZZLES]/gardenWatch.puzzle.tcl"
## ===================================================== ##
## Initialization ##
## ===================================================== ##
event "init" {
ozSet "gardenWatchRoom" "visited"
setAudioEnv "room"
SetAmbient 3d sfx/dragonFountainLoop "227 71 157" 30 0 0.6
SetAmbient 3d sfx/gardenPond "245 71 270" 30 1 0.6
}
################################################################################
## ========================================================================== ##
## DOOR BLOCKING & PUZZLE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Minotaur Maze Dispatcher ##
## ===================================================== ##
event "useMinotaurMaze" {
eventState [wizEventStart "useMinotaurMaze"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityMove Zak "290.6 86.1 270.2" "wait"
wizqEntityOrientation Zak 300
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia "281.208 86 262" "gardenWatch.minotaurMazeBehavior" 2
wizqEventEnd "useMinotaurMaze"
}
## ===================================================== ##
## Minotaur Maze Dispatcher ##
## ===================================================== ##
event "minotaurMazeBehavior" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityMove Zak "290.6 86.1 270.2" "wait"
wizqEntityOrientation Zak 300
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 280 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
chainCallEvent "minotaurMazePuzzle"
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
## ===================================================== ##
## Minotaur Maze Dispatcher ##
## ===================================================== ##
event "minotaurMazePuzzle" {
if { [getVar "puzzleZak"] == "" } {
callEvent "mMazeAlone"
} elseif { [getVar "puzzleZak"] == "complete" && [getVar "mMazePlay"] == "" } {
callEvent "mMazePlay"
} elseif { [getVar "puzzleZak"] == "complete" && [getVar "mMazePlay"] == "ok" } {
callEvent "minotaurMazeZoomIn"
pzlmm::qInit
}
wizqEventEnd "useMinotaurMaze"
}
## ===================================================== ##
## Minotaur Maze Alone ##
## ===================================================== ##
event "mMazeAlone" {
if { [getVar "mMazeAloneFirst"] == "" } {
callEvent "mMazeAloneFirst"
} else {
callEvent "mMazeNoTime"
}
}
################################################################################
## ========================================================================== ##
## MOVEMENT ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## ANIMATION & SPECIAL CAMERA SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Minotaur Maze Zoom In ##
## ===================================================== ##
event "minotaurMazeZoomIn" {
oz'track::play $::music_track "sound/music/mustavio.ogg" -repeat 1
wizqZoomIn "minotaurMazeCloseUp" "gardenWatch.minotaurMazeZoomOut"
wizhCameraChange
}
## ===================================================== ##
## Minotaur Maze Zoom Out ##
## ===================================================== ##
event "minotaurMazeZoomOut" {
oz'track::stop $::music_track
pzlmm::qQuit
wizqZoomOut "minotaurMaze"
chainEvent { hRemoveBack }
}
## ===================================================== ##
## alley Camera ##
## ===================================================== ##
event "alley" {
wizEntityResumeFollow Zak
setCamera "alley"
wizhCameraChange
}
## ===================================================== ##
## garden Wtach Entrance Camera ##
## ===================================================== ##
event "gardenWatchEntrance" {
wizEntityResumeFollow Zak
setCamera "gardenWatchEntrance"
wizhCameraChange
}
################################################################################
## ========================================================================== ##
## NPC DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## FORCED DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Minotaur Maze Alone first time ##
## ===================================================== ##
event "mMazeAloneFirst" {
checkConversation "mMazeAloneFirst" {
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
}
# Block 1
wizqQueue 1 {
chainEvent { delay 1500 }
wizqEntityAction Lydia standHandOnChin "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::mMazeAloneFirstL1 "sound/vo/$::LNG/scenes/gardenWatch/mMazeAloneFirstL1.ogg"
wizqTalkSay Lydia $::lng::mMazeAloneFirstL2 "sound/vo/$::LNG/scenes/gardenWatch/mMazeAloneFirstL2.ogg"
wizqTalkSay Lydia $::lng::mMazeAloneFirstL3 "sound/vo/$::LNG/scenes/gardenWatch/mMazeAloneFirstL3.ogg"
wizqTalkClose
# Wait for Block 1
wizqWaitQueue 1
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
}
}
}
## ===================================================== ##
## Minotaur Maze Alone No time ##
## ===================================================== ##
event "mMazeNoTime" {
wizqTalkOpen
wizqTalkSay Lydia $::lng::mMazeNoTimeL1 "sound/vo/$::LNG/scenes/gardenWatch/mMazeNoTimeL1.ogg"
wizqTalkClose
}
## ===================================================== ##
## Minotaur Maze Play ##
## ===================================================== ##
event "mMazePlay" {
checkConversation "mMazePlay" {
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
}
# Block 1
wizqQueue 1 {
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
chainEvent { delay 1000 }
wizqEntityAction Zak standYes "wait"
}
# Block 1-B
wizqQueue 2 {
chainEvent { delay 1000 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
}
wizqTalkOpen
wizqTalkSay Zak $::lng::mMazePlayZ1 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ1.ogg"
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
if { [ozGet "wantToBeCustomer"] == "discussed" || [ozGet "whatAreFigurines"] == "discussed" } {
# Block 2
wizqQueue 1 {
wizqEntityAction Lydia standHandOnChin "wait"
}
wizqTalkSay Lydia $::lng::mMazePlayL3 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayL3.ogg"
if { [ozGet "mustavioZak"] == "" } {
# Block 2-B
wizqQueue 2 {
wizqEntityAction Zak standConfusedLeft "wait"
}
wizqTalkSay Zak $::lng::mMazePlayZ8 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ8.ogg"
}
# Wait for Block 2 & 2-B
wizqWaitQueue 1
wizqWaitQueue 2
} else {
# Block 2
wizqQueue 1 {
wizqEntityAction Lydia standWhat "wait"
}
wizqTalkSay Lydia $::lng::mMazePlayL1 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayL1.ogg"
# Wait for Block 2
wizqWaitQueue 1
}
# Block 3
wizqQueue 1 {
wizqEntityAction Zak standRelax "wait"
chainEvent { delay 1500 }
wizqEntityAction Zak standYes "wait"
}
wizqTalkSay Zak $::lng::mMazePlayZ2 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ2.ogg"
wizqTalkSay Zak $::lng::mMazePlayZ3 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ3.ogg"
# Wait for Block 3
wizqWaitQueue 1
# Block 4
wizqQueue 1 {
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkSay Lydia $::lng::mMazePlayL2 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayL2.ogg"
# Block 4-B
wizqQueue 2 {
wizqEntityAction Zak standYes "wait"
}
wizqTalkSay Zak $::lng::mMazePlayZ4 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ4.ogg"
# Wait for Block 4 & 4-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 5
wizqQueue 1 {
chainEvent { delay 1000 }
wizqEntityAction Lydia standHandOnChin "wait"
chainEvent { delay 2000 }
wizqEntityOrientation Lydia 280 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 1000 }
chainEvent {
oz'track::play $::music_track "sound/music/mustavio.ogg" -repeat 1
}
wizqZoomIn "minotaurMazeCloseUp" "gardenWatch.minotaurMazeZoomOut"
wizqDisableMouse
}
wizqTalkSay Zak $::lng::mMazePlayZ5 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ5.ogg"
wizqTalkSay Zak $::lng::mMazePlayZ6 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ6.ogg"
# Wait for Block 5
wizqWaitQueue 1
if { [getVar "itemNoteBook"] == "pickedUp" && [getVar "itemCirclet"] == "pickedUp" } {
wizqTalkSay Zak $::lng::mMazePlayZ7 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayZ7.ogg"
}
if { [ozGet "minotaurMazeFigurines"] == "pickedUp" } {
wizqTalkSay Lydia $::lng::mMazePlayL4 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayL4.ogg"
} else {
wizqTalkSay Lydia $::lng::mMazePlayL5 "sound/vo/$::LNG/scenes/gardenWatch/mMazePlayL5.ogg"
}
wizqTalkClose
pzlmm::qInit
chainEvent {
wizEntityResumeFollow Zak
wizEnableFloorevent
wizEnableMouse
}
}
}
## ===================================================== ##
## Minotaur Maze Win ##
## ===================================================== ##
event "mMazeWin" {
checkConversation "mMazeWin" {
ozSet "puzzleMMaze" "complete"
ozSet "itemNigilisBean" "pickedUp"
ozSet "gardenWatch.useMinotaurMaze" "false"
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
wizEntityStopFollow Zak
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::mMazeWinL10 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL10.ogg"
wizqTalkSay Zak $::lng::mMazeWinZ1 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinZ1.ogg"
if { [ozGet "itemCirclet"] == "pickedUp" && [ozGet "itemPagesNigilis"] == "pickedUp" } {
# Block 1
wizqQueue 1 {
chainEvent { delay 2000 }
ozqSound::NewFX "sound/characters/Lydia/pickUp.ogg"
chainEvent { setCrossfadeCamera "minotaurMazeCloseUpTaken" }
}
wizqTalkSay Lydia $::lng::mMazeWinL1 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL1.ogg"
# Wait for Block 1
wizqWaitQueue 1
# Block 2
wizqQueue 1 {
chainEvent { delay 1000 }
chainEvent { standardFadeout }
chainEvent {
setCamera "minotaurMaze"
wizhCameraChange
wizEntityShow Lydia
wizEntityShow Zak
hRemoveBack
standardFadein
delay 0
oz'track::stop $::music_track
}
chainEvent {
wizEntitySetPosition Lydia "280.2 86.1 262.2"
wizEntitySetPosition Zak "290.6 86.1 270.2"
}
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntitySetCycle Zak sitCycleNormal
wizqEntityOrientation Lydia 280 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 1000 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
wizqEntityAction Zak sitYes "wait"
}
wizqTalkSay Zak $::lng::mMazeWinZ2 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinZ2.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL2 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL2.ogg"
# Block 3-B
wizqQueue 2 {
wizqEntitySetCycle Zak standCycleNormal
}
wizqTalkSay Zak $::lng::mMazeWinZ3 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinZ3.ogg"
# Wait for Block 3 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 4
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL3 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL3.ogg"
# Wait for Block 4
wizqWaitQueue 1
# Block 5
wizqQueue 1 {
setCamera "gardenWatchEntrance"
wizhCameraChange
}
# Block 5-B
wizqQueue 2 {
chainEvent { delay 1000 }
wizqEntityAction Lydia standArmCross "wait"
}
# Block 5-C
wizqQueue 3 {
chainEvent { delay 500 }
wizqEntityAction Zak standYes "wait"
}
wizqTalkSay Zak $::lng::mMazeWinZ4 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinZ4.ogg"
# Wait for Block 5 & 5-B & 5-C
wizqWaitQueue 1
wizqWaitQueue 2
wizqWaitQueue 3
# Block 6
wizqQueue 1 {
wizqEntitySetOrientationTarget Lydia Zak
}
# Block 6-B
wizqQueue 2 {
wizqEntityWalk Zak "292.2 86.1 295" "wait"
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
}
wizqTalkSay Zak $::lng::mMazeWinZ5 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinZ5.ogg"
# Wait for Block 6 & 6-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntitySetOrientationTarget Lydia None
# Block 7
wizqQueue 1 {
chainEvent {
setCamera "minotaurMaze"
wizhCameraChange
}
wizqEntityAction Lydia standHandOnChin "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL4 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL4.ogg"
wizqTalkClose
# Wait for Block 7
wizqWaitQueue 1
} elseif { [ozGet "itemCirclet"] == "" && [ozGet "itemPagesNigilis"] == "pickedUp" } {
# Block 2
wizqQueue 1 {
chainEvent { delay 1000 }
chainEvent { standardFadeout }
chainEvent {
setCamera "minotaurMaze"
wizhCameraChange
wizEntityShow Lydia
wizEntityShow Zak
hRemoveBack
standardFadein
delay 0
oz'track::stop $::music_track
}
chainEvent {
wizEntitySetPosition Lydia "280.2 86.1 262.2"
wizEntitySetPosition Zak "290.6 86.1 270.2"
}
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntitySetCycle Zak sitCycleNormal
wizqEntityOrientation Lydia 280 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 1000 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
chainEvent { delay 1000 }
wizqEntityAction Lydia standTalkHandHip "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL5 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL5.ogg"
wizqTalkSay Lydia $::lng::mMazeWinL7 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL7.ogg"
wizqTalkSay Zak $::lng::mMazeWinZ6 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinZ6.ogg" fastout
# Wait for Block 2
wizqWaitQueue 1
# Block 2
wizqQueue 1 {
wizqEntityAction Lydia standHappy "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL8 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL8.ogg" fastin
wizqTalkClose
# Wait for Block 2
wizqWaitQueue 1
} elseif { [ozGet "itemPagesNigilis"] == "" } {
# Block 2
wizqQueue 1 {
chainEvent { delay 1000 }
chainEvent { standardFadeout }
chainEvent {
setCamera "minotaurMaze"
wizhCameraChange
wizEntityShow Lydia
wizEntityShow Zak
hRemoveBack
standardFadein
delay 0
oz'track::stop $::music_track
}
chainEvent {
wizEntitySetPosition Lydia "280.2 86.1 262.2"
wizEntitySetPosition Zak "290.6 86.1 270.2"
}
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntitySetCycle Zak sitCycleNormal
wizqEntityOrientation Lydia 280 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 1000 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
chainEvent { delay 1000 }
wizqEntityAction Lydia standTalkHandHip "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL5 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL5.ogg"
wizqTalkSay Lydia $::lng::mMazeWinL6 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL6.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
wizqEntityAction Lydia standLoseHope "wait"
}
wizqTalkSay Lydia $::lng::mMazeWinL9 "sound/vo/$::LNG/scenes/gardenWatch/mMazeWinL9.ogg"
wizqTalkClose
# Wait for Block 3
wizqWaitQueue 1
}
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
wizEntityResumeFollow Zak
}
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc nigilisSeed
}
}
}
################################################################################
## ========================================================================== ##
## OPTIONNAL DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO ADD/ CORRECTIONS NEEDED ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO CHECK ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW