hello, when i open whisper from player, it open whisper but that logo on right doesnt disappears an it still flashes like i didnt open that message, thanks for any help.
error
Quote:
0125 19:19:42301 :: File "ui.py", line 1098, in CallEvent
0125 19:19:42302 :: File "ui.py", line 59, in __call__
0125 19:19:42302 :: File "ui.py", line 50, in __call__
0125 19:19:42302 :: File "interfaceModule.py", line 1662, in ShowWhisperDialog
0125 19:19:42302 :: File "interfaceModule.py", line 1761, in __DestroyWhisperButton
0125 19:19:42302 :: File "interfaceModule.py", line 1714, in __ArrangeWhisperButton
0125 19:19:42302 :: UnboundLocalError
0125 19:19:42302 :: :
0125 19:19:42302 :: local variable 'button' referenced before assignment
0125 19:19:42302 ::
def MakeHyperlinkTooltip(self, hyperlink):
tokens = hyperlink.split(":")
if tokens and len(tokens):
type = tokens[0]
if "item" == type:
self.hyperlinkItemTooltip.SetHyperlinkItem(tokens)
elif "Chitra" == type:
self.OpenWhisperDialog(str(tokens[1]))
## Make Windows & Dialogs
################################
def Close(self):
if self.dlgWhisperWithoutTarget:
self.dlgWhisperWithoutTarget.Destroy()
del self.dlgWhisperWithoutTarget
if self.SlotmachineWnd:
self.SlotmachineWnd.Destroy()
if uiQuest.QuestDialog.__dict__.has_key("QuestCurtain "):
uiQuest.QuestDialog.QuestCurtain.Close()
if self.wndQuestWindow:
for eachQuestWindow in self.wndQuestWindow:
eachQuestWindow.nextCurtainMode = -1
eachQuestWindow.CloseSelf()
eachQuestWindow = None
if self.wndChat:
self.wndChat.Destroy()
if self.wndTaskBar:
self.wndTaskBar.Destroy()
if self.wndExpandedTaskBar:
self.wndExpandedTaskBar.Destroy()
if self.wndEnergyBar:
self.wndEnergyBar.Destroy()
if self.wndCharacter:
self.wndCharacter.Destroy()
if self.wndInventory:
self.wndInventory.Destroy()
if self.wndDragonSoul:
self.wndDragonSoul.Destroy()
if self.wndDragonSoulRefine:
self.wndDragonSoulRefine.Destroy()
if self.dlgExchange:
self.dlgExchange.Destroy()
if self.dlgPointReset:
self.dlgPointReset.Destroy()
if self.dlgShop:
self.dlgShop.Destroy()
if self.dlgRestart:
self.dlgRestart.Destroy()
if self.dlgSystem:
self.dlgSystem.Destroy()
if self.dlgPassword:
self.dlgPassword.Destroy()
if self.wndMiniMap:
self.wndMiniMap.Destroy()
if self.wndSafebox:
self.wndSafebox.Destroy()
if self.wndWeb:
self.wndWeb.Destroy()
self.wndWeb = None
if self.wndMall:
self.wndMall.Destroy()
if self.wndParty:
self.wndParty.Destroy()
if self.wndHelp:
self.wndHelp.Destroy()
if self.wndCube:
self.wndCube.Destroy()
if self.wndCubeResult:
self.wndCubeResult.Destroy()
if self.wndMessenger:
self.wndMessenger.Destroy()
if self.wndGuild:
self.wndGuild.Destroy()
if self.privateShopBuilder:
self.privateShopBuilder.Destroy()
if self.dlgRefineNew:
self.dlgRefineNew.Destroy()
if self.wndGuildBuilding:
self.wndGuildBuilding.Destroy()
if self.wndGameButton:
self.wndGameButton.Destroy()
# ITEM_MALL
if self.mallPageDlg:
self.mallPageDlg.Destroy()
# END_OF_ITEM_MALL
# ACCESSORY_REFINE_ADD_METIN_STONE
if self.wndItemSelect:
self.wndItemSelect.Destroy()
# END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
if (self.dlgOfflineShop):
self.dlgOfflineShop.Destroy()
if (self.offlineShopBuilder):
self.offlineShopBuilder.Destroy()
# OFFLINE_SHOP_ADMIN_PANEL
if (self.wndOfflineShopAdminPanel):
self.wndOfflineShopAdminPanel.Destroy()
# END_OF_OFFLINE_SHOP_ADMIN_PANEL
self.wndChatLog.Destroy()
for btn in self.questButtonList:
btn.SetEvent(0)
for btn in self.whisperButtonList:
btn.SetEvent(0)
for dlg in self.whisperDialogDict.itervalues():
dlg.Destroy()
for brd in self.guildScoreBoardDict.itervalues():
brd.Destroy()
for dlg in self.equipmentDialogDict.itervalues():
dlg.Destroy()
# ITEM_MALL
del self.mallPageDlg
# END_OF_ITEM_MALL
del self.wndGuild
del self.wndMessenger
del self.wndUICurtain
del self.wndChat
del self.wndTaskBar
if self.wndExpandedTaskBar:
del self.wndExpandedTaskBar
del self.wndEnergyBar
del self.wndCharacter
del self.wndInventory
if self.wndDragonSoul:
del self.wndDragonSoul
if self.wndDragonSoulRefine:
del self.wndDragonSoulRefine
del self.dlgExchange
del self.dlgPointReset
del self.dlgShop
del self.dlgRestart
del self.dlgSystem
del self.dlgPassword
del self.hyperlinkItemTooltip
del self.tooltipItem
del self.tooltipSkill
del self.wndMiniMap
del self.wndSafebox
del self.wndMall
del self.wndParty
del self.wndHelp
del self.wndCube
del self.wndCubeResult
del self.privateShopBuilder
del self.inputDialog
del self.wndChatLog
del self.dlgRefineNew
del self.wndGuildBuilding
del self.wndGameButton
del self.tipBoard
del self.bigBoard
del self.wndItemSelect
del self.dlgOfflineShop
del self.wndOfflineShopAdminPanel
def RefreshInventory(self):
self.wndTaskBar.RefreshQuickSlot()
self.wndInventory.RefreshItemSlot()
if app.ENABLE_DRAGON_SOUL_SYSTEM:
self.wndDragonSoul.RefreshItemSlot()
def RefreshCharacter(self): ## Character 페이지의 얼굴, Inventory 페이지의 전신 그림 등의 Refresh
self.wndCharacter.RefreshCharacter()
self.wndTaskBar.RefreshQuickSlot()
def ToggleMessenger(self):
if self.wndMessenger.IsShow():
self.wndMessenger.Hide()
else:
self.wndMessenger.SetTop()
self.wndMessenger.Show()
def ToggleMiniMap(self):
if app.IsPressed(app.DIK_LSHIFT) or app.IsPressed(app.DIK_RSHIFT):
if FALSE == self.wndMiniMap.isShowMiniMap():
self.wndMiniMap.ShowMiniMap()
self.wndMiniMap.SetTop()
else:
self.wndMiniMap.HideMiniMap()
def ToggleDragonSoulWindow(self):
if FALSE == player.IsObserverMode():
if app.ENABLE_DRAGON_SOUL_SYSTEM:
if FALSE == self.wndDragonSoul.IsShow():
if self.DRAGON_SOUL_IS_QUALIFIED:
self.wndDragonSoul.Show()
else:
try:
self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL _UNQUALIFIED)
self.wndPopupDialog.Open()
except:
self.wndPopupDialog = uiCommon.PopupDialog()
self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL _UNQUALIFIED)
self.wndPopupDialog.Open()
else:
self.wndDragonSoul.Close()
def ToggleDragonSoulWindowWithNoInfo(self):
if FALSE == player.IsObserverMode():
if app.ENABLE_DRAGON_SOUL_SYSTEM:
if FALSE == self.wndDragonSoul.IsShow():
if self.DRAGON_SOUL_IS_QUALIFIED:
self.wndDragonSoul.Show()
else:
self.wndDragonSoul.Close()
def FailDragonSoulRefine(self, reason, inven_type, inven_pos):
if FALSE == player.IsObserverMode():
if app.ENABLE_DRAGON_SOUL_SYSTEM:
if TRUE == self.wndDragonSoulRefine.IsShow():
self.wndDragonSoulRefine.RefineFail(reason, inven_type, inven_pos)
def SucceedDragonSoulRefine(self, inven_type, inven_pos):
if FALSE == player.IsObserverMode():
if app.ENABLE_DRAGON_SOUL_SYSTEM:
if TRUE == self.wndDragonSoulRefine.IsShow():
self.wndDragonSoulRefine.RefineSucceed(inven_type, inven_pos)
def OpenDragonSoulRefineWindow(self):
if FALSE == player.IsObserverMode():
if app.ENABLE_DRAGON_SOUL_SYSTEM:
if FALSE == self.wndDragonSoulRefine.IsShow():
self.wndDragonSoulRefine.Show()
if None != self.wndDragonSoul:
if FALSE == self.wndDragonSoul.IsShow():
self.wndDragonSoul.Show()
# Offline Shop Admin Panel
def ToggleOfflineShopAdminPanelWindow(self):
if (self.wndOfflineShopAdminPanel.IsShow() == True):
self.wndOfflineShopAdminPanel.Close()
else:
self.wndOfflineShopAdminPanel.Show()
# 용혼석 끝
def CloseDragonSoulRefineWindow(self):
if FALSE == player.IsObserverMode():
if app.ENABLE_DRAGON_SOUL_SYSTEM:
if TRUE == self.wndDragonSoulRefine.IsShow():
self.wndDragonSoulRefine.Close()
# 용혼석 끝
def ToggleGuildWindow(self):
if not self.wndGuild.IsShow():
if self.wndGuild.CanOpen():
self.wndGuild.Open()
else:
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GUILD_YOU_DO_NOT_JOIN)
else:
self.wndGuild.OverOutItem()
self.wndGuild.Hide()
def ToggleChatLogWindow(self):
if self.wndChatLog.IsShow():
self.wndChatLog.Hide()
else:
self.wndChatLog.Show()
def CheckGameButton(self):
if self.wndGameButton:
self.wndGameButton.CheckGameButton()
if 0: # 결과 메시지 출력은 생략 한다
self.wndCubeResult.SetPosition(*self.wndCube.GetGl obalPosition())
self.wndCubeResult.SetCubeResultItem(itemVnum, count)
self.wndCubeResult.Open()
self.wndCubeResult.SetTop()
if self.wndChat.IsEditMode():
self.wndChat.CloseChat()
return hideWindows
def __ShowWindows(self, wnds):
import sys
map(lambda x:x.Show(), wnds)
global IsQBHide
if not IsQBHide:
self.ShowAllQuestButton()
else:
self.HideAllQuestButton()
global IsKBHide
if not IsKBHide:
self.ShowAllWhisperButton()
else:
self.HideAllWhisperButton()
def BINARY_OpenAtlasWindow(self):
if self.wndMiniMap:
self.wndMiniMap.ShowAtlas()
def SetEquipmentDialogItem(self, vid, slotIndex, vnum, count):
if not vid in self.equipmentDialogDict:
return
self.equipmentDialogDict[vid].SetEquipmentDialogItem(slotIndex, vnum, count)
def SetEquipmentDialogSocket(self, vid, slotIndex, socketIndex, value):
if not vid in self.equipmentDialogDict:
return
self.equipmentDialogDict[vid].SetEquipmentDialogSocket(slotIndex, socketIndex, value)
def SetEquipmentDialogAttr(self, vid, slotIndex, attrIndex, type, value):
if not vid in self.equipmentDialogDict:
return
self.equipmentDialogDict[vid].SetEquipmentDialogAttr(slotIndex, attrIndex, type, value)
def CloseEquipmentDialog(self, vid):
if not vid in self.equipmentDialogDict:
return
del self.equipmentDialogDict[vid]
def HideAllQuestButton(self):
for btn in self.questButtonList:
btn.Hide()
def ShowAllQuestButton(self):
for btn in self.questButtonList:
btn.Show()
################################################## ###################################
## 채팅창의 "메시지 보내기"를 눌렀을때 이름 없는 대화창을 여는 함수
## 이름이 없기 때문에 기존의 WhisperDialogDict 와 별도로 관리된다.
def OpenWhisperDialogWithoutTarget(self):
if not self.dlgWhisperWithoutTarget:
dlgWhisper = uiWhisper.WhisperDialog(self.MinimizeWhisperDialog , self.CloseWhisperDialog)
dlgWhisper.BindInterface(self)
dlgWhisper.LoadDialog()
dlgWhisper.OpenWithoutTarget(self.RegisterTemporar yWhisperDialog)
dlgWhisper.SetPosition(self.windowOpenPosition*30, self.windowOpenPosition*30)
dlgWhisper.Show()
self.dlgWhisperWithoutTarget = dlgWhisper
## 캐릭터 메뉴의 1:1 대화 하기를 눌렀을때 이름을 가지고 바로 창을 여는 함수
def OpenWhisperDialog(self, name):
if not self.whisperDialogDict.has_key(name):
dlg = self.__MakeWhisperDialog(name)
dlg.OpenWithTarget(name)
dlg.chatLine.SetFocus()
dlg.Show()
self.__CheckGameMaster(name)
btn = self.__FindWhisperButton(name)
if 0 != btn:
self.__DestroyWhisperButton(btn)
## 다른 캐릭터로부터 메세지를 받았을때 일단 버튼만 띄워 두는 함수
def RecvWhisper(self, name):
if not self.whisperDialogDict.has_key(name):
btn = self.__FindWhisperButton(name)
if 0 == btn:
btn = self.__MakeWhisperButton(name)
btn.Flash()
global IsKBHide
if IsKBHide:
button.Hide()
else:
button.Show()
## 이름으로 Whisper 버튼을 찾아 리턴해 주는 함수
## 버튼은 딕셔너리로 하지 않는 것은 정렬 되어 버려 순서가 유지 되지 않으며
## 이로 인해 ToolTip들이 다른 버튼들에 의해 가려지기 때문이다.
def __FindWhisperButton(self, name):
for button in self.whisperButtonList:
if button.name == name:
return button
def HideAllWhisperButton(self):
for btn in self.whisperButtonList:
btn.Hide()
def ShowAllWhisperButton(self):
for btn in self.whisperButtonList:
btn.Show()
def __CheckGameMaster(self, name):
if not self.listGMName.has_key(name):
return
if self.whisperDialogDict.has_key(name):
dlg = self.whisperDialogDict[name]
dlg.SetGameMasterLook()
def RegisterGameMasterName(self, name):
if self.listGMName.has_key(name):
return
self.listGMName[name] = "GM"
def IsGameMasterName(self, name):
if self.listGMName.has_key(name):
return TRUE
else:
return FALSE
def BUILD_OnUpdate(self):
if not self.wndGuildBuilding:
return
if self.wndGuildBuilding.IsPositioningMode():
import background
x, y, z = background.GetPickingPoint()
self.wndGuildBuilding.SetBuildingPosition(x, y, z)
def BUILD_OnMouseLeftButtonDown(self):
if not self.wndGuildBuilding:
return
Whisper button in chat window not working 10/05/2018 - Metin2 Private Server - 2 Replies Hello evpers, i was just doing new ui for metin2 for last week and now when i completed the raw product i had to edit a chat line. I changed just a size a position of chat window, but when i was testing if everything is working well and clicked on whisper button the client crashed. Here's a syserr.
1005 18:22:20820 :: Failed to load script file : UIScript/WhisperDialog.py
1005 18:22:20823 ::
ui.py(line:2763) LoadScriptFile
system.py(line:192) execfile
system.py(line:163) Run...
[B] Push Button [S] 10 e*gold/Button; 25 e*g/psd+Button 09/20/2013 - elite*gold Trading - 4 Replies Moin,
Hier könnt ihr folgenden Push Button kaufen:
http://i.epvpimg.com/YlrYe.jpg
Pro Button wären das 10e*g, pro Button mit .psd dazu 25e*g.
Wenn ihr einen Button kaufen wollt, schreibt mir eine PN, damit ich den Namen ändern kann, alles hochladen kann und euch dann per Treasure schicken kann. ;)
Schrift kann auch geändert werden. Dazu einfach in der PN schreiben, welche Schrift ihr haben wollt^^
Mobs disappears from gm 11/27/2011 - SRO Private Server - 4 Replies help whenever i spawn a unique or any mob it spawns then disappears in a second can anybody tell me how to prevent that thanks :D
Whisper Alert!!!Alerts you when you get a whisper. 06/16/2007 - CO2 Bots & Macros - 37 Replies Hey Hey, This was requested on forum somewhere..lol My 3rd and I think useful contribution.
It will alert you if you have a whisper when marketing.
Settings:
Desktop 1024,768 CO 1024,768
Whisper color=Dark Blue (Set in your chat options) *make sure no chats other than Whisper are using Dark Blue.