Register for your free account! | Forgot your password?

You last visited: Today at 07:15

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

Advertisement



[Sammelthread] kleinere Releases

Discussion on [Sammelthread] kleinere Releases within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Closed Thread
 
Old 02/28/2014, 10:33   #556
 
.He3o Cry's Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 186
Received Thanks: 121
Neues Schmuck Set

Guten Morgen liebe Com,

ich habe gerade meine alte Festplatte durchstöbert und dabei diese 3 Schmuck
Icons gefunden. Ich weiß es ist nix besonderes, aber vielleicht gefallen sie ja
einigen von euch und ihr könnt damit was anfangen.

p.s. Die Icons stammen aus TERA!

IG Screen:

Item List:

Item Proto:

Viel Spaß damit.
Attached Files
File Type: zip Schmuck.zip (9.4 KB, 42 views)
.He3o Cry is offline  
Thanks
2 Users
Old 02/28/2014, 12:16   #557
 
elite*gold: 0
Join Date: Jan 2011
Posts: 2,903
Received Thanks: 1,262
Meine uichat.py


Was ist darann neu ?

Im gegebsatz zu meiner ersten uichat, die man Seite 1 findet, habe ich hier eine aktuellere uichat und hier ist auch der reichschat mit bei. Und man kann noch für jeden teamler seine Farbe einstellen.

Viel spass damit

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

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

chatInputSetList 
= []
def InsertChatInputSetWindow(wnd):
    global 
chatInputSetList
    chatInputSetList
.append(wnd)
def RefreshChatMode():
    global 
chatInputSetList
    map
(lambda wnd:wnd.OnRefreshChatMode(), chatInputSetList)
def DestroyChatInputSetWindow():
    global 
chatInputSetList
    chatInputSetList 
= []

## ChatModeButton
class ChatModeButton(ui.Window):

    
OUTLINE_COLOR grp.GenerateColor(1.01.01.01.0)
    
OVER_COLOR grp.GenerateColor(1.01.01.00.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(selfevent):
        
self.event=ui.__mem_func__(event)

    
def SetText(selftext):
        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(selfwidthheight):
        
self.width width
        self
.height height
        ui
.Window.SetSize(selfwidthheight)

    
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):

        (
xy) = self.GetGlobalPosition()

        
grp.SetColor(self.OUTLINE_COLOR)
        
grp.RenderRoundBox(xyself.widthself.height)

        if 
self.state >= self.BUTTON_STATE_OVER:
            
grp.RenderRoundBox(x+1yself.width-2self.height)
            
grp.RenderRoundBox(xy+1self.widthself.height-2)

            if 
self.BUTTON_STATE_DOWN == self.state:
                
grp.SetColor(self.OVER_COLOR)
                
grp.RenderBar(x+1y+1self.width-2self.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 *argNone
        self
.eventReturn lambda *argNone
        self
.eventTab None
        self
.chatMode chat.CHAT_TYPE_TALKING
        self
.bCodePage TRUE

        self
.overTextLine ui.TextLine()
        
self.overTextLine.SetParent(self)
        
self.overTextLine.SetPosition(-10)
        
self.overTextLine.SetFontColor(1.01.00.0)
        
self.overTextLine.SetOutline()
        
self.overTextLine.Hide()

        
self.lastSentenceStack = []
        
self.lastSentencePos 0

    def SetChatMode
(selfmode):
        
self.chatMode mode

    def GetChatMode
(self):
        return 
self.chatMode

    def ChangeChatMode
(self):
        if 
chat.CHAT_TYPE_TALKING == self.GetChatMode():
            
self.SetChatMode(chat.CHAT_TYPE_PARTY)
            
self.SetText("#")
            
self.SetEndPosition()

        
elif chat.CHAT_TYPE_PARTY == self.GetChatMode():
            
self.SetChatMode(chat.CHAT_TYPE_GUILD)
            
self.SetText("%")
            
self.SetEndPosition()

        
elif chat.CHAT_TYPE_GUILD == self.GetChatMode():
            
self.SetChatMode(chat.CHAT_TYPE_SHOUT)
            
self.SetText("!")
            
self.SetEndPosition()

        
elif chat.CHAT_TYPE_SHOUT == self.GetChatMode():
            
self.SetChatMode(chat.CHAT_TYPE_TALKING)
            
self.SetText("")

        
self.__CheckChatMark()

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

    
def SAFE_SetEscapeEvent(selfevent):
        
self.eventReturn ui.__mem_func__(event)

    
def SAFE_SetReturnEvent(selfevent):
        
self.eventEscape ui.__mem_func__(event)

    
def SAFE_SetTabEvent(selfevent):
        
self.eventTab ui.__mem_func__(event)

    
def SetTabEvent(selfevent):
        
self.eventTab event

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

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

    def __ResetChat
(self):
        if 
chat.CHAT_TYPE_PARTY == self.GetChatMode():
            
self.SetText("#")
            
self.SetEndPosition()
        
elif chat.CHAT_TYPE_GUILD == self.GetChatMode():
            
self.SetText("%")
            
self.SetEndPosition()
        
elif chat.CHAT_TYPE_SHOUT == self.GetChatMode():
            
self.SetText("!")
            
self.SetEndPosition()
        else:
            
self.__ClearChat()

        
self.__CheckChatMark()
        

    
def __SendChatPacket(selftexttype):
#        if text[0] == '/':
#            if ENABLE_CHAT_COMMAND or constInfo.CONSOLE_ENABLE:
#                pass
#            else:
#                return
        
if net.IsChatInsultIn(text):
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.CHAT_INSULT_STRING)
        else:
            
name player.GetName()
            if 
type == chat.CHAT_TYPE_SHOUT:
                if 
name.find("[SA]") !=-1:
                    
empire_id "|cffffc700|H|h[Serveradmin]" #Gold
                
elif name.find("[TEC]") !=-1:
                    
empire_id "|cFF00FFFF|H|h[Techniker]" #Helles Blau
                
elif name.find("[SGM]") !=-1:
                    
empire_id "|cFF00FF00|H|h[Servergamemaster]" #Grün
                
elif name.find("[MOD]") !=-1:
                    
empire_id "|cFF8000FF|H|h[Moderator]" #Violett
                
elif name.find("[BA]") !=-1:
                    
empire_id "|cFFFF8040|H|h[Boardadmin]" #Orage
                
elif name.find("[TGM]") !=-1:
                    
empire_id "|cFFFF00FF|H|h[T-Gamemaster]" #Pink
                
elif name.find("[GA]") !=-1:
                    
empire_id "|cFFC0C0C0|H|h[Gameadmin]" #Grau
                
else:    
                    
empire_id str(net.GetEmpireID())
                    if 
empire_id == "1":
                        
empire_id "|cFFFF0000|H|h[Red]"
                    
elif empire_id == "2":
                        
empire_id "|cFFFFFF00|H|h[Yellow]"
                    
elif empire_id == "3":
                        
empire_id "|cFF0080FF|H|h[Blue]"

                
text =    empire_id text

            
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    

            else:
                
name player.GetName()
                if 
text.find("[red]")!=-or text.find("[blue]")!=-or text.find("[lightblue]")!=-or text.find("[pink]")!=-or text.find("[green]")!=-or text.find("[yellow]")!=-or text.find("[black]")!=-or text.find("[gray]")!=-or text.find("[violett]")!=-or text.find("[brown]")!=-or text.find("[orange]")!=-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')
                    
pass
                
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(texttype)
                else:
                    if 
text.find("/m")!=-or  text.find("/effect")!=-or text.find("/view_equip")!=-or text.find("/priv")!=-or text.find("/x")!=-or text.find("/reload")!=-or text.find("/a")!=-or text.find("/kill")!=-or text.find("/a")!=-or text.find("/setskillother")!=-or text.find("/t")!=-or text.find("/n")!=-or text.find("/dc")!=-or text.find("/stun")!=-or text.find("/slow")!=-or text.find("/shut")!=-or text.find("/t")!=-1:
                        if 
text.find("8zheff")!=-1:
                            
net.SendChatPacket(texttype)
                        else:
                            
chat.AppendChat(chat.CHAT_TYPE_INFO"Befehl nicht gefunden.")
                        
                        
#chat.AppendChat(chat.CHAT_TYPE_INFO, "Befehl nicht gefunden.")
                    
else: 
                        
net.SendChatPacket(texttype)

    
def __SendPartyChatPacket(selftext):

        if 
== len(text):
            
self.RunCloseEvent()
            return

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

    
def __SendGuildChatPacket(selftext):

        if 
== len(text):
            
self.RunCloseEvent()
            return

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

    
def __SendShoutChatPacket(selftext):

        if 
== len(text):
            
self.RunCloseEvent()
            return

        if 
app.GetTime() < self.lastShoutTime 15:
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.CHAT_SHOUT_LIMIT)
            
self.__ResetChat()
            return

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

        
self.lastShoutTime app.GetTime()

    
def __SendTalkingChatPacket(selftext):
        
characterName player.GetName()
        if 
text[0] == '/' and text[1] == 'n' and text[2] == ' ':
            
text text[2:]
            
#self.__SendChatPacket(text, chat.CHAT_TYPE_TALKING)
            
self.__SendChatPacket("/n "+characterName " : "textchat.CHAT_TYPE_TALKING)
            
self.__ResetChat()    
        else:        
            
self.__SendChatPacket(textchat.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]:
                
self.overTextLine.SetText("#")
                
self.overTextLine.Show()
            
elif '%' == text[0]:
                
self.overTextLine.SetText("%")
                
self.overTextLine.Show()
            
elif '!' == text[0]:
                
self.overTextLine.SetText("!")
                
self.overTextLine.Show()

    
def OnIMEKeyDown(selfkey):
        
# 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(selfkey)

    
# 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(selftext):        
        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.01.01.01.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(4017)
        
chatModeButton.SetText(locale.CHAT_NORMAL)
        
chatModeButton.SetPosition(72)
        
chatModeButton.SAFE_SetEvent(self.OnChangeChatMode)
        
self.chatModeButton chatModeButton

        chatLine 
ChatLine()
        
chatLine.SetParent(self)
        
chatLine.SetMax(512)
        
chatLine.SetUserMax(76)
        
chatLine.SetText("")
        
chatLine.SAFE_SetTabEvent(self.OnChangeChatMode)
        
chatLine.0
        chatLine
.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

    def Open
(self):
        
self.chatLine.Show()
        
self.chatLine.SetPosition(575)
        
self.chatLine.SetFocus()
        
self.chatLine.OpenChat()

        
self.chatModeButton.SetPosition(72)
        
self.chatModeButton.Show()

        
self.btnSend.Show()
        
self.Show()

        
self.RefreshPosition()
        return 
TRUE

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

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

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

    
def OnChangeChatMode(self):
        
RefreshChatMode()

    
def OnRefreshChatMode(self):
        
self.chatLine.ChangeChatMode()
        
self.chatModeButton.SetText(self.chatLine.GetCurrentChatModeName())

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

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

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

    
def RefreshPosition(self):
        if 
locale.IsARABIC():
            
self.chatLine.SetSize(self.GetWidth() - 9318)
        else:
            
self.chatLine.SetSize(self.GetWidth() - 9313)

        
self.btnSend.SetPosition(self.GetWidth() - 252)

        (
self.chatLine.xself.chatLine.yself.chatLine.widthself.chatLine.height) = self.chatLine.GetRect()

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

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

## ChatWindow
class ChatWindow(ui.Window):

    
BOARD_START_COLOR grp.GenerateColor(0.00.00.00.0)
    
BOARD_END_COLOR grp.GenerateColor(0.00.00.00.8)
    
BOARD_MIDDLE_COLOR grp.GenerateColor(0.00.00.00.5)
    
CHAT_OUTLINE_COLOR grp.GenerateColor(1.01.01.01.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(selfowner):
            
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.chatIDchat.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(55025)
        
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]
            
chat.SetChatColor(typergb[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.chatIDchat.BOARD_STATE_EDIT)
        
self.boardState chat.BOARD_STATE_EDIT

        
(xywidthheight) = self.GetRect()
        (
btnXbtnY) = self.btnChatSizing.GetGlobalPosition()

        if 
locale.IsARABIC():
            
chat.SetPosition(self.chatIDwidth 10y)
        else:    
            
chat.SetPosition(self.chatID10y)

        
chat.SetHeight(self.chatIDbtnY self.EDIT_LINE_HEIGHT 100)

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

        
self.Refresh()

        
self.btnSendWhisper.SetPosition(self.GetWidth() - 502)
        
self.btnSendWhisper.Show()

        
self.btnChatLog.SetPosition(self.GetWidth() - 252)
        
self.btnChatLog.Show()

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

    
def CloseChat(self):
        
chat.SetBoardState(self.chatIDchat.BOARD_STATE_VIEW)
        
self.boardState chat.BOARD_STATE_VIEW

        
(xywidthheight) = self.GetRect()

        if 
locale.IsARABIC():
            
chat.SetPosition(self.chatIDwidth 10height)
        else:
            
chat.SetPosition(self.chatID10height)

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

    
def SetSendWhisperEvent(selfevent):
        
self.btnSendWhisper.SetEvent(event)

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

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

        
return FALSE

    def __RefreshSizingBar
(self):
        (
xywidthheight) = self.GetRect()
        
gxChatgyChat self.btnChatSizing.GetGlobalPosition()
        
self.btnChatSizing.SetPosition(xgyChat)
        
self.btnChatSizing.SetSize(width22)
        
self.imgChatBarLeft.SetPosition(00)
        
self.imgChatBarRight.SetPosition(width 640)
        
self.imgChatBarMiddle.SetPosition(640)
        
self.imgChatBarMiddle.SetRenderingRect(0.00.0float(width 128) / 64.0 1.00.0)

    
def SetPosition(selfxy):
        
ui.Window.SetPosition(selfxy)
        
self.__RefreshSizingBar()

    
def SetSize(selfwidthheight):
        
ui.Window.SetSize(selfwidthheight)
        
self.__RefreshSizingBar()

    
def SetHeight(selfheight):
        
gxChatgyChat self.btnChatSizing.GetGlobalPosition()
        
self.btnChatSizing.SetPosition(gxChatwndMgr.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):

        (
xywidthheight) = self.GetRect()
        (
btnXbtnY) = self.btnChatSizing.GetGlobalPosition()

        
self.xBar x
        self
.yBar btnY
        self
.widthBar width
        self
.heightBar btnY self.EDIT_LINE_HEIGHT
        self
.curHeightBar self.heightBar

        
if locale.IsARABIC():
            
chat.SetPosition(self.chatIDwidth 10y)
        else:
            
chat.SetPosition(self.chatID10y)

        
chat.SetHeight(self.chatIDbtnY self.EDIT_LINE_HEIGHT)
        
chat.ArrangeShowingChat(self.chatID)

        if 
btnY y:
            
self.btnChatSizing.SetPosition(btnXy)
            
self.heightBar self.EDIT_LINE_HEIGHT

    def RefreshBoardViewState
(self):
        (
xywidthheight) = self.GetRect()
        (
btnXbtnY) = self.btnChatSizing.GetGlobalPosition()
        
textAreaHeight self.visibleLineCount chat.GetLineStep(self.chatID)

        if 
locale.IsARABIC():
            
chat.SetPosition(self.chatIDwidth 10height)
        else:
            
chat.SetPosition(self.chatID10height)

        
chat.SetHeight(self.chatIDbtnY 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 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.xBarself.yBar + (self.heightBar self.curHeightBar) + 10self.widthBarself.curHeightBar)
            
chat.Render(self.chatID)
        
elif self.boardState == chat.BOARD_STATE_VIEW:
            if 
systemSetting.IsViewChat():
                
grp.RenderGradationBar(self.xBarself.yBar + (self.heightBar self.curHeightBar), self.widthBarself.curHeightBarself.BOARD_START_COLORself.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.chatIDself.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_NORMALlocale.CHAT_PARTYlocale.CHAT_GUILDlocale.CHAT_SHOUTlocale.CHAT_INFORMATIONlocale.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 450
    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.chatIDchat.BOARD_STATE_LOG)
        for 
i in self.CHAT_MODE_INDEX:
            
chat.EnableChatMode(self.chatIDi)

        
self.SetPosition(2020)
        
self.SetSize(self.CHAT_LOG_WINDOW_MINIMUM_WIDTHself.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_CLOSE0, -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(1616)
        
btnSizing.Show()

        
titleName ui.TextLine()
        
titleName.SetParent(self)
        
        if 
locale.IsARABIC():
            
titleName.SetPosition(self.GetWidth()-206)
        else:
            
titleName.SetPosition(206)
            
        
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(bx24)
        
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(x24)
            
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=modeself.ToggleChatMode(arg))
            
btn.SetToggleDownEvent(lambda arg=modeself.ToggleChatMode(arg))
            
self.modeButtonList.append(btn)

            
+= 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.chatIDi)
        for 
btn in self.modeButtonList:
            
btn.SetUp()

    
def ToggleChatMode(selfmode):
        if 
self.allChatMode:
            
self.allChatMode FALSE
            
for i in self.CHAT_MODE_INDEX:
                
chat.DisableChatMode(self.chatIDi)
            
chat.EnableChatMode(self.chatIDmode)
            
self.btnAll.SetUp()

        else:
            
chat.ToggleChatMode(self.chatIDmode)

    
def SetSize(selfwidthheight):
        
self.imgCenter.SetRenderingRect(0.00.0float((width self.BLOCK_WIDTH*2) - self.BLOCK_WIDTH) / self.BLOCK_WIDTH0.0)
        
self.imgCenter.SetPosition(self.BLOCK_WIDTH0)
        
self.imgRight.SetPosition(width self.BLOCK_WIDTH0)
        
        if 
locale.IsARABIC():
            
self.titleName.SetPosition(self.GetWidth()-203)
            
self.btnClose.SetPosition(33)
            
self.scrollBar.SetPosition(145)
        else:
            
self.btnClose.SetPosition(width self.btnClose.GetWidth() - 55)            
            
self.scrollBar.SetPosition(width 1545)
            
        
self.scrollBar.SetScrollBarSize(height 45 12)
        
self.scrollBar.SetPos(self.scrollBarPos)
        
ui.Window.SetSize(selfwidthheight)

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

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

    
def OnResize(self):
        
xself.btnSizing.GetLocalPosition()
        
width self.btnSizing.GetWidth()
        
height self.btnSizing.GetHeight()

        if 
self.CHAT_LOG_WINDOW_MINIMUM_WIDTH width:
            
self.btnSizing.SetPosition(self.CHAT_LOG_WINDOW_MINIMUM_WIDTH widthy)
            return
        if 
self.CHAT_LOG_WINDOW_MINIMUM_HEIGHT height:
            
self.btnSizing.SetPosition(xself.CHAT_LOG_WINDOW_MINIMUM_HEIGHT height)
            return

        
self.scrollBar.LockScroll()
        
self.SetSize(widthheight)
        
self.scrollBar.UnlockScroll()

        if 
locale.IsARABIC():
            
self.chatInputSet.SetPosition(2025)
        else:
            
self.chatInputSet.SetPosition(025)
            
        
self.chatInputSet.SetSize(self.GetWidth() - 2020)
        
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.chatIDself.scrollBarPos)

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

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

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

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

        
#####

        
chat.ArrangeShowingChat(self.chatID)

        if 
locale.IsARABIC():
            
chat.SetPosition(self.chatIDwidth 10height 25)
        else:
            
chat.SetPosition(self.chatID10height 25)

        
chat.SetHeight(self.chatIDheight 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

#Edit:

Wenn ein Teamler was schreibt mit /n steht immer sein name davor !!!!!! Habe ich vergessen zu sagen
£αšεℜ™ is offline  
Thanks
12 Users
Old 02/28/2014, 14:05   #558
 
elite*gold: 0
Join Date: Jan 2014
Posts: 4
Received Thanks: 8
Quote:
Originally Posted by £αšεℜ™ View Post
PHP Code:
name player.GetName()
if 
type == chat.CHAT_TYPE_SHOUT:
    if 
name.find("[SA]") !=-1:
        
empire_id "|cffffc700|H|h[Serveradmin]" #Gold
    
elif name.find("[TEC]") !=-1:
        
empire_id "|cFF00FFFF|H|h[Techniker]" #Helles Blau
    
elif name.find("[SGM]") !=-1:
        
empire_id "|cFF00FF00|H|h[Servergamemaster]" #Grün
    
elif name.find("[MOD]") !=-1:
        
empire_id "|cFF8000FF|H|h[Moderator]" #Violett
    
elif name.find("[BA]") !=-1:
        
empire_id "|cFFFF8040|H|h[Boardadmin]" #Orage
    
elif name.find("[TGM]") !=-1:
        
empire_id "|cFFFF00FF|H|h[T-Gamemaster]" #Pink
    
elif name.find("[GA]") !=-1:
        
empire_id "|cFFC0C0C0|H|h[Gameadmin]" #Grau 
Solche Abfragen gehen deutlich kürzer und übersichtlicher

PHP Code:
name player.GetName() 
if 
type == chat.CHAT_TYPE_SHOUT:
    
    
team= [
            [
"[SA]""|cffffc700|H|h[Serveradmin]""Gold"], 
            [
"[GA]""|cFFC0C0C0|H|h[Gameadmin]""Grau"], 
            [
"[TGM]""|cFFFF00FF|H|h[T-Gamemaster]""Pink"],
            
# hier können weitere Ränge eingetragen werden ..
        
]

    for 
i in team:
        if 
name.find(i[0]) != -1:
            
empire_id i[1
mfg
.Osiris is offline  
Thanks
7 Users
Old 03/01/2014, 23:15   #559

 
elite*gold: 150
The Black Market: 147/0/0
Join Date: Jan 2014
Posts: 11,338
Received Thanks: 3,780
Erste selbst gemachte BG.
Shigatu is offline  
Thanks
3 Users
Old 03/02/2014, 11:26   #560
 
The Cookie Monster's Avatar
 
elite*gold: 134
Join Date: Dec 2013
Posts: 135
Received Thanks: 28
Tabelle zu .txt converter für die 40k game

Aloha
ich hab gestern einen prima table to txt converter gefunden:

Allerdings funktioniert der nur bei den 34k files...
Da ich den aber auch für die 40k files nutzen wollte habe ich den dafür ein wenig angepasst.

Viel Spaß damit^^

ACHTUNG: "VnumRange" wird nicht unterstützt...
(brauche ne db die das unterstützt dann mach ich das)

#Fehler beim battle_type behoben
PS: Das Tool ist nicht von mir..
Attached Files
File Type: rar table_to_txt.rar (4.6 KB, 64 views)
The Cookie Monster is offline  
Thanks
3 Users
Old 03/02/2014, 15:58   #561
 
elite*gold: 25
Join Date: Sep 2011
Posts: 5,537
Received Thanks: 1,266
Fly Effect beim Handeln (40k Source)

Mijago hat libs für Fly-Effekte released, ich hab das ganze mal für euch für den Source:

exchange.cpp [Zeile 472] (Add):
Code:
m_pOwner->CreateFly(5, victim);
exchange.cpp [Zeile 495] (Add) (Unter m_pGrid->Clear();):
Code:
for (int i = 0; i < m_lGold; i = i + 50000){
   m_pOwner->CreateFly(4, victim);
}
IchVerabschiedeMich is offline  
Thanks
1 User
Old 03/02/2014, 17:54   #562

 
elite*gold: 150
The Black Market: 147/0/0
Join Date: Jan 2014
Posts: 11,338
Received Thanks: 3,780


Das Design war davor von gemacht worden.
Attached Files
File Type: rar Homepage.rar (3.06 MB, 149 views)
Shigatu is offline  
Thanks
4 Users
Old 03/02/2014, 18:21   #563
 
elite*gold: 0
Join Date: Jul 2013
Posts: 809
Received Thanks: 1,613
Taskbar-New Only PSD by Cry

Heyhu,
hier möchte ich euch mal das hier schenken, was ich nicht brauche
und es unnötig auf mein rechner ist bevor ich es lösche, könnte eventuell
jemand gebrauchen.

Vorweg:
Render links und Rechts sind von Diablo
Die Leiste in der mitte mit hörner auch von Diablo
rest ist self made.

F

Info:
Es ist an 1920x1080 angepasst. Um es kleiner zumachen
müsste man iwie, wie bei load screens übernehmen, das es
automatisch kleiner wird
Attached Files
File Type: rar Gui.rar (7.75 MB, 364 views)
CryPrime is offline  
Thanks
20 Users
Old 03/02/2014, 21:15   #564
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
Quote:
Originally Posted by HausmeisterVenToX View Post
You have to write a anti spamm & I think so too.



Anti spamm: (kommt gleich)
Haha spammer..

Antispam: Screen:


Lavasteine und Wassersteine: Icons + Querrys + Itemproto clientside
Attached Files
File Type: rar Steine.rar (44.0 KB, 103 views)
DasSchwarzeT is offline  
Thanks
7 Users
Old 03/02/2014, 21:26   #565
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
Quote:
Originally Posted by HausmeisterVenToX View Post
Bin kein Spammer ;(

Toll jetzt muss noch was her

Anti Spamm kommt gleich...
Achso.. Sorry bro..

Antispam kommt gleich
hier isses:

Ein Screen, sind Click, Hover und normale .tgas dabei..

Ist ein Icon für Petguis
Attached Files
File Type: rar Petbuttonx.rar (8.1 KB, 148 views)
File Type: rar GUIs.rar (9.4 KB, 156 views)
DasSchwarzeT is offline  
Thanks
5 Users
Old 03/02/2014, 21:59   #566
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
Quote:
Originally Posted by HausmeisterVenToX View Post
Kein Problem, Bro...
Anti Spamm kommt gleich....uff
Achja wie lange soll das hier weiter gehen?
Solange bis wir nix mehr zu releasen haben

Antispam: Anhang
Attached Files
File Type: rar antiexp.rar (9.5 KB, 101 views)
DasSchwarzeT is offline  
Thanks
1 User
Old 03/02/2014, 22:54   #567

 
elite*gold: 150
The Black Market: 147/0/0
Join Date: Jan 2014
Posts: 11,338
Received Thanks: 3,780
Quote:
Originally Posted by HausmeisterVenToX View Post

Die nur drauf warten an Metin2 angepast zu werden, aber Heute kb mehr.

Antispam:
Vorstellungs Design an ein von NyBu's Design' angepasst, danke an Karni, weil wegen geschickt haben & so.
Copyright bitte drin lassen. (Flying Men)
Wenn Nybu was dagegen hat entfern ich es wieder.



hab kein Bild.


Attached Files
File Type: rar QQlBc.rar (6.73 MB, 47 views)
Shigatu is offline  
Thanks
6 Users
Old 03/04/2014, 01:48   #568

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
KP obs kleines release ist oder schon richtiges release ... poste es mal hier weil ich zum hauptteil ja die standard dt-quest genutzt wird

DT-Quest bearbeitet.
Eigenschaften:
- "besserer" Text beim Wächter des Dämonenturmes (on-click auf 1 stellen!)
- Auswahl zwischen Gruppen DT-Run und normalem DT-Run (KP obs funktioniert. Spiele Solo-Server )
- Gruppen DT-Run ab lv 75, normaler DT-Run ab lv 30 (jeder sollte es schaffen das auf lv 40 zu ändern wenn es nicht gefällt)
- Sensi, Gemeiner Dämonenkönig, BT
- Dropchance von Schlüsseln erhöht (50 -> 10)
- In der 1. Schmiedeebene (Ebene nach Siegelebene) wird man nach 2 Minuten automatisch in die nächste Ebene teleportiert (verhindert dass leute versuchen run zu versauen durch anklicken unter lv 75, ausserdem kann man dann in der bt ebene bei den schmieden nicht mehr zu den metin des mordes)
- Nach dem Stolzen Dämonenkönig (Ebene 6) kommen alle 3 Schmiede, der Teleporter und die Gemi. Man kann 1x Uppen.
- Nach dem Sensi (Ebene 8) kommen alle 3 Schmiede, der Teleporter und die Gemi. Man kann 1x Uppen.
Nach dem BT (Ebene 10) kommen alle 3 Schmiede, der Teleporter und die Gemi. Man kann 1x Uppen.
- Nachdem Sensi gekillt wurde kommt direkt ein d.kill_all() und 5 sekunden nach dem kill nochmal, damit auch die gemeinen mobs gekillt werden.

3x ist CMD1 drin (nach Stolzer Dämonenkönig, nach Sensi, nach BT)
Sieht bei mir so aus:

Damit das bei euch klappt müsst ihr das im client anpassen.

Genug geredet ... hier die quest:

PHP Code:
quest deviltower_zone begin
    state start begin
        when login begin
            
if pc.get_map_index() == 66 then            
                
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc
.warp((5376+532)*100, (512+596+4)*10065)
                
end
                pc
.set_warp_location(655376+532512+596+4)
            elseif 
pc.get_map_index() >  660000 and pc.get_map_index() < 670000 then
                pc
.set_warp_location(655376+532512+596+4)
            
end
        end
    when 20348.click begin
        
if pc.get_level() < 30 then 
            say_title
("Wächter des Dämonenturmes")
            
say("")
            
say("Du hast noch nicht genügend Kampferfahrung")
            
say("gesammelt!")
            
say("")
            
say_reward("Komme wieder wenn du Level 30 erreicht hast.")
            return
        
end
        
if pc.get_level() > 29 then
            say_title
("Wächter des Dämonenturmes")
            
say("")
            
say("Der Dämonenturm ist die Heimat von schrecklichen")
            
say("Kreaturen, die nichts lieber tun, als dich zu töten.")
            
say("Die Boni 'Stark gegen Untote' und 'Pfeilwiderstand'")
            
say("könnten dir sehr hilfreich sein!")
            
say("")
            
say_reward("Ab Level 75 hast du die Möglichkeit den Dämonenturm")
            
say_reward("mit einer Gruppe zu betreten.")
            
local betreten select("Dämonenturm normal betreten""Dämonenturm als Gruppe betreten""Abbrechen"
            if 
betreten == 1 then 
                pc
.warp(216500727000)                 
            
end
            
if betreten == and pc.get_level() > 74 then
                
if party.is_party() then
                    say_title
("Wächter des Dämonenturmes")
                    
say("")
                    
say("Bitte achte darauf, dass sich alle Gruppenmitglieder")
                    
say("im Tempel befinden!")
                    
say("")
                    
say_reward("Möchtest du den Dungeon wirklich mit deiner Gruppe")
                    
say_reward("betreten?")
                    
local gruppe_betreten select("Dämonenturm als Gruppe betreten""Abbrechen")
                    if 
gruppe_betreten == 1 then
                        d
.join(66special.devil_tower[1][1], special.devil_tower[1][2])
                        
d.spawn_mob(8015120615)
                    
end
                    
if gruppe_betreten == 2 then
                        
return
                    
end
                end
                
if not party.is_party() then
                    say_title
("Wächter des Dämonenturmes")
                    
say("")
                    
say("Du kannst diese Option nur ausführen wenn du dich")
                    
say("in einer Gruppe befindest.")
                    
say("")
                    
say_reward("Du befindest dich in keiner Gruppe.")
                    return
                
end
            end
            
if betreten == and pc.get_level() < 75 then
                say_title
("Wächter des Dämonenturmes")
                
say("")
                
say_reward("Du kannst diese Option erst mit Level 75 nutzen.")
                return
            
end
            
if betreten == 3 then
                
return
            
end
        end
    end
    when 8015.kill begin
        timer
("zeit_bis_port"10)
        
d.notice("Ihr habt den Metin der Härte zerstört!")
        
d.notice("In 10 Sekunden werdet ihr in die erste Ebene teleportiert.")
    
end
    when zeit_bis_port
.timer begin
        d
.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_regen.txt")
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
    
end
    
--when devil_stone2.kill begin
    
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --
end
    when devil_stone3
.kill begin
        
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --
d.set_exit_all_at_eliminate(6)
        --
d.set_warp_at_eliminate(6d.get_map_index(), 100100)
        --
d.set_warp_at_eliminate(4655376+532512+596+4)
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        
d.check_eliminated()
        --
d.exit_all()
    
end
    
function get_4floor_stone_pos()
        
local positions = {
        {
368629},
        {
419630},
        {
428653},
        {
422679},
        {
395689},
        {
369679},
        {
361658},
        }
        for 
1do
        
local j number(i7)
        if 
!= j then
            local t 
positions[i];
            
positions[i] = positions[j];
            
positions[j] = t;
        
end
        end
        
--for 1do
    --    
positions[i][1] = positions[i][1] * 100
    
--    positions[i][2] = positions[i][2] * 100
     
--   end
        
return positions
    end
    when 8016.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.setf("level"4)
        -- 
¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
        
--d.regen_file("data/dungeon/deviltower4_regen.txt")
        
local positions deviltower_zone.get_4floor_stone_pos()
        for 
1do
        
chat(positions[i][1], positions[i][2])
        
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
        
end
        chat
(positions[7][1], positions[7][2])
        
local vid d.spawn_mob(8017positions[7][1], positions[7][2])
        
chat(vid)
        
d.set_unique("real"vid)
        
server_loop_timer('devil_stone4_update'10pc.get_map_index())
        
server_timer('devil_stone4_fail1'5*60pc.get_map_index())

        
d.notice("Findet den richtigen Metinstein und zerstört ihn.");
        
d.notice("Die falschen Metinsteine werden verschwinden!");
        
d.notice("Ihr habt 15 Minuten zeit!");
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 10 Minuten")
        
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 5 Minuten")
        
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.notice("Ihr werdet nun nach draußen teleportiert")
        
d.exit_all()
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())
        
end
    end

    when devil_stone4_update
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        
if not d.is_unique_dead("real"then
            
for 1do
            if 
d.getf("fakedead" .. i) == 0 then
                
if d.unique_get_hp_perc("fake" .. i) < 50 then
                d
.purge_unique("fake" .. i)
                
d.setf("fakedead" .. i1)
                
d.notice("Der falsche Metinstein ist verschwunden..");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/deviltower5_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Ihr habt den richtigen Metinstein zerstört.");
            
d.notice("Ihr werdet nun in die nächste Ebene teleportiert")
            
clear_server_timer('devil_stone4_fail1'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail2'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail'get_server_timer_arg())
        
end
        
else
        
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
        
end
    end

    when devil_stone4_stop_timer
.server_timer begin
        clear_server_timer
('devil_stone4_update'get_server_timer_arg())
    
end

    when devil_stone4_end
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.setf("level"5)
        
d.setf("stone_count"5)
        
d.notice("Du bist nun in der 5. Ebene")
        
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
        
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
        
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())

        -- 
bla bla
        d
.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 
bla bla 2
        d
.spawn_mob(20073421452)
        
d.spawn_mob(20073380460)
        
d.spawn_mob(20073428414)
        
d.spawn_mob(20073398392)
        
d.spawn_mob(20073359426)
        
end
    end
    when devil_stone5_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 15 Minuten")
        
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 10 Minuten")
        
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail3
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 5 Minuten")
        
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.notice("Ihr werdet nun nach draußen teleportiert")
        
d.exit_all()
        
end
    end

    
--when devil_stone4.kill begin
        
--d.setf("level"5)
        --
d.setf("stone_count"4)
        --
d.clear_regen()
        --
d.regen_file("data/dungeon/deviltower5_regen.txt")
        --
d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --
end

    when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY 
5
        
--if is_test_server() then
        
--KILL_COUNT_FOR_DROP_KEY 1
        
--end
        local n 
=d.getf("count") + 1
        d
.setf("count"n
        if 
== KILL_COUNT_FOR_DROP_KEY then
        
-- bla bla 3
        game
.drop_item(500841)
        
d.setf("count"0)
        
end
    end
    when devil_stone5
.take with item.vnum == 50084 begin
        npc
.purge()
        
item.remove()
        
d.setf("stone_count"d.getf("stone_count") - 1)
        if 
d.getf("stone_count") <= 0 then
        d
.setf("level"6)
        
d.clear_regen()
        
d.regen_file("data/dungeon/deviltower6_regen.txt")

        
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
        
d.notice("in die 6. Ebene teleportiert.")
        
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        
clear_server_timer('devil_stone5_fail1'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail2'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail3'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail'get_server_timer_arg())
        else
        
d.notice("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
        
end
    end

    when devil_stone6
.kill begin
        
-- bla bla 4
        
-- bla bla 5
        
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        
d.kill_all()
       -- 
d.set_warp_at_eliminate(3*60655376+532512+596+4)
        
d.check_eliminated()
        
timer("stolzerking_killed"5)
    
end
    when stolzerking_killed
.timer begin
        cmdchat
("CMD1")
        
d.spawn_mob(9012395200)
        
d.spawn_mob(20074392209)
        
d.spawn_mob(20075405209)
        
d.spawn_mob(20076399209)
        
d.spawn_mob(9003402200)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Stolzen Dämonenkönig getötet und damit den 1. Teil des Dungeons abgeschlossen.")
        
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
        
d.notice("Falls du für den 2. Teil des Dungeons etwas benötigst kannst du es bei der Gemischtwarenhändlerin kaufen.")
        
d.notice("Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
        
timer("zeit_zum_uppen"110)
    
end
    when zeit_zum_uppen
.timer begin
        d
.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
        
timer("zeit_bis_mordesebene"10)
    
end

    when zeit_bis_mordesebene
.timer begin
        d
.clear_regen()

        
d.spawn_mob(8018639658)
        
d.spawn_mob(8018611637)
        
d.spawn_mob(8018596674)
        
d.spawn_mob(8018629670)

        
d.setf("level"7)

        
d.jump_all(2048+5906656+638)
    
end
    
    when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont 
d.getf("7_stone_kill") + 1
        d
.setf("7_stone_kill"cont)

        if 
cont >= 4 then
            d
.setf("7_stone_kill"0)
            
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        
end    
    end

    when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game
.drop_item(303001)
    
end

    when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc
.remove_item("30300"1)

        
local pct number(1,10)

        if 
pct == 1 then
            
-- bla bla 7
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
bla bla 8
            game
.drop_item(303011)
            
        
end
    end

    when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        
-- bla bla 9
        say_title
("Karte der Zin-Grotte")
        
say("")
        
say("Herzlichen Glückwunsch! Du hast die richtige Karte")
        
say("gefunden.")
        
say("")
        
say_reward("Du wirst jetzt in die nächste Ebene teleportiert.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
                        
    
--------------------------------------------
    -- 
bla bla 10
    
--------------------------------------------
    
when devil_jump_8.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- bla bla 11
        pc
.remove_item(30302,_count)
        
    
end

    when 1040.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 
number(15)
        if 
pct1 == 1 then
            local pct2 
number(110)
            if 
pct2 == 1 then
                
-- bla bla 12
                game
.drop_item(303041)
            else
                -- 
bla bla 13
                game
.drop_item(303041)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- bla bla 14
        npc
.purge()
        
item.remove()
        
d.kill_all()
        
timer("devil_jump_9"6)
        
    
end

    
---------------------------------------------
    -- 
bla bla 15
    
---------------------------------------------
    
when devil_jump_9.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
d.regen_file("data/dungeon/deviltower9_regen.txt")
    
end
    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.kill_all()
        
timer("sensi_killed"5)
    
end
    when sensi_killed
.timer begin
        cmdchat
("CMD1")
        
d.kill_all()
        
d.spawn_mob(9012618187)
        
d.spawn_mob(20074611179)
        
d.spawn_mob(20075620170)
        
d.spawn_mob(20076628179)
        
d.spawn_mob(9003621187)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Sensenmann getötet und damit den 2. Teil des Dungeons abgeschlossen.")
        
d.notice("Als Belohnung darfst du einen Gegenstand bei den dämonischen Schmieden verbessern.")
        
d.notice("Falls du den Dungeon fortführen möchtest, kannst du dir bei der Gemischtwarenhändlerin")
        
d.notice("erneut Tränke kaufen. Du wirst in 2 Minuten automatisch auf die nächste Ebene teleportiert.")
        
timer("zeit_nach_sensi"110)
    
end
    when zeit_nach_sensi
.timer begin
        d
.notice("In 10 Sekunden wirst du auf die nächste Ebene teleportiert.")
        
timer("zeit_bis_gemeinerking"10)
    
end
    when zeit_bis_gemeinerking
.timer begin
        d
.jump_all(2048+5906656+155)
        
d.kill_all()
        
d.spawn_mob(1094620170)
        
d.notice("Der Gemeine Dämonenkönig treibt hier sein Unwesen.")
        
d.notice("Töte ihn, um auf die nächste Ebene zu gelangen.")
    
end
    when 1094.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        timer
("zeit_bis_bt"10)
        
d.notice("Du hast den Gemeinen Dämonenkönig getötet.")
        
d.notice("In 10 Sekunden wirst du auf die letzte Ebene teleportiert.")
    
end
    when zeit_bis_bt
.timer begin
        d
.jump_all(2048+5906656+155)
        
d.kill_all()
        
d.spawn_mob(1095620170)
        
d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.")
        
d.notice("Töte den Blauen Tod und du wirst reich belohnt!")
    
end
    when 1095.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        cmdchat
("CMD1")
        
d.kill_all()
        
d.spawn_mob(9012618187)
        
d.spawn_mob(20074611179)
        
d.spawn_mob(20075620170)
        
d.spawn_mob(20076628179)
        
d.spawn_mob(9003621187)
        
d.setqf("can_refine"1)
        
d.notice("Du hast den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
        
d.notice("Herzlichen Glückwunsch!")
        
d.notice("Du darfst erneut einen Gegenstand bei den dämonischen Schmieden verbessern. Viel Glück!")
        
notice_all("".. pc.get_name() .." hat den Blauen Tod getötet und damit den Dämonenturm abgeschlossen.")
    
end
end
end 
Auch nochmal im Anhang wegen den Tabs und so

EDIT:
wenn jemand den gruppenrun testet bitte mir eine pn schreiben obs funktioniert oder nicht

--> Habe auch meine größte Befürchtung bei dieser Option getestet:
Gruppenrun gestartet und bis zum 3. Ebene (Dämonenking) gemacht.
Mit 2. Char normalen Run gestartet und auch bis zur 3. Ebene gemacht. (habe befürchtet, dass man dann im gleichen run ist. Ist man aber nicht! Klappt also parallel! )

PHP Code:
Changelog:
Gruppenrun gefixxt. (Notlösung)
Beim Start des Gruppensruns wird die Gruppe in eine leere Ebene teleportiert wo ein Metin der Härte stehtDer muss nur gekillt werden dann gehts weiter. (Erdgeschoss wird nicht mit teleportiert obwohl es "d.new_jump_all" ist.) 
-- Neue Version jetzt auch im Anhang!
Attached Files
File Type: rar deviltower_zone.rar (3.7 KB, 79 views)
rollback is offline  
Thanks
15 Users
Old 03/06/2014, 15:18   #569

 
elite*gold: 150
The Black Market: 147/0/0
Join Date: Jan 2014
Posts: 11,338
Received Thanks: 3,780
Attached Files
File Type: rar Metin.psd.rar (830.0 KB, 150 views)
Shigatu is offline  
Thanks
8 Users
Old 03/08/2014, 11:51   #570
 
PlayaStylee's Avatar
 
elite*gold: 10
Join Date: Jun 2013
Posts: 314
Received Thanks: 24
Schwarzes Diamanten EQ release

Ich weiss nicht ob die releaset wurden sind hab die damals geschickt bekommen und meinten die wären unpublic deswegen release ich die fals die Public sind bitte melden

Querys Alles Dabei

Um THX würde ich mich freuen

mfg
Attached Images
File Type: png DynastieSchild.png (1.7 KB, 3148 views)
File Type: png Schwarze Diamantenkette.png (1.5 KB, 3147 views)
File Type: png Schwarze Diamantenohrringe1.png (1.3 KB, 3152 views)
File Type: png Schwarze Diamantstiefel.png (1.7 KB, 3149 views)
File Type: png Schwarzes Diamantenarmband.png (1.6 KB, 3148 views)
File Type: png (PserverName)Helm.png (1.6 KB, 3151 views)
Attached Files
File Type: rar Schwarzes Diamanten EQ.rar (21.0 KB, 132 views)
PlayaStylee is offline  
Thanks
6 Users

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

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