[QUEST] Anzeigebug: Item in Quest (say_item_vnum)

03/13/2016 20:48 .SliceR#1
Guten Abend,
derzeit erstelle ich einen neuen Client und dabei bemerkte ich einen Fehler beim Anzeigen von Items in Questdialogen.
Die Items in der Quest werden über say_item_vnum() eingebettet.

Screenshot:
[Only registered and activated users can see links. Click Here To Register...]

In welcher Datei steckt der Fehler? Beim älteren Clients trat dieser Fehler nicht auf und die anzuzeigenden Bilder waren richtig zentriert.

Über einen schnellen Fix würde ich mich freuen! :)

LG
03/13/2016 21:31 gerald500#2
Quote:
Originally Posted by .SliceR View Post
Guten Abend,
derzeit erstelle ich einen neuen Client und dabei bemerkte ich einen Fehler beim Anzeigen von Items in Questdialogen.
Die Items in der Quest werden über say_item_vnum() eingebettet.

Screenshot:
[Only registered and activated users can see links. Click Here To Register...]

In welcher Datei steckt der Fehler? Beim älteren Clients trat dieser Fehler nicht auf und die anzuzeigenden Bilder waren richtig zentriert.

Über einen schnellen Fix würde ich mich freuen! :)

LG
IN uiquest in der funktion
Code:
def OnInsertImage(self, filename, underTitle, title, desc, index=0, total=1):

hast du irgendwo einen fehler am besten du vergleichst es mal mit einem clienten wo das icon in der mitte ist

solltest du den fehler nicht finden würde ich mal in dieser class in uiquest:
Code:
class ToolTipImageBox(ui.ImageBox):
	def __init__(self):
		ui.ImageBox.__init__(self)
		self.DestroyToolTip()
	def __del__(self):
		ui.ImageBox.__del__(self)

	def CreateToolTip(self, parent, title, desc, x, y):
		import uiToolTip
		self.toolTip = uiToolTip.ToolTip()
		self.toolTip.SetWindowHorizontalAlignCenter()
		self.toolTip.SetFollow(FALSE)
		self.toolTip.SetTitle(title)
		self.toolTip.SetPosition(x, y)

		desc = desc.replace("|", "/")
		for line in desc.split("/"):
			self.toolTip.AutoAppendTextLine(line)

		self.toolTip.ResizeToolTip()
		self.toolTip.Hide()

	def DestroyToolTip(self):
		self.toolTip = None

	def OnMouseOverIn(self):
		if self.toolTip:
			self.toolTip.SetTop()
			self.toolTip.Show()

	def OnMouseOverOut(self):
		if self.toolTip:
			self.toolTip.Hide()
nach gucken ob
Code:
		self.toolTip.SetWindowHorizontalAlignCenter()
vorhanden ist
BTW: würde ich für solche sachen sowieso python guis bauen alleine weils schon viel schöner ist ^^

mfg
03/13/2016 21:54 .SliceR#3
Hab den Bereich ab
Code:
def OnInsertImage(self, filename, underTitle, title, desc, index=0, total=1):
mit einem der alten Clients verglichen und dementsprechend angepasst.
Ist nun alles zentriert. Bedanke mich vielmals für deine Hilfe! :)

Für diejenigen, die den gleichen Fehler haben sollten hier noch einmal die abgeänderte Version:

In der obengenannten Funktion:
Code:
		try:
			img = ToolTipImageBox()
			img.SetParent(self.board)
			img.LoadImage(filename)
			pos_x = (self.board.GetWidth() * (index + 1) / (total + 1)) - (img.GetWidth() / 2)
			img.SetPosition(pos_x, y)
			#img.SetWindowHorizontalAlignCenter()
			img.DestroyToolTip()
			if title and desc:
				img.CreateToolTip(self.board, title, desc, 0, yBoard + y + img.GetHeight())
			img.Show()
			self.images.append(img)
		except RuntimeError:
			pass

		event.AddEventSetLocalYPosition(self.descIndex, img.GetHeight() - 20)

		if underTitle:
			event.AddEventSetLocalYPosition(self.descIndex, 3)
			event.InsertTextInline(self.descIndex, underTitle, (self.board.GetWidth() * (index + 1) / (total + 1)))
			if index != total - 1:
				event.AddEventSetLocalYPosition(self.descIndex, -( 3 + 16 ))
		else:
			if index == total - 1:
				event.AddEventSetLocalYPosition(self.descIndex, 4)
		
		if index != total - 1:
			event.AddEventSetLocalYPosition(self.descIndex, -(img.GetHeight() - 20))
			
				
	# END_OF_QUEST_IMAGE
mit dem ersetzen:
Code:
		try:
			img = ToolTipImageBox()
			img.SetParent(self.board)
			img.LoadImage(filename)
			img.SetPosition(0, y)
			img.SetWindowHorizontalAlignCenter()
			img.DestroyToolTip()
			if title and desc:
				img.CreateToolTip(self.board, title, desc, 0, yBoard + y + img.GetHeight())
			img.Show()
			self.images.append(img)
		except RuntimeError:
			pass

 		event.AddEventSetLocalYPosition(self.descIndex, img.GetHeight() - 20)

		if underTitle:
	 		event.AddEventSetLocalYPosition(self.descIndex, 3)
			event.InsertText(self.descIndex, underTitle)
		else:
	 		event.AddEventSetLocalYPosition(self.descIndex, 4)
	# END_OF_QUEST_IMAGE
03/13/2016 22:47 Avulsed#4
Schau mal ob die Funktion bei dir so aussieht (questlib.lua), weil eigentlich muss man, wenn man auf neuere Files umsteigt nur die Funktion ändern.


Code:
function say_item(name, vnum, desc)
    say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."|index;".. 0 .."|total;".. 1 .."]")
end
03/21/2016 15:18 .SliceR#5
Quote:
Originally Posted by Avulsed View Post
Schau mal ob die Funktion bei dir so aussieht (questlib.lua), weil eigentlich muss man, wenn man auf neuere Files umsteigt nur die Funktion ändern.


Code:
function say_item(name, vnum, desc)
    say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."|index;".. 0 .."|total;".. 1 .."]")
end

Jau hat funktioniert! Hab die Funktion auch wieder auf den neueren Stand zurückgesetzt. Nun habe ich auch die genauere Itembeschreibung, wenn ich mit der Maus drüber fahre. Vielen Dank euch beiden :)