Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ui
- import uiScriptLocale
- import app
- import net
- import dbg
- import snd
- import player
- import mouseModule
- import wndMgr
- import skill
- import playerSettingModule
- import quest
- import localeInfo
- import uiToolTip
- import constInfo
- import osfInfo
- import emotion
- import chr
- if app.ENABLE_DETAILS_UI:
- import uiCharacterDetails
- if app.ENABLE_QUEST_RENEWAL:
- import math, uiQuest
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- import uiSkillColor
- import loading
- SHOW_ONLY_ACTIVE_SKILL = False
- SHOW_LIMIT_SUPPORT_SKILL_LIST = []
- HIDE_SUPPORT_SKILL_POINT = False
- if localeInfo.IsYMIR():
- SHOW_LIMIT_SUPPORT_SKILL_LIST = [121, 122, 123, 124, 126, 127, 129, 128, 131, 137, 138, 139, 140, 141, 142]
- if not localeInfo.IsCHEONMA():
- HIDE_SUPPORT_SKILL_POINT = True
- SHOW_LIMIT_SUPPORT_SKILL_LIST = [121, 122, 123, 124, 126, 127, 129, 128, 131, 137, 138, 139, 140, 141, 142]
- elif localeInfo.IsJAPAN() or (localeInfo.IsEUROPE() and app.GetLocalePath() != "locale/ca") and (localeInfo.IsEUROPE() and app.GetLocalePath() != "locale/br"):
- HIDE_SUPPORT_SKILL_POINT = True
- SHOW_LIMIT_SUPPORT_SKILL_LIST = [121, 122, 123, 124, 126, 127, 129, 128, 131, 137, 138, 139, 140, 134, 133]
- # SHOW_LIMIT_SUPPORT_SKILL_LIST.update([134, 133, 141, 142])
- else:
- HIDE_SUPPORT_SKILL_POINT = True
- FACE_IMAGE_DICT = {
- playerSettingModule.RACE_WARRIOR_M : "icon/face/warrior_m.tga",
- playerSettingModule.RACE_WARRIOR_W : "icon/face/warrior_w.tga",
- playerSettingModule.RACE_ASSASSIN_M : "icon/face/assassin_m.tga",
- playerSettingModule.RACE_ASSASSIN_W : "icon/face/assassin_w.tga",
- playerSettingModule.RACE_SURA_M : "icon/face/sura_m.tga",
- playerSettingModule.RACE_SURA_W : "icon/face/sura_w.tga",
- playerSettingModule.RACE_SHAMAN_M : "icon/face/shaman_m.tga",
- playerSettingModule.RACE_SHAMAN_W : "icon/face/shaman_w.tga",
- playerSettingModule.RACE_WOLFMAN_M : "icon/face/wolfman_m.tga",
- }
- def unsigned32(n):
- return n & 0xFFFFFFFFL
- if app.ENABLE_QUEST_RENEWAL:
- quest_slot_listbar = {
- "name" : "Quest_Slot",
- "type" : "listbar",
- "x" : 0,
- "y" : 0,
- "width" : 210,
- "height" : 20,
- "text" : "Quest title",
- "align" : "left",
- "horizontal_align" : "left",
- "vertical_align" : "left",
- "text_horizontal_align" : "left",
- "all_align" : "left",
- "text_height": 40
- }
- quest_lable_expend_img_path_dict = {
- 0: "d:/ymir work/ui/quest_re/tabcolor_1_main.tga",
- 1: "d:/ymir work/ui/quest_re/tabcolor_2_sub.tga",
- 2: "d:/ymir work/ui/quest_re/tabcolor_3_levelup.tga",
- 3: "d:/ymir work/ui/quest_re/tabcolor_4_event.tga",
- 4: "d:/ymir work/ui/quest_re/tabcolor_5_collection.tga",
- 5: "d:/ymir work/ui/quest_re/tabcolor_6_system.tga",
- 6: "d:/ymir work/ui/quest_re/tabcolor_7_scroll.tga",
- 7: "d:/ymir work/ui/quest_re/tabcolor_8_daily.tga"
- }
- quest_label_dict = {
- 0 : uiScriptLocale.QUEST_UI_TEXT_MAIN,
- 1 : uiScriptLocale.QUEST_UI_TEXT_SUB,
- 2 : uiScriptLocale.QUEST_UI_TEXT_LEVELUP,
- 3 : uiScriptLocale.QUEST_UI_TEXT_EVENT,
- 4 : uiScriptLocale.QUEST_UI_TEXT_COLLECTION,
- 5 : uiScriptLocale.QUEST_UI_TEXT_SYSTEM,
- 6 : uiScriptLocale.QUEST_UI_TEXT_SCROLL,
- 7 : uiScriptLocale.QUEST_UI_TEXT_DAILY,
- }
- class CharacterWindow(ui.ScriptWindow):
- if app.ENABLE_CONQUEROR_LEVEL:
- ACTIVE_PAGE_SLOT_COUNT = 10
- SUPPORT_PAGE_SLOT_COUNT = 18
- else:
- ACTIVE_PAGE_SLOT_COUNT = 8
- SUPPORT_PAGE_SLOT_COUNT = 12
- PAGE_SLOT_COUNT = 12
- PAGE_HORSE = 2
- SKILL_GROUP_NAME_DICT = {
- playerSettingModule.JOB_WARRIOR : { 1 : localeInfo.SKILL_GROUP_WARRIOR_1, 2 : localeInfo.SKILL_GROUP_WARRIOR_2, },
- playerSettingModule.JOB_ASSASSIN : { 1 : localeInfo.SKILL_GROUP_ASSASSIN_1, 2 : localeInfo.SKILL_GROUP_ASSASSIN_2, },
- playerSettingModule.JOB_SURA : { 1 : localeInfo.SKILL_GROUP_SURA_1, 2 : localeInfo.SKILL_GROUP_SURA_2, },
- playerSettingModule.JOB_SHAMAN : { 1 : localeInfo.SKILL_GROUP_SHAMAN_1, 2 : localeInfo.SKILL_GROUP_SHAMAN_2, },
- playerSettingModule.JOB_WOLFMAN : { 1 : localeInfo.JOB_WOLFMAN1, 2 : localeInfo.JOB_WOLFMAN2, },
- }
- STAT_DESCRIPTION = {
- "HTH" : localeInfo.STAT_TOOLTIP_CON,
- "INT" : localeInfo.STAT_TOOLTIP_INT,
- "STR" : localeInfo.STAT_TOOLTIP_STR,
- "DEX" : localeInfo.STAT_TOOLTIP_DEX,
- }
- if app.ENABLE_CONQUEROR_LEVEL:
- STAT_DESCRIPTION.update({
- "SSTR" : localeInfo.STAT_TOOLTIP_SUNGMA_STR,
- "SHP" : localeInfo.STAT_TOOLTIP_SUNGMA_HP,
- "SMOVE" : localeInfo.STAT_TOOLTIP_SUNGMA_MOVE,
- "SIMMUNE" : localeInfo.STAT_TOOLTIP_SUNGMA_IMMUNE,
- })
- STAT_MINUS_DESCRIPTION = localeInfo.STAT_MINUS_DESCRIPTION
- if app.ENABLE_QUEST_RENEWAL:
- MAX_QUEST_PAGE_HEIGHT = 293.5
- def __init__(self):
- if app.ENABLE_DETAILS_UI:
- self.chDetailsWnd = None
- self.isOpenedDetailsWnd = False
- if app.ENABLE_QUEST_RENEWAL:
- self.isQuestCategoryLoad = False
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- self.skillColorWnd = None
- self.skillColorButton = []
- ui.ScriptWindow.__init__(self)
- self.state = "STATUS"
- self.isLoaded = 0
- self.toolTipSkill = 0
- self.__Initialize()
- self.__LoadWindow()
- self.statusPlusCommandDict = {
- "HTH" : "/stat ht",
- "INT" : "/stat iq",
- "STR" : "/stat st",
- "DEX" : "/stat dx",
- }
- self.statusMinusCommandDict = {
- "HTH-" : "/stat- ht",
- "INT-" : "/stat- iq",
- "STR-" : "/stat- st",
- "DEX-" : "/stat- dx",
- }
- if app.ENABLE_CONQUEROR_LEVEL:
- self.statusConquerorPlusCommandDict = {
- "SSTR" : "/conqueror_point sstr",
- "SHP" : "/conqueror_point shp",
- "SMOVE" : "/conqueror_point smove",
- "SIMMUNE" : "/conqueror_point simmune",
- }
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def __Initialize(self):
- self.refreshToolTip = 0
- self.curSelectedSkillGroup = 0
- self.canUseHorseSkill = -1
- self.toolTip = None
- self.toolTipJob = None
- self.toolTipAlignment = None
- self.toolTipSkill = None
- self.faceImage = None
- self.statusPlusLabel = None
- self.statusPlusValue = None
- self.activeSlot = None
- self.tabDict = None
- self.tabButtonDict = None
- self.pageDict = None
- self.titleBarDict = None
- self.statusPlusButtonDict = None
- self.statusMinusButtonDict = None
- self.skillPageDict = None
- if app.ENABLE_QUEST_RENEWAL:
- self.questScrollBar = None
- self.questLastScrollPosition = 0
- self.questPage = None
- self.questTitleBar = None
- self.quest_page_board_window = None
- self.quest_object_board_window = None
- self.questSlotList = []
- self.questCategory = {}
- self.questCategoryList = []
- self.questColorList = {
- "green" : 0xFF83C055,
- "blue": 0xFF45678D,
- "golden": 0xFFCAB62F,
- "default_title": 0xFFCEC6B5
- }
- self.questOpenedCategories = []
- self.questMaxOpenedCategories = 1
- self.questClicked = []
- self.questIndexMap = {}
- self.questCounterList = []
- self.questClockList = []
- self.questSeparatorList = []
- self.displayY = 0
- self.baseCutY = 0
- self.questCategoryRenderPos = []
- else:
- self.questShowingStartIndex = 0
- self.questScrollBar = None
- self.questSlot = None
- self.questNameList = None
- self.questLastTimeList = None
- self.questLastCountList = None
- self.skillGroupButton = ()
- self.activeSlot = None
- self.activeSkillPointValue = None
- self.supportSkillPointValue = None
- self.skillGroupButton1 = None
- self.skillGroupButton2 = None
- self.activeSkillGroupName = None
- self.guildNameSlot = None
- self.guildNameValue = None
- self.characterNameSlot = None
- self.characterNameValue = None
- self.emotionToolTip = None
- self.soloEmotionSlot = None
- self.dualEmotionSlot = None
- if app.ENABLE_EXPRESSING_EMOTION:
- self.specialEmotionSlot = None
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- self.skillColorWnd = None
- self.skillColorButton = []
- if app.ENABLE_DETAILS_UI:
- self.chDetailsWnd = None
- self.isOpenedDetailsWnd = False
- if app.ENABLE_CONQUEROR_LEVEL:
- self.levelType = 0
- self.tabLevelInfoButtonDict = None
- self.tabLevelInfoPageDict = None
- self.statusConquerorPlusButtonDict = None
- self.passive_expanded_btn = None
- if app.ENABLE_DETAILS_UI:
- def OnTop(self):
- if self.chDetailsWnd:
- self.chDetailsWnd.SetTop()
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- if self.skillColorWnd:
- self.skillColorWnd.SetTop()
- def Hide(self):
- if app.ENABLE_DETAILS_UI:
- if self.chDetailsWnd:
- self.isOpenedDetailsWnd = self.chDetailsWnd.IsShow()
- self.chDetailsWnd.Close()
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- if self.skillColorWnd and self.skillColorWnd.IsShow():
- self.skillColorWnd.Close()
- wndMgr.Hide(self.hWnd)
- def Show(self):
- self.__LoadWindow()
- if app.ENABLE_DETAILS_UI:
- self.__InitCharacterDetailsUIButton()
- if self.chDetailsWnd and self.isOpenedDetailsWnd:
- self.chDetailsWnd.Show()
- ui.ScriptWindow.Show(self)
- def __LoadScript(self, fileName):
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, fileName)
- def __BindObject(self):
- self.toolTip = uiToolTip.ToolTip()
- self.toolTipJob = uiToolTip.ToolTip()
- self.toolTipAlignment = uiToolTip.ToolTip(130)
- self.faceImage = self.GetChild("Face_Image")
- faceSlot=self.GetChild("Face_Slot")
- if 949 == app.GetDefaultCodePage():
- faceSlot.SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowJobToolTip)
- faceSlot.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideJobToolTip)
- self.statusPlusLabel = self.GetChild("Status_Plus_Label")
- self.statusPlusValue = self.GetChild("Status_Plus_Value")
- self.characterNameSlot = self.GetChild("Character_Name_Slot")
- self.characterNameValue = self.GetChild("Character_Name")
- self.guildNameSlot = self.GetChild("Guild_Name_Slot")
- self.guildNameValue = self.GetChild("Guild_Name")
- self.characterNameSlot.SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowAlignmentToolTip)
- self.characterNameSlot.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideAlignmentToolTip)
- self.activeSlot = self.GetChild("Skill_Active_Slot")
- self.activeSkillPointValue = self.GetChild("Active_Skill_Point_Value")
- self.supportSkillPointValue = self.GetChild("Support_Skill_Point_Value")
- self.skillGroupButton1 = self.GetChild("Skill_Group_Button_1")
- self.skillGroupButton2 = self.GetChild("Skill_Group_Button_2")
- self.activeSkillGroupName = self.GetChild("Active_Skill_Group_Name")
- if app.ENABLE_QUEST_RENEWAL:
- self.questScrollBar = self.GetChild("Quest_ScrollBar")
- self.questPage = self.GetChild("Quest_Page")
- self.questTitleBar = self.GetChild("Quest_TitleBar")
- self.quest_page_board_window = self.GetChild("quest_page_board_window")
- self.quest_object_board_window = self.GetChild("quest_object_board_window")
- self.tabDict = {
- "STATUS" : self.GetChild("Tab_01"),
- "SKILL" : self.GetChild("Tab_02"),
- "EMOTICON" : self.GetChild("Tab_03"),
- "QUEST" : self.GetChild("Tab_04"),
- }
- self.tabButtonDict = {
- "STATUS" : self.GetChild("Tab_Button_01"),
- "SKILL" : self.GetChild("Tab_Button_02"),
- "EMOTICON" : self.GetChild("Tab_Button_03"),
- "QUEST" : self.GetChild("Tab_Button_04")
- }
- self.pageDict = {
- "STATUS" : self.GetChild("Character_Page"),
- "SKILL" : self.GetChild("Skill_Page"),
- "EMOTICON" : self.GetChild("Emoticon_Page"),
- "QUEST" : self.GetChild("Quest_Page")
- }
- self.titleBarDict = {
- "STATUS" : self.GetChild("Character_TitleBar"),
- "SKILL" : self.GetChild("Skill_TitleBar"),
- "EMOTICON" : self.GetChild("Emoticon_TitleBar"),
- "QUEST" : self.GetChild("Quest_TitleBar")
- }
- self.statusPlusButtonDict = {
- "HTH" : self.GetChild("HTH_Plus"),
- "INT" : self.GetChild("INT_Plus"),
- "STR" : self.GetChild("STR_Plus"),
- "DEX" : self.GetChild("DEX_Plus"),
- }
- self.statusMinusButtonDict = {
- "HTH-" : self.GetChild("HTH_Minus"),
- "INT-" : self.GetChild("INT_Minus"),
- "STR-" : self.GetChild("STR_Minus"),
- "DEX-" : self.GetChild("DEX_Minus"),
- }
- self.skillPageDict = {
- "ACTIVE" : self.GetChild("Skill_Active_Slot"),
- "SUPPORT" : self.GetChild("Skill_ETC_Slot"),
- "HORSE" : self.GetChild("Skill_Active_Slot"),
- }
- self.skillPageStatDict = {
- "SUPPORT" : player.SKILL_SUPPORT,
- "ACTIVE" : player.SKILL_ACTIVE,
- "HORSE" : player.SKILL_HORSE,
- }
- self.skillGroupButton = (
- self.GetChild("Skill_Group_Button_1"),
- self.GetChild("Skill_Group_Button_2"),
- )
- if app.ENABLE_CONQUEROR_LEVEL:
- self.tabLevelInfoButtonDict = {
- player.LEVEL_TYPE_BASE : self.GetChild("change_base_button"),
- player.LEVEL_TYPE_CONQUEROR : self.GetChild("change_conqueror_button")
- }
- self.tabLevelInfoPageDict = {
- player.LEVEL_TYPE_BASE : self.GetChild("base_info"),
- player.LEVEL_TYPE_CONQUEROR : self.GetChild("sungma_info"),
- }
- self.statusConquerorPlusButtonDict = {
- "SSTR" : self.GetChild("sungma_str_plus"),
- "SHP" : self.GetChild("sungma_hp_plus"),
- "SMOVE" : self.GetChild("sungma_move_plus"),
- "SIMMUNE" : self.GetChild("sungma_immune_plus"),
- }
- ## TabButton1 (Character)
- self.GetChild("Tab_Button_01").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_TAB_CHARACTER)
- self.GetChild("Tab_Button_01").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## TabButton2 (Skill)
- self.GetChild("Tab_Button_02").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_TAB_SKILL)
- self.GetChild("Tab_Button_02").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## TabButton3 (Emoticon)
- self.GetChild("Tab_Button_03").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_TAB_EMOTICON)
- self.GetChild("Tab_Button_03").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## TabButton4 (Quest)
- self.GetChild("Tab_Button_04").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_TAB_QUEST)
- self.GetChild("Tab_Button_04").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## Level
- self.GetChild("Lv_ToolTip").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_LEVEL)
- self.GetChild("Lv_ToolTip").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## EXP
- self.GetChild("Exp_ToolTip").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_EXP)
- self.GetChild("Exp_ToolTip").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## Base Level
- self.GetChild("change_base_button").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_BASE_LEVEL)
- self.GetChild("change_base_button").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## Conqueror Level
- self.GetChild("change_conqueror_button").SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_CONQUEROR_LEVEL)
- self.GetChild("change_conqueror_button").SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- ## Passive Relic
- self.passive_expanded_btn = self.GetChild("passive_expanded_btn")
- self.passive_expanded_btn.SetShowToolTipEvent(ui.__mem_func__(self.__ShowToolTipButton), localeInfo.STAT_TOOLTIP_PASSIVE)
- self.passive_expanded_btn.SetHideToolTipEvent(ui.__mem_func__(self.__HideToolTip))
- self.passive_expanded_btn.Hide()
- ## Char Status Info
- self.GetChild("Char_Info_Status_img").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_STAT : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Char_Info_Status_img").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## Status Plus Points
- self.GetChild("Status_Plus_Label").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_POINT : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Status_Plus_Label").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## CON (Constitution)
- self.GetChild("HTH_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_IMG_CON : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("HTH_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## INT (Intelligence)
- self.GetChild("INT_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_IMG_INT : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("INT_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## STR (Strength)
- self.GetChild("STR_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_IMG_STR : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("STR_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## DEX (Dexterity)
- self.GetChild("DEX_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_IMG_DEX : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("DEX_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## HP (Health)
- self.GetChild("HEL_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_HP : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("HEL_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## SP (Stamina)
- self.GetChild("SP_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SP : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("SP_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## ATT (Attack)
- self.GetChild("ATT_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_ATT : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("ATT_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## DEF (Defense)
- self.GetChild("DEF_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_DEF : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("DEF_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## MSPD (Move Speed)
- self.GetChild("MSPD_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_MOVE_SPEED : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("MSPD_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## ASPD (Attack Speed)
- self.GetChild("ASPD_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_ATT_SPEED : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("ASPD_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## CSPD (Cast Speed)
- self.GetChild("CSPD_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_CAST_SPEED : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("CSPD_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## MATT (Magic Attack)
- self.GetChild("MATT_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_MAG_ATT : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("MATT_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## MDEF (Magic Defense)
- self.GetChild("MDEF_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_MAG_DEF : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("MDEF_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## EF (Evasion Resistance)
- self.GetChild("ER_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_DODGE_PER : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("ER_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## SUNGMA_STR
- self.GetChild("SUNGMA_STR_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SUNGMA_STR : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("SUNGMA_STR_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## SUNGMA_HP
- self.GetChild("SUNGMA_HP_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SUNGMA_HP : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("SUNGMA_HP_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## SUNGMA_MOVE
- self.GetChild("SUNGMA_MOVE_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SUNGMA_MOVE : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("SUNGMA_MOVE_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## SUNGMA_IMMUNE
- self.GetChild("SUNGMA_IMMUNE_IMG").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SUNGMA_IMMUNE : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("SUNGMA_IMMUNE_IMG").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## Active Skill Point Label
- self.GetChild("Active_Skill_Point_Label").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_POINT : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Active_Skill_Point_Label").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- ## Support Skill Point Label
- self.GetChild("Support_Skill_ToolTip").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SUPPORT_SKILL : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Support_Skill_ToolTip").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- self.GetChild("Action_Bar_Img").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_ACTION : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Action_Bar_Img").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- self.GetChild("Reaction_Bar_Img").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_REACTION : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Reaction_Bar_Img").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- self.GetChild("Special_Action_Bar_Img").OnMouseOverIn = lambda arg = localeInfo.STAT_TOOLTIP_SPECIAL_ACTION : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.GetChild("Special_Action_Bar_Img").OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- global SHOW_ONLY_ACTIVE_SKILL
- global HIDE_SUPPORT_SKILL_POINT
- if SHOW_ONLY_ACTIVE_SKILL or HIDE_SUPPORT_SKILL_POINT:
- self.GetChild("Support_Skill_Point_Label").Hide()
- self.soloEmotionSlot = self.GetChild("SoloEmotionSlot")
- self.dualEmotionSlot = self.GetChild("DualEmotionSlot")
- if app.ENABLE_EXPRESSING_EMOTION:
- self.specialEmotionSlot = self.GetChild("SpecialEmotionSlot")
- self.__SetEmotionSlot()
- if app.ENABLE_QUEST_RENEWAL:
- self.questScrollBar.SetParent(self.quest_page_board_window)
- for i in xrange(quest.QUEST_CATEGORY_MAX_NUM):
- self.questCategory = ui.SubTitleBar()
- self.questCategory.SetParent(self.questPage)
- self.questCategory.MakeSubTitleBar(210)
- self.questCategory.SetText(quest_label_dict[i])
- self.questCategory.SetSize(210, 16)
- self.questCategory.SetTextColor(0xffCEC6B5)
- self.questCategory.SetPosition(13, 0)
- self.questCategoryList.append(self.questCategory)
- # self.questCategoryList.append(self.questCategory[i])
- # self.questCategoryList.append(self.GetChild("Quest_Category_0" + str(i)))
- self.questCategoryRenderPos.append(0)
- self.questScrollBar.SetParent(self.questPage)
- self.RearrangeQuestCategories(xrange(quest.QUEST_CATEGORY_MAX_NUM))
- else:
- self.questShowingStartIndex = 0
- self.questScrollBar = self.GetChild("Quest_ScrollBar")
- self.questScrollBar.SetScrollEvent(ui.__mem_func__(self.OnQuestScroll))
- self.questSlot = self.GetChild("Quest_Slot")
- for i in xrange(quest.QUEST_MAX_NUM):
- self.questSlot.HideSlotBaseImage(i)
- self.questSlot.SetCoverButton(i,\
- "d:/ymir work/ui/game/quest/slot_button_01.sub",\
- "d:/ymir work/ui/game/quest/slot_button_02.sub",\
- "d:/ymir work/ui/game/quest/slot_button_03.sub",\
- "d:/ymir work/ui/game/quest/slot_button_03.sub", True)
- self.questNameList = []
- self.questLastTimeList = []
- self.questLastCountList = []
- for i in xrange(quest.QUEST_MAX_NUM):
- self.questNameList.append(self.GetChild("Quest_Name_0" + str(i)))
- self.questLastTimeList.append(self.GetChild("Quest_LastTime_0" + str(i)))
- self.questLastCountList.append(self.GetChild("Quest_LastCount_0" + str(i)))
- if app.ENABLE_DETAILS_UI:
- """
- Note : Belt �̹����� �ݴ��, ��ư �̹����� �ݴ�� ���
- """
- self.MainBoard = self.GetChild("board")
- self.ExpandBtn = ui.MakeButton(self.MainBoard, 240, 120, "", "d:/ymir work/ui/game/belt_inventory/", "btn_minimize_normal.tga", "btn_minimize_over.tga", "btn_minimize_down.tga")
- self.ExpandBtn.SetEvent(ui.__mem_func__(self.__ClickExpandButton))
- self.MinimizeBtn = ui.MakeButton(self.MainBoard, 240, 120, "", "d:/ymir work/ui/game/belt_inventory/", "btn_expand_normal.tga", "btn_expand_over.tga", "btn_expand_down.tga")
- self.MinimizeBtn.SetEvent(ui.__mem_func__(self.__ClickMinimizeButton))
- if app.ENABLE_CONQUEROR_LEVEL:
- self.ExpandBtn.OnMouseOverIn = lambda arg = localeInfo.DETAILS_TITLE : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.ExpandBtn.OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- self.MinimizeBtn.OnMouseOverIn = lambda arg = localeInfo.DETAILS_TITLE : ui.__mem_func__(self.__ShowToolTip)(arg)
- self.MinimizeBtn.OnMouseOverOut = lambda : ui.__mem_func__(self.__HideToolTip)()
- if app.ENABLE_DETAILS_UI:
- def __InitCharacterDetailsUIButton(self):
- self.ExpandBtn.Show()
- self.MinimizeBtn.Hide()
- def __ClickExpandButton(self):
- if not self.chDetailsWnd:
- (x, y) = self.GetLocalPosition()
- self.chDetailsWnd = uiCharacterDetails.CharacterDetailsUI()
- self.chDetailsWnd.AdjustPosition(x, y)
- self.chDetailsWnd.Show()
- else:
- self.chDetailsWnd.Show()
- self.ExpandBtn.Hide()
- self.MinimizeBtn.Show()
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- if self.skillColorWnd and self.skillColorWnd.IsShow():
- self.skillColorWnd.Hide()
- def __ClickMinimizeButton(self):
- self.chDetailsWnd.Hide()
- self.MinimizeBtn.Hide()
- self.ExpandBtn.Show()
- def OnMoveWindow(self, x, y):
- if self.chDetailsWnd:
- self.chDetailsWnd.AdjustPosition(x, y)
- def __SetSkillSlotEvent(self):
- for skillPageValue in self.skillPageDict.itervalues():
- skillPageValue.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
- skillPageValue.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectSkill))
- skillPageValue.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
- skillPageValue.SetUnselectItemSlotEvent(ui.__mem_func__(self.ClickSkillSlot))
- skillPageValue.SetUseSlotEvent(ui.__mem_func__(self.ClickSkillSlot))
- skillPageValue.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
- skillPageValue.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
- skillPageValue.SetPressedSlotButtonEvent(ui.__mem_func__(self.OnPressedSlotButton))
- skillPageValue.AppendSlotButton("d:/ymir work/ui/game/windows/btn_plus_up.sub",\
- "d:/ymir work/ui/game/windows/btn_plus_over.sub",\
- "d:/ymir work/ui/game/windows/btn_plus_down.sub")
- def __SetEmotionSlot(self):
- self.emotionToolTip = uiToolTip.ToolTip()
- if app.ENABLE_EXPRESSING_EMOTION:
- for slot in (self.soloEmotionSlot, self.dualEmotionSlot, self.specialEmotionSlot):
- slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
- slot.SetSelectItemSlotEvent(ui.__mem_func__(self.__SelectEmotion))
- slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.__ClickEmotionSlot))
- slot.SetUseSlotEvent(ui.__mem_func__(self.__ClickEmotionSlot))
- slot.SetOverInItemEvent(ui.__mem_func__(self.__OverInEmotion))
- slot.SetOverOutItemEvent(ui.__mem_func__(self.__OverOutEmotion))
- slot.AppendSlotButton("d:/ymir work/ui/game/windows/btn_plus_up.sub",\
- "d:/ymir work/ui/game/windows/btn_plus_over.sub",\
- "d:/ymir work/ui/game/windows/btn_plus_down.sub")
- else:
- for slot in (self.soloEmotionSlot, self.dualEmotionSlot):
- slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
- slot.SetSelectItemSlotEvent(ui.__mem_func__(self.__SelectEmotion))
- slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.__ClickEmotionSlot))
- slot.SetUseSlotEvent(ui.__mem_func__(self.__ClickEmotionSlot))
- slot.SetOverInItemEvent(ui.__mem_func__(self.__OverInEmotion))
- slot.SetOverOutItemEvent(ui.__mem_func__(self.__OverOutEmotion))
- slot.AppendSlotButton("d:/ymir work/ui/game/windows/btn_plus_up.sub",\
- "d:/ymir work/ui/game/windows/btn_plus_over.sub",\
- "d:/ymir work/ui/game/windows/btn_plus_down.sub")
- for slotIdx, datadict in emotion.EMOTION_DICT.items():
- emotionIdx = slotIdx
- slot = self.soloEmotionSlot
- if app.ENABLE_EXPRESSING_EMOTION:
- if slotIdx > 50 and slotIdx < app.SPECIAL_ACTION_START_INDEX:
- slot = self.dualEmotionSlot
- if slotIdx >= app.SPECIAL_ACTION_START_INDEX:
- slot = self.specialEmotionSlot
- else:
- if slotIdx > 50:
- slot = self.dualEmotionSlot
- slot.SetEmotionSlot(slotIdx, emotionIdx)
- slot.SetCoverButton(slotIdx)
- def __SelectEmotion(self, slotIndex):
- if not slotIndex in emotion.EMOTION_DICT:
- return
- if app.IsPressed(app.DIK_LCONTROL):
- player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_EMOTION, slotIndex)
- return
- mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_EMOTION, slotIndex, slotIndex)
- def __ClickEmotionSlot(self, slotIndex):
- print "click emotion"
- if not slotIndex in emotion.EMOTION_DICT:
- return
- print "check target acting"
- if player.IsActingTargetEmotion():
- return
- command = emotion.EMOTION_DICT[slotIndex]["command"]
- print "command", command
- if app.ENABLE_EXPRESSING_EMOTION:
- if slotIndex > 50 and slotIndex < app.SPECIAL_ACTION_START_INDEX:
- vid = player.GetTargetVID()
- if 0 == vid or vid == player.GetMainCharacterIndex() or chr.IsNPC(vid) or chr.IsEnemy(vid):
- import chat
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EMOTION_CHOOSE_ONE)
- return
- command += " " + chr.GetNameByVID(vid)
- else:
- if slotIndex > 50:
- vid = player.GetTargetVID()
- if 0 == vid or vid == player.GetMainCharacterIndex() or chr.IsNPC(vid) or chr.IsEnemy(vid):
- import chat
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EMOTION_CHOOSE_ONE)
- return
- command += " " + chr.GetNameByVID(vid)
- print "send_command", command
- net.SendChatPacket(command)
- def ActEmotion(self, emotionIndex):
- self.__ClickEmotionSlot(emotionIndex)
- def __OverInEmotion(self, slotIndex):
- if self.emotionToolTip:
- if not slotIndex in emotion.EMOTION_DICT:
- return
- self.emotionToolTip.ClearToolTip()
- self.emotionToolTip.SetTitle(emotion.EMOTION_DICT[slotIndex]["name"])
- if app.ENABLE_EXPRESSING_EMOTION:
- if slotIndex >= app.SPECIAL_ACTION_START_INDEX:
- self.emotionToolTip.AppendLastTime(emotion.EMOTION_DICT[slotIndex]["time"])
- self.emotionToolTip.AlignHorizonalCenter()
- self.emotionToolTip.ShowToolTip()
- def __OverOutEmotion(self):
- if self.emotionToolTip:
- self.emotionToolTip.HideToolTip()
- def __BindEvent(self):
- for i in xrange(len(self.skillGroupButton)):
- self.skillGroupButton[i].SetEvent(ui.__mem_func__(self.__SelectSkillGroup),i)
- self.RefreshQuest()
- self.__HideJobToolTip()
- for (tabKey, tabButton) in self.tabButtonDict.items():
- tabButton.SetEvent(ui.__mem_func__(self.__OnClickTabButton), tabKey)
- if app.ENABLE_CONQUEROR_LEVEL:
- for (tabKey, tabButton) in self.tabLevelInfoButtonDict.items():
- tabButton.SetEvent(ui.__mem_func__(self.__ChangeLevelInfoButton), tabKey)
- for (statusPlusKey, statusPlusButton) in self.statusConquerorPlusButtonDict.items():
- statusPlusButton.SAFE_SetEvent(self.__OnClickConquerorStatusPlusButton, statusPlusKey)
- statusPlusButton.ShowToolTip = lambda arg = statusPlusKey: self.__OverInStatButton(arg)
- statusPlusButton.HideToolTip = lambda arg = statusPlusKey: self.__OverOutStatButton()
- for (statusPlusKey, statusPlusButton) in self.statusPlusButtonDict.items():
- statusPlusButton.SAFE_SetEvent(self.__OnClickStatusPlusButton, statusPlusKey)
- statusPlusButton.SetShowToolTipEvent(ui.__mem_func__(self.__OverInStatButton), statusPlusKey)
- statusPlusButton.SetHideToolTipEvent(ui.__mem_func__(self.__OverOutStatButton), statusPlusKey)
- for (statusMinusKey, statusMinusButton) in self.statusMinusButtonDict.items():
- statusMinusButton.SAFE_SetEvent(self.__OnClickStatusMinusButton, statusMinusKey)
- statusMinusButton.SetShowToolTipEvent(ui.__mem_func__(self.__OverInStatMinusButton), statusMinusKey)
- statusMinusButton.SetHideToolTipEvent(ui.__mem_func__(self.__OverOutStatMinusButton), statusMinusKey)
- for titleBarValue in self.titleBarDict.itervalues():
- if app.ENABLE_DETAILS_UI:
- titleBarValue.SetCloseEvent(ui.__mem_func__(self.Close))
- else:
- titleBarValue.SetCloseEvent(ui.__mem_func__(self.Hide))
- if app.ENABLE_QUEST_RENEWAL:
- self.questTitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
- self.questScrollBar.SetScrollEvent(ui.__mem_func__(self.__OnScrollQuest))
- for i in xrange(quest.QUEST_CATEGORY_MAX_NUM):
- self.questCategoryList[i].SetEvent(ui.__mem_func__(self.__OnClickQuestCategoryButton), i)
- else:
- self.questSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.__SelectQuest))
- def __LoadWindow(self):
- if self.isLoaded == 1:
- return
- self.isLoaded = 1
- try:
- if localeInfo.IsARABIC() or localeInfo.IsVIETNAM() or localeInfo.IsJAPAN():
- self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "CharacterWindow.py")
- else:
- self.__LoadScript("UIScript/CharacterWindow.py")
- self.__BindObject()
- self.__BindEvent()
- except:
- import exception
- exception.Abort("CharacterWindow.__LoadWindow")
- #self.tabButtonDict["EMOTICON"].Disable()
- self.SetState("STATUS")
- if app.ENABLE_CONQUEROR_LEVEL:
- self.__ChangeLevelInfoButton(player.LEVEL_TYPE_BASE)
- def Destroy(self):
- self.ClearDictionary()
- self.__Initialize()
- def Close(self):
- if 0 != self.toolTipSkill:
- self.toolTipSkill.Hide()
- if app.ENABLE_DETAILS_UI:
- if self.chDetailsWnd and self.chDetailsWnd.IsShow():
- self.chDetailsWnd.Hide()
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- if self.skillColorWnd and self.skillColorWnd.IsShow():
- self.skillColorWnd.Hide()
- self.Hide()
- def SetSkillToolTip(self, toolTipSkill):
- self.toolTipSkill = toolTipSkill
- def __OnClickStatusPlusButton(self, statusKey):
- try:
- status_inc = osfInfo.INCREASE_POINTS_CTRL\
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL) else 1
- statusPlusCommand=self.statusPlusCommandDict[statusKey]
- net.SendChatPacket("%s %d" % (statusPlusCommand, status_inc))
- except KeyError, msg:
- dbg.TraceError("CharacterWindow.__OnClickStatusPlusButton KeyError: %s", msg)
- def __OnClickStatusMinusButton(self, statusKey):
- try:
- statusMinusCommand = self.statusMinusCommandDict[statusKey]
- net.SendChatPacket(statusMinusCommand)
- except KeyError, msg:
- dbg.TraceError("CharacterWindow.__OnClickStatusMinusButton KeyError: %s", msg)
- if app.ENABLE_CONQUEROR_LEVEL:
- def __OnClickConquerorStatusPlusButton(self, statusKey):
- try:
- statusConquerorPlusCommand = self.statusConquerorPlusCommandDict[statusKey]
- net.SendChatPacket(statusConquerorPlusCommand)
- except KeyError, msg:
- dbg.TraceError("CharacterWindow.__OnClickConquerorStatusPlusButton KeyError: %s", msg)
- def __OnClickTabButton(self, stateKey):
- self.SetState(stateKey)
- if app.ENABLE_CONQUEROR_LEVEL:
- def __ChangeLevelInfoButton(self, key):
- self.levelType = key
- for (tabKey, tabButton) in self.tabLevelInfoButtonDict.items():
- if key != tabKey:
- tabButton.SetUp()
- self.tabLevelInfoButtonDict[key].Down()
- for tabPage in self.tabLevelInfoPageDict.itervalues():
- tabPage.Hide()
- self.tabLevelInfoPageDict[key].Show()
- self.RefreshStatus()
- def SetState(self, stateKey):
- self.state = stateKey
- if app.ENABLE_QUEST_RENEWAL:
- if stateKey != "QUEST":
- self.questPage.Hide()
- else:
- self.__LoadQuestCategory()
- for (tabKey, tabButton) in self.tabButtonDict.items():
- if stateKey!=tabKey:
- tabButton.SetUp()
- for tabValue in self.tabDict.itervalues():
- tabValue.Hide()
- for pageValue in self.pageDict.itervalues():
- pageValue.Hide()
- for titleBarValue in self.titleBarDict.itervalues():
- titleBarValue.Hide()
- self.titleBarDict[stateKey].Show()
- self.tabDict[stateKey].Show()
- self.pageDict[stateKey].Show()
- def GetState(self):
- return self.state
- def __GetTotalAtkText(self):
- minAtk=player.GetStatus(player.ATT_MIN)
- maxAtk=player.GetStatus(player.ATT_MAX)
- atkBonus=player.GetStatus(player.ATT_BONUS)
- attackerBonus=player.GetStatus(player.ATTACKER_BONUS)
- # [MT-360] ȣ���Ͱ��� �̽�
- # Ŭ��� ������ ǥ�� ���̷� ���� ���϶��� ATT_BONUS ���� �����Ѵ�.
- #if player.IsPoly():
- # atkBonus = 0
- if minAtk==maxAtk:
- return "%d" % (minAtk+atkBonus+attackerBonus)
- else:
- return "%d-%d" % (minAtk+atkBonus+attackerBonus, maxAtk+atkBonus+attackerBonus)
- def __GetTotalMagAtkText(self):
- minMagAtk=player.GetStatus(player.MAG_ATT)+player.GetStatus(player.MIN_MAGIC_WEP)
- maxMagAtk=player.GetStatus(player.MAG_ATT)+player.GetStatus(player.MAX_MAGIC_WEP)
- if minMagAtk==maxMagAtk:
- return "%d" % (minMagAtk)
- else:
- return "%d-%d" % (minMagAtk, maxMagAtk)
- def __GetTotalDefText(self):
- defValue=player.GetStatus(player.DEF_GRADE)
- if constInfo.ADD_DEF_BONUS_ENABLE:
- defValue+=player.GetStatus(player.DEF_BONUS)
- return "%d" % (defValue)
- if app.ENABLE_CONQUEROR_LEVEL:
- def __GetSungMaPointValuePer(self, point_type, percent_point_type):
- pass
- def RefreshStatus(self):
- if self.isLoaded == 0:
- return
- try:
- if app.ENABLE_CONQUEROR_LEVEL:
- if self.levelType == player.LEVEL_TYPE_CONQUEROR:
- self.GetChild("Level_Value").SetText(str(player.GetStatus(player.POINT_CONQUEROR_LEVEL)))
- self.GetChild("Exp_Value").SetText(str(unsigned32(player.GetStatus(player.POINT_CONQUEROR_EXP))))
- self.GetChild("RestExp_Value").SetText(str(unsigned32(player.GetStatus(player.POINT_CONQUEROR_NEXT_EXP)) - unsigned32(player.GetStatus(player.POINT_CONQUEROR_EXP))))
- else:
- self.GetChild("Level_Value").SetText(str(player.GetStatus(player.LEVEL)))
- self.GetChild("Exp_Value").SetText(str(unsigned32(player.GetEXP())))
- self.GetChild("RestExp_Value").SetText(str(unsigned32(player.GetStatus(player.NEXT_EXP)) - unsigned32(player.GetStatus(player.EXP))))
- else:
- self.GetChild("Level_Value").SetText(str(player.GetStatus(player.LEVEL)))
- self.GetChild("Exp_Value").SetText(str(unsigned32(player.GetEXP())))
- self.GetChild("RestExp_Value").SetText(str(unsigned32(player.GetStatus(player.NEXT_EXP)) - unsigned32(player.GetStatus(player.EXP))))
- self.GetChild("HP_Value").SetText(str(player.GetStatus(player.HP)) + "/" + str(player.GetStatus(player.MAX_HP)))
- self.GetChild("SP_Value").SetText(str(player.GetStatus(player.SP)) + "/" + str(player.GetStatus(player.MAX_SP)))
- self.GetChild("STR_Value").SetText(str(player.GetStatus(player.ST)))
- self.GetChild("DEX_Value").SetText(str(player.GetStatus(player.DX)))
- self.GetChild("HTH_Value").SetText(str(player.GetStatus(player.HT)))
- self.GetChild("INT_Value").SetText(str(player.GetStatus(player.IQ)))
- self.GetChild("ATT_Value").SetText(self.__GetTotalAtkText())
- self.GetChild("DEF_Value").SetText(self.__GetTotalDefText())
- self.GetChild("MATT_Value").SetText(self.__GetTotalMagAtkText())
- # self.GetChild("MATT_Value").SetText(str(player.GetStatus(player.MAG_ATT)))
- self.GetChild("MDEF_Value").SetText(str(player.GetStatus(player.MAG_DEF)))
- self.GetChild("ASPD_Value").SetText(str(player.GetStatus(player.ATT_SPEED)))
- self.GetChild("MSPD_Value").SetText(str(player.GetStatus(player.MOVING_SPEED)))
- self.GetChild("CSPD_Value").SetText(str(player.GetStatus(player.CASTING_SPEED)))
- self.GetChild("ER_Value").SetText(str(player.GetStatus(player.EVADE_RATE)))
- if app.ENABLE_CONQUEROR_LEVEL:
- self.GetChild("sungma_str_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_STR)))
- self.GetChild("sungma_hp_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_HP)))
- self.GetChild("sungma_move_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_MOVE)))
- self.GetChild("sungma_immune_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_IMMUNE)))
- self.GetChild("sungma_str_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_STR)))
- self.GetChild("sungma_hp_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_HP)))
- self.GetChild("sungma_move_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_MOVE)))
- self.GetChild("sungma_immune_value").SetText(str(player.GetStatus(player.POINT_SUNGMA_IMMUNE)))
- except:
- # import exception
- # exception.Abort("CharacterWindow.RefreshStatus.BindObject")
- ## ������ ƨ�� ����
- pass
- self.__RefreshStatusPlusButtonList()
- self.__RefreshStatusMinusButtonList()
- self.RefreshAlignment()
- if self.refreshToolTip:
- self.refreshToolTip()
- if app.ENABLE_DETAILS_UI:
- if self.chDetailsWnd and self.chDetailsWnd.IsShow():
- self.chDetailsWnd.Refresh()
- def __RefreshStatusPlusButtonList(self):
- if self.isLoaded == 0:
- return
- if app.ENABLE_CONQUEROR_LEVEL:
- if self.levelType == player.LEVEL_TYPE_CONQUEROR:
- statusPlusPoint = player.GetStatus(player.POINT_CONQUEROR_POINT)
- else:
- statusPlusPoint = player.GetStatus(player.STAT)
- else:
- statusPlusPoint = player.GetStatus(player.STAT)
- if statusPlusPoint > 0:
- self.statusPlusValue.SetText(str(statusPlusPoint))
- if not app.ENABLE_CONQUEROR_LEVEL:
- self.statusPlusLabel.Show()
- self.ShowStatusPlusButtonList()
- if app.ENABLE_CONQUEROR_LEVEL:
- self.ShowConquerorStatusPlusButtonList()
- else:
- self.statusPlusValue.SetText(str(0))
- if not app.ENABLE_CONQUEROR_LEVEL:
- self.statusPlusLabel.Hide()
- self.HideStatusPlusButtonList()
- if app.ENABLE_CONQUEROR_LEVEL:
- self.HideConquerorStatusPlusButtonList()
- if app.ENABLE_CONQUEROR_LEVEL:
- self.statusPlusLabel.Show()
- def __RefreshStatusMinusButtonList(self):
- if self.isLoaded == 0:
- return
- statusMinusPoint = self.__GetStatMinusPoint()
- if statusMinusPoint>0:
- self.__ShowStatusMinusButtonList()
- else:
- self.__HideStatusMinusButtonList()
- def RefreshAlignment(self):
- point, grade = player.GetAlignmentData()
- import colorInfo
- COLOR_DICT = {
- 0 : colorInfo.TITLE_RGB_GOOD_4,
- 1 : colorInfo.TITLE_RGB_GOOD_3,
- 2 : colorInfo.TITLE_RGB_GOOD_2,
- 3 : colorInfo.TITLE_RGB_GOOD_1,
- 4 : colorInfo.TITLE_RGB_NORMAL,
- 5 : colorInfo.TITLE_RGB_EVIL_1,
- 6 : colorInfo.TITLE_RGB_EVIL_2,
- 7 : colorInfo.TITLE_RGB_EVIL_3,
- 8 : colorInfo.TITLE_RGB_EVIL_4,
- }
- colorList = COLOR_DICT.get(grade, colorInfo.TITLE_RGB_NORMAL)
- gradeColor = ui.GenerateColor(colorList[0], colorList[1], colorList[2])
- self.toolTipAlignment.ClearToolTip()
- self.toolTipAlignment.AutoAppendTextLine(localeInfo.TITLE_NAME_LIST[grade], gradeColor)
- self.toolTipAlignment.AutoAppendTextLine(localeInfo.ALIGNMENT_NAME + str(point))
- self.toolTipAlignment.AlignHorizonalCenter()
- def __ShowStatusMinusButtonList(self):
- for (stateMinusKey, statusMinusButton) in self.statusMinusButtonDict.items():
- statusMinusButton.Show()
- def __HideStatusMinusButtonList(self):
- for (stateMinusKey, statusMinusButton) in self.statusMinusButtonDict.items():
- statusMinusButton.Hide()
- def ShowStatusPlusButtonList(self):
- for (statePlusKey, statusPlusButton) in self.statusPlusButtonDict.items():
- statusPlusButton.Show()
- def HideStatusPlusButtonList(self):
- for (statePlusKey, statusPlusButton) in self.statusPlusButtonDict.items():
- statusPlusButton.Hide()
- if app.ENABLE_CONQUEROR_LEVEL:
- def ShowConquerorStatusPlusButtonList(self):
- for (statePlusKey, statusPlusButton) in self.statusConquerorPlusButtonDict.items():
- statusPlusButton.Show()
- def HideConquerorStatusPlusButtonList(self):
- for (statePlusKey, statusPlusButton) in self.statusConquerorPlusButtonDict.items():
- statusPlusButton.Hide()
- def SelectSkill(self, skillSlotIndex):
- mouseController = mouseModule.mouseController
- if False == mouseController.isAttached():
- srcSlotIndex = self.__RealSkillSlotToSourceSlot(skillSlotIndex)
- selectedSkillIndex = player.GetSkillIndex(srcSlotIndex)
- if skill.CanUseSkill(selectedSkillIndex):
- if app.IsPressed(app.DIK_LCONTROL):
- player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_SKILL, srcSlotIndex)
- return
- mouseController.AttachObject(self, player.SLOT_TYPE_SKILL, srcSlotIndex, selectedSkillIndex)
- else:
- mouseController.DeattachObject()
- def SelectEmptySlot(self, SlotIndex):
- mouseModule.mouseController.DeattachObject()
- if app.ENABLE_CONQUEROR_LEVEL:
- def __ShowToolTip(self, desc):
- if not self.toolTip:
- return
- descLen = len(desc)
- self.toolTip.ClearToolTip()
- self.toolTip.SetThinBoardSize(11 * descLen)
- self.toolTip.AutoAppendTextLine(desc)
- self.toolTip.AlignHorizonalCenter()
- self.toolTip.Show()
- def __HideToolTip(self):
- self.__HideStatToolTip()
- def __ShowToolTipButton(self, desc):
- self.__ShowToolTip(desc)
- def __ShowToolTipImg(self, event_type, text):
- if "mouse_over_in" == event_type :
- textLen = len(text)
- self.toolTip.ClearToolTip()
- self.toolTip.SetThinBoardSize(11 * arglen)
- #self.toolTip.SetToolTipPosition(pos_x + 50, pos_y + 50)
- self.toolTip.AppendTextLine(text, 0xffffffff)
- self.toolTip.Show()
- elif "mouse_over_out" == event_type:
- self.__HideToolTip()
- def __TogglePassiveAttrWindow(self, event_type): pass
- def __ToolTipProgress(self): pass
- ## ToolTip
- def OverInItem(self, slotNumber):
- if mouseModule.mouseController.isAttached():
- return
- if 0 == self.toolTipSkill:
- return
- srcSlotIndex = self.__RealSkillSlotToSourceSlot(slotNumber)
- skillIndex = player.GetSkillIndex(srcSlotIndex)
- skillLevel = player.GetSkillLevel(srcSlotIndex)
- skillGrade = player.GetSkillGrade(srcSlotIndex)
- skillType = skill.GetSkillType(skillIndex)
- ## ACTIVE
- if skill.SKILL_TYPE_ACTIVE == skillType:
- overInSkillGrade = self.__GetSkillGradeFromSlot(slotNumber)
- if overInSkillGrade == skill.SKILL_GRADE_COUNT-1 and skillGrade == skill.SKILL_GRADE_COUNT:
- self.toolTipSkill.SetSkillNew(srcSlotIndex, skillIndex, skillGrade, skillLevel)
- elif overInSkillGrade == skillGrade:
- self.toolTipSkill.SetSkillNew(srcSlotIndex, skillIndex, overInSkillGrade, skillLevel)
- else:
- self.toolTipSkill.SetSkillOnlyName(srcSlotIndex, skillIndex, overInSkillGrade)
- else:
- self.toolTipSkill.SetSkillNew(srcSlotIndex, skillIndex, skillGrade, skillLevel)
- def OverOutItem(self):
- if 0 != self.toolTipSkill:
- self.toolTipSkill.HideToolTip()
- ## Quest
- def __SelectQuest(self, slotIndex):
- if app.ENABLE_QUEST_RENEWAL:
- questIndex = self.questIndexMap[slotIndex]
- if not questIndex in self.questClicked:
- self.questClicked.append(questIndex)
- else:
- questIndex = quest.GetQuestIndex(self.questShowingStartIndex + slotIndex)
- import event
- event.QuestButtonClick(-2147483648 + questIndex)
- if app.ENABLE_EXPRESSING_EMOTION:
- def ClearSpecialEmotions(self):
- emotion.ClearSpecialEmotionIcons()
- self.__SetEmotionSlot()
- def RegisterSpecialEmotions(self, emotionIdx, leftTime):
- emotion.RegisterSpecialEmotionIcons(emotionIdx, leftTime)
- self.__SetEmotionSlot()
- def RefreshQuest(self):
- if app.ENABLE_QUEST_RENEWAL:
- if self.isLoaded == 0 or self.state != "QUEST":
- return
- for cat in self.questOpenedCategories:
- self.RefreshQuestCategory(cat)
- self.RefreshQuestCategoriesCount()
- else:
- if self.isLoaded == 0:
- return
- self.OnQuestScroll()
- questCount = quest.GetQuestCount()
- questRange = range(quest.QUEST_MAX_NUM)
- if questCount > quest.QUEST_MAX_NUM:
- self.questScrollBar.Show()
- else:
- self.questScrollBar.Hide()
- for i in questRange[:questCount]:
- (questName, questIcon, questCounterName, questCounterValue) = quest.GetQuestData(self.questShowingStartIndex + i)
- # if questName[0] == "*":
- # questName = questName[1:]
- self.questNameList[i].SetText(questName)
- self.questNameList[i].Show()
- self.questLastCountList[i].Show()
- self.questLastTimeList[i].Show()
- if len(questCounterName) > 0:
- self.questLastCountList[i].SetText("%s : %d" % (questCounterName, questCounterValue))
- else:
- self.questLastCountList[i].SetText("")
- ## Icon
- self.questSlot.SetSlot(i, i, 1, 1, questIcon)
- for i in questRange[questCount:]:
- self.questNameList[i].Hide()
- self.questLastTimeList[i].Hide()
- self.questLastCountList[i].Hide()
- self.questSlot.ClearSlot(i)
- self.questSlot.HideSlotBaseImage(i)
- self.__UpdateQuestClock()
- def OnRunMouseWheel(self, nLen):
- if nLen > 0:
- self.questScrollBar.OnUp()
- else:
- self.questScrollBar.OnDown()
- def __UpdateQuestClock(self):
- if "QUEST" == self.state:
- if app.ENABLE_QUEST_RENEWAL:
- for clock in self.questClockList:
- clockText = localeInfo.QUEST_UNLIMITED_TIME
- if clock.GetProperty("idx"):
- (lastName, lastTime) = quest.GetQuestLastTime(clock.GetProperty("idx"))
- if len(lastName) > 0:
- if lastTime <= 0:
- clockText = localeInfo.QUEST_TIMEOVER
- else:
- questLastMinute = lastTime / 60
- questLastSecond = lastTime % 60
- clockText = lastName + " : "
- if questLastMinute > 0:
- clockText += str(questLastMinute) + localeInfo.QUEST_MIN
- if questLastSecond > 0:
- clockText += " "
- if questLastSecond > 0:
- clockText += str(questLastSecond) + localeInfo.QUEST_SEC
- clock.SetText(clockText)
- else:
- # QUEST_LIMIT_COUNT_BUG_FIX
- for i in xrange(min(quest.GetQuestCount(), quest.QUEST_MAX_NUM)):
- # END_OF_QUEST_LIMIT_COUNT_BUG_FIX
- (lastName, lastTime) = quest.GetQuestLastTime(i + self.questShowingStartIndex)
- clockText = localeInfo.QUEST_UNLIMITED_TIME
- if len(lastName) > 0:
- if lastTime <= 0:
- clockText = localeInfo.QUEST_TIMEOVER
- else:
- questLastMinute = lastTime / 60
- questLastSecond = lastTime % 60
- clockText = lastName + " : "
- if questLastMinute > 0:
- clockText += str(questLastMinute) + localeInfo.QUEST_MIN
- if questLastSecond > 0:
- clockText += " "
- if questLastSecond > 0:
- clockText += str(questLastSecond) + localeInfo.QUEST_SEC
- self.questLastTimeList[i].SetText(clockText)
- def __GetStatMinusPoint(self):
- POINT_STAT_RESET_COUNT = 112
- return player.GetStatus(POINT_STAT_RESET_COUNT)
- def __OverInStatMinusButton(self, stat):
- try:
- self.__ShowStatToolTip(self.STAT_MINUS_DESCRIPTION[stat] % self.__GetStatMinusPoint())
- except KeyError:
- pass
- self.refreshToolTip = lambda arg = stat : ui.__mem_func__(self.__OverInStatMinusButton)(arg)
- def __OverOutStatMinusButton(self):
- self.__HideStatToolTip()
- self.refreshToolTip = 0
- def __OverInStatButton(self, stat):
- try:
- self.__ShowStatToolTip(self.STAT_DESCRIPTION[stat])
- except KeyError:
- pass
- def __OverOutStatButton(self):
- self.__HideStatToolTip()
- def __ShowStatToolTip(self, statDesc):
- if not self.toolTip:
- return
- if app.ENABLE_CONQUEROR_LEVEL:
- statDescLen = len(statDesc)
- self.toolTip.SetThinBoardSize(11 * statDescLen)
- self.toolTip.AlignHorizonalCenter()
- self.toolTip.ClearToolTip()
- self.toolTip.AppendTextLine(statDesc)
- self.toolTip.AppendSpace(5)
- self.toolTip.AppendTextLine("|Ikey/ctrl|i + |Ikey/mouse_left|i - " +\
- localeInfo.MULTIPLY_STATE_POINT_ADD_TEXT.format(osfInfo.INCREASE_POINTS_CTRL),\
- osfInfo.TOOLTIP_KEYS_COLOR_HEX)
- self.toolTip.Show()
- def __HideStatToolTip(self):
- if self.toolTip:
- self.toolTip.Hide()
- def OnPressEscapeKey(self):
- self.Close()
- return True
- def OnUpdate(self):
- self.__UpdateQuestClock()
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- if self.skillColorWnd:
- self.__UpdateSkillColorPosition()
- ## Skill Process
- def __RefreshSkillPage(self, name, slotCount):
- global SHOW_LIMIT_SUPPORT_SKILL_LIST
- skillPage = self.skillPageDict[name]
- startSlotIndex = skillPage.GetStartIndex()
- if "ACTIVE" == name:
- if self.PAGE_HORSE == self.curSelectedSkillGroup:
- startSlotIndex += slotCount
- getSkillType = skill.GetSkillType
- getSkillIndex = player.GetSkillIndex
- getSkillGrade = player.GetSkillGrade
- getSkillLevel = player.GetSkillLevel
- getSkillLevelUpPoint = skill.GetSkillLevelUpPoint
- getSkillMaxLevel = skill.GetSkillMaxLevel
- for i in xrange(slotCount + 1):
- slotIndex = i + startSlotIndex
- skillIndex = getSkillIndex(slotIndex)
- for j in xrange(skill.SKILL_GRADE_COUNT):
- skillPage.ClearSlot(self.__GetRealSkillSlot(j, i))
- if 0 == skillIndex:
- continue
- skillGrade = getSkillGrade(slotIndex)
- skillLevel = getSkillLevel(slotIndex)
- skillType = getSkillType(skillIndex)
- ## �¸� ��ų ���� ó��
- if player.SKILL_INDEX_RIDING == skillIndex:
- if skillGrade == 1:
- skillLevel += 19
- elif skillGrade == 2:
- skillLevel += 29
- elif skillGrade == 3:
- skillLevel = 40
- skillPage.SetSkillSlotNew(slotIndex, skillIndex, max(skillLevel - 1, 0), skillLevel)
- skillPage.SetSlotCount(slotIndex, skillLevel)
- ## ACTIVE
- elif skill.SKILL_TYPE_ACTIVE == skillType:
- for j in xrange(skill.SKILL_GRADE_COUNT):
- realSlotIndex = self.__GetRealSkillSlot(j, slotIndex)
- skillPage.SetSkillSlotNew(realSlotIndex, skillIndex, j, skillLevel)
- skillPage.SetCoverButton(realSlotIndex)
- if (skillGrade == skill.SKILL_GRADE_COUNT) and j == (skill.SKILL_GRADE_COUNT-1):
- skillPage.SetSlotCountNew(realSlotIndex, skillGrade, skillLevel)
- elif (not self.__CanUseSkillNow()) or (skillGrade != j):
- skillPage.SetSlotCount(realSlotIndex, 0)
- skillPage.DisableCoverButton(realSlotIndex)
- skillPage.DeactivateSlot(realSlotIndex) # hotfix
- else:
- skillPage.SetSlotCountNew(realSlotIndex, skillGrade, skillLevel)
- if player.IsSkillActive(slotIndex) and (skillGrade == j): # hotfix
- skillPage.ActivateSlot(realSlotIndex)
- ## ��
- else:
- if not SHOW_LIMIT_SUPPORT_SKILL_LIST or skillIndex in SHOW_LIMIT_SUPPORT_SKILL_LIST:
- realSlotIndex = self.__GetETCSkillRealSlotIndex(slotIndex)
- skillPage.SetSkillSlot(realSlotIndex, skillIndex, skillLevel)
- skillPage.SetSlotCountNew(realSlotIndex, skillGrade, skillLevel)
- if skill.CanUseSkill(skillIndex):
- skillPage.SetCoverButton(realSlotIndex)
- if player.IsSkillActive(slotIndex): # hotfix
- skillPage.ActivateSlot(realSlotIndex)
- else:
- skillPage.DeactivateSlot(realSlotIndex)
- skillPage.RefreshSlot()
- ## �� Ÿ�� ����
- self.__RestoreSlotCoolTime(skillPage)
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- if "ACTIVE" == name:
- if self.PAGE_HORSE != self.curSelectedSkillGroup:
- self.__CreateSkillColorButton(skillPage)
- else:
- self.skillColorButton = []
- def __RestoreSlotCoolTime(self, skillPage):
- restoreType = skill.SKILL_TYPE_NONE
- if self.PAGE_HORSE == self.curSelectedSkillGroup:
- restoreType = skill.SKILL_TYPE_HORSE
- else:
- restoreType = skill.SKILL_TYPE_ACTIVE
- skillPage.RestoreSlotCoolTime(restoreType)
- def RefreshSkill(self):
- if self.isLoaded==0:
- return
- if self.__IsChangedHorseRidingSkillLevel():
- self.RefreshCharacter()
- return
- global SHOW_ONLY_ACTIVE_SKILL
- if SHOW_ONLY_ACTIVE_SKILL:
- self.__RefreshSkillPage("ACTIVE", self.ACTIVE_PAGE_SLOT_COUNT)
- else:
- self.__RefreshSkillPage("ACTIVE", self.ACTIVE_PAGE_SLOT_COUNT)
- self.__RefreshSkillPage("SUPPORT", self.SUPPORT_PAGE_SLOT_COUNT)
- self.RefreshSkillPlusButtonList()
- def CanShowPlusButton(self, skillIndex, skillLevel, curStatPoint):
- ## ��ų�� ������
- if 0 == skillIndex:
- return False
- ## ������ ������ �����Ѵٸ�
- if not skill.CanLevelUpSkill(skillIndex, skillLevel):
- return False
- return True
- def __RefreshSkillPlusButton(self, name):
- global HIDE_SUPPORT_SKILL_POINT
- if HIDE_SUPPORT_SKILL_POINT and "SUPPORT" == name:
- return
- slotWindow = self.skillPageDict[name]
- slotWindow.HideAllSlotButton()
- slotStatType = self.skillPageStatDict[name]
- if 0 == slotStatType:
- return
- statPoint = player.GetStatus(slotStatType)
- startSlotIndex = slotWindow.GetStartIndex()
- if "HORSE" == name:
- startSlotIndex += self.ACTIVE_PAGE_SLOT_COUNT
- if statPoint > 0:
- for i in xrange(self.PAGE_SLOT_COUNT):
- slotIndex = i + startSlotIndex
- skillIndex = player.GetSkillIndex(slotIndex)
- skillGrade = player.GetSkillGrade(slotIndex)
- skillLevel = player.GetSkillLevel(slotIndex)
- if skillIndex == 0:
- continue
- if skillGrade != 0:
- continue
- if name == "HORSE":
- if player.GetStatus(player.LEVEL) >= skill.GetSkillLevelLimit(skillIndex):
- if skillLevel < 20:
- slotWindow.ShowSlotButton(self.__GetETCSkillRealSlotIndex(slotIndex))
- else:
- if "SUPPORT" == name:
- if not SHOW_LIMIT_SUPPORT_SKILL_LIST or skillIndex in SHOW_LIMIT_SUPPORT_SKILL_LIST:
- if self.CanShowPlusButton(skillIndex, skillLevel, statPoint):
- slotWindow.ShowSlotButton(slotIndex)
- else:
- if self.CanShowPlusButton(skillIndex, skillLevel, statPoint):
- slotWindow.ShowSlotButton(slotIndex)
- if app.ENABLE_SKILL_COLOR_SYSTEM:
- def __IsColorableSkill(self, skillIndex):
- if not osfInfo.SKILL_COLOR_BUFF_ONLY:
- return True
- WARRIOR_SG = [
- [3, 4], # WARRIOR SG1
- [19] # WARRIOR SG2
- ]
- NINJA_SG = [
- [34], # NINJA SG1
- [49] # NINJA SG2
- ]
- SURA_SG = [
- [63, 64, 65], # SURA SG1
- [78, 79] # SURA SG2
- ]
- SHAMAN_SG = [
- [94, 95, 96], # SHAMAN SG1
- [109, 110, 111] # SHAMAN SG1
- ]
- if skillIndex in WARRIOR_SG[0] or skillIndex in WARRIOR_SG[1] or\
- skillIndex in NINJA_SG[0] or skillIndex in NINJA_SG[1] or\
- skillIndex in SURA_SG[0] or skillIndex in SURA_SG[1] or\
- skillIndex in SHAMAN_SG[0] or skillIndex in SHAMAN_SG[1]:
- return True
- return False
- def __CreateSkillColorButton(self, parent):
- self.skillColorButton = []
- xPos, yPos = 0, 0
- tmpSlot = 0
- for skillSlot in xrange(self.ACTIVE_PAGE_SLOT_COUNT):
- xPos = 75 if (skillSlot % 2) == 0 else 187
- yPos = 4 + (skillSlot / 2 * 36)
- skillIndex = player.GetSkillIndex(skillSlot + 1)
- skillMaxGrade = 3
- if len(self.skillColorButton) == tmpSlot:
- self.skillColorButton.append([])
- self.skillColorButton[tmpSlot] = ui.Button()
- self.skillColorButton[tmpSlot].SetParent(parent)
- self.skillColorButton[tmpSlot].SetUpVisual("d:/ymir work/ui/skillcolor/skill_color_button_default.tga")
- self.skillColorButton[tmpSlot].SetOverVisual("d:/ymir work/ui/skillcolor/skill_color_button_over.tga")
- self.skillColorButton[tmpSlot].SetDownVisual("d:/ymir work/ui/skillcolor/skill_color_button_down.tga")
- self.skillColorButton[tmpSlot].SetPosition(xPos, yPos)
- self.skillColorButton[tmpSlot].SetEvent(lambda arg = skillSlot, arg2 = skillIndex : ui.__mem_func__(self.__OnPressSkillColorButton)(arg, arg2))
- if player.GetSkillGrade(tmpSlot + 1) >= skillMaxGrade and self.__IsColorableSkill(skillIndex):
- self.skillColorButton[tmpSlot].Show()
- else:
- self.skillColorButton[tmpSlot].Hide()
- else:
- self.skillColorButton[tmpSlot].SetPosition(xPos, yPos)
- tmpSlot += 1
- def __UpdateSkillColorPosition(self):
- x,y = self.GetGlobalPosition()
- self.skillColorWnd.SetPosition(x + 250,y)
- def __OnPressSkillColorButton(self, skillSlot, skillIndex):
- self.skillColorWnd = uiSkillColor.SkillColorWindow(skillSlot, skillIndex)
- if self.skillColorWnd and not self.skillColorWnd.IsShow():
- self.skillColorWnd.Show()
- if app.ENABLE_DETAILS_UI:
- if self.chDetailsWnd and self.chDetailsWnd.IsShow():
- self.chDetailsWnd.Hide()
- self.__InitCharacterDetailsUIButton()
- def RefreshSkillPlusButtonList(self):
- if self.isLoaded==0:
- return
- self.RefreshSkillPlusPointLabel()
- if not self.__CanUseSkillNow():
- return
- try:
- if self.PAGE_HORSE == self.curSelectedSkillGroup:
- self.__RefreshSkillPlusButton("HORSE")
- else:
- self.__RefreshSkillPlusButton("ACTIVE")
- self.__RefreshSkillPlusButton("SUPPORT")
- except:
- import exception
- exception.Abort("CharacterWindow.RefreshSkillPlusButtonList.BindObject")
- def RefreshSkillPlusPointLabel(self):
- if self.isLoaded==0:
- return
- if self.PAGE_HORSE == self.curSelectedSkillGroup:
- activeStatPoint = player.GetStatus(player.SKILL_HORSE)
- self.activeSkillPointValue.SetText(str(activeStatPoint))
- else:
- activeStatPoint = player.GetStatus(player.SKILL_ACTIVE)
- self.activeSkillPointValue.SetText(str(activeStatPoint))
- supportStatPoint = max(0, player.GetStatus(player.SKILL_SUPPORT))
- self.supportSkillPointValue.SetText(str(supportStatPoint))
- ## Skill Level Up Button
- def OnPressedSlotButton(self, slotNumber):
- srcSlotIndex = self.__RealSkillSlotToSourceSlot(slotNumber)
- skillIndex = player.GetSkillIndex(srcSlotIndex)
- curLevel = player.GetSkillLevel(srcSlotIndex)
- maxLevel = skill.GetSkillMaxLevel(skillIndex)
- net.SendChatPacket("/skillup " + str(skillIndex))
- ## Use Skill
- def ClickSkillSlot(self, slotIndex):
- srcSlotIndex = self.__RealSkillSlotToSourceSlot(slotIndex)
- skillIndex = player.GetSkillIndex(srcSlotIndex)
- skillType = skill.GetSkillType(skillIndex)
- if not self.__CanUseSkillNow():
- if skill.SKILL_TYPE_ACTIVE == skillType:
- return
- for slotWindow in self.skillPageDict.values():
- if slotWindow.HasSlot(slotIndex):
- if skill.CanUseSkill(skillIndex):
- player.ClickSkillSlot(srcSlotIndex)
- return
- mouseModule.mouseController.DeattachObject()
- ## FIXME : ��ų�� ��������� ���� ��ȣ�� ������ �ش� ������ ã�Ƽ� ������Ʈ �Ѵ�.
- ## �ſ� ���ո�. ���� ��ü�� �����ؾ� �ҵ�.
- def OnUseSkill(self, slotIndex, coolTime):
- skillIndex = player.GetSkillIndex(slotIndex)
- skillType = skill.GetSkillType(skillIndex)
- ## ACTIVE
- if skill.SKILL_TYPE_ACTIVE == skillType:
- skillGrade = player.GetSkillGrade(slotIndex)
- slotIndex = self.__GetRealSkillSlot(skillGrade, slotIndex)
- ## ETC
- else:
- slotIndex = self.__GetETCSkillRealSlotIndex(slotIndex)
- for slotWindow in self.skillPageDict.values():
- if slotWindow.HasSlot(slotIndex):
- slotWindow.StoreSlotCoolTime(skillType, slotIndex, coolTime)
- self.__RestoreSlotCoolTime(slotWindow)
- #slotWindow.SetSlotCoolTime(slotIndex, coolTime)
- return
- def OnActivateSkill(self, slotIndex):
- skillGrade = player.GetSkillGrade(slotIndex)
- slotIndex = self.__GetRealSkillSlot(skillGrade, slotIndex)
- for slotWindow in self.skillPageDict.values():
- if slotWindow.HasSlot(slotIndex):
- slotWindow.ActivateSlot(slotIndex)
- return
- self.RefreshSkill()
- def OnDeactivateSkill(self, slotIndex):
- skillGrade = player.GetSkillGrade(slotIndex)
- slotIndex = self.__GetRealSkillSlot(skillGrade, slotIndex)
- for slotWindow in self.skillPageDict.values():
- if slotWindow.HasSlot(slotIndex):
- slotWindow.DeactivateSlot(slotIndex)
- return
- self.RefreshSkill()
- def __ShowJobToolTip(self):
- self.toolTipJob.ShowToolTip()
- if app.ENABLE_SKILL_COOLTIME_UPDATE:
- def SkillClearCoolTime(self, slotIndex):
- slotIndex = self.__GetRealSkillSlot(player.GetSkillGrade(slotIndex), slotIndex)
- for slotWindow in self.skillPageDict.values():
- if slotWindow.HasSlot(slotIndex):
- slotWindow.SetSlotCoolTime(slotIndex, 0)
- def __HideJobToolTip(self):
- self.toolTipJob.HideToolTip()
- def __SetJobText(self, mainJob, subJob):
- if player.GetStatus(player.LEVEL)<5:
- subJob=0
- if 949 == app.GetDefaultCodePage():
- self.toolTipJob.ClearToolTip()
- try:
- jobInfoTitle=localeInfo.JOBINFO_TITLE[mainJob][subJob]
- jobInfoData=localeInfo.JOBINFO_DATA_LIST[mainJob][subJob]
- except IndexError:
- print "uiCharacter.CharacterWindow.__SetJobText(mainJob=%d, subJob=%d)" % (mainJob, subJob)
- return
- self.toolTipJob.AutoAppendTextLine(jobInfoTitle)
- self.toolTipJob.AppendSpace(5)
- for jobInfoDataLine in jobInfoData:
- self.toolTipJob.AutoAppendTextLine(jobInfoDataLine)
- self.toolTipJob.AlignHorizonalCenter()
- def __ShowAlignmentToolTip(self):
- self.toolTipAlignment.ShowToolTip()
- def __HideAlignmentToolTip(self):
- self.toolTipAlignment.HideToolTip()
- def RefreshCharacter(self):
- if self.isLoaded == 0:
- return
- ## Name
- try:
- characterName = player.GetName()
- guildName = player.GetGuildName()
- self.characterNameValue.SetText(characterName)
- self.guildNameValue.SetText(guildName)
- if not guildName:
- if localeInfo.IsARABIC():
- self.characterNameSlot.SetPosition(190, 34)
- else:
- self.characterNameSlot.SetPosition(109, 34)
- self.guildNameSlot.Hide()
- else:
- if localeInfo.IsJAPAN():
- self.characterNameSlot.SetPosition(143, 34)
- else:
- self.characterNameSlot.SetPosition(153, 34)
- self.guildNameSlot.Show()
- except:
- import exception
- exception.Abort("CharacterWindow.RefreshCharacter.BindObject")
- race = net.GetMainActorRace()
- group = net.GetMainActorSkillGroup()
- empire = net.GetMainActorEmpire()
- ## Job Text
- job = chr.RaceToJob(race)
- self.__SetJobText(job, group)
- ## FaceImage
- try:
- faceImageName = FACE_IMAGE_DICT[race]
- try:
- self.faceImage.LoadImage(faceImageName)
- except:
- print "CharacterWindow.RefreshCharacter(race=%d, faceImageName=%s)" % (race, faceImageName)
- self.faceImage.Hide()
- except KeyError:
- self.faceImage.Hide()
- ## GroupName
- self.__SetSkillGroupName(race, group)
- ## Skill
- if 0 == group:
- self.__SelectSkillGroup(0)
- else:
- self.__SetSkillSlotData(race, group, empire)
- if self.__CanUseHorseSkill():
- self.__SelectSkillGroup(0)
- def __SetSkillGroupName(self, race, group):
- job = chr.RaceToJob(race)
- if not self.SKILL_GROUP_NAME_DICT.has_key(job):
- return
- nameList = self.SKILL_GROUP_NAME_DICT[job]
- if 0 == group:
- self.skillGroupButton1.SetText(nameList[1])
- self.skillGroupButton2.SetText(nameList[2])
- self.skillGroupButton1.Show()
- ## �������� ������ �ϳ��̹Ƿ� �Ѱ��� ǥ��
- if playerSettingModule.RACE_WOLFMAN_M != race:
- self.skillGroupButton2.Show()
- self.activeSkillGroupName.Hide()
- else:
- if self.__CanUseHorseSkill():
- self.activeSkillGroupName.Hide()
- self.skillGroupButton1.SetText(nameList.get(group, "Noname"))
- self.skillGroupButton2.SetText(localeInfo.SKILL_GROUP_HORSE)
- self.skillGroupButton1.Show()
- self.skillGroupButton2.Show()
- else:
- self.activeSkillGroupName.SetText(nameList.get(group, "Noname"))
- self.activeSkillGroupName.Show()
- self.skillGroupButton1.Hide()
- self.skillGroupButton2.Hide()
- def __SetSkillSlotData(self, race, group, empire=0):
- ## SkillIndex
- if app.ENABLE_LOADING_PERFORMANCE:
- loading.RegisterSkill(race, group, empire)
- else:
- playerSettingModule.RegisterSkill(race, group, empire)
- ## Event
- self.__SetSkillSlotEvent()
- ## Refresh
- self.RefreshSkill()
- def __SelectSkillGroup(self, index):
- for btn in self.skillGroupButton:
- btn.SetUp()
- self.skillGroupButton[index].Down()
- if self.__CanUseHorseSkill():
- if 0 == index:
- index = net.GetMainActorSkillGroup() - 1
- elif 1 == index:
- index = self.PAGE_HORSE
- self.curSelectedSkillGroup = index
- self.__SetSkillSlotData(net.GetMainActorRace(), index+1, net.GetMainActorEmpire())
- def __CanUseSkillNow(self):
- if 0 == net.GetMainActorSkillGroup():
- return False
- return True
- def __CanUseHorseSkill(self):
- slotIndex = player.GetSkillSlotIndex(player.SKILL_INDEX_RIDING)
- if not slotIndex:
- return False
- grade = player.GetSkillGrade(slotIndex) # hotfix
- level = player.GetSkillLevel(slotIndex)
- if level < 0:
- level *= -1
- if level >= 20:
- return True
- if grade >= 1 and level >= 1: # hotfix
- return True
- return False
- def __IsChangedHorseRidingSkillLevel(self):
- ret = False
- if -1 == self.canUseHorseSkill:
- self.canUseHorseSkill = self.__CanUseHorseSkill()
- if self.canUseHorseSkill != self.__CanUseHorseSkill():
- ret = True
- self.canUseHorseSkill = self.__CanUseHorseSkill()
- return ret
- def __GetRealSkillSlot(self, skillGrade, skillSlot):
- return skillSlot + min(skill.SKILL_GRADE_COUNT-1, skillGrade) * skill.SKILL_GRADE_STEP_COUNT
- def __GetETCSkillRealSlotIndex(self, skillSlot):
- if skillSlot > 100:
- return skillSlot
- return skillSlot % self.ACTIVE_PAGE_SLOT_COUNT
- def __RealSkillSlotToSourceSlot(self, realSkillSlot):
- if realSkillSlot > 100:
- return realSkillSlot
- if self.PAGE_HORSE == self.curSelectedSkillGroup:
- return realSkillSlot + self.ACTIVE_PAGE_SLOT_COUNT
- return realSkillSlot % skill.SKILL_GRADE_STEP_COUNT
- def __GetSkillGradeFromSlot(self, skillSlot):
- return int(skillSlot / skill.SKILL_GRADE_STEP_COUNT)
- def SelectSkillGroup(self, index):
- self.__SelectSkillGroup(index)
- def OnQuestScroll(self):
- questCount = quest.GetQuestCount()
- scrollLineCount = max(0, questCount - quest.QUEST_MAX_NUM)
- startIndex = int(scrollLineCount * self.questScrollBar.GetPos())
- if startIndex != self.questShowingStartIndex:
- self.questShowingStartIndex = startIndex
- self.RefreshQuest()
- if app.ENABLE_QUEST_RENEWAL:
- def __OnScrollQuest(self):
- if self.state != "QUEST":
- return
- curPos = self.questScrollBar.GetPos()
- if math.fabs(curPos - self.questLastScrollPosition) >= 0.001:
- self.RerenderQuestPage()
- self.questLastScrollPosition = curPos
- def ResetQuestScroll(self):
- self.questScrollBar.Hide()
- if self.questScrollBar.GetPos() != 0:
- self.questScrollBar.SetPos(0)
- def RerenderQuestPage(self):
- overflowingY = self.displayY - self.MAX_QUEST_PAGE_HEIGHT
- if overflowingY < 0:
- overflowingY = 0
- self.baseCutY = math.ceil(overflowingY * self.questScrollBar.GetPos())
- self.displayY = 0
- self.RearrangeQuestCategories(xrange(quest.QUEST_CATEGORY_MAX_NUM))
- self.RefreshQuestCategory()
- if overflowingY > 0:
- if (len(self.questOpenedCategories)) == 0:
- self.ResetQuestScroll()
- else:
- self.questScrollBar.Show()
- else:
- self.ResetQuestScroll()
- def __LoadQuestCategory(self):
- self.questPage.Show()
- if self.isLoaded == 0:
- return
- for i in xrange(quest.QUEST_CATEGORY_MAX_NUM):
- category = self.questCategoryList[i]
- categoryName = category.GetProperty("name")
- if not categoryName:
- category.SetProperty("name", category.GetText())
- categoryName = category.GetText()
- questCount = self.GetQuestCountInCategory(i)
- self.questCategoryList[i].SetTextAlignLeft(categoryName + " (" + str(questCount) + ")")
- self.questCategoryList[i].SetTextColor(self.GetQuestCategoryColor(i))
- self.questCategoryList[i].SetQuestLabel(quest_lable_expend_img_path_dict[i], self.GetQuestCountInCategory(i))
- self.questCategoryList[i].Show()
- self.RefreshQuestCategory()
- if self.isQuestCategoryLoad == False:
- self.questScrollBar.Hide()
- else:
- self.RerenderQuestPage()
- self.isQuestCategoryLoad = True
- def GetQuestCategoryColor(self, category):
- return self.questColorList["default_title"]
- def GetQuestProperties(self, questName):
- findString = {
- "*" : "blue",
- "&" : "green",
- "~" : "golden"
- }
- if questName[0] in findString:
- return (questName[1:], findString[questName[0]])
- return (questName, None)
- def IsQuestCategoryOpen(self, category):
- return (category in self.questOpenedCategories)
- def ToggleCategory(self, category):
- if self.IsQuestCategoryOpen(category):
- self.CloseQuestCategory(category)
- else:
- self.OpenQuestCategory(category)
- def RearrangeQuestCategories(self, categoryRange):
- i = 0
- for i in categoryRange:
- if (self.displayY - self.baseCutY) >= 0 and (self.displayY - self.baseCutY) < self.MAX_QUEST_PAGE_HEIGHT - 20:
- self.questCategoryList[i].SetPosition(13, (self.displayY - self.baseCutY) + 10)
- self.questCategoryList[i].Show()
- else:
- self.questCategoryList[i].Hide()
- self.displayY += 20
- self.questCategoryRenderPos[i] = self.displayY
- def CloseQuestCategory(self, category):
- self.questCategoryList[category].CloseCategory(self.GetQuestCountInCategory(category))
- if category in self.questOpenedCategories:
- self.questOpenedCategories.remove(category)
- for currentSlot in self.questSlotList:
- if currentSlot.GetProperty("category") == category:
- currentSlot.Hide()
- self.displayY -= currentSlot.GetHeight()
- self.RerenderQuestPage()
- def OpenQuestCategory(self, category):
- if self.GetQuestCountInCategory(category) == 0:
- return
- while len(self.questOpenedCategories) >= self.questMaxOpenedCategories:
- openedCategories = self.questOpenedCategories.pop()
- self.CloseQuestCategory(openedCategories)
- self.questCategoryList[category].OpenCategory(self.GetQuestCountInCategory(category))
- self.questOpenedCategories.append(category)
- self.RefreshQuestCategory(category)
- self.RerenderQuestPage()
- def RefreshQuestCategory(self, category = -1):
- if self.isLoaded == 0 or self.state != "QUEST":
- return
- categories = []
- if category == -1:
- categories = self.questOpenedCategories
- elif not category in self.questOpenedCategories:
- self.OpenQuestCategory(category)
- return
- else:
- categories.append(category)
- for currentCategory in categories:
- self.displayY = self.questCategoryRenderPos[currentCategory]
- self.LoadCategory(currentCategory)
- self.RearrangeQuestCategories(xrange(currentCategory + 1, quest.QUEST_CATEGORY_MAX_NUM))
- def RefreshQuestCategoriesCount(self):
- for category in xrange(quest.QUEST_CATEGORY_MAX_NUM):
- categoryName = self.questCategoryList[category].GetProperty("name")
- questCount = self.GetQuestCountInCategory(category)
- self.questCategoryList[category].SetTextAlignLeft(categoryName + " (" + str(questCount) + ")")
- def RefreshQuest(self):
- if self.isLoaded == 0 or self.state != "QUEST":
- return
- for category in self.questOpenedCategories:
- self.RefreshQuestCategory(category)
- self.RefreshQuestCategoriesCount()
- def CreateQuestSlot(self, name):
- for questSlot in self.questSlotList:
- if questSlot.GetWindowName() == name:
- return questSlot
- pyScrLoader = ui.PythonScriptLoader()
- slot = ui.ListBar()
- pyScrLoader.LoadElementListBar(slot, quest_slot_listbar, self.questPage)
- slot.SetParent(self.quest_page_board_window)
- slot.SetWindowName(name)
- slot.Hide()
- self.questSlotList.append(slot)
- return slot
- def SetQuest(self, slot, questID, questName, questCounterName, questCounterValue):
- (name, color) = self.GetQuestProperties(questName)
- slot.SetTextAlignLeft(name, 20)
- if color:
- slot.SetTextColor(self.questColorList[color])
- slot.SetEvent(ui.__mem_func__(self.__SelectQuest), questID)
- slot.SetWindowHorizontalAlignLeft()
- slot.Show()
- def LoadCategory(self, category):
- self.questIndexMap = {}
- self.questCounterList = []
- self.questClockList = []
- self.questSeparatorList = []
- for questSlot in self.questSlotList:
- questSlot.Hide()
- questCount = 0
- for questIdx in self.GetQuestsInCategory(category):
- questCount += 1
- (questID, questIndex, questName, questCategory, _, questCounterName, questCounterValue) = questIdx
- (lastName, lastTime) = quest.GetQuestLastTime(questID)
- slot = self.CreateQuestSlot("QuestSlotList_" + str(questCategory) + "_" + str(questID))
- slot.SetPosition(0, (self.displayY - self.baseCutY))
- slot.SetParent(self.quest_page_board_window)
- baseDisplayY = self.displayY
- ## -- Quest Counter
- hasCounter = False
- if questCounterName != "":
- self.displayY += 15
- counter = ui.TextLine()
- counter.SetParent(slot)
- counter.SetPosition(20, 20 - 2.5)
- counter.SetText(questCounterName + ": " + str(questCounterValue))
- counter.Show()
- self.questCounterList.append(counter)
- hasCounter = True
- ## -- Quest Counter
- ## -- Quest Clock
- self.displayY += 15
- clockText = localeInfo.QUEST_UNLIMITED_TIME
- if len(lastName) > 0:
- if lastTime <= 0:
- clockText = localeInfo.QUEST_TIMEOVER
- else:
- questLastMinute = lastTime / 60
- questLastSecond = lastTime % 60
- clockText = lastName + " : "
- if questLastMinute > 0:
- clockText += str(questLastMinute) + localeInfo.QUEST_MIN
- if questLastSecond > 0:
- clockText += " "
- if questLastSecond > 0:
- clockText += str(questLastSecond) + localeInfo.QUEST_SEC
- clock = ui.TextLine()
- clock.SetParent(slot)
- clock.SetPosition(20, 20 + (int(hasCounter) * 14) - 2.5)
- clock.SetText(clockText)
- clock.SetProperty("idx", questID)
- self.questClockList.append(clock)
- clock.Show()
- ## -- Quest Clock
- ## -- Quest Separator
- self.displayY += 5
- if questCount < self.GetQuestCountInCategory(category):
- seperator = ui.ImageBox()
- seperator.SetParent(slot)
- seperator.SetPosition(4, 20 + (int(hasCounter) * 14 - 2.5) + 15)
- seperator.LoadImage("d:/ymir work/ui/quest_re/quest_list_line_01.tga")
- seperator.Show()
- self.questSeparatorList.append(seperator)
- ## -- Quest Separator
- slot.SetProperty("category", questCategory)
- if questIndex in self.questClicked:
- slot.OnClickEvent()
- if (baseDisplayY - self.baseCutY) + 2 >= 0 and (baseDisplayY - self.baseCutY) + 2 < self.MAX_QUEST_PAGE_HEIGHT - 30:
- self.questIndexMap[questID] = questIndex
- self.SetQuest(slot, questID, questName, questCounterName, questCounterValue)
- self.displayY += 15
- newList = []
- for questSlot in self.questSlotList:
- if questSlot.IsShow():
- newList.append(questSlot)
- self.questSlotList = newList
- def __OnClickQuestCategoryButton(self, category):
- self.ToggleCategory(category)
- def GetQuestsInCategory(self, category, retCount = False):
- questList = []
- count = 0
- for i in xrange(quest.GetQuestCount()):
- (questIndex, questName, questCategory, questIcon, questCounterName, questCounterValue) = quest.GetQuestData(i)
- if questCategory == category:
- count += 1
- questList.append((i, questIndex, questName, questCategory, questIcon, questCounterName, questCounterValue))
- if retCount:
- return count
- return questList
- def GetQuestCountInCategory(self, category):
- return self.GetQuestsInCategory(category, True)
Advertisement
Add Comment
Please, Sign In to add comment