diff --git a/Scripts/Python/Kalamee.py b/Scripts/Python/Kalamee.py new file mode 100644 index 0000000000..17691fc694 --- /dev/null +++ b/Scripts/Python/Kalamee.py @@ -0,0 +1,49 @@ +# /*==LICENSE==* +# +# CyanWorlds.com Engine - MMOG client, server and tools +# Copyright (C) 2011 Cyan Worlds, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Additional permissions under GNU GPL version 3 section 7 +# +# If you modify this Program, or any covered work, by linking or +# combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +# NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +# JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +# (or a modified version of those libraries), +# containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +# PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +# JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +# licensors of this Program grant you additional +# permission to convey the resulting work. Corresponding Source for a +# non-source form of such a combination shall include the source code for +# the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +# work. +# +# You can contact Cyan Worlds, Inc. by email legal@cyan.com +# or by snail mail at: +# Cyan Worlds, Inc. +# 14617 N Newport Hwy +# Mead, WA 99021 +# +# *==LICENSE==*/ + +from Plasma import * +from PlasmaTypes import * +class Kalamee(ptResponder): + def __init__(self): + ptResponder.__init__(self) + self.id = 22020001 + self.version = 1 diff --git a/Scripts/Python/KalameeResetJC.py b/Scripts/Python/KalameeResetJC.py new file mode 100644 index 0000000000..6eb722d706 --- /dev/null +++ b/Scripts/Python/KalameeResetJC.py @@ -0,0 +1,94 @@ +# /*==LICENSE==* +# +# CyanWorlds.com Engine - MMOG client, server and tools +# Copyright (C) 2011 Cyan Worlds, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Additional permissions under GNU GPL version 3 section 7 +# +# If you modify this Program, or any covered work, by linking or +# combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +# NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +# JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +# (or a modified version of those libraries), +# containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +# PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +# JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +# licensors of this Program grant you additional +# permission to convey the resulting work. Corresponding Source for a +# non-source form of such a combination shall include the source code for +# the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +# work. +# +# You can contact Cyan Worlds, Inc. by email legal@cyan.com +# or by snail mail at: +# Cyan Worlds, Inc. +# 14617 N Newport Hwy +# Mead, WA 99021 +# +# *==LICENSE==*/ + +from Plasma import * +from PlasmaTypes import * +from PlasmaVaultConstants import * +from PlasmaNetConstants import * +import xRandom +from xPsnlVaultSDL import * + +Activator = ptAttribActivator(1, 'Activator: JC Reset Clickable') + +class KalameeResetJC(ptResponder): + __module__ = __name__ + + def __init__(self): + ptResponder.__init__(self) + self.id = 22100002 + self.version = 1 + PtDebugPrint('KalameeResetJC: initialised successfully!') + + def OnFirstUpdate(self): + pass + + def OnServerInitComplete(self): + pass + + def OnNotify(self, state, id, events): + if not state: + return None + if id == Activator.id: + self.ResetAgeJourneyCloth() + + def OnSDLNotify(self, VARname, SDLname, playerID, tag): + pass + + def ResetAgeJourneyCloth(self): + ageChronNode = None + ageName = PtGetAgeName() + vault = ptVault() + chron = vault.findChronicleEntry('JourneyClothProgress') + ageChronRefList = chron.getChildNodeRefList() + for ageChron in ageChronRefList: + ageChild = ageChron.getChild() + ageChild = ageChild.upcastToChronicleNode() + if ageChild.chronicleGetName() == ageName: + ageChronNode = ageChild + break + + if type(ageChronNode) != type(None): + PtDebugPrint('KalameeResetJC: resetting JourneyClothProgress') + ageChronNode.chronicleSetValue('') + ageChronNode.save() + else: + PtDebugPrint('KalameeResetJC: unable to find JourneyClothProgress for age!') diff --git a/Scripts/Python/xLinkingBookDefs.py b/Scripts/Python/xLinkingBookDefs.py index a67910af5c..772bf43210 100644 --- a/Scripts/Python/xLinkingBookDefs.py +++ b/Scripts/Python/xLinkingBookDefs.py @@ -268,11 +268,13 @@ "Vothol": ( 0, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpanelvothol' + LinkEnd ), "ChisoPreniv": ( 0, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpanelchisopreniv' + LinkEnd ), "ChisoPrenivNote": ( 0, 1.0, 1.0, FanAgeStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpanelchisopreniv' + LinkEnd ), + "ChisoPrenivLower": ( 0, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpanelchisolower' + LinkEnd ), "Serene": ( 0, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpanelserene' + LinkEnd ), "Tiam": ( 1, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + ShareHolder + LinkStart + 'xlinkpaneltiam' + LinkEnd ), "Elonin": ( 1, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + ShareHolder + LinkStart + 'xlinkpanelelonin' + LinkEnd ), "EderNaybree": ( 0, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpaneledernaybree' + LinkEnd ), "FahetsHighgarden": ( 0, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + NoShare + LinkStart + 'xlinkpanelhighgarden' + LinkEnd ), + "Kalamee": ( 1, 1.0, 1.0, NoDRCStamp, BookStart1 + DRCStampHolder + ShareHolder + LinkStart + 'xlinkpanelkalamee' + LinkEnd ), } # cross-references the book name with the age and spawn point it links to @@ -347,11 +349,13 @@ "VeeTsah": ( "VeeTsah", "LinkInPointDefault" ), "Vothol": ( "Vothol", "LinkInPointDefault" ), "ChisoPreniv": ( "ChisoPreniv", "LinkInPointDefault" ), + "ChisoPrenivLower": ( "ChisoPreniv", "LinkInLowerFloor" ), "Serene": ( "Serene", "LinkInPointDefault" ), "Tiam": ( "Tiam", "LinkInPointDefault" ), "Elonin": ( "Elonin", "LinkInPointDefault" ), "EderNaybree": ( "EderNaybree", "LinkInPointDefault" ), "FahetsHighgarden": ( "FahetsHighgarden", "LinkInPointDefault" ), + "Kalamee": ( "Kalamee", "LinkInPointDefault" ), } # diff --git a/Scripts/Python/xMultiDialogToggle.py b/Scripts/Python/xMultiDialogToggle.py new file mode 100644 index 0000000000..436bc3eb91 --- /dev/null +++ b/Scripts/Python/xMultiDialogToggle.py @@ -0,0 +1,167 @@ +# /*==LICENSE==* +# +# CyanWorlds.com Engine - MMOG client, server and tools +# Copyright (C) 2011 Cyan Worlds, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Additional permissions under GNU GPL version 3 section 7 +# +# If you modify this Program, or any covered work, by linking or +# combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +# NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +# JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +# (or a modified version of those libraries), +# containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +# PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +# JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +# licensors of this Program grant you additional +# permission to convey the resulting work. Corresponding Source for a +# non-source form of such a combination shall include the source code for +# the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +# work. +# +# You can contact Cyan Worlds, Inc. by email legal@cyan.com +# or by snail mail at: +# Cyan Worlds, Inc. +# 14617 N Newport Hwy +# Mead, WA 99021 +# +# *==LICENSE==*/ + +#==============================================================================# +# # +# Offline KI # +# # +# Copyright (C) 2004-2011 The Offline KI contributors # +# See the file AUTHORS for more info about the contributors (including # +# contact information) # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version, with or (at your option) without # +# the Uru exception (see below). # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# Please see the file COPYING for the full GPLv3 license, or see # +# # +# # +# Uru exception: In addition, this file may be used in combination with # +# (non-GPL) code within the context of Uru. # +# # +#==============================================================================# + +from Plasma import * +from PlasmaTypes import * +import PlasmaControlKeys +import string +Activate = ptAttribActivator(1, ' clickable ', netForce=1) +Vignettes = ptAttribString(4, 'Toggle multiple dialogs - by Name') +SingleUser = ptAttribBoolean(5, 'One user only?', 0) +KeyMap = {} +KeyMap[PlasmaControlKeys.kKeyMoveForward] = PlasmaControlKeys.kKeyCamPanUp +KeyMap[PlasmaControlKeys.kKeyMoveBackward] = PlasmaControlKeys.kKeyCamPanDown +KeyMap[PlasmaControlKeys.kKeyRotateLeft] = PlasmaControlKeys.kKeyCamPanLeft +KeyMap[PlasmaControlKeys.kKeyRotateRight] = PlasmaControlKeys.kKeyCamPanRight +kExit = 99 +Vignette = None +class xMultiDialogToggle(ptModifier,): + + def __init__(self): + ptModifier.__init__(self) + self.id = 5104999 + self.version = 1 + minor = 0 + self.me = self.__class__.__name__ + self.VignetteList = [] + print ('__init__%s v. %d.%d' % (self.me, self.version, minor)) + + def IGetAgeFilename(self): + ageInfo = PtGetAgeInfo() + if ageInfo is not None: + return ageInfo.getAgeFilename() + else: + return 'GUI' + + def OnFirstUpdate(self): + try: + self.VignetteList = [i.strip() for i in Vignettes.value.split(',')] + + PtDebugPrint(('%s: Dialog list = %s' % (self.me, + self.VignetteList))) + except: + PtDebugPrint(("ERROR: %s.OnFirstUpdate(): Couldn't process dialog list" % self.me)) + return + for i in range(len(self.VignetteList)): + PtLoadDialog(self.VignetteList[i], self.key, self.IGetAgeFilename()) + + def __del__(self): + for i in range(len(self.VignetteList)): + PtUnloadDialog(self.VignetteList[i]) + + def OnNotify(self, state, id, events): + global Vignette + if (state and ((id == Activate.id) and PtWasLocallyNotified(self.key))): + Vignette = self.VignetteList[0] + self.IStartDialog(1) + + def OnGUINotify(self, id, control, event): + global Vignette + if (event == kAction): + if (control.getTagID() == kExit): + for i in range(len(self.VignetteList)): + if (self.VignetteList[i] == Vignette): + try: + tmpVignette = self.VignetteList[(i + 1)] + except IndexError: + self.IQuitDialog(1) + return + self.IQuitDialog(0) + Vignette = tmpVignette + self.IStartDialog(0) + break + + elif (event == kExitMode): + self.IQuitDialog(1) + + def OnControlKeyEvent(self, controlKey, activeFlag): + PtDebugPrint(('Got controlKey event %d and its activeFlag is %d' % (controlKey, + activeFlag)), level=kDebugDumpLevel) + if (controlKey == PlasmaControlKeys.kKeyExitMode): + self.IQuitDialog(1) + + def IStartDialog(self, init = 1): + PtLoadDialog(Vignette, self.key, self.IGetAgeFilename()) + if PtIsDialogLoaded(Vignette): + PtShowDialog(Vignette) + PtDebugPrint(('%s: Dialog %s goes up' % (self.me, + Vignette))) + if init: + PtGetControlEvents(True, self.key) + if SingleUser.value: + Activate.disable() + + def IQuitDialog(self, exit = 1): + if Vignette: + PtHideDialog(Vignette) + PtDebugPrint(('%s: Dialog %s goes down' % (self.me, + Vignette))) + if exit: + PtGetControlEvents(False, self.key) + Activate.enable() diff --git a/Scripts/Python/xSimplePanel.py b/Scripts/Python/xSimplePanel.py new file mode 100644 index 0000000000..84fdac6ddd --- /dev/null +++ b/Scripts/Python/xSimplePanel.py @@ -0,0 +1,228 @@ +# /*==LICENSE==* +# +# CyanWorlds.com Engine - MMOG client, server and tools +# Copyright (C) 2011 Cyan Worlds, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Additional permissions under GNU GPL version 3 section 7 +# +# If you modify this Program, or any covered work, by linking or +# combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +# NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +# JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +# (or a modified version of those libraries), +# containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +# PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +# JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +# licensors of this Program grant you additional +# permission to convey the resulting work. Corresponding Source for a +# non-source form of such a combination shall include the source code for +# the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +# work. +# +# You can contact Cyan Worlds, Inc. by email legal@cyan.com +# or by snail mail at: +# Cyan Worlds, Inc. +# 14617 N Newport Hwy +# Mead, WA 99021 +# +# *==LICENSE==*/ + +#==============================================================================# +# # +# Offline KI # +# # +# Copyright (C) 2004-2011 The Offline KI contributors # +# See the file AUTHORS for more info about the contributors (including # +# contact information) # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version, with or (at your option) without # +# the Uru exception (see below). # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# Please see the file COPYING for the full GPLv3 license, or see # +# # +# # +# Uru exception: In addition, this file may be used in combination with # +# (non-GPL) code within the context of Uru. # +# # +#==============================================================================# + +from Plasma import * +from PlasmaTypes import * +import string +actButton1 = ptAttribActivator(1, 'Act: Button 1') +actButton2 = ptAttribActivator(2, 'Act: Button 2') +actButton3 = ptAttribActivator(3, 'Act: Button 3') +actButton4 = ptAttribActivator(4, 'Act: Button 4') +actButton5 = ptAttribActivator(5, 'Act: Button 5') +actButton6 = ptAttribActivator(6, 'Act: Button 6') +actButton7 = ptAttribActivator(7, 'Act: Button 7') +actButton8 = ptAttribActivator(8, 'Act: Button 8') +actButton9 = ptAttribActivator(9, 'Act: Button 9') +respButton1 = ptAttribResponder(10, 'Resp: Button 1 Down') +respButton2 = ptAttribResponder(11, 'Resp: Button 2 Down') +respButton3 = ptAttribResponder(12, 'Resp: Button 3 Down') +respButton4 = ptAttribResponder(13, 'Resp: Button 4 Down') +respButton5 = ptAttribResponder(14, 'Resp: Button 5 Down') +respButton6 = ptAttribResponder(15, 'Resp: Button 6 Down') +respButton7 = ptAttribResponder(16, 'Resp: Button 7 Down') +respButton8 = ptAttribResponder(17, 'Resp: Button 8 Down') +respButton9 = ptAttribResponder(18, 'Resp: Button 9 Down') +respButtonsUp = ptAttribResponder(19, 'Resp: All Buttons Up') +Solution = ptAttribString(20, 'Solution sequence') +ButtonSDL = ptAttribString(21, 'Button SDL name') +SolvedSDL = ptAttribString(22, 'Solved SDL name') +boolReplay = ptAttribBoolean(23, 'Replay if solved?', 1) +floatTimeOut = ptAttribFloat(24, 'Click time-out', 1.2) +boolFirstUpdate = ptAttribBoolean(25, 'Init SDL on first update?', 0) +ButtonDict = {1: (actButton1, respButton1), + 2: (actButton2, respButton2), + 3: (actButton3, respButton3), + 4: (actButton4, respButton4), + 5: (actButton5, respButton5), + 6: (actButton6, respButton6), + 7: (actButton7, respButton7), + 8: (actButton8, respButton8), + 9: (actButton9, respButton9)} +class xSimplePanel(ptResponder,): + + def __init__(self): + ptResponder.__init__(self) + self.id = 1049699 + self.version = 1 + minor = 0 + self.me = self.__class__.__name__ + print ('__init__%s v. %d.%d' % (self.me, + self.version, + minor)) + + + + def OnFirstUpdate(self): + EmptyButtons = [] + for i in ButtonDict: + (act, resp,) = ButtonDict[i] + if ((not len(act.value)) or (not len(resp.value))): + EmptyButtons.append(i) + + for i in EmptyButtons: + del ButtonDict[i] + + print ('%s.OnFirstUpdate: Valid buttons: %d' % (self.me, + len(ButtonDict))) + if (len(ButtonDict) != len(Solution.value)): + print ('%s.OnFirstUpdate: WARNING! Solution length mismatch: %d' % (self.me, + len(Solution.value))) + if boolFirstUpdate.value: + self.OnServerInitComplete() + + + + def OnServerInitComplete(self): + ageSDL = PtGetAgeSDL() + ageSDL.sendToClients(ButtonSDL.value) + ageSDL.sendToClients(SolvedSDL.value) + ageSDL.setFlags(ButtonSDL.value, 1, 1) + ageSDL.setFlags(SolvedSDL.value, 1, 1) + ageSDL.setNotify(self.key, ButtonSDL.value, 0.0) + ageSDL.setNotify(self.key, SolvedSDL.value, 0.0) + ButtonsPushed = ageSDL[ButtonSDL.value][0] + ButtonsPushed = str(ButtonsPushed) + print ('%s.OnServerInitComplete: When I got here, ButtonsPushed = %s' % (self.me, + ButtonsPushed)) + if (len(ButtonsPushed) >= len(Solution.value)): + PuzzleSolved = ageSDL[SolvedSDL.value][0] + if ((not PuzzleSolved) or boolReplay.value): + respButtonsUp.run(self.key, fastforward=1) + ageSDL[ButtonSDL.value] = (0,) + return + for i in ButtonDict: + if (str(i) in ButtonsPushed): + (act, resp,) = ButtonDict[i] + resp.run(self.key, fastforward=1) + act.disable() + + if ('0' in ButtonsPushed): + ageSDL[ButtonSDL.value] = (0,) + + + + def OnNotify(self, state, id, events): + if ((id in ButtonDict) and (state and PtWasLocallyNotified(self.key))): + ageSDL = PtGetAgeSDL() + PtSetGlobalClickability(0) + PtAtTimeCallback(self.key, floatTimeOut.value, 1) + print ('%s.OnNotify: Button #%d pushed' % (self.me, + id)) + PuzzleSolved = ageSDL[SolvedSDL.value][0] + if (PuzzleSolved and boolReplay.value): + print ('%s.OnNotify: Oops... you have reset the puzzle!' % self.me) + ageSDL[SolvedSDL.value] = (0,) + ButtonsPushed = ageSDL[ButtonSDL.value][0] + ButtonsPushed = str(ButtonsPushed) + print ('%s.OnNotify: Before, ButtonsPushed was %s' % (self.me, + ButtonsPushed)) + ButtonsPushed = int((ButtonsPushed + str(id))) + print ('%s.OnNotify: Now, ButtonsPushed is %s' % (self.me, + ButtonsPushed)) + ageSDL[ButtonSDL.value] = (ButtonsPushed,) + if (len(str(ButtonsPushed)) >= len(Solution.value)): + PtAtTimeCallback(self.key, 1, 2) + + + + def OnSDLNotify(self, VARname, SDLname, playerID, tag): + if (VARname == ButtonSDL.value): + ageSDL = PtGetAgeSDL() + ButtonsPushed = ageSDL[ButtonSDL.value][0] + print ('%s.OnSDLNotify: New ButtonsPushed = %s' % (self.me, + ButtonsPushed)) + if (ButtonsPushed == 0): + for i in ButtonDict: + (act, resp,) = ButtonDict[i] + act.enable() + + return + ButtonsPushed = str(ButtonsPushed) + LastButtonPushed = int(ButtonsPushed[-1:]) + (act, resp,) = ButtonDict[LastButtonPushed] + resp.run(self.key, netPropagate=0) + act.disable() + + + + def OnTimer(self, id): + if (id == 1): + PtSetGlobalClickability(1) + elif (id == 2): + ageSDL = PtGetAgeSDL() + ButtonsPushed = ageSDL[ButtonSDL.value][0] + print ('%s.OnTimer: Check solution. ButtonsPushed = %s' % (self.me, + ButtonsPushed)) + if (ButtonsPushed == int(Solution.value)): + print ('%s.OnTimer: Puzzle solved. Unlocking...' % self.me) + ageSDL[SolvedSDL.value] = (1,) + if (not boolReplay.value): + return + respButtonsUp.run(self.key) + ageSDL[ButtonSDL.value] = (0,) diff --git a/Scripts/SDL/Kalamee.sdl b/Scripts/SDL/Kalamee.sdl new file mode 100644 index 0000000000..a70596f96e --- /dev/null +++ b/Scripts/SDL/Kalamee.sdl @@ -0,0 +1,54 @@ +# /*==LICENSE==* +# +# CyanWorlds.com Engine - MMOG client, server and tools +# Copyright (C) 2011 Cyan Worlds, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Additional permissions under GNU GPL version 3 section 7 +# +# If you modify this Program, or any covered work, by linking or +# combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +# NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +# JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +# (or a modified version of those libraries), +# containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +# PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +# JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +# licensors of this Program grant you additional +# permission to convey the resulting work. Corresponding Source for a +# non-source form of such a combination shall include the source code for +# the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +# work. +# +# You can contact Cyan Worlds, Inc. by email legal@cyan.com +# or by snail mail at: +# Cyan Worlds, Inc. +# 14617 N Newport Hwy +# Mead, WA 99021 +# +# *==LICENSE==*/ + +STATEDESC Kalamee +{ + VERSION 1 + + VAR BOOL allJourneyClothsVisited[1] DEFAULT=0 + VAR INT sluiceGatePuzzleButtonsPushed[1] DEFAULT=0 + VAR BOOL sluiceGatePuzzleUnlocked[1] DEFAULT=0 + VAR INT journeyClothGateClosed[1] DEFAULT=1 + VAR BOOL trapGateUnlocked01[1] DEFAULT=0 + VAR BOOL trapGateUnlocked02[1] DEFAULT=0 + VAR BOOL trapGateUnlocked03[1] DEFAULT=0 +} diff --git a/Scripts/dat/Kalamee.age b/Scripts/dat/Kalamee.age new file mode 100644 index 0000000000..3cec3c6ab8 --- /dev/null +++ b/Scripts/dat/Kalamee.age @@ -0,0 +1,23 @@ +StartDateTime=0000000000 +DayLength=24.000000 +MaxCapacity=10 +LingerTime=180 +SequencePrefix=22100 +ReleaseVersion=0 +Page=mainroom,1 +Page=BookIntro,2 +Page=BookCredits,3 +Page=SketchbookA,4 +Page=SketchbookB,5 +Page=SketchbookC,6 +Page=ResetPanel,7 +Page=ScopeA,8 +Page=ScopeB,9 +Page=ScopeC,10 +Page=SpwnA,11 +Page=SpwnB,12 +Page=SpwnC,13 +Page=SpwnD,14 +Page=SpwnE,15 +Page=SpwnF,16 +Page=SpwnG,17 diff --git a/Scripts/dat/Kalamee.fni b/Scripts/dat/Kalamee.fni new file mode 100644 index 0000000000..df17e7421d --- /dev/null +++ b/Scripts/dat/Kalamee.fni @@ -0,0 +1,4 @@ +Graphics.Renderer.SetYon 100000 +Graphics.Renderer.Fog.SetDefLinear 0 0 0 +Graphics.Renderer.Fog.SetDefColor 0 0 0 +Graphics.Renderer.SetClearColor 0 0 0