Servus,
kann gut möglich sein das es den ein oder anderen nervt das man wegen soetwas "einfachen" fragen muss,
aber lieber fragen und auf die Hilfe anderer hoffen als Stundenlang selber nachzuschauen und am Ende auf kein Ergebnis zu kommen.
Also wem es nicht passt, bitte einfach wieder wegklicken.
Folgendes Problem, ich hab mir mal das Bonusboard geholt und eingefügt, ich möchte jedoch das Bonusboard um ein paar Boni erweitern,
das einfügen ist soweit kein Problem, die neuen Boni stehen auch dort, nur habe ich das Problem das der Wert der neuen Boni nicht angezeigt wird,
sprich hab ich 100% Widerstand gegen Durchbruch, wird es mir nicht dort angezeigt. Weiß jemand was ich genau Falsch gemacht habe das es dort nicht angezeigt wird?
Ich denke mal nicht das es an der Bonus ID (also die Nummer wie 90) oder so liegt, da es die richtigen Nummern sind, denke ich mal.
Ich hab mal meine .py hier im Spoiler drinne, vielleicht kann mir ja einer sagen was ich falsch gemacht habe oder was fehlt,
bitte nicht an der Aufteilung wundern, das ist extra so.
Ps es geht nur um die 3 Boni
- Widerstand gg Durchbruch
- Widerstand gg Krit
- Widerstand gg Halbmenschen
- #!/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": 60, "11": 60, "12": 16, "13": 24, "14": 16, "15": 30, "16": 30, "17": 50, "18": 100, "19": 100, "20": 100, "21": 100, "22": 100, "23": 20, "24": 40, "27": 15, "28": 30, "29": 72, "30": 72, "31": 72, "32": 72, "33": 72, "34": 72, "35": 60, "36": 60, "37": 40, "38": 60, "39": 20, "41": 10, "43": 60, "44": 60, "45": 40, "48": 1, "53": 50, "90": 1, "91": 1, "93": 1 }
- BonusDict = ["PvP Boni", "PvM Boni", "Special"]
- 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],["Widerstand ggn Krit", 90, 0],["Widerstand ggn Durchbruch", 91, 0],["Widerstand ggn Halbmensch", 93, 0]]
- 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", "Vitalität", "Intelligenz", "Stärke", "Ausweichwert", "Zaubergeschwindigkeit"]
- PvPDefenseBoni = ["Schwertverteidigung", "Zweihandverteidigung", "Dolchverteidigung", "Glockenverteidigung", "Fächerverteidigung", "Pfeilwiderstand", "Pfeilangriff ausweichen", "Magieverteidigung", "Nahkampf-Angriff blocken", "Immun gegen Ohnmacht"]
- PvMOffenseBoni = ["Stark gegen Monster", "Stark ggn Teufel", "Stark ggn Untote", "Stark ggn Tiere", "Stark ggn Orks", "Stark ggn Esoterische", "Ohnmachtschance", "Vergiftungschance", "Angriffsgeschwindigkeit", "Angriffswert"]
- PvMDefenseBoni = ["Max. TP", "Max. MP", "Nahkampf-Angriff blocken", "TP-Regeneration", "MP-Regeneration", "TP-Absorbierung", "MP-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", "Widerstand ggn Krit", "Widerstand ggn Durchbruch", "Widerstand ggn Halbmensch", ]
- 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(313, 420)
- self.Board.SetCenterPosition()
- self.Board.AddFlag("movable")
- self.Board.AddFlag("float")
- self.Board.SetTitleName("Bonusboard Yuhiro2")
- self.Board.SetCloseEvent(self.__del__)
- self.Board.Show()
- Vertical = ui.Line()
- Vertical.SetParent(self.Board)
- Vertical.SetPosition(8, 60)
- Vertical.SetSize(297, 0)
- Vertical.SetColor(0xff777777)
- Vertical.Show()
- self.UI.append(Vertical)
- x = 25
- 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(x, 380)
- ChangeBonusDict.SetEvent(lambda arg = ChangeBonusDict.GetText(): self.ChangeBonusDict(arg))
- ChangeBonusDict.Show()
- x += 88
- self.UI.append(ChangeBonusDict)
- x = 55
- Type = ["Offensiv", "Defensiv"]
- 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 = [[25, 70], [25, 100], [25, 130], [25, 160], [25, 190], [25, 220], [25, 250], [25, 280], [25, 310], [25, 340]]
- Defense = [[170, 70], [170, 100], [170, 130], [170, 160], [170, 190], [170, 220], [170, 250], [170, 280], [170, 310], [170, 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()
- #BonusBoardDialog().Hide()