Jump to content

Seryov

Member
  • Posts

    89
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Seryov

  1. Hello, I'm testing the class "BigBoardControl"

    Code:
     

    	class BigBoardControl(ui.Bar):
    
    		FONT_WIDTH	= 18
    		FONT_HEIGHT	= 18
    		LINE_WIDTH  = 500
    		LINE_HEIGHT	= FONT_HEIGHT + 5
    		STEP_HEIGHT = LINE_HEIGHT * 2
    		LINE_CHANGE_LIMIT_WIDTH = 450
    		BIG_TEXTBAR_MAX_HIGHT = 1000
    
    		FRAME_IMAGE_FILE_NAME_LIST = [
    			"season1/interface/oxevent/frame_new_0.sub",
    			"season1/interface/oxevent/frame_new_1.sub",
    		]
    
    		FRAME_IMAGE_STEP = 256
    
    		FRAME_BASE_X = -20
    		FRAME_BASE_Y = -12
    
    		def __init__(self):
    			ui.Bar.__init__(self)
    
    			self.AddFlag("not_pick")
    			self.tipList = []
    			self.curPos = 0
    			self.dstPos = 0
    			self.nextScrollTime = 0
    			self.scrollstop = 0
    			self.pretexsize = 0
    			self.nexttextsize = 0
    			self.changeline = 0
    			self.addtipListcount = 0
    
    			self.SetPosition(0, 150)
    			self.SetSize(512, 55)
    			self.SetColor(grp.GenerateColor(0.0, 0.0, 0.0, 0.5))
    			self.SetWindowHorizontalAlignCenter()
    
    			self.__CreateTextBar()
    			self.__LoadFrameImages()
    
    
    		def __LoadFrameImages(self):
    			x = self.FRAME_BASE_X
    			y = self.FRAME_BASE_Y
    			self.imgList = []
    			for imgFileName in self.FRAME_IMAGE_FILE_NAME_LIST:
    				self.imgList.append(self.__LoadImage(x, y, imgFileName))
    
    		def __LoadImage(self, x, y, fileName):
    			img = ui.ImageBox()
    			img.SetParent(self)
    			img.AddFlag("not_pick")
    			img.LoadImage(fileName)
    			img.SetPosition(x, y)
    			img.Show()
    			return img
    
    		def __del__(self):
    			self.tipList = []
    			self.textBar.ClearBar()
    			self.Hide()
    			ui.Bar.__del__(self)
    
    		def __CreateTextBar(self):
    
    			x, y = self.GetGlobalPosition()
    
    			self.textBar = BigTextBar(self.LINE_WIDTH, self.BIG_TEXTBAR_MAX_HIGHT, self.FONT_HEIGHT)
    			self.textBar.SetParent(self)
    			self.textBar.SetPosition(6, 8)
    			self.textBar.SetTextColor(242, 231, 193)
    			self.textBar.SetClipRect(0, y+8, wndMgr.GetScreenWidth(), y+8+self.STEP_HEIGHT)
    			self.textBar.Show()
    
    		def __CleanOldTip(self):
    			self.tipList = []
    			self.textBar.ClearBar()
    			self.Hide()
    
    		def __RefreshBoard(self):
    
    			self.textBar.ClearBar()
    			preaddtipListcount = self.addtipListcount
    			self.addtipListcount = 0
    
    			index = 0
    			for text in self.tipList:
    				(text_width, text_height) = self.textBar.GetTextExtent(text)
    				if index == 0:
    					self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
    					index += 1
    					self.addtipListcount += 1
    
    				if index == (len(self.tipList) - (len(self.tipList) - self.pretexsize))+1 and not self.pretexsize == 0:
    
    					self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
    					index += 1
    					self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
    					index += 1
    					self.addtipListcount += 2
    
    				self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, text)
    				index += 1
    
    			if self.tipList:
    				index += 1
    				self.addtipListcount += 1
    				self.textBar.TextOut((500-text_width)/2, index*self.LINE_HEIGHT, " ")
    
    		def SetTip(self, text):
    
    			if not app.IsVisibleNotice():
    				return	
    
    			if text == "#start" or text == "#end" or text == "#send":
    				pass
    			else:
    				self.__AppendText(text)
    
    			if text == "#start" or text == "#send":
    
    				if text == "#send" and self.pretexsize == 0:
    					text = "#end"
    
    				self.__RefreshBoard()
    
    				if text == "#start":
    					self.STEP_HEIGHT = (self.LINE_HEIGHT * (len(self.tipList) + self.addtipListcount))
    					self.pretexsize = len(self.tipList)
    
    					x, y = self.GetGlobalPosition()
    					self.textBar.SetClipRect(0, y+8, wndMgr.GetScreenWidth(), y+8+self.STEP_HEIGHT)
    					self.SetSize(512, 10 + (self.LINE_HEIGHT * (len(self.tipList) + self.addtipListcount))+10)
    					self.imgList[1].SetPosition(self.FRAME_BASE_X, self.STEP_HEIGHT + 10)
    
    					self.scrollstop = 0
    					self.changeline = 1
    
    				if text == "#send":
    					self.scrollstop = 1
    					self.nexttextsize = len(self.tipList) - self.pretexsize
    
    				if not self.IsShow():
    					self.curPos = -self.STEP_HEIGHT
    					self.dstPos = -self.STEP_HEIGHT
    					self.textBar.SetPosition(3, 8 - self.curPos)
    					self.Show()
    
    			if text == "#end":
    				self.curPos = -self.STEP_HEIGHT
    				self.dstPos = -self.STEP_HEIGHT
    				self.textBar.SetPosition(3, 8 - self.curPos)
    				self.textcount = 0
    				self.changeline = 0
    				self.pretexsize = 0
    				self.nexttextsize = 0
    				self.addtipListcount = 0
    				self.__CleanOldTip()



    I made:

    	def Test(self):
    		self.BINARY_SetBigControlMessage("message1")
    		self.BINARY_SetBigControlMessage("message1")
    		self.BINARY_SetBigControlMessage("#send")

    However, the code does not pause, it goes straight as soon as it shows the message, does anyone have any idea how this code works correctly?

    Originally, it shows the message, stops at the message and then continues.

    Thanks.

     

    Quote

    @EDITED:
    Works, I just removed the line:
    self.BINARY_SetBigControlMessage("#send")

     

  2. This problem is due to guild objects, note that it will only happen in the main villages.

    If you disable sequence, the error will be numbered to 100.

    This error happens because guild objects are loaded before maps are loaded, they are also loaded in core that do not have maps allowed, causing others errors.

    Note that if you clear all guild objects the problem will stop.

    I don't know a solution for this if you find any share it with us.

  3. Hello,

    I'm trying to call the tabs of new pet window.

     

    	window["children"] = window["children"] + [						
    		{
    			"name" : "PetAttrChange_Page",
    			"type" : "window",
    			"style" : ("attach",),
    			
    			"x" : 0,
    			"y" : 0,
    			
    			"width" : 352,
    			"height" : 408,
    			
    			"children" :
    			[
    				## Pet Attr Change UI BG
    				{ "name" : "PetAttrChangeUIBG", "type" : "expanded_image", "style" : ("attach",), "x" : 0, "y" : 0, "image" : "d:/ymir work/ui/pet/res/Pet_UI_bg2.tga" },
    				
    				## Pet Information Title
    				{ 
    					"name" : "TitleAttrChangeWindow", "type" : "window", "x" : 10, "y" : 10, "width" : PET_UI_BG_WIDTH-10-15, "height" : 15, "style" : ("attach",),
    					"children" :
    					(
    						{"name":"TitleName", "type":"text", "x":0, "y":0, "text":uiScriptLocale.PET_INFORMATION_TITLE, "all_align" : "center"},
    					),	
    				},
    				
    				## Close Button
    				{ 
    					"name" : "ClosePetChangeWndButton", 
    					"type" : "button", 
    					"x" : PET_UI_BG_WIDTH -10-15, 
    					"y" : 10, 
    					"tooltip_text" : uiScriptLocale.CLOSE, 
    					"default_image" : "d:/ymir work/ui/public/close_button_01.sub",	
    					"over_image" : "d:/ymir work/ui/public/close_button_02.sub",
    					"down_image" : "d:/ymir work/ui/public/close_button_03.sub",
    				},	
    
    (...)


    I did like this:
                    wndPetInfoPage = self.GetChild("PetInfo_Page")
                    wndPetAttrChange = self.GetChild("PetAttrChange_Page")

    I have this syserr:
    petInformationWindow.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'PetAttrChange_Page'

    Someone know why?

  4. Hello, I have a problem with my server probably in the Cache, my game core crashed in random ways in the "SaveSingleItem" function, so I made this correction:

     

    Spoiler
    
    void ITEM_MANAGER::SaveSingleItem(LPITEM item)
    {
    	if (!item->GetOwner())
    	{
    		DWORD dwID = item->GetID();
    		DWORD dwOwnerID = item->GetLastOwnerPID();
    
    		db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_DESTROY, 0, sizeof(DWORD) + sizeof(DWORD));
    		db_clientdesc->Packet(&dwID, sizeof(DWORD));
    		db_clientdesc->Packet(&dwOwnerID, sizeof(DWORD));
    
    		sys_log(1, "ITEM_DELETE %s:%u", item->GetName(), dwID);
    		return;
    	}
    	
    	if (!item)
    		return;
    		
    	if (!item->GetOwner())
    		return;
    	
    	if (item->GetCount() < 1)
    		return;
    	
    	if (item->GetCount() > 200)
    		return;
    	
    	if (item->GetOriginalVnum() < 1)
    		return;
    
    	if (item->GetOriginalVnum() > 9999999)
    		return;
    
    .....

     

    41c9e4ecb46e42b9af249a93b6514648.png

     

    9446d4d3b89e475b9400b39cf93dbb2c.png

    Because the SaveSingleItem function returned null values, such as owner, vnum, and other things.....

    But the problem doenst solved, now my db is crashing with another problem...

    GDB:

    Spoiler

    vhItVGc.png

    Ih6zzqn.png


    I paid for someone able to help me fix these problems.


     

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.