Hi all.I have a problem with my switchboot.an error.The switchboot works fine but in syserr:
And
my uiswitch.py :
the syserr if i switch 30 times it gets at the size of 2.000KB tooooo big..
Code:
1113 11:33:34422 :: Traceback (most recent call last): 1113 11:33:34422 :: File "uiswitch.py", line 160, in OnUpdate 1113 11:33:34422 :: File "uiswitch.py", line 140, in refresh 1113 11:33:34422 :: TypeError 1113 11:33:34422 :: : 1113 11:33:34422 :: an integer is required 1113 11:33:34422 :: 1113 11:33:34423 :: Traceback (most recent call last): 1113 11:33:34423 :: File "uiswitch.py", line 160, in OnUpdate 1113 11:33:34423 :: File "uiswitch.py", line 140, in refresh 1113 11:33:34423 :: TypeError 1113 11:33:34424 :: : 1113 11:33:34424 :: an integer is required 1113 11:33:34424 ::
Code:
1113 11:33:37401 :: Traceback (most recent call last): 1113 11:33:37401 :: File "uiswitch.py", line 160, in OnUpdate 1113 11:33:37401 :: File "uiswitch.py", line 151, in refresh 1113 11:33:37402 :: IndexError 1113 11:33:37402 :: : 1113 11:33:37402 :: list index out of range 1113 11:33:37402 :: 1113 11:33:37451 :: Traceback (most recent call last): 1113 11:33:37452 :: File "uiswitch.py", line 160, in OnUpdate 1113 11:33:37452 :: File "uiswitch.py", line 151, in refresh 1113 11:33:37452 :: IndexError 1113 11:33:37452 :: : 1113 11:33:37452 :: list index out of range 1113 11:33:37452 ::
Code:
import ui
import player
import mouseModule
import net
import app
import chat
import snd
import item
import player
import chat
import grp
import uiScriptLocale
import uiRefine
import uiAttachMetin
import uiCommon
import locale
import constInfo
import ime
import grpText
import uiToolTip
Low = "low-work/system/"
class Switcher(ui.ScriptWindow):
POSITIVE_COLOR = grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0)
NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)
def __init__(self):
import exception
ui.ScriptWindow.__init__(self)
def __del__(self):
ui.ScriptWindow.__del__(self)
def Show(self):
constInfo.SWITCH_BONUS = 1
self.__LoadWindow()
ui.ScriptWindow.Show(self)
def Close(self):
constInfo.SWITCH_BONUS = 0
self.Hide()
def OnPressEscapeKey(self):
self.Close()
return TRUE
def __LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, Low + "binari2.py")
except:
import exception
exception.Abort("CostumeWindow.LoadWindow.LoadObject")
self.TitleBar = self.GetChild("TitleBar")
self.switchslot = self.GetChild("switchslot")
self.bonusslot = [self.GetChild2("bonus1"), self.GetChild2("bonus2"), self.GetChild2("bonus3"), self.GetChild2("bonus4"), self.GetChild2("bonus5"), ]
self.buttongira = self.GetChild("gira_bonus")
self.buttongira.SetEvent(ui.__mem_func__(self.__gira_bonus))
self.TitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
self.switchslot.SetSelectEmptySlotEvent(ui.__mem_func__(self.__OnSelectEmptySlot))
self.switchslot.SetSelectItemSlotEvent(ui.__mem_func__(self.__OnSelectItemSlot))
self.toolTipCostume = uiToolTip.ToolTip(190)
self.toolTipCostume.SetTitle(item.GetItemName())
self.slotitem = None
self.slotgira = None
def __OnSelectItemSlot(self, selectedSlotPos):
isAttached = mouseModule.mouseController.isAttached()
if isAttached:
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
mouseModule.mouseController.DeattachObject()
itemIndex = player.GetItemIndex(attachedSlotPos)
itemCount = player.GetItemCount(attachedSlotPos)
item.SelectItem(itemIndex)
itemType = item.GetItemType()
if selectedSlotPos == 0:
self.slotitem = attachedSlotPos
if item.ITEM_TYPE_WEAPON == itemType or item.ITEM_TYPE_ARMOR == itemType:
self.switchslot.SetItemSlot(selectedSlotPos, itemIndex, 0)
attrSlot = [player.GetItemAttribute(attachedSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM-2):
type = attrSlot[i][0]
value = attrSlot[i][1]
affectString = self.__GetAffectString(type, value)
self.bonusslot[i].SetText(affectString)
else:
if selectedSlotPos == 0:
self.switchslot.SetItemSlot(0, 0, 0)
self.slotitem = None
def __OnSelectEmptySlot(self, selectedSlotPos):
isAttached = mouseModule.mouseController.isAttached()
if isAttached:
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
mouseModule.mouseController.DeattachObject()
itemIndex = player.GetItemIndex(attachedSlotPos)
itemCount = player.GetItemCount(attachedSlotPos)
item.SelectItem(itemIndex)
itemType = item.GetItemType()
if selectedSlotPos == 0:
self.slotitem = attachedSlotPos
if item.ITEM_TYPE_WEAPON == itemType or item.ITEM_TYPE_ARMOR == itemType:
self.switchslot.SetItemSlot(selectedSlotPos, itemIndex, 0)
attrSlot = [player.GetItemAttribute(attachedSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM-2):
type = attrSlot[i][0]
value = attrSlot[i][1]
affectString = self.__GetAffectString(type, value)
self.bonusslot[i].SetText(affectString)
if selectedSlotPos == 1 and itemIndex== 71084:
self.slotgira = attachedSlotPos
self.switchslot.SetItemSlot(selectedSlotPos, itemIndex, itemCount)
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 __gira_bonus(self):
self.__Switch(self.slotitem,self.slotgira)
def __Switch(self,dstSlotPos,srcSlotPos):
net.SendItemUseToItemPacket(srcSlotPos,dstSlotPos)
#self.refresh(dstSlotPos,srcSlotPos)
def refresh(self,dstSlotPos,srcSlotPos):
attrSlot = [player.GetItemAttribute(dstSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
for i in xrange(5):
self.bonusslot[i].SetText("")
for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM-2):
type = attrSlot[i][0]
value = attrSlot[i][1]
affectString = self.__GetAffectString(type, value)
if int(value) < 0:
self.bonusslot[i].SetPackedFontColor(self.NEGATIVE_COLOR)
else:
self.bonusslot[i].SetPackedFontColor(self.POSITIVE_COLOR)
self.bonusslot[i].SetText(affectString)
itemIndex = player.GetItemIndex(srcSlotPos)
itemCount = player.GetItemCount(srcSlotPos)
self.switchslot.ClearSlot(1)
self.switchslot.SetItemSlot(1, itemIndex, itemCount)
def OnUpdate(self):
self.refresh(self.slotitem,self.slotgira)
AFFECT_DICT = {
item.APPLY_MAX_HP : locale.TOOLTIP_MAX_HP,
item.APPLY_MAX_SP : locale.TOOLTIP_MAX_SP,
item.APPLY_CON : locale.TOOLTIP_CON,
item.APPLY_INT : locale.TOOLTIP_INT,
item.APPLY_STR : locale.TOOLTIP_STR,
item.APPLY_DEX : locale.TOOLTIP_DEX,
item.APPLY_ATT_SPEED : locale.TOOLTIP_ATT_SPEED,
item.APPLY_MOV_SPEED : locale.TOOLTIP_MOV_SPEED,
item.APPLY_CAST_SPEED : locale.TOOLTIP_CAST_SPEED,
item.APPLY_HP_REGEN : locale.TOOLTIP_HP_REGEN,
item.APPLY_SP_REGEN : locale.TOOLTIP_SP_REGEN,
item.APPLY_POISON_PCT : locale.TOOLTIP_APPLY_POISON_PCT,
item.APPLY_STUN_PCT : locale.TOOLTIP_APPLY_STUN_PCT,
item.APPLY_SLOW_PCT : locale.TOOLTIP_APPLY_SLOW_PCT,
item.APPLY_CRITICAL_PCT : locale.TOOLTIP_APPLY_CRITICAL_PCT,
item.APPLY_PENETRATE_PCT : locale.TOOLTIP_APPLY_PENETRATE_PCT,
item.APPLY_ATTBONUS_WARRIOR : locale.TOOLTIP_APPLY_ATTBONUS_WARRIOR,
item.APPLY_ATTBONUS_ASSASSIN : locale.TOOLTIP_APPLY_ATTBONUS_ASSASSIN,
item.APPLY_ATTBONUS_SURA : locale.TOOLTIP_APPLY_ATTBONUS_SURA,
item.APPLY_ATTBONUS_SHAMAN : locale.TOOLTIP_APPLY_ATTBONUS_SHAMAN,
item.APPLY_ATTBONUS_MONSTER : locale.TOOLTIP_APPLY_ATTBONUS_MONSTER,
item.APPLY_ATTBONUS_HUMAN : locale.TOOLTIP_APPLY_ATTBONUS_HUMAN,
item.APPLY_ATTBONUS_ANIMAL : locale.TOOLTIP_APPLY_ATTBONUS_ANIMAL,
item.APPLY_ATTBONUS_ORC : locale.TOOLTIP_APPLY_ATTBONUS_ORC,
item.APPLY_ATTBONUS_MILGYO : locale.TOOLTIP_APPLY_ATTBONUS_MILGYO,
item.APPLY_ATTBONUS_UNDEAD : locale.TOOLTIP_APPLY_ATTBONUS_UNDEAD,
item.APPLY_ATTBONUS_DEVIL : locale.TOOLTIP_APPLY_ATTBONUS_DEVIL,
item.APPLY_STEAL_HP : locale.TOOLTIP_APPLY_STEAL_HP,
item.APPLY_STEAL_SP : locale.TOOLTIP_APPLY_STEAL_SP,
item.APPLY_MANA_BURN_PCT : locale.TOOLTIP_APPLY_MANA_BURN_PCT,
item.APPLY_DAMAGE_SP_RECOVER : locale.TOOLTIP_APPLY_DAMAGE_SP_RECOVER,
item.APPLY_BLOCK : locale.TOOLTIP_APPLY_BLOCK,
item.APPLY_DODGE : locale.TOOLTIP_APPLY_DODGE,
item.APPLY_RESIST_SWORD : locale.TOOLTIP_APPLY_RESIST_SWORD,
item.APPLY_RESIST_TWOHAND : locale.TOOLTIP_APPLY_RESIST_TWOHAND,
item.APPLY_RESIST_DAGGER : locale.TOOLTIP_APPLY_RESIST_DAGGER,
item.APPLY_RESIST_BELL : locale.TOOLTIP_APPLY_RESIST_BELL,
item.APPLY_RESIST_FAN : locale.TOOLTIP_APPLY_RESIST_FAN,
item.APPLY_RESIST_BOW : locale.TOOLTIP_RESIST_BOW,
item.APPLY_RESIST_FIRE : locale.TOOLTIP_RESIST_FIRE,
item.APPLY_RESIST_ELEC : locale.TOOLTIP_RESIST_ELEC,
item.APPLY_RESIST_MAGIC : locale.TOOLTIP_RESIST_MAGIC,
item.APPLY_RESIST_WIND : locale.TOOLTIP_APPLY_RESIST_WIND,
item.APPLY_REFLECT_MELEE : locale.TOOLTIP_APPLY_REFLECT_MELEE,
item.APPLY_REFLECT_CURSE : locale.TOOLTIP_APPLY_REFLECT_CURSE,
item.APPLY_POISON_REDUCE : locale.TOOLTIP_APPLY_POISON_REDUCE,
item.APPLY_KILL_SP_RECOVER : locale.TOOLTIP_APPLY_KILL_SP_RECOVER,
item.APPLY_EXP_DOUBLE_BONUS : locale.TOOLTIP_APPLY_EXP_DOUBLE_BONUS,
item.APPLY_GOLD_DOUBLE_BONUS : locale.TOOLTIP_APPLY_GOLD_DOUBLE_BONUS,
item.APPLY_ITEM_DROP_BONUS : locale.TOOLTIP_APPLY_ITEM_DROP_BONUS,
item.APPLY_POTION_BONUS : locale.TOOLTIP_APPLY_POTION_BONUS,
item.APPLY_KILL_HP_RECOVER : locale.TOOLTIP_APPLY_KILL_HP_RECOVER,
item.APPLY_IMMUNE_STUN : locale.TOOLTIP_APPLY_IMMUNE_STUN,
item.APPLY_IMMUNE_SLOW : locale.TOOLTIP_APPLY_IMMUNE_SLOW,
item.APPLY_IMMUNE_FALL : locale.TOOLTIP_APPLY_IMMUNE_FALL,
item.APPLY_BOW_DISTANCE : locale.TOOLTIP_BOW_DISTANCE,
item.APPLY_DEF_GRADE_BONUS : locale.TOOLTIP_DEF_GRADE,
item.APPLY_ATT_GRADE_BONUS : locale.TOOLTIP_ATT_GRADE,
item.APPLY_MAGIC_ATT_GRADE : locale.TOOLTIP_MAGIC_ATT_GRADE,
item.APPLY_MAGIC_DEF_GRADE : locale.TOOLTIP_MAGIC_DEF_GRADE,
item.APPLY_MAX_STAMINA : locale.TOOLTIP_MAX_STAMINA,
item.APPLY_MALL_ATTBONUS : locale.TOOLTIP_MALL_ATTBONUS,
item.APPLY_MALL_DEFBONUS : locale.TOOLTIP_MALL_DEFBONUS,
item.APPLY_MALL_EXPBONUS : locale.TOOLTIP_MALL_EXPBONUS,
item.APPLY_MALL_ITEMBONUS : locale.TOOLTIP_MALL_ITEMBONUS,
item.APPLY_MALL_GOLDBONUS : locale.TOOLTIP_MALL_GOLDBONUS,
item.APPLY_SKILL_DAMAGE_BONUS : locale.TOOLTIP_SKILL_DAMAGE_BONUS,
item.APPLY_NORMAL_HIT_DAMAGE_BONUS : locale.TOOLTIP_NORMAL_HIT_DAMAGE_BONUS,
item.APPLY_SKILL_DEFEND_BONUS : locale.TOOLTIP_SKILL_DEFEND_BONUS,
item.APPLY_NORMAL_HIT_DEFEND_BONUS : locale.TOOLTIP_NORMAL_HIT_DEFEND_BONUS,
item.APPLY_PC_BANG_EXP_BONUS : locale.TOOLTIP_MALL_EXPBONUS_P_STATIC,
item.APPLY_PC_BANG_DROP_BONUS : locale.TOOLTIP_MALL_ITEMBONUS_P_STATIC,
item.APPLY_RESIST_WARRIOR : locale.TOOLTIP_APPLY_RESIST_WARRIOR,
item.APPLY_RESIST_ASSASSIN : locale.TOOLTIP_APPLY_RESIST_ASSASSIN,
item.APPLY_RESIST_SURA : locale.TOOLTIP_APPLY_RESIST_SURA,
item.APPLY_RESIST_SHAMAN : locale.TOOLTIP_APPLY_RESIST_SHAMAN,
item.APPLY_MAX_HP_PCT : locale.TOOLTIP_APPLY_MAX_HP_PCT,
item.APPLY_MAX_SP_PCT : locale.TOOLTIP_APPLY_MAX_SP_PCT,
item.APPLY_ENERGY : locale.TOOLTIP_ENERGY,
item.APPLY_COSTUME_ATTR_BONUS : locale.TOOLTIP_COSTUME_ATTR_BONUS,
}