[Problema]Buton Pagina Bonusuri in inventar.

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
F4NTOM4
Nivel 2

Nivel 2
Mesaje: 158
Membru din: 23 Aug 2014, 00:16
Server: BlackMt2Story
Regat: Jinno
Aprecieri: 33  
Mulţumiri: 11  
 Contact:
Medalii

Salut! Vreau sa implementez aceasta pagina de bonusuri in inventar , am facut butonul , apare unde trebuie dar cand apas pe el nu se intampla nimic.
inventorywindow.py
{
				"name" : "PaginaBonusuri",
				"type" : "button",

				"x" : 169,
				"y" : 74,

				"tooltip_text" : "Bonusuri",
							
				"default_image" : "locale/ro/ui/bp1.tga",
				"over_image" : "locale/ro/ui/bp2.tga",
				"down_image" : "locale/ro/ui/bp2.tga",                    
				},
uibonuspage.py
import ui
import chat
import app
import player
import snd
import item
import net
import game

class BonusBoardDialog(ui.ScriptWindow):
	MaxBoni = { "0": 20000, "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 }
	BonusDict = ["PvP", "PvM", "Lycan"]
	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],["Aparare Impotriva Ghearelor", 142, 142],["Sansa La Sangerare", 138, 138],["Rezistenta La Sangerare", 139, 139]]
	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 = ["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:"]
	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:"]
	PvMOffenseBoni = ["PV acumulat:", "Tare împotriva animalelor:", "Tare împotriva vampirilor:", "Tare împotriva orcilor:", "Absorbire PM:", "Rezistenþã la vânt:"]
	PvMDefenseBoni = ["PM acumulat:", "Tare împotriva monstrilor:", "Tare împotriva diavolului:", "Tare împotriva esoteriecilor:", "Absorbire PV:"]
	LeftoversOffenseBoni = ["Sansa La Sangerare"]
	LeftoversDefenseBoni = ["Aparare Impotriva Ghearelor","Rezistenta La Sangerare"]

	BonusList = []
	UI = []
	
	TestSystem = 0
	ProcessTimeStamp = 0
	
	def __init__(self):
		ui.ScriptWindow.__init__(self)
		self.LoadUI()
		self.bonusuri = 1
		game.bonuspp = 1
		
	def __del__(self):
		ui.ScriptWindow.__del__(self)
		self.Board.Hide()
		self.bonusuri = 0
		game.bonuspp = 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("Pagina De Bonusuri")
		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)
			ChangeBonusDict.SetPosition(x, 380)
			ChangeBonusDict.SetEvent(lambda arg = ChangeBonusDict.GetText(): self.ChangeBonusDict(arg))
			ChangeBonusDict.Show()
			x += 88
			self.UI.append(ChangeBonusDict)
		
		x = 55
		Type = ["Ofensive", "Defensive"]
		for i in xrange(2):
			BonusDescription = ui.TextLine()
			BonusDescription.SetParent(self.Board)
			BonusDescription.SetPosition(x, 35)
			BonusDescription.SetText(str(Type))
			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):
		import dbg
		dbg.TraceError(str(player.GetStatus(138)))

		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()
		import dbg
		dbg.TraceError(str(player.GetStatus(138)))

Ce am adaugat in uiinventory:
Am cautat:
import localeInfo

Sub am adaugat:
import uibonuspage

Am cautat
class CostumeWindow(ui.ScriptWindow):

Am adaugat deasupra:
if localeInfo.IsCIBN10():
	SCREENSHOT_CWDSAVE = FALSE
        SCREENSHOT_DIR = "YT2W"
BPisLodaded = 0

Am cautat
self.wndMoneySlot = self.GetChild("Money_Slot")

Sub am adaugat:
self.uibonuspage = self.GetChild2("PaginaBonusuri")
self.uibonuspage = ui.Button()
self.uibonuspage.SetEvent(ui.__mem_func__(self.ClickBonusuri))
self.uibonuspage.Show()

Am cautat:
if self.mallButton:
			self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

Sub am adaugat:
if self.uibonuspage:
			self.uibonuspage.SetEvent(ui.__mem_func__(self.ClickBonusuri))

Am cautat:
def ClickMallButton(self):
		print "click_mall_button"
		net.SendChatPacket("/click_mall")

Sub am adaugat:
def ClickBonusuri(self):
		import event
		import uibonuspage
		global BPisLodaded
		try:
			if BPisLodaded == 0:
				BPisLodaded = 1
				exec 'uibonuspage.BonusBoardDialog().Show()'
			else:
				exec 'uibonuspage.BonusBoardDialog().Hide()'
				BPisLodaded = 0
		except ImportError:
			import dbg,app
			dbg.Trace('uibonuspage.py Importing error')
			app.Abort
Imagine
Afișează semnătura
Avatar utilizator
[Tupeu]
Membru de Elita

Membru de Elita
Mesaje: 4101
Membru din: 28 Oct 2015, 16:16
Aprecieri: 35  
Mulţumiri: 2304  
 Contact:
Medalii

Incearca asa:

Cauta:

Cod: Selectaţi tot

self.wndMoneySlot = self.GetChild("Money_Slot")
Adauga sub:

Cod: Selectaţi tot

self.uibonuspage = self.GetChild2("PaginaBonusuri")
Restul lasa asa.
Avatar utilizator
FRANCIS
Administrator Adjunct

Administrator Adjunct
Mesaje: 7879
Membru din: 06 Noi 2015, 19:52
Regat: Chunjo
Aprecieri: 334  
Mulţumiri: 54529  
Discord: Copiază ID
Medalii

If you talk to a man in a language he understands, that goes to his head. If you talk to him in his own language, that goes to his heart.
Imagine
ENJOY
Imagine
Afișează semnătura
Avatar utilizator
Zerant :3
Nivel 4

Nivel 4
Mesaje: 723
Membru din: 17 Oct 2015, 12:53
Server: Velor2
Regat: Jinno
Aprecieri: 15  
Mulţumiri: 141  
Discord: Copiază ID
Medalii

Subiect vechi >> Arhivat
Închis
Răspunsuri
11
Vizualizări
1708
Răspunsuri
1
Vizualizări
96
Răspunsuri
1
Vizualizări
154

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 75 vizitatori