Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

prosze o Taby


Bastia.pl.

Rekomendowane odpowiedzi

Opublikowano

daje limit !!! prosze otabować mi to

#
# Copyright (c) 2014 by Adams
#
# Niniejszy kod jest chroniony prawem autorskim.
# Wszelkie kopiowanie oraz użytkowanie bez zgody autora
# zabronione pod pieczą Kodeksu Karnego - ustaw o prawie autorskim.
#
 
import ui
import item
import locale
import player
import grp
 
class BonusListBoard(ui.ThinBoard):
 
NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)
POSITIVE_COLOR = grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0)
 
def __init__(self):
ui.ThinBoard.__init__(self)
 
self.lineHeight = 12
self.childrenList = []
 
def __del__(self):
ui.ThinBoard.__del__(self)
 
def Clear(self):
self.lineHeight = 12
self.childrenList = []
 
def AppendTextLine(self, fn, value):
textLine = ui.TextLine()
textLine.SetParent(self)
textLine.SetFontName(locale.UI_DEF_FONT)
 
if value > 0:
textLine.SetPackedFontColor(self.POSITIVE_COLOR)
elif value < 0:
textLine.SetPackedFontColor(self.NEGATIVE_COLOR)
 
textLine.SetText(str(fn(value)))
textLine.SetOutline()
textLine.SetFeather(FALSE)
textLine.Show()
 
textLine.SetPosition(10, self.lineHeight)
 
self.childrenList.append(textLine)
 
self.lineHeight += 17
return textLine
 
class CharacterBonusWindow(ui.BoardWithTitleBar):
 
DEFAULT_TAB_IMAGE = "d:/ymir work/ui/game/windows/tab_button_large_01.sub"
OVER_TAB_IMAGE = "d:/ymir work/ui/game/windows/tab_button_large_02.sub"
DOWN_TAB_IMAGE = "d:/ymir work/ui/game/windows/tab_button_large_03.sub"
 
AFFECT_DICT = {
item.APPLY_MAX_HP : [locale.TOOLTIP_MAX_HP, 0],
item.APPLY_MAX_SP : [locale.TOOLTIP_MAX_SP, 0],
item.APPLY_CON : [locale.TOOLTIP_CON, 0],
item.APPLY_INT : [locale.TOOLTIP_INT, 0],
item.APPLY_STR : [locale.TOOLTIP_STR, 0],
item.APPLY_DEX : [locale.TOOLTIP_DEX, 0],
item.APPLY_ATT_SPEED : [locale.TOOLTIP_ATT_SPEED, 0],
item.APPLY_MOV_SPEED : [locale.TOOLTIP_MOV_SPEED, 0],
item.APPLY_CAST_SPEED : [locale.TOOLTIP_CAST_SPEED, 0],
item.APPLY_HP_REGEN : [locale.TOOLTIP_HP_REGEN, 0],
item.APPLY_SP_REGEN : [locale.TOOLTIP_SP_REGEN, 0],
item.APPLY_POISON_PCT : [locale.TOOLTIP_APPLY_POISON_PCT, 0],
item.APPLY_STUN_PCT : [locale.TOOLTIP_APPLY_STUN_PCT, 0],
item.APPLY_SLOW_PCT : [locale.TOOLTIP_APPLY_SLOW_PCT, 0],
item.APPLY_CRITICAL_PCT : [locale.TOOLTIP_APPLY_CRITICAL_PCT, 0],
item.APPLY_PENETRATE_PCT : [locale.TOOLTIP_APPLY_PENETRATE_PCT, 0],
 
item.APPLY_ATTBONUS_WARRIOR : [locale.TOOLTIP_APPLY_ATTBONUS_WARRIOR, 0],
item.APPLY_ATTBONUS_ASSASSIN : [locale.TOOLTIP_APPLY_ATTBONUS_ASSASSIN, 0],
item.APPLY_ATTBONUS_SURA : [locale.TOOLTIP_APPLY_ATTBONUS_SURA, 0],
item.APPLY_ATTBONUS_SHAMAN : [locale.TOOLTIP_APPLY_ATTBONUS_SHAMAN, 0],
item.APPLY_ATTBONUS_MONSTER : [locale.TOOLTIP_APPLY_ATTBONUS_MONSTER, 0],
 
item.APPLY_ATTBONUS_HUMAN : [locale.TOOLTIP_APPLY_ATTBONUS_HUMAN, 0],
item.APPLY_ATTBONUS_ANIMAL : [locale.TOOLTIP_APPLY_ATTBONUS_ANIMAL, 0],
item.APPLY_ATTBONUS_ORC : [locale.TOOLTIP_APPLY_ATTBONUS_ORC, 0],
item.APPLY_ATTBONUS_MILGYO : [locale.TOOLTIP_APPLY_ATTBONUS_MILGYO, 0],
item.APPLY_ATTBONUS_UNDEAD : [locale.TOOLTIP_APPLY_ATTBONUS_UNDEAD, 0],
item.APPLY_ATTBONUS_DEVIL : [locale.TOOLTIP_APPLY_ATTBONUS_DEVIL, 0],
item.APPLY_STEAL_HP : [locale.TOOLTIP_APPLY_STEAL_HP, 0],
item.APPLY_STEAL_SP : [locale.TOOLTIP_APPLY_STEAL_SP, 0],
item.APPLY_MANA_BURN_PCT : [locale.TOOLTIP_APPLY_MANA_BURN_PCT, 0],
item.APPLY_DAMAGE_SP_RECOVER : [locale.TOOLTIP_APPLY_DAMAGE_SP_RECOVER, 0],
item.APPLY_BLOCK : [locale.TOOLTIP_APPLY_BLOCK, 0],
item.APPLY_DODGE : [locale.TOOLTIP_APPLY_DODGE, 0],
item.APPLY_RESIST_SWORD : [locale.TOOLTIP_APPLY_RESIST_SWORD, 0],
item.APPLY_RESIST_TWOHAND : [locale.TOOLTIP_APPLY_RESIST_TWOHAND, 0],
item.APPLY_RESIST_DAGGER : [locale.TOOLTIP_APPLY_RESIST_DAGGER, 0],
item.APPLY_RESIST_BELL : [locale.TOOLTIP_APPLY_RESIST_BELL, 0],
item.APPLY_RESIST_FAN : [locale.TOOLTIP_APPLY_RESIST_FAN, 0],
item.APPLY_RESIST_BOW : [locale.TOOLTIP_RESIST_BOW, 0],
item.APPLY_RESIST_FIRE : [locale.TOOLTIP_RESIST_FIRE, 0],
item.APPLY_RESIST_ELEC : [locale.TOOLTIP_RESIST_ELEC, 0],
item.APPLY_RESIST_MAGIC : [locale.TOOLTIP_RESIST_MAGIC, 0],
item.APPLY_RESIST_WIND : [locale.TOOLTIP_APPLY_RESIST_WIND, 0],
item.APPLY_REFLECT_MELEE : [locale.TOOLTIP_APPLY_REFLECT_MELEE, 0],
item.APPLY_REFLECT_CURSE : [locale.TOOLTIP_APPLY_REFLECT_CURSE, 0],
item.APPLY_POISON_REDUCE : [locale.TOOLTIP_APPLY_POISON_REDUCE, 0],
item.APPLY_KILL_SP_RECOVER : [locale.TOOLTIP_APPLY_KILL_SP_RECOVER, 0],
item.APPLY_EXP_DOUBLE_BONUS : [locale.TOOLTIP_APPLY_EXP_DOUBLE_BONUS, 0],
item.APPLY_GOLD_DOUBLE_BONUS : [locale.TOOLTIP_APPLY_GOLD_DOUBLE_BONUS, 0],
item.APPLY_ITEM_DROP_BONUS : [locale.TOOLTIP_APPLY_ITEM_DROP_BONUS, 0],
item.APPLY_POTION_BONUS : [locale.TOOLTIP_APPLY_POTION_BONUS, 0],
item.APPLY_KILL_HP_RECOVER : [locale.TOOLTIP_APPLY_KILL_HP_RECOVER, 0],
item.APPLY_IMMUNE_STUN : [locale.TOOLTIP_APPLY_IMMUNE_STUN, 0],
item.APPLY_IMMUNE_SLOW : [locale.TOOLTIP_APPLY_IMMUNE_SLOW, 0],
item.APPLY_IMMUNE_FALL : [locale.TOOLTIP_APPLY_IMMUNE_FALL, 0],
item.APPLY_BOW_DISTANCE : [locale.TOOLTIP_BOW_DISTANCE, 0],
item.APPLY_DEF_GRADE_BONUS : [locale.TOOLTIP_DEF_GRADE, 0],
item.APPLY_ATT_GRADE_BONUS : [locale.TOOLTIP_ATT_GRADE, 0],
item.APPLY_MAGIC_ATT_GRADE : [locale.TOOLTIP_MAGIC_ATT_GRADE, 0],
item.APPLY_MAGIC_DEF_GRADE : [locale.TOOLTIP_MAGIC_DEF_GRADE, 0],
item.APPLY_MAX_STAMINA : [locale.TOOLTIP_MAX_STAMINA, 0],
item.APPLY_MALL_ATTBONUS : [locale.TOOLTIP_MALL_ATTBONUS, 0],
item.APPLY_MALL_DEFBONUS : [locale.TOOLTIP_MALL_DEFBONUS, 0],
item.APPLY_MALL_EXPBONUS : [locale.TOOLTIP_MALL_EXPBONUS, 0],
item.APPLY_MALL_ITEMBONUS : [locale.TOOLTIP_MALL_ITEMBONUS, 0],
item.APPLY_MALL_GOLDBONUS : [locale.TOOLTIP_MALL_GOLDBONUS, 0],
item.APPLY_SKILL_DAMAGE_BONUS : [locale.TOOLTIP_SKILL_DAMAGE_BONUS, 0],
item.APPLY_NORMAL_HIT_DAMAGE_BONUS : [locale.TOOLTIP_NORMAL_HIT_DAMAGE_BONUS, 0],
item.APPLY_SKILL_DEFEND_BONUS : [locale.TOOLTIP_SKILL_DEFEND_BONUS, 0],
item.APPLY_NORMAL_HIT_DEFEND_BONUS : [locale.TOOLTIP_NORMAL_HIT_DEFEND_BONUS, 0],
item.APPLY_PC_BANG_EXP_BONUS : [locale.TOOLTIP_MALL_EXPBONUS_P_STATIC, 0],
item.APPLY_PC_BANG_DROP_BONUS : [locale.TOOLTIP_MALL_ITEMBONUS_P_STATIC, 0],
item.APPLY_RESIST_WARRIOR : [locale.TOOLTIP_APPLY_RESIST_WARRIOR, 0],
item.APPLY_RESIST_ASSASSIN : [locale.TOOLTIP_APPLY_RESIST_ASSASSIN, 0],
item.APPLY_RESIST_SURA : [locale.TOOLTIP_APPLY_RESIST_SURA, 0],
item.APPLY_RESIST_SHAMAN : [locale.TOOLTIP_APPLY_RESIST_SHAMAN, 0],
item.APPLY_MAX_HP_PCT : [locale.TOOLTIP_APPLY_MAX_HP_PCT, 0],
item.APPLY_MAX_SP_PCT : [locale.TOOLTIP_APPLY_MAX_SP_PCT, 0],
item.APPLY_ENERGY : [locale.TOOLTIP_ENERGY, 0],
item.APPLY_COSTUME_ATTR_BONUS : [locale.TOOLTIP_COSTUME_ATTR_BONUS, 0]
}
 
DEFAULT_X = 262
 
def __init__(self):
ui.BoardWithTitleBar.__init__(self)
self.__BuildWindow()
 
def __del__(self):
ui.BoardWithTitleBar.__del__(self)
 
def __BuildWindow(self):
 
self.SetSize(self.DEFAULT_X, 33 + 26)
self.AddFlag("float")
self.AddFlag("movable")
self.SetTitleName("Podsumowanie bonusów")
self.SetCloseEvent(ui.__mem_func__(self.OnClose))
 
self.bonusBoard = BonusListBoard()
self.bonusBoard.SetParent(self)
self.bonusBoard.SetPosition(10, 33 + 26)
self.bonusBoard.SetSize(242, 192)
self.bonusBoard.Show()
 
self.tabs = {
0: self.__CreateNewTab(0, "Walka"),
1: self.__CreateNewTab(1, "Obrona"),
2: self.__CreateNewTab(2, "Przeciwnicy")
}
 
self.tabs[0].Down()
self.tab = 0
 
self.bonus = {
0: [  
item.APPLY_MAX_HP,
item.APPLY_MAX_SP,
item.APPLY_CON,
item.APPLY_INT,
item.APPLY_STR,
item.APPLY_DEX,
item.APPLY_ATT_SPEED,
item.APPLY_CAST_SPEED,
item.APPLY_CRITICAL_PCT,
item.APPLY_PENETRATE_PCT,
item.APPLY_POISON_PCT,
item.APPLY_STUN_PCT,
item.APPLY_SLOW_PCT,
item.APPLY_ATT_GRADE_BONUS,
item.APPLY_MAGIC_ATT_GRADE
],
1: [ 
item.APPLY_MOV_SPEED,
item.APPLY_MANA_BURN_PCT,
item.APPLY_STEAL_HP,
item.APPLY_STEAL_SP,
item.APPLY_BLOCK,
item.APPLY_DODGE,
item.APPLY_RESIST_SWORD,
item.APPLY_RESIST_TWOHAND,
item.APPLY_RESIST_DAGGER,
item.APPLY_RESIST_BELL,
item.APPLY_RESIST_FAN,
item.APPLY_RESIST_BOW,
item.APPLY_RESIST_FIRE,
item.APPLY_RESIST_ELEC,
item.APPLY_RESIST_MAGIC,
item.APPLY_RESIST_WIND,
item.APPLY_DEF_GRADE_BONUS,
item.APPLY_MAGIC_DEF_GRADE
],
2: [ 
item.APPLY_ATTBONUS_WARRIOR,
item.APPLY_ATTBONUS_ASSASSIN,
item.APPLY_ATTBONUS_SURA,
item.APPLY_ATTBONUS_SHAMAN,
item.APPLY_ATTBONUS_MONSTER,
item.APPLY_ATTBONUS_HUMAN,
item.APPLY_ATTBONUS_ANIMAL,
item.APPLY_ATTBONUS_ORC,
item.APPLY_ATTBONUS_MILGYO,
item.APPLY_ATTBONUS_UNDEAD,
item.APPLY_ATTBONUS_DEVIL
]
}
 
self.OnTabClick(0)
 
def __CreateNewTab(self, number, text):
tab = ui.RadioButton()
tab.SetParent(self)
tab.SetUpVisual(self.DEFAULT_TAB_IMAGE)
tab.SetOverVisual(self.OVER_TAB_IMAGE)
tab.SetDownVisual(self.DOWN_TAB_IMAGE)
tab.SetPosition(10 + (82 * number), 33) # + 196
tab.SetText(text)
tab.SetEvent(lambda arg = number : self.OnTabClick(arg))
tab.Show()
return tab
 
def OnTabClick(self, number):
self.tabs[self.tab].SetUp()
self.tab = number
 
self.RefreshBonus()
 
def RefreshBonus(self):
self.bonusBoard.Clear()
 
for bonus in self.bonus[self.tab]:
self.AFFECT_DICT[bonus][1] = 0
 
for slotIndex in range(12):
for j in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
type, value = player.GetItemAttribute(player.EQUIPMENT_SLOT_START + slotIndex, j)
 
if 0 == value:
continue
 
self.AFFECT_DICT[type][1] += value
 
itemVnum = player.GetItemIndex(player.EQUIPMENT_SLOT_START + slotIndex)
 
if 0 >= itemVnum:
continue
 
item.SelectItem(itemVnum)
 
for i in xrange(item.ITEM_APPLY_MAX_NUM):
(affectType, affectValue) = item.GetAffect(i)
 
if 0 == affectValue:
continue
 
self.AFFECT_DICT[affectType][1] += affectValue
 
for bonus in self.bonus[self.tab]:
self.bonusBoard.AppendTextLine(self.AFFECT_DICT[bonus][0], self.AFFECT_DICT[bonus][1])
 
self.bonusBoard.SetSize(242, (self.bonusBoard.lineHeight + 10))
self.SetSize(self.DEFAULT_X, 33 + 26 + 10 + (self.bonusBoard.lineHeight + 10))
 
def OnUpdate(self):
self.RefreshBonus()
 
def Open(self):
if not self.IsShow():
self.Show()
else:
self.Close()
 
def Close(self):
if self.IsShow():
self.Hide()
 
def OnClose(self):
self.Close()
 
def OnPressEscapeKey(self):
self.Close()
return TRUE



50374279859406698435.jpg

Opublikowano
import ui

import item

import locale

import player

import grp



class BonusListBoard(ui.ThinBoard):



    NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)

    POSITIVE_COLOR = grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0)



    def __init__(self):

        ui.ThinBoard.__init__(self)

    

        self.lineHeight = 12

        self.childrenList = []

    

    def __del__(self):

        ui.ThinBoard.__del__(self)

    

    def Clear(self):

        self.lineHeight = 12

        self.childrenList = []

        

    def AppendTextLine(self, fn, value):

        textLine = ui.TextLine()

        textLine.SetParent(self)

        textLine.SetFontName(locale.UI_DEF_FONT)

        

        if value > 0:

            textLine.SetPackedFontColor(self.POSITIVE_COLOR)

        elif value < 0:

            textLine.SetPackedFontColor(self.NEGATIVE_COLOR)

            

        textLine.SetText(str(fn(value)))

        textLine.SetOutline()

        textLine.SetFeather(FALSE)

        textLine.Show()



        textLine.SetPosition(10, self.lineHeight)



        self.childrenList.append(textLine)



        self.lineHeight += 17

        return textLine



class CharacterBonusWindow(ui.BoardWithTitleBar):



    DEFAULT_TAB_IMAGE = "d:/ymir work/ui/game/windows/tab_button_large_01.sub"

    OVER_TAB_IMAGE = "d:/ymir work/ui/game/windows/tab_button_large_02.sub"

    DOWN_TAB_IMAGE = "d:/ymir work/ui/game/windows/tab_button_large_03.sub"

    

    AFFECT_DICT = {

        item.APPLY_MAX_HP : [locale.TOOLTIP_MAX_HP, 0],

        item.APPLY_MAX_SP : [locale.TOOLTIP_MAX_SP, 0],

        item.APPLY_CON : [locale.TOOLTIP_CON, 0],

        item.APPLY_INT : [locale.TOOLTIP_INT, 0],

        item.APPLY_STR : [locale.TOOLTIP_STR, 0],

        item.APPLY_DEX : [locale.TOOLTIP_DEX, 0],

        item.APPLY_ATT_SPEED : [locale.TOOLTIP_ATT_SPEED, 0],

        item.APPLY_MOV_SPEED : [locale.TOOLTIP_MOV_SPEED, 0],

        item.APPLY_CAST_SPEED : [locale.TOOLTIP_CAST_SPEED, 0],

        item.APPLY_HP_REGEN : [locale.TOOLTIP_HP_REGEN, 0],

        item.APPLY_SP_REGEN : [locale.TOOLTIP_SP_REGEN, 0],

        item.APPLY_POISON_PCT : [locale.TOOLTIP_APPLY_POISON_PCT, 0],

        item.APPLY_STUN_PCT : [locale.TOOLTIP_APPLY_STUN_PCT, 0],

        item.APPLY_SLOW_PCT : [locale.TOOLTIP_APPLY_SLOW_PCT, 0],

        item.APPLY_CRITICAL_PCT : [locale.TOOLTIP_APPLY_CRITICAL_PCT, 0],

        item.APPLY_PENETRATE_PCT : [locale.TOOLTIP_APPLY_PENETRATE_PCT, 0],



        item.APPLY_ATTBONUS_WARRIOR : [locale.TOOLTIP_APPLY_ATTBONUS_WARRIOR, 0],

        item.APPLY_ATTBONUS_ASSASSIN : [locale.TOOLTIP_APPLY_ATTBONUS_ASSASSIN, 0],

        item.APPLY_ATTBONUS_SURA : [locale.TOOLTIP_APPLY_ATTBONUS_SURA, 0],

        item.APPLY_ATTBONUS_SHAMAN : [locale.TOOLTIP_APPLY_ATTBONUS_SHAMAN, 0],

        item.APPLY_ATTBONUS_MONSTER : [locale.TOOLTIP_APPLY_ATTBONUS_MONSTER, 0],



        item.APPLY_ATTBONUS_HUMAN : [locale.TOOLTIP_APPLY_ATTBONUS_HUMAN, 0],

        item.APPLY_ATTBONUS_ANIMAL : [locale.TOOLTIP_APPLY_ATTBONUS_ANIMAL, 0],

        item.APPLY_ATTBONUS_ORC : [locale.TOOLTIP_APPLY_ATTBONUS_ORC, 0],

        item.APPLY_ATTBONUS_MILGYO : [locale.TOOLTIP_APPLY_ATTBONUS_MILGYO, 0],

        item.APPLY_ATTBONUS_UNDEAD : [locale.TOOLTIP_APPLY_ATTBONUS_UNDEAD, 0],

        item.APPLY_ATTBONUS_DEVIL : [locale.TOOLTIP_APPLY_ATTBONUS_DEVIL, 0],

        item.APPLY_STEAL_HP : [locale.TOOLTIP_APPLY_STEAL_HP, 0],

        item.APPLY_STEAL_SP : [locale.TOOLTIP_APPLY_STEAL_SP, 0],

        item.APPLY_MANA_BURN_PCT : [locale.TOOLTIP_APPLY_MANA_BURN_PCT, 0],

        item.APPLY_DAMAGE_SP_RECOVER : [locale.TOOLTIP_APPLY_DAMAGE_SP_RECOVER, 0],

        item.APPLY_BLOCK : [locale.TOOLTIP_APPLY_BLOCK, 0],

        item.APPLY_DODGE : [locale.TOOLTIP_APPLY_DODGE, 0],

        item.APPLY_RESIST_SWORD : [locale.TOOLTIP_APPLY_RESIST_SWORD, 0],

        item.APPLY_RESIST_TWOHAND : [locale.TOOLTIP_APPLY_RESIST_TWOHAND, 0],

        item.APPLY_RESIST_DAGGER : [locale.TOOLTIP_APPLY_RESIST_DAGGER, 0],

        item.APPLY_RESIST_BELL : [locale.TOOLTIP_APPLY_RESIST_BELL, 0],

        item.APPLY_RESIST_FAN : [locale.TOOLTIP_APPLY_RESIST_FAN, 0],

        item.APPLY_RESIST_BOW : [locale.TOOLTIP_RESIST_BOW, 0],

        item.APPLY_RESIST_FIRE : [locale.TOOLTIP_RESIST_FIRE, 0],

        item.APPLY_RESIST_ELEC : [locale.TOOLTIP_RESIST_ELEC, 0],

        item.APPLY_RESIST_MAGIC : [locale.TOOLTIP_RESIST_MAGIC, 0],

        item.APPLY_RESIST_WIND : [locale.TOOLTIP_APPLY_RESIST_WIND, 0],

        item.APPLY_REFLECT_MELEE : [locale.TOOLTIP_APPLY_REFLECT_MELEE, 0],

        item.APPLY_REFLECT_CURSE : [locale.TOOLTIP_APPLY_REFLECT_CURSE, 0],

        item.APPLY_POISON_REDUCE : [locale.TOOLTIP_APPLY_POISON_REDUCE, 0],

        item.APPLY_KILL_SP_RECOVER : [locale.TOOLTIP_APPLY_KILL_SP_RECOVER, 0],

        item.APPLY_EXP_DOUBLE_BONUS : [locale.TOOLTIP_APPLY_EXP_DOUBLE_BONUS, 0],

        item.APPLY_GOLD_DOUBLE_BONUS : [locale.TOOLTIP_APPLY_GOLD_DOUBLE_BONUS, 0],

        item.APPLY_ITEM_DROP_BONUS : [locale.TOOLTIP_APPLY_ITEM_DROP_BONUS, 0],

        item.APPLY_POTION_BONUS : [locale.TOOLTIP_APPLY_POTION_BONUS, 0],

        item.APPLY_KILL_HP_RECOVER : [locale.TOOLTIP_APPLY_KILL_HP_RECOVER, 0],

        item.APPLY_IMMUNE_STUN : [locale.TOOLTIP_APPLY_IMMUNE_STUN, 0],

        item.APPLY_IMMUNE_SLOW : [locale.TOOLTIP_APPLY_IMMUNE_SLOW, 0],

        item.APPLY_IMMUNE_FALL : [locale.TOOLTIP_APPLY_IMMUNE_FALL, 0],

        item.APPLY_BOW_DISTANCE : [locale.TOOLTIP_BOW_DISTANCE, 0],

        item.APPLY_DEF_GRADE_BONUS : [locale.TOOLTIP_DEF_GRADE, 0],

        item.APPLY_ATT_GRADE_BONUS : [locale.TOOLTIP_ATT_GRADE, 0],

        item.APPLY_MAGIC_ATT_GRADE : [locale.TOOLTIP_MAGIC_ATT_GRADE, 0],

        item.APPLY_MAGIC_DEF_GRADE : [locale.TOOLTIP_MAGIC_DEF_GRADE, 0],

        item.APPLY_MAX_STAMINA : [locale.TOOLTIP_MAX_STAMINA, 0],

        item.APPLY_MALL_ATTBONUS : [locale.TOOLTIP_MALL_ATTBONUS, 0],

        item.APPLY_MALL_DEFBONUS : [locale.TOOLTIP_MALL_DEFBONUS, 0],

        item.APPLY_MALL_EXPBONUS : [locale.TOOLTIP_MALL_EXPBONUS, 0],

        item.APPLY_MALL_ITEMBONUS : [locale.TOOLTIP_MALL_ITEMBONUS, 0],

        item.APPLY_MALL_GOLDBONUS : [locale.TOOLTIP_MALL_GOLDBONUS, 0],

        item.APPLY_SKILL_DAMAGE_BONUS : [locale.TOOLTIP_SKILL_DAMAGE_BONUS, 0],

        item.APPLY_NORMAL_HIT_DAMAGE_BONUS : [locale.TOOLTIP_NORMAL_HIT_DAMAGE_BONUS, 0],

        item.APPLY_SKILL_DEFEND_BONUS : [locale.TOOLTIP_SKILL_DEFEND_BONUS, 0],

        item.APPLY_NORMAL_HIT_DEFEND_BONUS : [locale.TOOLTIP_NORMAL_HIT_DEFEND_BONUS, 0],

        item.APPLY_PC_BANG_EXP_BONUS : [locale.TOOLTIP_MALL_EXPBONUS_P_STATIC, 0],

        item.APPLY_PC_BANG_DROP_BONUS : [locale.TOOLTIP_MALL_ITEMBONUS_P_STATIC, 0],

        item.APPLY_RESIST_WARRIOR : [locale.TOOLTIP_APPLY_RESIST_WARRIOR, 0],

        item.APPLY_RESIST_ASSASSIN : [locale.TOOLTIP_APPLY_RESIST_ASSASSIN, 0],

        item.APPLY_RESIST_SURA : [locale.TOOLTIP_APPLY_RESIST_SURA, 0],

        item.APPLY_RESIST_SHAMAN : [locale.TOOLTIP_APPLY_RESIST_SHAMAN, 0],

        item.APPLY_MAX_HP_PCT : [locale.TOOLTIP_APPLY_MAX_HP_PCT, 0],

        item.APPLY_MAX_SP_PCT : [locale.TOOLTIP_APPLY_MAX_SP_PCT, 0],

        item.APPLY_ENERGY : [locale.TOOLTIP_ENERGY, 0],

        item.APPLY_COSTUME_ATTR_BONUS : [locale.TOOLTIP_COSTUME_ATTR_BONUS, 0]

    }



    DEFAULT_X = 262

    

    def __init__(self):

        ui.BoardWithTitleBar.__init__(self)

        self.__BuildWindow()

        

    def __del__(self):

        ui.BoardWithTitleBar.__del__(self)

        

    def __BuildWindow(self):

        

        self.SetSize(self.DEFAULT_X, 33 + 26)

        self.AddFlag("float")

        self.AddFlag("movable")

        self.SetTitleName("Podsumowanie bonusów")

        self.SetCloseEvent(ui.__mem_func__(self.OnClose))

    

        self.bonusBoard = BonusListBoard()

        self.bonusBoard.SetParent(self)

        self.bonusBoard.SetPosition(10, 33 + 26)

        self.bonusBoard.SetSize(242, 192)

        self.bonusBoard.Show()

        

        self.tabs = {

            0: self.__CreateNewTab(0, "Walka"),

            1: self.__CreateNewTab(1, "Obrona"),

            2: self.__CreateNewTab(2, "Przeciwnicy")

        }

    

        self.tabs[0].Down()

        self.tab = 0

        

        self.bonus = {

            0: [  

                item.APPLY_MAX_HP,

                item.APPLY_MAX_SP,

                item.APPLY_CON,

                item.APPLY_INT,

                item.APPLY_STR,

                item.APPLY_DEX,

                item.APPLY_ATT_SPEED,

                item.APPLY_CAST_SPEED,

                item.APPLY_CRITICAL_PCT,

                item.APPLY_PENETRATE_PCT,

                item.APPLY_POISON_PCT,

                item.APPLY_STUN_PCT,

                item.APPLY_SLOW_PCT,

                item.APPLY_ATT_GRADE_BONUS,

                item.APPLY_MAGIC_ATT_GRADE

            ],

            1: [

                item.APPLY_MOV_SPEED,

                item.APPLY_MANA_BURN_PCT,

                item.APPLY_STEAL_HP,

                item.APPLY_STEAL_SP,

                item.APPLY_BLOCK,

                item.APPLY_DODGE,

                item.APPLY_RESIST_SWORD,

                item.APPLY_RESIST_TWOHAND,

                item.APPLY_RESIST_DAGGER,

                item.APPLY_RESIST_BELL,

                item.APPLY_RESIST_FAN,

                item.APPLY_RESIST_BOW,

                item.APPLY_RESIST_FIRE,

                item.APPLY_RESIST_ELEC,

                item.APPLY_RESIST_MAGIC,

                item.APPLY_RESIST_WIND,

                item.APPLY_DEF_GRADE_BONUS,

                item.APPLY_MAGIC_DEF_GRADE

            ],

            2: [

                item.APPLY_ATTBONUS_WARRIOR,

                item.APPLY_ATTBONUS_ASSASSIN,

                item.APPLY_ATTBONUS_SURA,

                item.APPLY_ATTBONUS_SHAMAN,

                item.APPLY_ATTBONUS_MONSTER,

                item.APPLY_ATTBONUS_HUMAN,

                item.APPLY_ATTBONUS_ANIMAL,

                item.APPLY_ATTBONUS_ORC,

                item.APPLY_ATTBONUS_MILGYO,

                item.APPLY_ATTBONUS_UNDEAD,

                item.APPLY_ATTBONUS_DEVIL

            ]

        }

        

        self.OnTabClick(0)

    

    def __CreateNewTab(self, number, text):

        tab = ui.RadioButton()

        tab.SetParent(self)

        tab.SetUpVisual(self.DEFAULT_TAB_IMAGE)

        tab.SetOverVisual(self.OVER_TAB_IMAGE)

        tab.SetDownVisual(self.DOWN_TAB_IMAGE)

        tab.SetPosition(10 + (82 * number), 33) # + 196

        tab.SetText(text)

        tab.SetEvent(lambda arg = number : self.OnTabClick(arg))

        tab.Show()

        return tab

        

    def OnTabClick(self, number):

        self.tabs[self.tab].SetUp()

        self.tab = number

        

        self.RefreshBonus()

    

    def RefreshBonus(self):

        self.bonusBoard.Clear()

        

        for bonus in self.bonus[self.tab]:

            self.AFFECT_DICT[bonus][1] = 0

        

        for slotIndex in range(12):

            for j in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):

                type, value = player.GetItemAttribute(player.EQUIPMENT_SLOT_START + slotIndex, j)

                

                if 0 == value:

                    continue

                

                self.AFFECT_DICT[type][1] += value

        

            itemVnum = player.GetItemIndex(player.EQUIPMENT_SLOT_START + slotIndex)

        

            if 0 >= itemVnum:

                continue

        

            item.SelectItem(itemVnum)

        

            for i in xrange(item.ITEM_APPLY_MAX_NUM):

                (affectType, affectValue) = item.GetAffect(i)

                

                if 0 == affectValue:

                    continue

                

                self.AFFECT_DICT[affectType][1] += affectValue

        

        for bonus in self.bonus[self.tab]:

            self.bonusBoard.AppendTextLine(self.AFFECT_DICT[bonus][0], self.AFFECT_DICT[bonus][1])

        

        self.bonusBoard.SetSize(242, (self.bonusBoard.lineHeight + 10))

        self.SetSize(self.DEFAULT_X, 33 + 26 + 10 + (self.bonusBoard.lineHeight + 10))

    

    def OnUpdate(self):

        self.RefreshBonus()

    

    def Open(self):

        if not self.IsShow():

            self.Show()

        else:

            self.Close()

            

    def Close(self):

        if self.IsShow():

            self.Hide()

            

    def OnClose(self):

        self.Close()

        

    def OnPressEscapeKey(self):

        self.Close()

        return TRUE



Policz sobie kropki i otabuj sobie sam. Na koncu pusta linia ...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...