You last visited: Today at 02:38
Advertisement
Chat
Discussion on Chat within the Metin2 Private Server forum part of the Metin2 category.
12/29/2014, 15:18
#1
elite*gold: 0
Join Date: Mar 2012
Posts: 980
Received Thanks: 12
Chat
Nach dem ich dieses Quick Privatchat eingefügt
wird alles was ich schreibe 2x gepostet im IG Chat
Screen :
uichat.py
PHP 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 text . find ( "@" ) == 0 :
text = text . split ( " " )
user = text [ 0 ]
user = text [ 0 ]. split ( "@" )
user = user [ 1 ]
del text [ 0 ]
realtext = ""
for i in xrange ( len ( text )):
if i > 0 :
realtext = realtext + " " + text [ i ]
else:
realtext = realtext + text [ i ]
if len ( realtext ) > 0 :
net . SendWhisperPacket ( user , realtext )
chat . AppendChat ( chat . CHAT_TYPE_INFO , "Du hast dem Spieler " + user + " eine Privatnachricht geschickt." )
else:
chat . AppendChat ( chat . CHAT_TYPE_INFO , "Bitte gib eine Nachricht an." )
elif net . IsChatInsultIn ( text ):
chat . AppendChat ( chat . CHAT_TYPE_INFO , localeInfo . CHAT_INSULT_STRING )
else:
net . SendChatPacket ( text , type )
# if text[0] == '/':
# if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE:
# pass
# else:
# return
if text == "(buff1)" :
return
elif text == "(buff2)" :
return
elif text == "(buff3)" :
return
elif text == "(pot1)" :
return
elif text == "(pot2)" :
return
elif text == "(buff4)" :
return
elif text == "(buff5)" :
return
elif text == "(buff6)" :
return
elif net . IsChatInsultIn ( text ):
chat . AppendChat ( chat . CHAT_TYPE_INFO , locale . CHAT_INSULT_STRING )
else:
name = player . GetName ()
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 ( "[SA]" )!=- 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." )
#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 )
syserr:
PHP Code:
1229 15 : 15 : 18187 :: GRANNY : r :/ granny / rt / granny_file_info . cpp ( 145 ): File has run - time type tag of 0x8000000f , which doesn 't match this version of Granny (0x80000010). Automatic conversion will be attempted.
1229 15:15:20637 :: CPythonPlayer::SetItemData(dwSlotIndex=0, itemIndex=439) - Failed to item data
12/29/2014, 15:30
#2
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Liegt wohl daran, dass du
else:
net.SendChatPacket(text, type)
2mal drin hast. Wenn du zwei Sachen einbaust musst du die schon aufeinander abstimmen.
12/29/2014, 15:31
#3
elite*gold: 0
Join Date: Jun 2014
Posts: 1,046
Received Thanks: 956
Lade uns mal deine unbearbeitete uichat.py hoch
12/29/2014, 15:37
#4
elite*gold: 0
Join Date: Mar 2012
Posts: 980
Received Thanks: 12
PHP 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 text[0] == '/':
# if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE:
# pass
# else:
# return
if text == "(buff1)" :
return
elif text == "(buff2)" :
return
elif text == "(buff3)" :
return
elif text == "(pot1)" :
return
elif text == "(pot2)" :
return
elif text == "(buff4)" :
return
elif text == "(buff5)" :
return
elif text == "(buff6)" :
return
elif net . IsChatInsultIn ( text ):
chat . AppendChat ( chat . CHAT_TYPE_INFO , locale . CHAT_INSULT_STRING )
else:
name = player . GetName ()
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 ( "[SA]" )!=- 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." )
#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 )
12/29/2014, 16:42
#5
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Code:
def __SendChatPacket(self, text, type):
# if text[0] == '/':
# if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE:
# pass
# else:
# return
if text.find("@") == 0:
user,msg = text[1:].split(" ", 1)
if len(msg) > 0:
net.SendWhisperPacket(user, msg)
chat.AppendChat(chat.CHAT_TYPE_INFO, "Du hast dem User %s eine private Nachricht geschickt" % user)
else:
chat.AppendChat(chat.CHAT_TYPE_INFO, "Bitte gib eine Nachricht an.")
elif text == "(buff1)":
return
elif text == "(buff2)":
return
elif text == "(buff3)":
return
elif text == "(pot1)":
return
elif text == "(pot2)":
return
elif text == "(buff4)":
return
elif text == "(buff5)":
return
elif text == "(buff6)":
return
elif net.IsChatInsultIn(text):
chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
else:
name = player.GetName()
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("[SA]")!=-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.")
#chat.AppendChat(chat.CHAT_TYPE_INFO, "Befehl nicht gefunden.")
else:
net.SendChatPacket(text, type)
Einfach die gesamte Funktion ersetzen.
12/29/2014, 17:16
#6
elite*gold: 0
Join Date: Mar 2012
Posts: 980
Received Thanks: 12
so ?
PHP 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 ()
d def __SendChatPacket ( self , text , type ):
# if text[0] == '/':
# if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE:
# pass
# else:
# return
if text . find ( "@" ) == 0 :
user , msg = text [ 1 :]. split ( " " , 1 )
if len ( msg ) > 0 :
net . SendWhisperPacket ( user , msg )
chat . AppendChat ( chat . CHAT_TYPE_INFO , "Du hast dem User %s eine private Nachricht geschickt" % user )
else:
chat . AppendChat ( chat . CHAT_TYPE_INFO , "Bitte gib eine Nachricht an." )
elif text == "(buff1)" :
return
elif text == "(buff2)" :
return
elif text == "(buff3)" :
return
elif text == "(pot1)" :
return
elif text == "(pot2)" :
return
elif text == "(buff4)" :
return
elif text == "(buff5)" :
return
elif text == "(buff6)" :
return
elif net . IsChatInsultIn ( text ):
chat . AppendChat ( chat . CHAT_TYPE_INFO , locale . CHAT_INSULT_STRING )
else:
name = player . GetName ()
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 ( "[SA]" )!=- 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." )
#chat.AppendChat(chat.CHAT_TYPE_INFO, "Befehl nicht gefunden.")
else:
net . SendChatPacket ( text , type )
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 )
12/29/2014, 17:29
#7
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
d def __SendChatPacket(self, text, type):
da ist dir ein kleiner Fehler unterlaufen
def __SendChatPacket(self, text, type):
ist richtig
12/29/2014, 17:53
#8
elite*gold: 0
Join Date: Mar 2012
Posts: 980
Received Thanks: 12
Werde nach char auswahl jetzt gekickt
syserr
1229 17:54:15946 ::
networkModule.py(line:194) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:28) ?
system.py(line:130) __pack_import
system.py(line:110) _process_result
interfaceModule.py(line:15) ?
system.py(line:130) __pack_import
networkModule.SetSelectCharacterPhase - exceptions.IndentationError:unindent does not match any outer indentation level (line 854)
1229 17:54:15947 :: ================================================== ================================================== ========
1229 17:54:15947 :: Abort!!!!
12/29/2014, 18:01
#9
elite*gold: 44
Join Date: Dec 2009
Posts: 1,696
Received Thanks: 3,833
Schick Skype Addy privat..
12/29/2014, 18:05
#10
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Quote:
Originally Posted by
The2MrMetin2
Werde nach char auswahl jetzt gekickt
syserr
1229 17:54:15946 ::
networkModule.py(line:194) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:28) ?
system.py(line:130) __pack_import
system.py(line:110) _process_result
interfaceModule.py(line:15) ?
system.py(line:130) __pack_import
networkModule.SetSelectCharacterPhase - exceptions.IndentationError:unindent does not match any outer indentation level (line 854)
1229 17:54:15947 :: ================================================== ================================================== ========
1229 17:54:15947 :: Abort!!!!
Versuchs mal hiermit
Attached Files
uichat.rar
(891 Bytes, 2 views)
12/29/2014, 18:34
#11
elite*gold: 0
Join Date: Mar 2012
Posts: 980
Received Thanks: 12
geht auch nicht
sysser
1229 18:34:14693 ::
networkModule.py(line:194) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:28) ?
system.py(line:130) __pack_import
system.py(line:110) _process_result
interfaceModule.py(line:15) ?
system.py(line:130) __pack_import
networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 1)
1229 18:34:14693 :: ================================================== ================================================== ========
1229 18:34:14693 :: Abort!!!!
12/29/2014, 18:54
#12
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Jo hab versehentlich keine TABs sondern Leerzeichen rauskopiert.
Attached Files
uichat.rar
(880 Bytes, 0 views)
Similar Threads
[CHAT CLIENT] LoLChat/League Chat Beta V1 for Windows
08/16/2017 - League of Legends Hacks, Bots, Cheats & Exploits - 53 Replies
http://nielsoet.uphero.com/img/logolol.png
Hello everyone,
This is my second beta version of LoLChat or League Chat. It allows you to chat to your friends on League of Legends without the annoying, big, RAM-taking client.
Features:
Chat with all your friends
See if your friens are offline
[Hilfe]Web Chat, Message beim Chat verlassen
03/17/2014 - Web Development - 3 Replies
Hey @ all,
heute Nacht hat mich iwie ne Hummel gestochen, und ich hab kurzerhand mal ne Art Chat erstellt (aktuell noch alles SEHR Beta lastig :D) er funktioniert prinzipiell, fast 100% PHP Based (außer die Aktuallisierung, und 2-3 Spoiler)
Nun möchte ich aber 2 Dinge:
1. Anzeige, wie viele Personen sich in einem Chat aufhalten
2. Anzeige/Nachricht, wenn jemand den Chat/Raum verlässt
ich würde das Ganze einfach so machen, dass jeder nen Timestamp setzt, und wenn er nimmer antwortet,...
[AutoIt Chat System] Chat nur im lokalen Netzwerk verfügbar. Wie Global?
04/14/2013 - AutoIt - 1 Replies
Hallo epvp.
Ich habe mich mal an ein kleines Chatsystem gesetzt.
Ich bin jetzt soweit, dass dieses ohne Probleme im lokalen Netzwerk funktioniert. Jedoch möchte ich, dass der Chat auch für Leute die nicht drin sind funktioniert!
Mein Server Script:
#include <Array.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiEdit.au3>
#include <TCP.au3>
[Release] BoI Helper (Chat Cmd's, Speed/Chat/Zoom hack)
03/01/2011 - Battle of the Immortals - 54 Replies
Hi!
First of all, i know this will completely destroy the world chat cuz of colored flasching and flying texts everywhere but anyhow i wanted to release this little tool.
I like to use some Chat Commands to color my Text when advertising sales or looking for a party etc. but im too lazy to write the commands for that again and again so i wrote this little Tool that generates the codes i need with a few clicks and puts it into the clipboard =)
Features:
Color: Give your Text a...
HackSearcher by _TradEmArk_ #Updated Version# [**CHAT ADDET!!!**] (Chat,Crosshair...)
02/27/2011 - WarRock Hacks, Bots, Cheats & Exploits - 14 Replies
http://img3.fotos-hochladen.net/uploads/unbenannt3 5jduc0oz9y.png
Screen:
http://img3.fotos-hochladen.net/uploads/hacksearc herzgkjdt7h4w.jpg
Download:
Download über Mediafire
Download über Multiupload
All times are GMT +1. The time now is 02:38 .