Premium Red 13 Posted August 2, 2016 Premium Share Posted August 2, 2016 (edited) Hey, Well I wonder how I can remove this icon in the serverfiles maxmi 4.1 in this case the client. I have tried to remove some lines in game.py, constinfo.py, and taskbar.py but without success because when I try to go after the loading screen does not advance, gets stuck in the loading screen image. I hope someone here can help me, Thank you. Edited August 20, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Retro 133 Posted August 2, 2016 Share Posted August 2, 2016 leave here uitaskbar.py and taskbar.py from locale/country/ui Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 2, 2016 Author Premium Share Posted August 2, 2016 taskbar.py import uiScriptLocale import app ROOT = "d:/ymir work/ui/game/" #Y_ADD_POSITION = -2 Y_ADD_POSITION = 0 window = { "name" : "TaskBar", "x" : 0, "y" : SCREEN_HEIGHT - 37, "width" : SCREEN_WIDTH, "height" : 37, "children" : ( ## Board { "name" : "Base_Board_01", "type" : "expanded_image", "x" : 263, "y" : 0, "rect" : (0.0, 0.0, float(SCREEN_WIDTH - 263 - 256) / 256.0, 0.0), "image" : "d:/ymir work/ui/pattern/TaskBar_Base.tga" }, ## Gauge { "name" : "Gauge_Board", "type" : "image", "x" : 0, "y" : -10 + Y_ADD_POSITION, "image" : ROOT + "taskbar/gauge.sub", "children" : ( { "name" : "RampageGauge", "type" : "ani_image", "x" : 8, "y" : 4, "width" : 40, "height" : 40, "delay" : 6, "images" : ( "locale/tr/ui/Mall/00.sub", "locale/tr/ui/Mall/01.sub", "locale/tr/ui/Mall/02.sub", "locale/tr/ui/Mall/03.sub", "locale/tr/ui/Mall/04.sub", "locale/tr/ui/Mall/05.sub", "locale/tr/ui/Mall/06.sub", "locale/tr/ui/Mall/07.sub", "locale/tr/ui/Mall/08.sub", "locale/tr/ui/Mall/09.sub", "locale/tr/ui/Mall/11.sub", "locale/tr/ui/Mall/12.sub", "locale/tr/ui/Mall/13.sub", "locale/tr/ui/Mall/14.sub", "locale/tr/ui/Mall/15.sub", "locale/tr/ui/Mall/16.sub", ) }, { "name" : "RampageGauge2", "type" : "ani_image", "x" : 8, "y" : 4, "width" : 40, "height" : 40, "delay" : 6, "images" : ( "locale/tr/ui/Mall/00.sub", "locale/tr/ui/Mall/01.sub", "locale/tr/ui/Mall/02.sub", "locale/tr/ui/Mall/03.sub", "locale/tr/ui/Mall/04.sub", "locale/tr/ui/Mall/05.sub", "locale/tr/ui/Mall/06.sub", "locale/tr/ui/Mall/07.sub", "locale/tr/ui/Mall/08.sub", "locale/tr/ui/Mall/09.sub", "locale/tr/ui/Mall/11.sub", "locale/tr/ui/Mall/12.sub", "locale/tr/ui/Mall/13.sub", "locale/tr/ui/Mall/14.sub", "locale/tr/ui/Mall/15.sub", "locale/tr/ui/Mall/16.sub", ) }, { ## 툴팁을 띄우기 위한 윈도우 "name" : "HPGauge_Board", "type" : "window", "x" : 59, "y" : 14, "width" : 95, "height" : 11, "children" : ( { "name" : "HPRecoveryGaugeBar", "type" : "bar", "x" : 0, "y" : 0, "width" : 95, "height" : 13, "color" : 0x55ff0000, }, { "name" : "HPGauge", "type" : "ani_image", "x" : 0, "y" : 0, "delay" : 6, "images" : ( "D:/Ymir Work/UI/Pattern/HPGauge/01.tga", "D:/Ymir Work/UI/Pattern/HPGauge/02.tga", "D:/Ymir Work/UI/Pattern/HPGauge/03.tga", "D:/Ymir Work/UI/Pattern/HPGauge/04.tga", "D:/Ymir Work/UI/Pattern/HPGauge/05.tga", "D:/Ymir Work/UI/Pattern/HPGauge/06.tga", "D:/Ymir Work/UI/Pattern/HPGauge/07.tga", ), }, ), }, { ## 툴팁을 띄우기 위한 윈도우 "name" : "SPGauge_Board", "type" : "window", "x" : 59, "y" : 24, "width" : 95, "height" : 11, "children" : ( { "name" : "SPRecoveryGaugeBar", "type" : "bar", "x" : 0, "y" : 0, "width" : 95, "height" : 13, "color" : 0x550000ff, }, { "name" : "SPGauge", "type" : "ani_image", "x" : 0, "y" : 0, "delay" : 6, "images" : ( "D:/Ymir Work/UI/Pattern/SPGauge/01.tga", "D:/Ymir Work/UI/Pattern/SPGauge/02.tga", "D:/Ymir Work/UI/Pattern/SPGauge/03.tga", "D:/Ymir Work/UI/Pattern/SPGauge/04.tga", "D:/Ymir Work/UI/Pattern/SPGauge/05.tga", "D:/Ymir Work/UI/Pattern/SPGauge/06.tga", "D:/Ymir Work/UI/Pattern/SPGauge/07.tga", ), }, ), }, { ## 툴팁을 띄우기 위한 윈도우 "name" : "STGauge_Board", "type" : "window", "x" : 59, "y" : 38, "width" : 95, "height" : 6, "children" : ( { "name" : "STGauge", "type" : "ani_image", "x" : 0, "y" : 0, "delay" : 6, "images" : ( "D:/Ymir Work/UI/Pattern/STGauge/01.tga", "D:/Ymir Work/UI/Pattern/STGauge/02.tga", "D:/Ymir Work/UI/Pattern/STGauge/03.tga", "D:/Ymir Work/UI/Pattern/STGauge/04.tga", "D:/Ymir Work/UI/Pattern/STGauge/05.tga", "D:/Ymir Work/UI/Pattern/STGauge/06.tga", "D:/Ymir Work/UI/Pattern/STGauge/07.tga", ), }, ), }, ), }, { "name" : "EXP_Gauge_Board", "type" : "image", "x" : 158, "y" : 0 + Y_ADD_POSITION, "image" : ROOT + "taskbar/exp_gauge.sub", "children" : ( { "name" : "EXPGauge_01", "type" : "expanded_image", "x" : 5, "y" : 9, "image" : ROOT + "TaskBar/EXP_Gauge_Point.sub", }, { "name" : "EXPGauge_02", "type" : "expanded_image", "x" : 30, "y" : 9, "image" : ROOT + "TaskBar/EXP_Gauge_Point.sub", }, { "name" : "EXPGauge_03", "type" : "expanded_image", "x" : 55, "y" : 9, "image" : ROOT + "TaskBar/EXP_Gauge_Point.sub", }, { "name" : "EXPGauge_04", "type" : "expanded_image", "x" : 80, "y" : 9, "image" : ROOT + "TaskBar/EXP_Gauge_Point.sub", }, ), }, ## Mouse Button { "name" : "LeftMouseButton", "type" : "button", "x" : SCREEN_WIDTH/2 - 128, "y" : 3 + Y_ADD_POSITION, "default_image" : ROOT + "TaskBar/Mouse_Button_Move_01.sub", "over_image" : ROOT + "TaskBar/Mouse_Button_Move_02.sub", "down_image" : ROOT + "TaskBar/Mouse_Button_Move_03.sub", }, { "name" : "RightMouseButton", "type" : "button", "x" : SCREEN_WIDTH/2 + 128 + 66 + 11, "y" : 3 + Y_ADD_POSITION, "default_image" : ROOT + "TaskBar/Mouse_Button_Move_01.sub", "over_image" : ROOT + "TaskBar/Mouse_Button_Move_02.sub", "down_image" : ROOT + "TaskBar/Mouse_Button_Move_03.sub", }, ## Button { "name" : "CharacterButton", "type" : "button", "x" : SCREEN_WIDTH - 144, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : uiScriptLocale.TASKBAR_CHARACTER, "default_image" : ROOT + "TaskBar/Character_Button_01.sub", "over_image" : ROOT + "TaskBar/Character_Button_02.sub", "down_image" : ROOT + "TaskBar/Character_Button_03.sub", }, { "name" : "InventoryButton", "type" : "button", "x" : SCREEN_WIDTH - 110, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : uiScriptLocale.TASKBAR_INVENTORY, "default_image" : ROOT + "TaskBar/Inventory_Button_01.sub", "over_image" : ROOT + "TaskBar/Inventory_Button_02.sub", "down_image" : ROOT + "TaskBar/Inventory_Button_03.sub", }, { "name" : "VectorsEfsunButton", "type" : "button", "x" : SCREEN_WIDTH - 178, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : "Efsun Botu", "default_image" : "d:/ymir work/ui/Vectorsefs1.tga", "over_image" : "d:/ymir work/ui/Vectorsefs2.tga", "down_image" : "d:/ymir work/ui/Vectorsefs1.tga", }, { "name" : "MessengerButton", "type" : "button", "x" : SCREEN_WIDTH - 76, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : uiScriptLocale.TASKBAR_MESSENGER, "default_image" : ROOT + "TaskBar/Community_Button_01.sub", "over_image" : ROOT + "TaskBar/Community_Button_02.sub", "down_image" : ROOT + "TaskBar/Community_Button_03.sub", }, { "name" : "SystemButton", "type" : "button", "x" : SCREEN_WIDTH - 42, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : uiScriptLocale.TASKBAR_SYSTEM, "default_image" : ROOT + "TaskBar/System_Button_01.sub", "over_image" : ROOT + "TaskBar/System_Button_02.sub", "down_image" : ROOT + "TaskBar/System_Button_03.sub", }, ## QuickBar { "name" : "quickslot_board", "type" : "window", "x" : SCREEN_WIDTH/2 - 128 + 32 + 10, "y" : 0 + Y_ADD_POSITION, "width" : 256 + 14 + 2 + 11, "height" : 37, "children" : ( { # ExpandButton은 기존에 ChatButton이었으나, ChatButton의 효용성이 적다 판단하여 # ExpandButton으로 바뀐 것이다. "name" : "ExpandButton", "type" : "button", "x" : 128, "y" : 1, "tooltip_text" : uiScriptLocale.TASKBAR_EXPAND, "default_image" : ROOT + "TaskBar/Chat_Button_01.sub", "over_image" : ROOT + "TaskBar/Chat_Button_02.sub", "down_image" : ROOT + "TaskBar/Chat_Button_03.sub", }, { "name" : "quick_slot_1", "type" : "grid_table", "start_index" : 0, "x" : 0, "y" : 3, "x_count" : 4, "y_count" : 1, "x_step" : 32, "y_step" : 32, "image" : "d:/ymir work/ui/Public/Slot_Base.sub", "image_r" : 1.0, "image_g" : 1.0, "image_b" : 1.0, "image_a" : 1.0, "children" : ( { "name" : "slot_1", "type" : "image", "x" : 3, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/1.sub", }, { "name" : "slot_2", "type" : "image", "x" : 35, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/2.sub", }, { "name" : "slot_3", "type" : "image", "x" : 67, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/3.sub", }, { "name" : "slot_4", "type" : "image", "x" : 99, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/4.sub", }, ), }, { "name" : "quick_slot_2", "type" : "grid_table", "start_index" : 4, "x" : 128 + 14, "y" : 3, "x_count" : 4, "y_count" : 1, "x_step" : 32, "y_step" : 32, "image" : "d:/ymir work/ui/Public/Slot_Base.sub", "image_r" : 1.0, "image_g" : 1.0, "image_b" : 1.0, "image_a" : 1.0, "children" : ( { "name" : "slot_5", "type" : "image", "x" : 3, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f1.sub", }, { "name" : "slot_6", "type" : "image", "x" : 35, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f2.sub", }, { "name" : "slot_7", "type" : "image", "x" : 67, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f3.sub", }, { "name" : "slot_8", "type" : "image", "x" : 99, "y" : 3, "image" : "d:/ymir work/ui/game/taskbar/f4.sub", }, ), }, { "name" : "QuickSlotBoard", "type" : "window", "x" : 128+14+128+2, "y" : 0, "width" : 11, "height" : 37, "children" : ( { "name" : "QuickSlotNumberBox", "type" : "image", "x" : 1, "y" : 15, "image" : ROOT + "taskbar/QuickSlot_Button_Board.sub", }, { "name" : "QuickPageUpButton", "type" : "button", "tooltip_text" : uiScriptLocale.TASKBAR_PREV_QUICKSLOT, "x" : 1, "y" : 9, "default_image" : ROOT + "TaskBar/QuickSlot_UpButton_01.sub", "over_image" : ROOT + "TaskBar/QuickSlot_UpButton_02.sub", "down_image" : ROOT + "TaskBar/QuickSlot_UpButton_03.sub", }, { "name" : "QuickPageNumber", "type" : "image", "x" : 3, "y" : 15, "image" : "d:/ymir work/ui/game/taskbar/1.sub", }, { "name" : "QuickPageDownButton", "type" : "button", "tooltip_text" : uiScriptLocale.TASKBAR_NEXT_QUICKSLOT, "x" : 1, "y" : 24, "default_image" : ROOT + "TaskBar/QuickSlot_DownButton_01.sub", "over_image" : ROOT + "TaskBar/QuickSlot_DownButton_02.sub", "down_image" : ROOT + "TaskBar/QuickSlot_DownButton_03.sub", }, ), }, ), }, ), } uitaskbar.py import ui import net import item import skill import localeInfo import wndMgr import player import constInfo import mouseModule import uiScriptLocale import app MOUSE_SETTINGS = [0, 0] def InitMouseButtonSettings(left, right): global MOUSE_SETTINGS MOUSE_SETTINGS = [left, right] def SetMouseButtonSetting(dir, event): global MOUSE_SETTINGS MOUSE_SETTINGS[dir] = event def GetMouseButtonSettings(): global MOUSE_SETTINGS return MOUSE_SETTINGS def SaveMouseButtonSettings(): global MOUSE_SETTINGS open("mouse.cfg", "w").write("%s\t%s" % tuple(MOUSE_SETTINGS)) def LoadMouseButtonSettings(): global MOUSE_SETTINGS tokens = open("mouse.cfg", "r").read().split() if len(tokens) != 2: raise RuntimeError, "MOUSE_SETTINGS_FILE_ERROR" MOUSE_SETTINGS[0] = int(tokens[0]) MOUSE_SETTINGS[1] = int(tokens[1]) def unsigned32(n): return n & 0xFFFFFFFFL #-------------------Giftbox Begin------------------------------ class GiftBox(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("GiftBox") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipGift = self.TextToolTip() self.tooltipGift.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "giftbox.py") except: import exception exception.Abort("GiftBox.LoadWindow.LoadObject") self.giftBoxIcon = self.GetChild("GiftBox_Icon") self.giftBoxToolTip = self.GetChild("GiftBox_ToolTip") def Destroy(self): self.giftBoxIcon = 0 self.giftBoxToolTip = 0 #-------------------Giftbox End------------------------------ class EnergyBar(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("EnergyBar") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipEnergy = self.TextToolTip() self.tooltipEnergy.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "EnergyBar.py") except: import exception exception.Abort("EnergyBar.LoadWindow.LoadObject") self.energyEmpty = self.GetChild("EnergyGauge_Empty") self.energyHungry = self.GetChild("EnergyGauge_Hungry") self.energyFull = self.GetChild("EnergyGauge_Full") self.energyGaugeBoard = self.GetChild("EnergyGauge_Board") self.energyGaugeToolTip = self.GetChild("EnergyGauge_ToolTip") def Destroy(self): self.energyEmpty = None self.energyHungry = None self.energyFull = None self.energyGaugeBoard = 0 self.energyGaugeToolTip = 0 self.tooltipEnergy = 0 ## Gauge def RefreshStatus(self): pointEnergy = player.GetStatus (player.ENERGY) leftTimeEnergy = player.GetStatus (player.ENERGY_END_TIME) - app.GetGlobalTimeStamp() # 충기환 지속 시간 = 2시간. self.SetEnergy (pointEnergy, leftTimeEnergy, 7200) def SetEnergy (self, point, leftTime, maxTime): leftTime = max (leftTime, 0) maxTime = max (maxTime, 0) self.energyEmpty.Hide() self.energyHungry.Hide() self.energyFull.Hide() if leftTime == 0: self.energyEmpty.Show() elif ((leftTime * 100) / maxTime) < 15: self.energyHungry.Show() else: self.energyFull.Show() self.tooltipEnergy.SetText("%s" % (localeInfo.TOOLTIP_ENERGY(point))) def OnUpdate(self): if TRUE == self.energyGaugeToolTip.IsIn(): self.RefreshStatus() self.tooltipEnergy.Show() else: self.tooltipEnergy.Hide() class ExpandedTaskBar(ui.ScriptWindow): BUTTON_DRAGON_SOUL = 0 def __init__(self): ui.Window.__init__(self) self.SetWindowName("ExpandedTaskBar") def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py") except: import exception exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject") self.expandedTaskBarBoard = self.GetChild("ExpanedTaskBar_Board") self.toggleButtonDict = {} self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL] = self.GetChild("DragonSoulButton") self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL].SetParent(self) def SetTop(self): super(ExpandedTaskBar, self).SetTop() for button in self.toggleButtonDict.values(): button.SetTop() def Show(self): ui.ScriptWindow.Show(self) def Close(self): self.Hide() def SetToolTipText(self, eButton, text): self.toggleButtonDict[eButton].SetToolTipText(text) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def OnPressEscapeKey(self): self.Close() return TRUE class TaskBar(ui.ScriptWindow): BUTTON_CHARACTER = 0 BUTTON_INVENTORY = 1 BUTTON_MESSENGER = 2 BUTTON_SYSTEM = 3 BUTTON_CHAT = 4 BUTTON_VECTORS = 5 BUTTON_EXPAND = 4 IS_EXPANDED = FALSE MOUSE_BUTTON_LEFT = 0 MOUSE_BUTTON_RIGHT = 1 NONE = 255 EVENT_MOVE = 0 EVENT_ATTACK = 1 EVENT_MOVE_AND_ATTACK = 2 EVENT_CAMERA = 3 EVENT_SKILL = 4 EVENT_AUTO = 5 GAUGE_WIDTH = 95 GAUGE_HEIGHT = 13 QUICKPAGE_NUMBER_FILENAME = [ "d:/ymir work/ui/game/taskbar/1.sub", "d:/ymir work/ui/game/taskbar/2.sub", "d:/ymir work/ui/game/taskbar/3.sub", "d:/ymir work/ui/game/taskbar/4.sub", ] #gift icon show and hide def ShowGift(self): if not localeInfo.IsBRAZIL(): self.wndGiftBox.Show() def HideGift(self): self.wndGiftBox.Hide() class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) class SkillButton(ui.SlotWindow): def __init__(self): ui.SlotWindow.__init__(self) self.event = 0 self.arg = 0 self.slotIndex = 0 self.skillIndex = 0 slotIndex = 0 wndMgr.SetSlotBaseImage(self.hWnd, "d:/ymir work/ui/public/slot_base.sub", 1.0, 1.0, 1.0, 1.0) wndMgr.AppendSlot(self.hWnd, slotIndex, 0, 0, 32, 32) self.SetCoverButton(slotIndex, "d:/ymir work/ui/public/slot_cover_button_01.sub",\ "d:/ymir work/ui/public/slot_cover_button_02.sub",\ "d:/ymir work/ui/public/slot_cover_button_03.sub",\ "d:/ymir work/ui/public/slot_cover_button_04.sub", TRUE, FALSE) self.SetSize(32, 32) def __del__(self): ui.SlotWindow.__del__(self) def Destroy(self): if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def RefreshSkill(self): if 0 != self.slotIndex: self.SetSkill(self.slotIndex) def SetSkillToolTip(self, tooltip): self.tooltipSkill = tooltip def SetSkill(self, skillSlotNumber): slotNumber = 0 skillIndex = player.GetSkillIndex(skillSlotNumber) skillGrade = player.GetSkillGrade(skillSlotNumber) skillLevel = player.GetSkillLevel(skillSlotNumber) skillType = skill.GetSkillType(skillIndex) self.skillIndex = skillIndex if 0 == self.skillIndex: self.ClearSlot(slotNumber) return self.slotIndex = skillSlotNumber self.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) self.SetSlotCountNew(slotNumber, skillGrade, skillLevel) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(skillSlotNumber): (coolTime, elapsedTime) = player.GetSkillCoolTime(skillSlotNumber) self.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(skillSlotNumber): self.ActivateSlot(slotNumber) def SetSkillEvent(self, event, arg=0): self.event = event self.arg = arg def GetSkillIndex(self): return self.skillIndex def GetSlotIndex(self): return self.slotIndex def Activate(self, coolTime): self.SetSlotCoolTime(0, coolTime) if skill.IsToggleSkill(self.skillIndex): self.ActivateSlot(0) def Deactivate(self): if skill.IsToggleSkill(self.skillIndex): self.DeactivateSlot(0) def OnOverInItem(self, dummy): self.tooltipSkill.SetSkill(self.skillIndex) def OnOverOutItem(self): self.tooltipSkill.HideToolTip() def OnSelectItemSlot(self, dummy): if 0 != self.event: if 0 != self.arg: self.event(self.arg) else: self.event() def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self, "TOP_MOST") self.quickPageNumImageBox = None self.tooltipItem = 0 self.tooltipSkill = 0 self.mouseModeButtonList = [ ui.ScriptWindow("TOP_MOST"), ui.ScriptWindow("TOP_MOST") ] self.tooltipHP = self.TextToolTip() self.tooltipHP.Show() self.tooltipSP = self.TextToolTip() self.tooltipSP.Show() self.tooltipST = self.TextToolTip() self.tooltipST.Show() self.tooltipEXP = self.TextToolTip() self.tooltipEXP.Show() self.skillCategoryNameList = [ "ACTIVE_1", "ACTIVE_2", "ACTIVE_3" ] self.skillPageStartSlotIndexDict = { "ACTIVE_1" : 1, "ACTIVE_2" : 21, "ACTIVE_3" : 41, } self.selectSkillButtonList = [] self.lastUpdateQuickSlot = 0 self.SetWindowName("TaskBar") def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() if constInfo.IN_GAME_SHOP_ENABLE: pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "TaskBar.py") else: pyScrLoader.LoadScriptFile(self, "UIScript/TaskBar.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT], "UIScript/MouseButtonWindow.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT], "UIScript/RightMouseButtonWindow.py") except: import exception exception.Abort("TaskBar.LoadWindow.LoadObject") self.quickslot = [] self.quickslot.append(self.GetChild("quick_slot_1")) self.quickslot.append(self.GetChild("quick_slot_2")) for slot in self.quickslot: slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE) slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptyQuickSlot)) slot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemQuickSlot)) slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemQuickSlot)) slot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) toggleButtonDict = {} toggleButtonDict[TaskBar.BUTTON_CHARACTER]=self.GetChild("CharacterButton") toggleButtonDict[TaskBar.BUTTON_VECTORS]=self.GetChild("VectorsEfsunButton") toggleButtonDict[TaskBar.BUTTON_INVENTORY]=self.GetChild("InventoryButton") toggleButtonDict[TaskBar.BUTTON_MESSENGER]=self.GetChild("MessengerButton") toggleButtonDict[TaskBar.BUTTON_SYSTEM]=self.GetChild("SystemButton") # ChatButton, ExpandButton 둘 중 하나는 반드시 존재한다. try: toggleButtonDict[TaskBar.BUTTON_CHAT]=self.GetChild("ChatButton") except: toggleButtonDict[TaskBar.BUTTON_EXPAND]=self.GetChild("ExpandButton") TaskBar.IS_EXPANDED = TRUE if localeInfo.IsARABIC(): systemButton = toggleButtonDict[TaskBar.BUTTON_SYSTEM] if systemButton.ToolTipText: tx, ty = systemButton.ToolTipText.GetLocalPosition() tw = systemButton.ToolTipText.GetWidth() systemButton.ToolTipText.SetPosition(-tw/2, ty) expGauge = [] expGauge.append(self.GetChild("EXPGauge_01")) expGauge.append(self.GetChild("EXPGauge_02")) expGauge.append(self.GetChild("EXPGauge_03")) expGauge.append(self.GetChild("EXPGauge_04")) for exp in expGauge: exp.SetSize(0, 0) self.quickPageNumImageBox=self.GetChild("QuickPageNumber") self.GetChild("QuickPageUpButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageUpButton)) self.GetChild("QuickPageDownButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageDownButton)) mouseLeftButtonModeButton = self.GetChild("LeftMouseButton") mouseRightButtonModeButton = self.GetChild("RightMouseButton") mouseLeftButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleLeftMouseButtonModeWindow)) mouseRightButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curMouseModeButton = [ mouseLeftButtonModeButton, mouseRightButtonModeButton ] (xLocalRight, yLocalRight) = mouseRightButtonModeButton.GetLocalPosition() self.curSkillButton = self.SkillButton() self.curSkillButton.SetParent(self) self.curSkillButton.SetPosition(xLocalRight, 3) self.curSkillButton.SetSkillEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curSkillButton.Hide() (xLeft, yLeft) = mouseLeftButtonModeButton.GetGlobalPosition() (xRight, yRight) = mouseRightButtonModeButton.GetGlobalPosition() leftModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] leftModeButtonList.SetPosition(xLeft, yLeft - leftModeButtonList.GetHeight()-5) rightModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] rightModeButtonList.SetPosition(xRight - rightModeButtonList.GetWidth() + 32, yRight - rightModeButtonList.GetHeight()-5) rightModeButtonList.GetChild("button_skill").SetEvent(lambda adir=self.MOUSE_BUTTON_RIGHT, aevent=self.EVENT_SKILL: self.SelectMouseButtonEvent(adir, aevent)) rightModeButtonList.GetChild("button_skill").Hide() mouseImage = ui.ImageBox("TOP_MOST") mouseImage.AddFlag("float") mouseImage.LoadImage("d:/ymir work/ui/game/taskbar/mouse_button_camera_01.sub") mouseImage.SetPosition(xRight, wndMgr.GetScreenHeight() - 34) mouseImage.Hide() self.mouseImage = mouseImage dir = self.MOUSE_BUTTON_LEFT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_auto_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_AUTO: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) dir = self.MOUSE_BUTTON_RIGHT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) self.toggleButtonDict = toggleButtonDict self.expGauge = expGauge if constInfo.IN_GAME_SHOP_ENABLE: self.rampageGauge1 = self.GetChild("RampageGauge") self.rampageGauge1.OnMouseOverIn = ui.__mem_func__(self.__RampageGauge_OverIn) self.rampageGauge2 = self.GetChild("RampageGauge2") self.rampageGauge2.OnMouseOverOut = ui.__mem_func__(self.__RampageGauge_OverOut) self.rampageGauge2.OnMouseLeftButtonUp = ui.__mem_func__(self.__RampageGauge_Click) print "[DEBUG]: constInfo.IN_GAME_SHOP_ENABLE / self.rampageGauge1",constInfo.IN_GAME_SHOP_ENABLE, self.rampageGauge1 self.__RampageGauge_OverOut() self.hpGauge = self.GetChild("HPGauge") self.mpGauge = self.GetChild("SPGauge") self.stGauge = self.GetChild("STGauge") self.hpRecoveryGaugeBar = self.GetChild("HPRecoveryGaugeBar") self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar") self.hpGaugeBoard=self.GetChild("HPGauge_Board") self.mpGaugeBoard=self.GetChild("SPGauge_Board") self.stGaugeBoard=self.GetChild("STGauge_Board") self.expGaugeBoard=self.GetChild("EXP_Gauge_Board") #giftbox object wndGiftBox = GiftBox() wndGiftBox.LoadWindow() self.wndGiftBox = wndGiftBox self.__LoadMouseSettings() self.RefreshStatus() self.RefreshQuickSlot() def __RampageGauge_OverIn(self): print "rampage_over_in" self.rampageGauge2.Show() self.rampageGauge1.Hide() def __RampageGauge_OverOut(self): print "rampage_over_out" self.rampageGauge2.Hide() self.rampageGauge1.Show() def __RampageGauge_Click(self): print "rampage_up" net.SendChatPacket("/in_game_mall") # gift icon hide when click mall icon self.wndGiftBox.Hide() def __LoadMouseSettings(self): try: LoadMouseButtonSettings() (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() if not self.__IsInSafeMouseButtonSettingRange(mouseLeftButtonEvent) or not self.__IsInSafeMouseButtonSettingRange(mouseRightButtonEvent): raise RuntimeError, "INVALID_MOUSE_BUTTON_SETTINGS" except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() try: self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) def __IsInSafeMouseButtonSettingRange(self, arg): return arg >= self.EVENT_MOVE and arg <= self.EVENT_AUTO def Destroy(self): SaveMouseButtonSettings() self.ClearDictionary() self.mouseModeButtonList[0].ClearDictionary() self.mouseModeButtonList[1].ClearDictionary() self.mouseModeButtonList = 0 self.curMouseModeButton = 0 self.curSkillButton = 0 self.selectSkillButtonList = 0 self.expGauge = None self.hpGauge = None self.mpGauge = None self.stGauge = None self.hpRecoveryGaugeBar = None self.spRecoveryGaugeBar = None self.tooltipItem = 0 self.tooltipSkill = 0 self.quickslot = 0 self.toggleButtonDict = 0 self.hpGaugeBoard = 0 self.mpGaugeBoard = 0 self.stGaugeBoard = 0 self.expGaugeBoard = 0 self.tooltipHP = 0 self.tooltipSP = 0 self.tooltipST = 0 self.tooltipEXP = 0 self.mouseImage = None def __OnClickQuickPageUpButton(self): player.SetQuickPage(player.GetQuickPage()-1) def __OnClickQuickPageDownButton(self): player.SetQuickPage(player.GetQuickPage()+1) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def SetSkillToolTip(self, tooltipSkill): self.tooltipSkill = tooltipSkill self.curSkillButton.SetSkillToolTip(self.tooltipSkill) ## Mouse Image def ShowMouseImage(self): self.mouseImage.SetTop() self.mouseImage.Show() def HideMouseImage(self): player.SetQuickCameraMode(FALSE) self.mouseImage.Hide() ## Gauge def RefreshStatus(self): curHP = player.GetStatus(player.HP) maxHP = player.GetStatus(player.MAX_HP) curSP = player.GetStatus(player.SP) maxSP = player.GetStatus(player.MAX_SP) curEXP = unsigned32(player.GetStatus(player.EXP)) nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP)) recoveryHP = player.GetStatus(player.HP_RECOVERY) recoverySP = player.GetStatus(player.SP_RECOVERY) self.RefreshStamina() self.SetHP(curHP, recoveryHP, maxHP) self.SetSP(curSP, recoverySP, maxSP) self.SetExperience(curEXP, nextEXP) def RefreshStamina(self): curST = player.GetStatus(player.STAMINA) maxST = player.GetStatus(player.MAX_STAMINA) self.SetST(curST, maxST) def RefreshSkill(self): self.curSkillButton.RefreshSkill() for button in self.selectSkillButtonList: button.RefreshSkill() def SetHP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.hpGauge.SetPercentage(curPoint, maxPoint) self.tooltipHP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_HP, curPoint, maxPoint)) if 0 == recoveryPoint: self.hpRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.hpRecoveryGaugeBar.Show() def SetSP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.mpGauge.SetPercentage(curPoint, maxPoint) self.tooltipSP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_SP, curPoint, maxPoint)) if 0 == recoveryPoint: self.spRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.spRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.spRecoveryGaugeBar.Show() def SetST(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.stGauge.SetPercentage(curPoint, maxPoint) self.tooltipST.SetText("%s : %d / %d" % (localeInfo.TASKBAR_ST, curPoint, maxPoint)) def SetExperience(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) curPoint = max(curPoint, 0) maxPoint = max(maxPoint, 0) quarterPoint = maxPoint / 4 FullCount = 0 if 0 != quarterPoint: FullCount = min(4, curPoint / quarterPoint) for i in xrange(4): self.expGauge.Hide() for i in xrange(FullCount): self.expGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0) self.expGauge.Show() if 0 != quarterPoint: if FullCount < 4: Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0 self.expGauge[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0) self.expGauge[FullCount].Show() ##### self.tooltipEXP.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curPoint) / max(1, float(maxPoint)) * 100)) ## QuickSlot def RefreshQuickSlot(self): pageNum = player.GetQuickPage() try: self.quickPageNumImageBox.LoadImage(TaskBar.QUICKPAGE_NUMBER_FILENAME[pageNum]) except: pass startNumber = 0 for slot in self.quickslot: for i in xrange(4): slotNumber = i+startNumber (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_NONE == Type: slot.ClearSlot(slotNumber) continue if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(Position) itemCount = player.GetItemCount(Position) if itemCount <= 1: itemCount = 0 ## 자동물약 (#72723, #72724) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo] if constInfo.IS_AUTO_POTION(itemIndex): # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량 metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if 0 != int(metinSocket[0]): slot.ActivateSlot(slotNumber) else: slot.DeactivateSlot(slotNumber) slot.SetItemSlot(slotNumber, itemIndex, itemCount) elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) if 0 == skillIndex: slot.ClearSlot(slotNumber) continue skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: import guild skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) slot.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) slot.SetSlotCountNew(slotNumber, skillGrade, skillLevel) slot.SetCoverButton(slotNumber) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(Position): (coolTime, elapsedTime) = player.GetSkillCoolTime(Position) slot.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(Position): slot.ActivateSlot(slotNumber) elif player.SLOT_TYPE_EMOTION == Type: emotionIndex = Position slot.SetEmotionSlot(slotNumber, emotionIndex) slot.SetCoverButton(slotNumber) slot.SetSlotCount(slotNumber, 0) slot.RefreshSlot() startNumber += 4 def canAddQuickSlot(self, Type, slotNumber): if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(slotNumber) return item.CanAddToQuickSlotItem(itemIndex) return TRUE def AddQuickSlot(self, localSlotIndex): AttachedSlotType = mouseModule.mouseController.GetAttachedType() AttachedSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() AttachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_QUICK_SLOT == AttachedSlotType: player.RequestMoveGlobalQuickSlotToLocalQuickSlot(AttachedSlotNumber, localSlotIndex) elif player.SLOT_TYPE_EMOTION == AttachedSlotType: player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedItemIndex) elif TRUE == self.canAddQuickSlot(AttachedSlotType, AttachedSlotNumber): ## Online Code player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedSlotNumber) mouseModule.mouseController.DeattachObject() self.RefreshQuickSlot() def SelectEmptyQuickSlot(self, slotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(slotIndex) def SelectItemQuickSlot(self, localQuickSlotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(localQuickSlotIndex) else: globalQuickSlotIndex=player.LocalQuickSlotIndexToGlobalQuickSlotIndex(localQuickSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_QUICK_SLOT, globalQuickSlotIndex, globalQuickSlotIndex) def UnselectItemQuickSlot(self, localSlotIndex): if FALSE == mouseModule.mouseController.isAttached(): player.RequestUseLocalQuickSlot(localSlotIndex) return elif mouseModule.mouseController.isAttached(): mouseModule.mouseController.DeattachObject() return def OnUseSkill(self, usedSlotIndex, coolTime): QUICK_SLOT_SLOT_COUNT = 4 slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Activate(coolTime) ## Quick Slot for slotWindow in self.quickslot: for i in xrange(QUICK_SLOT_SLOT_COUNT): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.SetSlotCoolTime(slotIndex, coolTime) return slotIndex += 1 def OnActivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.ActivateSlot(slotIndex) return slotIndex += 1 def OnDeactivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.DeactivateSlot(slotIndex) return slotIndex += 1 ## ToolTip def OverInItem(self, slotNumber): if mouseModule.mouseController.isAttached(): return (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_INVENTORY == Type: self.tooltipItem.SetInventoryItem(Position) self.tooltipSkill.HideToolTip() elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: import guild skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) self.tooltipSkill.SetSkillNew(Position, skillIndex, skillGrade, skillLevel) self.tooltipItem.HideToolTip() def OverOutItem(self): if 0 != self.tooltipItem: self.tooltipItem.HideToolTip() if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def OnUpdate(self): if app.GetGlobalTime() - self.lastUpdateQuickSlot > 500: self.lastUpdateQuickSlot = app.GetGlobalTime() self.RefreshQuickSlot() if TRUE == self.hpGaugeBoard.IsIn(): self.tooltipHP.Show() else: self.tooltipHP.Hide() if TRUE == self.mpGaugeBoard.IsIn(): self.tooltipSP.Show() else: self.tooltipSP.Hide() if TRUE == self.stGaugeBoard.IsIn(): self.tooltipST.Show() else: self.tooltipST.Hide() if TRUE == self.expGaugeBoard.IsIn(): self.tooltipEXP.Show() else: self.tooltipEXP.Hide() ## Skill def ToggleLeftMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() else: wndMouseButtonMode.Show() def ToggleRightMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() self.CloseSelectSkill() else: wndMouseButtonMode.Show() self.OpenSelectSkill() def OpenSelectSkill(self): PAGE_SLOT_COUNT = 6 (xSkillButton, y) = self.curSkillButton.GetGlobalPosition() y -= (37 + 32 + 1) for key in self.skillCategoryNameList: appendCount = 0 startNumber = self.skillPageStartSlotIndexDict[key] x = xSkillButton getSkillIndex=player.GetSkillIndex getSkillLevel=player.GetSkillLevel for i in xrange(PAGE_SLOT_COUNT): skillIndex = getSkillIndex(startNumber+i) skillLevel = getSkillLevel(startNumber+i) if 0 == skillIndex: continue if 0 == skillLevel: continue if skill.IsStandingSkill(skillIndex): continue ## FIXME : 스킬 하나당 슬롯 하나씩 할당하는건 아무리 봐도 부하가 크다. ## 이 부분은 시간을 나면 고치도록. - [levites] skillButton = self.SkillButton() skillButton.SetSkill(startNumber+i) skillButton.SetPosition(x, y) skillButton.SetSkillEvent(ui.__mem_func__(self.CloseSelectSkill), startNumber+i+1) skillButton.SetSkillToolTip(self.tooltipSkill) skillButton.SetTop() skillButton.Show() self.selectSkillButtonList.append(skillButton) appendCount += 1 x -= 32 if appendCount > 0: y -= 32 def CloseSelectSkill(self, slotIndex=-1): self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT].Hide() for button in self.selectSkillButtonList: button.Destroy() self.selectSkillButtonList = [] if -1 != slotIndex: self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() player.SetMouseFunc(player.MBT_RIGHT, player.MBF_SKILL) player.ChangeCurrentSkillNumberOnly(slotIndex-1) else: self.curSkillButton.Hide() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Show() def SelectMouseButtonEvent(self, dir, event): SetMouseButtonSetting(dir, event) self.CloseSelectSkill() self.mouseModeButtonList[dir].Hide() btn = 0 type = self.NONE func = self.NONE tooltip_text = "" if self.MOUSE_BUTTON_LEFT == dir: type = player.MBT_LEFT elif self.MOUSE_BUTTON_RIGHT == dir: type = player.MBT_RIGHT if self.EVENT_MOVE == event: btn = self.mouseModeButtonList[dir].GetChild("button_move") func = player.MBF_MOVE tooltip_text = localeInfo.TASKBAR_MOVE elif self.EVENT_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_attack") func = player.MBF_ATTACK tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_AUTO == event: btn = self.mouseModeButtonList[dir].GetChild("button_auto_attack") func = player.MBF_AUTO tooltip_text = localeInfo.TASKBAR_AUTO elif self.EVENT_MOVE_AND_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_move_and_attack") func = player.MBF_SMART tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_CAMERA == event: btn = self.mouseModeButtonList[dir].GetChild("button_camera") func = player.MBF_CAMERA tooltip_text = localeInfo.TASKBAR_CAMERA elif self.EVENT_SKILL == event: btn = self.mouseModeButtonList[dir].GetChild("button_skill") func = player.MBF_SKILL tooltip_text = localeInfo.TASKBAR_SKILL if 0 != btn: self.curMouseModeButton[dir].SetToolTipText(tooltip_text, 0, -18) self.curMouseModeButton[dir].SetUpVisual(btn.GetUpVisualFileName()) self.curMouseModeButton[dir].SetOverVisual(btn.GetOverVisualFileName()) self.curMouseModeButton[dir].SetDownVisual(btn.GetDownVisualFileName()) self.curMouseModeButton[dir].Show() player.SetMouseFunc(type, func) def OnChangeCurrentSkill(self, skillSlotNumber): self.curSkillButton.SetSkill(skillSlotNumber) self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() I dont know why, but th uitaskbar is into the spoiler in the end Link to comment Share on other sites More sharing options...
Retro 133 Posted August 2, 2016 Share Posted August 2, 2016 remove it { "name" : "VectorsEfsunButton", "type" : "button", "x" : SCREEN_WIDTH - 178, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : "Efsun Botu", "default_image" : "d:/ymir work/ui/Vectorsefs1.tga", "over_image" : "d:/ymir work/ui/Vectorsefs2.tga", "down_image" : "d:/ymir work/ui/Vectorsefs1.tga", }, Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 2, 2016 Author Premium Share Posted August 2, 2016 I already did that but in loading screen it doest go to the game, freezes there. Link to comment Share on other sites More sharing options...
Retro 133 Posted August 2, 2016 Share Posted August 2, 2016 that's why i asked you for uitaskbar.py too Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 2, 2016 Author Premium Share Posted August 2, 2016 uitaskbar import ui import net import item import skill import localeInfo import wndMgr import player import constInfo import mouseModule import uiScriptLocale import app MOUSE_SETTINGS = [0, 0] def InitMouseButtonSettings(left, right): global MOUSE_SETTINGS MOUSE_SETTINGS = [left, right] def SetMouseButtonSetting(dir, event): global MOUSE_SETTINGS MOUSE_SETTINGS[dir] = event def GetMouseButtonSettings(): global MOUSE_SETTINGS return MOUSE_SETTINGS def SaveMouseButtonSettings(): global MOUSE_SETTINGS open("mouse.cfg", "w").write("%s\t%s" % tuple(MOUSE_SETTINGS)) def LoadMouseButtonSettings(): global MOUSE_SETTINGS tokens = open("mouse.cfg", "r").read().split() if len(tokens) != 2: raise RuntimeError, "MOUSE_SETTINGS_FILE_ERROR" MOUSE_SETTINGS[0] = int(tokens[0]) MOUSE_SETTINGS[1] = int(tokens[1]) def unsigned32(n): return n & 0xFFFFFFFFL #-------------------Giftbox Begin------------------------------ class GiftBox(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("GiftBox") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipGift = self.TextToolTip() self.tooltipGift.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "giftbox.py") except: import exception exception.Abort("GiftBox.LoadWindow.LoadObject") self.giftBoxIcon = self.GetChild("GiftBox_Icon") self.giftBoxToolTip = self.GetChild("GiftBox_ToolTip") def Destroy(self): self.giftBoxIcon = 0 self.giftBoxToolTip = 0 #-------------------Giftbox End------------------------------ class EnergyBar(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("EnergyBar") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipEnergy = self.TextToolTip() self.tooltipEnergy.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "EnergyBar.py") except: import exception exception.Abort("EnergyBar.LoadWindow.LoadObject") self.energyEmpty = self.GetChild("EnergyGauge_Empty") self.energyHungry = self.GetChild("EnergyGauge_Hungry") self.energyFull = self.GetChild("EnergyGauge_Full") self.energyGaugeBoard = self.GetChild("EnergyGauge_Board") self.energyGaugeToolTip = self.GetChild("EnergyGauge_ToolTip") def Destroy(self): self.energyEmpty = None self.energyHungry = None self.energyFull = None self.energyGaugeBoard = 0 self.energyGaugeToolTip = 0 self.tooltipEnergy = 0 ## Gauge def RefreshStatus(self): pointEnergy = player.GetStatus (player.ENERGY) leftTimeEnergy = player.GetStatus (player.ENERGY_END_TIME) - app.GetGlobalTimeStamp() # 충기환 지속 시간 = 2시간. self.SetEnergy (pointEnergy, leftTimeEnergy, 7200) def SetEnergy (self, point, leftTime, maxTime): leftTime = max (leftTime, 0) maxTime = max (maxTime, 0) self.energyEmpty.Hide() self.energyHungry.Hide() self.energyFull.Hide() if leftTime == 0: self.energyEmpty.Show() elif ((leftTime * 100) / maxTime) < 15: self.energyHungry.Show() else: self.energyFull.Show() self.tooltipEnergy.SetText("%s" % (localeInfo.TOOLTIP_ENERGY(point))) def OnUpdate(self): if TRUE == self.energyGaugeToolTip.IsIn(): self.RefreshStatus() self.tooltipEnergy.Show() else: self.tooltipEnergy.Hide() class ExpandedTaskBar(ui.ScriptWindow): BUTTON_DRAGON_SOUL = 0 def __init__(self): ui.Window.__init__(self) self.SetWindowName("ExpandedTaskBar") def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py") except: import exception exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject") self.expandedTaskBarBoard = self.GetChild("ExpanedTaskBar_Board") self.toggleButtonDict = {} self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL] = self.GetChild("DragonSoulButton") self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL].SetParent(self) def SetTop(self): super(ExpandedTaskBar, self).SetTop() for button in self.toggleButtonDict.values(): button.SetTop() def Show(self): ui.ScriptWindow.Show(self) def Close(self): self.Hide() def SetToolTipText(self, eButton, text): self.toggleButtonDict[eButton].SetToolTipText(text) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def OnPressEscapeKey(self): self.Close() return TRUE class TaskBar(ui.ScriptWindow): BUTTON_CHARACTER = 0 BUTTON_INVENTORY = 1 BUTTON_MESSENGER = 2 BUTTON_SYSTEM = 3 BUTTON_CHAT = 4 BUTTON_VECTORS = 5 BUTTON_EXPAND = 4 IS_EXPANDED = FALSE MOUSE_BUTTON_LEFT = 0 MOUSE_BUTTON_RIGHT = 1 NONE = 255 EVENT_MOVE = 0 EVENT_ATTACK = 1 EVENT_MOVE_AND_ATTACK = 2 EVENT_CAMERA = 3 EVENT_SKILL = 4 EVENT_AUTO = 5 GAUGE_WIDTH = 95 GAUGE_HEIGHT = 13 QUICKPAGE_NUMBER_FILENAME = [ "d:/ymir work/ui/game/taskbar/1.sub", "d:/ymir work/ui/game/taskbar/2.sub", "d:/ymir work/ui/game/taskbar/3.sub", "d:/ymir work/ui/game/taskbar/4.sub", ] #gift icon show and hide def ShowGift(self): if not localeInfo.IsBRAZIL(): self.wndGiftBox.Show() def HideGift(self): self.wndGiftBox.Hide() class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) class SkillButton(ui.SlotWindow): def __init__(self): ui.SlotWindow.__init__(self) self.event = 0 self.arg = 0 self.slotIndex = 0 self.skillIndex = 0 slotIndex = 0 wndMgr.SetSlotBaseImage(self.hWnd, "d:/ymir work/ui/public/slot_base.sub", 1.0, 1.0, 1.0, 1.0) wndMgr.AppendSlot(self.hWnd, slotIndex, 0, 0, 32, 32) self.SetCoverButton(slotIndex, "d:/ymir work/ui/public/slot_cover_button_01.sub",\ "d:/ymir work/ui/public/slot_cover_button_02.sub",\ "d:/ymir work/ui/public/slot_cover_button_03.sub",\ "d:/ymir work/ui/public/slot_cover_button_04.sub", TRUE, FALSE) self.SetSize(32, 32) def __del__(self): ui.SlotWindow.__del__(self) def Destroy(self): if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def RefreshSkill(self): if 0 != self.slotIndex: self.SetSkill(self.slotIndex) def SetSkillToolTip(self, tooltip): self.tooltipSkill = tooltip def SetSkill(self, skillSlotNumber): slotNumber = 0 skillIndex = player.GetSkillIndex(skillSlotNumber) skillGrade = player.GetSkillGrade(skillSlotNumber) skillLevel = player.GetSkillLevel(skillSlotNumber) skillType = skill.GetSkillType(skillIndex) self.skillIndex = skillIndex if 0 == self.skillIndex: self.ClearSlot(slotNumber) return self.slotIndex = skillSlotNumber self.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) self.SetSlotCountNew(slotNumber, skillGrade, skillLevel) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(skillSlotNumber): (coolTime, elapsedTime) = player.GetSkillCoolTime(skillSlotNumber) self.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(skillSlotNumber): self.ActivateSlot(slotNumber) def SetSkillEvent(self, event, arg=0): self.event = event self.arg = arg def GetSkillIndex(self): return self.skillIndex def GetSlotIndex(self): return self.slotIndex def Activate(self, coolTime): self.SetSlotCoolTime(0, coolTime) if skill.IsToggleSkill(self.skillIndex): self.ActivateSlot(0) def Deactivate(self): if skill.IsToggleSkill(self.skillIndex): self.DeactivateSlot(0) def OnOverInItem(self, dummy): self.tooltipSkill.SetSkill(self.skillIndex) def OnOverOutItem(self): self.tooltipSkill.HideToolTip() def OnSelectItemSlot(self, dummy): if 0 != self.event: if 0 != self.arg: self.event(self.arg) else: self.event() def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self, "TOP_MOST") self.quickPageNumImageBox = None self.tooltipItem = 0 self.tooltipSkill = 0 self.mouseModeButtonList = [ ui.ScriptWindow("TOP_MOST"), ui.ScriptWindow("TOP_MOST") ] self.tooltipHP = self.TextToolTip() self.tooltipHP.Show() self.tooltipSP = self.TextToolTip() self.tooltipSP.Show() self.tooltipST = self.TextToolTip() self.tooltipST.Show() self.tooltipEXP = self.TextToolTip() self.tooltipEXP.Show() self.skillCategoryNameList = [ "ACTIVE_1", "ACTIVE_2", "ACTIVE_3" ] self.skillPageStartSlotIndexDict = { "ACTIVE_1" : 1, "ACTIVE_2" : 21, "ACTIVE_3" : 41, } self.selectSkillButtonList = [] self.lastUpdateQuickSlot = 0 self.SetWindowName("TaskBar") def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() if constInfo.IN_GAME_SHOP_ENABLE: pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "TaskBar.py") else: pyScrLoader.LoadScriptFile(self, "UIScript/TaskBar.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT], "UIScript/MouseButtonWindow.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT], "UIScript/RightMouseButtonWindow.py") except: import exception exception.Abort("TaskBar.LoadWindow.LoadObject") self.quickslot = [] self.quickslot.append(self.GetChild("quick_slot_1")) self.quickslot.append(self.GetChild("quick_slot_2")) for slot in self.quickslot: slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE) slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptyQuickSlot)) slot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemQuickSlot)) slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemQuickSlot)) slot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) toggleButtonDict = {} toggleButtonDict[TaskBar.BUTTON_CHARACTER]=self.GetChild("CharacterButton") toggleButtonDict[TaskBar.BUTTON_VECTORS]=self.GetChild("VectorsEfsunButton") toggleButtonDict[TaskBar.BUTTON_INVENTORY]=self.GetChild("InventoryButton") toggleButtonDict[TaskBar.BUTTON_MESSENGER]=self.GetChild("MessengerButton") toggleButtonDict[TaskBar.BUTTON_SYSTEM]=self.GetChild("SystemButton") # ChatButton, ExpandButton 둘 중 하나는 반드시 존재한다. try: toggleButtonDict[TaskBar.BUTTON_CHAT]=self.GetChild("ChatButton") except: toggleButtonDict[TaskBar.BUTTON_EXPAND]=self.GetChild("ExpandButton") TaskBar.IS_EXPANDED = TRUE if localeInfo.IsARABIC(): systemButton = toggleButtonDict[TaskBar.BUTTON_SYSTEM] if systemButton.ToolTipText: tx, ty = systemButton.ToolTipText.GetLocalPosition() tw = systemButton.ToolTipText.GetWidth() systemButton.ToolTipText.SetPosition(-tw/2, ty) expGauge = [] expGauge.append(self.GetChild("EXPGauge_01")) expGauge.append(self.GetChild("EXPGauge_02")) expGauge.append(self.GetChild("EXPGauge_03")) expGauge.append(self.GetChild("EXPGauge_04")) for exp in expGauge: exp.SetSize(0, 0) self.quickPageNumImageBox=self.GetChild("QuickPageNumber") self.GetChild("QuickPageUpButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageUpButton)) self.GetChild("QuickPageDownButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageDownButton)) mouseLeftButtonModeButton = self.GetChild("LeftMouseButton") mouseRightButtonModeButton = self.GetChild("RightMouseButton") mouseLeftButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleLeftMouseButtonModeWindow)) mouseRightButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curMouseModeButton = [ mouseLeftButtonModeButton, mouseRightButtonModeButton ] (xLocalRight, yLocalRight) = mouseRightButtonModeButton.GetLocalPosition() self.curSkillButton = self.SkillButton() self.curSkillButton.SetParent(self) self.curSkillButton.SetPosition(xLocalRight, 3) self.curSkillButton.SetSkillEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curSkillButton.Hide() (xLeft, yLeft) = mouseLeftButtonModeButton.GetGlobalPosition() (xRight, yRight) = mouseRightButtonModeButton.GetGlobalPosition() leftModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] leftModeButtonList.SetPosition(xLeft, yLeft - leftModeButtonList.GetHeight()-5) rightModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] rightModeButtonList.SetPosition(xRight - rightModeButtonList.GetWidth() + 32, yRight - rightModeButtonList.GetHeight()-5) rightModeButtonList.GetChild("button_skill").SetEvent(lambda adir=self.MOUSE_BUTTON_RIGHT, aevent=self.EVENT_SKILL: self.SelectMouseButtonEvent(adir, aevent)) rightModeButtonList.GetChild("button_skill").Hide() mouseImage = ui.ImageBox("TOP_MOST") mouseImage.AddFlag("float") mouseImage.LoadImage("d:/ymir work/ui/game/taskbar/mouse_button_camera_01.sub") mouseImage.SetPosition(xRight, wndMgr.GetScreenHeight() - 34) mouseImage.Hide() self.mouseImage = mouseImage dir = self.MOUSE_BUTTON_LEFT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_auto_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_AUTO: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) dir = self.MOUSE_BUTTON_RIGHT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) self.toggleButtonDict = toggleButtonDict self.expGauge = expGauge if constInfo.IN_GAME_SHOP_ENABLE: self.rampageGauge1 = self.GetChild("RampageGauge") self.rampageGauge1.OnMouseOverIn = ui.__mem_func__(self.__RampageGauge_OverIn) self.rampageGauge2 = self.GetChild("RampageGauge2") self.rampageGauge2.OnMouseOverOut = ui.__mem_func__(self.__RampageGauge_OverOut) self.rampageGauge2.OnMouseLeftButtonUp = ui.__mem_func__(self.__RampageGauge_Click) print "[DEBUG]: constInfo.IN_GAME_SHOP_ENABLE / self.rampageGauge1",constInfo.IN_GAME_SHOP_ENABLE, self.rampageGauge1 self.__RampageGauge_OverOut() self.hpGauge = self.GetChild("HPGauge") self.mpGauge = self.GetChild("SPGauge") self.stGauge = self.GetChild("STGauge") self.hpRecoveryGaugeBar = self.GetChild("HPRecoveryGaugeBar") self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar") self.hpGaugeBoard=self.GetChild("HPGauge_Board") self.mpGaugeBoard=self.GetChild("SPGauge_Board") self.stGaugeBoard=self.GetChild("STGauge_Board") self.expGaugeBoard=self.GetChild("EXP_Gauge_Board") #giftbox object wndGiftBox = GiftBox() wndGiftBox.LoadWindow() self.wndGiftBox = wndGiftBox self.__LoadMouseSettings() self.RefreshStatus() self.RefreshQuickSlot() def __RampageGauge_OverIn(self): print "rampage_over_in" self.rampageGauge2.Show() self.rampageGauge1.Hide() def __RampageGauge_OverOut(self): print "rampage_over_out" self.rampageGauge2.Hide() self.rampageGauge1.Show() def __RampageGauge_Click(self): print "rampage_up" net.SendChatPacket("/in_game_mall") # gift icon hide when click mall icon self.wndGiftBox.Hide() def __LoadMouseSettings(self): try: LoadMouseButtonSettings() (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() if not self.__IsInSafeMouseButtonSettingRange(mouseLeftButtonEvent) or not self.__IsInSafeMouseButtonSettingRange(mouseRightButtonEvent): raise RuntimeError, "INVALID_MOUSE_BUTTON_SETTINGS" except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() try: self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) def __IsInSafeMouseButtonSettingRange(self, arg): return arg >= self.EVENT_MOVE and arg <= self.EVENT_AUTO def Destroy(self): SaveMouseButtonSettings() self.ClearDictionary() self.mouseModeButtonList[0].ClearDictionary() self.mouseModeButtonList[1].ClearDictionary() self.mouseModeButtonList = 0 self.curMouseModeButton = 0 self.curSkillButton = 0 self.selectSkillButtonList = 0 self.expGauge = None self.hpGauge = None self.mpGauge = None self.stGauge = None self.hpRecoveryGaugeBar = None self.spRecoveryGaugeBar = None self.tooltipItem = 0 self.tooltipSkill = 0 self.quickslot = 0 self.toggleButtonDict = 0 self.hpGaugeBoard = 0 self.mpGaugeBoard = 0 self.stGaugeBoard = 0 self.expGaugeBoard = 0 self.tooltipHP = 0 self.tooltipSP = 0 self.tooltipST = 0 self.tooltipEXP = 0 self.mouseImage = None def __OnClickQuickPageUpButton(self): player.SetQuickPage(player.GetQuickPage()-1) def __OnClickQuickPageDownButton(self): player.SetQuickPage(player.GetQuickPage()+1) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def SetSkillToolTip(self, tooltipSkill): self.tooltipSkill = tooltipSkill self.curSkillButton.SetSkillToolTip(self.tooltipSkill) ## Mouse Image def ShowMouseImage(self): self.mouseImage.SetTop() self.mouseImage.Show() def HideMouseImage(self): player.SetQuickCameraMode(FALSE) self.mouseImage.Hide() ## Gauge def RefreshStatus(self): curHP = player.GetStatus(player.HP) maxHP = player.GetStatus(player.MAX_HP) curSP = player.GetStatus(player.SP) maxSP = player.GetStatus(player.MAX_SP) curEXP = unsigned32(player.GetStatus(player.EXP)) nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP)) recoveryHP = player.GetStatus(player.HP_RECOVERY) recoverySP = player.GetStatus(player.SP_RECOVERY) self.RefreshStamina() self.SetHP(curHP, recoveryHP, maxHP) self.SetSP(curSP, recoverySP, maxSP) self.SetExperience(curEXP, nextEXP) def RefreshStamina(self): curST = player.GetStatus(player.STAMINA) maxST = player.GetStatus(player.MAX_STAMINA) self.SetST(curST, maxST) def RefreshSkill(self): self.curSkillButton.RefreshSkill() for button in self.selectSkillButtonList: button.RefreshSkill() def SetHP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.hpGauge.SetPercentage(curPoint, maxPoint) self.tooltipHP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_HP, curPoint, maxPoint)) if 0 == recoveryPoint: self.hpRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.hpRecoveryGaugeBar.Show() def SetSP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.mpGauge.SetPercentage(curPoint, maxPoint) self.tooltipSP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_SP, curPoint, maxPoint)) if 0 == recoveryPoint: self.spRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.spRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.spRecoveryGaugeBar.Show() def SetST(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.stGauge.SetPercentage(curPoint, maxPoint) self.tooltipST.SetText("%s : %d / %d" % (localeInfo.TASKBAR_ST, curPoint, maxPoint)) def SetExperience(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) curPoint = max(curPoint, 0) maxPoint = max(maxPoint, 0) quarterPoint = maxPoint / 4 FullCount = 0 if 0 != quarterPoint: FullCount = min(4, curPoint / quarterPoint) for i in xrange(4): self.expGauge.Hide() for i in xrange(FullCount): self.expGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0) self.expGauge.Show() if 0 != quarterPoint: if FullCount < 4: Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0 self.expGauge[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0) self.expGauge[FullCount].Show() ##### self.tooltipEXP.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curPoint) / max(1, float(maxPoint)) * 100)) ## QuickSlot def RefreshQuickSlot(self): pageNum = player.GetQuickPage() try: self.quickPageNumImageBox.LoadImage(TaskBar.QUICKPAGE_NUMBER_FILENAME[pageNum]) except: pass startNumber = 0 for slot in self.quickslot: for i in xrange(4): slotNumber = i+startNumber (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_NONE == Type: slot.ClearSlot(slotNumber) continue if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(Position) itemCount = player.GetItemCount(Position) if itemCount <= 1: itemCount = 0 ## 자동물약 (#72723, #72724) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo] if constInfo.IS_AUTO_POTION(itemIndex): # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량 metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if 0 != int(metinSocket[0]): slot.ActivateSlot(slotNumber) else: slot.DeactivateSlot(slotNumber) slot.SetItemSlot(slotNumber, itemIndex, itemCount) elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) if 0 == skillIndex: slot.ClearSlot(slotNumber) continue skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: import guild skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) slot.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) slot.SetSlotCountNew(slotNumber, skillGrade, skillLevel) slot.SetCoverButton(slotNumber) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(Position): (coolTime, elapsedTime) = player.GetSkillCoolTime(Position) slot.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(Position): slot.ActivateSlot(slotNumber) elif player.SLOT_TYPE_EMOTION == Type: emotionIndex = Position slot.SetEmotionSlot(slotNumber, emotionIndex) slot.SetCoverButton(slotNumber) slot.SetSlotCount(slotNumber, 0) slot.RefreshSlot() startNumber += 4 def canAddQuickSlot(self, Type, slotNumber): if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(slotNumber) return item.CanAddToQuickSlotItem(itemIndex) return TRUE def AddQuickSlot(self, localSlotIndex): AttachedSlotType = mouseModule.mouseController.GetAttachedType() AttachedSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() AttachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_QUICK_SLOT == AttachedSlotType: player.RequestMoveGlobalQuickSlotToLocalQuickSlot(AttachedSlotNumber, localSlotIndex) elif player.SLOT_TYPE_EMOTION == AttachedSlotType: player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedItemIndex) elif TRUE == self.canAddQuickSlot(AttachedSlotType, AttachedSlotNumber): ## Online Code player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedSlotNumber) mouseModule.mouseController.DeattachObject() self.RefreshQuickSlot() def SelectEmptyQuickSlot(self, slotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(slotIndex) def SelectItemQuickSlot(self, localQuickSlotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(localQuickSlotIndex) else: globalQuickSlotIndex=player.LocalQuickSlotIndexToGlobalQuickSlotIndex(localQuickSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_QUICK_SLOT, globalQuickSlotIndex, globalQuickSlotIndex) def UnselectItemQuickSlot(self, localSlotIndex): if FALSE == mouseModule.mouseController.isAttached(): player.RequestUseLocalQuickSlot(localSlotIndex) return elif mouseModule.mouseController.isAttached(): mouseModule.mouseController.DeattachObject() return def OnUseSkill(self, usedSlotIndex, coolTime): QUICK_SLOT_SLOT_COUNT = 4 slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Activate(coolTime) ## Quick Slot for slotWindow in self.quickslot: for i in xrange(QUICK_SLOT_SLOT_COUNT): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.SetSlotCoolTime(slotIndex, coolTime) return slotIndex += 1 def OnActivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.ActivateSlot(slotIndex) return slotIndex += 1 def OnDeactivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.DeactivateSlot(slotIndex) return slotIndex += 1 ## ToolTip def OverInItem(self, slotNumber): if mouseModule.mouseController.isAttached(): return (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_INVENTORY == Type: self.tooltipItem.SetInventoryItem(Position) self.tooltipSkill.HideToolTip() elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: import guild skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) self.tooltipSkill.SetSkillNew(Position, skillIndex, skillGrade, skillLevel) self.tooltipItem.HideToolTip() def OverOutItem(self): if 0 != self.tooltipItem: self.tooltipItem.HideToolTip() if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def OnUpdate(self): if app.GetGlobalTime() - self.lastUpdateQuickSlot > 500: self.lastUpdateQuickSlot = app.GetGlobalTime() self.RefreshQuickSlot() if TRUE == self.hpGaugeBoard.IsIn(): self.tooltipHP.Show() else: self.tooltipHP.Hide() if TRUE == self.mpGaugeBoard.IsIn(): self.tooltipSP.Show() else: self.tooltipSP.Hide() if TRUE == self.stGaugeBoard.IsIn(): self.tooltipST.Show() else: self.tooltipST.Hide() if TRUE == self.expGaugeBoard.IsIn(): self.tooltipEXP.Show() else: self.tooltipEXP.Hide() ## Skill def ToggleLeftMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() else: wndMouseButtonMode.Show() def ToggleRightMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() self.CloseSelectSkill() else: wndMouseButtonMode.Show() self.OpenSelectSkill() def OpenSelectSkill(self): PAGE_SLOT_COUNT = 6 (xSkillButton, y) = self.curSkillButton.GetGlobalPosition() y -= (37 + 32 + 1) for key in self.skillCategoryNameList: appendCount = 0 startNumber = self.skillPageStartSlotIndexDict[key] x = xSkillButton getSkillIndex=player.GetSkillIndex getSkillLevel=player.GetSkillLevel for i in xrange(PAGE_SLOT_COUNT): skillIndex = getSkillIndex(startNumber+i) skillLevel = getSkillLevel(startNumber+i) if 0 == skillIndex: continue if 0 == skillLevel: continue if skill.IsStandingSkill(skillIndex): continue ## FIXME : 스킬 하나당 슬롯 하나씩 할당하는건 아무리 봐도 부하가 크다. ## 이 부분은 시간을 나면 고치도록. - [levites] skillButton = self.SkillButton() skillButton.SetSkill(startNumber+i) skillButton.SetPosition(x, y) skillButton.SetSkillEvent(ui.__mem_func__(self.CloseSelectSkill), startNumber+i+1) skillButton.SetSkillToolTip(self.tooltipSkill) skillButton.SetTop() skillButton.Show() self.selectSkillButtonList.append(skillButton) appendCount += 1 x -= 32 if appendCount > 0: y -= 32 def CloseSelectSkill(self, slotIndex=-1): self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT].Hide() for button in self.selectSkillButtonList: button.Destroy() self.selectSkillButtonList = [] if -1 != slotIndex: self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() player.SetMouseFunc(player.MBT_RIGHT, player.MBF_SKILL) player.ChangeCurrentSkillNumberOnly(slotIndex-1) else: self.curSkillButton.Hide() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Show() def SelectMouseButtonEvent(self, dir, event): SetMouseButtonSetting(dir, event) self.CloseSelectSkill() self.mouseModeButtonList[dir].Hide() btn = 0 type = self.NONE func = self.NONE tooltip_text = "" if self.MOUSE_BUTTON_LEFT == dir: type = player.MBT_LEFT elif self.MOUSE_BUTTON_RIGHT == dir: type = player.MBT_RIGHT if self.EVENT_MOVE == event: btn = self.mouseModeButtonList[dir].GetChild("button_move") func = player.MBF_MOVE tooltip_text = localeInfo.TASKBAR_MOVE elif self.EVENT_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_attack") func = player.MBF_ATTACK tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_AUTO == event: btn = self.mouseModeButtonList[dir].GetChild("button_auto_attack") func = player.MBF_AUTO tooltip_text = localeInfo.TASKBAR_AUTO elif self.EVENT_MOVE_AND_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_move_and_attack") func = player.MBF_SMART tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_CAMERA == event: btn = self.mouseModeButtonList[dir].GetChild("button_camera") func = player.MBF_CAMERA tooltip_text = localeInfo.TASKBAR_CAMERA elif self.EVENT_SKILL == event: btn = self.mouseModeButtonList[dir].GetChild("button_skill") func = player.MBF_SKILL tooltip_text = localeInfo.TASKBAR_SKILL if 0 != btn: self.curMouseModeButton[dir].SetToolTipText(tooltip_text, 0, -18) self.curMouseModeButton[dir].SetUpVisual(btn.GetUpVisualFileName()) self.curMouseModeButton[dir].SetOverVisual(btn.GetOverVisualFileName()) self.curMouseModeButton[dir].SetDownVisual(btn.GetDownVisualFileName()) self.curMouseModeButton[dir].Show() player.SetMouseFunc(type, func) def OnChangeCurrentSkill(self, skillSlotNumber): self.curSkillButton.SetSkill(skillSlotNumber) self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() Link to comment Share on other sites More sharing options...
Retro 133 Posted August 2, 2016 Share Posted August 2, 2016 Spoiler import ui import net import item import skill import localeInfo import wndMgr import player import constInfo import mouseModule import uiScriptLocale import app MOUSE_SETTINGS = [0, 0] def InitMouseButtonSettings(left, right): global MOUSE_SETTINGS MOUSE_SETTINGS = [left, right] def SetMouseButtonSetting(dir, event): global MOUSE_SETTINGS MOUSE_SETTINGS[dir] = event def GetMouseButtonSettings(): global MOUSE_SETTINGS return MOUSE_SETTINGS def SaveMouseButtonSettings(): global MOUSE_SETTINGS open("mouse.cfg", "w").write("%s\t%s" % tuple(MOUSE_SETTINGS)) def LoadMouseButtonSettings(): global MOUSE_SETTINGS tokens = open("mouse.cfg", "r").read().split() if len(tokens) != 2: raise RuntimeError, "MOUSE_SETTINGS_FILE_ERROR" MOUSE_SETTINGS[0] = int(tokens[0]) MOUSE_SETTINGS[1] = int(tokens[1]) def unsigned32(n): return n & 0xFFFFFFFFL #-------------------Giftbox Begin------------------------------ class GiftBox(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("GiftBox") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipGift = self.TextToolTip() self.tooltipGift.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "giftbox.py") except: import exception exception.Abort("GiftBox.LoadWindow.LoadObject") self.giftBoxIcon = self.GetChild("GiftBox_Icon") self.giftBoxToolTip = self.GetChild("GiftBox_ToolTip") def Destroy(self): self.giftBoxIcon = 0 self.giftBoxToolTip = 0 #-------------------Giftbox End------------------------------ class EnergyBar(ui.ScriptWindow): class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") self.SetWindowName("EnergyBar") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self) self.tooltipEnergy = self.TextToolTip() self.tooltipEnergy.Show() def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "EnergyBar.py") except: import exception exception.Abort("EnergyBar.LoadWindow.LoadObject") self.energyEmpty = self.GetChild("EnergyGauge_Empty") self.energyHungry = self.GetChild("EnergyGauge_Hungry") self.energyFull = self.GetChild("EnergyGauge_Full") self.energyGaugeBoard = self.GetChild("EnergyGauge_Board") self.energyGaugeToolTip = self.GetChild("EnergyGauge_ToolTip") def Destroy(self): self.energyEmpty = None self.energyHungry = None self.energyFull = None self.energyGaugeBoard = 0 self.energyGaugeToolTip = 0 self.tooltipEnergy = 0 ## Gauge def RefreshStatus(self): pointEnergy = player.GetStatus (player.ENERGY) leftTimeEnergy = player.GetStatus (player.ENERGY_END_TIME) - app.GetGlobalTimeStamp() # 충기환 지속 시간 = 2시간. self.SetEnergy (pointEnergy, leftTimeEnergy, 7200) def SetEnergy (self, point, leftTime, maxTime): leftTime = max (leftTime, 0) maxTime = max (maxTime, 0) self.energyEmpty.Hide() self.energyHungry.Hide() self.energyFull.Hide() if leftTime == 0: self.energyEmpty.Show() elif ((leftTime * 100) / maxTime) < 15: self.energyHungry.Show() else: self.energyFull.Show() self.tooltipEnergy.SetText("%s" % (localeInfo.TOOLTIP_ENERGY(point))) def OnUpdate(self): if TRUE == self.energyGaugeToolTip.IsIn(): self.RefreshStatus() self.tooltipEnergy.Show() else: self.tooltipEnergy.Hide() class ExpandedTaskBar(ui.ScriptWindow): BUTTON_DRAGON_SOUL = 0 def __init__(self): ui.Window.__init__(self) self.SetWindowName("ExpandedTaskBar") def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py") except: import exception exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject") self.expandedTaskBarBoard = self.GetChild("ExpanedTaskBar_Board") self.toggleButtonDict = {} self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL] = self.GetChild("DragonSoulButton") self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL].SetParent(self) def SetTop(self): super(ExpandedTaskBar, self).SetTop() for button in self.toggleButtonDict.values(): button.SetTop() def Show(self): ui.ScriptWindow.Show(self) def Close(self): self.Hide() def SetToolTipText(self, eButton, text): self.toggleButtonDict[eButton].SetToolTipText(text) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def OnPressEscapeKey(self): self.Close() return TRUE class TaskBar(ui.ScriptWindow): BUTTON_CHARACTER = 0 BUTTON_INVENTORY = 1 BUTTON_MESSENGER = 2 BUTTON_SYSTEM = 3 BUTTON_CHAT = 4 BUTTON_EXPAND = 4 IS_EXPANDED = FALSE MOUSE_BUTTON_LEFT = 0 MOUSE_BUTTON_RIGHT = 1 NONE = 255 EVENT_MOVE = 0 EVENT_ATTACK = 1 EVENT_MOVE_AND_ATTACK = 2 EVENT_CAMERA = 3 EVENT_SKILL = 4 EVENT_AUTO = 5 GAUGE_WIDTH = 95 GAUGE_HEIGHT = 13 QUICKPAGE_NUMBER_FILENAME = [ "d:/ymir work/ui/game/taskbar/1.sub", "d:/ymir work/ui/game/taskbar/2.sub", "d:/ymir work/ui/game/taskbar/3.sub", "d:/ymir work/ui/game/taskbar/4.sub", ] #gift icon show and hide def ShowGift(self): if not localeInfo.IsBRAZIL(): self.wndGiftBox.Show() def HideGift(self): self.wndGiftBox.Hide() class TextToolTip(ui.Window): def __init__(self): ui.Window.__init__(self, "TOP_MOST") textLine = ui.TextLine() textLine.SetParent(self) textLine.SetHorizontalAlignCenter() textLine.SetOutline() textLine.Show() self.textLine = textLine def __del__(self): ui.Window.__del__(self) def SetText(self, text): self.textLine.SetText(text) def OnRender(self): (mouseX, mouseY) = wndMgr.GetMousePosition() self.textLine.SetPosition(mouseX, mouseY - 15) class SkillButton(ui.SlotWindow): def __init__(self): ui.SlotWindow.__init__(self) self.event = 0 self.arg = 0 self.slotIndex = 0 self.skillIndex = 0 slotIndex = 0 wndMgr.SetSlotBaseImage(self.hWnd, "d:/ymir work/ui/public/slot_base.sub", 1.0, 1.0, 1.0, 1.0) wndMgr.AppendSlot(self.hWnd, slotIndex, 0, 0, 32, 32) self.SetCoverButton(slotIndex, "d:/ymir work/ui/public/slot_cover_button_01.sub",\ "d:/ymir work/ui/public/slot_cover_button_02.sub",\ "d:/ymir work/ui/public/slot_cover_button_03.sub",\ "d:/ymir work/ui/public/slot_cover_button_04.sub", TRUE, FALSE) self.SetSize(32, 32) def __del__(self): ui.SlotWindow.__del__(self) def Destroy(self): if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def RefreshSkill(self): if 0 != self.slotIndex: self.SetSkill(self.slotIndex) def SetSkillToolTip(self, tooltip): self.tooltipSkill = tooltip def SetSkill(self, skillSlotNumber): slotNumber = 0 skillIndex = player.GetSkillIndex(skillSlotNumber) skillGrade = player.GetSkillGrade(skillSlotNumber) skillLevel = player.GetSkillLevel(skillSlotNumber) skillType = skill.GetSkillType(skillIndex) self.skillIndex = skillIndex if 0 == self.skillIndex: self.ClearSlot(slotNumber) return self.slotIndex = skillSlotNumber self.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) self.SetSlotCountNew(slotNumber, skillGrade, skillLevel) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(skillSlotNumber): (coolTime, elapsedTime) = player.GetSkillCoolTime(skillSlotNumber) self.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(skillSlotNumber): self.ActivateSlot(slotNumber) def SetSkillEvent(self, event, arg=0): self.event = event self.arg = arg def GetSkillIndex(self): return self.skillIndex def GetSlotIndex(self): return self.slotIndex def Activate(self, coolTime): self.SetSlotCoolTime(0, coolTime) if skill.IsToggleSkill(self.skillIndex): self.ActivateSlot(0) def Deactivate(self): if skill.IsToggleSkill(self.skillIndex): self.DeactivateSlot(0) def OnOverInItem(self, dummy): self.tooltipSkill.SetSkill(self.skillIndex) def OnOverOutItem(self): self.tooltipSkill.HideToolTip() def OnSelectItemSlot(self, dummy): if 0 != self.event: if 0 != self.arg: self.event(self.arg) else: self.event() def __init__(self): #print "NEW TASKBAR ----------------------------------------------------------------------------" ui.ScriptWindow.__init__(self, "TOP_MOST") self.quickPageNumImageBox = None self.tooltipItem = 0 self.tooltipSkill = 0 self.mouseModeButtonList = [ ui.ScriptWindow("TOP_MOST"), ui.ScriptWindow("TOP_MOST") ] self.tooltipHP = self.TextToolTip() self.tooltipHP.Show() self.tooltipSP = self.TextToolTip() self.tooltipSP.Show() self.tooltipST = self.TextToolTip() self.tooltipST.Show() self.tooltipEXP = self.TextToolTip() self.tooltipEXP.Show() self.skillCategoryNameList = [ "ACTIVE_1", "ACTIVE_2", "ACTIVE_3" ] self.skillPageStartSlotIndexDict = { "ACTIVE_1" : 1, "ACTIVE_2" : 21, "ACTIVE_3" : 41, } self.selectSkillButtonList = [] self.lastUpdateQuickSlot = 0 self.SetWindowName("TaskBar") def __del__(self): #print "---------------------------------------------------------------------------- DELETE TASKBAR" ui.ScriptWindow.__del__(self) def LoadWindow(self): try: pyScrLoader = ui.PythonScriptLoader() if constInfo.IN_GAME_SHOP_ENABLE: pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "TaskBar.py") else: pyScrLoader.LoadScriptFile(self, "UIScript/TaskBar.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT], "UIScript/MouseButtonWindow.py") pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT], "UIScript/RightMouseButtonWindow.py") except: import exception exception.Abort("TaskBar.LoadWindow.LoadObject") self.quickslot = [] self.quickslot.append(self.GetChild("quick_slot_1")) self.quickslot.append(self.GetChild("quick_slot_2")) for slot in self.quickslot: slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE) slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptyQuickSlot)) slot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemQuickSlot)) slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemQuickSlot)) slot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) toggleButtonDict = {} toggleButtonDict[TaskBar.BUTTON_CHARACTER]=self.GetChild("CharacterButton") toggleButtonDict[TaskBar.BUTTON_INVENTORY]=self.GetChild("InventoryButton") toggleButtonDict[TaskBar.BUTTON_MESSENGER]=self.GetChild("MessengerButton") toggleButtonDict[TaskBar.BUTTON_SYSTEM]=self.GetChild("SystemButton") # ChatButton, ExpandButton 둘 중 하나는 반드시 존재한다. try: toggleButtonDict[TaskBar.BUTTON_CHAT]=self.GetChild("ChatButton") except: toggleButtonDict[TaskBar.BUTTON_EXPAND]=self.GetChild("ExpandButton") TaskBar.IS_EXPANDED = TRUE if localeInfo.IsARABIC(): systemButton = toggleButtonDict[TaskBar.BUTTON_SYSTEM] if systemButton.ToolTipText: tx, ty = systemButton.ToolTipText.GetLocalPosition() tw = systemButton.ToolTipText.GetWidth() systemButton.ToolTipText.SetPosition(-tw/2, ty) expGauge = [] expGauge.append(self.GetChild("EXPGauge_01")) expGauge.append(self.GetChild("EXPGauge_02")) expGauge.append(self.GetChild("EXPGauge_03")) expGauge.append(self.GetChild("EXPGauge_04")) for exp in expGauge: exp.SetSize(0, 0) self.quickPageNumImageBox=self.GetChild("QuickPageNumber") self.GetChild("QuickPageUpButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageUpButton)) self.GetChild("QuickPageDownButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageDownButton)) mouseLeftButtonModeButton = self.GetChild("LeftMouseButton") mouseRightButtonModeButton = self.GetChild("RightMouseButton") mouseLeftButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleLeftMouseButtonModeWindow)) mouseRightButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curMouseModeButton = [ mouseLeftButtonModeButton, mouseRightButtonModeButton ] (xLocalRight, yLocalRight) = mouseRightButtonModeButton.GetLocalPosition() self.curSkillButton = self.SkillButton() self.curSkillButton.SetParent(self) self.curSkillButton.SetPosition(xLocalRight, 3) self.curSkillButton.SetSkillEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow)) self.curSkillButton.Hide() (xLeft, yLeft) = mouseLeftButtonModeButton.GetGlobalPosition() (xRight, yRight) = mouseRightButtonModeButton.GetGlobalPosition() leftModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] leftModeButtonList.SetPosition(xLeft, yLeft - leftModeButtonList.GetHeight()-5) rightModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] rightModeButtonList.SetPosition(xRight - rightModeButtonList.GetWidth() + 32, yRight - rightModeButtonList.GetHeight()-5) rightModeButtonList.GetChild("button_skill").SetEvent(lambda adir=self.MOUSE_BUTTON_RIGHT, aevent=self.EVENT_SKILL: self.SelectMouseButtonEvent(adir, aevent)) rightModeButtonList.GetChild("button_skill").Hide() mouseImage = ui.ImageBox("TOP_MOST") mouseImage.AddFlag("float") mouseImage.LoadImage("d:/ymir work/ui/game/taskbar/mouse_button_camera_01.sub") mouseImage.SetPosition(xRight, wndMgr.GetScreenHeight() - 34) mouseImage.Hide() self.mouseImage = mouseImage dir = self.MOUSE_BUTTON_LEFT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_auto_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_AUTO: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) dir = self.MOUSE_BUTTON_RIGHT wnd = self.mouseModeButtonList[dir] wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent)) wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent)) self.toggleButtonDict = toggleButtonDict self.expGauge = expGauge if constInfo.IN_GAME_SHOP_ENABLE: self.rampageGauge1 = self.GetChild("RampageGauge") self.rampageGauge1.OnMouseOverIn = ui.__mem_func__(self.__RampageGauge_OverIn) self.rampageGauge2 = self.GetChild("RampageGauge2") self.rampageGauge2.OnMouseOverOut = ui.__mem_func__(self.__RampageGauge_OverOut) self.rampageGauge2.OnMouseLeftButtonUp = ui.__mem_func__(self.__RampageGauge_Click) print "[DEBUG]: constInfo.IN_GAME_SHOP_ENABLE / self.rampageGauge1",constInfo.IN_GAME_SHOP_ENABLE, self.rampageGauge1 self.__RampageGauge_OverOut() self.hpGauge = self.GetChild("HPGauge") self.mpGauge = self.GetChild("SPGauge") self.stGauge = self.GetChild("STGauge") self.hpRecoveryGaugeBar = self.GetChild("HPRecoveryGaugeBar") self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar") self.hpGaugeBoard=self.GetChild("HPGauge_Board") self.mpGaugeBoard=self.GetChild("SPGauge_Board") self.stGaugeBoard=self.GetChild("STGauge_Board") self.expGaugeBoard=self.GetChild("EXP_Gauge_Board") #giftbox object wndGiftBox = GiftBox() wndGiftBox.LoadWindow() self.wndGiftBox = wndGiftBox self.__LoadMouseSettings() self.RefreshStatus() self.RefreshQuickSlot() def __RampageGauge_OverIn(self): print "rampage_over_in" self.rampageGauge2.Show() self.rampageGauge1.Hide() def __RampageGauge_OverOut(self): print "rampage_over_out" self.rampageGauge2.Hide() self.rampageGauge1.Show() def __RampageGauge_Click(self): print "rampage_up" net.SendChatPacket("/in_game_mall") # gift icon hide when click mall icon self.wndGiftBox.Hide() def __LoadMouseSettings(self): try: LoadMouseButtonSettings() (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() if not self.__IsInSafeMouseButtonSettingRange(mouseLeftButtonEvent) or not self.__IsInSafeMouseButtonSettingRange(mouseRightButtonEvent): raise RuntimeError, "INVALID_MOUSE_BUTTON_SETTINGS" except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() try: self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) except: InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA) (mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings() self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent) self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent) def __IsInSafeMouseButtonSettingRange(self, arg): return arg >= self.EVENT_MOVE and arg <= self.EVENT_AUTO def Destroy(self): SaveMouseButtonSettings() self.ClearDictionary() self.mouseModeButtonList[0].ClearDictionary() self.mouseModeButtonList[1].ClearDictionary() self.mouseModeButtonList = 0 self.curMouseModeButton = 0 self.curSkillButton = 0 self.selectSkillButtonList = 0 self.expGauge = None self.hpGauge = None self.mpGauge = None self.stGauge = None self.hpRecoveryGaugeBar = None self.spRecoveryGaugeBar = None self.tooltipItem = 0 self.tooltipSkill = 0 self.quickslot = 0 self.toggleButtonDict = 0 self.hpGaugeBoard = 0 self.mpGaugeBoard = 0 self.stGaugeBoard = 0 self.expGaugeBoard = 0 self.tooltipHP = 0 self.tooltipSP = 0 self.tooltipST = 0 self.tooltipEXP = 0 self.mouseImage = None def __OnClickQuickPageUpButton(self): player.SetQuickPage(player.GetQuickPage()-1) def __OnClickQuickPageDownButton(self): player.SetQuickPage(player.GetQuickPage()+1) def SetToggleButtonEvent(self, eButton, kEventFunc): self.toggleButtonDict[eButton].SetEvent(kEventFunc) def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def SetSkillToolTip(self, tooltipSkill): self.tooltipSkill = tooltipSkill self.curSkillButton.SetSkillToolTip(self.tooltipSkill) ## Mouse Image def ShowMouseImage(self): self.mouseImage.SetTop() self.mouseImage.Show() def HideMouseImage(self): player.SetQuickCameraMode(FALSE) self.mouseImage.Hide() ## Gauge def RefreshStatus(self): curHP = player.GetStatus(player.HP) maxHP = player.GetStatus(player.MAX_HP) curSP = player.GetStatus(player.SP) maxSP = player.GetStatus(player.MAX_SP) curEXP = unsigned32(player.GetStatus(player.EXP)) nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP)) recoveryHP = player.GetStatus(player.HP_RECOVERY) recoverySP = player.GetStatus(player.SP_RECOVERY) self.RefreshStamina() self.SetHP(curHP, recoveryHP, maxHP) self.SetSP(curSP, recoverySP, maxSP) self.SetExperience(curEXP, nextEXP) def RefreshStamina(self): curST = player.GetStatus(player.STAMINA) maxST = player.GetStatus(player.MAX_STAMINA) self.SetST(curST, maxST) def RefreshSkill(self): self.curSkillButton.RefreshSkill() for button in self.selectSkillButtonList: button.RefreshSkill() def SetHP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.hpGauge.SetPercentage(curPoint, maxPoint) self.tooltipHP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_HP, curPoint, maxPoint)) if 0 == recoveryPoint: self.hpRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.hpRecoveryGaugeBar.Show() def SetSP(self, curPoint, recoveryPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.mpGauge.SetPercentage(curPoint, maxPoint) self.tooltipSP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_SP, curPoint, maxPoint)) if 0 == recoveryPoint: self.spRecoveryGaugeBar.Hide() else: destPoint = min(maxPoint, curPoint + recoveryPoint) newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint))) self.spRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT) self.spRecoveryGaugeBar.Show() def SetST(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) if maxPoint > 0: self.stGauge.SetPercentage(curPoint, maxPoint) self.tooltipST.SetText("%s : %d / %d" % (localeInfo.TASKBAR_ST, curPoint, maxPoint)) def SetExperience(self, curPoint, maxPoint): curPoint = min(curPoint, maxPoint) curPoint = max(curPoint, 0) maxPoint = max(maxPoint, 0) quarterPoint = maxPoint / 4 FullCount = 0 if 0 != quarterPoint: FullCount = min(4, curPoint / quarterPoint) for i in xrange(4): self.expGauge.Hide() for i in xrange(FullCount): self.expGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0) self.expGauge.Show() if 0 != quarterPoint: if FullCount < 4: Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0 self.expGauge[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0) self.expGauge[FullCount].Show() ##### self.tooltipEXP.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curPoint) / max(1, float(maxPoint)) * 100)) ## QuickSlot def RefreshQuickSlot(self): pageNum = player.GetQuickPage() try: self.quickPageNumImageBox.LoadImage(TaskBar.QUICKPAGE_NUMBER_FILENAME[pageNum]) except: pass startNumber = 0 for slot in self.quickslot: for i in xrange(4): slotNumber = i+startNumber (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_NONE == Type: slot.ClearSlot(slotNumber) continue if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(Position) itemCount = player.GetItemCount(Position) if itemCount <= 1: itemCount = 0 ## 자동물약 (#72723, #72724) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo] if constInfo.IS_AUTO_POTION(itemIndex): # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량 metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if 0 != int(metinSocket[0]): slot.ActivateSlot(slotNumber) else: slot.DeactivateSlot(slotNumber) slot.SetItemSlot(slotNumber, itemIndex, itemCount) elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) if 0 == skillIndex: slot.ClearSlot(slotNumber) continue skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: import guild skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) slot.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel) slot.SetSlotCountNew(slotNumber, skillGrade, skillLevel) slot.SetCoverButton(slotNumber) ## NOTE : CoolTime 체크 if player.IsSkillCoolTime(Position): (coolTime, elapsedTime) = player.GetSkillCoolTime(Position) slot.SetSlotCoolTime(slotNumber, coolTime, elapsedTime) ## NOTE : Activate 되어 있다면 아이콘도 업데이트 if player.IsSkillActive(Position): slot.ActivateSlot(slotNumber) elif player.SLOT_TYPE_EMOTION == Type: emotionIndex = Position slot.SetEmotionSlot(slotNumber, emotionIndex) slot.SetCoverButton(slotNumber) slot.SetSlotCount(slotNumber, 0) slot.RefreshSlot() startNumber += 4 def canAddQuickSlot(self, Type, slotNumber): if player.SLOT_TYPE_INVENTORY == Type: itemIndex = player.GetItemIndex(slotNumber) return item.CanAddToQuickSlotItem(itemIndex) return TRUE def AddQuickSlot(self, localSlotIndex): AttachedSlotType = mouseModule.mouseController.GetAttachedType() AttachedSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() AttachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_QUICK_SLOT == AttachedSlotType: player.RequestMoveGlobalQuickSlotToLocalQuickSlot(AttachedSlotNumber, localSlotIndex) elif player.SLOT_TYPE_EMOTION == AttachedSlotType: player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedItemIndex) elif TRUE == self.canAddQuickSlot(AttachedSlotType, AttachedSlotNumber): ## Online Code player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedSlotNumber) mouseModule.mouseController.DeattachObject() self.RefreshQuickSlot() def SelectEmptyQuickSlot(self, slotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(slotIndex) def SelectItemQuickSlot(self, localQuickSlotIndex): if TRUE == mouseModule.mouseController.isAttached(): self.AddQuickSlot(localQuickSlotIndex) else: globalQuickSlotIndex=player.LocalQuickSlotIndexToGlobalQuickSlotIndex(localQuickSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_QUICK_SLOT, globalQuickSlotIndex, globalQuickSlotIndex) def UnselectItemQuickSlot(self, localSlotIndex): if FALSE == mouseModule.mouseController.isAttached(): player.RequestUseLocalQuickSlot(localSlotIndex) return elif mouseModule.mouseController.isAttached(): mouseModule.mouseController.DeattachObject() return def OnUseSkill(self, usedSlotIndex, coolTime): QUICK_SLOT_SLOT_COUNT = 4 slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Activate(coolTime) ## Quick Slot for slotWindow in self.quickslot: for i in xrange(QUICK_SLOT_SLOT_COUNT): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.SetSlotCoolTime(slotIndex, coolTime) return slotIndex += 1 def OnActivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.ActivateSlot(slotIndex) return slotIndex += 1 def OnDeactivateSkill(self, usedSlotIndex): slotIndex = 0 ## Current Skill Button if usedSlotIndex == self.curSkillButton.GetSlotIndex(): self.curSkillButton.Deactivate() ## Quick Slot for slotWindow in self.quickslot: for i in xrange(4): (Type, Position) = player.GetLocalQuickSlot(slotIndex) if Type == player.SLOT_TYPE_SKILL: if usedSlotIndex == Position: slotWindow.DeactivateSlot(slotIndex) return slotIndex += 1 ## ToolTip def OverInItem(self, slotNumber): if mouseModule.mouseController.isAttached(): return (Type, Position) = player.GetLocalQuickSlot(slotNumber) if player.SLOT_TYPE_INVENTORY == Type: self.tooltipItem.SetInventoryItem(Position) self.tooltipSkill.HideToolTip() elif player.SLOT_TYPE_SKILL == Type: skillIndex = player.GetSkillIndex(Position) skillType = skill.GetSkillType(skillIndex) if skill.SKILL_TYPE_GUILD == skillType: import guild skillGrade = 0 skillLevel = guild.GetSkillLevel(Position) else: skillGrade = player.GetSkillGrade(Position) skillLevel = player.GetSkillLevel(Position) self.tooltipSkill.SetSkillNew(Position, skillIndex, skillGrade, skillLevel) self.tooltipItem.HideToolTip() def OverOutItem(self): if 0 != self.tooltipItem: self.tooltipItem.HideToolTip() if 0 != self.tooltipSkill: self.tooltipSkill.HideToolTip() def OnUpdate(self): if app.GetGlobalTime() - self.lastUpdateQuickSlot > 500: self.lastUpdateQuickSlot = app.GetGlobalTime() self.RefreshQuickSlot() if TRUE == self.hpGaugeBoard.IsIn(): self.tooltipHP.Show() else: self.tooltipHP.Hide() if TRUE == self.mpGaugeBoard.IsIn(): self.tooltipSP.Show() else: self.tooltipSP.Hide() if TRUE == self.stGaugeBoard.IsIn(): self.tooltipST.Show() else: self.tooltipST.Hide() if TRUE == self.expGaugeBoard.IsIn(): self.tooltipEXP.Show() else: self.tooltipEXP.Hide() ## Skill def ToggleLeftMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() else: wndMouseButtonMode.Show() def ToggleRightMouseButtonModeWindow(self): wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT] if TRUE == wndMouseButtonMode.IsShow(): wndMouseButtonMode.Hide() self.CloseSelectSkill() else: wndMouseButtonMode.Show() self.OpenSelectSkill() def OpenSelectSkill(self): PAGE_SLOT_COUNT = 6 (xSkillButton, y) = self.curSkillButton.GetGlobalPosition() y -= (37 + 32 + 1) for key in self.skillCategoryNameList: appendCount = 0 startNumber = self.skillPageStartSlotIndexDict[key] x = xSkillButton getSkillIndex=player.GetSkillIndex getSkillLevel=player.GetSkillLevel for i in xrange(PAGE_SLOT_COUNT): skillIndex = getSkillIndex(startNumber+i) skillLevel = getSkillLevel(startNumber+i) if 0 == skillIndex: continue if 0 == skillLevel: continue if skill.IsStandingSkill(skillIndex): continue ## FIXME : 스킬 하나당 슬롯 하나씩 할당하는건 아무리 봐도 부하가 크다. ## 이 부분은 시간을 나면 고치도록. - [levites] skillButton = self.SkillButton() skillButton.SetSkill(startNumber+i) skillButton.SetPosition(x, y) skillButton.SetSkillEvent(ui.__mem_func__(self.CloseSelectSkill), startNumber+i+1) skillButton.SetSkillToolTip(self.tooltipSkill) skillButton.SetTop() skillButton.Show() self.selectSkillButtonList.append(skillButton) appendCount += 1 x -= 32 if appendCount > 0: y -= 32 def CloseSelectSkill(self, slotIndex=-1): self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT].Hide() for button in self.selectSkillButtonList: button.Destroy() self.selectSkillButtonList = [] if -1 != slotIndex: self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() player.SetMouseFunc(player.MBT_RIGHT, player.MBF_SKILL) player.ChangeCurrentSkillNumberOnly(slotIndex-1) else: self.curSkillButton.Hide() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Show() def SelectMouseButtonEvent(self, dir, event): SetMouseButtonSetting(dir, event) self.CloseSelectSkill() self.mouseModeButtonList[dir].Hide() btn = 0 type = self.NONE func = self.NONE tooltip_text = "" if self.MOUSE_BUTTON_LEFT == dir: type = player.MBT_LEFT elif self.MOUSE_BUTTON_RIGHT == dir: type = player.MBT_RIGHT if self.EVENT_MOVE == event: btn = self.mouseModeButtonList[dir].GetChild("button_move") func = player.MBF_MOVE tooltip_text = localeInfo.TASKBAR_MOVE elif self.EVENT_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_attack") func = player.MBF_ATTACK tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_AUTO == event: btn = self.mouseModeButtonList[dir].GetChild("button_auto_attack") func = player.MBF_AUTO tooltip_text = localeInfo.TASKBAR_AUTO elif self.EVENT_MOVE_AND_ATTACK == event: btn = self.mouseModeButtonList[dir].GetChild("button_move_and_attack") func = player.MBF_SMART tooltip_text = localeInfo.TASKBAR_ATTACK elif self.EVENT_CAMERA == event: btn = self.mouseModeButtonList[dir].GetChild("button_camera") func = player.MBF_CAMERA tooltip_text = localeInfo.TASKBAR_CAMERA elif self.EVENT_SKILL == event: btn = self.mouseModeButtonList[dir].GetChild("button_skill") func = player.MBF_SKILL tooltip_text = localeInfo.TASKBAR_SKILL if 0 != btn: self.curMouseModeButton[dir].SetToolTipText(tooltip_text, 0, -18) self.curMouseModeButton[dir].SetUpVisual(btn.GetUpVisualFileName()) self.curMouseModeButton[dir].SetOverVisual(btn.GetOverVisualFileName()) self.curMouseModeButton[dir].SetDownVisual(btn.GetDownVisualFileName()) self.curMouseModeButton[dir].Show() player.SetMouseFunc(type, func) def OnChangeCurrentSkill(self, skillSlotNumber): self.curSkillButton.SetSkill(skillSlotNumber) self.curSkillButton.Show() self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide() Try with this, if you still got errors post them there Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 2, 2016 Author Premium Share Posted August 2, 2016 But i remove the same thing on the taskbar.ui? Now i put ID and PW and client goes down, syserr: 0802 16:32:13827 :: networkModule.py(line:208) SetSelectCharacterPhase system.py(line:130) __pack_import system.py(line:110) _process_result introSelect.py(line:30) ? system.py(line:130) __pack_import system.py(line:110) _process_result interfaceModule.py(line:10) ? system.py(line:130) __pack_import networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 1136) 0802 16:32:13827 :: ============================================================================================================ 0802 16:32:13827 :: Abort!!!! Link to comment Share on other sites More sharing options...
Retro 133 Posted August 2, 2016 Share Posted August 2, 2016 yes you have to remove it from taskbar.py too check this http://pastebin.com/f1UmT94z search for vectorsefsunbutton or something like that in your whole root and delete the functions you find. Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 2, 2016 Author Premium Share Posted August 2, 2016 I already removed everything but keep the same error syserr 0802 16:53:07173 :: networkModule.py(line:208) SetSelectCharacterPhase system.py(line:130) __pack_import system.py(line:110) _process_result introSelect.py(line:30) ? system.py(line:130) __pack_import system.py(line:110) _process_result interfaceModule.py(line:10) ? system.py(line:130) __pack_import networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 1136) 0802 16:53:07173 :: ============================================================================================================ 0802 16:53:07173 :: Abort!!!! Some tips? Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 2, 2016 Author Premium Share Posted August 2, 2016 Can somebody try helpme by teamviewer or something like that, im already tired for trying remove this bot... Link to comment Share on other sites More sharing options...
Artnesor 1 Posted August 2, 2016 Share Posted August 2, 2016 You have to add empty line at the end of file. Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 3, 2016 Author Premium Share Posted August 3, 2016 (edited) 2 hours ago, Artnesor said: You have to add empty line at the end of file. I'll try Result: Edit1: I think i solved that error. Now when i try login the client closes. 0803 01:35:06784 :: networkModule.py(line:208) SetSelectCharacterPhase system.py(line:130) __pack_import system.py(line:110) _process_result introSelect.py(line:30) ? system.py(line:130) __pack_import system.py(line:110) _process_result interfaceModule.py(line:10) ? system.py(line:130) __pack_import networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 1142) 0803 01:35:06784 :: ============================================================================================================ 0803 01:35:06784 :: Abort!!!! Edited August 24, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Premium Red 13 Posted August 3, 2016 Author Premium Share Posted August 3, 2016 So i got a solutions with help with a friend, so if somebody got the same problem you must go to locale -> taskbar.py and delete { "name" : "VectorsEfsunButton", "type" : "button", "x" : SCREEN_WIDTH - 178, "y" : 3 + Y_ADD_POSITION, "tooltip_text" : "Efsun Botu", "default_image" : "d:/ymir work/ui/Vectorsefs1.tga", "over_image" : "d:/ymir work/ui/Vectorsefs2.tga", "down_image" : "d:/ymir work/ui/Vectorsefs1.tga", }, then go to root -> uitaskbar.py and delete toggleButtonDict[TaskBar.BUTTON_VECTORS]=self.GetChild("VectorsEfsunButton") BUTTON_VECTORS = 5 interfacemodule.py and delete self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_VECTORS, ui.__mem_func__(self.Vectors)) and last one you go to constinfo.py and delete VectorsEfsunTaskbar = 0 Thanks for everyone who tried help me. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now