home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CyberMycha 2006 April
/
SGP.iso
/
dema
/
Keepsake-Demo-en-li-v1.0.exe
/
res
/
puzzles
/
crescentCoastWaterway.puzzle.tcl
< prev
next >
Wrap
Text File
|
2005-10-29
|
13KB
|
306 lines
event "useWheelPuzzleLeverLeftA" {zq'drop left}
event "useWheelPuzzleWheelLeft" {zq'charge left}
event "useWheelPuzzleLeverLeftB" {zq'transfer left}
event "useWheelPuzzleLeverRightA" {zq'transfer right}
event "useWheelPuzzleWheelRight" {zq'charge right}
event "useWheelPuzzleLeverRightB" {zq'drop right}
event "useWheelPuzzleFinish" {zq'activate}
event "useWheelPuzzleReset" {zq'reset}
proc zq'charge {side} {
set power [ozGet pzlMillWheel,power$side]
if {$power == ""} {set power 0}
set maxpower 0
if {$side == "left"} {
set maxpower 3
} else {
set maxpower 5
}
if {$power == $maxpower} {
oz'event {
puzzleMillWeightCloseUp::new ${side}WheelLevertFailTo$power
PlayMovieSound puzzleMillWeightCloseUp ${side}WeightFailTo$power puzzles/puzzleMillWheel/wheelStop
wq'widget::delete& puzzleMillWeightCloseUp::${side}WheelLevertFailTo$power
}
return
}
if {$power > 0} {wq'widget::delete& puzzleMillWeightCloseUp::${side}WeightUpTo${power}St}
if {$power > 0} {wq'widget::delete& puzzleMillWeightCloseUp::${side}WheelLevertUpTo${power}St}
while {$power < $maxpower} {
incr power
oz'event {
puzzleMillWeightCloseUp::new ${side}WheelLevertUpTo${power}
PlayMovieSound puzzleMillWeightCloseUp ${side}WeightUpTo${power} puzzles/puzzleMillWheel/wheelSpinUp
wq'widget::delete& puzzleMillWeightCloseUp::${side}WheelLevertUpTo${power}
}
}
if {$power > 0} {puzzleMillWeightCloseUp::newSt ${side}WeightUpTo${power}St}
if {$power > 0} {puzzleMillWeightCloseUp::newSt ${side}WheelLevertUpTo${power}St}
ozSet pzlMillWheel,power$side $power
zq'logic
}
proc zq'drop {side} {
set power [ozGet pzlMillWheel,power$side]
if {$power == ""} {set power 0}
set maxpower 0
set result ""
if {$power != $maxpower} {
set result "Success"
} else {
set result "Fail"
}
PlayMovieSound puzzleMillWeightCloseUp ${side}Lever1${result} puzzles/puzzleMillWheel/lever${result}
if {$power > 0} {wq'widget::delete& puzzleMillWeightCloseUp::${side}WeightUpTo${power}St}
if {$power > 0} {wq'widget::delete& puzzleMillWeightCloseUp::${side}WheelLevertUpTo${power}St}
while {$power > $maxpower} {
oz'event {
puzzleMillWeightCloseUp::new ${side}WheelLevertDownTo${power}
PlayMovieSound puzzleMillWeightCloseUp ${side}WeightDownTo${power} puzzles/puzzleMillWheel/wheelSpinDown
wq'widget::delete& puzzleMillWeightCloseUp::${side}WheelLevertDownTo${power}
}
incr power -1
}
if {$power > 0} {puzzleMillWeightCloseUp::newSt ${side}WeightUpTo${power}St}
if {$power > 0} {puzzleMillWeightCloseUp::newSt ${side}WheelLevertUpTo${power}St}
ozSet pzlMillWheel,power$side $power
zq'logic
}
proc zq'transfer {side} {
set leftpower [ozGet pzlMillWheel,powerleft]
set rightpower [ozGet pzlMillWheel,powerright]
if {$leftpower == ""} {set leftpower 0}
if {$rightpower == ""} {set rightpower 0}
set other ""
set max 0
if {$side == "left"} {
set other "right"
set max 5
} else {
set other "left"
set max 3
}
set transfer [set ${side}power]
if {[set ${side}power] + [set ${other}power] > $max} {
set transfer [expr $max - [set ${other}power]]
}
set ${side}maxpower [expr [set ${side}power] - $transfer]
set ${other}maxpower [expr [set ${other}power] + $transfer]
set result ""
if {$transfer != 0} {
set result "Success"
} else {
set result "Fail"
}
PlayMovieSound puzzleMillWeightCloseUp ${side}Lever2${result} puzzles/puzzleMillWheel/lever${result}
if {$leftpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::leftWeightUpTo${leftpower}St}
if {$leftpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::leftWheelLevertUpTo${leftpower}St}
if {$rightpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::rightWeightUpTo${rightpower}St}
if {$rightpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::rightWheelLevertUpTo${rightpower}St}
for {set i 0} {$i < $transfer} {incr i} {
incr ${other}power
oz'event -all {
puzzleMillWeightCloseUp::new ${side}WheelLevertDownTo[set ${side}power]
puzzleMillWeightCloseUp::new ${other}WheelLevertUpTo[set ${other}power]
}
oz'event -all {
puzzleMillWeightCloseUp::new ${side}WeightDownTo[set ${side}power]
ozqSound::NewFX "/sound/puzzles/puzzleMillWheel/wheelSpinDown.ogg"
PlayMovieSound puzzleMillWeightCloseUp ${other}WeightUpTo[set ${other}power] puzzles/puzzleMillWheel/wheelSpinUp
wq'widget::delete& puzzleMillWeightCloseUp::${side}WeightDownTo[set ${side}power]
wq'widget::delete& puzzleMillWeightCloseUp::${side}WheelLevertDownTo[set ${side}power]
wq'widget::delete& puzzleMillWeightCloseUp::${other}WheelLevertUpTo[set ${other}power]
}
incr ${side}power -1
}
if {$leftpower > 0} {puzzleMillWeightCloseUp::newSt leftWeightUpTo${leftpower}St}
if {$leftpower > 0} {puzzleMillWeightCloseUp::newSt leftWheelLevertUpTo${leftpower}St}
if {$rightpower > 0} {puzzleMillWeightCloseUp::newSt rightWeightUpTo${rightpower}St}
if {$rightpower > 0} {puzzleMillWeightCloseUp::newSt rightWheelLevertUpTo${rightpower}St}
ozSet pzlMillWheel,powerleft $leftpower
ozSet pzlMillWheel,powerright $rightpower
zq'logic
}
proc zq'logic {} {
set leftpower [ozGet pzlMillWheel,powerleft]
set rightpower [ozGet pzlMillWheel,powerright]
if {$leftpower == ""} {set leftpower 0}
if {$rightpower == ""} {set rightpower 0}
if {!$puzzleMillWeightCloseUp::pinLeft1GlowLoop && $leftpower == 3} {
oz'event {puzzleMillWeightCloseUp::new pinLeft1GlowOn}
PlayMovieSound puzzleMillWeightCloseUp pinLeft2GlowOn puzzles/puzzleMillWheel/smallGlow
wq'widget::delete& puzzleMillWeightCloseUp::pinLeft1GlowOn
oz'event {
puzzleMillWeightCloseUp::new pinLeft1GlowLoop -repeat
puzzleMillWeightCloseUp::new pinLeft2GlowLoop -repeat
}
} elseif {$puzzleMillWeightCloseUp::pinLeft1GlowLoop && $leftpower != 3} {
wq'widget::delete& puzzleMillWeightCloseUp::pinLeft1GlowLoop
wq'widget::delete& puzzleMillWeightCloseUp::pinLeft2GlowLoop
oz'event {puzzleMillWeightCloseUp::new pinLeft1GlowOff}
PlayMovieSound puzzleMillWeightCloseUp pinLeft2GlowOff puzzles/puzzleMillWheel/smallGlow
wq'widget::delete& puzzleMillWeightCloseUp::pinLeft1GlowOff
}
if {!$puzzleMillWeightCloseUp::pinRight1GlowLoop && $rightpower == 4} {
puzzleMillWeightCloseUp::new pinRight1GlowOn
PlayMovieSound puzzleMillWeightCloseUp pinRight2GlowOn puzzles/puzzleMillWheel/smallGlow
wq'widget::delete& puzzleMillWeightCloseUp::pinRight1GlowOn
oz'event {
puzzleMillWeightCloseUp::new pinRight1GlowLoop -repeat
puzzleMillWeightCloseUp::new pinRight2GlowLoop -repeat
}
} elseif {$puzzleMillWeightCloseUp::pinRight1GlowLoop && $rightpower != 4} {
wq'widget::delete& puzzleMillWeightCloseUp::pinRight1GlowLoop
wq'widget::delete& puzzleMillWeightCloseUp::pinRight2GlowLoop
oz'event {puzzleMillWeightCloseUp::new pinRight1GlowOff}
PlayMovieSound puzzleMillWeightCloseUp pinRight2GlowOff puzzles/puzzleMillWheel/smallGlow
wq'widget::delete& puzzleMillWeightCloseUp::pinRight1GlowOff
}
}
camera "machineStart" {
pos 622.866 18.3666 277.3341
aim 0 -38.2166 21.7045
up 0 0.4938 0.8695
fov 48.4555
layer background "machineStart/machineStart" 0 0 0 0 0 0 0 0
cursor "machineStart/machineStartCursor.tga"
}
proc zq'activate {} {
set leftpower [ozGet pzlMillWheel,powerleft]
set rightpower [ozGet pzlMillWheel,powerright]
if {$leftpower == ""} {set leftpower 0}
if {$rightpower == ""} {set rightpower 0}
if {($leftpower == 3 && $rightpower == 4)} {
ozSet "pzlMillMachineA" "0"
ozSet "pzlMillMachineB" "0"
ozSet "pzlMillMachineC" "0"
ozSet "pzlMillMachineD" "0"
ozSet "pzlMillMachineE" "1"
chainEvent {wizDisableMouse}
PlayMovieSound puzzleMillWeightCloseUp activateSuccess puzzles/puzzleMillWheel/activateSuccess
zq'reset 0
chainEvent {wizDisableMouse}
oz'event {standardFadeout}
oz'event {setPlayerPos 575 14.098 305}
oz'event {ozSet "tempMillRoom" [ozGet "millRoom"]}
oz'event {setScene "mill" "world"}
oz'event {callEvent mill.machineStart}
oz'event {standardFadein}
oz'event {oz'delay 3}
oz'event {standardFadeout}
oz'event {pzlMillLogic ""}
oz'event {wizEntitySetPosition Lydia "588 -16.9194 437"}
oz'event {wizEntitySetPosition Zak "598 -16.9194 426"}
oz'event {setScene "crescentCoastWaterway" "world"}
oz'event {ozSet "millRoom" [ozGet "tempMillRoom"]}
oz'event {GoBack}
chainEvent {wizDisableMouse};
oz'event {
if {([ozGet pzlMillMachineA] != 0) && \
([ozGet pzlMillMachineB] != 0) && \
([ozGet pzlMillMachineC] != 0) && \
([ozGet pzlMillMachineD] != 0) && \
([ozGet pzlMillMachineE] != 0)} {
callEvent mill.millSolved
} else {
callEvent crescentCoastWaterway.millWheelSolvedMovie
}
}
chainEvent {wizEnableMouse}
} else {
PlayMovieSound puzzleMillWeightCloseUp activateFail puzzles/puzzleMillWheel/activateFail
}
}
proc zq'reset {{anim 1}} {
set leftpower [ozGet pzlMillWheel,powerleft]
set rightpower [ozGet pzlMillWheel,powerright]
if {$leftpower == ""} {set leftpower 0}
if {$rightpower == ""} {set rightpower 0}
set leftmaxpower 0
set rightmaxpower 0
if $anim {
PlayMovieSound puzzleMillWeightCloseUp reset puzzles/common/reset
}
if {$leftpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::leftWeightUpTo${leftpower}St}
if {$leftpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::leftWheelLevertUpTo${leftpower}St}
if {$rightpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::rightWeightUpTo${rightpower}St}
if {$rightpower > 0} {wq'widget::delete& puzzleMillWeightCloseUp::rightWheelLevertUpTo${rightpower}St}
chainEvent { wizDisableMouse }
while {$leftpower > $leftmaxpower || $rightpower > $rightmaxpower} {
oz'event {
if {$leftpower > $leftmaxpower} {
puzzleMillWeightCloseUp::new leftWheelLevertDownTo${leftpower}
puzzleMillWeightCloseUp::new leftWeightDownTo${leftpower}
ozqSound::NewFX "/sound/puzzles/puzzleMillWheel/wheelSpinDown.ogg"
}
if {$rightpower > $rightmaxpower} {
puzzleMillWeightCloseUp::new rightWheelLevertDownTo${rightpower}
puzzleMillWeightCloseUp::new rightWeightDownTo${rightpower}
ozqSound::NewFX "/sound/puzzles/puzzleMillWheel/wheelSpinDown.ogg"
}
if {$leftpower > $leftmaxpower} {
wq'widget::waitfor [set puzzleMillWeightCloseUp::leftWheelLevertDownTo${leftpower}] -animate
} else {
wq'widget::waitfor [set puzzleMillWeightCloseUp::rightWheelLevertDownTo${rightpower}] -animate
}
}
if {$leftpower > $leftmaxpower} {
wq'widget::delete& puzzleMillWeightCloseUp::leftWheelLevertDownTo${leftpower}
wq'widget::delete& puzzleMillWeightCloseUp::leftWeightDownTo${leftpower}
incr leftpower -1
}
if {$rightpower > $rightmaxpower} {
wq'widget::delete& puzzleMillWeightCloseUp::rightWheelLevertDownTo${rightpower}
wq'widget::delete& puzzleMillWeightCloseUp::rightWeightDownTo${rightpower}
incr rightpower -1
}
}
chainEvent { wizEnableMouse }
ozSet pzlMillWheel,powerleft $leftpower
ozSet pzlMillWheel,powerright $rightpower
zq'logic
}