Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import dbg
- import player
- import item
- import grp
- import wndMgr
- import skill
- import shop
- import exchange
- import grpText
- import safebox
- import localemg
- import app
- import background
- import nonplayer
- import chr
- import uimg
- import mouseModule
- import constInfo
- WARP_SCROLLS = [22011, 22000, 22010]
- DESC_DEFAULT_MAX_COLS = 26
- DESC_WESTERN_MAX_COLS = 35
- DESC_WESTERN_MAX_WIDTH = 220
- def chop(n):
- return round(n - 0.5, 1)
- def pointop(n):
- t = int(n)
- if t / 10 < 1:
- return "0."+n
- else:
- return n[0:len(n)-1]+"."+n[len(n)-1:]
- def SplitDescription(desc, limit):
- total_tokens = desc.split()
- line_tokens = []
- line_len = 0
- lines = []
- for token in total_tokens:
- if "|" in token:
- sep_pos = token.find("|")
- line_tokens.append(token[:sep_pos])
- lines.append(" ".join(line_tokens))
- line_len = len(token) - (sep_pos + 1)
- line_tokens = [token[sep_pos+1:]]
- else:
- line_len += len(token)
- if len(line_tokens) + line_len > limit:
- lines.append(" ".join(line_tokens))
- line_len = len(token)
- line_tokens = [token]
- else:
- line_tokens.append(token)
- if line_tokens:
- lines.append(" ".join(line_tokens))
- return lines
- ###################################################################################################
- ## ToolTip
- ##
- ## NOTE : ??? Item? Skill? ???? ?? ?????
- ## ??? ??? ??? ?? ??
- ##
- class ToolTip(uimg.ThinBoard):
- TOOL_TIP_WIDTH = 190
- TOOL_TIP_HEIGHT = 10
- TEXT_LINE_HEIGHT = 17
- TITLE_COLOR = grp.GenerateColor(0.9490, 0.9058, 0.7568, 1.0)
- SPECIAL_TITLE_COLOR = grp.GenerateColor(1.0, 0.7843, 0.0, 1.0)
- NORMAL_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0)
- FONT_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0)
- PRICE_COLOR = 0xffFFB96D
- HIGH_PRICE_COLOR = SPECIAL_TITLE_COLOR
- MIDDLE_PRICE_COLOR = grp.GenerateColor(0.85, 0.85, 0.85, 1.0)
- LOW_PRICE_COLOR = grp.GenerateColor(0.7, 0.7, 0.7, 1.0)
- ENABLE_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0)
- DISABLE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)
- NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)
- POSITIVE_COLOR = grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0)
- SPECIAL_POSITIVE_COLOR = grp.GenerateColor(0.6911, 0.8754, 0.7068, 1.0)
- SPECIAL_POSITIVE_COLOR2 = grp.GenerateColor(0.8824, 0.9804, 0.8824, 1.0)
- CONDITION_COLOR = 0xffBEB47D
- CAN_LEVEL_UP_COLOR = 0xff8EC292
- CANNOT_LEVEL_UP_COLOR = DISABLE_COLOR
- NEED_SKILL_POINT_COLOR = 0xff9A9CDB
- def __init__(self, width = TOOL_TIP_WIDTH, isPickable=False):
- uimg.ThinBoard.__init__(self, "TOP_MOST")
- if isPickable:
- pass
- else:
- self.AddFlag("not_pick")
- self.AddFlag("float")
- self.followFlag = True
- self.toolTipWidth = width
- self.xPos = -1
- self.yPos = -1
- self.defFontName = localemg.UI_DEF_FONT
- self.ClearToolTip()
- def __del__(self):
- uimg.ThinBoard.__del__(self)
- def ClearToolTip(self):
- self.toolTipHeight = 12
- self.childrenList = []
- def SetFollow(self, flag):
- self.followFlag = flag
- def SetDefaultFontName(self, fontName):
- self.defFontName = fontName
- def AppendSpace(self, size):
- self.toolTipHeight += size
- self.ResizeToolTip()
- def AppendHorizontalLine(self):
- for i in xrange(2):
- horizontalLine = uimg.Line()
- horizontalLine.SetParent(self)
- horizontalLine.SetPosition(0, self.toolTipHeight + 3 + i)
- horizontalLine.SetWindowHorizontalAlignCenter()
- horizontalLine.SetSize(150, 0)
- horizontalLine.Show()
- if 0 == i:
- horizontalLine.SetColor(0xff555555)
- else:
- horizontalLine.SetColor(0xff000000)
- self.childrenList.append(horizontalLine)
- self.toolTipHeight += 11
- self.ResizeToolTip()
- def AlignHorizonalCenter(self):
- for child in self.childrenList:
- (x, y)=child.GetLocalPosition()
- child.SetPosition(self.toolTipWidth/2, y)
- self.ResizeToolTip()
- def AutoAppendTextLine(self, text, color = FONT_COLOR, centerAlign = True):
- textLine = uimg.TextLine()
- textLine.SetParent(self)
- textLine.SetFontName(self.defFontName)
- textLine.SetPackedFontColor(color)
- textLine.SetText(text)
- textLine.SetOutline()
- textLine.SetFeather(False)
- textLine.Show()
- if centerAlign:
- textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight)
- textLine.SetHorizontalAlignCenter()
- else:
- textLine.SetPosition(10, self.toolTipHeight)
- self.childrenList.append(textLine)
- (textWidth, textHeight)=textLine.GetTextSize()
- textWidth += 40
- textHeight += 5
- if self.toolTipWidth < textWidth:
- self.toolTipWidth = textWidth
- self.toolTipHeight += textHeight
- return textLine
- def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = True):
- textLine = uimg.TextLine()
- textLine.SetParent(self)
- textLine.SetFontName(self.defFontName)
- textLine.SetPackedFontColor(color)
- textLine.SetText(text)
- textLine.SetOutline()
- textLine.SetFeather(False)
- textLine.Show()
- if centerAlign:
- textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight)
- textLine.SetHorizontalAlignCenter()
- else:
- textLine.SetPosition(10, self.toolTipHeight)
- self.childrenList.append(textLine)
- self.toolTipHeight += self.TEXT_LINE_HEIGHT
- self.ResizeToolTip()
- return textLine
- def AppendDescription(self, desc, limit, color = FONT_COLOR):
- if localemg.IsEUROPE():
- self.__AppendDescription_WesternLanguage(desc, color)
- else:
- self.__AppendDescription_EasternLanguage(desc, limit, color)
- def __AppendDescription_EasternLanguage(self, description, characterLimitation, color=FONT_COLOR):
- length = len(description)
- if 0 == length:
- return
- lineCount = grpText.GetSplitingTextLineCount(description, characterLimitation)
- for i in xrange(lineCount):
- if 0 == i:
- self.AppendSpace(5)
- self.AppendTextLine(grpText.GetSplitingTextLine(description, characterLimitation, i), color)
- def __AppendDescription_WesternLanguage(self, desc, color=FONT_COLOR):
- lines = SplitDescription(desc, DESC_WESTERN_MAX_COLS)
- if not lines:
- return
- self.AppendSpace(5)
- for line in lines:
- self.AppendTextLine(line, color)
- def ResizeToolTip(self):
- self.SetSize(self.toolTipWidth, self.TOOL_TIP_HEIGHT + self.toolTipHeight)
- def SetTitle(self, name):
- self.AppendTextLine(name, self.TITLE_COLOR)
- def SetNamePlusItem(self, plusName):
- self.AppendTextLine(plusName, self.NORMAL_COLOR)
- def GetLimitTextLineColor(self, curValue, limitValue):
- if curValue < limitValue:
- return self.DISABLE_COLOR
- return self.ENABLE_COLOR
- def GetChangeTextLineColor(self, value, isSpecial=False):
- if value > 0:
- if isSpecial:
- return self.SPECIAL_POSITIVE_COLOR
- else:
- return self.POSITIVE_COLOR
- if 0 == value:
- return self.NORMAL_COLOR
- return self.NEGATIVE_COLOR
- def SetToolTipPosition(self, x = -1, y = -1):
- self.xPos = x
- self.yPos = y
- def ShowToolTip(self):
- self.SetTop()
- self.Show()
- self.OnUpdate()
- def HideToolTip(self):
- self.Hide()
- def OnUpdate(self):
- if not self.followFlag:
- return
- x = 0
- y = 0
- width = self.GetWidth()
- height = self.toolTipHeight
- if -1 == self.xPos and -1 == self.yPos:
- (mouseX, mouseY) = wndMgr.GetMousePosition()
- if mouseY < wndMgr.GetScreenHeight() - 300:
- y = mouseY + 40
- else:
- y = mouseY - height - 30
- x = mouseX - width/2
- else:
- x = self.xPos - width/2
- y = self.yPos - height
- x = max(x, 0)
- y = max(y, 0)
- x = min(x + width/2, wndMgr.GetScreenWidth() - width/2) - width/2
- y = min(y + self.GetHeight(), wndMgr.GetScreenHeight()) - self.GetHeight()
- parentWindow = self.GetParentProxy()
- if parentWindow:
- (gx, gy) = parentWindow.GetGlobalPosition()
- x -= gx
- y -= gy
- self.SetPosition(x, y)
- class ItemToolTip(ToolTip):
- if app.ENABLE_SEND_TARGET_INFO:
- isStone = False
- isBook = False
- isBook2 = False
- CHARACTER_NAMES = (
- localemg.TOOLTIP_WARRIOR,
- localemg.TOOLTIP_ASSASSIN,
- localemg.TOOLTIP_SURA,
- localemg.TOOLTIP_SHAMAN
- )
- CHARACTER_COUNT = len(CHARACTER_NAMES)
- WEAR_NAMES = (
- localemg.TOOLTIP_ARMOR,
- localemg.TOOLTIP_HELMET,
- localemg.TOOLTIP_SHOES,
- localemg.TOOLTIP_WRISTLET,
- localemg.TOOLTIP_WEAPON,
- localemg.TOOLTIP_NECK,
- localemg.TOOLTIP_EAR,
- localemg.TOOLTIP_UNIQUE,
- localemg.TOOLTIP_SHIELD,
- localemg.TOOLTIP_ARROW,
- )
- WEAR_COUNT = len(WEAR_NAMES)
- AFFECT_DICT = {
- item.APPLY_MAX_HP : localemg.TOOLTIP_MAX_HP,
- item.APPLY_MAX_SP : localemg.TOOLTIP_MAX_SP,
- item.APPLY_CON : localemg.TOOLTIP_CON,
- item.APPLY_INT : localemg.TOOLTIP_INT,
- item.APPLY_STR : localemg.TOOLTIP_STR,
- item.APPLY_DEX : localemg.TOOLTIP_DEX,
- item.APPLY_ATT_SPEED : localemg.TOOLTIP_ATT_SPEED,
- item.APPLY_MOV_SPEED : localemg.TOOLTIP_MOV_SPEED,
- item.APPLY_CAST_SPEED : localemg.TOOLTIP_CAST_SPEED,
- item.APPLY_HP_REGEN : localemg.TOOLTIP_HP_REGEN,
- item.APPLY_SP_REGEN : localemg.TOOLTIP_SP_REGEN,
- item.APPLY_POISON_PCT : localemg.TOOLTIP_APPLY_POISON_PCT,
- item.APPLY_STUN_PCT : localemg.TOOLTIP_APPLY_STUN_PCT,
- item.APPLY_SLOW_PCT : localemg.TOOLTIP_APPLY_SLOW_PCT,
- item.APPLY_CRITICAL_PCT : localemg.TOOLTIP_APPLY_CRITICAL_PCT,
- item.APPLY_PENETRATE_PCT : localemg.TOOLTIP_APPLY_PENETRATE_PCT,
- item.APPLY_ATTBONUS_WARRIOR : localemg.TOOLTIP_APPLY_ATTBONUS_WARRIOR,
- item.APPLY_ATTBONUS_ASSASSIN : localemg.TOOLTIP_APPLY_ATTBONUS_ASSASSIN,
- item.APPLY_ATTBONUS_SURA : localemg.TOOLTIP_APPLY_ATTBONUS_SURA,
- item.APPLY_ATTBONUS_SHAMAN : localemg.TOOLTIP_APPLY_ATTBONUS_SHAMAN,
- item.APPLY_ATTBONUS_MONSTER : localemg.TOOLTIP_APPLY_ATTBONUS_MONSTER,
- item.APPLY_ATTBONUS_HUMAN : localemg.TOOLTIP_APPLY_ATTBONUS_HUMAN,
- item.APPLY_ATTBONUS_ANIMAL : localemg.TOOLTIP_APPLY_ATTBONUS_ANIMAL,
- item.APPLY_ATTBONUS_ORC : localemg.TOOLTIP_APPLY_ATTBONUS_ORC,
- item.APPLY_ATTBONUS_MILGYO : localemg.TOOLTIP_APPLY_ATTBONUS_MILGYO,
- item.APPLY_ATTBONUS_UNDEAD : localemg.TOOLTIP_APPLY_ATTBONUS_UNDEAD,
- item.APPLY_ATTBONUS_DEVIL : localemg.TOOLTIP_APPLY_ATTBONUS_DEVIL,
- item.APPLY_STEAL_HP : localemg.TOOLTIP_APPLY_STEAL_HP,
- item.APPLY_STEAL_SP : localemg.TOOLTIP_APPLY_STEAL_SP,
- item.APPLY_MANA_BURN_PCT : localemg.TOOLTIP_APPLY_MANA_BURN_PCT,
- item.APPLY_DAMAGE_SP_RECOVER : localemg.TOOLTIP_APPLY_DAMAGE_SP_RECOVER,
- item.APPLY_BLOCK : localemg.TOOLTIP_APPLY_BLOCK,
- item.APPLY_DODGE : localemg.TOOLTIP_APPLY_DODGE,
- item.APPLY_RESIST_SWORD : localemg.TOOLTIP_APPLY_RESIST_SWORD,
- item.APPLY_RESIST_TWOHAND : localemg.TOOLTIP_APPLY_RESIST_TWOHAND,
- item.APPLY_RESIST_DAGGER : localemg.TOOLTIP_APPLY_RESIST_DAGGER,
- item.APPLY_RESIST_BELL : localemg.TOOLTIP_APPLY_RESIST_BELL,
- item.APPLY_RESIST_FAN : localemg.TOOLTIP_APPLY_RESIST_FAN,
- item.APPLY_RESIST_BOW : localemg.TOOLTIP_RESIST_BOW,
- item.APPLY_RESIST_FIRE : localemg.TOOLTIP_RESIST_FIRE,
- item.APPLY_RESIST_ELEC : localemg.TOOLTIP_RESIST_ELEC,
- item.APPLY_RESIST_MAGIC : localemg.TOOLTIP_RESIST_MAGIC,
- item.APPLY_RESIST_WIND : localemg.TOOLTIP_APPLY_RESIST_WIND,
- item.APPLY_REFLECT_MELEE : localemg.TOOLTIP_APPLY_REFLECT_MELEE,
- item.APPLY_REFLECT_CURSE : localemg.TOOLTIP_APPLY_REFLECT_CURSE,
- item.APPLY_POISON_REDUCE : localemg.TOOLTIP_APPLY_POISON_REDUCE,
- item.APPLY_KILL_SP_RECOVER : localemg.TOOLTIP_APPLY_KILL_SP_RECOVER,
- item.APPLY_EXP_DOUBLE_BONUS : localemg.TOOLTIP_APPLY_EXP_DOUBLE_BONUS,
- item.APPLY_GOLD_DOUBLE_BONUS : localemg.TOOLTIP_APPLY_GOLD_DOUBLE_BONUS,
- item.APPLY_ITEM_DROP_BONUS : localemg.TOOLTIP_APPLY_ITEM_DROP_BONUS,
- item.APPLY_POTION_BONUS : localemg.TOOLTIP_APPLY_POTION_BONUS,
- item.APPLY_KILL_HP_RECOVER : localemg.TOOLTIP_APPLY_KILL_HP_RECOVER,
- item.APPLY_IMMUNE_STUN : localemg.TOOLTIP_APPLY_IMMUNE_STUN,
- item.APPLY_IMMUNE_SLOW : localemg.TOOLTIP_APPLY_IMMUNE_SLOW,
- item.APPLY_IMMUNE_FALL : localemg.TOOLTIP_APPLY_IMMUNE_FALL,
- item.APPLY_BOW_DISTANCE : localemg.TOOLTIP_BOW_DISTANCE,
- item.APPLY_DEF_GRADE_BONUS : localemg.TOOLTIP_DEF_GRADE,
- item.APPLY_ATT_GRADE_BONUS : localemg.TOOLTIP_ATT_GRADE,
- item.APPLY_MAGIC_ATT_GRADE : localemg.TOOLTIP_MAGIC_ATT_GRADE,
- item.APPLY_MAGIC_DEF_GRADE : localemg.TOOLTIP_MAGIC_DEF_GRADE,
- item.APPLY_MAX_STAMINA : localemg.TOOLTIP_MAX_STAMINA,
- item.APPLY_MALL_ATTBONUS : localemg.TOOLTIP_MALL_ATTBONUS,
- item.APPLY_MALL_DEFBONUS : localemg.TOOLTIP_MALL_DEFBONUS,
- item.APPLY_MALL_EXPBONUS : localemg.TOOLTIP_MALL_EXPBONUS,
- item.APPLY_MALL_ITEMBONUS : localemg.TOOLTIP_MALL_ITEMBONUS,
- item.APPLY_MALL_GOLDBONUS : localemg.TOOLTIP_MALL_GOLDBONUS,
- item.APPLY_SKILL_DAMAGE_BONUS : localemg.TOOLTIP_SKILL_DAMAGE_BONUS,
- item.APPLY_NORMAL_HIT_DAMAGE_BONUS : localemg.TOOLTIP_NORMAL_HIT_DAMAGE_BONUS,
- item.APPLY_SKILL_DEFEND_BONUS : localemg.TOOLTIP_SKILL_DEFEND_BONUS,
- item.APPLY_NORMAL_HIT_DEFEND_BONUS : localemg.TOOLTIP_NORMAL_HIT_DEFEND_BONUS,
- item.APPLY_PC_BANG_EXP_BONUS : localemg.TOOLTIP_MALL_EXPBONUS_P_STATIC,
- item.APPLY_PC_BANG_DROP_BONUS : localemg.TOOLTIP_MALL_ITEMBONUS_P_STATIC,
- item.APPLY_RESIST_WARRIOR : localemg.TOOLTIP_APPLY_RESIST_WARRIOR,
- item.APPLY_RESIST_ASSASSIN : localemg.TOOLTIP_APPLY_RESIST_ASSASSIN,
- item.APPLY_RESIST_SURA : localemg.TOOLTIP_APPLY_RESIST_SURA,
- item.APPLY_RESIST_SHAMAN : localemg.TOOLTIP_APPLY_RESIST_SHAMAN,
- item.APPLY_MAX_HP_PCT : localemg.TOOLTIP_APPLY_MAX_HP_PCT,
- item.APPLY_MAX_SP_PCT : localemg.TOOLTIP_APPLY_MAX_SP_PCT,
- item.APPLY_ENERGY : localemg.TOOLTIP_ENERGY,
- item.APPLY_COSTUME_ATTR_BONUS : localemg.TOOLTIP_COSTUME_ATTR_BONUS,
- item.APPLY_MAGIC_ATTBONUS_PER : localemg.TOOLTIP_MAGIC_ATTBONUS_PER,
- item.APPLY_MELEE_MAGIC_ATTBONUS_PER : localemg.TOOLTIP_MELEE_MAGIC_ATTBONUS_PER,
- item.APPLY_RESIST_ICE : localemg.TOOLTIP_RESIST_ICE,
- item.APPLY_RESIST_EARTH : localemg.TOOLTIP_RESIST_EARTH,
- item.APPLY_RESIST_DARK : localemg.TOOLTIP_RESIST_DARK,
- item.APPLY_ANTI_CRITICAL_PCT : localemg.TOOLTIP_ANTI_CRITICAL_PCT,
- item.APPLY_ANTI_PENETRATE_PCT : localemg.TOOLTIP_ANTI_PENETRATE_PCT,
- }
- ATTRIBUTE_NEED_WIDTH = {
- 23 : 230,
- 24 : 230,
- 25 : 230,
- 26 : 220,
- 27 : 210,
- 35 : 210,
- 36 : 210,
- 37 : 210,
- 38 : 210,
- 39 : 210,
- 40 : 210,
- 41 : 210,
- 42 : 220,
- 43 : 230,
- 45 : 230,
- }
- ANTI_FLAG_DICT = {
- 0 : item.ITEM_ANTIFLAG_WARRIOR,
- 1 : item.ITEM_ANTIFLAG_ASSASSIN,
- 2 : item.ITEM_ANTIFLAG_SURA,
- 3 : item.ITEM_ANTIFLAG_SHAMAN,
- }
- FONT_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0)
- def __init__(self, *args, **kwargs):
- ToolTip.__init__(self, *args, **kwargs)
- self.itemVnum = 0
- self.isShopItem = False
- self.isOfflineShopItem = False
- # ??? ??? ??? ? ?? ???? ??? ? ?? ?????? ??? Disable Color? ?? (?? ??? ???? ??? ?? ? ??? ???)
- self.bCannotUseItemForceSetDisableColor = True
- def __del__(self):
- ToolTip.__del__(self)
- def SetCannotUseItemForceSetDisableColor(self, enable):
- self.bCannotUseItemForceSetDisableColor = enable
- def CanEquip(self):
- if not item.IsEquipmentVID(self.itemVnum):
- return True
- race = player.GetRace()
- job = chr.RaceToJob(race)
- if not self.ANTI_FLAG_DICT.has_key(job):
- return False
- if item.IsAntiFlag(self.ANTI_FLAG_DICT[job]):
- return False
- sex = chr.RaceToSex(race)
- MALE = 1
- FEMALE = 0
- if item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE) and sex == MALE:
- return False
- if item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE) and sex == FEMALE:
- return False
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_LEVEL == limitType:
- if player.GetStatus(player.LEVEL) < limitValue:
- return False
- """
- elif item.LIMIT_STR == limitType:
- if player.GetStatus(player.ST) < limitValue:
- return False
- elif item.LIMIT_DEX == limitType:
- if player.GetStatus(player.DX) < limitValue:
- return False
- elif item.LIMIT_INT == limitType:
- if player.GetStatus(player.IQ) < limitValue:
- return False
- elif item.LIMIT_CON == limitType:
- if player.GetStatus(player.HT) < limitValue:
- return False
- """
- return True
- def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = True):
- if not self.CanEquip() and self.bCannotUseItemForceSetDisableColor:
- color = self.DISABLE_COLOR
- return ToolTip.AppendTextLine(self, text, color, centerAlign)
- def ClearToolTip(self):
- self.isShopItem = False
- self.isOfflineShopItem = False
- self.toolTipWidth = self.TOOL_TIP_WIDTH
- ToolTip.ClearToolTip(self)
- def SetInventoryItem(self, slotIndex, window_type = player.INVENTORY):
- itemVnum = player.GetItemIndex(window_type, slotIndex)
- if 0 == itemVnum:
- return
- self.ClearToolTip()
- if shop.IsOpen():
- if not shop.IsPrivateShop() or not shop.IsOfflineShop():
- item.SelectItem(itemVnum)
- self.AppendSellingPrice(player.GetISellItemPrice(window_type, slotIndex))
- metinSlot = [player.GetItemMetinSocket(window_type, slotIndex, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)]
- attrSlot = [player.GetItemAttribute(window_type, slotIndex, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- if app.ENABLE_SEND_TARGET_INFO:
- def SetItemToolTipStone(self, itemVnum):
- self.itemVnum = itemVnum
- item.SelectItem(itemVnum)
- itemType = item.GetItemType()
- itemDesc = item.GetItemDescription()
- itemSummary = item.GetItemSummary()
- attrSlot = 0
- self.__AdjustMaxWidth(attrSlot, itemDesc)
- itemName = item.GetItemName()
- realName = itemName[:itemName.find("+")]
- self.SetTitle(realName + " +0 - +4")
- ## Description ###
- self.AppendDescription(itemDesc, 26)
- self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR)
- if item.ITEM_TYPE_METIN == itemType:
- self.AppendMetinInformation()
- self.AppendMetinWearInformation()
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME_START_FIRST_USE == limitType:
- self.AppendRealTimeStartFirstUseLastTime(item, metinSlot, i)
- elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
- self.AppendTimerBasedOnWearLastTime(metinSlot)
- self.ShowToolTip()
- def SetOfflineShopBuilderItem(self, invenType, invenPos, offlineShopIndex):
- itemVnum = player.GetItemIndex(invenType, invenPos)
- if (itemVnum == 0):
- return
- item.SelectItem(itemVnum)
- self.ClearToolTip()
- self.AppendSellingPrice(shop.GetOfflineShopItemPrice2(invenType, invenPos))
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(player.GetItemMetinSocket(invenPos, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(player.GetItemAttribute(invenPos, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def SetOfflineShopItem(self, slotIndex):
- itemVnum = shop.GetOfflineShopItemID(slotIndex)
- if (itemVnum == 0):
- return
- price = shop.GetOfflineShopItemPrice(slotIndex)
- self.ClearToolTip()
- self.isOfflineShopItem = True
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(shop.GetOfflineShopItemMetinSocket(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(shop.GetOfflineShopItemAttribute(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- self.AppendPrice(price)
- def SetShopItem(self, slotIndex):
- itemVnum = shop.GetItemID(slotIndex)
- if 0 == itemVnum:
- return
- price = shop.GetItemPrice(slotIndex)
- self.ClearToolTip()
- self.isShopItem = True
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(shop.GetItemMetinSocket(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(shop.GetItemAttribute(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- self.AppendPrice(price)
- def SetShopItemBySecondaryCoin(self, slotIndex):
- itemVnum = shop.GetItemID(slotIndex)
- if 0 == itemVnum:
- return
- price = shop.GetItemPrice(slotIndex)
- self.ClearToolTip()
- self.isShopItem = True
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(shop.GetItemMetinSocket(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(shop.GetItemAttribute(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- self.AppendPriceBySecondaryCoin(price)
- def SetExchangeOwnerItem(self, slotIndex):
- itemVnum = exchange.GetItemVnumFromSelf(slotIndex)
- if 0 == itemVnum:
- return
- self.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(exchange.GetItemMetinSocketFromSelf(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(exchange.GetItemAttributeFromSelf(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def SetExchangeTargetItem(self, slotIndex):
- itemVnum = exchange.GetItemVnumFromTarget(slotIndex)
- if 0 == itemVnum:
- return
- self.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(exchange.GetItemMetinSocketFromTarget(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(exchange.GetItemAttributeFromTarget(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def SetPrivateShopBuilderItem(self, invenType, invenPos, privateShopSlotIndex):
- itemVnum = player.GetItemIndex(invenType, invenPos)
- if 0 == itemVnum:
- return
- item.SelectItem(itemVnum)
- self.ClearToolTip()
- self.AppendSellingPrice(shop.GetPrivateShopItemPrice(invenType, invenPos))
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(player.GetItemMetinSocket(invenPos, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(player.GetItemAttribute(invenPos, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def SetEditPrivateShopItem(self, invenType, invenPos, price):
- itemVnum = player.GetItemIndex(invenType, invenPos)
- if 0 == itemVnum:
- return
- item.SelectItem(itemVnum)
- self.ClearToolTip()
- self.AppendSellingPrice(price)
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(player.GetItemMetinSocket(invenPos, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(player.GetItemAttribute(invenPos, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def SetSafeBoxItem(self, slotIndex):
- itemVnum = safebox.GetItemID(slotIndex)
- if 0 == itemVnum:
- return
- self.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(safebox.GetItemMetinSocket(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(safebox.GetItemAttribute(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot, safebox.GetItemFlags(slotIndex))
- def SetMallItem(self, slotIndex):
- itemVnum = safebox.GetMallItemID(slotIndex)
- if 0 == itemVnum:
- return
- self.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(safebox.GetMallItemMetinSocket(slotIndex, i))
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(safebox.GetMallItemAttribute(slotIndex, i))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def SetItemToolTip(self, itemVnum):
- self.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(0)
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append((0, 0))
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def __AppendAttackSpeedInfo(self, item):
- atkSpd = item.GetValue(0)
- if atkSpd < 80:
- stSpd = localemg.TOOLTIP_ITEM_VERY_FAST
- elif atkSpd <= 95:
- stSpd = localemg.TOOLTIP_ITEM_FAST
- elif atkSpd <= 105:
- stSpd = localemg.TOOLTIP_ITEM_NORMAL
- elif atkSpd <= 120:
- stSpd = localemg.TOOLTIP_ITEM_SLOW
- else:
- stSpd = localemg.TOOLTIP_ITEM_VERY_SLOW
- self.AppendTextLine(localemg.TOOLTIP_ITEM_ATT_SPEED % stSpd, self.NORMAL_COLOR)
- def __AppendAttackGradeInfo(self):
- atkGrade = item.GetValue(1)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_ATT_GRADE % atkGrade, self.GetChangeTextLineColor(atkGrade))
- def __AppendAttackPowerInfo(self):
- minPower = item.GetValue(3)
- maxPower = item.GetValue(4)
- addPower = item.GetValue(5)
- if maxPower > minPower:
- self.AppendTextLine(localemg.TOOLTIP_ITEM_ATT_POWER % (minPower+addPower, maxPower+addPower), self.POSITIVE_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_ITEM_ATT_POWER_ONE_ARG % (minPower+addPower), self.POSITIVE_COLOR)
- def __AppendMagicAttackInfo(self):
- minMagicAttackPower = item.GetValue(1)
- maxMagicAttackPower = item.GetValue(2)
- addPower = item.GetValue(5)
- if minMagicAttackPower > 0 or maxMagicAttackPower > 0:
- if maxMagicAttackPower > minMagicAttackPower:
- self.AppendTextLine(localemg.TOOLTIP_ITEM_MAGIC_ATT_POWER % (minMagicAttackPower+addPower, maxMagicAttackPower+addPower), self.POSITIVE_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_ITEM_MAGIC_ATT_POWER_ONE_ARG % (minMagicAttackPower+addPower), self.POSITIVE_COLOR)
- def __AppendMagicDefenceInfo(self):
- magicDefencePower = item.GetValue(0)
- if magicDefencePower > 0:
- self.AppendTextLine(localemg.TOOLTIP_ITEM_MAGIC_DEF_POWER % magicDefencePower, self.GetChangeTextLineColor(magicDefencePower))
- def __AppendAttributeInformation(self, attrSlot):
- if 0 != attrSlot:
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- type = attrSlot[i][0]
- value = attrSlot[i][1]
- if 0 == value:
- continue
- affectString = self.__GetAffectString(type, value)
- if affectString:
- affectColor = self.__GetAttributeColor(i, value)
- self.AppendTextLine(affectString, affectColor)
- def __AppendAcceAttributeInformation(self, attrSlot):
- if 0 != attrSlot:
- hasAttack = 0
- hasMagicAttack = 0
- minPower = 0
- maxPower = 0
- minMagicAttackPower = 0
- maxMagicAttackPower = 0
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- if i <= 6:
- continue
- else:
- type = attrSlot[i][0]
- value = attrSlot[i][1]
- if 0 == value:
- continue
- if type == 53 and i == 8:
- hasAttack = 1
- minPower = value
- elif type == 53 and i == 9:
- hasAttack = 1
- maxPower = value
- elif type == 55 and i == 10:
- hasMagicAttack = 1
- minMagicAttackPower = value
- elif type == 55 and i == 11:
- hasMagicAttack = 1
- maxMagicAttackPower = value
- if hasAttack == 1:
- self.__AppendAttackAccePowerInfo(minPower, maxPower)
- if hasMagicAttack == 1:
- self.__AppendMagicAttackAcceInfo(minMagicAttackPower, maxMagicAttackPower)
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- if i <= 6 or i >= 8 and i <= 11:
- continue
- else:
- type = attrSlot[i][0]
- value = attrSlot[i][1]
- if 0 == value:
- continue
- affectString = self.__GetAffectString(type, value)
- if affectString:
- affectColor = self.__GetAttributeColor(i, value)
- self.AppendTextLine(affectString, affectColor)
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- if i >= 7:
- continue
- else:
- type = attrSlot[i][0]
- value = attrSlot[i][1]
- if 0 == value:
- continue
- affectString = self.__GetAffectString(type, value)
- if affectString:
- affectColor = self.__GetAttributeColor(i, value)
- self.AppendTextLine(affectString, affectColor)
- def __AppendAttackAccePowerInfo(self, minPower, maxPower):
- minPower_final = minPower
- maxPower_final = maxPower
- if maxPower > minPower:
- self.AppendTextLine(locale.TOOLTIP_ITEM_ATT_POWER % (minPower_final, maxPower_final), self.POSITIVE_COLOR)
- else:
- self.AppendTextLine(locale.TOOLTIP_ITEM_ATT_POWER_ONE_ARG % (minPower_final), self.POSITIVE_COLOR)
- def __AppendMagicAttackAcceInfo(self, minMagicAttackPower, maxMagicAttackPower):
- minMagicAttackPower_final = minMagicAttackPower
- maxMagicAttackPower_final = maxMagicAttackPower
- if minMagicAttackPower_final > 0 or maxMagicAttackPower_final > 0:
- if maxMagicAttackPower_final > minMagicAttackPower_final:
- self.AppendTextLine(locale.TOOLTIP_ITEM_MAGIC_ATT_POWER % (minMagicAttackPower_final, maxMagicAttackPower_final), self.POSITIVE_COLOR)
- else:
- self.AppendTextLine(locale.TOOLTIP_ITEM_MAGIC_ATT_POWER_ONE_ARG % (minMagicAttackPower_final), self.POSITIVE_COLOR)
- def __GetAttributeColor(self, index, value):
- if value > 0:
- if index >= 5 and index <= 6:
- return self.SPECIAL_POSITIVE_COLOR2
- elif index >= 7:
- return self.POSITIVE_COLOR
- else:
- return self.SPECIAL_POSITIVE_COLOR
- elif value == 0:
- return self.NORMAL_COLOR
- else:
- return self.NEGATIVE_COLOR
- def __IsPolymorphItem(self, itemVnum):
- if itemVnum >= 70103 and itemVnum <= 70106:
- return 1
- return 0
- def __SetPolymorphItemTitle(self, monsterVnum):
- if localemg.IsVIETNAM():
- itemName =item.GetItemName()
- itemName+=" "
- itemName+=nonplayer.GetMonsterName(monsterVnum)
- else:
- itemName =nonplayer.GetMonsterName(monsterVnum)
- itemName+=" "
- itemName+=item.GetItemName()
- self.SetTitle(itemName)
- # def __SetNormalItemTitle(self):
- # self.SetTitle(item.GetItemName())
- def __SetNormalItemTitle(self):
- if app.ENABLE_SEND_TARGET_INFO:
- if self.isStone:
- itemName = item.GetItemName()
- realName = itemName[:itemName.find("+")]
- self.SetTitle(realName + " +0 - +4")
- else:
- self.SetTitle(item.GetItemName())
- else:
- self.SetTitle(item.GetItemName())
- def __SetSpecialItemTitle(self):
- self.AppendTextLine(item.GetItemName(), self.SPECIAL_TITLE_COLOR)
- def __SetItemTitle(self, itemVnum, metinSlot, attrSlot):
- if localemg.IsCANADA():
- if 72726 == itemVnum or 72730 == itemVnum:
- self.AppendTextLine(item.GetItemName(), grp.GenerateColor(1.0, 0.7843, 0.0, 1.0))
- return
- if self.__IsPolymorphItem(itemVnum):
- self.__SetPolymorphItemTitle(metinSlot[0])
- else:
- if self.__IsAttr(attrSlot):
- self.__SetSpecialItemTitle()
- return
- self.__SetNormalItemTitle()
- def __SetItemTitleDown(self, itemVnum, metinSlot, attrSlot):
- if itemVnum >= 1110 and itemVnum <= 1178:
- self.AppendTextLine("|cff880098[Legendarna Broń]")
- if itemVnum >= 5110 and itemVnum <= 5178:
- self.AppendTextLine("|cff880098[Legendarna Zbroja]")
- if itemVnum >= 10110 and itemVnum <= 10118:
- self.AppendTextLine("|cff880098[Legendarna Tarcza]")
- if itemVnum >= 11110 and itemVnum <= 11118:
- self.AppendTextLine("|cff880098[Legendarny Hełm]")
- if itemVnum >= 12110 and itemVnum <= 12118:
- self.AppendTextLine("|cff880098[Legendarne Buty]")
- if itemVnum >= 13110 and itemVnum <= 13118:
- self.AppendTextLine("|cff880098[Legendarne Kolczyki]")
- if itemVnum >= 14110 and itemVnum <= 14118:
- self.AppendTextLine("|cff880098[Legendarny Naszyjnik]")
- if itemVnum >= 15110 and itemVnum <= 15118:
- self.AppendTextLine("|cff880098[Legendarna Bransoletka]")
- if itemVnum >= 20401 and itemVnum <= 20414:
- self.AppendTextLine("|cffc75705[Legendarny Kamień")
- if itemVnum >= 21901 and itemVnum <= 21943:
- self.AppendTextLine("|cffed960c[Wzmocnienie EXP]")
- if itemVnum >= 21951 and itemVnum <= 21993:
- self.AppendTextLine("|cffedb00c[Wzmocnienie PVP]")
- if itemVnum >= 22001 and itemVnum <= 23072:
- self.AppendTextLine("|cffe7e927[Ulepszacz]")
- if itemVnum >= 26701 and itemVnum <= 26720:
- self.AppendTextLine("|cff11ff05[Item Shop]")
- if itemVnum >= 35701 and itemVnum <= 35717:
- self.AppendTextLine("|cff11ff05[Item Shop]")
- if itemVnum >= 46201 and itemVnum <= 46232:
- self.AppendTextLine("|cff11ff05[Item Shop]")
- if itemVnum >= 48201 and itemVnum <= 48239:
- self.AppendTextLine("|cff11ff05[Item Shop]")
- if itemVnum >= 100010 and itemVnum <= 174460:
- self.AppendTextLine("|cffff2e05[Smocza Alchemia]")
- if itemVnum >= 28001 and itemVnum <= 28028:
- self.AppendTextLine("|cff929292[Misja: Biolog]")
- if itemVnum >= 28201 and itemVnum <= 28322:
- self.AppendTextLine("|cff929292[Misja: Droga Życia]")
- if itemVnum >= 25521 and itemVnum <= 25523:
- self.AppendTextLine("|cffed960c[Szkatułka EXP]")
- if itemVnum >= 25531 and itemVnum <= 25533:
- self.AppendTextLine("|cffedb00c[Szkatułka PVP]")
- def __SetItemNamePlus(self, itemVnum):
- self.SetNamePlusItem(item.GetItemNamePlusItem())
- def __IsAttr(self, attrSlot):
- if not attrSlot:
- return False
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- type = attrSlot[i][0]
- if 0 != type:
- return True
- return False
- def AddRefineItemData(self, itemVnum, metinSlot, attrSlot = 0):
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlotData=metinSlot[i]
- if self.GetMetinItemIndex(metinSlotData) == constInfo.ERROR_METIN_STONE:
- metinSlot[i]=player.METIN_SOCKET_TYPE_SILVER
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- def AddItemData_Offline(self, itemVnum, itemDesc, itemSummary, metinSlot, attrSlot):
- self.__AdjustMaxWidth(attrSlot, itemDesc)
- self.__SetItemTitle(itemVnum, metinSlot, attrSlot)
- if self.__IsHair(itemVnum):
- self.__AppendHairIcon(itemVnum)
- ### Description ###
- self.AppendDescription(itemDesc, 26)
- self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR)
- def check_sigillo(self, item_vnum):
- for x in range(35301,35308):
- if x == item_vnum:
- return TRUE
- if item_vnum == 55801:
- return TRUE
- return FALSE
- def check_sigillo_baby(self, item_vnum):
- for x in range(36301,36304):
- if x == item_vnum:
- return TRUE
- if item_vnum == 55801:
- return TRUE
- return FALSE
- def AddItemData(self, itemVnum, metinSlot, attrSlot = 0, flags = 0, unbindTime = 0):
- self.itemVnum = itemVnum
- item.SelectItem(itemVnum)
- itemType = item.GetItemType()
- itemSubType = item.GetItemSubType()
- if 50026 == itemVnum:
- if 0 != metinSlot:
- name = item.GetItemName()
- if metinSlot[0] > 0:
- name += " "
- name += localemg.NumberToMoneyString(metinSlot[0])
- self.SetTitle(name)
- self.ShowToolTip()
- return
- '''
- ### Skill Book ###
- elif 50300 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILLBOOK_NAME, 1)
- self.ShowToolTip()
- return
- elif 70037 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- elif 70055 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- ###########################################################################################
- '''
- ### Skill Book ###
- if app.ENABLE_SEND_TARGET_INFO:
- if 50300 == itemVnum and not self.isBook:
- if 0 != metinSlot and not self.isBook:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILLBOOK_NAME, 1)
- self.ShowToolTip()
- elif self.isBook:
- self.SetTitle(item.GetItemName())
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- elif 70037 == itemVnum :
- if 0 != metinSlot and not self.isBook2:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- elif self.isBook2:
- self.SetTitle(item.GetItemName())
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- elif 70055 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- else:
- if 50300 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILLBOOK_NAME, 1)
- self.ShowToolTip()
- return
- elif 70037 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- elif 70055 == itemVnum:
- if 0 != metinSlot:
- self.__SetSkillBookToolTip(metinSlot[0], localemg.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
- self.AppendDescription(item.GetItemDescription(), 26)
- self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
- self.ShowToolTip()
- return
- ###########################################################################################
- itemDesc = item.GetItemDescription()
- itemSummary = item.GetItemSummary()
- isCostumeItem = 0
- isCostumeHair = 0
- isCostumeBody = 0
- isCostumeAcce = 0
- if app.ENABLE_COSTUME_SYSTEM:
- if item.ITEM_TYPE_COSTUME == itemType:
- isCostumeItem = 1
- isCostumeHair = item.COSTUME_TYPE_HAIR == itemSubType
- isCostumeBody = item.COSTUME_TYPE_BODY == itemSubType
- isCostumeAcce = item.COSTUME_TYPE_ACCE == itemSubType
- #dbg.TraceError("IS_COSTUME_ITEM! body(%d) hair(%d)" % (isCostumeBody, isCostumeHair))
- self.__AdjustMaxWidth(attrSlot, itemDesc)
- self.__SetItemTitle(itemVnum, metinSlot, attrSlot)
- ### NAME PLUS ITEM
- self.__SetItemNamePlus(itemVnum)
- ### Hair Preview Image ###
- if self.__IsHair(itemVnum):
- self.__AppendHairIcon(itemVnum)
- ### Description ###
- self.AppendDescription(itemDesc, 26)
- self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR)
- if self.check_sigillo(itemVnum) or itemVnum == 35152:
- if attrSlot[0][1] != 0:
- self.AppendSpace(5)
- self.AppendTextLine("Poziom: "+str(metinSlot[1]), self.NORMAL_COLOR)
- self.AppendTextLine("Punkty Życia: +"+pointop(str(attrSlot[0][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
- self.AppendTextLine("Punkty Energii: +"+pointop(str(attrSlot[2][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
- self.AppendTextLine("Obrona: +"+pointop(str(attrSlot[1][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
- self.AppendSpace(5)
- if itemVnum != 35152:
- days = (int(attrSlot[3][1])/60)/24
- hours = (int(attrSlot[3][1]) - (days*60*24)) / 60
- mins = int(attrSlot[3][1]) - (days*60*24) - (hours*60)
- self.AppendTextLine("Czas trwania: %d Dni %d Godzin %d Minut" % (days, hours, mins), self.SPECIAL_POSITIVE_COLOR)
- if self.check_sigillo_baby(itemVnum) or itemVnum == 36152:
- if attrSlot[0][1] != 0:
- self.AppendSpace(5)
- self.AppendTextLine("Poziom: "+str(metinSlot[1]), self.NORMAL_COLOR)
- self.AppendTextLine("Punkty Życia: +"+pointop(str(attrSlot[0][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
- self.AppendTextLine("Punkty Energii: +"+pointop(str(attrSlot[2][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
- self.AppendTextLine("Obrona: +"+pointop(str(attrSlot[1][1]))+"%", self.SPECIAL_POSITIVE_COLOR)
- self.AppendSpace(5)
- if itemVnum != 36152:
- days = (int(attrSlot[3][1])/60)/24
- hours = (int(attrSlot[3][1]) - (days*60*24)) / 60
- mins = int(attrSlot[3][1]) - (days*60*24) - (hours*60)
- self.AppendTextLine("Czas trwania: %d Dni %d Godzin %d Minut" % (days, hours, mins), self.SPECIAL_POSITIVE_COLOR)
- if app.ENABLE_TITLE_SYSTEM:
- if itemVnum in (constInfo.TITLE_SYSTEM_ITEM_1, constInfo.TITLE_SYSTEM_ITEM_2, constInfo.TITLE_SYSTEM_ITEM_3, constInfo.TITLE_SYSTEM_ITEM_4, constInfo.TITLE_SYSTEM_ITEM_5, constInfo.TITLE_SYSTEM_ITEM_6, constInfo.TITLE_SYSTEM_ITEM_7, constInfo.TITLE_SYSTEM_ITEM_8, constInfo.TITLE_SYSTEM_ITEM_9, constInfo.TITLE_SYSTEM_ITEM_10, constInfo.TITLE_SYSTEM_ITEM_11, constInfo.TITLE_SYSTEM_ITEM_12, constInfo.TITLE_SYSTEM_ITEM_13, constInfo.TITLE_SYSTEM_ITEM_14, constInfo.TITLE_SYSTEM_ITEM_15, constInfo.TITLE_SYSTEM_ITEM_16):
- potion_list = {
- constInfo.TITLE_SYSTEM_ITEM_1 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_1,],
- constInfo.TITLE_SYSTEM_ITEM_2 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_2,],
- constInfo.TITLE_SYSTEM_ITEM_3 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_3,],
- constInfo.TITLE_SYSTEM_ITEM_4 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_4,],
- constInfo.TITLE_SYSTEM_ITEM_5 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_5,],
- constInfo.TITLE_SYSTEM_ITEM_6 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_6,],
- constInfo.TITLE_SYSTEM_ITEM_7 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_7,],
- constInfo.TITLE_SYSTEM_ITEM_8 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_8,],
- constInfo.TITLE_SYSTEM_ITEM_9 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_9,],
- constInfo.TITLE_SYSTEM_ITEM_10 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_10,],
- constInfo.TITLE_SYSTEM_ITEM_11 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_11,],
- constInfo.TITLE_SYSTEM_ITEM_12 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_12,],
- constInfo.TITLE_SYSTEM_ITEM_13 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_13,],
- constInfo.TITLE_SYSTEM_ITEM_14 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_14,],
- constInfo.TITLE_SYSTEM_ITEM_15 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_15,],
- constInfo.TITLE_SYSTEM_ITEM_16 : ["Zwój ten nadaje Tytuł: %s" % localemg.TITLE_PREMIUM_16,]}
- self.AppendSpace(5)
- for i in xrange(len(potion_list[itemVnum])):
- self.AppendTextLine(potion_list[itemVnum][i], self.SPECIAL_POSITIVE_COLOR)
- if itemVnum >= 35501 and itemVnum <= 35999:
- self.__AppendAttributeInformation(attrSlot)
- if itemVnum >= 26501 and itemVnum <= 26999:
- self.__AppendAttributeInformation(attrSlot)
- if itemVnum >= 21401 and itemVnum <= 21699:
- self.__AppendLimitInformation()
- ### Weapon ###
- if item.ITEM_TYPE_WEAPON == itemType:
- self.__AppendLimitInformation()
- self.AppendSpace(5)
- ## ??? ?? ??? ?? ????.
- if item.WEAPON_FAN == itemSubType:
- self.__AppendMagicAttackInfo()
- self.__AppendAttackPowerInfo()
- else:
- self.__AppendAttackPowerInfo()
- self.__AppendMagicAttackInfo()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- self.AppendWearableInformation()
- self.__AppendMetinSlotInfo(metinSlot)
- ### Armor ###
- elif item.ITEM_TYPE_ARMOR == itemType:
- self.__AppendLimitInformation()
- ## ???
- defGrade = item.GetValue(1)
- defBonus = item.GetValue(5)*2 ## ??? ?? ?? ?? ??? ??
- if defGrade > 0:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_DEF_GRADE % (defGrade+defBonus), self.GetChangeTextLineColor(defGrade))
- self.__AppendMagicDefenceInfo()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- self.AppendWearableInformation()
- if itemSubType in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
- self.__AppendAccessoryMetinSlotInfo(metinSlot, constInfo.GET_ACCESSORY_MATERIAL_VNUM(itemVnum, itemSubType))
- else:
- self.__AppendMetinSlotInfo(metinSlot)
- ### Ring Slot Item (Not UNIQUE) ###
- elif item.ITEM_TYPE_RING == itemType:
- self.__AppendLimitInformation()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- #?? ?? ??? ???? ?? ?? ??
- #self.__AppendAccessoryMetinSlotInfo(metinSlot, 99001)
- ### Belt Item ###
- elif item.ITEM_TYPE_BELT == itemType:
- self.__AppendLimitInformation()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- self.__AppendAccessoryMetinSlotInfo(metinSlot, constInfo.GET_BELT_MATERIAL_VNUM(itemVnum))
- elif item.ITEM_TYPE_GLOVES == itemType:
- self.__AppendLimitInformation()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- elif item.ITEM_TYPE_TROUSERS == itemType:
- self.__AppendLimitInformation()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- elif item.ITEM_TYPE_LOLLIPOP == itemType:
- self.__AppendLimitInformation()
- self.__AppendAffectInformation()
- self.__AppendAttributeInformation(attrSlot)
- ## ??? ??? ##
- elif 0 != isCostumeItem:
- self.__AppendLimitInformation()
- self.__AppendAffectInformation()
- if isCostumeAcce != 0:
- self.__AppendAcceAttributeInformation(attrSlot)
- else:
- self.__AppendAttributeInformation(attrSlot)
- self.AppendWearableInformation()
- bHasRealtimeFlag = 0
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME == limitType:
- bHasRealtimeFlag = 1
- if 1 == bHasRealtimeFlag:
- self.AppendMallItemLastTime(metinSlot[0])
- if isCostumeAcce != 0:
- if metinSlot != 0:
- absChance = int(metinSlot[1])
- if absChance > 0:
- self.AppendSpace(5)
- self.AppendTextLine(locale.ACCE_ABSORB_CHANCE % (absChance), self.CONDITION_COLOR)
- ## Rod ##
- elif item.ITEM_TYPE_ROD == itemType:
- if 0 != metinSlot:
- curLevel = item.GetValue(0) / 10
- curEXP = metinSlot[0]
- maxEXP = item.GetValue(2)
- self.__AppendLimitInformation()
- self.__AppendRodInformation(curLevel, curEXP, maxEXP)
- ## Pick ##
- elif item.ITEM_TYPE_PICK == itemType:
- if 0 != metinSlot:
- curLevel = item.GetValue(0) / 10
- curEXP = metinSlot[0]
- maxEXP = item.GetValue(2)
- self.__AppendLimitInformation()
- self.__AppendPickInformation(curLevel, curEXP, maxEXP)
- ## Lottery ##
- elif item.ITEM_TYPE_LOTTERY == itemType:
- if 0 != metinSlot:
- ticketNumber = int(metinSlot[0])
- stepNumber = int(metinSlot[1])
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_LOTTERY_STEP_NUMBER % (stepNumber), self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_LOTTO_NUMBER % (ticketNumber), self.NORMAL_COLOR);
- ### Metin ###
- elif item.ITEM_TYPE_METIN == itemType:
- self.AppendMetinInformation()
- self.AppendMetinWearInformation()
- ### Fish ###
- elif item.ITEM_TYPE_FISH == itemType:
- if 0 != metinSlot:
- self.__AppendFishInfo(metinSlot[0])
- ## item.ITEM_TYPE_BLEND
- elif item.ITEM_TYPE_BLEND == itemType:
- self.__AppendLimitInformation()
- if metinSlot:
- affectType = metinSlot[0]
- affectValue = metinSlot[1]
- time = metinSlot[2]
- self.AppendSpace(5)
- affectText = self.__GetAffectString(affectType, affectValue)
- self.AppendTextLine(affectText, self.NORMAL_COLOR)
- if time > 0:
- minute = (time / 60)
- second = (time % 60)
- timeString = localemg.TOOLTIP_POTION_TIME
- if minute > 0:
- timeString += str(minute) + localemg.TOOLTIP_POTION_MIN
- if second > 0:
- timeString += " " + str(second) + localemg.TOOLTIP_POTION_SEC
- self.AppendTextLine(timeString)
- else:
- self.AppendTextLine(localemg.BLEND_POTION_NO_TIME)
- else:
- self.AppendTextLine("BLEND_POTION_NO_INFO")
- elif item.ITEM_TYPE_UNIQUE == itemType:
- if 0 != metinSlot:
- bHasRealtimeFlag = 0
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME == limitType:
- bHasRealtimeFlag = 1
- if 1 == bHasRealtimeFlag:
- self.AppendMallItemLastTime(metinSlot[0])
- else:
- time = metinSlot[player.METIN_SOCKET_MAX_NUM-1]
- if 1 == item.GetValue(2): ## ??? ?? Flag / ?? ??? ??
- self.AppendMallItemLastTime(time)
- else:
- self.AppendUniqueItemLastTime(time)
- ### Use ###
- elif item.ITEM_TYPE_USE == itemType:
- self.__AppendLimitInformation()
- if item.USE_POTION == itemSubType or item.USE_POTION_NODELAY == itemSubType:
- self.__AppendPotionInformation()
- elif item.USE_ABILITY_UP == itemSubType:
- self.__AppendAbilityPotionInformation()
- ## ?? ???
- if 27989 == itemVnum or 76006 == itemVnum:
- if 0 != metinSlot:
- useCount = int(metinSlot[0])
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_REST_USABLE_COUNT % (6 - useCount), self.NORMAL_COLOR)
- ## ??? ???
- elif 50004 == itemVnum:
- if 0 != metinSlot:
- useCount = int(metinSlot[0])
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_REST_USABLE_COUNT % (10 - useCount), self.NORMAL_COLOR)
- ## ????
- elif constInfo.IS_AUTO_POTION(itemVnum):
- if 0 != metinSlot:
- ## 0: ???, 1: ???, 2: ??
- isActivated = int(metinSlot[0])
- usedAmount = float(metinSlot[1])
- totalAmount = float(metinSlot[2])
- if 0 == totalAmount:
- totalAmount = 1
- self.AppendSpace(5)
- if 0 != isActivated:
- self.AppendTextLine("(%s)" % (localemg.TOOLTIP_AUTO_POTION_USING), self.SPECIAL_POSITIVE_COLOR)
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_AUTO_POTION_REST % (100.0 - ((usedAmount / totalAmount) * 100.0)), self.POSITIVE_COLOR)
- ## ?? ???
- elif itemVnum in WARP_SCROLLS:
- if 0 != metinSlot:
- xPos = int(metinSlot[0])
- yPos = int(metinSlot[1])
- if xPos != 0 and yPos != 0:
- (mapName, xBase, yBase) = background.GlobalPositionToMapInfo(xPos, yPos)
- localeMapName=localemg.MINIMAP_ZONE_NAME_DICT.get(mapName, "")
- self.AppendSpace(5)
- if localeMapName!="":
- self.AppendTextLine(localemg.TOOLTIP_MEMORIZED_POSITION % (localeMapName, int(xPos-xBase)/100, int(yPos-yBase)/100), self.NORMAL_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_MEMORIZED_POSITION_ERROR % (int(xPos)/100, int(yPos)/100), self.NORMAL_COLOR)
- dbg.TraceError("NOT_EXIST_IN_MINIMAP_ZONE_NAME_DICT: %s" % mapName)
- #####
- if item.USE_SPECIAL == itemSubType:
- bHasRealtimeFlag = 0
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME == limitType:
- bHasRealtimeFlag = 1
- ## ??? ?? ??? ???. ex) ?? ?? : 6? 6?? 58?
- if 1 == bHasRealtimeFlag:
- self.AppendMallItemLastTime(metinSlot[0])
- else:
- # ... ??... ???? ?? ?? ?? ??? ???...
- # ? ??? ??? ??? ??? ?? ??...
- if 0 != metinSlot:
- time = metinSlot[player.METIN_SOCKET_MAX_NUM-1]
- ## ??? ?? Flag
- if 1 == item.GetValue(2):
- self.AppendMallItemLastTime(time)
- elif item.USE_TIME_CHARGE_PER == itemSubType:
- bHasRealtimeFlag = 0
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME == limitType:
- bHasRealtimeFlag = 1
- if metinSlot[2]:
- self.AppendTextLine(localemg.TOOLTIP_TIME_CHARGER_PER(metinSlot[2]))
- else:
- self.AppendTextLine(localemg.TOOLTIP_TIME_CHARGER_PER(item.GetValue(0)))
- ## ??? ?? ??? ???. ex) ?? ?? : 6? 6?? 58?
- if 1 == bHasRealtimeFlag:
- self.AppendMallItemLastTime(metinSlot[0])
- elif item.USE_TIME_CHARGE_FIX == itemSubType:
- bHasRealtimeFlag = 0
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME == limitType:
- bHasRealtimeFlag = 1
- if metinSlot[2]:
- self.AppendTextLine(localemg.TOOLTIP_TIME_CHARGER_FIX(metinSlot[2]))
- else:
- self.AppendTextLine(localemg.TOOLTIP_TIME_CHARGER_FIX(item.GetValue(0)))
- ## ??? ?? ??? ???. ex) ?? ?? : 6? 6?? 58?
- if 1 == bHasRealtimeFlag:
- self.AppendMallItemLastTime(metinSlot[0])
- elif item.ITEM_TYPE_QUEST == itemType:
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if item.LIMIT_REAL_TIME == limitType:
- self.AppendMallItemLastTime(metinSlot[0])
- elif item.ITEM_TYPE_DS == itemType:
- self.AppendTextLine(self.__DragonSoulInfoString(itemVnum))
- self.__AppendAttributeInformation(attrSlot)
- else:
- self.__AppendLimitInformation()
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- #dbg.TraceError("LimitType : %d, limitValue : %d" % (limitType, limitValue))
- if item.LIMIT_REAL_TIME_START_FIRST_USE == limitType:
- self.AppendRealTimeStartFirstUseLastTime(item, metinSlot, i)
- #dbg.TraceError("2) REAL_TIME_START_FIRST_USE flag On ")
- elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
- self.AppendTimerBasedOnWearLastTime(metinSlot)
- #dbg.TraceError("1) REAL_TIME flag On ")
- self.__SetItemTitleDown(itemVnum, metinSlot, attrSlot)
- self.ShowToolTip()
- def __DragonSoulInfoString (self, dwVnum):
- step = (dwVnum / 100) % 10
- refine = (dwVnum / 10) % 10
- if 0 == step:
- return localemg.DRAGON_SOUL_STEP_LEVEL1 + " " + localemg.DRAGON_SOUL_STRENGTH(refine)
- elif 1 == step:
- return localemg.DRAGON_SOUL_STEP_LEVEL2 + " " + localemg.DRAGON_SOUL_STRENGTH(refine)
- elif 2 == step:
- return localemg.DRAGON_SOUL_STEP_LEVEL3 + " " + localemg.DRAGON_SOUL_STRENGTH(refine)
- elif 3 == step:
- return localemg.DRAGON_SOUL_STEP_LEVEL4 + " " + localemg.DRAGON_SOUL_STRENGTH(refine)
- elif 4 == step:
- return localemg.DRAGON_SOUL_STEP_LEVEL5 + " " + localemg.DRAGON_SOUL_STRENGTH(refine)
- else:
- return ""
- ## ?????
- def __IsHair(self, itemVnum):
- return (self.__IsOldHair(itemVnum) or
- self.__IsNewHair(itemVnum) or
- self.__IsNewHair2(itemVnum) or
- self.__IsNewHair3(itemVnum) or
- self.__IsCostumeHair(itemVnum)
- )
- def __IsOldHair(self, itemVnum):
- return itemVnum > 73000 and itemVnum < 74000
- def __IsNewHair(self, itemVnum):
- return itemVnum > 74000 and itemVnum < 75000
- def __IsNewHair2(self, itemVnum):
- return itemVnum > 75000 and itemVnum < 76000
- def __IsNewHair3(self, itemVnum):
- return ((74012 < itemVnum and itemVnum < 74022) or
- (74262 < itemVnum and itemVnum < 74272) or
- (74512 < itemVnum and itemVnum < 74522) or
- (74762 < itemVnum and itemVnum < 74772) or
- (45000 < itemVnum and itemVnum < 47000))
- def __IsCostumeHair(self, itemVnum):
- return app.ENABLE_COSTUME_SYSTEM and self.__IsNewHair3(itemVnum - 100000)
- def __AppendHairIcon(self, itemVnum):
- itemImage = uimg.ImageBox()
- itemImage.SetParent(self)
- itemImage.Show()
- if self.__IsOldHair(itemVnum):
- itemImage.LoadImage("d:/ymir work/item/quest/"+str(itemVnum)+".tga")
- elif self.__IsNewHair3(itemVnum):
- itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum))
- elif self.__IsNewHair(itemVnum): # ?? ?? ??? ????? ????. ??? ???? 1000?? ??? ???.
- itemImage.LoadImage("d:/ymir work/item/quest/"+str(itemVnum-1000)+".tga")
- elif self.__IsNewHair2(itemVnum):
- itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum))
- elif self.__IsCostumeHair(itemVnum):
- itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum - 100000))
- itemImage.SetPosition(itemImage.GetWidth()/2, self.toolTipHeight)
- self.toolTipHeight += itemImage.GetHeight()
- #self.toolTipWidth += itemImage.GetWidth()/2
- self.childrenList.append(itemImage)
- self.ResizeToolTip()
- ## ???? ? Description ? ?? ?? ???? ????
- def __AdjustMaxWidth(self, attrSlot, desc):
- newToolTipWidth = self.toolTipWidth
- newToolTipWidth = max(self.__AdjustAttrMaxWidth(attrSlot), newToolTipWidth)
- newToolTipWidth = max(self.__AdjustDescMaxWidth(desc), newToolTipWidth)
- if newToolTipWidth > self.toolTipWidth:
- self.toolTipWidth = newToolTipWidth
- self.ResizeToolTip()
- def __AdjustAttrMaxWidth(self, attrSlot):
- if 0 == attrSlot:
- return self.toolTipWidth
- maxWidth = self.toolTipWidth
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- type = attrSlot[i][0]
- value = attrSlot[i][1]
- if self.ATTRIBUTE_NEED_WIDTH.has_key(type):
- if value > 0:
- maxWidth = max(self.ATTRIBUTE_NEED_WIDTH[type], maxWidth)
- # ATTR_CHANGE_TOOLTIP_WIDTH
- #self.toolTipWidth = max(self.ATTRIBUTE_NEED_WIDTH[type], self.toolTipWidth)
- #self.ResizeToolTip()
- # END_OF_ATTR_CHANGE_TOOLTIP_WIDTH
- return maxWidth
- def __AdjustDescMaxWidth(self, desc):
- if len(desc) < DESC_DEFAULT_MAX_COLS:
- return self.toolTipWidth
- return DESC_WESTERN_MAX_WIDTH
- def __SetSkillBookToolTip(self, skillIndex, bookName, skillGrade):
- skillName = skill.GetSkillName(skillIndex)
- if not skillName:
- return
- if localemg.IsVIETNAM():
- itemName = bookName + " " + skillName
- else:
- itemName = skillName + " " + bookName
- self.SetTitle(itemName)
- def __AppendPickInformation(self, curLevel, curEXP, maxEXP):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_PICK_LEVEL % (curLevel), self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_PICK_EXP % (curEXP, maxEXP), self.NORMAL_COLOR)
- if curEXP == maxEXP:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_PICK_UPGRADE1, self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_PICK_UPGRADE2, self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_PICK_UPGRADE3, self.NORMAL_COLOR)
- def __AppendRodInformation(self, curLevel, curEXP, maxEXP):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_FISHINGROD_LEVEL % (curLevel), self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_FISHINGROD_EXP % (curEXP, maxEXP), self.NORMAL_COLOR)
- if curEXP == maxEXP:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_FISHINGROD_UPGRADE1, self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_FISHINGROD_UPGRADE2, self.NORMAL_COLOR)
- self.AppendTextLine(localemg.TOOLTIP_FISHINGROD_UPGRADE3, self.NORMAL_COLOR)
- def __AppendLimitInformation(self):
- appendSpace = False
- for i in xrange(item.LIMIT_MAX_NUM):
- (limitType, limitValue) = item.GetLimit(i)
- if limitValue > 0:
- if False == appendSpace:
- self.AppendSpace(5)
- appendSpace = True
- else:
- continue
- if item.LIMIT_LEVEL == limitType:
- color = self.GetLimitTextLineColor(player.GetStatus(player.LEVEL), limitValue)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_LIMIT_LEVEL % (limitValue), color)
- """
- elif item.LIMIT_STR == limitType:
- color = self.GetLimitTextLineColor(player.GetStatus(player.ST), limitValue)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_LIMIT_STR % (limitValue), color)
- elif item.LIMIT_DEX == limitType:
- color = self.GetLimitTextLineColor(player.GetStatus(player.DX), limitValue)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_LIMIT_DEX % (limitValue), color)
- elif item.LIMIT_INT == limitType:
- color = self.GetLimitTextLineColor(player.GetStatus(player.IQ), limitValue)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_LIMIT_INT % (limitValue), color)
- elif item.LIMIT_CON == limitType:
- color = self.GetLimitTextLineColor(player.GetStatus(player.HT), limitValue)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_LIMIT_CON % (limitValue), color)
- """
- def __GetAffectString(self, affectType, affectValue):
- if 0 == affectType:
- return None
- if 0 == affectValue:
- return None
- try:
- return self.AFFECT_DICT[affectType](affectValue)
- except TypeError:
- return "UNKNOWN_VALUE[%s] %s" % (affectType, affectValue)
- except KeyError:
- return "UNKNOWN_TYPE[%s] %s" % (affectType, affectValue)
- def __AppendAffectInformation(self):
- for i in xrange(item.ITEM_APPLY_MAX_NUM):
- (affectType, affectValue) = item.GetAffect(i)
- affectString = self.__GetAffectString(affectType, affectValue)
- if affectString:
- self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue))
- def AppendWearableInformation(self):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_WEARABLE_JOB, self.NORMAL_COLOR)
- flagList = (
- not item.IsAntiFlag(item.ITEM_ANTIFLAG_WARRIOR),
- not item.IsAntiFlag(item.ITEM_ANTIFLAG_ASSASSIN),
- not item.IsAntiFlag(item.ITEM_ANTIFLAG_SURA),
- not item.IsAntiFlag(item.ITEM_ANTIFLAG_SHAMAN))
- characterNames = ""
- for i in xrange(self.CHARACTER_COUNT):
- name = self.CHARACTER_NAMES[i]
- flag = flagList[i]
- if flag:
- characterNames += " "
- characterNames += name
- textLine = self.AppendTextLine(characterNames, self.NORMAL_COLOR, True)
- textLine.SetFeather()
- if item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE):
- textLine = self.AppendTextLine(localemg.FOR_FEMALE, self.NORMAL_COLOR, True)
- textLine.SetFeather()
- if item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE):
- textLine = self.AppendTextLine(localemg.FOR_MALE, self.NORMAL_COLOR, True)
- textLine.SetFeather()
- def __AppendPotionInformation(self):
- self.AppendSpace(5)
- healHP = item.GetValue(0)
- healSP = item.GetValue(1)
- healStatus = item.GetValue(2)
- healPercentageHP = item.GetValue(3)
- healPercentageSP = item.GetValue(4)
- if healHP > 0:
- self.AppendTextLine(localemg.TOOLTIP_POTION_PLUS_HP_POINT % healHP, self.GetChangeTextLineColor(healHP))
- if healSP > 0:
- self.AppendTextLine(localemg.TOOLTIP_POTION_PLUS_SP_POINT % healSP, self.GetChangeTextLineColor(healSP))
- if healStatus != 0:
- self.AppendTextLine(localemg.TOOLTIP_POTION_CURE)
- if healPercentageHP > 0:
- self.AppendTextLine(localemg.TOOLTIP_POTION_PLUS_HP_PERCENT % healPercentageHP, self.GetChangeTextLineColor(healPercentageHP))
- if healPercentageSP > 0:
- self.AppendTextLine(localemg.TOOLTIP_POTION_PLUS_SP_PERCENT % healPercentageSP, self.GetChangeTextLineColor(healPercentageSP))
- def __AppendAbilityPotionInformation(self):
- self.AppendSpace(5)
- abilityType = item.GetValue(0)
- time = item.GetValue(1)
- point = item.GetValue(2)
- if abilityType == item.APPLY_ATT_SPEED:
- self.AppendTextLine(localemg.TOOLTIP_POTION_PLUS_ATTACK_SPEED % point, self.GetChangeTextLineColor(point))
- elif abilityType == item.APPLY_MOV_SPEED:
- self.AppendTextLine(localemg.TOOLTIP_POTION_PLUS_MOVING_SPEED % point, self.GetChangeTextLineColor(point))
- if time > 0:
- minute = (time / 60)
- second = (time % 60)
- timeString = localemg.TOOLTIP_POTION_TIME
- if minute > 0:
- timeString += str(minute) + localemg.TOOLTIP_POTION_MIN
- if second > 0:
- timeString += " " + str(second) + localemg.TOOLTIP_POTION_SEC
- self.AppendTextLine(timeString)
- def GetPriceColor(self, price):
- if price>=constInfo.HIGH_PRICE:
- return self.HIGH_PRICE_COLOR
- if price>=constInfo.MIDDLE_PRICE:
- return self.MIDDLE_PRICE_COLOR
- else:
- return self.LOW_PRICE_COLOR
- def AppendPrice(self, price):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_BUYPRICE % (localemg.NumberToMoneyString(price)), self.GetPriceColor(price))
- def AppendPriceBySecondaryCoin(self, price):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_BUYPRICE % (localemg.NumberToSecondaryCoinString(price)), self.GetPriceColor(price))
- def AppendSellingPrice(self, price):
- if item.IsAntiFlag(item.ITEM_ANTIFLAG_SELL):
- self.AppendTextLine(localemg.TOOLTIP_ANTI_SELL, self.DISABLE_COLOR)
- self.AppendSpace(5)
- else:
- self.AppendTextLine(localemg.TOOLTIP_SELLPRICE % (localemg.NumberToMoneyString(price)), self.GetPriceColor(price))
- self.AppendSpace(5)
- def AppendMetinInformation(self):
- affectType, affectValue = item.GetAffect(0)
- #affectType = item.GetValue(0)
- #affectValue = item.GetValue(1)
- affectString = self.__GetAffectString(affectType, affectValue)
- if affectString:
- self.AppendSpace(5)
- self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue))
- def AppendMetinWearInformation(self):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_SOCKET_REFINABLE_ITEM, self.NORMAL_COLOR)
- flagList = (item.IsWearableFlag(item.WEARABLE_BODY),
- item.IsWearableFlag(item.WEARABLE_HEAD),
- item.IsWearableFlag(item.WEARABLE_FOOTS),
- item.IsWearableFlag(item.WEARABLE_WRIST),
- item.IsWearableFlag(item.WEARABLE_WEAPON),
- item.IsWearableFlag(item.WEARABLE_NECK),
- item.IsWearableFlag(item.WEARABLE_EAR),
- item.IsWearableFlag(item.WEARABLE_UNIQUE),
- item.IsWearableFlag(item.WEARABLE_SHIELD),
- item.IsWearableFlag(item.WEARABLE_ARROW))
- wearNames = ""
- for i in xrange(self.WEAR_COUNT):
- name = self.WEAR_NAMES[i]
- flag = flagList[i]
- if flag:
- wearNames += " "
- wearNames += name
- textLine = uimg.TextLine()
- textLine.SetParent(self)
- textLine.SetFontName(self.defFontName)
- textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight)
- textLine.SetHorizontalAlignCenter()
- textLine.SetPackedFontColor(self.NORMAL_COLOR)
- textLine.SetText(wearNames)
- textLine.Show()
- self.childrenList.append(textLine)
- self.toolTipHeight += self.TEXT_LINE_HEIGHT
- self.ResizeToolTip()
- def GetMetinSocketType(self, number):
- if player.METIN_SOCKET_TYPE_NONE == number:
- return player.METIN_SOCKET_TYPE_NONE
- elif player.METIN_SOCKET_TYPE_SILVER == number:
- return player.METIN_SOCKET_TYPE_SILVER
- elif player.METIN_SOCKET_TYPE_GOLD == number:
- return player.METIN_SOCKET_TYPE_GOLD
- else:
- item.SelectItem(number)
- if item.METIN_NORMAL == item.GetItemSubType():
- return player.METIN_SOCKET_TYPE_SILVER
- elif item.METIN_GOLD == item.GetItemSubType():
- return player.METIN_SOCKET_TYPE_GOLD
- elif "USE_PUT_INTO_ACCESSORY_SOCKET" == item.GetUseType(number):
- return player.METIN_SOCKET_TYPE_SILVER
- elif "USE_PUT_INTO_RING_SOCKET" == item.GetUseType(number):
- return player.METIN_SOCKET_TYPE_SILVER
- elif "USE_PUT_INTO_BELT_SOCKET" == item.GetUseType(number):
- return player.METIN_SOCKET_TYPE_SILVER
- return player.METIN_SOCKET_TYPE_NONE
- def GetMetinItemIndex(self, number):
- if player.METIN_SOCKET_TYPE_SILVER == number:
- return 0
- if player.METIN_SOCKET_TYPE_GOLD == number:
- return 0
- return number
- def __AppendAccessoryMetinSlotInfo(self, metinSlot, mtrlVnum):
- ACCESSORY_SOCKET_MAX_SIZE = 3
- cur=min(metinSlot[0], ACCESSORY_SOCKET_MAX_SIZE)
- end=min(metinSlot[1], ACCESSORY_SOCKET_MAX_SIZE)
- affectType1, affectValue1 = item.GetAffect(0)
- affectList1=[0, max(1, affectValue1*10/100), max(2, affectValue1*20/100), max(3, affectValue1*40/100)]
- affectType2, affectValue2 = item.GetAffect(1)
- affectList2=[0, max(1, affectValue2*10/100), max(2, affectValue2*20/100), max(3, affectValue2*40/100)]
- mtrlPos=0
- mtrlList=[mtrlVnum]*cur+[player.METIN_SOCKET_TYPE_SILVER]*(end-cur)
- for mtrl in mtrlList:
- affectString1 = self.__GetAffectString(affectType1, affectList1[mtrlPos+1]-affectList1[mtrlPos])
- affectString2 = self.__GetAffectString(affectType2, affectList2[mtrlPos+1]-affectList2[mtrlPos])
- leftTime = 0
- if cur == mtrlPos+1:
- leftTime=metinSlot[2]
- self.__AppendMetinSlotInfo_AppendMetinSocketData(mtrlPos, mtrl, affectString1, affectString2, leftTime)
- mtrlPos+=1
- def __AppendMetinSlotInfo(self, metinSlot):
- if self.__AppendMetinSlotInfo_IsEmptySlotList(metinSlot):
- return
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- self.__AppendMetinSlotInfo_AppendMetinSocketData(i, metinSlot[i])
- def __AppendMetinSlotInfo_IsEmptySlotList(self, metinSlot):
- if 0 == metinSlot:
- return 1
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlotData=metinSlot[i]
- if 0 != self.GetMetinSocketType(metinSlotData):
- if 0 != self.GetMetinItemIndex(metinSlotData):
- return 0
- return 1
- def __AppendMetinSlotInfo_AppendMetinSocketData(self, index, metinSlotData, custumAffectString="", custumAffectString2="", leftTime=0):
- slotType = self.GetMetinSocketType(metinSlotData)
- itemIndex = self.GetMetinItemIndex(metinSlotData)
- if 0 == slotType:
- return
- self.AppendSpace(5)
- slotImage = uimg.ImageBox()
- slotImage.SetParent(self)
- slotImage.Show()
- ## Name
- nameTextLine = uimg.TextLine()
- nameTextLine.SetParent(self)
- nameTextLine.SetFontName(self.defFontName)
- nameTextLine.SetPackedFontColor(self.NORMAL_COLOR)
- nameTextLine.SetOutline()
- nameTextLine.SetFeather()
- nameTextLine.Show()
- self.childrenList.append(nameTextLine)
- if player.METIN_SOCKET_TYPE_SILVER == slotType:
- slotImage.LoadImage("d:/ymir work/ui/game/windows/metin_slot_silver.sub")
- elif player.METIN_SOCKET_TYPE_GOLD == slotType:
- slotImage.LoadImage("d:/ymir work/ui/game/windows/metin_slot_gold.sub")
- self.childrenList.append(slotImage)
- if localemg.IsARABIC():
- slotImage.SetPosition(self.toolTipWidth - slotImage.GetWidth() - 9, self.toolTipHeight-1)
- nameTextLine.SetPosition(self.toolTipWidth - 50, self.toolTipHeight + 2)
- else:
- slotImage.SetPosition(9, self.toolTipHeight-1)
- nameTextLine.SetPosition(50, self.toolTipHeight + 2)
- metinImage = uimg.ImageBox()
- metinImage.SetParent(self)
- metinImage.Show()
- self.childrenList.append(metinImage)
- if itemIndex:
- item.SelectItem(itemIndex)
- ## Image
- try:
- metinImage.LoadImage(item.GetIconImageFileName())
- except:
- dbg.TraceError("ItemToolTip.__AppendMetinSocketData() - Failed to find image file %d:%s" %
- (itemIndex, item.GetIconImageFileName())
- )
- nameTextLine.SetText(item.GetItemName())
- ## Affect
- affectTextLine = uimg.TextLine()
- affectTextLine.SetParent(self)
- affectTextLine.SetFontName(self.defFontName)
- affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
- affectTextLine.SetOutline()
- affectTextLine.SetFeather()
- affectTextLine.Show()
- if localemg.IsARABIC():
- metinImage.SetPosition(self.toolTipWidth - metinImage.GetWidth() - 10, self.toolTipHeight)
- affectTextLine.SetPosition(self.toolTipWidth - 50, self.toolTipHeight + 16 + 2)
- else:
- metinImage.SetPosition(10, self.toolTipHeight)
- affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2)
- if custumAffectString:
- affectTextLine.SetText(custumAffectString)
- elif itemIndex!=constInfo.ERROR_METIN_STONE:
- affectType, affectValue = item.GetAffect(0)
- affectString = self.__GetAffectString(affectType, affectValue)
- if affectString:
- affectTextLine.SetText(affectString)
- else:
- affectTextLine.SetText(localemg.TOOLTIP_APPLY_NOAFFECT)
- self.childrenList.append(affectTextLine)
- if custumAffectString2:
- affectTextLine = uimg.TextLine()
- affectTextLine.SetParent(self)
- affectTextLine.SetFontName(self.defFontName)
- affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
- affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2)
- affectTextLine.SetOutline()
- affectTextLine.SetFeather()
- affectTextLine.Show()
- affectTextLine.SetText(custumAffectString2)
- self.childrenList.append(affectTextLine)
- self.toolTipHeight += 16 + 2
- if 0 != leftTime:
- timeText = (localemg.LEFT_TIME + " : " + localemg.SecondToDHM(leftTime))
- timeTextLine = uimg.TextLine()
- timeTextLine.SetParent(self)
- timeTextLine.SetFontName(self.defFontName)
- timeTextLine.SetPackedFontColor(self.POSITIVE_COLOR)
- timeTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2)
- timeTextLine.SetOutline()
- timeTextLine.SetFeather()
- timeTextLine.Show()
- timeTextLine.SetText(timeText)
- self.childrenList.append(timeTextLine)
- self.toolTipHeight += 16 + 2
- else:
- nameTextLine.SetText(localemg.TOOLTIP_SOCKET_EMPTY)
- self.toolTipHeight += 35
- self.ResizeToolTip()
- def __AppendFishInfo(self, size):
- if size > 0:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_FISH_LEN % (float(size) / 100.0), self.NORMAL_COLOR)
- def AppendUniqueItemLastTime(self, restMin):
- restSecond = restMin*60
- self.AppendSpace(5)
- self.AppendTextLine(localemg.LEFT_TIME + " : " + localemg.SecondToDHM(restSecond), self.NORMAL_COLOR)
- def AppendMallItemLastTime(self, endTime):
- leftSec = max(0, endTime - app.GetGlobalTimeStamp())
- self.AppendSpace(5)
- self.AppendTextLine(localemg.LEFT_TIME + " : " + localemg.SecondToDHM(leftSec), self.NORMAL_COLOR)
- def AppendTimerBasedOnWearLastTime(self, metinSlot):
- if 0 == metinSlot[0]:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.CANNOT_USE, self.DISABLE_COLOR)
- else:
- endTime = app.GetGlobalTimeStamp() + metinSlot[0]
- self.AppendMallItemLastTime(endTime)
- def AppendRealTimeStartFirstUseLastTime(self, item, metinSlot, limitIndex):
- useCount = metinSlot[1]
- endTime = metinSlot[0]
- # ? ???? ????? Socket0? ?? ??(2012? 3? 1? 13? 01? ??..) ? ????.
- # ???? ???? Socket0? ??????(???? 600 ?? ?. ???)? ???? ? ??, 0??? Limit Value? ?? ??????? ????.
- if 0 == useCount:
- if 0 == endTime:
- (limitType, limitValue) = item.GetLimit(limitIndex)
- endTime = limitValue
- endTime += app.GetGlobalTimeStamp()
- self.AppendMallItemLastTime(endTime)
- class HyperlinkItemToolTip(ItemToolTip):
- def __init__(self):
- ItemToolTip.__init__(self, isPickable=True)
- def SetHyperlinkItem(self, tokens):
- minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM
- maxTokenCount = minTokenCount + 2 * player.ATTRIBUTE_SLOT_MAX_NUM
- if tokens and len(tokens) >= minTokenCount and len(tokens) <= maxTokenCount:
- head, vnum, flag = tokens[:3]
- itemVnum = int(vnum, 16)
- metinSlot = [int(metin, 16) for metin in tokens[3:6]]
- rests = tokens[6:]
- if rests:
- attrSlot = []
- rests.reverse()
- while rests:
- key = int(rests.pop(), 16)
- if rests:
- val = int(rests.pop())
- attrSlot.append((key, val))
- attrSlot += [(0, 0)] * (player.ATTRIBUTE_SLOT_MAX_NUM - len(attrSlot))
- else:
- attrSlot = [(0, 0)] * player.ATTRIBUTE_SLOT_MAX_NUM
- self.ClearToolTip()
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- ItemToolTip.OnUpdate(self)
- def OnUpdate(self):
- pass
- def OnMouseLeftButtonDown(self):
- self.Hide()
- class SkillToolTip(ToolTip):
- POINT_NAME_DICT = {
- player.LEVEL : localemg.SKILL_TOOLTIP_LEVEL,
- player.IQ : localemg.SKILL_TOOLTIP_INT,
- }
- SKILL_TOOL_TIP_WIDTH = 200
- PARTY_SKILL_TOOL_TIP_WIDTH = 340
- PARTY_SKILL_EXPERIENCE_AFFECT_LIST = ( ( 2, 2, 10,),
- ( 8, 3, 20,),
- (14, 4, 30,),
- (22, 5, 45,),
- (28, 6, 60,),
- (34, 7, 80,),
- (38, 8, 100,), )
- PARTY_SKILL_PLUS_GRADE_AFFECT_LIST = ( ( 4, 2, 1, 0,),
- (10, 3, 2, 0,),
- (16, 4, 2, 1,),
- (24, 5, 2, 2,), )
- PARTY_SKILL_ATTACKER_AFFECT_LIST = ( ( 36, 3, ),
- ( 26, 1, ),
- ( 32, 2, ), )
- SKILL_GRADE_NAME = { player.SKILL_GRADE_MASTER : localemg.SKILL_GRADE_NAME_MASTER,
- player.SKILL_GRADE_GRAND_MASTER : localemg.SKILL_GRADE_NAME_GRAND_MASTER,
- player.SKILL_GRADE_PERFECT_MASTER : localemg.SKILL_GRADE_NAME_PERFECT_MASTER, }
- AFFECT_NAME_DICT = {
- "HP" : localemg.TOOLTIP_SKILL_AFFECT_ATT_POWER,
- "ATT_GRADE" : localemg.TOOLTIP_SKILL_AFFECT_ATT_GRADE,
- "DEF_GRADE" : localemg.TOOLTIP_SKILL_AFFECT_DEF_GRADE,
- "ATT_SPEED" : localemg.TOOLTIP_SKILL_AFFECT_ATT_SPEED,
- "MOV_SPEED" : localemg.TOOLTIP_SKILL_AFFECT_MOV_SPEED,
- "DODGE" : localemg.TOOLTIP_SKILL_AFFECT_DODGE,
- "RESIST_NORMAL" : localemg.TOOLTIP_SKILL_AFFECT_RESIST_NORMAL,
- "REFLECT_MELEE" : localemg.TOOLTIP_SKILL_AFFECT_REFLECT_MELEE,
- }
- AFFECT_APPEND_TEXT_DICT = {
- "DODGE" : "%",
- "RESIST_NORMAL" : "%",
- "REFLECT_MELEE" : "%",
- }
- def __init__(self):
- ToolTip.__init__(self, self.SKILL_TOOL_TIP_WIDTH)
- def __del__(self):
- ToolTip.__del__(self)
- def SetSkill(self, skillIndex, skillLevel = -1):
- if 0 == skillIndex:
- return
- if skill.SKILL_TYPE_GUILD == skill.GetSkillType(skillIndex):
- if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth:
- self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH
- self.ResizeToolTip()
- self.AppendDefaultData(skillIndex)
- self.AppendSkillConditionData(skillIndex)
- self.AppendGuildSkillData(skillIndex, skillLevel)
- else:
- if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth:
- self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH
- self.ResizeToolTip()
- slotIndex = player.GetSkillSlotIndex(skillIndex)
- skillGrade = player.GetSkillGrade(slotIndex)
- skillLevel = player.GetSkillLevel(slotIndex)
- skillCurrentPercentage = player.GetSkillCurrentEfficientPercentage(slotIndex)
- skillNextPercentage = player.GetSkillNextEfficientPercentage(slotIndex)
- self.AppendDefaultData(skillIndex)
- self.AppendSkillConditionData(skillIndex)
- self.AppendSkillDataNew(slotIndex, skillIndex, skillGrade, skillLevel, skillCurrentPercentage, skillNextPercentage)
- self.AppendSkillRequirement(skillIndex, skillLevel)
- self.ShowToolTip()
- def SetSkillNew(self, slotIndex, skillIndex, skillGrade, skillLevel):
- if 0 == skillIndex:
- return
- if player.SKILL_INDEX_TONGSOL == skillIndex:
- slotIndex = player.GetSkillSlotIndex(skillIndex)
- skillLevel = player.GetSkillLevel(slotIndex)
- self.AppendDefaultData(skillIndex)
- self.AppendPartySkillData(skillGrade, skillLevel)
- elif player.SKILL_INDEX_RIDING == skillIndex:
- slotIndex = player.GetSkillSlotIndex(skillIndex)
- self.AppendSupportSkillDefaultData(skillIndex, skillGrade, skillLevel, 30)
- elif player.SKILL_INDEX_SUMMON == skillIndex:
- maxLevel = 10
- self.ClearToolTip()
- self.__SetSkillTitle(skillIndex, skillGrade)
- ## Description
- description = skill.GetSkillDescription(skillIndex)
- self.AppendDescription(description, 25)
- if skillLevel == 10:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR)
- self.AppendTextLine(localemg.SKILL_SUMMON_DESCRIPTION % (skillLevel*10), self.NORMAL_COLOR)
- else:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR)
- self.__AppendSummonDescription(skillLevel, self.NORMAL_COLOR)
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL % (skillLevel+1), self.NEGATIVE_COLOR)
- self.__AppendSummonDescription(skillLevel+1, self.NEGATIVE_COLOR)
- elif skill.SKILL_TYPE_GUILD == skill.GetSkillType(skillIndex):
- if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth:
- self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH
- self.ResizeToolTip()
- self.AppendDefaultData(skillIndex)
- self.AppendSkillConditionData(skillIndex)
- self.AppendGuildSkillData(skillIndex, skillLevel)
- elif skillIndex == 172 or skillIndex == 173 or skillIndex == 174:
- if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth:
- self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH
- self.ResizeToolTip()
- self.AppendDefaultData(skillIndex)
- self.AppendDrogaSkillData(skillIndex, skillLevel)
- else:
- if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth:
- self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH
- self.ResizeToolTip()
- slotIndex = player.GetSkillSlotIndex(skillIndex)
- skillCurrentPercentage = player.GetSkillCurrentEfficientPercentage(slotIndex)
- skillNextPercentage = player.GetSkillNextEfficientPercentage(slotIndex)
- self.AppendDefaultData(skillIndex, skillGrade)
- self.AppendSkillConditionData(skillIndex)
- self.AppendSkillDataNew(slotIndex, skillIndex, skillGrade, skillLevel, skillCurrentPercentage, skillNextPercentage)
- self.AppendSkillRequirement(skillIndex, skillLevel)
- self.ShowToolTip()
- def __SetSkillTitle(self, skillIndex, skillGrade):
- self.SetTitle(skill.GetSkillName(skillIndex, skillGrade))
- self.__AppendSkillGradeName(skillIndex, skillGrade)
- def __AppendSkillGradeName(self, skillIndex, skillGrade):
- if self.SKILL_GRADE_NAME.has_key(skillGrade):
- self.AppendSpace(5)
- self.AppendTextLine(self.SKILL_GRADE_NAME[skillGrade] % (skill.GetSkillName(skillIndex, 0)), self.CAN_LEVEL_UP_COLOR)
- def SetSkillOnlyName(self, slotIndex, skillIndex, skillGrade):
- if 0 == skillIndex:
- return
- slotIndex = player.GetSkillSlotIndex(skillIndex)
- self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH
- self.ResizeToolTip()
- self.ClearToolTip()
- self.__SetSkillTitle(skillIndex, skillGrade)
- self.AppendDefaultData(skillIndex, skillGrade)
- self.AppendSkillConditionData(skillIndex)
- self.ShowToolTip()
- def AppendDefaultData(self, skillIndex, skillGrade = 0):
- self.ClearToolTip()
- self.__SetSkillTitle(skillIndex, skillGrade)
- ## Level Limit
- levelLimit = skill.GetSkillLevelLimit(skillIndex)
- if levelLimit > 0:
- color = self.NORMAL_COLOR
- if player.GetStatus(player.LEVEL) < levelLimit:
- color = self.NEGATIVE_COLOR
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_ITEM_LIMIT_LEVEL % (levelLimit), color)
- ## Description
- description = skill.GetSkillDescription(skillIndex)
- self.AppendDescription(description, 25)
- def AppendSupportSkillDefaultData(self, skillIndex, skillGrade, skillLevel, maxLevel):
- self.ClearToolTip()
- self.__SetSkillTitle(skillIndex, skillGrade)
- ## Description
- description = skill.GetSkillDescription(skillIndex)
- self.AppendDescription(description, 25)
- if 1 == skillGrade:
- skillLevel += 19
- elif 2 == skillGrade:
- skillLevel += 29
- elif 3 == skillGrade:
- skillLevel = 50
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL_WITH_MAX % (skillLevel, maxLevel), self.NORMAL_COLOR)
- def AppendSkillConditionData(self, skillIndex):
- conditionDataCount = skill.GetSkillConditionDescriptionCount(skillIndex)
- if conditionDataCount > 0:
- self.AppendSpace(5)
- for i in xrange(conditionDataCount):
- self.AppendTextLine(skill.GetSkillConditionDescription(skillIndex, i), self.CONDITION_COLOR)
- def AppendGuildSkillData(self, skillIndex, skillLevel):
- if skillIndex >=163 and skillIndex <= 171:
- if skillIndex == 167:
- skillMaxLevel = 3
- elif skillIndex == 168:
- skillMaxLevel = 8
- else:
- skillMaxLevel = 1
- else:
- skillMaxLevel = 7
- skillCurrentPercentage = float(skillLevel) / float(skillMaxLevel)
- skillNextPercentage = float(skillLevel+1) / float(skillMaxLevel)
- ## Current Level
- if skillLevel > 0:
- if self.HasSkillLevelDescription(skillIndex, skillLevel):
- self.AppendSpace(5)
- if skillLevel == skillMaxLevel:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR)
- #####
- for i in xrange(skill.GetSkillAffectDescriptionCount(skillIndex)):
- self.AppendTextLine(skill.GetSkillAffectDescription(skillIndex, i, skillCurrentPercentage), self.ENABLE_COLOR)
- #chat.AppendChat(chat.CHAT_TYPE_INFO, "wyglad opisu to: " + str(skill.GetSkillAffectDescription(skillIndex, i, skillCurrentPercentage)))
- ## Cooltime
- coolTime = skill.GetSkillCoolTime(skillIndex, skillCurrentPercentage)
- if coolTime > 0:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_COOL_TIME + str(coolTime), self.ENABLE_COLOR)
- ## SP
- needGSP = skill.GetSkillNeedSP(skillIndex, skillCurrentPercentage)
- if needGSP > 0:
- self.AppendTextLine(localemg.TOOLTIP_NEED_GSP % (needGSP), self.ENABLE_COLOR)
- ## Next Level
- if skillLevel < skillMaxLevel:
- if self.HasSkillLevelDescription(skillIndex, skillLevel+1):
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_NEXT_SKILL_LEVEL_1 % (skillLevel+1, skillMaxLevel), self.DISABLE_COLOR)
- #####
- for i in xrange(skill.GetSkillAffectDescriptionCount(skillIndex)):
- self.AppendTextLine(skill.GetSkillAffectDescription(skillIndex, i, skillNextPercentage), self.DISABLE_COLOR)
- ## Cooltime
- coolTime = skill.GetSkillCoolTime(skillIndex, skillNextPercentage)
- if coolTime > 0:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_COOL_TIME + str(coolTime), self.DISABLE_COLOR)
- ## SP
- needGSP = skill.GetSkillNeedSP(skillIndex, skillNextPercentage)
- if needGSP > 0:
- self.AppendTextLine(localemg.TOOLTIP_NEED_GSP % (needGSP), self.DISABLE_COLOR)
- def AppendDrogaSkillData(self, skillIndex, skillLevel):
- skillMaxLevel = 14
- ## Current Level
- if skillLevel > 0:
- self.AppendSpace(5)
- if skillLevel == skillMaxLevel:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR)
- #####
- if skillIndex == 172:
- if skillLevel == 1:
- self.AppendTextLine("Sila +2", self.POSITIVE_COLOR)
- elif skillLevel == 2:
- self.AppendTextLine("Sila +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +1500", self.POSITIVE_COLOR)
- elif skillLevel == 3:
- self.AppendTextLine("Sila +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +2300", self.POSITIVE_COLOR)
- elif skillLevel == 4:
- self.AppendTextLine("Sila +4", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +2%", self.POSITIVE_COLOR)
- elif skillLevel == 5:
- self.AppendTextLine("Sila +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +4%", self.POSITIVE_COLOR)
- elif skillLevel == 6:
- self.AppendTextLine("Sila +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +3%", self.POSITIVE_COLOR)
- elif skillLevel == 7:
- self.AppendTextLine("Sila +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +5%", self.POSITIVE_COLOR)
- elif skillLevel == 8:
- self.AppendTextLine("Sila +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +2%", self.POSITIVE_COLOR)
- elif skillLevel == 9:
- self.AppendTextLine("Sila +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +4%", self.POSITIVE_COLOR)
- elif skillLevel == 10:
- self.AppendTextLine("Sila +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +2%", self.POSITIVE_COLOR)
- elif skillLevel == 11:
- self.AppendTextLine("Sila +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +4%", self.POSITIVE_COLOR)
- elif skillLevel == 12:
- self.AppendTextLine("Sila +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +5%", self.POSITIVE_COLOR)
- elif skillLevel == 13:
- self.AppendTextLine("Sila +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +2%", self.POSITIVE_COLOR)
- elif skillLevel == 14:
- self.AppendTextLine("Sila +10", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +6500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +5%", self.POSITIVE_COLOR)
- elif skillIndex == 173:
- if skillLevel == 1:
- self.AppendTextLine("Inteligencja +2", self.POSITIVE_COLOR)
- elif skillLevel == 2:
- self.AppendTextLine("Inteligencja +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +1500", self.POSITIVE_COLOR)
- elif skillLevel == 3:
- self.AppendTextLine("Inteligencja +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +2300", self.POSITIVE_COLOR)
- elif skillLevel == 4:
- self.AppendTextLine("Inteligencja +4", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +2%", self.POSITIVE_COLOR)
- elif skillLevel == 5:
- self.AppendTextLine("Inteligencja +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +4%", self.POSITIVE_COLOR)
- elif skillLevel == 6:
- self.AppendTextLine("Inteligencja +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +3%", self.POSITIVE_COLOR)
- elif skillLevel == 7:
- self.AppendTextLine("Inteligencja +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +5%", self.POSITIVE_COLOR)
- elif skillLevel == 8:
- self.AppendTextLine("Inteligencja +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +2%", self.POSITIVE_COLOR)
- elif skillLevel == 9:
- self.AppendTextLine("Inteligencja +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +4%", self.POSITIVE_COLOR)
- elif skillLevel == 10:
- self.AppendTextLine("Inteligencja +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +2%", self.POSITIVE_COLOR)
- elif skillLevel == 11:
- self.AppendTextLine("Inteligencja +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +4%", self.POSITIVE_COLOR)
- elif skillLevel == 12:
- self.AppendTextLine("Inteligencja +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +5%", self.POSITIVE_COLOR)
- elif skillLevel == 13:
- self.AppendTextLine("Inteligencja +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +2%", self.POSITIVE_COLOR)
- elif skillLevel == 14:
- self.AppendTextLine("Inteligencja +10", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +6500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +5%", self.POSITIVE_COLOR)
- elif skillIndex == 174:
- if skillLevel == 1:
- self.AppendTextLine("Zręczność +2", self.POSITIVE_COLOR)
- elif skillLevel == 2:
- self.AppendTextLine("Zręczność +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +1500", self.POSITIVE_COLOR)
- elif skillLevel == 3:
- self.AppendTextLine("Zręczność +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +2300", self.POSITIVE_COLOR)
- elif skillLevel == 4:
- self.AppendTextLine("Zręczność +4", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +2%", self.POSITIVE_COLOR)
- elif skillLevel == 5:
- self.AppendTextLine("Zręczność +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +4%", self.POSITIVE_COLOR)
- elif skillLevel == 6:
- self.AppendTextLine("Zręczność +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +3%", self.POSITIVE_COLOR)
- elif skillLevel == 7:
- self.AppendTextLine("Zręczność +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +5%", self.POSITIVE_COLOR)
- elif skillLevel == 8:
- self.AppendTextLine("Zręczność +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +2%", self.POSITIVE_COLOR)
- elif skillLevel == 9:
- self.AppendTextLine("Zręczność +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +4%", self.POSITIVE_COLOR)
- elif skillLevel == 10:
- self.AppendTextLine("Zręczność +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +2%", self.POSITIVE_COLOR)
- elif skillLevel == 11:
- self.AppendTextLine("Zręczność +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +4%", self.POSITIVE_COLOR)
- elif skillLevel == 12:
- self.AppendTextLine("Zręczność +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +5%", self.POSITIVE_COLOR)
- elif skillLevel == 13:
- self.AppendTextLine("Zręczność +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +2%", self.POSITIVE_COLOR)
- elif skillLevel == 14:
- self.AppendTextLine("Zręczność +10", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +6500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +5%", self.POSITIVE_COLOR)
- ## Next Level
- if skillLevel < skillMaxLevel:
- self.AppendSpace(5)
- self.AppendTextLine(localemg.TOOLTIP_NEXT_SKILL_LEVEL_1 % (skillLevel+1, skillMaxLevel), self.DISABLE_COLOR)
- #####
- skillLevelNext = skillLevel + 1
- if skillIndex == 172:
- if skillLevelNext == 1:
- self.AppendTextLine("Sila +2", self.POSITIVE_COLOR)
- elif skillLevelNext == 2:
- self.AppendTextLine("Sila +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +1500", self.POSITIVE_COLOR)
- elif skillLevelNext == 3:
- self.AppendTextLine("Sila +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +2300", self.POSITIVE_COLOR)
- elif skillLevelNext == 4:
- self.AppendTextLine("Sila +4", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 5:
- self.AppendTextLine("Sila +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 6:
- self.AppendTextLine("Sila +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +3%", self.POSITIVE_COLOR)
- elif skillLevelNext == 7:
- self.AppendTextLine("Sila +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +5%", self.POSITIVE_COLOR)
- elif skillLevelNext == 8:
- self.AppendTextLine("Sila +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 9:
- self.AppendTextLine("Sila +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 10:
- self.AppendTextLine("Sila +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 11:
- self.AppendTextLine("Sila +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 12:
- self.AppendTextLine("Sila +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +5%", self.POSITIVE_COLOR)
- elif skillLevelNext == 13:
- self.AppendTextLine("Sila +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 14:
- self.AppendTextLine("Sila +10", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +6500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +5%", self.POSITIVE_COLOR)
- elif skillIndex == 173:
- if skillLevelNext == 1:
- self.AppendTextLine("Inteligencja +2", self.POSITIVE_COLOR)
- elif skillLevelNext == 2:
- self.AppendTextLine("Inteligencja +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +1500", self.POSITIVE_COLOR)
- elif skillLevelNext == 3:
- self.AppendTextLine("Inteligencja +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +2300", self.POSITIVE_COLOR)
- elif skillLevelNext == 4:
- self.AppendTextLine("Inteligencja +4", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 5:
- self.AppendTextLine("Inteligencja +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 6:
- self.AppendTextLine("Inteligencja +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +3%", self.POSITIVE_COLOR)
- elif skillLevelNext == 7:
- self.AppendTextLine("Inteligencja +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +5%", self.POSITIVE_COLOR)
- elif skillLevelNext == 8:
- self.AppendTextLine("Inteligencja +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 9:
- self.AppendTextLine("Inteligencja +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 10:
- self.AppendTextLine("Inteligencja +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 11:
- self.AppendTextLine("Inteligencja +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 12:
- self.AppendTextLine("Inteligencja +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +5%", self.POSITIVE_COLOR)
- elif skillLevelNext == 13:
- self.AppendTextLine("Inteligencja +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 14:
- self.AppendTextLine("Inteligencja +10", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +6500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +5%", self.POSITIVE_COLOR)
- elif skillIndex == 174:
- if skillLevelNext == 1:
- self.AppendTextLine("Zręczność +2", self.POSITIVE_COLOR)
- elif skillLevelNext == 2:
- self.AppendTextLine("Zręczność +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +1500", self.POSITIVE_COLOR)
- elif skillLevelNext == 3:
- self.AppendTextLine("Zręczność +3", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +2300", self.POSITIVE_COLOR)
- elif skillLevelNext == 4:
- self.AppendTextLine("Zręczność +4", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 5:
- self.AppendTextLine("Zręczność +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 6:
- self.AppendTextLine("Zręczność +6", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +3500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +3%", self.POSITIVE_COLOR)
- elif skillLevelNext == 7:
- self.AppendTextLine("Zręczność +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +5%", self.POSITIVE_COLOR)
- elif skillLevelNext == 8:
- self.AppendTextLine("Zręczność +7", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 9:
- self.AppendTextLine("Zręczność +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 10:
- self.AppendTextLine("Zręczność +8", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +4500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +5%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 11:
- self.AppendTextLine("Zręczność +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +6%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +4%", self.POSITIVE_COLOR)
- elif skillLevelNext == 12:
- self.AppendTextLine("Zręczność +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5000", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +5%", self.POSITIVE_COLOR)
- elif skillLevelNext == 13:
- self.AppendTextLine("Zręczność +9", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +5500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +8%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +7%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +2%", self.POSITIVE_COLOR)
- elif skillLevelNext == 14:
- self.AppendTextLine("Zręczność +10", self.POSITIVE_COLOR)
- self.AppendTextLine("Max HP +6500", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Potwory +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Potworom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Odporność na Ludzi +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Silny przeciwko Ludziom +10%", self.POSITIVE_COLOR)
- self.AppendTextLine("Obrażenia Umiejętności +5%", self.POSITIVE_COLOR)
- def AppendSkillDataNew(self, slotIndex, skillIndex, skillGrade, skillLevel, skillCurrentPercentage, skillNextPercentage):
- self.skillMaxLevelStartDict = { 0 : 17, 1 : 7, 2 : 10, }
- self.skillMaxLevelEndDict = { 0 : 20, 1 : 10, 2 : 10, }
- skillLevelUpPoint = 1
- realSkillGrade = player.GetSkillGrade(slotIndex)
- skillMaxLevelStart = self.skillMaxLevelStartDict.get(realSkillGrade, 15)
- skillMaxLevelEnd = self.skillMaxLevelEndDict.get(realSkillGrade, 20)
- ## Current Level
- if skillLevel > 0:
- if self.HasSkillLevelDescription(skillIndex, skillLevel):
- self.AppendSpace(5)
- if skillGrade == skill.SKILL_GRADE_COUNT:
- pass
- elif skillLevel == skillMaxLevelEnd:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR)
- self.AppendSkillLevelDescriptionNew(skillIndex, skillCurrentPercentage, self.ENABLE_COLOR)
- ## Next Level
- if skillGrade != skill.SKILL_GRADE_COUNT:
- if skillLevel < skillMaxLevelEnd:
- if self.HasSkillLevelDescription(skillIndex, skillLevel+skillLevelUpPoint):
- self.AppendSpace(5)
- ## HP??, ???? ????? ??
- if skillIndex == 141 or skillIndex == 142:
- self.AppendTextLine(localemg.TOOLTIP_NEXT_SKILL_LEVEL_3 % (skillLevel+1), self.DISABLE_COLOR)
- else:
- self.AppendTextLine(localemg.TOOLTIP_NEXT_SKILL_LEVEL_1 % (skillLevel+1, skillMaxLevelEnd), self.DISABLE_COLOR)
- self.AppendSkillLevelDescriptionNew(skillIndex, skillNextPercentage, self.DISABLE_COLOR)
- def AppendSkillLevelDescriptionNew(self, skillIndex, skillPercentage, color):
- affectDataCount = skill.GetNewAffectDataCount(skillIndex)
- if affectDataCount > 0:
- for i in xrange(affectDataCount):
- type, minValue, maxValue = skill.GetNewAffectData(skillIndex, i, skillPercentage)
- if not self.AFFECT_NAME_DICT.has_key(type):
- continue
- minValue = int(minValue)
- maxValue = int(maxValue)
- affectText = self.AFFECT_NAME_DICT[type]
- if "HP" == type:
- if minValue < 0 and maxValue < 0:
- minValue *= -1
- maxValue *= -1
- else:
- affectText = localemg.TOOLTIP_SKILL_AFFECT_HEAL
- affectText += str(minValue)
- if minValue != maxValue:
- affectText += " - " + str(maxValue)
- affectText += self.AFFECT_APPEND_TEXT_DICT.get(type, "")
- #import debugInfo
- #if debugInfo.IsDebugMode():
- # affectText = "!!" + affectText
- self.AppendTextLine(affectText, color)
- else:
- for i in xrange(skill.GetSkillAffectDescriptionCount(skillIndex)):
- self.AppendTextLine(skill.GetSkillAffectDescription(skillIndex, i, skillPercentage), color)
- ## Duration
- duration = skill.GetDuration(skillIndex, skillPercentage)
- if duration > 0:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_DURATION % (duration), color)
- ## Cooltime
- coolTime = skill.GetSkillCoolTime(skillIndex, skillPercentage)
- if coolTime > 0:
- self.AppendTextLine(localemg.TOOLTIP_SKILL_COOL_TIME + str(coolTime), color)
- ## SP
- needSP = skill.GetSkillNeedSP(skillIndex, skillPercentage)
- if needSP != 0:
- continuationSP = skill.GetSkillContinuationSP(skillIndex, skillPercentage)
- if skill.IsUseHPSkill(skillIndex):
- self.AppendNeedHP(needSP, continuationSP, color)
- else:
- self.AppendNeedSP(needSP, continuationSP, color)
- def AppendSkillRequirement(self, skillIndex, skillLevel):
- skillMaxLevel = skill.GetSkillMaxLevel(skillIndex)
- if skillLevel >= skillMaxLevel:
- return
- isAppendHorizontalLine = False
- ## Requirement
- if skill.IsSkillRequirement(skillIndex):
- if not isAppendHorizontalLine:
- isAppendHorizontalLine = True
- self.AppendHorizontalLine()
- requireSkillName, requireSkillLevel = skill.GetSkillRequirementData(skillIndex)
- color = self.CANNOT_LEVEL_UP_COLOR
- if skill.CheckRequirementSueccess(skillIndex):
- color = self.CAN_LEVEL_UP_COLOR
- self.AppendTextLine(localemg.TOOLTIP_REQUIREMENT_SKILL_LEVEL % (requireSkillName, requireSkillLevel), color)
- ## Require Stat
- requireStatCount = skill.GetSkillRequireStatCount(skillIndex)
- if requireStatCount > 0:
- for i in xrange(requireStatCount):
- type, level = skill.GetSkillRequireStatData(skillIndex, i)
- if self.POINT_NAME_DICT.has_key(type):
- if not isAppendHorizontalLine:
- isAppendHorizontalLine = True
- self.AppendHorizontalLine()
- name = self.POINT_NAME_DICT[type]
- color = self.CANNOT_LEVEL_UP_COLOR
- if player.GetStatus(type) >= level:
- color = self.CAN_LEVEL_UP_COLOR
- self.AppendTextLine(localemg.TOOLTIP_REQUIREMENT_STAT_LEVEL % (name, level), color)
- def HasSkillLevelDescription(self, skillIndex, skillLevel):
- if skill.GetSkillAffectDescriptionCount(skillIndex) > 0:
- return True
- if skill.GetSkillCoolTime(skillIndex, skillLevel) > 0:
- return True
- if skill.GetSkillNeedSP(skillIndex, skillLevel) > 0:
- return True
- return False
- def AppendMasterAffectDescription(self, index, desc, color):
- self.AppendTextLine(desc, color)
- def AppendNextAffectDescription(self, index, desc):
- self.AppendTextLine(desc, self.DISABLE_COLOR)
- def AppendNeedHP(self, needSP, continuationSP, color):
- self.AppendTextLine(localemg.TOOLTIP_NEED_HP % (needSP), color)
- if continuationSP > 0:
- self.AppendTextLine(localemg.TOOLTIP_NEED_HP_PER_SEC % (continuationSP), color)
- def AppendNeedSP(self, needSP, continuationSP, color):
- if -1 == needSP:
- self.AppendTextLine(localemg.TOOLTIP_NEED_ALL_SP, color)
- else:
- self.AppendTextLine(localemg.TOOLTIP_NEED_SP % (needSP), color)
- if continuationSP > 0:
- self.AppendTextLine(localemg.TOOLTIP_NEED_SP_PER_SEC % (continuationSP), color)
- def AppendPartySkillData(self, skillGrade, skillLevel):
- if 1 == skillGrade:
- skillLevel += 19
- elif 2 == skillGrade:
- skillLevel += 29
- elif 3 == skillGrade:
- skillLevel = 40
- if skillLevel <= 0:
- return
- skillIndex = player.SKILL_INDEX_TONGSOL
- slotIndex = player.GetSkillSlotIndex(skillIndex)
- skillPower = player.GetSkillCurrentEfficientPercentage(slotIndex)
- if localemg.IsBRAZIL():
- k = skillPower
- else:
- k = player.GetSkillLevel(skillIndex) / 100.0
- self.AppendSpace(5)
- self.AutoAppendTextLine(localemg.TOOLTIP_PARTY_SKILL_LEVEL % skillLevel, self.NORMAL_COLOR)
- if skillLevel>=10:
- self.AutoAppendTextLine(localemg.PARTY_SKILL_ATTACKER % chop( 10 + 60 * k ))
- if skillLevel>=20:
- self.AutoAppendTextLine(localemg.PARTY_SKILL_BERSERKER % chop(1 + 5 * k))
- self.AutoAppendTextLine(localemg.PARTY_SKILL_TANKER % chop(50 + 1450 * k))
- if skillLevel>=25:
- self.AutoAppendTextLine(localemg.PARTY_SKILL_BUFFER % chop(5 + 45 * k ))
- if skillLevel>=35:
- self.AutoAppendTextLine(localemg.PARTY_SKILL_SKILL_MASTER % chop(25 + 600 * k ))
- if skillLevel>=40:
- self.AutoAppendTextLine(localemg.PARTY_SKILL_DEFENDER % chop( 5 + 30 * k ))
- self.AlignHorizonalCenter()
- def __AppendSummonDescription(self, skillLevel, color):
- if skillLevel > 1:
- self.AppendTextLine(localemg.SKILL_SUMMON_DESCRIPTION % (skillLevel * 10), color)
- elif 1 == skillLevel:
- self.AppendTextLine(localemg.SKILL_SUMMON_DESCRIPTION % (15), color)
- elif 0 == skillLevel:
- self.AppendTextLine(localemg.SKILL_SUMMON_DESCRIPTION % (10), color)
- if __name__ == "__main__":
- import app
- import wndMgr
- import systemSetting
- import mouseModule
- import grp
- import uimg
- #wndMgr.SetOutlineFlag(True)
- app.SetMouseHandler(mouseModule.mouseController)
- app.SetHairColorEnable(True)
- wndMgr.SetMouseHandler(mouseModule.mouseController)
- wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
- app.Create("METIN2 CLOSED BETA", systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
- mouseModule.mouseController.Create()
- toolTip = ItemToolTip()
- toolTip.ClearToolTip()
- #toolTip.AppendTextLine("Test")
- desc = "Item descriptions:|increase of width of display to 35 digits per row AND installation of function that the displayed words are not broken up in two parts, but instead if one word is too long to be displayed in this row, this word will start in the next row."
- summ = ""
- toolTip.AddItemData_Offline(10, desc, summ, 0, 0)
- toolTip.Show()
- app.Loop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement