[Release] Client-Interface {"illumina"}

03/20/2016 13:27 VegaS ♆#166
Quote:
Originally Posted by xCPx View Post
Es hat nich zufällig jemand n png -> tga converter? Weil dann würde ich das die nächsten tage coden...

Nur absolut kb jedes Bild einzeln in tga oder dds zu converten...
ScriptLib/Resource.cpp, add in function:

CPythonResource::CPythonResource()
[...]
m_resManager.RegisterResourceNewFunctionPointer("p ng", NewImage);
03/20/2016 16:02 xCPx#167
Quote:
Originally Posted by Yiv View Post
@[Only registered and activated users can see links. Click Here To Register...]:
Ich hoffe, Poccix hat nichts dagegen, habe gerade den alten DEV-Client gefunden, dort hat er folgendes gemacht, was einwandfrei funktionierte: [Only registered and activated users can see links. Click Here To Register...]

Kann man zwar besser machen, aber das war bisher sowieso noch kein optimierter Code, also sollte man ihm Unschönheiten nicht übel nehmen :D

MfG
Ja mir kam gestern beim Saufen auch ne Idee wie ichs anders machen kann ^^ Wie gesagt ich schreib sowas eig immer selbst, is meist einfacher wie was vorgefertigtes umschreiben.
War jetzt nur übers WE bei der Freundin und darum ein wenig inaktiv:o


So kleines Update:
Hp/Mp Anzeige sowie das Bild werden nun richtig (Nach Soras Wünschen) geladen und sind auch benutzbar :p

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


Dazu mal für alle die bissl basteln wollen der bisherige Code:

illumina.py:

Code:
import app
import ime
import grp
import snd
import wndMgr
import item
import skill
import localeInfo
import ui
from ui import Window
from ui import ExpandedImageBox, ImageBox, Button
import miniMap
def CustomIsIn(x, y, part):
	x_, y_ = part.GetGlobalPosition()
	x_max  = part.GetWidth() + x_
	y_max = part.GetHeight() + y_
	if((x >= x_) and (x <= x_max) and (y >= y_) and (y <= y_max)):
		return True
	else:
		return False
def unsigned32(n):
	return n & 0xFFFFFFFFL
def minmax(_min,act,_max):
	return max(_min, min(act, _max))
def FloatRountToInt(_min, r, _max):
	r2 = int(r)
	if( int(r*2.0) >= (r2*2)+1):
		r2 = r2+1
	_min = int(_min)
	_max = int(_max)
	return int(minmax(_min, r2, _max))
def RaceToName(race):
		return ["warrior_m",
			"assasin_w",
			"sura_m",
			"shaman_w",
			"warrior_w",
			"assasin_m",
			"sura_w",
			"shaman_m"][race]
def GetFaceIconByRace(race):
	raceName = RaceToName(race).replace("assasin", "ninja")
	_path = "illumina/icons/faces/"
	return _path +"icon" + raceName[-2:] + raceName[0: len(raceName) -2] +".tga"

class TaskBar(Window):

	class MiniMap(Window):
		class MapTextToolTip(Window):
			def __init__(self):			
				ui.Window.__init__(self)

				textLine = ui.TextLine()
				textLine.SetParent(self)
				textLine.SetHorizontalAlignCenter()
				textLine.SetOutline()
				textLine.SetHorizontalAlignRight()
				textLine.Show()
				self.textLine = textLine

			def __del__(self):			
				ui.Window.__del__(self)

			def SetText(self, text):
				self.textLine.SetText(text)

			def SetTooltipPosition(self, PosX, PosY):
				if localeInfo.IsARABIC():
					w, h = self.textLine.GetTextSize()
					self.textLine.SetPosition(PosX - w - 5, PosY)
				else:
					self.textLine.SetPosition(PosX - 5, PosY)

			def SetTextColor(self, TextColor):
				self.textLine.SetPackedFontColor(TextColor)

			def GetTextSize(self):
				return self.textLine.GetTextSize()
		def __init__(self):
			ui.Window.__init__(self)
			self.AddFlag("not_pick")
			self.tooltipInfo = None
			self.btnAtlas = None
			self.Show()


		def OnUpdate(self):
			miniMap.UpdateAtlas()
			self.UpdateMiniMapToolTip()

		def UpdateMiniMapToolTip(self):
			(mouseX, mouseY) = wndMgr.GetMousePosition()
			if self.tooltipInfo:
				if True == CustomIsIn(mouseX, mouseY, self):
					(bFind, sName, iPosX, iPosY, dwTextColor) = miniMap.GetInfo(mouseX, mouseY)
					if bFind == 0:
						self.tooltipInfo.Hide()
					elif not self.CanSeeInfo:
						self.tooltipInfo.SetText("%s(%s)" % (sName, localeInfo.UI_POS_UNKNOWN))
						self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
						self.tooltipInfo.SetTextColor(dwTextColor)
						self.tooltipInfo.Show()
					else:
						if localeInfo.IsARABIC() and sName[-1].isalnum():
							self.tooltipInfo.SetText("(%s)%d, %d" % (sName, iPosX, iPosY))
						else:
							self.tooltipInfo.SetText("%s(%d, %d)" % (sName, iPosX, iPosY))
						self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
						self.tooltipInfo.SetTextColor(dwTextColor)
						self.tooltipInfo.Show()
				else:
					self.tooltipInfo.Hide()
		def AddToolTip(self, parent):
			self.tooltipInfo = self.MapTextToolTip()
			self.tooltipInfo.SetParent(parent)
			self.tooltipInfo.Hide()

		def OnRender(self):
			(x, y) = self.GetGlobalPosition()
			fx = float(x)
			fy = float(y)
			miniMap.Render(fx, fy)

		def HideAtlas(self):
			miniMap.HideAtlas()
		def BuildButtons(self, parent):
			self.btnAtlas = Button()
			self.btnAtlas.SetParent(parent)
			self.btnAtlas.SetUpVisual("illumina/controls/special/taskbar/btn_atlas_01_normal.tga")
			self.btnAtlas.SetOverVisual("illumina/controls/special/taskbar/btn_atlas_02_hover.tga")
			self.btnAtlas.SetDownVisual("illumina/controls/special/taskbar/btn_atlas_03_active.tga")
			self.btnAtlas.SetToolTipText(localeInfo.MINIMAP_SHOW_AREAMAP, 0, -25)
			self.btnAtlas.SetEvent(ui.__mem_func__(self.ShowAtlas))
			self.btnAtlas.SetPosition(191, 19)
			self.btnAtlas.Show()
		def ShowAtlas(self):
			miniMap.ShowAtlas()

		def CanSeeInfo(self):
			return True

		def GetMapsUnallowed(self):
			return {
		"metin2_map_monkeydungeon" : FALSE,
		"metin2_map_monkeydungeon_02" : FALSE,
		"metin2_map_monkeydungeon_03" : FALSE,
		"metin2_map_devilsCatacomb" : FALSE,
		}
	
	class ExpBar(Window):
		image = None
		class TextToolTip(ui.Window):
			def __init__(self):
				ui.Window.__init__(self, "TOP_MOST")

				textLine = ui.TextLine()
				textLine.SetParent(self)
				textLine.SetHorizontalAlignCenter()
				textLine.SetOutline()
				textLine.Show()
				self.textLine = textLine

			def __del__(self):
				ui.Window.__del__(self)

			def SetText(self, text):
				self.textLine.SetText(text)

			def OnRender(self):
				(mouseX, mouseY) = wndMgr.GetMousePosition()
				self.textLine.SetPosition(mouseX, mouseY - 15)
		def __init__(self):
			Window.__init__(self)
			self.image = ExpandedImageBox()
			self.image.AddFlag("not_pick")
			self.image.LoadImage("illumina/controls/special/taskbar/progress_exp_full.tga")
			self.image.SetParent(self)
			self.image.Show()
			self.SetSize(self.image.GetWidth(), self.image.GetHeight())
			self.SetPosition(241, 89)
			self.Show()
			

		def __del__(self):
			self.Hide()
			Window.__del__(self)
		def AddToolTip(self, parent):
			self.tooltipInfo = self.TextToolTip()
			self.tooltipInfo.SetParent(parent)
			self.tooltipInfo.Hide()
		def OnUpdate(self):
			import player
			curEXP = unsigned32(player.GetStatus(player.EXP))
			nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP))
			Percentage = -1 + float(curEXP)/float(nextEXP)

			self.image.SetRenderingRect(0.0, Percentage, 0.0, 0.0)
			(mouseX, mouseY) = wndMgr.GetMousePosition()
			if self.tooltipInfo:
				if True == CustomIsIn(mouseX, mouseY, self):
					self.tooltipInfo.Show()
					self.tooltipInfo.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curEXP) / max(1, float(nextEXP)) * 100))
				else:
					self.tooltipInfo.Hide()

	class HpMPBar(Window):
		def __init__(self, parent):
			Window.__init__(self)
			self.SetParent(parent)
			self.SetPosition(137, 42)
			self.HpEmpty = ExpandedImageBox()
			self.HpEmpty.AddFlag("not_pick")
			self.HpEmpty.SetParent(self)
			self.HpEmpty.LoadImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_empty.tga")
			self.HpEmpty.Show()
			self.HpRefresh = []
			for i in xrange(0,6):
				part = ExpandedImageBox()
				part.AddFlag("not_pick")
				part.LoadImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_fill_0"+ str(i+1)+".tga")
				part.SetAlpha(0.3)
				part.SetParent(self)
				part.Show()
				self.HpRefresh.append(part)
			part = ExpandedImageBox()
			part.AddFlag("not_pick")
			part.LoadImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_transition.tga")
			part.SetAlpha(0.3)
			part.SetParent(self)
			part.Show()
			self.HpRefresh.append(part)

			self.HpFull = []
			for i in xrange(0,6):
				part = ExpandedImageBox()
				part.AddFlag("not_pick")
				part.LoadImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_fill_0"+ str(i+1)+".tga")
				part.SetParent(self)
				part.Show()
				self.HpFull.append(part)
			part = ExpandedImageBox()
			part.AddFlag("not_pick")
			part.LoadImage("illumina/controls/special/taskbar/gauge_hp/gauge_hp_transition.tga")
			part.SetParent(self)
			part.Show()
			self.HpFull.append(part)

			self.MpEmpty = ExpandedImageBox()
			self.MpEmpty.AddFlag("not_pick")
			self.MpEmpty.SetParent(self)
			self.MpEmpty.LoadImage("illumina/controls/special/taskbar/gauge_mp/gauge_mp_empty.tga")
			self.MpEmpty.Show()


			self.MpRefresh = []
			for i in xrange(0,77):
				part = ExpandedImageBox()
				part.AddFlag("not_pick")
				s = str(i)
				if(i < 10):
					s = "0"+s
				part.LoadImage("illumina/controls/special/taskbar/gauge_mp/gauge_mp_fill_"+ s+".tga")
				part.SetParent(self)
				part.SetPosition(52, 52)
				part.SetAlpha(0.3)
				part.Hide()
				self.MpRefresh.append(part)

			self.MpFull = []
			for i in xrange(0,77):
				part = ExpandedImageBox()
				part.AddFlag("not_pick")
				s = str(i)
				if(i < 10):
					s = "0"+s
				part.LoadImage("illumina/controls/special/taskbar/gauge_mp/gauge_mp_fill_"+ s+".tga")
				part.SetParent(self)
				part.SetPosition(52, 52)
				part.Show()
				self.MpFull.append(part)


			
			self.SetMp(20, 60, 100)
			self.SetHp(10,60,100)
			self.Show()
		def SetHp(self, _actual,_recovery, _max):
			_max = max(1, _max)
			trans_actual = 270 * (1.0-(float(_actual) / float(_max)))
			trans_recovery = 270 * (1.0-(float(_recovery) / float(_max)))
			for i in xrange(0,7):
				i2 =i
				if(i == 6):
					i2 = 0
				max_transition = 270.0 - float(i2)*45.0
				trans = -min(max_transition, trans_actual)
				trans_rec = -min(max_transition, trans_recovery)
				self.HpFull[i].SetRotation(trans)
				self.HpRefresh[i].SetRotation(trans_rec)
		def SetMp(self, _actual, _recovery, _max):
			max_show = 76 -int(76.0 * float(_actual)/ float(_max))
			max_rec =  76 -int(76.0 * float(_recovery)/ float(_max))
			for i in xrange(0,77):
				self.MpFull[i].Hide()
				self.MpRefresh[i].Hide()
			self.MpRefresh[max_rec].Show()
			self.MpFull[max_show].Show()

		def OnUpdate(self):
			import player
			curHP = player.GetStatus(player.HP)
			maxHP = player.GetStatus(player.MAX_HP)
			curSP = player.GetStatus(player.SP)
			maxSP = player.GetStatus(player.MAX_SP)
			recoveryHP = player.GetStatus(player.HP_RECOVERY)
			recoverySP = player.GetStatus(player.SP_RECOVERY)
			self.SetHp(curHP, recoveryHP, maxHP)
			self.SetMp(curSP, recoverySP, maxSP)
		def __del__(self):
			self.Hide()
			Window.__del__(self)
	def __init__(self):
		Window.__init__(self)
		self.path = "illumina/controls/special/taskbar/"
		self.width = max(1280, wndMgr.GetScreenWidth())
		self.height = 158
		self.repeat = 220
		self.bar = None
		self.atlas = None
		self.exp_Bar = None
		self.Face = None
		self.BuildMiniMap()
		self.BuildHpMp()
		self.BuildBar()
		self.BuildExpBar()
		self.BuildButtons()
		self.BuildFace()
		
		
		self.SetPosition( (wndMgr.GetScreenWidth() - self.width )/2,wndMgr.GetScreenHeight()-self.height)
		self.SetSize(self.width, self.height)
		self.Show()
		self.BuildToolTips()
	def __del__(self):
		self.Hide()
		Window.__del__(self)
	def OnUpdate(self):
		import player
		if self.Face:
			self.Face.LoadImage(GetFaceIconByRace(player.GetRace()))
	def BuildFace(self):
		part = ExpandedImageBox()
		part.AddFlag("not_pick")
		part.SetParent(self)
		part.SetPosition(150, 30)
		part.Show()
		self.Face = part 

	def BuildBar(self):
		self.bar = []
		files = ["bar_" +dir+".tga" for dir in ("repeat","left", "middle", "right", ) ]
		for x in files:
			part = ExpandedImageBox()
			part.AddFlag("not_pick")
			part.LoadImage("illumina/controls/special/taskbar/" + x)
			part.SetParent(self)
			part.Show()
			self.bar.append(part)
		self.bar[0].SetPosition(self.bar[1].GetWidth()  ,self.height - self.bar[0].GetHeight())
		self.bar[0].SetPercentage(float(self.width) - float(self.bar[1].GetWidth()) - float(self.bar[3].GetWidth()), float(self.repeat))
		self.bar[1].SetPosition(0,self.height -124)
		self.bar[2].SetPosition( (self.width - self.bar[2].GetWidth()) / 2 , self.height - self.bar[2].GetHeight())
		self.bar[3].SetPosition(self.width -  self.bar[3].GetWidth(),0)

	def BuildHpMp(self):

		self.hpmp = self.HpMPBar(self)

	def BuildMiniMap(self):
		miniMap.Create()
		miniMap.SetScale(2.0)
		miniMap.RegisterAtlasWindow(self)
		self.Atlas = self.MiniMap()
		self.Atlas.SetParent(self)
		self.Atlas.SetSize(128, 128)
		self.Atlas.SetPosition(self.width - 280, 15)
		self.Atlas.Show()
	def BuildExpBar(self):
		self.exp_Bar = self.ExpBar()
		self.exp_Bar.SetParent(self.bar[1])
	def BuildButtons(self):
		self.Atlas.BuildButtons(self.bar[3])
	def BuildToolTips(self):		
		self.Atlas.AddToolTip(self)
		self.exp_Bar.AddToolTip(self)
03/21/2016 15:25 KhafKef#168
beautiful icons
03/23/2016 23:16 VegaS ♆#169
Who wants to enable slot acce in inventory:

1. uiInventory.py

# ----- *// Search:
Code:
		self.wndItem.RefreshSlot()
		if self.wndBelt:
			self.wndBelt.RefreshSlot()
# ----- *// Add below:
Code:
# -------------------------SLOT ACCE --------------------------------------******				
	def RefreshNewSlotAcce(self):
		getAcceVnum=player.GetItemIndex
		
		illumina_slot_acce = item.COSTUME_SLOT_COUNT
		for acce_illumina in xrange(illumina_slot_acce):
			slot_Acce = item.COSTUME_SLOT_START + acce_illumina
			self.wndEquip.SetItemSlot(slot_Acce, getAcceVnum(slot_Acce), 0)

		self.wndEquip.RefreshSlot()
# -------------------------SLOT ACCE --------------------------------------******
# ----- *// Search:
Code:
	def Show(self):
		self.__LoadWindow()
# ----- *// Add below:
Code:
# -------------------------SLOT ACCE --------------------------------------******	
		self.RefreshNewSlotAcce()
# -------------------------SLOT ACCE --------------------------------------******
# ----- *// Search:
Code:
			setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
			
		getItemVNum=player.GetItemIndex
# ----- *// Add below:
Code:
# -------------------------SLOT ACCE --------------------------------------******	
		illumina_slot_acce = item.COSTUME_SLOT_COUNT
		for acce_illumina in xrange(illumina_slot_acce):
			slot_Acce = item.COSTUME_SLOT_START + acce_illumina
			self.wndEquip.SetItemSlot(slot_Acce, getItemVNum(slot_Acce), 0)
# -------------------------SLOT ACCE --------------------------------------******
2. locale/xx/InventoryWindow.py:

# ----- *// Search:
Code:
import item
# ----- *// Add below:
Code:
# -------------------------SLOT ACCE --------------------------------------******
SLOT_ACCE_ILLUMINA = item.COSTUME_SLOT_START
# -------------------------SLOT ACCE --------------------------------------******
# ----- *// Search:
Code:
                            "slot" : (
# ----- *// Add below:
Code:
										{"index":SLOT_ACCE_ILLUMINA+2, "x":80, "y":3, "width":32, "height":32}, # Slot Acce Illumina
03/24/2016 13:54 SkScreenS#170
Who have code of menu, character, skill, quest Windows?

guys i have imported illumina.py in ui.py but when i open metin2client.exe i have this:

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

help! D:
03/24/2016 16:09 .Arno#171
Jungs ich sehe ihr seid recht fleißig an der Umsetzungsarbeit :DD
03/24/2016 19:33 #Metho#172
Quote:
Originally Posted by SkScreenS View Post
Who have code of menu, character, skill, quest Windows?
It's in progress, waiting a while and you'll see results.
03/24/2016 20:18 SkScreenS#173
Quote:
Originally Posted by Lord Metho View Post
It's in progress, waiting a while and you'll see results.
what is in progress?
03/24/2016 23:07 BizepsSupportAccount#174
brain.exe not found
03/25/2016 09:53 KoYGeR#175
Here is coded character window.
[Only registered and activated users can see links. Click Here To Register...]

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

There could be some bugs because I coded that at nigth.
03/25/2016 13:25 xCPx#176
Quote:
Originally Posted by SkScreenS View Post
Who have code of menu, character, skill, quest Windows?

guys i have imported illumina.py in ui.py but when i open metin2client.exe i have this:

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

help! D:
DOnt import it in ui.py import it at the point where you wanna load the taskbar.

if you import it at ui.py then illumina.py loads ui.py and ui.py loads illumina.py thats why the error appears.
03/25/2016 14:07 sony199#177
Irgendwie sind hier die Codes total verstreut, könnte sie jemand nochmal zusammenfassen und ausführlich erklären, was wohin kommt? Sowie [SGA]Vegas es getan hat. Ich denke mal, dass derjenige viel Dankbarkeit ernten würde.
03/25/2016 15:04 SkScreenS#178
Quote:
Originally Posted by KoYGeR View Post
Here is coded character window.
[Only registered and activated users can see links. Click Here To Register...]

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

There could be some bugs because I coded that at nigth.
can you upload interfacemodule.py pls?

i have this:

0325 16:33:37356 :: File "ui.py", line 1012, in CallEvent

0325 16:33:37358 :: File "ui.py", line 87, in __call__

0325 16:33:37359 :: File "ui.py", line 69, in __call__

0325 16:33:37359 :: File "interfaceModule.py", line 921, in ToggleCharacterWindowStatusPage

0325 16:33:37360 :: File "interfaceModule.py", line 906, in ToggleCharacterWindow

0325 16:33:37361 :: File "interfaceModule.py", line 916, in OpenCharacterWindowWithState

0325 16:33:37362 :: AttributeError
0325 16:33:37362 :: :
0325 16:33:37362 :: 'CharacterWindow' object has no attribute 'SetState'
0325 16:33:37362 ::

0325 16:33:37958 :: Traceback (most recent call last):

0325 16:33:37958 :: File "ui.py", line 1012, in CallEvent

0325 16:33:37959 :: File "ui.py", line 87, in __call__

0325 16:33:37960 :: File "ui.py", line 69, in __call__

0325 16:33:37961 :: File "interfaceModule.py", line 921, in ToggleCharacterWindowStatusPage

0325 16:33:37962 :: File "interfaceModule.py", line 906, in ToggleCharacterWindow

0325 16:33:37963 :: File "interfaceModule.py", line 916, in OpenCharacterWindowWithState

0325 16:33:37964 :: AttributeError
0325 16:33:37964 :: :
0325 16:33:37964 :: 'CharacterWindow' object has no attribute 'SetState'
0325 16:33:37964 ::

0325 16:33:57060 :: Traceback (most recent call last):

0325 16:33:57060 :: File "ui.py", line 1012, in CallEvent

0325 16:33:57061 :: File "ui.py", line 87, in __call__

0325 16:33:57062 :: File "ui.py", line 69, in __call__

0325 16:33:57063 :: File "uiInventory.py", line 476, in ClickDSSButton

0325 16:33:08894 :: AttributeError
0325 16:33:08894 :: :
0325 16:33:08894 :: 'NoneType' object has no attribute 'SetSkillOnlyName'
0325 16:33:08894 ::

0325 16:34:11143 :: Traceback (most recent call last):

0325 16:34:11143 :: File "ui.py", line 1407, in OnOverInItem

0325 16:34:11144 :: File "ui.py", line 87, in __call__

0325 16:34:11145 :: File "ui.py", line 78, in __call__

0325 16:34:11146 :: File "uiCharacter.py", line 814, in OverInItem

0325 16:34:11146 :: AttributeError
0325 16:34:11146 :: :
0325 16:34:11147 :: 'NoneType' object has no attribute 'SetSkillNew'
0325 16:34:11147 ::

0325 16:34:11231 :: Traceback (most recent call last):

0325 16:34:11231 :: File "ui.py", line 1411, in OnOverOutItem

0325 16:34:11232 :: File "ui.py", line 87, in __call__

0325 16:34:11234 :: File "ui.py", line 69, in __call__

0325 16:34:11235 :: File "uiCharacter.py", line 823, in OverOutItem

0325 16:34:11236 :: AttributeError
0325 16:34:11236 :: :
0325 16:34:11236 :: 'NoneType' object has no attribute 'HideToolTip'
0325 16:34:11236 ::
03/25/2016 17:53 SounndP#179
0325 17:37:12800 ::
networkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:17) <module>
system.py(line:130) __pack_import
system.py(line:110) _process_result
uiCharacter.py(line:13) <module>
system.py(line:137) __pack_import
L:\work\Python-2.7.3\lib\locale.py(line:15) <module>
system.py(line:137) __pack_import
C:\Users\YMIR\Downloads\Python-2.7.3\Python-2.7.3\lib\encodings\__init__.py(line:32) <module>

networkModule.SetSelectCharacterPhase - <type 'exceptions.ImportError'>:cannot import name aliases
03/25/2016 18:51 KoYGeR#180
Quote:
Originally Posted by SkScreenS View Post
can you upload interfacemodule.py pls?

i have this:

0325 16:33:37356 :: File "ui.py", line 1012, in CallEvent

0325 16:33:37358 :: File "ui.py", line 87, in __call__

0325 16:33:37359 :: File "ui.py", line 69, in __call__

0325 16:33:37359 :: File "interfaceModule.py", line 921, in ToggleCharacterWindowStatusPage

0325 16:33:37360 :: File "interfaceModule.py", line 906, in ToggleCharacterWindow

0325 16:33:37361 :: File "interfaceModule.py", line 916, in OpenCharacterWindowWithState

0325 16:33:37362 :: AttributeError
0325 16:33:37362 :: :
0325 16:33:37362 :: 'CharacterWindow' object has no attribute 'SetState'
0325 16:33:37362 ::

0325 16:33:37958 :: Traceback (most recent call last):

0325 16:33:37958 :: File "ui.py", line 1012, in CallEvent

0325 16:33:37959 :: File "ui.py", line 87, in __call__

0325 16:33:37960 :: File "ui.py", line 69, in __call__

0325 16:33:37961 :: File "interfaceModule.py", line 921, in ToggleCharacterWindowStatusPage

0325 16:33:37962 :: File "interfaceModule.py", line 906, in ToggleCharacterWindow

0325 16:33:37963 :: File "interfaceModule.py", line 916, in OpenCharacterWindowWithState

0325 16:33:37964 :: AttributeError
0325 16:33:37964 :: :
0325 16:33:37964 :: 'CharacterWindow' object has no attribute 'SetState'
0325 16:33:37964 ::

0325 16:33:57060 :: Traceback (most recent call last):

0325 16:33:57060 :: File "ui.py", line 1012, in CallEvent

0325 16:33:57061 :: File "ui.py", line 87, in __call__

0325 16:33:57062 :: File "ui.py", line 69, in __call__

0325 16:33:57063 :: File "uiInventory.py", line 476, in ClickDSSButton

0325 16:33:08894 :: AttributeError
0325 16:33:08894 :: :
0325 16:33:08894 :: 'NoneType' object has no attribute 'SetSkillOnlyName'
0325 16:33:08894 ::

0325 16:34:11143 :: Traceback (most recent call last):

0325 16:34:11143 :: File "ui.py", line 1407, in OnOverInItem

0325 16:34:11144 :: File "ui.py", line 87, in __call__

0325 16:34:11145 :: File "ui.py", line 78, in __call__

0325 16:34:11146 :: File "uiCharacter.py", line 814, in OverInItem

0325 16:34:11146 :: AttributeError
0325 16:34:11146 :: :
0325 16:34:11147 :: 'NoneType' object has no attribute 'SetSkillNew'
0325 16:34:11147 ::

0325 16:34:11231 :: Traceback (most recent call last):

0325 16:34:11231 :: File "ui.py", line 1411, in OnOverOutItem

0325 16:34:11232 :: File "ui.py", line 87, in __call__

0325 16:34:11234 :: File "ui.py", line 69, in __call__

0325 16:34:11235 :: File "uiCharacter.py", line 823, in OverOutItem

0325 16:34:11236 :: AttributeError
0325 16:34:11236 :: :
0325 16:34:11236 :: 'NoneType' object has no attribute 'HideToolTip'
0325 16:34:11236 ::
I will code it again, because there are a lot of bugs then you shouldn't have to edit interfacemodule.py. Sorry for my bad English, I'am polish :p