Advertisement
Guest User

bonus page

a guest
Oct 31st, 2014
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.60 KB | None | 0 0
  1. import ui
  2. import chat
  3. import app
  4. import player
  5. import snd
  6. import item
  7. import net
  8. import game
  9.  
  10. class BonusBoardDialog(ui.ScriptWindow):
  11.     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 }
  12.     BonusDict = ["Bonusuri PvP", "Bonusuri PvM", "Bonusuri extra"]
  13.     BonusIDListe = [["", 0, 0],["PV acumulat:", 1, 0],["PM acumulat:", 2, 0],["Viteza farmecului:", 9, 0],["Regenerare PV:", 10, 32],["Regenerare PM:", 11, 33],["ªansa de otrãvire:", 12, 37],["ªansa de blocare:", 13, 38],["ªansa unei lov. critice:", 15, 40],["ªansa unei lov. pãtr:", 16, 41],["Tare împotriva semi-om:", 17, 43],["Tare împotriva animalelor:", 18, 44],["Tare împotriva orcilor:", 19, 45],["Tare împotriva esoteriecilor:", 20, 46],["Tare împotriva vampirilor:", 21, 47],["Tare împotriva diavolului:", 22, 48],["Absorbire PV:", 23, 63],["Absorbire PM:", 24, 64],["Blocare atac corporal:", 27, 67],["Evitare atac cu sãgeþi:", 28, 68],["Apãrare cu sabia:", 29, 69],["Apãrare cu douã mâini:", 30, 70],["Apãrare pumnal:", 31, 71],["Apãrare clopot:", 32, 72],["Apãrare evantai:", 33, 73],["Rezistenþã la sãgeþi:", 34, 74],["Rezistenþã la foc:", 35, 75],["Rezistenþã la magie:", 37, 77],["Rezistenþã la vânt:", 38, 78],["Rezistenþã la otravã:", 41, 81],["Bonus exp acumulat:", 43, 83],["Bonus yang acumulat:", 44, 84],["Bonus drop acumulat:", 45, 85],["APPLY_SKILL", 51, 0],["Valoarea atacului:", 53, 0],["Tare împotriva monstrilor:", 63, 53]]
  14.     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" }
  15.     PvPOffenseBoni = ["Tare împotriva semi-om:", "ªansa unei lov. critice:", "ªansa unei lov. pãtr:", "Viteza farmecului:", "Valoarea atacului:", "ªansa de otrãvire:", "ªansa de blocare:", "Rezistenþã la otravã:", "Rezistenþã la foc:", "Regenerare PM:"]
  16.     PvPDefenseBoni = ["Apãrare cu sabia:", "Apãrare cu douã mâini:", "Apãrare pumnal:", "Apãrare clopot:", "Apãrare evantai:", "Rezistenþã la sãgeþi:", "Evitare atac cu sãgeþi:", "Rezistenþã la magie:", "Blocare atac corporal:", "Regenerare PV:"]
  17.     PvMOffenseBoni = ["PV acumulat:", "Tare împotriva animalelor:", "Tare împotriva vampirilor:", "Tare împotriva orcilor:", "Absorbire PM:", "Rezistenþã la vânt:"]
  18.     PvMDefenseBoni = ["PM acumulat:", "Tare împotriva monstrilor:", "Tare împotriva diavolului:", "Tare împotriva esoteriecilor:", "Absorbire PV:"]
  19.     LeftoversOffenseBoni = ["Bonus exp acumulat:", "Bonus yang acumulat:"]
  20.     LeftoversDefenseBoni = ["Bonus drop acumulat:"]
  21.  
  22.     BonusList = []
  23.     UI = []
  24.    
  25.     TestSystem = 0
  26.     ProcessTimeStamp = 0
  27.    
  28.     def __init__(self):
  29.         ui.ScriptWindow.__init__(self)
  30.         self.LoadUI()
  31.         game.BPisLoaded = 1
  32.        
  33.     def __del__(self):
  34.         ui.ScriptWindow.__del__(self)
  35.         self.Board.Hide()
  36.         game.BPisLoaded = 0
  37.  
  38.     def LoadUI(self):
  39.         self.Board = ui.BoardWithTitleBar()
  40.         self.Board.SetSize(343, 418)
  41.         self.Board.SetCenterPosition()
  42.         self.Board.AddFlag("movable")
  43.         self.Board.AddFlag("float")
  44.         self.Board.SetTitleName("Statistici bonusuri active")
  45.         self.Board.SetCloseEvent(self.__del__)
  46.         self.Board.Show()
  47.        
  48.         Vertical = ui.Line()
  49.         Vertical.SetParent(self.Board)
  50.         Vertical.SetPosition(23, 60)
  51.         Vertical.SetSize(298, 0)
  52.         Vertical.SetColor(0xff777777)
  53.         Vertical.Show()
  54.         self.UI.append(Vertical)
  55.        
  56.         x = 25
  57.         for i in xrange(3):
  58.             ChangeBonusDict = ui.Button()
  59.             ChangeBonusDict.SetParent(self.Board)
  60.             ChangeBonusDict.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
  61.             ChangeBonusDict.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
  62.             ChangeBonusDict.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
  63.             ChangeBonusDict.SetText(self.BonusDict[i])
  64.             ChangeBonusDict.SetPosition(x, 380)
  65.             ChangeBonusDict.SetEvent(lambda arg = ChangeBonusDict.GetText(): self.ChangeBonusDict(arg))
  66.             ChangeBonusDict.Show()
  67.             x += 97
  68.             self.UI.append(ChangeBonusDict)
  69.            
  70.         x = 50
  71.         Type = ["Bonusurile ofensive & defensive sunt afisate in timp real!"]
  72.         for i in xrange(1):
  73.             BonusDescription = ui.TextLine()
  74.             BonusDescription.SetParent(self.Board)
  75.             BonusDescription.SetPosition(x, 35)
  76.             BonusDescription.SetText(str(Type[i]))
  77.             BonusDescription.SetFontColor(4.0, 0.83, 0)
  78.             BonusDescription.Show()        
  79.             x += 150
  80.             self.UI.append(BonusDescription)
  81.  
  82.         self.SetBoni(self.BonusDict[0])
  83.         self.dict = self.BonusDict[0]
  84.        
  85.     def SetBoni(self, type):
  86.         Offense = [[25, 70], [25, 100], [25, 130], [25, 160], [25, 190], [25, 220], [25, 250], [25, 280], [25, 310], [25, 340]]
  87.         Defense = [[170, 70], [170, 100], [170, 130], [170, 160], [170, 190], [170, 220], [170, 250], [170, 280], [170, 310], [170, 340]]
  88.         for bonus in self.BonusIDListe:
  89.             if type == self.BonusDict[0]:
  90.                 self.CheckBonus(bonus, self.PvPOffenseBoni, Offense)
  91.                 self.CheckBonus(bonus, self.PvPDefenseBoni, Defense)
  92.             elif type == self.BonusDict[1]:
  93.                 self.CheckBonus(bonus, self.PvMOffenseBoni, Offense)
  94.                 self.CheckBonus(bonus, self.PvMDefenseBoni, Defense)
  95.             elif type == self.BonusDict[2]:
  96.                 self.CheckBonus(bonus, self.LeftoversOffenseBoni, Offense)
  97.                 self.CheckBonus(bonus, self.LeftoversDefenseBoni, Defense)
  98.             else:
  99.                 return
  100.                
  101.     def CheckBonus(self, bonus, bonuslist, offset):
  102.         for boni in bonuslist:
  103.             if bonus[0] == boni:
  104.                 try:
  105.                     Index = bonuslist.index(boni)
  106.                     BonusDescription = ui.TextLine()
  107.                     BonusDescription.SetParent(self.Board)
  108.                     BonusDescription.SetPosition(offset[Index][0], offset[Index][1])
  109.                     BonusDescription.SetText(str(bonus[0]))
  110.                     BonusDescription.Show()
  111.                    
  112.                     BonusSlotBar = ui.SlotBar()
  113.                     BonusSlotBar.SetParent(self.Board)
  114.                     BonusSlotBar.SetSize(125, 15)
  115.                     BonusSlotBar.SetPosition(offset[Index][0], offset[Index][1] + 15)
  116.                     BonusSlotBar.Show()
  117.                    
  118.                     BonusAttrLine = ui.TextLine()
  119.                     BonusAttrLine.SetParent(self.Board)
  120.                     BonusAttrLine.SetPosition(offset[Index][0] + 5, offset[Index][1] + 15)
  121.                    
  122.                     try:
  123.                         Type = self.SpecialBoni[bonus[1]]
  124.                         Attribute = self.EquipAttribute(bonus)
  125.                     except:
  126.                         Attribute = player.GetStatus(int(bonus[2]))
  127.                     if self.TestSystem != 1:
  128.                         BonusAttrLine.SetText(str(Attribute))
  129.                         try:
  130.                             if int(Attribute) >= int(self.MaxBoni[str(bonus[1])]):
  131.                                 BonusAttrLine.SetFontColor(1.0, 0.63, 0)
  132.                             else:
  133.                                 BonusAttrLine.SetFontColor(1, 1, 1)
  134.                         except:
  135.                             BonusAttrLine.SetFontColor(1, 1, 1)
  136.                     else:
  137.                         BonusAttrLine.SetText("Test system is active")
  138.                         BonusAttrLine.SetFontColor(0.1, 0.7, 1.0)
  139.                    
  140.                     BonusAttrLine.Show()
  141.                     self.BonusList.append([BonusDescription, BonusAttrLine, BonusSlotBar])
  142.                 except:
  143.                     pass       
  144.                
  145.     def EquipAttribute(self, bonus):
  146.         value = 0
  147.         for slot in xrange(90, 101):
  148.             for attr in xrange(0, 7):
  149.                 attr, val = player.GetItemAttribute(slot, attr)
  150.                 if int(attr) == bonus[1]:
  151.                     value += int(val)
  152.         return int(value)
  153.  
  154.     def ChangeBonusDict(self, dict):
  155.         self.dict = dict
  156.         for bonus in self.BonusList:
  157.             try:
  158.                 for array in bonus:
  159.                     array.Hide()
  160.             except:
  161.                 pass           
  162.         self.SetBoni(dict)
  163.        
  164.     def OnUpdate(self):
  165.         import item
  166.         if int(app.GetTime()) > int(self.ProcessTimeStamp) + 6:
  167.             self.SetBoni(self.dict)
  168.             self.ProcessTimeStamp = app.GetTime()
  169.  
  170. #BonusBoardDialog().Show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement