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

Dodanie PY okno bonusów


Rekomendowane odpowiedzi

Opublikowano

Witam chciałbym dodać na swój serwer okienko bonusów z tego tematu http://www.mpcforum.pl/topic/1241676-py-okno-bonusow-thoriaeu/ niestety nie mam pojęcia jak oraz gdzie to dodać może mi ktoś to wytłumaczyć dodatkowo chciałbym aby po naciśnięciu klawisza "x" otwierało się a drugim razem zamykało się. Bardzo proszę o pomoc niestety jedynie mogę zaoferować limit plusów na MPCforum z góry dziękuje i zachęcam do pomocy 

 

Pozdrawiam Ayomin

Opublikowano
@pamiętaj o tabulatorach. 

 

Wyszukaj:



def __BuildKeyDict(self):
onPressKeyDict = {}


Pod tym dodaj:



onPressKeyDict[app.DIK_X] = lambda : self.__Sielu()


 

Wyszukaj:



self.onClickKeyDict=onClickKeyDict


 

Pod tym dodaj:



import sielu
self.sielunio = sielu.CharacterBonusWindow()


 

 

Dodaj gdzieś pod np: def __PressNumKey(self,num):



def __Sielu(self):
if self.sielunio.IsShow():
self.sielunio.Hide()
else:
self.sielunio.Show()


 

dodaj do root to z nazwą: sielu.py



#
# 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

Opublikowano

 

@pamiętaj o tabulatorach. 
 
Wyszukaj:
def __BuildKeyDict(self):
onPressKeyDict = {}
Pod tym dodaj:
onPressKeyDict[app.DIK_X] = lambda : self.__Sielu()
 
Wyszukaj:
self.onClickKeyDict=onClickKeyDict
 
Pod tym dodaj:
import sielu
self.sielunio = sielu.CharacterBonusWindow() 
 
 
Dodaj gdzieś pod np: def __PressNumKey(self,num):
def __Sielu(self):
if self.sielunio.IsShow():
self.sielunio.Hide() 
else:
self.sielunio.Show() 
 
dodaj do root to z nazwą: sielu.py
#
# 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

 

 

 

Nie lepiej....

 

def __Sielu(self):

    self.sielunio.Open()

 

Masz tam juz coś takiego:

 

def Open(self):

if not self.IsShow():

self.Show()

else:

self.Close()

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...