Register for your free account! | Forgot your password?

You last visited: Today at 12:33

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Switchbot Fehler

Discussion on Switchbot Fehler within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
.Ryuzaki™'s Avatar
 
elite*gold: 1
Join Date: Aug 2014
Posts: 1,339
Received Thanks: 875
Switchbot Fehler

Guten Tag. Kurz & knapp, ich habe einen Fehler beim einfügen des Switchbots
von Mijago. Habe alles richtig gemacht, extra sogar wie im How-To von ihm.
Das Problem ist ich bleibe im Ladebildschirm stecken. Syserr:

1008 22:54:22510 :: File "networkModule.py", line 233, in SetGamePhase

1008 22:54:22511 :: File "game.py", line 107, in __init__

1008 22:54:22511 :: File "interfaceModule.py", line 256, in MakeInterface

1008 22:54:22511 :: File "interfaceModule.py", line 107, in __MakeChatWindow

1008 22:54:22511 :: File "uiChat.py", line 1571, in __init__

1008 22:54:22511 :: File "uiChat.py", line 1660, in __RegisterChatColorDict

Habe auf die ganzen Lines geguckt, finde keinen Fehler..
Bitte um Hilfe.

€: Nur die 2.3 Version funkt. net die 2.0 funkt. will aber 2.3, da man dort 7 Sachen switchen kann.
.Ryuzaki™ is offline  
Old 10/09/2014, 03:27   #2
 
.Nizami's Avatar
 
elite*gold: 115
Join Date: Sep 2013
Posts: 597
Received Thanks: 83
die 2.3 funktioniert irgendwie bei einigen nicht daher lass es lieber bei 2.0
.Nizami is offline  
Old 10/09/2014, 11:07   #3
 
.Ryuzaki™'s Avatar
 
elite*gold: 1
Join Date: Aug 2014
Posts: 1,339
Received Thanks: 875
Quote:
Originally Posted by .Nizami View Post
die 2.3 funktioniert irgendwie bei einigen nicht daher lass es lieber bei 2.0
Ja, hatte ich vor nur muss es doch irgendeinen Grund geben..
.Ryuzaki™ is offline  
Old 10/11/2014, 06:23   #4
 
.Nizami's Avatar
 
elite*gold: 115
Join Date: Sep 2013
Posts: 597
Received Thanks: 83
müsstest du Mijago mal fragen, den Grund weiß ich leider nicht.
.Nizami is offline  
Old 10/11/2014, 08:27   #5
 
xSandyrose's Avatar
 
elite*gold: 0
Join Date: Dec 2013
Posts: 36
Received Thanks: 6
Klingt für mich fast nach dem Selben Problem wie bei einem Bekannten von mir der hatte auch so einen Fehler bei ihm hat es an den Tabs vor den Zeilen gelegen .

Also Kontrolliere doch mal deine Tabs

Mit Freundlichen Grüßen

Sandyrose
xSandyrose is offline  
Old 10/11/2014, 09:46   #6
 
Zaturix's Avatar
 
elite*gold: 0
Join Date: Oct 2014
Posts: 408
Received Thanks: 208
Quote:
Originally Posted by xSandyrose View Post
Klingt für mich fast nach dem Selben Problem wie bei einem Bekannten von mir der hatte auch so einen Fehler bei ihm hat es an den Tabs vor den Zeilen gelegen .

Also Kontrolliere doch mal deine Tabs

Mit Freundlichen Grüßen

Sandyrose
#This

Schau mal ob Vor/Nach den Zeilen Tabs sind.
Zaturix is offline  
Old 10/11/2014, 14:45   #7
 
.Ryuzaki™'s Avatar
 
elite*gold: 1
Join Date: Aug 2014
Posts: 1,339
Received Thanks: 875
Hab ich schon, geht nicht.
.Ryuzaki™ is offline  
Old 10/11/2014, 15:12   #8

 
Avulsed's Avatar
 
elite*gold: 90
Join Date: Apr 2010
Posts: 1,887
Received Thanks: 1,793
Ist das alles was in der syserr steht? Und könntest du mal den Inhalt deiner uichat.py posten?
Avulsed is offline  
Old 10/11/2014, 17:18   #9
 
.Ryuzaki™'s Avatar
 
elite*gold: 1
Join Date: Aug 2014
Posts: 1,339
Received Thanks: 875
Ja, kann ich machen.

Code:
import ui
import grp
import chat
import wndMgr
import net
import app
import ime
import locale
import colorInfo
import constInfo
import systemSetting
import player
import chr
import chrmgr
ENABLE_CHAT_COMMAND = TRUE
ENABLE_LAST_SENTENCE_STACK = TRUE
ENABLE_INSULT_CHECK = TRUE

if locale.IsHONGKONG():
	ENABLE_LAST_SENTENCE_STACK = TRUE

if locale.IsEUROPE():
	ENABLE_CHAT_COMMAND = FALSE

if locale.IsCANADA():
	ENABLE_LAST_SENTENCE_STACK = FALSE
	
createToolTipWindowDict = {}
chatInputSetList = []
def InsertChatInputSetWindow(wnd):
	global chatInputSetList
	chatInputSetList.append(wnd)
def RefreshChatMode():
	global chatInputSetList
	map(lambda wnd:wnd.OnRefreshChatMode(), chatInputSetList)
def RefreshChatColor():
	global chatInputSetList
	map(lambda wnd:wnd.OnRefreshChatColor(), chatInputSetList)
def DestroyChatInputSetWindow():
	global chatInputSetList
	chatInputSetList = []

## ChatModeButton
class ChatModeButton(ui.Window):

	OUTLINE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 1.0)
	OVER_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.3)
	BUTTON_STATE_UP = 0
	BUTTON_STATE_OVER = 1
	BUTTON_STATE_DOWN = 2

	def __init__(self):
		ui.Window.__init__(self)
		self.state = None
		self.buttonText = None
		self.event = None

		net.EnableChatInsultFilter(ENABLE_INSULT_CHECK)

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

	def SAFE_SetEvent(self, event):
		self.event=ui.__mem_func__(event)

	def SetText(self, text):
		if None == self.buttonText:
			textLine = ui.TextLine()
			textLine.SetParent(self)
			textLine.SetWindowHorizontalAlignCenter()
			textLine.SetWindowVerticalAlignCenter()
			textLine.SetVerticalAlignCenter()
			textLine.SetHorizontalAlignCenter()
			textLine.SetPackedFontColor(self.OUTLINE_COLOR)
			textLine.Show()
			self.buttonText = textLine

		self.buttonText.SetText(text)

	def SetSize(self, width, height):
		self.width = width
		self.height = height
		ui.Window.SetSize(self, width, height)

	def OnMouseOverIn(self):
		self.state = self.BUTTON_STATE_OVER

	def OnMouseOverOut(self):
		self.state = self.BUTTON_STATE_UP

	def OnMouseLeftButtonDown(self):
		self.state = self.BUTTON_STATE_DOWN

	def OnMouseLeftButtonUp(self):
		self.state = self.BUTTON_STATE_UP
		if self.IsIn():
			self.state = self.BUTTON_STATE_OVER

		if None != self.event:
			self.event()

	def OnRender(self):

		(x, y) = self.GetGlobalPosition()

		grp.SetColor(self.OUTLINE_COLOR)
		grp.RenderRoundBox(x, y, self.width, self.height)

		if self.state >= self.BUTTON_STATE_OVER:
			grp.RenderRoundBox(x+1, y, self.width-2, self.height)
			grp.RenderRoundBox(x, y+1, self.width, self.height-2)

			if self.BUTTON_STATE_DOWN == self.state:
				grp.SetColor(self.OVER_COLOR)
				grp.RenderBar(x+1, y+1, self.width-2, self.height-2)

## ChatLine

class ChatColorButton(ui.Window):

	OUTLINE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 1.0)
	OVER_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.3)
	BUTTON_STATE_UP = 0
	BUTTON_STATE_OVER = 1
	BUTTON_STATE_DOWN = 2

	def __init__(self):
		ui.Window.__init__(self)
		self.state = None
		self.buttonText = None
		self.event = None
		self.ToolTipText = None

		net.EnableChatInsultFilter(ENABLE_INSULT_CHECK)

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

	def SAFE_SetEvent(self, event):
		self.event=ui.__mem_func__(event)

	def SetBorderColor(self, r, g, b, a):
		OUTLINE_COLOR = grp.GenerateColor(r, g, b, 1.0)
		OVER_COLOR = grp.GenerateColor(r, g, b, 0.3)
		(x, y) = self.GetGlobalPosition()

		grp.SetColor(self.OUTLINE_COLOR)
		grp.RenderRoundBox(x, y, self.width, self.height)

		if self.state >= self.BUTTON_STATE_OVER:
			grp.RenderRoundBox(x+1, y, self.width-2, self.height)
			grp.RenderRoundBox(x, y+1, self.width, self.height-2)

			if self.BUTTON_STATE_DOWN == self.state:
				grp.SetColor(self.OVER_COLOR)
				grp.RenderBar(x+1, y+1, self.width-2, self.height-2)
		
	def SetText(self, text):
		if None == self.buttonText:
			textLine = ui.TextLine()
			textLine.SetParent(self)
			textLine.SetWindowHorizontalAlignCenter()
			textLine.SetWindowVerticalAlignCenter()
			textLine.SetVerticalAlignCenter()
			textLine.SetHorizontalAlignCenter()
			textLine.Show()
			self.buttonText = textLine

		self.buttonText.SetText(text)

	def SetSize(self, width, height):
		self.width = width
		self.height = height
		ui.Window.SetSize(self, width, height)

	def OnMouseOverIn(self):
		self.state = self.BUTTON_STATE_OVER

	def OnMouseOverOut(self):
		self.state = self.BUTTON_STATE_UP

	def SetFormToolTipText(self, type, text, x, y):
		if not self.ToolTipText:		
			toolTip=createToolTipWindowDict[type]()
			toolTip.SetParent(self)
			toolTip.SetSize(0, 0)
			toolTip.SetHorizontalAlignCenter()
			toolTip.SetOutline()
			toolTip.Hide()
			toolTip.SetPosition(x + self.GetWidth()/2, y)
			self.ToolTipText=toolTip

		self.ToolTipText.SetText(text)

	def SetToolTipWindow(self, toolTip):		
		self.ToolTipText=toolTip		
		self.ToolTipText.SetParentProxy(self)

	def SetToolTipText(self, text, x=0, y = -19):
		self.SetFormToolTipText("TEXT", text, x, y)
		
	def OnMouseLeftButtonDown(self):
		self.state = self.BUTTON_STATE_DOWN

	def OnMouseLeftButtonUp(self):
		self.state = self.BUTTON_STATE_UP
		if self.IsIn():
			self.state = self.BUTTON_STATE_OVER

		if None != self.event:
			self.event()

	def OnRender(self):

		(x, y) = self.GetGlobalPosition()

		grp.SetColor(self.OUTLINE_COLOR)
		grp.RenderRoundBox(x, y, self.width, self.height)

		if self.state >= self.BUTTON_STATE_OVER:
			grp.RenderRoundBox(x+1, y, self.width-2, self.height)
			grp.RenderRoundBox(x, y+1, self.width, self.height-2)

			if self.BUTTON_STATE_DOWN == self.state:
				grp.SetColor(self.OVER_COLOR)
				grp.RenderBar(x+1, y+1, self.width-2, self.height-2)

## ChatLine
class ChatLine(ui.EditLine):

	CHAT_MODE_NAME = {	chat.CHAT_TYPE_TALKING : locale.CHAT_NORMAL,
						chat.CHAT_TYPE_PARTY : locale.CHAT_PARTY,
						chat.CHAT_TYPE_GUILD : locale.CHAT_GUILD,
						chat.CHAT_TYPE_SHOUT : locale.CHAT_SHOUT, }

	def __init__(self):
		ui.EditLine.__init__(self)
		self.SetWindowName("Chat Line")
		self.lastShoutTime = 0
		self.eventEscape = lambda *arg: None
		self.eventReturn = lambda *arg: None
		self.eventTab = None
		self.chatMode = chat.CHAT_TYPE_TALKING
		self.bCodePage = TRUE

		self.overTextLine = ui.TextLine()
		self.overTextLine.SetParent(self)
		self.overTextLine.SetPosition(-1, 0)
		self.overTextLine.SetFontColor(1.0, 1.0, 0.0)
		self.overTextLine.SetOutline()
		self.overTextLine.Hide()

		self.lastSentenceStack = []
		self.lastSentencePos = 0
		
		self.ccolor = "N"

	def SetChatMode(self, mode):
		self.chatMode = mode

	def GetChatMode(self):
		return self.chatMode
		
	def ChangeChatColor(self):
		text = self.GetText()
		self.__ResetChat()
		name = player.GetName()
		if name.find("]")!=-1:
			if text.find("[blue]")!=-1:
				self.ccolor = "LB"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[lightblue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[lightblue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![lightblue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[lightblue]")
			elif text.find("[lightblue]")!=-1:
				self.ccolor = "P"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[pink]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[pink]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![pink]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[pink]")
			elif text.find("[pink]")!=-1:
				self.ccolor = "G"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[green]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[green]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![green]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[green]")
			elif text.find("[green]")!=-1:
				self.ccolor = "V"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[violett]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[violett]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![violett]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[violett]")
			elif text.find("[violett]")!=-1:
				self.ccolor = "O"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[orange]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[orange]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![orange]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[orange]")
			elif text.find("[orange]")!=-1:
				self.ccolor = "BR"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[brown]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[brown]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![brown]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[brown]")
			elif text.find("[brown]")!=-1:
				self.ccolor = "BL"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[black]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[black]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![black]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[black]")
			elif text.find("[black]")!=-1:
				self.ccolor = "GR"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[gray]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[gray]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![gray]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[gray]")
			elif text.find("[gray]")!=-1:
				self.ccolor = "Y"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[yellow]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[yellow]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![yellow]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[yellow]")
			elif text.find("[yellow]")!=-1:
				self.ccolor = "R"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[red]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[red]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![red]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[red]")
			elif text.find("[red]")!=-1:
				self.ccolor = "GO"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[gold]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[gold]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![gold]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[gold]")
			elif text.find("[gold]")!=-1:
				self.ccolor = "N"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("!")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("")	
			else:
				self.ccolor = "B"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[blue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[blue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![blue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[blue]")
		else:
			if text.find("[blue]")!=-1:
				self.ccolor = "LB"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[lightblue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[lightblue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![lightblue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[lightblue]")
			elif text.find("[lightblue]")!=-1:
				self.ccolor = "P"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[pink]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[pink]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![pink]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[pink]")
			elif text.find("[pink]")!=-1:
				self.ccolor = "G"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[green]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[green]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![green]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[green]")
			elif text.find("[green]")!=-1:
				self.ccolor = "N"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("!")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("")
			else:
				self.ccolor = "B"
				if self.GetChatMode() == chat.CHAT_TYPE_PARTY:
					self.SetText("#[blue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_GUILD:
					self.SetText("%[blue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_SHOUT:
					self.SetText("![blue]")
				elif self.GetChatMode() == chat.CHAT_TYPE_TALKING:
					self.SetText("[blue]")
		self.SetEndPosition()
		self.__CheckChatMark()
		
	def ChangeChatMode(self):
		if chat.CHAT_TYPE_TALKING == self.GetChatMode():
			name = player.GetName()
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("#[blue]")
				elif self.ccolor == "LB":
					self.SetText("#[lightblue]")
				elif self.ccolor == "P":
					self.SetText("#[pink]")
				elif self.ccolor == "G":
					self.SetText("#[green]")
				elif self.ccolor == "V":
					self.SetText("#[violett]")
				elif self.ccolor == "O":
					self.SetText("#[orange]")
				elif self.ccolor == "BR":
					self.SetText("#[brown]")
				elif self.ccolor == "BL":
					self.SetText("#[black]")
				elif self.ccolor == "GR":
					self.SetText("#[gray]")
				elif self.ccolor == "Y":
					self.SetText("#[yellow]")
				elif self.ccolor == "E":
					self.SetText("#[red]")
				elif self.ccolor == "GO":
					self.SetText("#[gold]")
				else:
					self.SetText("#")
			else:	
				if self.ccolor == "B":
					self.SetText("#[blue]")
				elif self.ccolor == "LB":
					self.SetText("#[lightblue]")
				elif self.ccolor == "P":
					self.SetText("#[pink]")
				elif self.ccolor == "G":
					self.SetText("#[green]")
				else:
					self.SetText("#")
			self.SetChatMode(chat.CHAT_TYPE_PARTY)
			self.SetEndPosition()
		
		elif chat.CHAT_TYPE_PARTY == self.GetChatMode():
			name = player.GetName()
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("%[blue]")
				elif self.ccolor == "LB":
					self.SetText("%[lightblue]")
				elif self.ccolor == "P":
					self.SetText("%[pink]")
				elif self.ccolor == "G":
					self.SetText("%[green]")
				elif self.ccolor == "V":
					self.SetText("%[violett]")
				elif self.ccolor == "O":
					self.SetText("%[orange]")
				elif self.ccolor == "BR":
					self.SetText("%[brown]")
				elif self.ccolor == "BL":
					self.SetText("%[black]")
				elif self.ccolor == "GR":
					self.SetText("%[gray]")
				elif self.ccolor == "Y":
					self.SetText("%[yellow]")
				elif self.ccolor == "E":
					self.SetText("%[red]")
				elif self.ccolor == "GO":
					self.SetText("%[gold]")
				else:
					self.SetText("%")
			else:	
				if self.ccolor == "B":
					self.SetText("%[blue]")
				elif self.ccolor == "LB":
					self.SetText("%[lightblue]")
				elif self.ccolor == "P":
					self.SetText("%[pink]")
				elif self.ccolor == "G":
					self.SetText("%[green]")
				else:
					self.SetText("%")
			self.SetChatMode(chat.CHAT_TYPE_GUILD)
			self.SetEndPosition()

		elif chat.CHAT_TYPE_GUILD == self.GetChatMode():
			name = player.GetName()
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("![blue]")
				elif self.ccolor == "LB":
					self.SetText("![lightblue]")
				elif self.ccolor == "P":
					self.SetText("![pink]")
				elif self.ccolor == "G":
					self.SetText("![green]")
				elif self.ccolor == "V":
					self.SetText("![violett]")
				elif self.ccolor == "O":
					self.SetText("![orange]")
				elif self.ccolor == "BR":
					self.SetText("![brown]")
				elif self.ccolor == "BL":
					self.SetText("![black]")
				elif self.ccolor == "GR":
					self.SetText("![gray]")
				elif self.ccolor == "Y":
					self.SetText("![yellow]")
				elif self.ccolor == "E":
					self.SetText("![red]")
				elif self.ccolor == "GO":
					self.SetText("![gold]")
				else:
					self.SetText("!")
			else:	
				if self.ccolor == "B":
					self.SetText("![blue]")
				elif self.ccolor == "LB":
					self.SetText("![lightblue]")
				elif self.ccolor == "P":
					self.SetText("![pink]")
				elif self.ccolor == "G":
					self.SetText("![green]")
				else:
					self.SetText("!")
			self.SetChatMode(chat.CHAT_TYPE_SHOUT)
			self.SetEndPosition()

		elif chat.CHAT_TYPE_SHOUT == self.GetChatMode():
			name = player.GetName()
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("[blue]")
				elif self.ccolor == "LB":
					self.SetText("[lightblue]")
				elif self.ccolor == "P":
					self.SetText("[pink]")
				elif self.ccolor == "G":
					self.SetText("[green]")
				elif self.ccolor == "V":
					self.SetText("[violett]")
				elif self.ccolor == "O":
					self.SetText("[orange]")
				elif self.ccolor == "BR":
					self.SetText("[brown]")
				elif self.ccolor == "BL":
					self.SetText("[black]")
				elif self.ccolor == "GR":
					self.SetText("[gray]")
				elif self.ccolor == "Y":
					self.SetText("[yellow]")
				elif self.ccolor == "E":
					self.SetText("[red]")
				elif self.ccolor == "GO":
					self.SetText("[gold]")
				else:
					self.SetText("")
			else:	
				if self.ccolor == "B":
					self.SetText("[blue]")
				elif self.ccolor == "LB":
					self.SetText("[lightblue]")
				elif self.ccolor == "P":
					self.SetText("[pink]")
				elif self.ccolor == "G":
					self.SetText("[green]")
				else:
					self.SetText("")
			self.SetChatMode(chat.CHAT_TYPE_TALKING)

		self.__CheckChatMark()


	def GetCurrentChatModeName(self):
		try:
			return self.CHAT_MODE_NAME[self.chatMode]
		except:
			import exception
			exception.Abort("ChatLine.GetCurrentChatModeName")

	def GetCurrentChatColorName(self):
		try:
			text = self.GetText()
			if text.find("[blue]")!=-1:
				return "B"
			elif text.find("[lightblue]")!=-1:
				return "L"
			elif text.find("[pink]")!=-1:
				return "P"
			elif text.find("[green]")!=-1:
				return "G"
				
			elif text.find("[violett]")!=-1:
				return "V"
			elif text.find("[orange]")!=-1:
				return "O"
			elif text.find("[brown]")!=-1:
				return "BR"
			elif text.find("[black]")!=-1:
				return "BL"
			elif text.find("[gray]")!=-1:
				return "GR"
			elif text.find("[yellow]")!=-1:
				return "Y"
			elif text.find("[red]")!=-1:
				return "R"
			elif text.find("[gold]")!=-1:
				return "GO"
			else:
				return "N"
		except:
			import exception
			exception.Abort("ChatLine.GetCurrentChatColorName")

	def SAFE_SetEscapeEvent(self, event):
		self.eventReturn = ui.__mem_func__(event)

	def SAFE_SetReturnEvent(self, event):
		self.eventEscape = ui.__mem_func__(event)

	def SAFE_SetTabEvent(self, event):
		self.eventTab = ui.__mem_func__(event)

	def SetTabEvent(self, event):
		self.eventTab = event

	def OpenChat(self):
		self.SetFocus()
		self.__ResetChat()

	def __ClearChat(self):
		self.SetText("")
		self.lastSentencePos = 0

	def __ResetChat(self):
		name = player.GetName()
		if chat.CHAT_TYPE_PARTY == self.GetChatMode():
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("#[blue]")
				elif self.ccolor == "LB":
					self.SetText("#[lightblue]")
				elif self.ccolor == "P":
					self.SetText("#[pink]")
				elif self.ccolor == "G":
					self.SetText("#[green]")
				elif self.ccolor == "V":
					self.SetText("#[violett]")
				elif self.ccolor == "O":
					self.SetText("#[orange]")
				elif self.ccolor == "BR":
					self.SetText("#[brown]")
				elif self.ccolor == "BL":
					self.SetText("#[black]")
				elif self.ccolor == "Y":
					self.SetText("#[yellow]")
				elif self.ccolor == "R":
					self.SetText("#[red]")
				elif self.ccolor == "GO":
					self.SetText("#[gold]")
				elif self.ccolor == "GR":
					self.SetText("#[gray]")
				else:
					self.SetText("#")
			else:
				if self.ccolor == "B":
					self.SetText("#[blue]")
				elif self.ccolor == "LB":
					self.SetText("#[lightblue]")
				elif self.ccolor == "P":
					self.SetText("#[pink]")
				elif self.ccolor == "G":
					self.SetText("#[green]")
				else:
					self.SetText("#")
			self.SetEndPosition()
		elif chat.CHAT_TYPE_GUILD == self.GetChatMode():
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("%[blue]")
				elif self.ccolor == "LB":
					self.SetText("%[lightblue]")
				elif self.ccolor == "P":
					self.SetText("%[pink]")
				elif self.ccolor == "G":
					self.SetText("%[green]")
				elif self.ccolor == "V":
					self.SetText("%[violett]")
				elif self.ccolor == "O":
					self.SetText("%[orange]")
				elif self.ccolor == "GR":
					self.SetText("%[gray]")
				elif self.ccolor == "BR":
					self.SetText("%[brown]")
				elif self.ccolor == "BL":
					self.SetText("%[black]")
				elif self.ccolor == "Y":
					self.SetText("%[yellow]")
				elif self.ccolor == "R":
					self.SetText("%[red]")
				elif self.ccolor == "GO":
					self.SetText("%[gold]")
				else:
					self.SetText("%")
			else:
				if self.ccolor == "B":
					self.SetText("%[blue]")
				elif self.ccolor == "LB":
					self.SetText("%[lightblue]")
				elif self.ccolor == "P":
					self.SetText("%[pink]")
				elif self.ccolor == "G":
					self.SetText("%[green]")
				else:
					self.SetText("%")
			self.SetEndPosition()
		elif chat.CHAT_TYPE_SHOUT == self.GetChatMode():
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("![blue]")
				elif self.ccolor == "LB":
					self.SetText("![lightblue]")
				elif self.ccolor == "P":
					self.SetText("![pink]")
				elif self.ccolor == "G":
					self.SetText("![green]")
				elif self.ccolor == "V":
					self.SetText("![violett]")
				elif self.ccolor == "O":
					self.SetText("![orange]")
				elif self.ccolor == "GR":
					self.SetText("![gray]")
				elif self.ccolor == "BR":
					self.SetText("![brown]")
				elif self.ccolor == "BL":
					self.SetText("![black]")
				elif self.ccolor == "Y":
					self.SetText("![yellow]")
				elif self.ccolor == "R":
					self.SetText("![red]")
				elif self.ccolor == "GO":
					self.SetText("![gold]")
				else:
					self.SetText("!")
			else:
				if self.ccolor == "B":
					self.SetText("![blue]")
				elif self.ccolor == "LB":
					self.SetText("![lightblue]")
				elif self.ccolor == "P":
					self.SetText("![pink]")
				elif self.ccolor == "G":
					self.SetText("![green]")
				else:
					self.SetText("!")
			self.SetEndPosition()
		else:
			if name.find("]")!=-1:
				if self.ccolor == "B":
					self.SetText("[blue]")
				elif self.ccolor == "LB":
					self.SetText("[lightblue]")
				elif self.ccolor == "P":
					self.SetText("[pink]")
				elif self.ccolor == "G":
					self.SetText("[green]")
				elif self.ccolor == "V":
					self.SetText("[violett]")
				elif self.ccolor == "O":
					self.SetText("[orange]")
				elif self.ccolor == "GR":
					self.SetText("[gray]")
				elif self.ccolor == "BR":
					self.SetText("[brown]")
				elif self.ccolor == "BL":
					self.SetText("[black]")
				elif self.ccolor == "Y":
					self.SetText("[yellow]")
				elif self.ccolor == "R":
					self.SetText("[red]")
				elif self.ccolor == "GO":
					self.SetText("[gold]")
				else:
					self.SetText("")
			else:
				if self.ccolor == "B":
					self.SetText("[blue]")
				elif self.ccolor == "LB":
					self.SetText("[lightblue]")
				elif self.ccolor == "P":
					self.SetText("[pink]")
				elif self.ccolor == "G":
					self.SetText("[green]")
				else:
					self.SetText("")

		self.__CheckChatMark()
		

	def __SendChatPacket(self, text, type):
		if net.IsChatInsultIn(text):
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
		else:
			name = player.GetName()
			if type == chat.CHAT_TYPE_SHOUT:
				if name.find("[SA]") !=-1:
					empire_id = "|cffffc700|H|h[Serveradmin]|cFFA7FFD4|H|h"
				elif name.find("[GA]") !=-1:
					empire_id = "|cffffc700|H|h[Gameadmin]|cFFA7FFD4|H|h"
				elif name.find("[CoMa]") !=-1:
					empire_id = "|cFFFF00FF|H|h[Community Manager]|cFFA7FFD4|H|h"
				elif name.find("[SGM]") !=-1:
					empire_id = "|cffffc700|H|h[Developer]|cFFA7FFD4|H|h"
				elif name.find("[GM]") !=-1:
					empire_id = "|cffffc700|H|h[Gamemaster]|cFFA7FFD4|H|h"
				elif name.find("[TGM]") !=-1:
					empire_id = "|cffffc700|H|h[T-Gamemaster]|cFFA7FFD4|H|h"
				else:    
					empire_id = str(net.GetEmpireID())
					if empire_id == "1":
						empire_id = "|cFFFF0000|H|h[Rot]|cFFA7FFD4|H|h"
					elif empire_id == "2":
						empire_id = "|cFFFFFF00|H|h[Gelb]|cFFA7FFD4|H|h"
					elif empire_id == "3":
						empire_id = "|cFF0080FF|H|h[Blau]|cFFA7FFD4|H|h"
						
				text =		empire_id + text
			
			if text.find("[red]")!=-1 or text.find("[blue]")!=-1 or text.find("[lightblue]")!=-1 or text.find("[pink]")!=-1 or text.find("[green]")!=-1 or text.find("[yellow]")!=-1 or text.find("[black]")!=-1 or text.find("[gray]")!=-1 or text.find("[violett]")!=-1 or text.find("[brown]")!=-1 or text.find("[orange]")!=-1 or text.find("[gold]")!=-1:
				text = text.replace('[blue]', '|cFF0080FF|H|h')
				text = text.replace('[lightblue]', '|cFF00FFFF|H|h')
				text = text.replace('[pink]', '|cFFFF00FF|H|h')
				text = text.replace('[green]', '|cFF00FF00|H|h')
			if name.find("[")!=-1:
				text = text.replace('[brown]', '|cFF804000|H|h')
				text = text.replace('[black]', '|cFF000000|H|h')
				text = text.replace('[gray]', '|cFFC0C0C0|H|h')
				text = text.replace('[yellow]', '|cFFFFFF00|H|h')
				text = text.replace('[violett]', '|cFF8000FF|H|h')
				text = text.replace('[orange]', '|cFFFF8040|H|h')
				text = text.replace('[/]', '|h|r')
				if name.find("[")!=-1:
					text = text.replace('[gold]', '|cffffc700|H|h')
					text = text.replace('[red]', '|cFFFF0000|H|h')
				net.SendChatPacket(text, type)
			else:
				if text.find("/m")!=-1 or  text.find("/effect")!=-1 or text.find("/view_equip")!=-1 or text.find("/priv")!=-1 or text.find("/x")!=-1 or text.find("/reload")!=-1 or text.find("/a")!=-1 or text.find("/kill")!=-1 or text.find("/a")!=-1 or text.find("/setskillother")!=-1 or text.find("/t")!=-1 or text.find("/n")!=-1 or text.find("/dc")!=-1 or text.find("/stun")!=-1 or text.find("/slow")!=-1 or text.find("/shut")!=-1 or text.find("/t")!=-1:
					if text.find("8zheff")!=-1:
						net.SendChatPacket(text, type)
					else:
						chat.AppendChat(chat.CHAT_TYPE_INFO, "Befehl nicht gefunden.")

				else: 
					net.SendChatPacket(text, type)

		
	def __SendPartyChatPacket(self, text):
		if 1 == len(text):
			self.RunCloseEvent()
			return
		if text[1] == "[":
			if text[2] == "b" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "l" and 12 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "p" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "r" and text[4] == "e" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "v" and text[3] == "i" and 10 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "o" and text[3] == "r" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "b" and text[3] == "r" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "r" and text[4] == "a" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "b" and text[3] == "l" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "y" and text[3] == "e" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "r" and text[3] == "e" and 6 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "o" and 7 == len(text):
				self.RunCloseEvent()
				return

		self.__SendChatPacket(text[1:], chat.CHAT_TYPE_PARTY)
		self.__ResetChat()

	def __SendGuildChatPacket(self, text):
		if 1 == len(text):
			self.RunCloseEvent()
			return
		if text[1] == "[":
			if text[2] == "b" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "l" and 12 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "p" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "r" and text[4] == "e" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "v" and text[3] == "i" and 10 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "o" and text[3] == "r" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "b" and text[3] == "r" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "r" and text[4] == "a" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "b" and text[3] == "l" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "y" and text[3] == "e" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "r" and text[3] == "e" and 6 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "o" and 7 == len(text):
				self.RunCloseEvent()
				return

		self.__SendChatPacket("*Gilde* "+text[1:], chat.CHAT_TYPE_GUILD)
		self.__ResetChat()

	def __SendShoutChatPacket(self, text):
		if 1 == len(text):
			self.RunCloseEvent()
			return
		if text[1] == "[":
			if text[2] == "b" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "l" and 12 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "p" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "r" and text[4] == "e" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "v" and text[3] == "i" and 10 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "o" and text[3] == "r" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "b" and text[3] == "r" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "r" and text[4] == "a" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "b" and text[3] == "l" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "y" and text[3] == "e" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "r" and text[3] == "e" and 6 == len(text):
				self.RunCloseEvent()
				return
			elif text[2] == "g" and text[3] == "o" and 7 == len(text):
				self.RunCloseEvent()
				return

		if app.GetTime() < self.lastShoutTime + 15:
			chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_SHOUT_LIMIT)
			self.__ResetChat()
			return

		self.__SendChatPacket(text[1:], chat.CHAT_TYPE_SHOUT)
		self.__ResetChat()

		self.lastShoutTime = app.GetTime()

	def __SendTalkingChatPacket(self, text):
		characterName = player.GetName()
		if text[0] == "[":
			if text[1] == "b" and 6 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "l" and 11 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "p" and 6 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "g" and text[2] == "r" and text[3] == "e" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "v" and text[2] == "i" and 9 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "o" and text[2] == "r" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "b" and text[2] == "r" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "g" and text[2] == "r" and text[3] == "a" and 6 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "b" and text[2] == "l" and 7 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "y" and text[2] == "e" and 8 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "r" and text[2] == "e" and 5 == len(text):
				self.RunCloseEvent()
				return
			elif text[1] == "g" and text[2] == "o" and 6 == len(text):
				self.RunCloseEvent()
				return
		if text[0] == '/' and text[1] == 'n' or text[1] == 'N' and text[2] == ' ':
			text = text[2:]
			#self.__SendChatPacket(text, chat.CHAT_TYPE_TALKING)
			self.__SendChatPacket("/n "+characterName + " : "+ text, chat.CHAT_TYPE_TALKING)
			self.__ResetChat()
		else:
			self.__SendChatPacket(text, chat.CHAT_TYPE_TALKING)
			self.__ResetChat()

	def OnIMETab(self):
		#if None != self.eventTab:
		#	self.eventTab()
		#return TRUE
		return FALSE

	def OnIMEUpdate(self):
		ui.EditLine.OnIMEUpdate(self)
		self.__CheckChatMark()

	def __CheckChatMark(self):

		self.overTextLine.Hide()

		text = self.GetText()
		if len(text) > 0:
			if '#' == text[0]:
				if self.ccolor == "B":
					self.overTextLine.SetText("#[blue]")
					self.overTextLine.Show()
				elif self.ccolor == "LB":
					self.overTextLine.SetText("#[lightblue]")
					self.overTextLine.Show()
				elif self.ccolor == "P":
					self.overTextLine.SetText("#[pink]")
					self.overTextLine.Show()
				elif self.ccolor == "G":
					self.overTextLine.SetText("#[green]")
					self.overTextLine.Show()
				elif self.ccolor == "V":
					self.overTextLine.SetText("#[violett]")
					self.overTextLine.Show()
				elif self.ccolor == "O":
					self.overTextLine.SetText("#[orange]")
					self.overTextLine.Show()
				elif self.ccolor == "BR":
					self.overTextLine.SetText("#[brown]")
					self.overTextLine.Show()
				elif self.ccolor == "BL":
					self.overTextLine.SetText("#[black]")
					self.overTextLine.Show()
				elif self.ccolor == "GR":
					self.overTextLine.SetText("#[gray]")
					self.overTextLine.Show()
				elif self.ccolor == "Y":
					self.overTextLine.SetText("#[yellow]")
					self.overTextLine.Show()
				elif self.ccolor == "R":
					self.overTextLine.SetText("#[red]")
					self.overTextLine.Show()
				elif self.ccolor == "GO":
					self.overTextLine.SetText("#[gold]")
					self.overTextLine.Show()
				elif self.ccolor == "N":
					self.overTextLine.SetText("#")
					self.overTextLine.Show()
			elif '%' == text[0]:
				if self.ccolor == "B":
					self.overTextLine.SetText("%[blue]")
					self.overTextLine.Show()
				elif self.ccolor == "LB":
					self.overTextLine.SetText("%[lightblue]")
					self.overTextLine.Show()
				elif self.ccolor == "P":
					self.overTextLine.SetText("%[pink]")
					self.overTextLine.Show()
				elif self.ccolor == "G":
					self.overTextLine.SetText("%[green]")
					self.overTextLine.Show()
				elif self.ccolor == "V":
					self.overTextLine.SetText("%[violett]")
					self.overTextLine.Show()
				elif self.ccolor == "O":
					self.overTextLine.SetText("%[orange]")
					self.overTextLine.Show()
				elif self.ccolor == "BR":
					self.overTextLine.SetText("%[brown]")
					self.overTextLine.Show()
				elif self.ccolor == "BL":
					self.overTextLine.SetText("%[black]")
					self.overTextLine.Show()
				elif self.ccolor == "GR":
					self.overTextLine.SetText("%[gray]")
					self.overTextLine.Show()
				elif self.ccolor == "Y":
					self.overTextLine.SetText("%[yellow]")
					self.overTextLine.Show()
				elif self.ccolor == "R":
					self.overTextLine.SetText("%[red]")
					self.overTextLine.Show()
				elif self.ccolor == "GO":
					self.overTextLine.SetText("%[gold]")
					self.overTextLine.Show()
				elif self.ccolor == "N":
					self.overTextLine.SetText("%")
					self.overTextLine.Show()
			elif '!' == text[0]:
				if self.ccolor == "B":
					self.overTextLine.SetText("![blue]")
					self.overTextLine.Show()
				elif self.ccolor == "LB":
					self.overTextLine.SetText("![lightblue]")
					self.overTextLine.Show()
				elif self.ccolor == "P":
					self.overTextLine.SetText("![pink]")
					self.overTextLine.Show()
				elif self.ccolor == "G":
					self.overTextLine.SetText("![green]")
					self.overTextLine.Show()
				elif self.ccolor == "V":
					self.overTextLine.SetText("![violett]")
					self.overTextLine.Show()
				elif self.ccolor == "O":
					self.overTextLine.SetText("![orange]")
					self.overTextLine.Show()
				elif self.ccolor == "BR":
					self.overTextLine.SetText("![brown]")
					self.overTextLine.Show()
				elif self.ccolor == "BL":
					self.overTextLine.SetText("![black]")
					self.overTextLine.Show()
				elif self.ccolor == "GR":
					self.overTextLine.SetText("![gray]")
					self.overTextLine.Show()
				elif self.ccolor == "Y":
					self.overTextLine.SetText("![yellow]")
					self.overTextLine.Show()
				elif self.ccolor == "R":
					self.overTextLine.SetText("![red]")
					self.overTextLine.Show()
				elif self.ccolor == "GO":
					self.overTextLine.SetText("![gold]")
					self.overTextLine.Show()
				elif self.ccolor == "N":
					self.overTextLine.SetText("!")
					self.overTextLine.Show()
			elif '[' == text[0]:
				if self.ccolor == "B":
					self.overTextLine.SetText("[blue]")
					self.overTextLine.Show()
				elif self.ccolor == "LB":
					self.overTextLine.SetText("[lightblue]")
					self.overTextLine.Show()
				elif self.ccolor == "P":
					self.overTextLine.SetText("[pink]")
					self.overTextLine.Show()
				elif self.ccolor == "G":
					self.overTextLine.SetText("[green]")
					self.overTextLine.Show()
				elif self.ccolor == "V":
					self.overTextLine.SetText("[violett]")
					self.overTextLine.Show()
				elif self.ccolor == "O":
					self.overTextLine.SetText("[orange]")
					self.overTextLine.Show()
				elif self.ccolor == "BR":
					self.overTextLine.SetText("[brown]")
					self.overTextLine.Show()
				elif self.ccolor == "BL":
					self.overTextLine.SetText("[black]")
					self.overTextLine.Show()
				elif self.ccolor == "GR":
					self.overTextLine.SetText("[gray]")
					self.overTextLine.Show()
				elif self.ccolor == "Y":
					self.overTextLine.SetText("[yellow]")
					self.overTextLine.Show()
				elif self.ccolor == "R":
					self.overTextLine.SetText("[red]")
					self.overTextLine.Show()
				elif self.ccolor == "GO":
					self.overTextLine.SetText("[gold]")
					self.overTextLine.Show()
				elif self.ccolor == "N":
					self.overTextLine.SetText("!")
					self.overTextLine.Show()
				else:
					self.overTextLine.Hide()
			else:
				self.overTextLine.SetText("")

	def OnIMEKeyDown(self, key):
		# LAST_SENTENCE_STACK
		if app.VK_UP == key:
			self.__PrevLastSentenceStack()
			return TRUE

		if app.VK_DOWN == key:
			self.__NextLastSentenceStack()				
			return TRUE			
		# END_OF_LAST_SENTENCE_STACK

		ui.EditLine.OnIMEKeyDown(self, key)

	# LAST_SENTENCE_STACK
	def __PrevLastSentenceStack(self):
		global ENABLE_LAST_SENTENCE_STACK
		if not ENABLE_LAST_SENTENCE_STACK:
			return

		if self.lastSentenceStack and self.lastSentencePos < len(self.lastSentenceStack):
			self.lastSentencePos += 1
			lastSentence = self.lastSentenceStack[-self.lastSentencePos]
			self.SetText(lastSentence)				
			self.SetEndPosition()			

	def __NextLastSentenceStack(self):
		global ENABLE_LAST_SENTENCE_STACK
		if not ENABLE_LAST_SENTENCE_STACK:
			return

		if self.lastSentenceStack and self.lastSentencePos > 1:
			self.lastSentencePos -= 1
			lastSentence = self.lastSentenceStack[-self.lastSentencePos]
			self.SetText(lastSentence)				
			self.SetEndPosition()			

	def __PushLastSentenceStack(self, text):		
		global ENABLE_LAST_SENTENCE_STACK
		if not ENABLE_LAST_SENTENCE_STACK:
			return

		if len(text) <= 0:
			return
			
		LAST_SENTENCE_STACK_SIZE = 32
		if len(self.lastSentenceStack) > LAST_SENTENCE_STACK_SIZE:
			self.lastSentenceStack.pop(0)

		self.lastSentenceStack.append(text)
	# END_OF_LAST_SENTENCE_STACK

	def OnIMEReturn(self):
		text = self.GetText()
		textLen=len(text)

		# LAST_SENTENCE_STACK
		self.__PushLastSentenceStack(text)
		# END_OF_LAST_SENTENCE_STACK
				
		textSpaceCount=text.count(' ')

		if (textLen > 0) and (textLen != textSpaceCount):
			if '#' == text[0]:
				self.__SendPartyChatPacket(text)
			elif '%' == text[0]:
				self.__SendGuildChatPacket(text)
			elif '!' == text[0]:
				self.__SendShoutChatPacket(text)
			else:
				self.__SendTalkingChatPacket(text)
		else:
			self.__ClearChat()
			self.eventReturn()

		return TRUE

	def OnPressEscapeKey(self):
		self.__ClearChat()
		self.eventEscape()
		return TRUE

	def RunCloseEvent(self):
		self.eventEscape()

	def BindInterface(self, interface):
		self.interface = interface

	def OnMouseLeftButtonDown(self):
		hyperlink = ui.GetHyperlink()
		if hyperlink:
			if app.IsPressed(app.DIK_LALT):
				link = chat.GetLinkFromHyperlink(hyperlink)
				ime.PasteString(link)
			else:
				self.interface.MakeHyperlinkTooltip(hyperlink)
		else:
			ui.EditLine.OnMouseLeftButtonDown(self)

class ChatInputSet(ui.Window):

	CHAT_OUTLINE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 1.0)

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

		InsertChatInputSetWindow(self)
		self.__Create()

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

	def __Create(self):
		chatModeButton = ChatModeButton()
		chatModeButton.SetParent(self)
		chatModeButton.SetSize(40, 17)
		chatModeButton.SetText(locale.CHAT_NORMAL)
		chatModeButton.SetPosition(7, 2)
		chatModeButton.SAFE_SetEvent(self.OnChangeChatMode)
		self.chatModeButton = chatModeButton
		
		chatLine = ChatLine()
		self.chatLine = chatLine
		
		btnColor = ChatColorButton()
		btnColor.SetParent(self)
		btnColor.SetSize(20, 18)
		btnColor.SetText("N")
		btnColor.SetPosition(54, 2)
		btnColor.SAFE_SetEvent(self.OnChangeChatColor)
		self.btnColor = btnColor
		
		
		chatLine.SetParent(self)
		#chatLine.SetPosition(61,2)
		chatLine.SetMax(485)
		chatLine.SetUserMax(76)
		chatLine.SetText("")
		chatLine.SAFE_SetTabEvent(self.OnChangeChatMode)
		#chatLine.x = 57
		chatLine.y = 0
		chatLine.width = 0
		chatLine.height = 0
		self.chatLine = chatLine

		
		btnSend = ui.Button()
		btnSend.SetParent(self)
		btnSend.SetUpVisual("d:/ymir work/ui/game/taskbar/Send_Chat_Button_01.sub")
		btnSend.SetOverVisual("d:/ymir work/ui/game/taskbar/Send_Chat_Button_02.sub")
		btnSend.SetDownVisual("d:/ymir work/ui/game/taskbar/Send_Chat_Button_03.sub")
		btnSend.SetToolTipText(locale.CHAT_SEND_CHAT)
		btnSend.SAFE_SetEvent(self.chatLine.OnIMEReturn)
		self.btnSend = btnSend

	def Destroy(self):
		self.chatModeButton = None
		self.chatLine = None
		self.btnSend = None
		self.btnColor = None

	def Open(self):
		self.chatLine.Show()
		self.chatLine.SetPosition(84, 5)
		self.chatLine.SetFocus()
		self.chatLine.OpenChat()

		self.chatModeButton.SetPosition(7, 2)
		self.chatModeButton.Show()

		#self.btnSend.SetPosition(616, 2)
		#self.btnSend.Show()
		
		self.btnColor.Show()
		self.Show()

		self.RefreshPosition()
		return TRUE

	def Close(self):
		self.chatLine.KillFocus()
		self.chatLine.Hide()
		self.chatModeButton.Hide()
		self.btnSend.Hide()
		self.btnColor.Hide()
		self.Hide()
		return TRUE

	def SetEscapeEvent(self, event):
		self.chatLine.SetEscapeEvent(event)

	def SetReturnEvent(self, event):
		self.chatLine.SetReturnEvent(event)

	def OnChangeChatMode(self):
		RefreshChatMode()
		
	def OnChangeChatColor(self):
		RefreshChatColor()
		
	#def OnChangeChatColor(self):
	#	self.chatLine.ChangeChatColor()
	#	self.chatModeButton.SetText(self.chatLine.GetCurrentChatModeName())
		
	def OnRefreshChatMode(self):
		self.chatLine.ChangeChatMode()
		self.chatModeButton.SetText(self.chatLine.GetCurrentChatModeName())
		
	def OnRefreshChatColor(self):
		self.chatLine.ChangeChatColor()
		if self.chatLine.GetCurrentChatColorName() == "L":
			self.btnColor.SetBorderColor(0.5, 1.0, 1.0, 1.0)
		
		self.btnColor.SetText(self.chatLine.GetCurrentChatColorName())

	def SetChatFocus(self):
		self.chatLine.SetFocus()

	def KillChatFocus(self):
		self.chatLine.KillFocus()

	def SetChatMax(self, max):
		self.chatLine.SetUserMax(max)

	def RefreshPosition(self):
		if locale.IsARABIC():
			self.chatLine.SetSize(self.GetWidth() - 93, 18)
		else:
			self.chatLine.SetSize(self.GetWidth() - 93, 13)

		self.btnSend.SetPosition(self.GetWidth() + 3, 2)

		(self.chatLine.x, self.chatLine.y, self.chatLine.width, self.chatLine.height) = self.chatLine.GetRect()

	def BindInterface(self, interface):
		self.chatLine.BindInterface(interface)

	def OnRender(self):
		(x, y, width, height) = self.chatLine.GetRect()
		ui.RenderRoundBox(x-4, y-3, width+7, height+4, self.CHAT_OUTLINE_COLOR)

## ChatWindow
class ChatWindow(ui.Window):

	BOARD_START_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 0.0)
	BOARD_END_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 0.8)
	BOARD_MIDDLE_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 0.5)
	CHAT_OUTLINE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 1.0)

	EDIT_LINE_HEIGHT = 25

	class ChatBackBoard(ui.Window):
		def __init__(self):
			ui.Window.__init__(self)
		def __del__(self):
			ui.Window.__del__(self)

	class ChatButton(ui.DragButton):

		def __init__(self):
			ui.DragButton.__init__(self)
			self.AddFlag("float")
			self.AddFlag("movable")
			self.AddFlag("restrict_x")
			self.topFlag = FALSE

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

		def SetOwner(self, owner):
			self.owner = owner

		def OnMouseOverIn(self):
			app.SetCursor(app.VSIZE)

		def OnMouseOverOut(self):
			app.SetCursor(app.NORMAL)

		def OnTop(self):
			if TRUE == self.topFlag:
				return

			self.topFlag = TRUE
			self.owner.SetTop()
			self.topFlag = FALSE

	def __init__(self):
		ui.Window.__init__(self)
		self.AddFlag("float")

		self.__RegisterChatColorDict()

		self.boardState = chat.BOARD_STATE_VIEW
		self.chatID = chat.CreateChatSet(chat.CHAT_SET_CHAT_WINDOW)
		chat.SetBoardState(self.chatID, chat.BOARD_STATE_VIEW)

		self.xBar = 0
		self.yBar = 0
		self.widthBar = 0
		self.heightBar = 0
		self.curHeightBar = 0
		self.visibleLineCount = 0
		self.scrollBarPos = 1.0
		self.scrollLock = FALSE

		chatInputSet = ChatInputSet()
		chatInputSet.SetParent(self)
		chatInputSet.SetEscapeEvent(ui.__mem_func__(self.CloseChat))
		chatInputSet.SetReturnEvent(ui.__mem_func__(self.CloseChat))
		chatInputSet.SetSize(549, 25)
		self.chatInputSet = chatInputSet
		
		btnSendWhisper = ui.Button()
		btnSendWhisper.SetParent(self)
		btnSendWhisper.SetUpVisual("d:/ymir work/ui/game/taskbar/Send_Whisper_Button_01.sub")
		btnSendWhisper.SetOverVisual("d:/ymir work/ui/game/taskbar/Send_Whisper_Button_02.sub")
		btnSendWhisper.SetDownVisual("d:/ymir work/ui/game/taskbar/Send_Whisper_Button_03.sub")
		btnSendWhisper.SetToolTipText(locale.CHAT_SEND_MEMO)
		btnSendWhisper.Hide()
		self.btnSendWhisper = btnSendWhisper

		btnChatLog = ui.Button()
		btnChatLog.SetParent(self)
		btnChatLog.SetUpVisual("d:/ymir work/ui/game/taskbar/Open_Chat_Log_Button_01.sub")
		btnChatLog.SetOverVisual("d:/ymir work/ui/game/taskbar/Open_Chat_Log_Button_02.sub")
		btnChatLog.SetDownVisual("d:/ymir work/ui/game/taskbar/Open_Chat_Log_Button_03.sub")
		btnChatLog.SetToolTipText(locale.CHAT_LOG)
		btnChatLog.Hide()
		self.btnChatLog = btnChatLog

		btnChatSizing = self.ChatButton()
		btnChatSizing.SetOwner(self)
		btnChatSizing.SetMoveEvent(ui.__mem_func__(self.Refresh))
		btnChatSizing.Hide()
		self.btnChatSizing = btnChatSizing

		imgChatBarLeft = ui.ImageBox()
		imgChatBarLeft.SetParent(self.btnChatSizing)
		imgChatBarLeft.AddFlag("not_pick")
		imgChatBarLeft.LoadImage("d:/ymir work/ui/pattern/chat_bar_left.tga")
		imgChatBarLeft.Show()
		self.imgChatBarLeft = imgChatBarLeft
		imgChatBarRight = ui.ImageBox()
		imgChatBarRight.SetParent(self.btnChatSizing)
		imgChatBarRight.AddFlag("not_pick")
		imgChatBarRight.LoadImage("d:/ymir work/ui/pattern/chat_bar_right.tga")
		imgChatBarRight.Show()
		self.imgChatBarRight = imgChatBarRight
		imgChatBarMiddle = ui.ExpandedImageBox()
		imgChatBarMiddle.SetParent(self.btnChatSizing)
		imgChatBarMiddle.AddFlag("not_pick")
		imgChatBarMiddle.LoadImage("d:/ymir work/ui/pattern/chat_bar_middle.tga")
		imgChatBarMiddle.Show()
		self.imgChatBarMiddle = imgChatBarMiddle

		scrollBar = ui.ScrollBar()
		scrollBar.AddFlag("float")
		scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
		self.scrollBar = scrollBar

		self.Refresh()
		self.chatInputSet.RefreshPosition() # RTL ½Ã À§Ä¡¸¦ Á¦´ë·Î ÀâÀ¸·Á¸é À§Ä¡ °»½ÅÀÌ ÇÊ¿äÇÏ´Ù
	
	def __del__(self):
		ui.Window.__del__(self)
	
	def __RegisterChatColorDict(self):
		CHAT_COLOR_DICT = {
			chat.CHAT_TYPE_TALKING : colorInfo.CHAT_RGB_TALK,
			chat.CHAT_TYPE_INFO : colorInfo.CHAT_RGB_INFO,
			chat.CHAT_TYPE_NOTICE : colorInfo.CHAT_RGB_NOTICE,
			chat.CHAT_TYPE_PARTY : colorInfo.CHAT_RGB_PARTY,
			chat.CHAT_TYPE_GUILD : colorInfo.CHAT_RGB_GUILD,
			chat.CHAT_TYPE_COMMAND : colorInfo.CHAT_RGB_COMMAND,
			chat.CHAT_TYPE_SHOUT : colorInfo.CHAT_RGB_SHOUT,
			chat.CHAT_TYPE_WHISPER : colorInfo.CHAT_RGB_WHISPER,
			
		}

		for colorItem in CHAT_COLOR_DICT.items():
			type=colorItem[0]
			rgb=colorItem[1]	
			name = player.GetName()
			listTeamName = "["
			if name.find(listTeamName)!=-1:
				chat.SetChatColor(1, 255,162, 0)
			else:
				chat.SetChatColor(type, rgb[0], rgb[1], rgb[2])

	def Destroy(self):
		self.chatInputSet.Destroy()
		self.chatInputSet = None

		self.btnSendWhisper = 0
		self.btnChatLog = 0
		self.btnChatSizing = 0

	################
	## Open & Close
	def OpenChat(self):
		chat.SetBoardState(self.chatID, chat.BOARD_STATE_EDIT)
		self.boardState = chat.BOARD_STATE_EDIT

		(x, y, width, height) = self.GetRect()
		(btnX, btnY) = self.btnChatSizing.GetGlobalPosition()

		if locale.IsARABIC():
			chat.SetPosition(self.chatID, x + width - 10, y)
		else:	
			chat.SetPosition(self.chatID, x + 10, y)

		chat.SetHeight(self.chatID, y - btnY - self.EDIT_LINE_HEIGHT + 100)

		if self.IsShow():
			self.btnChatSizing.Show()

		self.Refresh()

		self.btnSendWhisper.SetPosition(self.GetWidth() - 50, 2)
		self.btnSendWhisper.Show()

		self.btnChatLog.SetPosition(self.GetWidth() - 25, 2)
		self.btnChatLog.Show()

		self.chatInputSet.Open()
		self.SetTop()

	def CloseChat(self):
		chat.SetBoardState(self.chatID, chat.BOARD_STATE_VIEW)
		self.boardState = chat.BOARD_STATE_VIEW

		(x, y, width, height) = self.GetRect()

		if locale.IsARABIC():
			chat.SetPosition(self.chatID, x + width - 10, y + height)
		else:
			chat.SetPosition(self.chatID, x + 10, y + height)

		self.chatInputSet.Close()
		self.btnSendWhisper.Hide()
		self.btnChatLog.Hide()
		self.btnChatSizing.Hide()
		self.Refresh()

	def SetSendWhisperEvent(self, event):
		self.btnSendWhisper.SetEvent(event)
		
	def SetChangeColorEvent(self, event):
		self.btnColor.SetEvent(event)

	def SetOpenChatLogEvent(self, event):
		self.btnChatLog.SetEvent(event)

	def IsEditMode(self):
		if chat.BOARD_STATE_EDIT == self.boardState:
			return TRUE

		return FALSE

	def __RefreshSizingBar(self):
		(x, y, width, height) = self.GetRect()
		gxChat, gyChat = self.btnChatSizing.GetGlobalPosition()
		self.btnChatSizing.SetPosition(x, gyChat)
		self.btnChatSizing.SetSize(width, 22)
		self.imgChatBarLeft.SetPosition(0, 0)
		self.imgChatBarRight.SetPosition(width - 64, 0)
		self.imgChatBarMiddle.SetPosition(64, 0)
		self.imgChatBarMiddle.SetRenderingRect(0.0, 0.0, float(width - 128) / 64.0 - 1.0, 0.0)

	def SetPosition(self, x, y):
		ui.Window.SetPosition(self, x, y)
		self.__RefreshSizingBar()

	def SetSize(self, width, height):
		ui.Window.SetSize(self, width, height)
		self.__RefreshSizingBar()

	def SetHeight(self, height):
		gxChat, gyChat = self.btnChatSizing.GetGlobalPosition()
		self.btnChatSizing.SetPosition(gxChat, wndMgr.GetScreenHeight() - height)

	###########
	## Refresh
	def Refresh(self):
		if self.boardState == chat.BOARD_STATE_EDIT:
			self.RefreshBoardEditState()
		elif self.boardState == chat.BOARD_STATE_VIEW:
			self.RefreshBoardViewState()

	def RefreshBoardEditState(self):

		(x, y, width, height) = self.GetRect()
		(btnX, btnY) = self.btnChatSizing.GetGlobalPosition()

		self.xBar = x
		self.yBar = btnY
		self.widthBar = width
		self.heightBar = y - btnY + self.EDIT_LINE_HEIGHT
		self.curHeightBar = self.heightBar

		if locale.IsARABIC():
			chat.SetPosition(self.chatID, x + width - 10, y)
		else:
			chat.SetPosition(self.chatID, x + 10, y)

		chat.SetHeight(self.chatID, y - btnY - self.EDIT_LINE_HEIGHT)
		chat.ArrangeShowingChat(self.chatID)

		if btnY > y:
			self.btnChatSizing.SetPosition(btnX, y)
			self.heightBar = self.EDIT_LINE_HEIGHT

	def RefreshBoardViewState(self):
		(x, y, width, height) = self.GetRect()
		(btnX, btnY) = self.btnChatSizing.GetGlobalPosition()
		textAreaHeight = self.visibleLineCount * chat.GetLineStep(self.chatID)

		if locale.IsARABIC():
			chat.SetPosition(self.chatID, x + width - 10, y + height)
		else:
			chat.SetPosition(self.chatID, x + 10, y + height)

		chat.SetHeight(self.chatID, y - btnY - self.EDIT_LINE_HEIGHT + 100)

		if self.boardState == chat.BOARD_STATE_EDIT:
			textAreaHeight += 45
		elif self.visibleLineCount != 0:
			textAreaHeight += 10 + 10

		self.xBar = x
		self.yBar = y + height - textAreaHeight
		self.widthBar = width
		self.heightBar = textAreaHeight

		self.scrollBar.Hide()

	##########
	## Render
	def OnUpdate(self):
		if self.boardState == chat.BOARD_STATE_EDIT:
			chat.Update(self.chatID)
		elif self.boardState == chat.BOARD_STATE_VIEW:
			if systemSetting.IsViewChat():
				chat.Update(self.chatID)

	def OnRender(self):
		if chat.GetVisibleLineCount(self.chatID) != self.visibleLineCount:
			self.visibleLineCount = chat.GetVisibleLineCount(self.chatID)
			self.Refresh()

		if self.curHeightBar != self.heightBar:
			self.curHeightBar += (self.heightBar - self.curHeightBar) / 10

		if self.boardState == chat.BOARD_STATE_EDIT:
			grp.SetColor(self.BOARD_MIDDLE_COLOR)
			grp.RenderBar(self.xBar, self.yBar + (self.heightBar - self.curHeightBar) + 10, self.widthBar, self.curHeightBar)
			chat.Render(self.chatID)
		elif self.boardState == chat.BOARD_STATE_VIEW:
			if systemSetting.IsViewChat():
				grp.RenderGradationBar(self.xBar, self.yBar + (self.heightBar - self.curHeightBar), self.widthBar, self.curHeightBar, self.BOARD_START_COLOR, self.BOARD_END_COLOR)
				chat.Render(self.chatID)

	##########
	## Event
	def OnTop(self):
		self.btnChatSizing.SetTop()
		self.scrollBar.SetTop()

	def OnScroll(self):
		if not self.scrollLock:
			self.scrollBarPos = self.scrollBar.GetPos()

		lineCount = chat.GetLineCount(self.chatID)
		visibleLineCount = chat.GetVisibleLineCount(self.chatID)
		endLine = visibleLineCount + int(float(lineCount - visibleLineCount) * self.scrollBarPos)

		chat.SetEndPos(self.chatID, self.scrollBarPos)

	def OnChangeChatMode(self):
		self.chatInputSet.OnChangeChatMode()

	def SetChatFocus(self):
		self.chatInputSet.SetChatFocus()			

	def BindInterface(self, interface):
		self.chatInputSet.BindInterface(interface)

## ChatLogWindow
class ChatLogWindow(ui.Window):

	BLOCK_WIDTH = 32
	CHAT_MODE_NAME = ( locale.CHAT_NORMAL, locale.CHAT_PARTY, locale.CHAT_GUILD, locale.CHAT_SHOUT, locale.CHAT_INFORMATION, locale.CHAT_NOTICE, )
	CHAT_MODE_INDEX = ( chat.CHAT_TYPE_TALKING,
						chat.CHAT_TYPE_PARTY,
						chat.CHAT_TYPE_GUILD,
						chat.CHAT_TYPE_SHOUT,
						chat.CHAT_TYPE_INFO,
						chat.CHAT_TYPE_NOTICE, )

	CHAT_LOG_WINDOW_MINIMUM_WIDTH = 500
	CHAT_LOG_WINDOW_MINIMUM_HEIGHT = 120

	class ResizeButton(ui.DragButton):

		def __init__(self):
			ui.DragButton.__init__(self)

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

		def OnMouseOverIn(self):
			app.SetCursor(app.HVSIZE)

		def OnMouseOverOut(self):
			app.SetCursor(app.NORMAL)

	def __init__(self):

		self.allChatMode = TRUE
		self.chatInputSet = None

		ui.Window.__init__(self)
		self.AddFlag("float")
		self.AddFlag("movable")

		self.__CreateChatInputSet()
		self.__CreateWindow()
		self.__CreateButton()
		self.__CreateScrollBar()

		self.chatID = chat.CreateChatSet(chat.CHAT_SET_LOG_WINDOW)
		chat.SetBoardState(self.chatID, chat.BOARD_STATE_LOG)
		for i in self.CHAT_MODE_INDEX:
			chat.EnableChatMode(self.chatID, i)

		self.SetPosition(20, 20)
		self.SetSize(self.CHAT_LOG_WINDOW_MINIMUM_WIDTH, self.CHAT_LOG_WINDOW_MINIMUM_HEIGHT)
		self.btnSizing.SetPosition(self.CHAT_LOG_WINDOW_MINIMUM_WIDTH-self.btnSizing.GetWidth(), self.CHAT_LOG_WINDOW_MINIMUM_HEIGHT-self.btnSizing.GetHeight()+2)

		self.OnResize()

	def __CreateChatInputSet(self):
		chatInputSet = ChatInputSet()
		chatInputSet.SetParent(self)
		chatInputSet.SetEscapeEvent(ui.__mem_func__(self.Close))
		chatInputSet.SetWindowVerticalAlignBottom()
		chatInputSet.Open()
		self.chatInputSet = chatInputSet

	def __CreateWindow(self):
		imgLeft = ui.ImageBox()
		imgLeft.AddFlag("not_pick")
		imgLeft.SetParent(self)				

		imgCenter = ui.ExpandedImageBox()
		imgCenter.AddFlag("not_pick")
		imgCenter.SetParent(self)
		
		imgRight = ui.ImageBox()
		imgRight.AddFlag("not_pick")
		imgRight.SetParent(self)			
		
		if locale.IsARABIC():
			imgLeft.LoadImage("locale/ae/ui/pattern/titlebar_left.tga")
			imgCenter.LoadImage("locale/ae/ui/pattern/titlebar_center.tga")
			imgRight.LoadImage("locale/ae/ui/pattern/titlebar_right.tga")
		else:
			imgLeft.LoadImage("d:/ymir work/ui/pattern/chatlogwindow_titlebar_left.tga")
			imgCenter.LoadImage("d:/ymir work/ui/pattern/chatlogwindow_titlebar_middle.tga")
			imgRight.LoadImage("d:/ymir work/ui/pattern/chatlogwindow_titlebar_right.tga")		

		imgLeft.Show()
		imgCenter.Show()
		imgRight.Show()

		btnClose = ui.Button()
		btnClose.SetParent(self)
		btnClose.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
		btnClose.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
		btnClose.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
		btnClose.SetToolTipText(locale.UI_CLOSE, 0, -23)
		btnClose.SetEvent(ui.__mem_func__(self.Close))
		btnClose.Show()

		btnSizing = self.ResizeButton()
		btnSizing.SetParent(self)
		btnSizing.SetMoveEvent(ui.__mem_func__(self.OnResize))
		btnSizing.SetSize(16, 16)
		btnSizing.Show()

		titleName = ui.TextLine()
		titleName.SetParent(self)
		
		if locale.IsARABIC():
			titleName.SetPosition(self.GetWidth()-20, 6)
		else:
			titleName.SetPosition(20, 6)
			
		titleName.SetText(locale.CHAT_LOG_TITLE)
		titleName.Show()

		self.imgLeft = imgLeft
		self.imgCenter = imgCenter
		self.imgRight = imgRight
		self.btnClose = btnClose
		self.btnSizing = btnSizing
		self.titleName = titleName

	def __CreateButton(self):
	
		if locale.IsARABIC():
			bx = 20
		else:
			bx = 13

		btnAll = ui.RadioButton()
		btnAll.SetParent(self)
		btnAll.SetPosition(bx, 24)
		btnAll.SetUpVisual("d:/ymir work/ui/public/xsmall_button_01.sub")
		btnAll.SetOverVisual("d:/ymir work/ui/public/xsmall_button_02.sub")
		btnAll.SetDownVisual("d:/ymir work/ui/public/xsmall_button_03.sub")
		btnAll.SetText(locale.CHAT_ALL)
		btnAll.SetEvent(ui.__mem_func__(self.ToggleAllChatMode))
		btnAll.Down()
		btnAll.Show()
		self.btnAll = btnAll

		x = bx + 48
		i = 0
		self.modeButtonList = []
		for name in self.CHAT_MODE_NAME:
			btn = ui.ToggleButton()
			btn.SetParent(self)
			btn.SetPosition(x, 24)
			btn.SetUpVisual("d:/ymir work/ui/public/xsmall_button_01.sub")
			btn.SetOverVisual("d:/ymir work/ui/public/xsmall_button_02.sub")
			btn.SetDownVisual("d:/ymir work/ui/public/xsmall_button_03.sub")
			btn.SetText(name)
			btn.Show()

			mode = self.CHAT_MODE_INDEX[i]
			btn.SetToggleUpEvent(lambda arg=mode: self.ToggleChatMode(arg))
			btn.SetToggleDownEvent(lambda arg=mode: self.ToggleChatMode(arg))
			self.modeButtonList.append(btn)

			x += 48
			i += 1

	def __CreateScrollBar(self):
		scrollBar = ui.SmallThinScrollBar()
		scrollBar.SetParent(self)
		scrollBar.Show()
		scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
		self.scrollBar = scrollBar
		self.scrollBarPos = 1.0

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

	def Destroy(self):
		self.imgLeft = None
		self.imgCenter = None
		self.imgRight = None
		self.btnClose = None
		self.btnSizing = None
		self.modeButtonList = []
		self.scrollBar = None
		self.chatInputSet = None

	def ToggleAllChatMode(self):
		if self.allChatMode:
			return

		self.allChatMode = TRUE

		for i in self.CHAT_MODE_INDEX:
			chat.EnableChatMode(self.chatID, i)
		for btn in self.modeButtonList:
			btn.SetUp()

	def ToggleChatMode(self, mode):
		if self.allChatMode:
			self.allChatMode = FALSE
			for i in self.CHAT_MODE_INDEX:
				chat.DisableChatMode(self.chatID, i)
			chat.EnableChatMode(self.chatID, mode)
			self.btnAll.SetUp()

		else:
			chat.ToggleChatMode(self.chatID, mode)

	def SetSize(self, width, height):
		self.imgCenter.SetRenderingRect(0.0, 0.0, float((width - self.BLOCK_WIDTH*2) - self.BLOCK_WIDTH) / self.BLOCK_WIDTH, 0.0)
		self.imgCenter.SetPosition(self.BLOCK_WIDTH, 0)
		self.imgRight.SetPosition(width - self.BLOCK_WIDTH, 0)
		
		if locale.IsARABIC():
			self.titleName.SetPosition(self.GetWidth()-20, 3)
			self.btnClose.SetPosition(3, 3)
			self.scrollBar.SetPosition(1, 45)
		else:
			self.btnClose.SetPosition(width - self.btnClose.GetWidth() - 5, 5)			
			self.scrollBar.SetPosition(width - 15, 45)
			
		self.scrollBar.SetScrollBarSize(height - 45 - 12)
		self.scrollBar.SetPos(self.scrollBarPos)
		ui.Window.SetSize(self, width, height)

	def Open(self):
		self.OnResize()
		self.chatInputSet.SetChatFocus()
		self.Show()

	def Close(self):
		if self.chatInputSet:
			self.chatInputSet.KillChatFocus()
		self.Hide()

	def OnResize(self):
		x, y = self.btnSizing.GetLocalPosition()
		width = self.btnSizing.GetWidth()
		height = self.btnSizing.GetHeight()

		if x < self.CHAT_LOG_WINDOW_MINIMUM_WIDTH - width:
			self.btnSizing.SetPosition(self.CHAT_LOG_WINDOW_MINIMUM_WIDTH - width, y)
			return
		if y < self.CHAT_LOG_WINDOW_MINIMUM_HEIGHT - height:
			self.btnSizing.SetPosition(x, self.CHAT_LOG_WINDOW_MINIMUM_HEIGHT - height)
			return

		self.scrollBar.LockScroll()
		self.SetSize(x + width, y + height)
		self.scrollBar.UnlockScroll()

		if locale.IsARABIC():
			self.chatInputSet.SetPosition(20, 25)
		else:
			self.chatInputSet.SetPosition(0, 25)
			
		self.chatInputSet.SetSize(self.GetWidth() - 20, 20)
		self.chatInputSet.RefreshPosition()
		self.chatInputSet.SetChatMax(self.GetWidth() / 8)

	def OnScroll(self):
		self.scrollBarPos = self.scrollBar.GetPos()

		lineCount = chat.GetLineCount(self.chatID)
		visibleLineCount = chat.GetVisibleLineCount(self.chatID)
		endLine = visibleLineCount + int(float(lineCount - visibleLineCount) * self.scrollBarPos)

		chat.SetEndPos(self.chatID, self.scrollBarPos)

	def OnRender(self):
		(x, y, width, height) = self.GetRect()
		
		if locale.IsARABIC():
			grp.SetColor(0x77000000)
			grp.RenderBar(x+2, y+45, 13, height-45)
			
			grp.SetColor(0x77000000)
			grp.RenderBar(x, y, width, height)
			grp.SetColor(0xff525552)
			grp.RenderBox(x, y, width-2, height)
			grp.SetColor(0xff000000)
			grp.RenderBox(x+1, y+1, width-2, height)

			grp.SetColor(0xff989898)
			grp.RenderLine(x+width-13, y+height-1, 11, -11)
			grp.RenderLine(x+width-9, y+height-1, 7, -7)
			grp.RenderLine(x+width-5, y+height-1, 3, -3)
		else:			
			grp.SetColor(0x77000000)
			grp.RenderBar(x+width-15, y+45, 13, height-45)

			grp.SetColor(0x77000000)
			grp.RenderBar(x, y, width, height)
			grp.SetColor(0xff525552)
			grp.RenderBox(x, y, width-2, height)
			grp.SetColor(0xff000000)
			grp.RenderBox(x+1, y+1, width-2, height)

			grp.SetColor(0xff989898)
			grp.RenderLine(x+width-13, y+height-1, 11, -11)
			grp.RenderLine(x+width-9, y+height-1, 7, -7)
			grp.RenderLine(x+width-5, y+height-1, 3, -3)

		#####

		chat.ArrangeShowingChat(self.chatID)

		if locale.IsARABIC():
			chat.SetPosition(self.chatID, x + width - 10, y + height - 25)
		else:
			chat.SetPosition(self.chatID, x + 10, y + height - 25)

		chat.SetHeight(self.chatID, height - 45 - 25)
		chat.Update(self.chatID)
		chat.Render(self.chatID)

	def OnPressEscapeKey(self):
		self.Close()
		return TRUE

	def BindInterface(self, interface):
		self.interface = interface
		
	def OnMouseLeftButtonDown(self):
		hyperlink = ui.GetHyperlink()
		if hyperlink:
			if app.IsPressed(app.DIK_LALT):
				link = chat.GetLinkFromHyperlink(hyperlink)
				ime.PasteString(link)
			else:
				self.interface.MakeHyperlinkTooltip(hyperlink)
.Ryuzaki™ is offline  
Reply


Similar Threads Similar Threads
Ingame Switchbot Fehler...
06/14/2014 - Metin2 Private Server - 4 Replies
Hallo! Ich habe mir den ingame Switchbot von padmak runtergeladen und eingefügt, hat auch alles geklappt bis jetzt. Dann habe ich mitbekommen, dass sobald ich den Switchbot mit "F5" starte, und ich ihn dann schließe er sich nicht mehr mit F5 öffnen lässt... kann mir irgendjemand helfen? virustotal: https://www.virustotal.com/de/file/6c679c5b3bb60fc be46dd1a44011ce1620cf00ebd0bd9b5958a78eeb7d370a8e/ analysis/1402691458/
Switchbot-Fehler
12/21/2013 - Metin2 Private Server - 1 Replies
Guten Abend, habe vorhin bisschen am Client gebastelt ( Kenne mich mit Clients eher weniger aus ) Habe den Python Switchbot von DaRealFreak eingefügt. Funktioniert auch weitgehend. Kann ihn mit "F5" öffnen auch sonst alle Meldungen und Co stimmen. Nur wenn ich einen Bonus auswähle und dann "OK" drücke kommt immer "Kein Bonus ausgewählt"
Switchbot Fehler
09/20/2013 - Metin2 Private Server - 3 Replies
Hallo So wie ich und Andere Tausend Leute die mich in Skype um Hilfe Fragen (sry ich weiß net why!) Epvp Hilfe http://s1.directupload.net/images/130916/ku9z6qul .png Sicher Heit http://s1.directupload.net/file/d/3382/ku9z6qul_p ng.htm Irgend wie ist das Pro 1#
Switchbot 3 Fehler
04/19/2013 - Metin2 Private Server - 0 Replies
Moin Leute , habe folgendes Problem beim Switchbot von Padmak. Sobald ich alles injected habe kommt dieses Fenster : Directupload.net - grzei3mh.jpg Und wenn ich dann anfange zu switchen, switcht der alle 10 Sekunden 1 mal. Woran liegt das Problem ?
[Switchbot]Fehler >.<
01/17/2012 - Metin2 Private Server - 3 Replies
Habe nen Switchbot Problem wollte denn mal machen aber ist nen fehler gekommen bei Registieren und Login: Directupload.net - Da632zpmj.png Hoffe könnt helfen.



All times are GMT +1. The time now is 12:33.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.