Hallo,
ich habe folgende Fehler beim nutzen der Antiexp Funktion und des Bonusboards in der Sidebar.
Antiexp macht beim betätigen des Buttons garnichts und das Bonusboard wird nicht richtig angezeigt, sprich es wird nur das Fenster ohne Inhalt angezeigt.
syserr.txt
Code
- 0105 15:47:25775 :: Traceback (most recent call last):
- 0105 15:47:25775 :: File "ui.py", line 1016, in CallEvent
- 0105 15:47:25775 :: File "game.py", line 2257, in ToggleAntiEXP
- 0105 15:47:25775 :: NameError
- 0105 15:47:25775 :: :
- 0105 15:47:25775 :: global name 'event' is not defined
- 0105 15:47:25775 ::
Zeile 2257 aus der game.py
syserr.txt
Code
- 0105 15:50:34978 :: Traceback (most recent call last):
- 0105 15:50:34978 :: File "ui.py", line 1016, in CallEvent
- 0105 15:50:34978 :: File "game.py", line 2288, in __BonusPage
- 0105 15:50:34979 :: File "<string>", line 1, in <module>
- 0105 15:50:34979 :: File "uiBonusPage.py", line 32, in __init__
- 0105 15:50:34979 :: File "uiBonusPage.py", line 67, in LoadUI
- 0105 15:50:34979 :: AttributeError
- 0105 15:50:34979 :: :
- 0105 15:50:34979 :: 'Button' object has no attribute 'GetText'
- 0105 15:50:34979 ::
game.py
Python
Datei uibonuspage.py
Python
- #!/usr/bin/python
- # -*- coding: latin-1 -*-
- import ui
- import chat
- import app
- import player
- import snd
- import item
- import net
- import game
- class BonusBoardDialog(ui.ScriptWindow):
- MaxBoni = { "1": 16000, "2": 320, "3": 32, "4": 32, "5": 32, "6": 32, "7": 16, "9": 40, "10": 120, "11": 120, "12": 40, "13": 30, "14": 30, "15": 190, "16": 80, "17": 315, "18": 125, "19": 125, "20": 125, "21": 125, "22": 125, "23":40, "24": 40, "27": 40, "28": 40, "29": 80, "30": 80, "31": 80, "32": 80, "33": 80, "34": 80, "35": 40, "36": 40, "37": 85, "38": 40, "39": 40, "41": 30, "43": 90, "44": 90, "45": 60, "48": 1, "63": 675, "53": 50 }
- BonusDict = ["PvP Boni", "PvM Boni", "Andere"]
- BonusIDListe = [["", 0, 0],["Max. TP", 1, 0],["Max. MP", 2, 0],["Vitalität", 3, 0],["Intelligenz", 4, 0],["Stärke", 5, 0],["Ausweichwert", 6, 0],["Angriffsgeschwindigkeit", 7, 0],["Bewegungsgeschwindigkeit", 8, 0],["Zaubergeschwindigkeit", 9, 0],["TP-Regeneration", 10, 32],["MP-Regeneration", 11, 33],["Vergiftungschance", 12, 37],["Ohnmachtschance", 13, 38],["Verlangsamungschance", 14, 39],["Kritischer Treffer", 15, 40],["Durchbohrender Treffer", 16, 41],["Stark ggn Halbmenschen", 17, 43],["Stark ggn Tiere", 18, 44],["Stark ggn Orks", 19, 45],["Stark ggn Esoterische", 20, 46],["Stark ggn Untote", 21, 47],["Stark ggn Teufel", 22, 48],["TP-Absorbierung", 23, 63],["MP-Absorbierung", 24, 64],["Chance auf Manaraub", 25, 65],["Chance MP-Regeneration", 26, 66],["Nahkampf-Angriff blocken", 27, 67],["Pfeilangriff ausweichen", 28, 68],["Schwertverteidigung", 29, 69],["Zweihandverteidigung", 30, 70],["Dolchverteidigung", 31, 71],["Glockenverteidigung", 32, 72],["Fächerverteidigung", 33, 73],["Pfeilwiderstand", 34, 74],["Feuerwiderstand", 35, 75],["Blitzwiderstand", 36, 76],["Magieverteidigung", 37, 77],["Windverteidigung", 38, 78],["Nahkampftreffer reflektieren", 39, 79],["Fluch reflektieren", 40, 80],["Giftverteidigung", 41, 81],["Chance MP wiederherzustellen", 42, 82],["Exp-Bonus", 43, 83],["Yang-Drop", 44, 84],["Item-Drop", 45, 85],["steigernde Trankwirkung", 46, 86],["Chance TP wiederherzustellen", 47, 87],["Immun gegen Ohnmacht", 48, 88],["Immun gegen Verlangsamung", 49, 89],["Immun gegen Stürzen", 50, 90],["APPLY_SKILL", 51, 0],["Pfeilreichweite", 52, 95],["Angriffswert", 53, 0],["Verteidigungswert", 54, 96],["Magischer Angriffswert", 55, 97],["Magischer Verteidigungswert", 56, 98],["", 57, 0],["Max. Ausdauer", 58, 0],["Stark gegen Krieger", 59, 54],["Stark gegen Ninjas", 60, 55],["Stark gegen Suras", 61, 56],["Stark gegen Schamanen", 62, 57],["Stark gegen Monster", 63, 53],["Itemshop Angriffswert", 64, 114],["Itemshop Verteidigungswert", 65, 115],["Itemshop Exp-Bonus", 66, 116],["Itemshop Item-Bonus", 67, 117],["Itemshop Yang-Bonus", 68, 118],["APPLY_MAX_HP_PCT", 69, 119],["APPLY_MAX_SP_PCT", 70, 120],["Fertigkeitsschaden", 71, 121],["Durchschn. Schaden", 72, 122],["Fertigkeitsschaden Widerstand", 73, 123],["Durchschn. Schadenswiderstand", 74, 124],["", 75, 0],["iCafe EXP-Bonus", 76, 125],["iCafe Item-Bonus", 77, 126],["Abwehr ggn Krieger", 78, 59],["Abwehr ggn Ninjas", 79, 60],["Abwehr ggn Suras", 80, 61],["Abwehr ggn Schamanen", 81, 62]]
- SpecialBoni = { 1: "Norm.State", 2: "Norm.State", 3: "Norm.State", 4: "Norm.State", 5: "Norm.State", 6: "Norm.State", 55: "Norm.State", 56: "Norm.State", 58: "Norm.State" }
- PvPOffenseBoni = ["Stark ggn Halbmenschen", "Kritischer Treffer", "Durchbohrender Treffer", "Durchschn. Schaden", "Fertigkeitsschaden", "Magieverteidigung"]
- PvPDefenseBoni = ["Schwertverteidigung", "Zweihandverteidigung", "Dolchverteidigung", "Glockenverteidigung", "Pfeilwiderstand", "Pfeilangriff ausweichen"]
- PvMOffenseBoni = ["Stark gegen Monster", "Stark ggn Teufel", "Stark ggn Untote", "Stark ggn Tiere", "Ohnmachtschance", "Vergiftungschance"]
- PvMDefenseBoni = ["Nahkampf-Angriff blocken", "TP-Regeneration", "TP-Absorbierung", "Exp-Bonus", "Yang-Drop", "Item-Drop"]
- LeftoversOffenseBoni = ["Stark gegen Krieger", "Stark gegen Ninjas", "Stark gegen Suras", "Stark gegen Schamanen"]
- LeftoversDefenseBoni = ["Abwehr ggn Krieger", "Abwehr ggn Ninjas", "Abwehr ggn Suras", "Abwehr ggn Schamanen", ]
- BonusList = []
- UI = []
- TestSystem = 0
- ProcessTimeStamp = 0
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.LoadUI()
- game.BPisLoaded = 1
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- self.Board.Hide()
- game.BPisLoaded = 0
- def LoadUI(self):
- self.Board = ui.BoardWithTitleBar()
- self.Board.SetSize(420, 313)
- self.Board.SetCenterPosition()
- self.Board.AddFlag("movable")
- self.Board.AddFlag("float")
- self.Board.SetTitleName("BonusBoard")
- self.Board.SetCloseEvent(self.__del__)
- self.Board.Show()
- Vertical = ui.Line()
- Vertical.SetParent(self.Board)
- Vertical.SetPosition(8, 60)
- Vertical.SetSize(400, 0)
- Vertical.SetColor(0xff777777)
- Vertical.Show()
- self.UI.append(Vertical)
- x = 100
- for i in xrange(3):
- ChangeBonusDict = ui.Button()
- ChangeBonusDict.SetParent(self.Board)
- ChangeBonusDict.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
- ChangeBonusDict.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
- ChangeBonusDict.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
- ChangeBonusDict.SetText(self.BonusDict[i])
- ChangeBonusDict.SetPosition(15, x)
- ChangeBonusDict.SetEvent(lambda arg = ChangeBonusDict.GetText(): self.ChangeBonusDict(arg))
- ChangeBonusDict.Show()
- x += 50
- self.UI.append(ChangeBonusDict)
- x = 55
- Type = [" RG-Network Bonusboard", ""]
- for i in xrange(2):
- BonusDescription = ui.TextLine()
- BonusDescription.SetParent(self.Board)
- BonusDescription.SetPosition(x, 35)
- BonusDescription.SetText(str(Type[i]))
- BonusDescription.SetFontColor(1.0, 0.63, 0)
- BonusDescription.Show()
- x += 150
- self.UI.append(BonusDescription)
- self.SetBoni(self.BonusDict[0])
- self.dict = self.BonusDict[0]
- def SetBoni(self, type):
- Offense = [[125, 70], [125, 100], [125, 130], [125, 160], [125, 190], [125, 220], [125, 250], [125, 280], [125, 310], [125, 340]]
- Defense = [[270, 70], [270, 100], [270, 130], [270, 160], [270, 190], [270, 220], [270, 250], [270, 280], [270, 310], [270, 340]]
- for bonus in self.BonusIDListe:
- if type == self.BonusDict[0]:
- self.CheckBonus(bonus, self.PvPOffenseBoni, Offense)
- self.CheckBonus(bonus, self.PvPDefenseBoni, Defense)
- elif type == self.BonusDict[1]:
- self.CheckBonus(bonus, self.PvMOffenseBoni, Offense)
- self.CheckBonus(bonus, self.PvMDefenseBoni, Defense)
- elif type == self.BonusDict[2]:
- self.CheckBonus(bonus, self.LeftoversOffenseBoni, Offense)
- self.CheckBonus(bonus, self.LeftoversDefenseBoni, Defense)
- else:
- return
- def CheckBonus(self, bonus, bonuslist, offset):
- for boni in bonuslist:
- if bonus[0] == boni:
- try:
- Index = bonuslist.index(boni)
- BonusDescription = ui.TextLine()
- BonusDescription.SetParent(self.Board)
- BonusDescription.SetPosition(offset[Index][0], offset[Index][1])
- BonusDescription.SetText(str(bonus[0]))
- BonusDescription.Show()
- BonusSlotBar = ui.SlotBar()
- BonusSlotBar.SetParent(self.Board)
- BonusSlotBar.SetSize(115, 15)
- BonusSlotBar.SetPosition(offset[Index][0], offset[Index][1] + 15)
- BonusSlotBar.Show()
- BonusAttrLine = ui.TextLine()
- BonusAttrLine.SetParent(self.Board)
- BonusAttrLine.SetPosition(offset[Index][0] + 5, offset[Index][1] + 15)
- try:
- Type = self.SpecialBoni[bonus[1]]
- Attribute = self.EquipAttribute(bonus)
- except:
- Attribute = player.GetStatus(int(bonus[2]))
- if self.TestSystem != 1:
- BonusAttrLine.SetText(str(Attribute))
- try:
- if int(Attribute) >= int(self.MaxBoni[str(bonus[1])]):
- BonusAttrLine.SetFontColor(1.0, 0.63, 0)
- else:
- BonusAttrLine.SetFontColor(1, 1, 1)
- except:
- BonusAttrLine.SetFontColor(1, 1, 1)
- else:
- BonusAttrLine.SetText("Test system is active")
- BonusAttrLine.SetFontColor(0.1, 0.7, 1.0)
- BonusAttrLine.Show()
- self.BonusList.append([BonusDescription, BonusAttrLine, BonusSlotBar])
- except:
- pass
- def EquipAttribute(self, bonus):
- value = 0
- for slot in xrange(90, 101):
- for attr in xrange(0, 7):
- attr, val = player.GetItemAttribute(slot, attr)
- if int(attr) == bonus[1]:
- value += int(val)
- return int(value)
- def ChangeBonusDict(self, dict):
- self.dict = dict
- for bonus in self.BonusList:
- try:
- for array in bonus:
- array.Hide()
- except:
- pass
- self.SetBoni(dict)
- def OnUpdate(self):
- import item
- if int(app.GetTime()) > int(self.ProcessTimeStamp) + 6:
- self.SetBoni(self.dict)
- self.ProcessTimeStamp = app.GetTime()
- #BonusBoardDialog().Show()