home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar 2006 April
/
Gamestar_83_2006-04_dvd.iso
/
Dema
/
keepsake_demo_en.exe
/
res
/
scripts
/
enchantedHallway.tcl
< prev
next >
Wrap
Text File
|
2005-12-06
|
25KB
|
805 lines
################################################################################
# ##
# file enchantedHallway.tcl ##
# brief Events for the Enchanted Hallway. ##
# ##
################################################################################
## ===================================================== ##
## Loading script from source ##
## ===================================================== ##
source "[AUTO]/enchantedHallway.mvwrap.tcl"
source "[PUZZLES]/enchantedHallway.camera.tcl"
## ===================================================== ##
## Initialization ##
## ===================================================== ##
event "init" {
setAudioEnv "room"
if { [getVar "itemNoteBook"] == "pickedUp" && [getVar "bookCornerBehavior"] == "" && [getVar "puzzleZak"] == "complete" && [getVar "myasBook"] == "" } {
oz'track::stop $::music_track
} else {
oz'track::play $::music_track "sound/music/academy.ogg"
}
SetAmbient 2d ambiance/forest "0 0 0" 0 0
ozSet "enchantedHallwayRoom" "visited"
ozSet "enchantedHallway.toEnchantedCrosswayClick" "false"
ozSet "enchantedHallway.toEnchantedCrossway" "false"
}
event "toEnchantedCrossway" {
}
################################################################################
## ========================================================================== ##
## DOOR BLOCKING & PUZZLE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Notebook Behavior ##
## ===================================================== ##
## Trigger is when the player take the Notebook
event "useNoteBook" {
eventState [wizEventStart "useNoteBook"]
if { [getVar "puzzleZak"] == "" && [getVar "lostBook"] == "" } {
callEvent "lostBook"
} elseif { [getVar "puzzleZak"] == "complete" && [getVar "myasBook"] == "" } {
callEvent "myasBook"
}
wizqEventEnd "useNoteBook"
}
################################################################################
## ========================================================================== ##
## MOVEMENT ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## transCorridor ##
## ===================================================== ##
event "transCorridor" {
wizEntityMoveXRelative Lydia 0.47 0.89 "453 84.3 303.6" "453.5 84.3 277.6"
}
## ===================================================== ##
## transBookCorner ##
## ===================================================== ##
event "transBookCorner" {
wizEntityMoveXRelative Lydia 0.15 0.56 "386.2 86.4 263" "386.2 86.4 277"
}
## ===================================================== ##
## Notebook ##
## ===================================================== ##
event "useNotebook" {
eventState [wizEventStart "useNotebook"]
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
oz'event {wizEntityStopFollow Zak}
wizqEntityMove Zak "414.2 84.3 273" "wait"
wizqEntityOrientation Zak 220
oz'event {wizEntityResumeFollow Zak}
}
}
wizqEntityMove Lydia [wizMinPosition "406 84.3 283" 2] "enchantedHallway.noteBookBehavior" 2
wizqEventEnd "useNotebook"
}
################################################################################
## ========================================================================== ##
## ANIMATION & SPECIAL CAMERA SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## Notebook ##
## ===================================================== ##
## Trigger is when the player click on the Notebook
event "noteBookBehavior" {
if { [ozGet "puzzleZak"] == "complete" } {
# Block 1
wizqQueue 2 {
wizqEntityMove Zak "414.2 84.3 273" "wait"
wizqEntityOrientation Zak 220
}
oz'event {wizEntityStopFollow Zak}
}
oz'event {wizDisableMouse}
wizqEntityOrientation Lydia 180 "wait"
wizqEntitySetCycle Lydia standCycleNormal
# Wait for Block 1
wizqWaitQueue 2
oz'track::stop $::music_track
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntityChangeCycle Lydia crouchCycleNormal standToCrouch "wait"
wizqZoomIn "notebookCloseUp" "enchantedHallway.notebookZoomOut"
oz'event {wizEnableMouse}
oz'event {wizEntityResumeFollow Zak}
}
## ===================================================== ##
## Notebook Zoom Out ##
## ===================================================== ##
event "notebookZoomOut" {
chainEvent {
freezePlayer
wizDisableMouse
}
wizqEntitySetCycle Lydia crouchCycleNormal
if { [getVar "itemNoteBook"] == "pickedUp" } {
wizqZoomOut "bookCornerNotesTaken"
chainEvent { hRemoveBack }
wizqDisableMouse
chainEvent { delay 100 }
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
chainEvent {
unfreezePlayer
wizEnableMouse
}
} else {
wizqZoomOut "bookCorner"
chainEvent { hRemoveBack }
wizqDisableMouse
chainEvent { delay 100 }
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
chainEvent {
unfreezePlayer
wizEnableMouse
}
}
}
## ===================================================== ##
## Camera pickedUp ##
## ===================================================== ##
## trigger is when the player is near the NoteBook
event "bookCorner" {
if { [getVar "itemNoteBook"] == "" } {
setCamera "bookCorner"
wizhCameraChange
}
if { [getVar "itemNoteBook"] == "pickedUp" } {
if { [getVar "itemNoteBook"] == "pickedUp" && [getVar "bookCornerBehavior"] == "" && [getVar "puzzleZak"] == "complete" && [getVar "myasBook"] == "" } {
setCamera "bookCornerNotesTaken"
wizhCameraChange
freezePlayer
chainEvent { delay 500 }
callEvent "bookCornerBehavior"
} elseif { [getVar "bookCornerBehavior"] == "ok" || [getVar "myasBook"] == "ok" || [getVar "lostBook"] == "ok" } {
setCamera "bookCornerNotesTaken"
wizhCameraChange
} else {
setCamera "bookCornerNotesTaken"
wizhCameraChange
}
}
}
## ===================================================== ##
## corridor Camera ##
## ===================================================== ##
event "corridor" {
wizEntityResumeFollow Zak
setCamera "corridor"
wizhCameraChange
}
################################################################################
## ========================================================================== ##
## NPC DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## FORCED DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
## ===================================================== ##
## The Lost Notebook ##
## ===================================================== ##
## Trigger is when the player get the Notebook Alone.
event "lostBook" {
checkConversation "lostBook" {
chainEvent {
freezePlayer
wizDisableFloorevent
wizDisableMouse
}
ozSet "itemNoteBook" "pickedUp"
ozSet "magicalDocuments" "pickedUp"
# Block 1
wizqQueue 1 {
chainEvent { delay 3000 }
ozqSound::NewFX "sound/sfx/zakBookPickup.ogg"
chainEvent { setCrossfadeCamera "notebookCloseUpNotesTaken" }
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::myasBookL1 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL1.ogg"
wizqTalkSay Lydia $::lng::myasBookL2 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL2.ogg"
# Wait for Block 1
wizqWaitQueue 1
# Block 2
wizqQueue 1 {
chainEvent { standardFadeout }
chainEvent {
setCamera "bookCornerNotesTaken"
wizhCameraChange
SetModelLydia
wizEntityShow Lydia
hRemoveBack
}
wizqEntitySetCycle Lydia crouchCycleNormal
chainEvent {
standardFadein
}
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
chainEvent { delay 100 }
chainEvent { wizEntityLookAt Lydia "414.1 84.3 270.5" }
chainEvent { delay 500 }
wizqEntityAction Lydia standWhat "wait"
}
wizqTalkSay Lydia $::lng::myasBookL3 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL3.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3
wizqQueue 1 {
chainEvent { delay 1000 }
wizqEntityWalk Lydia "411.7 84.3 274.4" "wait"
wizqEntityAction Lydia standHandOnChin "wait"
}
wizqTalkSay Lydia $::lng::lostBookL1 "sound/vo/$::LNG/scenes/enchantedHallway/lostBookL1.ogg"
# Wait for Block 3
wizqWaitQueue 1
# Block 4
wizqQueue 1 {
wizqEntityOrientation Lydia 80 "wait"
wizqEntitySetCycle Lydia standCycleNormal
chainEvent { delay 500 }
wizqEntityAction Lydia standYes "wait"
chainEvent { delay 500 }
wizqEntityAction Lydia standDisbelief "wait"
}
wizqTalkSay Lydia $::lng::lostBookL2 "sound/vo/$::LNG/scenes/enchantedHallway/lostBookL2.ogg"
wizqTalkSay Lydia $::lng::lostBookL3 "sound/vo/$::LNG/scenes/enchantedHallway/lostBookL3.ogg"
wizqTalkClose
# Wait for Block 4
wizqWaitQueue 1
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
wizEntityResumeFollow Zak
}
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc noteBook
}
}
}
## ===================================================== ##
## Mya's Notebook ##
## ===================================================== ##
## Trigger is when the player get the Notebook with Zak.
event "myasBook" {
checkConversation "myasBook" {
chainEvent {
wizEntityStopFollow Zak
freezePlayer
wizDisableFloorevent
wizDisableMouse
}
ozSet "itemNoteBook" "pickedUp"
ozSet "magicalDocuments" "pickedUp"
# Block 1
wizqQueue 1 {
chainEvent { oz'track::play $::music_track "sound/music/zakBook.ogg" }
chainEvent { delay 3000 }
ozqSound::NewFX "sound/sfx/zakBookPickup.ogg"
chainEvent { setCrossfadeCamera "notebookCloseUpNotesTaken" }
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::myasBookL1 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL1.ogg"
wizqTalkSay Lydia $::lng::myasBookL2 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL2.ogg" fastout
# Wait for Block 1
wizqWaitQueue 1
# Block 2
wizqQueue 1 {
chainEvent { standardFadeout }
wizqEntitySetCycle Zak sitCycleNormal
chainEvent {
setCamera "bookCornerNotesTaken"
wizhCameraChange
wizEntityShow Lydia
wizEntityShow Zak
SetModelLydia
hRemoveBack
}
wizqEntitySetCycle Lydia crouchCycleNormal
chainEvent {
standardFadein
}
wizqEntityChangeCycle Lydia standCycleNormal crouchToStand "wait"
chainEvent { delay 100 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
chainEvent { delay 2500 }
wizqEntityAction Lydia standHandOnChin
}
# Block 2-B
wizqQueue 2 {
chainEvent { wizEntitySetPosition Zak "413.1 84.3 274.7" }
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
chainEvent { delay 1500 }
wizqEntityAction Zak sitConfusedLeft "wait"
}
wizqTalkSay Zak $::lng::myasBookZ1 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ1.ogg" fastin
# Wait for Block 3-B
wizqWaitQueue 2
# Block 3-B
wizqQueue 2 {
chainEvent { delay 500 }
wizqEntityAction Zak sitYes "wait"
}
wizqTalkSay Zak $::lng::myasBookZ2 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ2.ogg"
# Wait for Block 2 and 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 3
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip "wait"
wizqEntityAction Lydia standWhat
}
# Block 3-B
wizqQueue 2 {
chainEvent { delay 1500 }
wizqEntityAction Zak sitScratch "wait"
}
wizqTalkSay Lydia $::lng::myasBookL3 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL3.ogg"
# Wait for Block 3 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 4
wizqQueue 1 {
chainEvent { delay 1000 }
wizqEntitySetCycle Zak standCycleNormal
chainEvent { delay 2000 }
wizqEntityWalk Zak "404 84.3 265" "wait"
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
wizqEntityAction Zak standRelax "wait"
}
# Block 4-B
wizqQueue 2 {
wizqEntitySetOrientationTarget Lydia Zak
}
wizqTalkSay Zak $::lng::myasBookZ3 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ3.ogg"
wizqTalkSay Zak $::lng::myasBookZ4 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ4.ogg"
# Wait for Block 4 & 4-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntitySetOrientationTarget Lydia None
# Block 5
wizqQueue 1 {
wizqEntityAction Lydia standDisbelief "wait"
wizqEntityAction Lydia standWhat "wait"
wizqEntityAction Lydia standTalkTwoHands
}
wizqTalkSay Lydia $::lng::myasBookL4 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL4.ogg"
wizqTalkSay Lydia $::lng::myasBookL5 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL5.ogg"
# Wait for Block 5
wizqWaitQueue 1
# Block 6
wizqQueue 1 {
wizqEntityWalk Zak "394.3 84.5 263" "wait"
wizqEntitySetCycle Zak sitCycleNormal
chainEvent { delay 1000 }
wizqEntityAction Zak sitNo "wait"
}
wizqTalkSay Zak $::lng::myasBookZ5 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ5.ogg"
# Wait for Block 6
wizqWaitQueue 1
if { [getVar "itemCirclet"] == "pickedUp" } {
# Block 7
wizqQueue 1 {
wizqEntityAction Lydia standHandOnChin "wait"
chainEvent { delay 500 }
chainEvent { wizEntityLookAt Lydia [wizEntityGetPosition Zak] }
chainEvent { delay 1000 }
wizqEntityAction Lydia standTalkTwoHands "wait"
}
wizqTalkSay Lydia $::lng::myasBookL7 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL7.ogg"
wizqTalkSay Lydia $::lng::myasBookL8 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL8.ogg"
if { [getVar "potionMaking"] == "needed" || [getVar "potionMaking"] == "initiated" } {
wizqTalkSay Lydia $::lng::myasBookL9 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL9.ogg"
wizqTalkClose
} else {
wizqTalkSay Lydia $::lng::myasBookL10 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL10.ogg"
wizqTalkClose
}
# Wait for Block 7
wizqWaitQueue 1
} else {
# Block 7
wizqQueue 1 {
chainEvent { delay 500 }
wizqEntityAction Lydia standDisbelief "wait"
}
wizqTalkSay Lydia $::lng::myasBookL6 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL6.ogg"
wizqTalkClose
# Wait for Block 7
wizqWaitQueue 1
if { [getVar "whatLanguage"] == "" } {
setEventPriority optionnalConversation.whatLanguageBehavior medium
ozSet "whatLanguage" "initiated"
}
if { [getVar "whatIsWritten"] == "" } {
setEventPriority optionnalConversation.whatIsWrittenBehavior medium
ozSet "whatIsWritten" "initiated"
}
}
if { [ozGet "nbPage"] == "first" || [ozGet "nbPage"] == "second" } {
# Block 8
wizqQueue 1 {
chainEvent { delay 1500 }
wizqEntityAction Lydia standYes "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::myasBookL11 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL11.ogg"
wizqTalkClose
} elseif { [ozGet "nbPage"] == "fullBook" } {
# Block 8
wizqQueue 1 {
chainEvent { delay 1500 }
wizqEntityAction Lydia standYes "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::myasBookL12 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL12.ogg"
wizqTalkClose
}
# Wait for Block 8
wizqWaitQueue 1
if { [getVar "itemCirclet"] == "pickedUp" && [getVar "potionPlease"] == "" } {
setEventPriority optionnalConversation.potionPlease medium
ozSet "potionPlease" "initiated"
}
chainEvent {
ozqSound::NewFX "sound/interface/itemPickUp.ogg"
iq'showdesc noteBook
}
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
}
}
}
## ===================================================== ##
## Tale of a Notebook ##
## ===================================================== ##
## Trigger is when the player pass here with Zak and got
## the Notebook before he free him.
event "bookCornerBehavior" {
# Zak and Lydia's conversation
checkConversation "bookCornerBehavior" {
chainEvent { oz'track::play $::music_track "sound/music/zakBook.ogg" }
chainEvent {
wizEntityStopFollow Zak
freezePlayer
wizDisableFloorevent
wizDisableMouse
}
# Block 1
wizqQueue 1 {
wizqEntityWalk Lydia "407 84.3 281" "wait"
chainEvent { wizEntityLookAt Lydia "414.1 84.3 270.5" }
wizqEntitySetCycle Lydia standCycleNormal
wizqEntityAction Lydia standTalkHandHip
}
# Block 1-B
wizqQueue 2 {
wizqEntityWalk Zak "414.1 84.3 270.5" "wait"
chainEvent { wizEntityLookAt Zak "407 84.3 281" }
chainEvent { delay 1000 }
wizqEntitySetCycle Zak sitCycleNormal
wizqEntityAction Zak standConfusedLeft "wait"
}
wizqTalkOpen
wizqTalkSay Lydia $::lng::bookCornerBehaviorL1 "sound/vo/$::LNG/scenes/enchantedHallway/bookCornerBehaviorL1.ogg"
# Wait for Block 1 & 1-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 2
wizqQueue 1 {
wizqEntityChangeCycle Zak sitCycleNormal standToSit "wait"
}
# Block 2-B
wizqQueue 2 {
chainEvent { delay 4000 }
wizqEntityAction Lydia standHandOnChin
}
wizqTalkSay Zak $::lng::myasBookZ1 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ1.ogg"
# Wait for Block 2
wizqWaitQueue 1
# Block 3-B
wizqQueue 1 {
chainEvent { delay 500 }
wizqEntityAction Zak sitYes "wait"
}
wizqTalkSay Zak $::lng::myasBookZ2 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ2.ogg"
# Wait for Block 2 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 3
wizqQueue 1 {
wizqEntityAction Lydia standTalkHandHip "wait"
wizqEntityAction Lydia standWhat
}
# Block 3-B
wizqQueue 2 {
chainEvent { delay 1500 }
wizqEntityAction Zak sitScratch "wait"
}
wizqTalkSay Lydia $::lng::myasBookL3 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL3.ogg"
# Wait for Block 3 & 3-B
wizqWaitQueue 1
wizqWaitQueue 2
# Block 4
wizqQueue 1 {
wizqEntitySetCycle Zak standCycleNormal
chainEvent { delay 2000 }
wizqEntityWalk Zak "404 84.3 265" "wait"
chainEvent { wizEntityLookAt Zak [wizEntityGetPosition Lydia] }
chainEvent { delay 10 }
wizqEntityAction Zak standRelax "wait"
}
# Block 4-B
wizqQueue 2 {
chainEvent { delay 2000 }
wizqEntitySetOrientationTarget Lydia Zak
}
wizqTalkSay Zak $::lng::myasBookZ3 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ3.ogg"
wizqTalkSay Zak $::lng::myasBookZ4 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ4.ogg"
# Wait for Block 4 & 4-B
wizqWaitQueue 1
wizqWaitQueue 2
wizqEntitySetOrientationTarget Lydia None
# Block 5
wizqQueue 1 {
wizqEntityAction Lydia standDisbelief "wait"
wizqEntityAction Lydia standWhat "wait"
wizqEntityAction Lydia standTalkTwoHands
}
wizqTalkSay Lydia $::lng::myasBookL4 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL4.ogg"
wizqTalkSay Lydia $::lng::myasBookL5 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL5.ogg"
# Wait for Block 5
wizqWaitQueue 1
# Block 6
wizqQueue 1 {
wizqEntityWalk Zak "394.3 84.5 263" "wait"
wizqEntitySetCycle Zak sitCycleNormal
chainEvent { delay 1000 }
wizqEntityAction Zak sitNo "wait"
}
wizqTalkSay Lydia $::lng::myasBookZ5 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookZ5.ogg"
# Wait for Block 6
wizqWaitQueue 1
# Block 7
wizqQueue 1 {
chainEvent { delay 500 }
wizqEntityAction Lydia standDisbelief "wait"
}
wizqTalkSay Lydia $::lng::myasBookL6 "sound/vo/$::LNG/scenes/enchantedHallway/myasBookL6.ogg"
wizqTalkClose
# Wait for Block 7
wizqWaitQueue 1
}
if { [getVar "whatLanguage"] == "" } {
setEventPriority optionnalConversation.whatLanguageBehavior medium
ozSet "whatLanguage" "initiated"
}
if { [getVar "whatIsWritten"] == "" } {
setEventPriority optionnalConversation.whatIsWrittenBehavior medium
ozSet "whatIsWritten" "initiated"
}
if { [getVar "itemNoteBook"] == "pickedUp" && [getVar "itemCirclet"] == "pickedUp" && [getVar "potionPlease"] == "" } {
setEventPriority optionnalConversation.potionPlease medium
ozSet "potionPlease" "initiated"
}
chainEvent {
unfreezePlayer
wizEnableFloorevent
wizEnableMouse
}
}
################################################################################
## ========================================================================== ##
## OPTIONNAL DIALOGUE SECTION ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO ADD/ CORRECTIONS NEEDED ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW
################################################################################
## ========================================================================== ##
## TO CHECK ##
## ========================================================================== ##
################################################################################
# NONE FOR NOW