1720 lines
45 KiB
Python
1720 lines
45 KiB
Python
|
##
|
|||
|
## Interface
|
|||
|
##
|
|||
|
|
|||
|
import constInfo
|
|||
|
import systemSetting
|
|||
|
import wndMgr
|
|||
|
import chat
|
|||
|
import app
|
|||
|
import player
|
|||
|
|
|||
|
import uiTaskBar
|
|||
|
import uiCharacter
|
|||
|
import uiInventory
|
|||
|
import uiDragonSoul
|
|||
|
import uiChat
|
|||
|
import uiMessenger
|
|||
|
import guild
|
|||
|
|
|||
|
import ui
|
|||
|
import uiHelp
|
|||
|
import uiWhisper
|
|||
|
import uiPointReset
|
|||
|
import uiShop
|
|||
|
import uiExchange
|
|||
|
import uiSystem
|
|||
|
import uiRestart
|
|||
|
import uiToolTip
|
|||
|
import uiMiniMap
|
|||
|
import uiParty
|
|||
|
import uiSafebox
|
|||
|
import uiGuild
|
|||
|
import uiQuest
|
|||
|
import uiPrivateShopBuilder
|
|||
|
import uiCommon
|
|||
|
import uiRefine
|
|||
|
import uiEquipmentDialog
|
|||
|
import uiGameButton
|
|||
|
import uiTip
|
|||
|
import uiCube
|
|||
|
import miniMap
|
|||
|
# ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
import uiSelectItem
|
|||
|
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
import uiScriptLocale
|
|||
|
|
|||
|
import event
|
|||
|
import locale
|
|||
|
|
|||
|
IsQBHide = 0
|
|||
|
class Interface(object):
|
|||
|
CHARACTER_STATUS_TAB = 1
|
|||
|
CHARACTER_SKILL_TAB = 2
|
|||
|
|
|||
|
def __init__(self):
|
|||
|
systemSetting.SetInterfaceHandler(self)
|
|||
|
self.windowOpenPosition = 0
|
|||
|
self.dlgWhisperWithoutTarget = None
|
|||
|
self.inputDialog = None
|
|||
|
self.tipBoard = None
|
|||
|
self.bigBoard = None
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
self.mallPageDlg = None
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
self.wndWeb = None
|
|||
|
self.wndTaskBar = None
|
|||
|
self.wndCharacter = None
|
|||
|
self.wndInventory = None
|
|||
|
self.wndExpandedTaskBar = None
|
|||
|
self.wndDragonSoul = None
|
|||
|
self.wndDragonSoulRefine = None
|
|||
|
self.wndChat = None
|
|||
|
self.wndMessenger = None
|
|||
|
self.wndMiniMap = None
|
|||
|
self.wndGuild = None
|
|||
|
self.wndGuildBuilding = None
|
|||
|
|
|||
|
self.listGMName = {}
|
|||
|
self.wndQuestWindow = []
|
|||
|
self.privateShopAdvertisementBoardDict = {}
|
|||
|
self.guildScoreBoardDict = {}
|
|||
|
self.equipmentDialogDict = {}
|
|||
|
event.SetInterfaceWindow(self)
|
|||
|
|
|||
|
def __del__(self):
|
|||
|
systemSetting.DestroyInterfaceHandler()
|
|||
|
event.SetInterfaceWindow(None)
|
|||
|
|
|||
|
################################
|
|||
|
## Make Windows & Dialogs
|
|||
|
def __MakeUICurtain(self):
|
|||
|
wndUICurtain = ui.Bar("TOP_MOST")
|
|||
|
wndUICurtain.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
|
|||
|
wndUICurtain.SetColor(0x77000000)
|
|||
|
wndUICurtain.Hide()
|
|||
|
self.wndUICurtain = wndUICurtain
|
|||
|
|
|||
|
def __MakeMessengerWindow(self):
|
|||
|
self.wndMessenger = uiMessenger.MessengerWindow()
|
|||
|
|
|||
|
from _weakref import proxy
|
|||
|
self.wndMessenger.SetWhisperButtonEvent(lambda n,i=proxy(self):i.OpenWhisperDialog(n))
|
|||
|
self.wndMessenger.SetGuildButtonEvent(ui.__mem_func__(self.ToggleGuildWindow))
|
|||
|
|
|||
|
def __MakeGuildWindow(self):
|
|||
|
self.wndGuild = uiGuild.GuildWindow()
|
|||
|
|
|||
|
def __MakeChatWindow(self):
|
|||
|
|
|||
|
wndChat = uiChat.ChatWindow()
|
|||
|
|
|||
|
wndChat.SetSize(wndChat.CHAT_WINDOW_WIDTH, 0)
|
|||
|
wndChat.SetPosition(wndMgr.GetScreenWidth()/2 - wndChat.CHAT_WINDOW_WIDTH/2, wndMgr.GetScreenHeight() - wndChat.EDIT_LINE_HEIGHT - 37)
|
|||
|
wndChat.SetHeight(200)
|
|||
|
wndChat.Refresh()
|
|||
|
wndChat.Show()
|
|||
|
|
|||
|
self.wndChat = wndChat
|
|||
|
self.wndChat.BindInterface(self)
|
|||
|
self.wndChat.SetSendWhisperEvent(ui.__mem_func__(self.OpenWhisperDialogWithoutTarget))
|
|||
|
self.wndChat.SetOpenChatLogEvent(ui.__mem_func__(self.ToggleChatLogWindow))
|
|||
|
|
|||
|
def __MakeTaskBar(self):
|
|||
|
wndTaskBar = uiTaskBar.TaskBar()
|
|||
|
wndTaskBar.LoadWindow()
|
|||
|
self.wndTaskBar = wndTaskBar
|
|||
|
self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHARACTER, ui.__mem_func__(self.ToggleCharacterWindowStatusPage))
|
|||
|
self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_INVENTORY, ui.__mem_func__(self.ToggleInventoryWindow))
|
|||
|
self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_MESSENGER, ui.__mem_func__(self.ToggleMessenger))
|
|||
|
self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_SYSTEM, ui.__mem_func__(self.ToggleSystemDialog))
|
|||
|
if uiTaskBar.TaskBar.IS_EXPANDED:
|
|||
|
self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_EXPAND, ui.__mem_func__(self.ToggleExpandedButton))
|
|||
|
self.wndExpandedTaskBar = uiTaskBar.ExpandedTaskBar()
|
|||
|
self.wndExpandedTaskBar.LoadWindow()
|
|||
|
self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.ToggleDragonSoulWindow))
|
|||
|
|
|||
|
else:
|
|||
|
self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHAT, ui.__mem_func__(self.ToggleChat))
|
|||
|
|
|||
|
self.wndEnergyBar = None
|
|||
|
import app
|
|||
|
if app.ENABLE_ENERGY_SYSTEM:
|
|||
|
wndEnergyBar = uiTaskBar.EnergyBar()
|
|||
|
wndEnergyBar.LoadWindow()
|
|||
|
self.wndEnergyBar = wndEnergyBar
|
|||
|
|
|||
|
def __MakeParty(self):
|
|||
|
wndParty = uiParty.PartyWindow()
|
|||
|
wndParty.Hide()
|
|||
|
self.wndParty = wndParty
|
|||
|
|
|||
|
def __MakeGameButtonWindow(self):
|
|||
|
wndGameButton = uiGameButton.GameButtonWindow()
|
|||
|
wndGameButton.SetTop()
|
|||
|
wndGameButton.Show()
|
|||
|
wndGameButton.SetButtonEvent("STATUS", ui.__mem_func__(self.__OnClickStatusPlusButton))
|
|||
|
wndGameButton.SetButtonEvent("SKILL", ui.__mem_func__(self.__OnClickSkillPlusButton))
|
|||
|
wndGameButton.SetButtonEvent("QUEST", ui.__mem_func__(self.__OnClickQuestButton))
|
|||
|
wndGameButton.SetButtonEvent("HELP", ui.__mem_func__(self.__OnClickHelpButton))
|
|||
|
wndGameButton.SetButtonEvent("BUILD", ui.__mem_func__(self.__OnClickBuildButton))
|
|||
|
|
|||
|
self.wndGameButton = wndGameButton
|
|||
|
|
|||
|
def __IsChatOpen(self):
|
|||
|
return TRUE
|
|||
|
|
|||
|
def __MakeWindows(self):
|
|||
|
wndCharacter = uiCharacter.CharacterWindow()
|
|||
|
wndInventory = uiInventory.InventoryWindow()
|
|||
|
wndInventory.BindInterfaceClass(self)
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
wndDragonSoul = uiDragonSoul.DragonSoulWindow()
|
|||
|
wndDragonSoulRefine = uiDragonSoul.DragonSoulRefineWindow()
|
|||
|
else:
|
|||
|
wndDragonSoul = None
|
|||
|
wndDragonSoulRefine = None
|
|||
|
|
|||
|
wndMiniMap = uiMiniMap.MiniMap()
|
|||
|
wndSafebox = uiSafebox.SafeboxWindow()
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
wndMall = uiSafebox.MallWindow()
|
|||
|
self.wndMall = wndMall
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
wndChatLog = uiChat.ChatLogWindow()
|
|||
|
wndChatLog.BindInterface(self)
|
|||
|
|
|||
|
self.wndCharacter = wndCharacter
|
|||
|
self.wndInventory = wndInventory
|
|||
|
self.wndDragonSoul = wndDragonSoul
|
|||
|
self.wndDragonSoulRefine = wndDragonSoulRefine
|
|||
|
self.wndMiniMap = wndMiniMap
|
|||
|
self.wndSafebox = wndSafebox
|
|||
|
self.wndChatLog = wndChatLog
|
|||
|
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.SetDragonSoulRefineWindow(self.wndDragonSoulRefine)
|
|||
|
self.wndDragonSoulRefine.SetInventoryWindows(self.wndInventory, self.wndDragonSoul)
|
|||
|
self.wndInventory.SetDragonSoulRefineWindow(self.wndDragonSoulRefine)
|
|||
|
|
|||
|
def __MakeDialogs(self):
|
|||
|
self.dlgExchange = uiExchange.ExchangeDialog()
|
|||
|
self.dlgExchange.LoadDialog()
|
|||
|
self.dlgExchange.SetCenterPosition()
|
|||
|
self.dlgExchange.Hide()
|
|||
|
|
|||
|
self.dlgPointReset = uiPointReset.PointResetDialog()
|
|||
|
self.dlgPointReset.LoadDialog()
|
|||
|
self.dlgPointReset.Hide()
|
|||
|
|
|||
|
self.dlgShop = uiShop.ShopDialog()
|
|||
|
self.dlgShop.LoadDialog()
|
|||
|
self.dlgShop.Hide()
|
|||
|
|
|||
|
self.dlgRestart = uiRestart.RestartDialog()
|
|||
|
self.dlgRestart.LoadDialog()
|
|||
|
self.dlgRestart.Hide()
|
|||
|
|
|||
|
self.dlgSystem = uiSystem.SystemDialog()
|
|||
|
self.dlgSystem.LoadDialog()
|
|||
|
self.dlgSystem.SetOpenHelpWindowEvent(ui.__mem_func__(self.OpenHelpWindow))
|
|||
|
|
|||
|
self.dlgSystem.Hide()
|
|||
|
|
|||
|
self.dlgPassword = uiSafebox.PasswordDialog()
|
|||
|
self.dlgPassword.Hide()
|
|||
|
|
|||
|
self.hyperlinkItemTooltip = uiToolTip.HyperlinkItemToolTip()
|
|||
|
self.hyperlinkItemTooltip.Hide()
|
|||
|
|
|||
|
self.tooltipItem = uiToolTip.ItemToolTip()
|
|||
|
self.tooltipItem.Hide()
|
|||
|
|
|||
|
self.tooltipSkill = uiToolTip.SkillToolTip()
|
|||
|
self.tooltipSkill.Hide()
|
|||
|
|
|||
|
self.privateShopBuilder = uiPrivateShopBuilder.PrivateShopBuilder()
|
|||
|
self.privateShopBuilder.Hide()
|
|||
|
|
|||
|
self.dlgRefineNew = uiRefine.RefineDialogNew()
|
|||
|
self.dlgRefineNew.Hide()
|
|||
|
|
|||
|
def __MakeHelpWindow(self):
|
|||
|
self.wndHelp = uiHelp.HelpWindow()
|
|||
|
self.wndHelp.LoadDialog()
|
|||
|
self.wndHelp.SetCloseEvent(ui.__mem_func__(self.CloseHelpWindow))
|
|||
|
self.wndHelp.Hide()
|
|||
|
|
|||
|
def __MakeTipBoard(self):
|
|||
|
self.tipBoard = uiTip.TipBoard()
|
|||
|
self.tipBoard.Hide()
|
|||
|
|
|||
|
self.bigBoard = uiTip.BigBoard()
|
|||
|
self.bigBoard.Hide()
|
|||
|
|
|||
|
def __MakeWebWindow(self):
|
|||
|
if constInfo.IN_GAME_SHOP_ENABLE:
|
|||
|
import uiWeb
|
|||
|
self.wndWeb = uiWeb.WebWindow()
|
|||
|
self.wndWeb.LoadWindow()
|
|||
|
self.wndWeb.Hide()
|
|||
|
|
|||
|
def __MakeCubeWindow(self):
|
|||
|
self.wndCube = uiCube.CubeWindow()
|
|||
|
self.wndCube.LoadWindow()
|
|||
|
self.wndCube.Hide()
|
|||
|
|
|||
|
def __MakeCubeResultWindow(self):
|
|||
|
self.wndCubeResult = uiCube.CubeResultWindow()
|
|||
|
self.wndCubeResult.LoadWindow()
|
|||
|
self.wndCubeResult.Hide()
|
|||
|
|
|||
|
# ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
def __MakeItemSelectWindow(self):
|
|||
|
self.wndItemSelect = uiSelectItem.SelectItemWindow()
|
|||
|
self.wndItemSelect.Hide()
|
|||
|
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
|
|||
|
def MakeInterface(self):
|
|||
|
self.__MakeMessengerWindow()
|
|||
|
self.__MakeGuildWindow()
|
|||
|
self.__MakeChatWindow()
|
|||
|
self.__MakeParty()
|
|||
|
self.__MakeWindows()
|
|||
|
self.__MakeDialogs()
|
|||
|
|
|||
|
self.__MakeUICurtain()
|
|||
|
self.__MakeTaskBar()
|
|||
|
self.__MakeGameButtonWindow()
|
|||
|
self.__MakeHelpWindow()
|
|||
|
self.__MakeTipBoard()
|
|||
|
self.__MakeWebWindow()
|
|||
|
self.__MakeCubeWindow()
|
|||
|
self.__MakeCubeResultWindow()
|
|||
|
|
|||
|
|
|||
|
# ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
self.__MakeItemSelectWindow()
|
|||
|
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
|
|||
|
self.questButtonList = []
|
|||
|
self.whisperButtonList = []
|
|||
|
self.whisperDialogDict = {}
|
|||
|
self.privateShopAdvertisementBoardDict = {}
|
|||
|
|
|||
|
self.wndInventory.SetItemToolTip(self.tooltipItem)
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.SetItemToolTip(self.tooltipItem)
|
|||
|
self.wndDragonSoulRefine.SetItemToolTip(self.tooltipItem)
|
|||
|
self.wndSafebox.SetItemToolTip(self.tooltipItem)
|
|||
|
self.wndCube.SetItemToolTip(self.tooltipItem)
|
|||
|
self.wndCubeResult.SetItemToolTip(self.tooltipItem)
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
self.wndMall.SetItemToolTip(self.tooltipItem)
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
self.wndCharacter.SetSkillToolTip(self.tooltipSkill)
|
|||
|
self.wndTaskBar.SetItemToolTip(self.tooltipItem)
|
|||
|
self.wndTaskBar.SetSkillToolTip(self.tooltipSkill)
|
|||
|
self.wndGuild.SetSkillToolTip(self.tooltipSkill)
|
|||
|
|
|||
|
# ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
self.wndItemSelect.SetItemToolTip(self.tooltipItem)
|
|||
|
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
|
|||
|
self.dlgShop.SetItemToolTip(self.tooltipItem)
|
|||
|
self.dlgExchange.SetItemToolTip(self.tooltipItem)
|
|||
|
self.privateShopBuilder.SetItemToolTip(self.tooltipItem)
|
|||
|
|
|||
|
self.__InitWhisper()
|
|||
|
self.DRAGON_SOUL_IS_QUALIFIED = FALSE
|
|||
|
|
|||
|
def MakeHyperlinkTooltip(self, hyperlink):
|
|||
|
tokens = hyperlink.split(":")
|
|||
|
if tokens and len(tokens):
|
|||
|
type = tokens[0]
|
|||
|
if "item" == type:
|
|||
|
self.hyperlinkItemTooltip.SetHyperlinkItem(tokens)
|
|||
|
|
|||
|
## Make Windows & Dialogs
|
|||
|
################################
|
|||
|
|
|||
|
def Close(self):
|
|||
|
|
|||
|
if self.dlgWhisperWithoutTarget:
|
|||
|
self.dlgWhisperWithoutTarget.Destroy()
|
|||
|
del self.dlgWhisperWithoutTarget
|
|||
|
|
|||
|
if uiQuest.QuestDialog.__dict__.has_key("QuestCurtain"):
|
|||
|
uiQuest.QuestDialog.QuestCurtain.Close()
|
|||
|
|
|||
|
if self.wndQuestWindow:
|
|||
|
for eachQuestWindow in self.wndQuestWindow:
|
|||
|
eachQuestWindow.nextCurtainMode = -1
|
|||
|
eachQuestWindow.CloseSelf()
|
|||
|
eachQuestWindow = None
|
|||
|
|
|||
|
if self.wndChat:
|
|||
|
self.wndChat.Destroy()
|
|||
|
|
|||
|
if self.wndTaskBar:
|
|||
|
self.wndTaskBar.Destroy()
|
|||
|
|
|||
|
if self.wndExpandedTaskBar:
|
|||
|
self.wndExpandedTaskBar.Destroy()
|
|||
|
|
|||
|
if self.wndEnergyBar:
|
|||
|
self.wndEnergyBar.Destroy()
|
|||
|
|
|||
|
if self.wndCharacter:
|
|||
|
self.wndCharacter.Destroy()
|
|||
|
|
|||
|
if self.wndInventory:
|
|||
|
self.wndInventory.Destroy()
|
|||
|
|
|||
|
if self.wndDragonSoul:
|
|||
|
self.wndDragonSoul.Destroy()
|
|||
|
|
|||
|
if self.wndDragonSoulRefine:
|
|||
|
self.wndDragonSoulRefine.Destroy()
|
|||
|
|
|||
|
if self.dlgExchange:
|
|||
|
self.dlgExchange.Destroy()
|
|||
|
|
|||
|
if self.dlgPointReset:
|
|||
|
self.dlgPointReset.Destroy()
|
|||
|
|
|||
|
if self.dlgShop:
|
|||
|
self.dlgShop.Destroy()
|
|||
|
|
|||
|
if self.dlgRestart:
|
|||
|
self.dlgRestart.Destroy()
|
|||
|
|
|||
|
if self.dlgSystem:
|
|||
|
self.dlgSystem.Destroy()
|
|||
|
|
|||
|
if self.dlgPassword:
|
|||
|
self.dlgPassword.Destroy()
|
|||
|
|
|||
|
if self.wndMiniMap:
|
|||
|
self.wndMiniMap.Destroy()
|
|||
|
|
|||
|
if self.wndSafebox:
|
|||
|
self.wndSafebox.Destroy()
|
|||
|
|
|||
|
if self.wndWeb:
|
|||
|
self.wndWeb.Destroy()
|
|||
|
self.wndWeb = None
|
|||
|
|
|||
|
if self.wndMall:
|
|||
|
self.wndMall.Destroy()
|
|||
|
|
|||
|
if self.wndParty:
|
|||
|
self.wndParty.Destroy()
|
|||
|
|
|||
|
if self.wndHelp:
|
|||
|
self.wndHelp.Destroy()
|
|||
|
|
|||
|
if self.wndCube:
|
|||
|
self.wndCube.Destroy()
|
|||
|
|
|||
|
if self.wndCubeResult:
|
|||
|
self.wndCubeResult.Destroy()
|
|||
|
|
|||
|
if self.wndMessenger:
|
|||
|
self.wndMessenger.Destroy()
|
|||
|
|
|||
|
if self.wndGuild:
|
|||
|
self.wndGuild.Destroy()
|
|||
|
|
|||
|
if self.privateShopBuilder:
|
|||
|
self.privateShopBuilder.Destroy()
|
|||
|
|
|||
|
if self.dlgRefineNew:
|
|||
|
self.dlgRefineNew.Destroy()
|
|||
|
|
|||
|
if self.wndGuildBuilding:
|
|||
|
self.wndGuildBuilding.Destroy()
|
|||
|
|
|||
|
if self.wndGameButton:
|
|||
|
self.wndGameButton.Destroy()
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
if self.mallPageDlg:
|
|||
|
self.mallPageDlg.Destroy()
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
# ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
if self.wndItemSelect:
|
|||
|
self.wndItemSelect.Destroy()
|
|||
|
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
|
|||
|
self.wndChatLog.Destroy()
|
|||
|
for btn in self.questButtonList:
|
|||
|
btn.SetEvent(0)
|
|||
|
for btn in self.whisperButtonList:
|
|||
|
btn.SetEvent(0)
|
|||
|
for dlg in self.whisperDialogDict.itervalues():
|
|||
|
dlg.Destroy()
|
|||
|
for brd in self.guildScoreBoardDict.itervalues():
|
|||
|
brd.Destroy()
|
|||
|
for dlg in self.equipmentDialogDict.itervalues():
|
|||
|
dlg.Destroy()
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
del self.mallPageDlg
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
del self.wndGuild
|
|||
|
del self.wndMessenger
|
|||
|
del self.wndUICurtain
|
|||
|
del self.wndChat
|
|||
|
del self.wndTaskBar
|
|||
|
if self.wndExpandedTaskBar:
|
|||
|
del self.wndExpandedTaskBar
|
|||
|
del self.wndEnergyBar
|
|||
|
del self.wndCharacter
|
|||
|
del self.wndInventory
|
|||
|
if self.wndDragonSoul:
|
|||
|
del self.wndDragonSoul
|
|||
|
if self.wndDragonSoulRefine:
|
|||
|
del self.wndDragonSoulRefine
|
|||
|
del self.dlgExchange
|
|||
|
del self.dlgPointReset
|
|||
|
del self.dlgShop
|
|||
|
del self.dlgRestart
|
|||
|
del self.dlgSystem
|
|||
|
del self.dlgPassword
|
|||
|
del self.hyperlinkItemTooltip
|
|||
|
del self.tooltipItem
|
|||
|
del self.tooltipSkill
|
|||
|
del self.wndMiniMap
|
|||
|
del self.wndSafebox
|
|||
|
del self.wndMall
|
|||
|
del self.wndParty
|
|||
|
del self.wndHelp
|
|||
|
del self.wndCube
|
|||
|
del self.wndCubeResult
|
|||
|
del self.privateShopBuilder
|
|||
|
del self.inputDialog
|
|||
|
del self.wndChatLog
|
|||
|
del self.dlgRefineNew
|
|||
|
del self.wndGuildBuilding
|
|||
|
del self.wndGameButton
|
|||
|
del self.tipBoard
|
|||
|
del self.bigBoard
|
|||
|
del self.wndItemSelect
|
|||
|
|
|||
|
self.questButtonList = []
|
|||
|
self.whisperButtonList = []
|
|||
|
self.whisperDialogDict = {}
|
|||
|
self.privateShopAdvertisementBoardDict = {}
|
|||
|
self.guildScoreBoardDict = {}
|
|||
|
self.equipmentDialogDict = {}
|
|||
|
|
|||
|
uiChat.DestroyChatInputSetWindow()
|
|||
|
|
|||
|
## Skill
|
|||
|
def OnUseSkill(self, slotIndex, coolTime):
|
|||
|
self.wndCharacter.OnUseSkill(slotIndex, coolTime)
|
|||
|
self.wndTaskBar.OnUseSkill(slotIndex, coolTime)
|
|||
|
self.wndGuild.OnUseSkill(slotIndex, coolTime)
|
|||
|
|
|||
|
def OnActivateSkill(self, slotIndex):
|
|||
|
self.wndCharacter.OnActivateSkill(slotIndex)
|
|||
|
self.wndTaskBar.OnActivateSkill(slotIndex)
|
|||
|
|
|||
|
def OnDeactivateSkill(self, slotIndex):
|
|||
|
self.wndCharacter.OnDeactivateSkill(slotIndex)
|
|||
|
self.wndTaskBar.OnDeactivateSkill(slotIndex)
|
|||
|
|
|||
|
def OnChangeCurrentSkill(self, skillSlotNumber):
|
|||
|
self.wndTaskBar.OnChangeCurrentSkill(skillSlotNumber)
|
|||
|
|
|||
|
def SelectMouseButtonEvent(self, dir, event):
|
|||
|
self.wndTaskBar.SelectMouseButtonEvent(dir, event)
|
|||
|
|
|||
|
## Refresh
|
|||
|
def RefreshAlignment(self):
|
|||
|
self.wndCharacter.RefreshAlignment()
|
|||
|
|
|||
|
def RefreshStatus(self):
|
|||
|
self.wndTaskBar.RefreshStatus()
|
|||
|
self.wndCharacter.RefreshStatus()
|
|||
|
self.wndInventory.RefreshStatus()
|
|||
|
if self.wndEnergyBar:
|
|||
|
self.wndEnergyBar.RefreshStatus()
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.RefreshStatus()
|
|||
|
|
|||
|
def RefreshStamina(self):
|
|||
|
self.wndTaskBar.RefreshStamina()
|
|||
|
|
|||
|
def RefreshSkill(self):
|
|||
|
self.wndCharacter.RefreshSkill()
|
|||
|
self.wndTaskBar.RefreshSkill()
|
|||
|
|
|||
|
def RefreshInventory(self):
|
|||
|
self.wndTaskBar.RefreshQuickSlot()
|
|||
|
self.wndInventory.RefreshItemSlot()
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.RefreshItemSlot()
|
|||
|
|
|||
|
def RefreshCharacter(self): ## Character <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, Inventory <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> Refresh
|
|||
|
self.wndCharacter.RefreshCharacter()
|
|||
|
self.wndTaskBar.RefreshQuickSlot()
|
|||
|
|
|||
|
def RefreshQuest(self):
|
|||
|
self.wndCharacter.RefreshQuest()
|
|||
|
|
|||
|
def RefreshSafebox(self):
|
|||
|
self.wndSafebox.RefreshSafebox()
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
def RefreshMall(self):
|
|||
|
self.wndMall.RefreshMall()
|
|||
|
|
|||
|
def OpenItemMall(self):
|
|||
|
if not self.mallPageDlg:
|
|||
|
self.mallPageDlg = uiShop.MallPageDialog()
|
|||
|
|
|||
|
self.mallPageDlg.Open()
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
def RefreshMessenger(self):
|
|||
|
self.wndMessenger.RefreshMessenger()
|
|||
|
|
|||
|
def RefreshGuildInfoPage(self):
|
|||
|
self.wndGuild.RefreshGuildInfoPage()
|
|||
|
|
|||
|
def RefreshGuildBoardPage(self):
|
|||
|
self.wndGuild.RefreshGuildBoardPage()
|
|||
|
|
|||
|
def RefreshGuildMemberPage(self):
|
|||
|
self.wndGuild.RefreshGuildMemberPage()
|
|||
|
|
|||
|
def RefreshGuildMemberPageGradeComboBox(self):
|
|||
|
self.wndGuild.RefreshGuildMemberPageGradeComboBox()
|
|||
|
|
|||
|
def RefreshGuildSkillPage(self):
|
|||
|
self.wndGuild.RefreshGuildSkillPage()
|
|||
|
|
|||
|
def RefreshGuildGradePage(self):
|
|||
|
self.wndGuild.RefreshGuildGradePage()
|
|||
|
|
|||
|
def DeleteGuild(self):
|
|||
|
self.wndMessenger.ClearGuildMember()
|
|||
|
self.wndGuild.DeleteGuild()
|
|||
|
|
|||
|
def RefreshMobile(self):
|
|||
|
self.dlgSystem.RefreshMobile()
|
|||
|
|
|||
|
def OnMobileAuthority(self):
|
|||
|
self.dlgSystem.OnMobileAuthority()
|
|||
|
|
|||
|
def OnBlockMode(self, mode):
|
|||
|
self.dlgSystem.OnBlockMode(mode)
|
|||
|
|
|||
|
## Calling Functions
|
|||
|
# PointReset
|
|||
|
def OpenPointResetDialog(self):
|
|||
|
self.dlgPointReset.Show()
|
|||
|
self.dlgPointReset.SetTop()
|
|||
|
|
|||
|
def ClosePointResetDialog(self):
|
|||
|
self.dlgPointReset.Close()
|
|||
|
|
|||
|
# Shop
|
|||
|
def OpenShopDialog(self, vid):
|
|||
|
self.wndInventory.Show()
|
|||
|
self.wndInventory.SetTop()
|
|||
|
self.dlgShop.Open(vid)
|
|||
|
self.dlgShop.SetTop()
|
|||
|
|
|||
|
def CloseShopDialog(self):
|
|||
|
self.dlgShop.Close()
|
|||
|
|
|||
|
def RefreshShopDialog(self):
|
|||
|
self.dlgShop.Refresh()
|
|||
|
|
|||
|
## Quest
|
|||
|
def OpenCharacterWindowQuestPage(self):
|
|||
|
self.wndCharacter.Show()
|
|||
|
self.wndCharacter.SetState("QUEST")
|
|||
|
|
|||
|
def OpenQuestWindow(self, skin, idx):
|
|||
|
|
|||
|
wnds = ()
|
|||
|
|
|||
|
q = uiQuest.QuestDialog(skin, idx)
|
|||
|
q.SetWindowName("QuestWindow" + str(idx))
|
|||
|
q.Show()
|
|||
|
if skin:
|
|||
|
q.Lock()
|
|||
|
wnds = self.__HideWindows()
|
|||
|
|
|||
|
# UNKNOWN_UPDATE
|
|||
|
q.AddOnDoneEvent(lambda tmp_self, args=wnds: self.__ShowWindows(args))
|
|||
|
# END_OF_UNKNOWN_UPDATE
|
|||
|
|
|||
|
if skin:
|
|||
|
q.AddOnCloseEvent(q.Unlock)
|
|||
|
|
|||
|
q.AddOnCloseEvent(lambda s = self, qw = q: s.__dict__.__getitem__("wndQuestWindow").remove(qw))
|
|||
|
|
|||
|
# UNKNOWN_UPDATE
|
|||
|
self.wndQuestWindow.append(q)
|
|||
|
# END_OF_UNKNOWN_UPDATE
|
|||
|
|
|||
|
## Exchange
|
|||
|
def StartExchange(self):
|
|||
|
self.dlgExchange.OpenDialog()
|
|||
|
self.dlgExchange.Refresh()
|
|||
|
|
|||
|
def EndExchange(self):
|
|||
|
self.dlgExchange.CloseDialog()
|
|||
|
|
|||
|
def RefreshExchange(self):
|
|||
|
self.dlgExchange.Refresh()
|
|||
|
|
|||
|
## Party
|
|||
|
def AddPartyMember(self, pid, name):
|
|||
|
self.wndParty.AddPartyMember(pid, name)
|
|||
|
|
|||
|
self.__ArrangeQuestButton()
|
|||
|
|
|||
|
def UpdatePartyMemberInfo(self, pid):
|
|||
|
self.wndParty.UpdatePartyMemberInfo(pid)
|
|||
|
|
|||
|
def RemovePartyMember(self, pid):
|
|||
|
self.wndParty.RemovePartyMember(pid)
|
|||
|
|
|||
|
##!! 20061026.levites.<2E><><EFBFBD><EFBFBD>Ʈ_<C6AE><5F>ġ_<C4A1><5F><EFBFBD><EFBFBD>
|
|||
|
self.__ArrangeQuestButton()
|
|||
|
|
|||
|
def LinkPartyMember(self, pid, vid):
|
|||
|
self.wndParty.LinkPartyMember(pid, vid)
|
|||
|
|
|||
|
def UnlinkPartyMember(self, pid):
|
|||
|
self.wndParty.UnlinkPartyMember(pid)
|
|||
|
|
|||
|
def UnlinkAllPartyMember(self):
|
|||
|
self.wndParty.UnlinkAllPartyMember()
|
|||
|
|
|||
|
def ExitParty(self):
|
|||
|
self.wndParty.ExitParty()
|
|||
|
|
|||
|
##!! 20061026.levites.<2E><><EFBFBD><EFBFBD>Ʈ_<C6AE><5F>ġ_<C4A1><5F><EFBFBD><EFBFBD>
|
|||
|
self.__ArrangeQuestButton()
|
|||
|
|
|||
|
def PartyHealReady(self):
|
|||
|
self.wndParty.PartyHealReady()
|
|||
|
|
|||
|
def ChangePartyParameter(self, distributionMode):
|
|||
|
self.wndParty.ChangePartyParameter(distributionMode)
|
|||
|
|
|||
|
## Safebox
|
|||
|
def AskSafeboxPassword(self):
|
|||
|
if self.wndSafebox.IsShow():
|
|||
|
return
|
|||
|
|
|||
|
# SAFEBOX_PASSWORD
|
|||
|
self.dlgPassword.SetTitle(locale.PASSWORD_TITLE)
|
|||
|
self.dlgPassword.SetSendMessage("/safebox_password ")
|
|||
|
# END_OF_SAFEBOX_PASSWORD
|
|||
|
|
|||
|
self.dlgPassword.ShowDialog()
|
|||
|
|
|||
|
def OpenSafeboxWindow(self, size):
|
|||
|
self.dlgPassword.CloseDialog()
|
|||
|
self.wndSafebox.ShowWindow(size)
|
|||
|
|
|||
|
def RefreshSafeboxMoney(self):
|
|||
|
self.wndSafebox.RefreshSafeboxMoney()
|
|||
|
|
|||
|
def CommandCloseSafebox(self):
|
|||
|
self.wndSafebox.CommandCloseSafebox()
|
|||
|
|
|||
|
# ITEM_MALL
|
|||
|
def AskMallPassword(self):
|
|||
|
if self.wndMall.IsShow():
|
|||
|
return
|
|||
|
self.dlgPassword.SetTitle(locale.MALL_PASSWORD_TITLE)
|
|||
|
self.dlgPassword.SetSendMessage("/mall_password ")
|
|||
|
self.dlgPassword.ShowDialog()
|
|||
|
|
|||
|
def OpenMallWindow(self, size):
|
|||
|
self.dlgPassword.CloseDialog()
|
|||
|
self.wndMall.ShowWindow(size)
|
|||
|
|
|||
|
def CommandCloseMall(self):
|
|||
|
self.wndMall.CommandCloseMall()
|
|||
|
# END_OF_ITEM_MALL
|
|||
|
|
|||
|
## Guild
|
|||
|
def OnStartGuildWar(self, guildSelf, guildOpp):
|
|||
|
self.wndGuild.OnStartGuildWar(guildSelf, guildOpp)
|
|||
|
|
|||
|
guildWarScoreBoard = uiGuild.GuildWarScoreBoard()
|
|||
|
guildWarScoreBoard.Open(guildSelf, guildOpp)
|
|||
|
guildWarScoreBoard.Show()
|
|||
|
self.guildScoreBoardDict[uiGuild.GetGVGKey(guildSelf, guildOpp)] = guildWarScoreBoard
|
|||
|
|
|||
|
def OnEndGuildWar(self, guildSelf, guildOpp):
|
|||
|
self.wndGuild.OnEndGuildWar(guildSelf, guildOpp)
|
|||
|
|
|||
|
key = uiGuild.GetGVGKey(guildSelf, guildOpp)
|
|||
|
|
|||
|
if not self.guildScoreBoardDict.has_key(key):
|
|||
|
return
|
|||
|
|
|||
|
self.guildScoreBoardDict[key].Destroy()
|
|||
|
del self.guildScoreBoardDict[key]
|
|||
|
|
|||
|
# GUILDWAR_MEMBER_COUNT
|
|||
|
def UpdateMemberCount(self, gulidID1, memberCount1, guildID2, memberCount2):
|
|||
|
key = uiGuild.GetGVGKey(gulidID1, guildID2)
|
|||
|
|
|||
|
if not self.guildScoreBoardDict.has_key(key):
|
|||
|
return
|
|||
|
|
|||
|
self.guildScoreBoardDict[key].UpdateMemberCount(gulidID1, memberCount1, guildID2, memberCount2)
|
|||
|
# END_OF_GUILDWAR_MEMBER_COUNT
|
|||
|
|
|||
|
def OnRecvGuildWarPoint(self, gainGuildID, opponentGuildID, point):
|
|||
|
key = uiGuild.GetGVGKey(gainGuildID, opponentGuildID)
|
|||
|
if not self.guildScoreBoardDict.has_key(key):
|
|||
|
return
|
|||
|
|
|||
|
guildBoard = self.guildScoreBoardDict[key]
|
|||
|
guildBoard.SetScore(gainGuildID, opponentGuildID, point)
|
|||
|
|
|||
|
## PK Mode
|
|||
|
def OnChangePKMode(self):
|
|||
|
self.wndCharacter.RefreshAlignment()
|
|||
|
self.dlgSystem.OnChangePKMode()
|
|||
|
|
|||
|
## Refine
|
|||
|
def OpenRefineDialog(self, targetItemPos, nextGradeItemVnum, cost, prob, type):
|
|||
|
self.dlgRefineNew.Open(targetItemPos, nextGradeItemVnum, cost, prob, type)
|
|||
|
|
|||
|
def AppendMaterialToRefineDialog(self, vnum, count):
|
|||
|
self.dlgRefineNew.AppendMaterial(vnum, count)
|
|||
|
|
|||
|
## Show & Hide
|
|||
|
def ShowDefaultWindows(self):
|
|||
|
self.wndTaskBar.Show()
|
|||
|
self.wndMiniMap.Show()
|
|||
|
self.wndMiniMap.ShowMiniMap()
|
|||
|
if self.wndEnergyBar:
|
|||
|
self.wndEnergyBar.Show()
|
|||
|
|
|||
|
def ShowAllWindows(self):
|
|||
|
self.wndTaskBar.Show()
|
|||
|
self.wndCharacter.Show()
|
|||
|
self.wndInventory.Show()
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.Show()
|
|||
|
self.wndDragonSoulRefine.Show()
|
|||
|
self.wndChat.Show()
|
|||
|
self.wndMiniMap.Show()
|
|||
|
if self.wndEnergyBar:
|
|||
|
self.wndEnergyBar.Show()
|
|||
|
if self.wndExpandedTaskBar:
|
|||
|
self.wndExpandedTaskBar.Show()
|
|||
|
self.wndExpandedTaskBar.SetTop()
|
|||
|
|
|||
|
def HideAllWindows(self):
|
|||
|
if self.wndTaskBar:
|
|||
|
self.wndTaskBar.Hide()
|
|||
|
|
|||
|
if self.wndEnergyBar:
|
|||
|
self.wndEnergyBar.Hide()
|
|||
|
|
|||
|
if self.wndCharacter:
|
|||
|
self.wndCharacter.Hide()
|
|||
|
|
|||
|
if self.wndInventory:
|
|||
|
self.wndInventory.Hide()
|
|||
|
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.Hide()
|
|||
|
self.wndDragonSoulRefine.Hide()
|
|||
|
|
|||
|
if self.wndChat:
|
|||
|
self.wndChat.Hide()
|
|||
|
|
|||
|
if self.wndMiniMap:
|
|||
|
self.wndMiniMap.Hide()
|
|||
|
|
|||
|
if self.wndMessenger:
|
|||
|
self.wndMessenger.Hide()
|
|||
|
|
|||
|
if self.wndGuild:
|
|||
|
self.wndGuild.Hide()
|
|||
|
|
|||
|
if self.wndExpandedTaskBar:
|
|||
|
self.wndExpandedTaskBar.Hide()
|
|||
|
|
|||
|
|
|||
|
def ShowMouseImage(self):
|
|||
|
self.wndTaskBar.ShowMouseImage()
|
|||
|
|
|||
|
def HideMouseImage(self):
|
|||
|
self.wndTaskBar.HideMouseImage()
|
|||
|
|
|||
|
def ToggleChat(self):
|
|||
|
if TRUE == self.wndChat.IsEditMode():
|
|||
|
self.wndChat.CloseChat()
|
|||
|
else:
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ä<><C3A4> <20>Է<EFBFBD><D4B7><EFBFBD> <20>ȵ<EFBFBD>
|
|||
|
if self.wndWeb and self.wndWeb.IsShow():
|
|||
|
pass
|
|||
|
else:
|
|||
|
self.wndChat.OpenChat()
|
|||
|
|
|||
|
def IsOpenChat(self):
|
|||
|
return self.wndChat.IsEditMode()
|
|||
|
|
|||
|
def SetChatFocus(self):
|
|||
|
self.wndChat.SetChatFocus()
|
|||
|
|
|||
|
def OpenRestartDialog(self):
|
|||
|
self.dlgRestart.OpenDialog()
|
|||
|
self.dlgRestart.SetTop()
|
|||
|
|
|||
|
def CloseRestartDialog(self):
|
|||
|
self.dlgRestart.Close()
|
|||
|
|
|||
|
def ToggleSystemDialog(self):
|
|||
|
if FALSE == self.dlgSystem.IsShow():
|
|||
|
self.dlgSystem.OpenDialog()
|
|||
|
self.dlgSystem.SetTop()
|
|||
|
else:
|
|||
|
self.dlgSystem.Close()
|
|||
|
|
|||
|
def OpenSystemDialog(self):
|
|||
|
self.dlgSystem.OpenDialog()
|
|||
|
self.dlgSystem.SetTop()
|
|||
|
|
|||
|
def ToggleMessenger(self):
|
|||
|
if self.wndMessenger.IsShow():
|
|||
|
self.wndMessenger.Hide()
|
|||
|
else:
|
|||
|
self.wndMessenger.SetTop()
|
|||
|
self.wndMessenger.Show()
|
|||
|
|
|||
|
def ToggleMiniMap(self):
|
|||
|
if app.IsPressed(app.DIK_LSHIFT) or app.IsPressed(app.DIK_RSHIFT):
|
|||
|
if FALSE == self.wndMiniMap.isShowMiniMap():
|
|||
|
self.wndMiniMap.ShowMiniMap()
|
|||
|
self.wndMiniMap.SetTop()
|
|||
|
else:
|
|||
|
self.wndMiniMap.HideMiniMap()
|
|||
|
|
|||
|
else:
|
|||
|
self.wndMiniMap.ToggleAtlasWindow()
|
|||
|
|
|||
|
def PressMKey(self):
|
|||
|
if app.IsPressed(app.DIK_LALT) or app.IsPressed(app.DIK_RALT):
|
|||
|
self.ToggleMessenger()
|
|||
|
|
|||
|
else:
|
|||
|
self.ToggleMiniMap()
|
|||
|
|
|||
|
def SetMapName(self, mapName):
|
|||
|
self.wndMiniMap.SetMapName(mapName)
|
|||
|
|
|||
|
def MiniMapScaleUp(self):
|
|||
|
self.wndMiniMap.ScaleUp()
|
|||
|
|
|||
|
def MiniMapScaleDown(self):
|
|||
|
self.wndMiniMap.ScaleDown()
|
|||
|
|
|||
|
def ToggleCharacterWindow(self, state):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if FALSE == self.wndCharacter.IsShow():
|
|||
|
self.OpenCharacterWindowWithState(state)
|
|||
|
else:
|
|||
|
if state == self.wndCharacter.GetState():
|
|||
|
self.wndCharacter.OverOutItem()
|
|||
|
self.wndCharacter.Hide()
|
|||
|
else:
|
|||
|
self.wndCharacter.SetState(state)
|
|||
|
|
|||
|
def OpenCharacterWindowWithState(self, state):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
self.wndCharacter.SetState(state)
|
|||
|
self.wndCharacter.Show()
|
|||
|
self.wndCharacter.SetTop()
|
|||
|
|
|||
|
def ToggleCharacterWindowStatusPage(self):
|
|||
|
self.ToggleCharacterWindow("STATUS")
|
|||
|
|
|||
|
def ToggleInventoryWindow(self):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if FALSE == self.wndInventory.IsShow():
|
|||
|
self.wndInventory.Show()
|
|||
|
self.wndInventory.SetTop()
|
|||
|
else:
|
|||
|
self.wndInventory.OverOutItem()
|
|||
|
self.wndInventory.Close()
|
|||
|
|
|||
|
def ToggleExpandedButton(self):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if FALSE == self.wndExpandedTaskBar.IsShow():
|
|||
|
self.wndExpandedTaskBar.Show()
|
|||
|
self.wndExpandedTaskBar.SetTop()
|
|||
|
else:
|
|||
|
self.wndExpandedTaskBar.Close()
|
|||
|
|
|||
|
# <20><>ȥ<EFBFBD><C8A5>
|
|||
|
def DragonSoulActivate(self, deck):
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.ActivateDragonSoulByExtern(deck)
|
|||
|
|
|||
|
def DragonSoulDeactivate(self):
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.DeactivateDragonSoul()
|
|||
|
|
|||
|
def Highligt_Item(self, inven_type, inven_pos):
|
|||
|
if player.DRAGON_SOUL_INVENTORY == inven_type:
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
self.wndDragonSoul.HighlightSlot(inven_pos)
|
|||
|
|
|||
|
def DragonSoulGiveQuilification(self):
|
|||
|
self.DRAGON_SOUL_IS_QUALIFIED = TRUE
|
|||
|
self.wndExpandedTaskBar.SetToolTipText(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, uiScriptLocale.TASKBAR_DRAGON_SOUL)
|
|||
|
|
|||
|
def ToggleDragonSoulWindow(self):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
if FALSE == self.wndDragonSoul.IsShow():
|
|||
|
if self.DRAGON_SOUL_IS_QUALIFIED:
|
|||
|
self.wndDragonSoul.Show()
|
|||
|
else:
|
|||
|
try:
|
|||
|
self.wndPopupDialog.SetText(locale.DRAGON_SOUL_UNQUALIFIED)
|
|||
|
self.wndPopupDialog.Open()
|
|||
|
except:
|
|||
|
self.wndPopupDialog = uiCommon.PopupDialog()
|
|||
|
self.wndPopupDialog.SetText(locale.DRAGON_SOUL_UNQUALIFIED)
|
|||
|
self.wndPopupDialog.Open()
|
|||
|
else:
|
|||
|
self.wndDragonSoul.Close()
|
|||
|
|
|||
|
def ToggleDragonSoulWindowWithNoInfo(self):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
if FALSE == self.wndDragonSoul.IsShow():
|
|||
|
if self.DRAGON_SOUL_IS_QUALIFIED:
|
|||
|
self.wndDragonSoul.Show()
|
|||
|
else:
|
|||
|
self.wndDragonSoul.Close()
|
|||
|
|
|||
|
def FailDragonSoulRefine(self, reason, inven_type, inven_pos):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
if TRUE == self.wndDragonSoulRefine.IsShow():
|
|||
|
self.wndDragonSoulRefine.RefineFail(reason, inven_type, inven_pos)
|
|||
|
|
|||
|
def SucceedDragonSoulRefine(self, inven_type, inven_pos):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
if TRUE == self.wndDragonSoulRefine.IsShow():
|
|||
|
self.wndDragonSoulRefine.RefineSucceed(inven_type, inven_pos)
|
|||
|
|
|||
|
def OpenDragonSoulRefineWindow(self):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
if FALSE == self.wndDragonSoulRefine.IsShow():
|
|||
|
self.wndDragonSoulRefine.Show()
|
|||
|
if None != self.wndDragonSoul:
|
|||
|
if FALSE == self.wndDragonSoul.IsShow():
|
|||
|
self.wndDragonSoul.Show()
|
|||
|
|
|||
|
def CloseDragonSoulRefineWindow(self):
|
|||
|
if FALSE == player.IsObserverMode():
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
if TRUE == self.wndDragonSoulRefine.IsShow():
|
|||
|
self.wndDragonSoulRefine.Close()
|
|||
|
|
|||
|
# <20><>ȥ<EFBFBD><C8A5> <20><>
|
|||
|
|
|||
|
def ToggleGuildWindow(self):
|
|||
|
if not self.wndGuild.IsShow():
|
|||
|
if self.wndGuild.CanOpen():
|
|||
|
self.wndGuild.Open()
|
|||
|
else:
|
|||
|
chat.AppendChat(chat.CHAT_TYPE_INFO, locale.GUILD_YOU_DO_NOT_JOIN)
|
|||
|
else:
|
|||
|
self.wndGuild.OverOutItem()
|
|||
|
self.wndGuild.Hide()
|
|||
|
|
|||
|
def ToggleChatLogWindow(self):
|
|||
|
if self.wndChatLog.IsShow():
|
|||
|
self.wndChatLog.Hide()
|
|||
|
else:
|
|||
|
self.wndChatLog.Show()
|
|||
|
|
|||
|
def CheckGameButton(self):
|
|||
|
if self.wndGameButton:
|
|||
|
self.wndGameButton.CheckGameButton()
|
|||
|
|
|||
|
def __OnClickStatusPlusButton(self):
|
|||
|
self.ToggleCharacterWindow("STATUS")
|
|||
|
|
|||
|
def __OnClickSkillPlusButton(self):
|
|||
|
self.ToggleCharacterWindow("SKILL")
|
|||
|
|
|||
|
def __OnClickQuestButton(self):
|
|||
|
self.ToggleCharacterWindow("QUEST")
|
|||
|
|
|||
|
def __OnClickHelpButton(self):
|
|||
|
player.SetPlayTime(1)
|
|||
|
self.CheckGameButton()
|
|||
|
self.OpenHelpWindow()
|
|||
|
|
|||
|
def __OnClickBuildButton(self):
|
|||
|
self.BUILD_OpenWindow()
|
|||
|
|
|||
|
def OpenHelpWindow(self):
|
|||
|
self.wndUICurtain.Show()
|
|||
|
self.wndHelp.Open()
|
|||
|
|
|||
|
def CloseHelpWindow(self):
|
|||
|
self.wndUICurtain.Hide()
|
|||
|
self.wndHelp.Close()
|
|||
|
|
|||
|
def OpenWebWindow(self, url):
|
|||
|
self.wndWeb.Open(url)
|
|||
|
|
|||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ä<><C3A4><EFBFBD><EFBFBD> <20>ݴ´<DDB4>
|
|||
|
self.wndChat.CloseChat()
|
|||
|
|
|||
|
# show GIFT
|
|||
|
def ShowGift(self):
|
|||
|
self.wndTaskBar.ShowGift()
|
|||
|
|
|||
|
def CloseWbWindow(self):
|
|||
|
self.wndWeb.Close()
|
|||
|
|
|||
|
def OpenCubeWindow(self):
|
|||
|
self.wndCube.Open()
|
|||
|
|
|||
|
if FALSE == self.wndInventory.IsShow():
|
|||
|
self.wndInventory.Show()
|
|||
|
|
|||
|
def UpdateCubeInfo(self, gold, itemVnum, count):
|
|||
|
self.wndCube.UpdateInfo(gold, itemVnum, count)
|
|||
|
|
|||
|
def CloseCubeWindow(self):
|
|||
|
self.wndCube.Close()
|
|||
|
|
|||
|
def FailedCubeWork(self):
|
|||
|
self.wndCube.Refresh()
|
|||
|
|
|||
|
def SucceedCubeWork(self, itemVnum, count):
|
|||
|
self.wndCube.Clear()
|
|||
|
|
|||
|
print "ť<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>! [%d:%d]" % (itemVnum, count)
|
|||
|
|
|||
|
if 0: # <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>
|
|||
|
self.wndCubeResult.SetPosition(*self.wndCube.GetGlobalPosition())
|
|||
|
self.wndCubeResult.SetCubeResultItem(itemVnum, count)
|
|||
|
self.wndCubeResult.Open()
|
|||
|
self.wndCubeResult.SetTop()
|
|||
|
|
|||
|
def __HideWindows(self):
|
|||
|
hideWindows = self.wndTaskBar,\
|
|||
|
self.wndCharacter,\
|
|||
|
self.wndInventory,\
|
|||
|
self.wndMiniMap,\
|
|||
|
self.wndGuild,\
|
|||
|
self.wndMessenger,\
|
|||
|
self.wndChat,\
|
|||
|
self.wndParty,\
|
|||
|
self.wndGameButton,
|
|||
|
|
|||
|
if self.wndEnergyBar:
|
|||
|
hideWindows += self.wndEnergyBar,
|
|||
|
|
|||
|
if self.wndExpandedTaskBar:
|
|||
|
hideWindows += self.wndExpandedTaskBar,
|
|||
|
|
|||
|
if app.ENABLE_DRAGON_SOUL_SYSTEM:
|
|||
|
hideWindows += self.wndDragonSoul,\
|
|||
|
self.wndDragonSoulRefine,
|
|||
|
|
|||
|
hideWindows = filter(lambda x:x.IsShow(), hideWindows)
|
|||
|
map(lambda x:x.Hide(), hideWindows)
|
|||
|
import sys
|
|||
|
|
|||
|
self.HideAllQuestButton()
|
|||
|
self.HideAllWhisperButton()
|
|||
|
|
|||
|
if self.wndChat.IsEditMode():
|
|||
|
self.wndChat.CloseChat()
|
|||
|
|
|||
|
return hideWindows
|
|||
|
|
|||
|
def __ShowWindows(self, wnds):
|
|||
|
import sys
|
|||
|
map(lambda x:x.Show(), wnds)
|
|||
|
global IsQBHide
|
|||
|
if not IsQBHide:
|
|||
|
self.ShowAllQuestButton()
|
|||
|
else:
|
|||
|
self.HideAllQuestButton()
|
|||
|
|
|||
|
self.ShowAllWhisperButton()
|
|||
|
|
|||
|
def BINARY_OpenAtlasWindow(self):
|
|||
|
if self.wndMiniMap:
|
|||
|
self.wndMiniMap.ShowAtlas()
|
|||
|
|
|||
|
def BINARY_SetObserverMode(self, flag):
|
|||
|
self.wndGameButton.SetObserverMode(flag)
|
|||
|
|
|||
|
# ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
def BINARY_OpenSelectItemWindow(self):
|
|||
|
self.wndItemSelect.Open()
|
|||
|
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
### Private Shop ###
|
|||
|
|
|||
|
def OpenPrivateShopInputNameDialog(self):
|
|||
|
#if player.IsInSafeArea():
|
|||
|
# chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CANNOT_OPEN_PRIVATE_SHOP_IN_SAFE_AREA)
|
|||
|
# return
|
|||
|
|
|||
|
inputDialog = uiCommon.InputDialog()
|
|||
|
inputDialog.SetTitle(locale.PRIVATE_SHOP_INPUT_NAME_DIALOG_TITLE)
|
|||
|
inputDialog.SetMaxLength(32)
|
|||
|
inputDialog.SetAcceptEvent(ui.__mem_func__(self.OpenPrivateShopBuilder))
|
|||
|
inputDialog.SetCancelEvent(ui.__mem_func__(self.ClosePrivateShopInputNameDialog))
|
|||
|
inputDialog.Open()
|
|||
|
self.inputDialog = inputDialog
|
|||
|
|
|||
|
def ClosePrivateShopInputNameDialog(self):
|
|||
|
self.inputDialog = None
|
|||
|
return TRUE
|
|||
|
|
|||
|
def OpenPrivateShopBuilder(self):
|
|||
|
|
|||
|
if not self.inputDialog:
|
|||
|
return TRUE
|
|||
|
|
|||
|
if not len(self.inputDialog.GetText()):
|
|||
|
return TRUE
|
|||
|
|
|||
|
self.privateShopBuilder.Open(self.inputDialog.GetText())
|
|||
|
self.ClosePrivateShopInputNameDialog()
|
|||
|
return TRUE
|
|||
|
|
|||
|
def AppearPrivateShop(self, vid, text):
|
|||
|
|
|||
|
board = uiPrivateShopBuilder.PrivateShopAdvertisementBoard()
|
|||
|
board.Open(vid, text)
|
|||
|
|
|||
|
self.privateShopAdvertisementBoardDict[vid] = board
|
|||
|
|
|||
|
def DisappearPrivateShop(self, vid):
|
|||
|
|
|||
|
if not self.privateShopAdvertisementBoardDict.has_key(vid):
|
|||
|
return
|
|||
|
|
|||
|
del self.privateShopAdvertisementBoardDict[vid]
|
|||
|
uiPrivateShopBuilder.DeleteADBoard(vid)
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
### Equipment ###
|
|||
|
|
|||
|
def OpenEquipmentDialog(self, vid):
|
|||
|
dlg = uiEquipmentDialog.EquipmentDialog()
|
|||
|
dlg.SetItemToolTip(self.tooltipItem)
|
|||
|
dlg.SetCloseEvent(ui.__mem_func__(self.CloseEquipmentDialog))
|
|||
|
dlg.Open(vid)
|
|||
|
|
|||
|
self.equipmentDialogDict[vid] = dlg
|
|||
|
|
|||
|
def SetEquipmentDialogItem(self, vid, slotIndex, vnum, count):
|
|||
|
if not vid in self.equipmentDialogDict:
|
|||
|
return
|
|||
|
self.equipmentDialogDict[vid].SetEquipmentDialogItem(slotIndex, vnum, count)
|
|||
|
|
|||
|
def SetEquipmentDialogSocket(self, vid, slotIndex, socketIndex, value):
|
|||
|
if not vid in self.equipmentDialogDict:
|
|||
|
return
|
|||
|
self.equipmentDialogDict[vid].SetEquipmentDialogSocket(slotIndex, socketIndex, value)
|
|||
|
|
|||
|
def SetEquipmentDialogAttr(self, vid, slotIndex, attrIndex, type, value):
|
|||
|
if not vid in self.equipmentDialogDict:
|
|||
|
return
|
|||
|
self.equipmentDialogDict[vid].SetEquipmentDialogAttr(slotIndex, attrIndex, type, value)
|
|||
|
|
|||
|
def CloseEquipmentDialog(self, vid):
|
|||
|
if not vid in self.equipmentDialogDict:
|
|||
|
return
|
|||
|
del self.equipmentDialogDict[vid]
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
### Quest ###
|
|||
|
def BINARY_ClearQuest(self, index):
|
|||
|
btn = self.__FindQuestButton(index)
|
|||
|
if 0 != btn:
|
|||
|
self.__DestroyQuestButton(btn)
|
|||
|
|
|||
|
def RecvQuest(self, index, name):
|
|||
|
# QUEST_LETTER_IMAGE
|
|||
|
self.BINARY_RecvQuest(index, name, "file", locale.GetLetterImageName())
|
|||
|
# END_OF_QUEST_LETTER_IMAGE
|
|||
|
|
|||
|
def BINARY_RecvQuest(self, index, name, iconType, iconName):
|
|||
|
|
|||
|
btn = self.__FindQuestButton(index)
|
|||
|
if 0 != btn:
|
|||
|
self.__DestroyQuestButton(btn)
|
|||
|
|
|||
|
btn = uiWhisper.WhisperButton()
|
|||
|
|
|||
|
# QUEST_LETTER_IMAGE
|
|||
|
##!! 20061026.levites.<2E><><EFBFBD><EFBFBD>Ʈ_<C6AE>̹<EFBFBD><CCB9><EFBFBD>_<EFBFBD><5F>ü
|
|||
|
import item
|
|||
|
if "item"==iconType:
|
|||
|
item.SelectItem(int(iconName))
|
|||
|
buttonImageFileName=item.GetIconImageFileName()
|
|||
|
else:
|
|||
|
buttonImageFileName=iconName
|
|||
|
|
|||
|
if locale.IsEUROPE():
|
|||
|
if "highlight" == iconType:
|
|||
|
btn.SetUpVisual("locale/ymir_ui/highlighted_quest.tga")
|
|||
|
btn.SetOverVisual("locale/ymir_ui/highlighted_quest_r.tga")
|
|||
|
btn.SetDownVisual("locale/ymir_ui/highlighted_quest_r.tga")
|
|||
|
else:
|
|||
|
btn.SetUpVisual(locale.GetLetterCloseImageName())
|
|||
|
btn.SetOverVisual(locale.GetLetterOpenImageName())
|
|||
|
btn.SetDownVisual(locale.GetLetterOpenImageName())
|
|||
|
else:
|
|||
|
btn.SetUpVisual(buttonImageFileName)
|
|||
|
btn.SetOverVisual(buttonImageFileName)
|
|||
|
btn.SetDownVisual(buttonImageFileName)
|
|||
|
btn.Flash()
|
|||
|
# END_OF_QUEST_LETTER_IMAGE
|
|||
|
|
|||
|
if locale.IsARABIC():
|
|||
|
btn.SetToolTipText(name, 0, 35)
|
|||
|
btn.ToolTipText.SetHorizontalAlignCenter()
|
|||
|
else:
|
|||
|
btn.SetToolTipText(name, -20, 35)
|
|||
|
btn.ToolTipText.SetHorizontalAlignLeft()
|
|||
|
|
|||
|
btn.SetEvent(ui.__mem_func__(self.__StartQuest), btn)
|
|||
|
btn.Show()
|
|||
|
|
|||
|
btn.index = index
|
|||
|
btn.name = name
|
|||
|
|
|||
|
self.questButtonList.insert(0, btn)
|
|||
|
self.__ArrangeQuestButton()
|
|||
|
|
|||
|
#chat.AppendChat(chat.CHAT_TYPE_NOTICE, locale.QUEST_APPEND)
|
|||
|
|
|||
|
def __ArrangeQuestButton(self):
|
|||
|
|
|||
|
screenWidth = wndMgr.GetScreenWidth()
|
|||
|
screenHeight = wndMgr.GetScreenHeight()
|
|||
|
|
|||
|
##!! 20061026.levites.<2E><><EFBFBD><EFBFBD>Ʈ_<C6AE><5F>ġ_<C4A1><5F><EFBFBD><EFBFBD>
|
|||
|
if self.wndParty.IsShow():
|
|||
|
xPos = 100 + 30
|
|||
|
else:
|
|||
|
xPos = 20
|
|||
|
|
|||
|
if locale.IsARABIC():
|
|||
|
xPos = xPos + 15
|
|||
|
|
|||
|
yPos = 170 * screenHeight / 600
|
|||
|
yCount = (screenHeight - 330) / 63
|
|||
|
|
|||
|
count = 0
|
|||
|
for btn in self.questButtonList:
|
|||
|
|
|||
|
btn.SetPosition(xPos + (int(count/yCount) * 100), yPos + (count%yCount * 63))
|
|||
|
count += 1
|
|||
|
global IsQBHide
|
|||
|
if IsQBHide:
|
|||
|
btn.Hide()
|
|||
|
else:
|
|||
|
btn.Show()
|
|||
|
|
|||
|
def __StartQuest(self, btn):
|
|||
|
event.QuestButtonClick(btn.index)
|
|||
|
self.__DestroyQuestButton(btn)
|
|||
|
|
|||
|
def __FindQuestButton(self, index):
|
|||
|
for btn in self.questButtonList:
|
|||
|
if btn.index == index:
|
|||
|
return btn
|
|||
|
|
|||
|
return 0
|
|||
|
|
|||
|
def __DestroyQuestButton(self, btn):
|
|||
|
btn.SetEvent(0)
|
|||
|
self.questButtonList.remove(btn)
|
|||
|
self.__ArrangeQuestButton()
|
|||
|
|
|||
|
def HideAllQuestButton(self):
|
|||
|
for btn in self.questButtonList:
|
|||
|
btn.Hide()
|
|||
|
|
|||
|
def ShowAllQuestButton(self):
|
|||
|
for btn in self.questButtonList:
|
|||
|
btn.Show()
|
|||
|
#####################################################################################
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
### Whisper ###
|
|||
|
|
|||
|
def __InitWhisper(self):
|
|||
|
chat.InitWhisper(self)
|
|||
|
|
|||
|
## ä<><C3A4>â<EFBFBD><C3A2> "<22><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȭâ<C8AD><C3A2> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
## <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WhisperDialogDict <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>.
|
|||
|
def OpenWhisperDialogWithoutTarget(self):
|
|||
|
if not self.dlgWhisperWithoutTarget:
|
|||
|
dlgWhisper = uiWhisper.WhisperDialog(self.MinimizeWhisperDialog, self.CloseWhisperDialog)
|
|||
|
dlgWhisper.BindInterface(self)
|
|||
|
dlgWhisper.LoadDialog()
|
|||
|
dlgWhisper.OpenWithoutTarget(self.RegisterTemporaryWhisperDialog)
|
|||
|
dlgWhisper.SetPosition(self.windowOpenPosition*30,self.windowOpenPosition*30)
|
|||
|
dlgWhisper.Show()
|
|||
|
self.dlgWhisperWithoutTarget = dlgWhisper
|
|||
|
|
|||
|
self.windowOpenPosition = (self.windowOpenPosition+1) % 5
|
|||
|
|
|||
|
else:
|
|||
|
self.dlgWhisperWithoutTarget.SetTop()
|
|||
|
self.dlgWhisperWithoutTarget.OpenWithoutTarget(self.RegisterTemporaryWhisperDialog)
|
|||
|
|
|||
|
## <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȭâ<C8AD><C3A2><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WhisperDialogDict<63><74> â<><C3A2> <20>־<EFBFBD><D6BE>ִ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
def RegisterTemporaryWhisperDialog(self, name):
|
|||
|
if not self.dlgWhisperWithoutTarget:
|
|||
|
return
|
|||
|
|
|||
|
btn = self.__FindWhisperButton(name)
|
|||
|
if 0 != btn:
|
|||
|
self.__DestroyWhisperButton(btn)
|
|||
|
|
|||
|
elif self.whisperDialogDict.has_key(name):
|
|||
|
oldDialog = self.whisperDialogDict[name]
|
|||
|
oldDialog.Destroy()
|
|||
|
del self.whisperDialogDict[name]
|
|||
|
|
|||
|
self.whisperDialogDict[name] = self.dlgWhisperWithoutTarget
|
|||
|
self.dlgWhisperWithoutTarget.OpenWithTarget(name)
|
|||
|
self.dlgWhisperWithoutTarget = None
|
|||
|
self.__CheckGameMaster(name)
|
|||
|
|
|||
|
## ij<><C4B3><EFBFBD><EFBFBD> <20><EFBFBD><DEB4><EFBFBD> 1:1 <20><>ȭ <20>ϱ⸦ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
def OpenWhisperDialog(self, name):
|
|||
|
if not self.whisperDialogDict.has_key(name):
|
|||
|
dlg = self.__MakeWhisperDialog(name)
|
|||
|
dlg.OpenWithTarget(name)
|
|||
|
dlg.chatLine.SetFocus()
|
|||
|
dlg.Show()
|
|||
|
|
|||
|
self.__CheckGameMaster(name)
|
|||
|
btn = self.__FindWhisperButton(name)
|
|||
|
if 0 != btn:
|
|||
|
self.__DestroyWhisperButton(btn)
|
|||
|
|
|||
|
## <20>ٸ<EFBFBD> ij<><C4B3><EFBFBD>ͷκ<CDB7><CEBA><EFBFBD> <20><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBE><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD> <20>δ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
def RecvWhisper(self, name):
|
|||
|
if not self.whisperDialogDict.has_key(name):
|
|||
|
btn = self.__FindWhisperButton(name)
|
|||
|
if 0 == btn:
|
|||
|
btn = self.__MakeWhisperButton(name)
|
|||
|
btn.Flash()
|
|||
|
|
|||
|
chat.AppendChat(chat.CHAT_TYPE_NOTICE, locale.RECEIVE_MESSAGE % (name))
|
|||
|
|
|||
|
else:
|
|||
|
btn.Flash()
|
|||
|
elif self.IsGameMasterName(name):
|
|||
|
dlg = self.whisperDialogDict[name]
|
|||
|
dlg.SetGameMasterLook()
|
|||
|
|
|||
|
def MakeWhisperButton(self, name):
|
|||
|
self.__MakeWhisperButton(name)
|
|||
|
|
|||
|
## <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
def ShowWhisperDialog(self, btn):
|
|||
|
try:
|
|||
|
self.__MakeWhisperDialog(btn.name)
|
|||
|
dlgWhisper = self.whisperDialogDict[btn.name]
|
|||
|
dlgWhisper.OpenWithTarget(btn.name)
|
|||
|
dlgWhisper.Show()
|
|||
|
self.__CheckGameMaster(btn.name)
|
|||
|
except:
|
|||
|
import dbg
|
|||
|
dbg.TraceError("interface.ShowWhisperDialog - Failed to find key")
|
|||
|
|
|||
|
## <20><>ư <20>ʱ<EFBFBD>ȭ
|
|||
|
self.__DestroyWhisperButton(btn)
|
|||
|
|
|||
|
## WhisperDialog â<><C3A2><EFBFBD><EFBFBD> <20>ּ<EFBFBD>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>Ǵ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
## â<><C3A2> <20>ּ<EFBFBD>ȭ <20>մϴ<D5B4>.
|
|||
|
def MinimizeWhisperDialog(self, name):
|
|||
|
|
|||
|
if 0 != name:
|
|||
|
self.__MakeWhisperButton(name)
|
|||
|
|
|||
|
self.CloseWhisperDialog(name)
|
|||
|
|
|||
|
## WhisperDialog â<><C3A2><EFBFBD><EFBFBD> <20>ݱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>Ǵ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
## â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
|||
|
def CloseWhisperDialog(self, name):
|
|||
|
|
|||
|
if 0 == name:
|
|||
|
|
|||
|
if self.dlgWhisperWithoutTarget:
|
|||
|
self.dlgWhisperWithoutTarget.Destroy()
|
|||
|
self.dlgWhisperWithoutTarget = None
|
|||
|
|
|||
|
return
|
|||
|
|
|||
|
try:
|
|||
|
dlgWhisper = self.whisperDialogDict[name]
|
|||
|
dlgWhisper.Destroy()
|
|||
|
del self.whisperDialogDict[name]
|
|||
|
except:
|
|||
|
import dbg
|
|||
|
dbg.TraceError("interface.CloseWhisperDialog - Failed to find key")
|
|||
|
|
|||
|
## <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
def __ArrangeWhisperButton(self):
|
|||
|
|
|||
|
screenWidth = wndMgr.GetScreenWidth()
|
|||
|
screenHeight = wndMgr.GetScreenHeight()
|
|||
|
|
|||
|
xPos = screenWidth - 70
|
|||
|
yPos = 170 * screenHeight / 600
|
|||
|
yCount = (screenHeight - 330) / 63
|
|||
|
#yCount = (screenHeight - 285) / 63
|
|||
|
|
|||
|
count = 0
|
|||
|
for button in self.whisperButtonList:
|
|||
|
|
|||
|
button.SetPosition(xPos + (int(count/yCount) * -50), yPos + (count%yCount * 63))
|
|||
|
count += 1
|
|||
|
|
|||
|
## <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> Whisper <20><>ư<EFBFBD><C6B0> ã<><C3A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
## <20><>ư<EFBFBD><C6B0> <20><><EFBFBD>ųʸ<C5B3><CAB8><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
## <20>̷<EFBFBD> <20><><EFBFBD><EFBFBD> ToolTip<69><70><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><>ư<EFBFBD>鿡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>.
|
|||
|
def __FindWhisperButton(self, name):
|
|||
|
for button in self.whisperButtonList:
|
|||
|
if button.name == name:
|
|||
|
return button
|
|||
|
|
|||
|
return 0
|
|||
|
|
|||
|
## â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
|||
|
def __MakeWhisperDialog(self, name):
|
|||
|
dlgWhisper = uiWhisper.WhisperDialog(self.MinimizeWhisperDialog, self.CloseWhisperDialog)
|
|||
|
dlgWhisper.BindInterface(self)
|
|||
|
dlgWhisper.LoadDialog()
|
|||
|
dlgWhisper.SetPosition(self.windowOpenPosition*30,self.windowOpenPosition*30)
|
|||
|
self.whisperDialogDict[name] = dlgWhisper
|
|||
|
|
|||
|
self.windowOpenPosition = (self.windowOpenPosition+1) % 5
|
|||
|
|
|||
|
return dlgWhisper
|
|||
|
|
|||
|
## <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
|||
|
def __MakeWhisperButton(self, name):
|
|||
|
whisperButton = uiWhisper.WhisperButton()
|
|||
|
whisperButton.SetUpVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
|
|||
|
whisperButton.SetOverVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
|
|||
|
whisperButton.SetDownVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
|
|||
|
if self.IsGameMasterName(name):
|
|||
|
whisperButton.SetToolTipTextWithColor(name, 0xffffa200)
|
|||
|
else:
|
|||
|
whisperButton.SetToolTipText(name)
|
|||
|
whisperButton.ToolTipText.SetHorizontalAlignCenter()
|
|||
|
whisperButton.SetEvent(ui.__mem_func__(self.ShowWhisperDialog), whisperButton)
|
|||
|
whisperButton.Show()
|
|||
|
whisperButton.name = name
|
|||
|
|
|||
|
self.whisperButtonList.insert(0, whisperButton)
|
|||
|
self.__ArrangeWhisperButton()
|
|||
|
|
|||
|
return whisperButton
|
|||
|
|
|||
|
def __DestroyWhisperButton(self, button):
|
|||
|
button.SetEvent(0)
|
|||
|
self.whisperButtonList.remove(button)
|
|||
|
self.__ArrangeWhisperButton()
|
|||
|
|
|||
|
def HideAllWhisperButton(self):
|
|||
|
for btn in self.whisperButtonList:
|
|||
|
btn.Hide()
|
|||
|
|
|||
|
def ShowAllWhisperButton(self):
|
|||
|
for btn in self.whisperButtonList:
|
|||
|
btn.Show()
|
|||
|
|
|||
|
def __CheckGameMaster(self, name):
|
|||
|
if not self.listGMName.has_key(name):
|
|||
|
return
|
|||
|
if self.whisperDialogDict.has_key(name):
|
|||
|
dlg = self.whisperDialogDict[name]
|
|||
|
dlg.SetGameMasterLook()
|
|||
|
|
|||
|
def RegisterGameMasterName(self, name):
|
|||
|
if self.listGMName.has_key(name):
|
|||
|
return
|
|||
|
self.listGMName[name] = "GM"
|
|||
|
|
|||
|
def IsGameMasterName(self, name):
|
|||
|
if self.listGMName.has_key(name):
|
|||
|
return TRUE
|
|||
|
else:
|
|||
|
return FALSE
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
### Guild Building ###
|
|||
|
|
|||
|
def BUILD_OpenWindow(self):
|
|||
|
self.wndGuildBuilding = uiGuild.BuildGuildBuildingWindow()
|
|||
|
self.wndGuildBuilding.Open()
|
|||
|
self.wndGuildBuilding.wnds = self.__HideWindows()
|
|||
|
self.wndGuildBuilding.SetCloseEvent(ui.__mem_func__(self.BUILD_CloseWindow))
|
|||
|
|
|||
|
def BUILD_CloseWindow(self):
|
|||
|
self.__ShowWindows(self.wndGuildBuilding.wnds)
|
|||
|
self.wndGuildBuilding = None
|
|||
|
|
|||
|
def BUILD_OnUpdate(self):
|
|||
|
if not self.wndGuildBuilding:
|
|||
|
return
|
|||
|
|
|||
|
if self.wndGuildBuilding.IsPositioningMode():
|
|||
|
import background
|
|||
|
x, y, z = background.GetPickingPoint()
|
|||
|
self.wndGuildBuilding.SetBuildingPosition(x, y, z)
|
|||
|
|
|||
|
def BUILD_OnMouseLeftButtonDown(self):
|
|||
|
if not self.wndGuildBuilding:
|
|||
|
return
|
|||
|
|
|||
|
# GUILD_BUILDING
|
|||
|
if self.wndGuildBuilding.IsPositioningMode():
|
|||
|
self.wndGuildBuilding.SettleCurrentPosition()
|
|||
|
return TRUE
|
|||
|
elif self.wndGuildBuilding.IsPreviewMode():
|
|||
|
pass
|
|||
|
else:
|
|||
|
return TRUE
|
|||
|
# END_OF_GUILD_BUILDING
|
|||
|
return FALSE
|
|||
|
|
|||
|
def BUILD_OnMouseLeftButtonUp(self):
|
|||
|
if not self.wndGuildBuilding:
|
|||
|
return
|
|||
|
|
|||
|
if not self.wndGuildBuilding.IsPreviewMode():
|
|||
|
return TRUE
|
|||
|
|
|||
|
return FALSE
|
|||
|
|
|||
|
def BULID_EnterGuildArea(self, areaID):
|
|||
|
# GUILD_BUILDING
|
|||
|
mainCharacterName = player.GetMainCharacterName()
|
|||
|
masterName = guild.GetGuildMasterName()
|
|||
|
|
|||
|
if mainCharacterName != masterName:
|
|||
|
return
|
|||
|
|
|||
|
if areaID != player.GetGuildID():
|
|||
|
return
|
|||
|
# END_OF_GUILD_BUILDING
|
|||
|
|
|||
|
self.wndGameButton.ShowBuildButton()
|
|||
|
|
|||
|
def BULID_ExitGuildArea(self, areaID):
|
|||
|
self.wndGameButton.HideBuildButton()
|
|||
|
|
|||
|
#####################################################################################
|
|||
|
|
|||
|
def IsEditLineFocus(self):
|
|||
|
if self.ChatWindow.chatLine.IsFocus():
|
|||
|
return 1
|
|||
|
|
|||
|
if self.ChatWindow.chatToLine.IsFocus():
|
|||
|
return 1
|
|||
|
|
|||
|
return 0
|
|||
|
|
|||
|
def EmptyFunction(self):
|
|||
|
pass
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
|
|||
|
import app
|
|||
|
import wndMgr
|
|||
|
import systemSetting
|
|||
|
import mouseModule
|
|||
|
import grp
|
|||
|
import ui
|
|||
|
import locale
|
|||
|
|
|||
|
app.SetMouseHandler(mouseModule.mouseController)
|
|||
|
app.SetHairColorEnable(TRUE)
|
|||
|
wndMgr.SetMouseHandler(mouseModule.mouseController)
|
|||
|
wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
|
|||
|
app.Create(locale.APP_TITLE, systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
|
|||
|
mouseModule.mouseController.Create()
|
|||
|
|
|||
|
class TestGame(ui.Window):
|
|||
|
def __init__(self):
|
|||
|
ui.Window.__init__(self)
|
|||
|
|
|||
|
locale.LoadLocaleData()
|
|||
|
player.SetItemData(0, 27001, 10)
|
|||
|
player.SetItemData(1, 27004, 10)
|
|||
|
|
|||
|
self.interface = Interface()
|
|||
|
self.interface.MakeInterface()
|
|||
|
self.interface.ShowDefaultWindows()
|
|||
|
self.interface.RefreshInventory()
|
|||
|
#self.interface.OpenCubeWindow()
|
|||
|
|
|||
|
def __del__(self):
|
|||
|
ui.Window.__del__(self)
|
|||
|
|
|||
|
def OnUpdate(self):
|
|||
|
app.UpdateGame()
|
|||
|
|
|||
|
def OnRender(self):
|
|||
|
app.RenderGame()
|
|||
|
grp.PopState()
|
|||
|
grp.SetInterfaceRenderState()
|
|||
|
|
|||
|
game = TestGame()
|
|||
|
game.SetSize(systemSetting.GetWidth(), systemSetting.GetHeight())
|
|||
|
game.Show()
|
|||
|
|
|||
|
app.Loop()
|