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

[Problem] Pomoc z okienkiem


Rekomendowane odpowiedzi

Opublikowano

no wiec tak mam dodane okienko bonusow pod przyciskiem , ale nie mam pojecia jak zrobic pare rzeczy , Dodac wylaczanie okienka kiedy kliknie sie escape , kiedy dodaje

 

   def OnPressEscapeKey(self):
        self.Board.Hide()
        game.BPisLoaded = 0
        return TRUE

okno sie wylacza po klineciu escape ale reszta okienek sie buguje a samo okienko bo wylaczeniu.wlaczeniu kilka razy zaczyna migac na ekranie..
2 problem to nie ogarniam jak zrobic to zeby , nizemozna bylo towrzyc kilka okien naraz nimy mam dodana zmienna ale cos niedziala , po kliknieciu na button nadal mozna wlaczyc okienko kilka razy.
3. poroblem , raczej pytanie jak zrobic wylaczenie pod buttonem , tutaj to samo mam cos problem z ta zmienna
Tu uibonuspage.py

#!/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": 999000, "2": 999, "3": 999, "4": 999, "5": 999, "6": 999, "7": 999, "9": 999, "10": 999, "11": 999, "12": 999, "13": 999, "14": 999, "15": 999, "16": 999, "17": 999, "18": 999, "19": 999, "20": 999, "21": 999, "22": 999, "23": 999, "24": 999, "27": 999, "28": 999, "29": 999, "30": 999, "31": 999, "32": 999, "33": 999, "34": 999, "35": 999, "36": 999, "37": 999, "38": 999, "39": 999, "41": 999, "43": 999, "44": 999, "45": 999, "48": 1, "53": 999 }
    BonusDict = ["PvP Bonus", "PvM Bonus", "Inne"]
    BonusIDListe = [["", 0, 0],["Max PŻ", 1, 0],["Max PE", 2, 0],["Energia Życiowa", 3, 0],["Inteligencja", 4, 0],["Siła", 5, 0],["Zręczność", 6, 0],["Szybkość Ataku", 7, 0],["Szybkość Poruszania się", 8, 0],["Szybkość Zaklęcia", 9, 0],["Regeneracja PŻ", 10, 32],["Regeneracja PE", 11, 33],["Szansa na Otrucie", 12, 37],["Szansa na Omdlenie", 13, 38],["Szansa na Spowolnienie", 14, 39],["Szansa na Krytyka", 15, 40],["Szansa na Przeszywke", 16, 41],["Silny vs Ludziom", 17, 43],["Silny vs Zwierzetom", 18, 44],["Silny vs Orkom", 19, 45],["Silny vs Mistykom ", 20, 46],["Silny vs Nieumarlym", 21, 47],["Silny vs Diabłom", 22, 48],["Kradzież życia", 23, 63],["Kradzież many", 24, 64],["Szansa na Kradzież PE", 25, 65],["Szansa na Kradzież PŻ", 26, 66],["Szansa na blok Ciosów", 27, 67],["Szansa na Uniknięcie strzały", 28, 68],["Odporność na Miecze", 29, 69],["Odporność na 2-Ręczną", 30, 70],["Odporność na Sztyety", 31, 71],["Odporność na Dzwony", 32, 72],["Odporność na Wachlarze", 33, 73],["Odporność na Strzały", 34, 74],["Odpornosc na Ogień", 35, 75],["Odpornosc na Błyskawice", 36, 76],["Odporność na Magie", 37, 77],["Odporność na Wiatr", 38, 78],["Blok Ciosów", 39, 79],["Odbicie ciosow", 40, 80],["Odporność na Trucizny", 41, 81],["SP Yükselmesi Deđiţimi", 42, 82],["Szansa na BONUS Doś.", 43, 83],["Szansa na 2x ilość yang", 44, 84],["Szansa na 2x ilość Przedmiotów", 45, 85],["Mikstury (ileś) % efekt podniesiony", 46, 86],["Szansa na odzyskanie PŻ", 47, 87],["Niewrazliwy na Omdlenia", 48, 88],["Niewrazliwy na spowolnienie", 49, 89],["Niewrazliwy na Upadek", 50, 90],["APPLY_SKILL", 51, 0],["Yay Menzili", 52, 95],["Wartość Atak", 53, 0],["Obrona", 54, 96],["Büyülü Wartość Atak", 55, 97],["Büyü Obronasý", 56, 98],["", 57, 0],["Maks. Dayanýklýk", 58, 0],["Silny vs Wojownikom", 59, 54],["Silny vs Ninjom", 60, 55],["Silny vs Surom", 61, 56],["Silny vs Szamanom", 62, 57],["Silny vs Potworom", 63, 53],["Silny vs potworom", 64, 114],["Obrona", 65, 115],["Itemshop Szansa na BONUS Doś.", 66, 116],["Itemshop Item-Bonus", 67, 117],["Itemshop Yang-Bonus", 68, 118],["APPLY_MAX_HP_PCT", 69, 119],["APPLY_MAX_SP_PCT", 70, 120],["Umiejetności", 71, 121],["Średnie", 72, 122],["Umiejetnościna Direniţ", 73, 123],["Średniea Direniţ", 74, 124],["", 75, 0],["iCafe Szansa na BONUS Doś.", 76, 125],["iCafe Item-Bonus", 77, 126],["Odporność na Wojownika", 78, 59],["Odpornośc na Ninje", 79, 60],["Odporność na Sure", 80, 61],["Odporność na Szamana", 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 = ["Silny vs Ludziom", "Szansa na Krytyka", "Szansa na Przeszywke", "Średnie", "Umiejetności", "Energia Życiowa", "Inteligencja", "Siła", "Zręczność", "Szybkość Zaklęcia"]
    PvPDefenseBoni = ["Odporność na Miecze", "Odporność na 2-Ręczną", "Odporność na Sztyety", "Odporność na Dzwony", "Odporność na Wachlarze", "Odporność na Strzały", "Szansa na Uniknięcie strzały", "Odporność na Magie", "Szansa na blok Ciosów", "Niewrazliwy na Omdlenia"]
    PvMOffenseBoni = ["Silny vs Potworom", "Silny vs Diabłom", "Silny vs Nieumarlym", "Silny vs Zwierzetom", "Silny vs Orkom", "Silny vs Mistykom ", "Szansa na Omdlenie", "Szansa na Otrucie", "Szybkość Ataku", "Wartość Atak"]
    PvMDefenseBoni = ["Max PŻ", "Max PE", "Szansa na blok Ciosów", "Regeneracja PŻ", "Regeneracja PE", "Kradzież życia", "Kradzież many", "Szansa na BONUS Doś.", "Szansa na 2x ilość yang", "Szansa na 2x ilość Przedmiotów"]
    LeftoversOffenseBoni = ["Silny vs Wojownikom", "Silny vs Ninjom", "Silny vs Surom", "Silny vs Szamanom"]
    LeftoversDefenseBoni = ["Odporność na Wojownika", "Odpornośc na Ninje", "Odporność na Sure", "Odporność na Szamana", ]
 
    BonusList = []
    UI = []
    
    TestSystem = 0
    ProcessTimeStamp = 0
    
    def OnPressEscapeKey(self):
        self.Board.Hide()
        game.BPisLoaded = 0
        return TRUE
    
    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(360, 420)
        self.Board.SetCenterPosition()
        self.Board.AddFlag("movable")
        self.Board.AddFlag("float")
        self.Board.SetTitleName("Zakładka Bonus")
        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 = ["Atakujące", "Odpornościowe"]
        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()
 

wycinek z uiinventory.py

    #BONUS
        
    def ClickBonusPage(self):
        import uiBonusPage
        global BPisLoaded
        try:
            if BPisLoaded != 1:
                exec 'uiBonusPage.BonusBoardDialog().Show()'
            else:
                pass
        except ImportError:
            import dbg,app
            dbg.Trace('uiBonusPage.py Importing error')
            app.Abort()
            
    # BONUS
    
    # BONUS
    def __TeamLogin(self, name):
        if self.interface.wndMessenger:
            self.interface.wndMessenger.OnLogin(2, name)
 
    def __TeamLogout(self, name):
        if self.interface.wndMessenger:
            self.interface.wndMessenger.OnLogout(2, name)
    # BONUS

Prosze o jakies naprowadzenie bo dopiero sie ucze i totalnie nie ogarniam ;d

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...