Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import app
- import dbg
- import grp
- import item
- import background
- import chr
- import chrmgr
- import player
- import snd
- import chat
- import textTail
- import snd
- import net
- import effect
- import wndMgr
- import fly
- import systemSetting
- import quest
- import guild
- import skill
- import messenger
- import localeInfo
- import constInfo
- import exchange
- import ime
- import uiSearchShop
- import uiScriptLocale
- import uimarbleshop
- import ui
- import uiCommon
- import uiPhaseCurtain
- import uiMapNameShower
- import uiAffectShower
- import uiPlayerGauge
- import uiCharacter
- import uiTarget
- # PRIVATE_SHOP_PRICE_LIST
- import uiPrivateShopBuilder
- # END_OF_PRIVATE_SHOP_PRICE_LIST
- if app.ENABLE_SHOP_SEARCH:
- import uiPrivateShopSearch
- import mouseModule
- import consoleModule
- import uisystem
- import localeInfo
- import uikick
- import uiban
- import uiunban
- import uiblockchat
- import playerSettingModule
- import interfaceModule
- import uiCube
- import serverInfo
- import musicInfo
- import debugInfo
- import stringCommander
- from _weakref import proxy
- from switchbot import Bot
- import uipetsystem
- import uisupportsystem
- import whisper
- import whispermanager
- if app.ENABLE_BIOLOG_SYSTEM:
- import uiToolTip
- import uiprofessionalbiolog as Elements
- # TEXTTAIL_LIVINGTIME_CONTROL
- #if localeInfo.IsJAPAN():
- # app.SetTextTailLivingTime(8.0)
- # END_OF_TEXTTAIL_LIVINGTIME_CONTROL
- # SCREENSHOT_CWDSAVE
- SCREENSHOT_CWDSAVE = False
- SCREENSHOT_DIR = None
- if localeInfo.IsEUROPE():
- SCREENSHOT_CWDSAVE = True
- if localeInfo.IsCIBN10():
- SCREENSHOT_CWDSAVE = False
- SCREENSHOT_DIR = "YT2W"
- cameraDistance = 1550.0
- cameraPitch = 27.0
- cameraRotation = 0.0
- cameraHeight = 100.0
- testAlignment = 0
- BPisLoaded = 0
- class GameWindow(ui.ScriptWindow):
- def __init__(self, stream):
- ui.ScriptWindow.__init__(self, "GAME")
- self.SetWindowName("game")
- net.SetPhaseWindow(net.PHASE_WINDOW_GAME, self)
- player.SetGameWindow(self)
- self.quickSlotPageIndex = 0
- self.lastPKModeSendedTime = 0
- self.pressNumber = None
- self.uiNewShopCreate = None
- self.uiNewShop = None
- self.guildWarQuestionDialog = None
- self.interface = None
- self.targetBoard = None
- self.console = None
- self.mapNameShower = None
- self.affectShower = None
- self.playerGauge = None
- self.mount = None
- self.stream=stream
- self.interface = interfaceModule.Interface()
- self.interface.MakeInterface()
- self.interface.ShowDefaultWindows()
- self.curtain = uiPhaseCurtain.PhaseCurtain()
- self.curtain.speed = 0.03
- self.curtain.Hide()
- if app.ENABLE_SHOP_SEARCH:
- self.PrivateShopSearch = uiPrivateShopSearch.PrivateShopSearch()
- self.PrivateShopSearch.Close(1)
- self.targetBoard = uiTarget.TargetBoard()
- self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))
- self.targetBoard.Hide()
- self.petmain = uipetsystem.PetSystemMain()
- self.petmini = uipetsystem.PetSystemMini()
- #panel_admin
- # self.blockchatgui = uipanel.PanelWindows()
- # self.blockchatgui1 = uiblockchat.BlockChatWindow()
- # self.blockchatgui2 = uikick.KickChatWindow()
- # self.blockchatgui3 = uiban.BanChatWindow()
- # self.blockchatgui4 = uiunban.UnbanChatWindow()
- #panel_admin_done
- self.console = consoleModule.ConsoleWindow()
- self.console.BindGameClass(self)
- self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)
- self.console.Hide()
- self.supportpg = uisupportsystem.SupportMainGui()
- self.mapNameShower = uiMapNameShower.MapNameShower()
- self.affectShower = uiAffectShower.AffectShower()
- self.wndMarbleShop = uimarbleshop.MarbleShopWindow()
- self.playerGauge = uiPlayerGauge.PlayerGauge(self)
- self.playerGauge.Hide()
- if app.ENABLE_WHISPER_ADMIN_SYSTEM:
- self.adminWhisperManager = whisper.WhisperManager()
- self.itemDropQuestionDialog = None
- self.__SetQuickSlotMode()
- self.__ServerCommand_Build()
- self.__ProcessPreservedServerCommand()
- self.switchbot = Bot()
- self.switchbot.Hide()
- def __del__(self):
- player.SetGameWindow(0)
- net.ClearPhaseWindow(net.PHASE_WINDOW_GAME, self)
- ui.ScriptWindow.__del__(self)
- def Open(self):
- app.SetFrameSkip(1)
- self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
- self.quickSlotPageIndex = 0
- self.PickingCharacterIndex = -1
- self.PickingItemIndex = -1
- self.consoleEnable = False
- self.isShowDebugInfo = False
- self.ShowNameFlag = False
- import uiNewShop
- self.uiNewShop = uiNewShop.ShopDialog()
- self.uiNewShop.Close()
- self.uiNewShopCreate = uiNewShop.ShopDialogCreate()
- self.uiNewShopCreate.Hide()
- self.enableXMasBoom = False
- self.startTimeXMasBoom = 0.0
- self.indexXMasBoom = 0
- global cameraDistance, cameraPitch, cameraRotation, cameraHeight
- app.SetCamera(cameraDistance, cameraPitch, cameraRotation, cameraHeight)
- constInfo.SET_DEFAULT_CAMERA_MAX_DISTANCE()
- constInfo.SET_DEFAULT_CHRNAME_COLOR()
- constInfo.SET_DEFAULT_FOG_LEVEL()
- constInfo.SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE()
- constInfo.SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS()
- constInfo.SET_DEFAULT_USE_SKILL_EFFECT_ENABLE()
- # TWO_HANDED_WEAPON_ATTACK_SPEED_UP
- constInfo.SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE()
- # END_OF_TWO_HANDED_WEAPON_ATTACK_SPEED_UP
- import event
- event.SetLeftTimeString(localeInfo.UI_LEFT_TIME)
- textTail.EnablePKTitle(constInfo.PVPMODE_ENABLE)
- if constInfo.PVPMODE_TEST_ENABLE:
- self.testPKMode = ui.TextLine()
- self.testPKMode.SetFontName(localeInfo.UI_DEF_FONT)
- self.testPKMode.SetPosition(0, 15)
- self.testPKMode.SetWindowHorizontalAlignCenter()
- self.testPKMode.SetHorizontalAlignCenter()
- self.testPKMode.SetFeather()
- self.testPKMode.SetOutline()
- self.testPKMode.Show()
- self.testAlignment = ui.TextLine()
- self.testAlignment.SetFontName(localeInfo.UI_DEF_FONT)
- self.testAlignment.SetPosition(0, 35)
- self.testAlignment.SetWindowHorizontalAlignCenter()
- self.testAlignment.SetHorizontalAlignCenter()
- self.testAlignment.SetFeather()
- self.testAlignment.SetOutline()
- self.testAlignment.Show()
- self.__BuildKeyDict()
- self.__BuildDebugInfo()
- # PRIVATE_SHOP_PRICE_LIST
- uiPrivateShopBuilder.Clear()
- # END_OF_PRIVATE_SHOP_PRICE_LIST
- # UNKNOWN_UPDATE
- exchange.InitTrading()
- # END_OF_UNKNOWN_UPDATE
- self.itemDropQuestionDialog = None
- ## Sound
- snd.SetMusicVolume(systemSetting.GetMusicVolume()*net.GetFieldMusicVolume())
- snd.SetSoundVolume(systemSetting.GetSoundVolume())
- netFieldMusicFileName = net.GetFieldMusicFileName()
- if netFieldMusicFileName:
- snd.FadeInMusic("BGM/" + netFieldMusicFileName)
- elif musicInfo.fieldMusic != "":
- snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
- self.__SetQuickSlotMode()
- self.__SelectQuickPage(self.quickSlotPageIndex)
- self.SetFocus()
- self.Show()
- app.ShowCursor()
- net.SendEnterGamePacket()
- # START_GAME_ERROR_EXIT
- try:
- self.StartGame()
- except:
- import exception
- exception.Abort("GameWindow.Open")
- # END_OF_START_GAME_ERROR_EXIT
- self.cubeInformation = {}
- self.currentCubeNPC = 0
- if app.ENABLE_FOG_FIX:
- if systemSetting.IsFogMode():
- background.SetEnvironmentFog(True)
- else:
- background.SetEnvironmentFog(False)
- if systemSetting.IsShowOfflineShop() == 0:
- net.SendChatPacket("/show_hide_shops 0")
- else:
- net.SendChatPacket("/show_hide_shops 1")
- def Close(self):
- self.Hide()
- ### PRIVATESHOP SEARCH ###
- if app.ENABLE_SHOP_SEARCH:
- if self.PrivateShopSearch:
- self.PrivateShopSearch.Close()
- self.PrivateShopSearch = None
- global cameraDistance, cameraPitch, cameraRotation, cameraHeight
- (cameraDistance, cameraPitch, cameraRotation, cameraHeight) = app.GetCamera()
- if musicInfo.fieldMusic != "":
- snd.FadeOutMusic("BGM/"+ musicInfo.fieldMusic)
- # if self.uiSearchShop:
- # self.uiSearchShop.Close()
- # self.uiSearchShop=0
- self.onPressKeyDict = None
- self.onClickKeyDict = None
- chat.Close()
- snd.StopAllSound()
- grp.InitScreenEffect()
- chr.Destroy()
- textTail.Clear()
- quest.Clear()
- background.Destroy()
- guild.Destroy()
- messenger.Destroy()
- skill.ClearSkillData()
- wndMgr.Unlock()
- self.uiNewShop.Hide()
- self.uiNewShopCreate.Hide()
- uiPrivateShopBuilder.Clear()
- mouseModule.mouseController.DeattachObject()
- if self.guildWarQuestionDialog:
- self.guildWarQuestionDialog.Close()
- self.guildNameBoard = None
- self.partyRequestQuestionDialog = None
- self.partyInviteQuestionDialog = None
- self.guildInviteQuestionDialog = None
- self.guildWarQuestionDialog = None
- self.messengerAddFriendQuestion = None
- # UNKNOWN_UPDATE
- self.itemDropQuestionDialog = None
- # END_OF_UNKNOWN_UPDATE
- # QUEST_CONFIRM
- self.confirmDialog = None
- # END_OF_QUEST_CONFIRM
- self.PrintCoord = None
- self.FrameRate = None
- self.Pitch = None
- self.Splat = None
- self.TextureNum = None
- self.ObjectNum = None
- self.ViewDistance = None
- self.PrintMousePos = None
- self.ClearDictionary()
- self.petmain.Close()
- self.petmini.Close()
- self.supportpg.Close()
- self.playerGauge = None
- self.mapNameShower = None
- self.affectShower = None
- self.mount = None
- if self.console:
- self.console.BindGameClass(0)
- self.console.Close()
- self.console=None
- if self.targetBoard:
- self.targetBoard.Destroy()
- self.targetBoard = None
- if self.wndMarbleShop:
- self.wndMarbleShop.Hide()
- if self.interface:
- self.interface.HideAllWindows()
- self.interface.Close()
- self.interface=None
- player.ClearSkillDict()
- player.ResetCameraRotation()
- self.KillFocus()
- app.HideCursor()
- print "---------------------------------------------------------------------------- CLOSE GAME WINDOW"
- def __BuildKeyDict(self):
- onPressKeyDict = {}
- ##PressKey 는 누르고 있는 동안 계속 적용되는 키이다.
- ## 숫자 단축키 퀵슬롯에 이용된다.(이후 숫자들도 퀵 슬롯용 예약)
- ## F12 는 클라 디버그용 키이므로 쓰지 않는 게 좋다.
- onPressKeyDict[app.DIK_1] = lambda : self.__PressNumKey(1)
- onPressKeyDict[app.DIK_2] = lambda : self.__PressNumKey(2)
- onPressKeyDict[app.DIK_3] = lambda : self.__PressNumKey(3)
- onPressKeyDict[app.DIK_4] = lambda : self.__PressNumKey(4)
- onPressKeyDict[app.DIK_5] = lambda : self.__PressNumKey(5)
- onPressKeyDict[app.DIK_6] = lambda : self.__PressNumKey(6)
- onPressKeyDict[app.DIK_7] = lambda : self.__PressNumKey(7)
- onPressKeyDict[app.DIK_8] = lambda : self.__PressNumKey(8)
- onPressKeyDict[app.DIK_9] = lambda : self.__PressNumKey(9)
- onPressKeyDict[app.DIK_F1] = lambda : self.__PressQuickSlot(4)
- onPressKeyDict[app.DIK_F2] = lambda : self.__PressQuickSlot(5)
- onPressKeyDict[app.DIK_F3] = lambda : self.__PressQuickSlot(6)
- onPressKeyDict[app.DIK_F4] = lambda : self.__PressQuickSlot(7)
- onPressKeyDict[app.DIK_F5] = lambda : self.__toggleSwitchbot()
- # if app.ENABLE_DUNGEON_INFO_SYSTEM:
- # onPressKeyDict[app.DIK_F5] = lambda : self.interface.ToggleDungeonInfoWindow()
- # Mount_gui
- # onPressKeyDict[app.DIK_K] = lambda : self.WindowMount()
- onPressKeyDict[app.DIK_F7] = lambda : self.OpenTimerWindow()
- onPressKeyDict[app.DIK_LALT] = lambda : self.ShowName()
- onPressKeyDict[app.DIK_LCONTROL] = lambda : self.ShowMouseImage()
- onPressKeyDict[app.DIK_SYSRQ] = lambda : self.SaveScreen()
- onPressKeyDict[app.DIK_SPACE] = lambda : self.StartAttack()
- # onPressKeyDict[app.DIK_F11] = lambda : self.OpenMarbleShop()
- #캐릭터 이동키
- onPressKeyDict[app.DIK_UP] = lambda : self.MoveUp()
- onPressKeyDict[app.DIK_DOWN] = lambda : self.MoveDown()
- onPressKeyDict[app.DIK_LEFT] = lambda : self.MoveLeft()
- onPressKeyDict[app.DIK_RIGHT] = lambda : self.MoveRight()
- onPressKeyDict[app.DIK_W] = lambda : self.MoveUp()
- onPressKeyDict[app.DIK_S] = lambda : self.MoveDown()
- onPressKeyDict[app.DIK_A] = lambda : self.MoveLeft()
- onPressKeyDict[app.DIK_D] = lambda : self.MoveRight()
- onPressKeyDict[app.DIK_E] = lambda: app.RotateCamera(app.CAMERA_TO_POSITIVE)
- onPressKeyDict[app.DIK_R] = lambda: app.ZoomCamera(app.CAMERA_TO_NEGATIVE)
- #onPressKeyDict[app.DIK_F] = lambda: app.ZoomCamera(app.CAMERA_TO_POSITIVE)
- onPressKeyDict[app.DIK_T] = lambda: app.PitchCamera(app.CAMERA_TO_NEGATIVE)
- onPressKeyDict[app.DIK_G] = self.__PressGKey
- onPressKeyDict[app.DIK_Q] = self.__PressQKey
- onPressKeyDict[app.DIK_NUMPAD9] = lambda: app.MovieResetCamera()
- onPressKeyDict[app.DIK_NUMPAD4] = lambda: app.MovieRotateCamera(app.CAMERA_TO_NEGATIVE)
- onPressKeyDict[app.DIK_NUMPAD6] = lambda: app.MovieRotateCamera(app.CAMERA_TO_POSITIVE)
- onPressKeyDict[app.DIK_PGUP] = lambda: app.MovieZoomCamera(app.CAMERA_TO_NEGATIVE)
- onPressKeyDict[app.DIK_PGDN] = lambda: app.MovieZoomCamera(app.CAMERA_TO_POSITIVE)
- onPressKeyDict[app.DIK_NUMPAD8] = lambda: app.MoviePitchCamera(app.CAMERA_TO_NEGATIVE)
- onPressKeyDict[app.DIK_NUMPAD2] = lambda: app.MoviePitchCamera(app.CAMERA_TO_POSITIVE)
- onPressKeyDict[app.DIK_GRAVE] = lambda : self.PickUpItem()
- onPressKeyDict[app.DIK_Z] = lambda : self.PickUpItem()
- onPressKeyDict[app.DIK_C] = lambda state = "STATUS": self.interface.ToggleCharacterWindow(state)
- onPressKeyDict[app.DIK_V] = lambda state = "SKILL": self.interface.ToggleCharacterWindow(state)
- #onPressKeyDict[app.DIK_B] = lambda state = "EMOTICON": self.interface.ToggleCharacterWindow(state)
- onPressKeyDict[app.DIK_N] = lambda state = "QUEST": self.interface.ToggleCharacterWindow(state)
- onPressKeyDict[app.DIK_I] = lambda : self.interface.ToggleInventoryWindow()
- onPressKeyDict[app.DIK_O] = lambda : self.interface.ToggleDragonSoulWindowWithNoInfo()
- onPressKeyDict[app.DIK_M] = lambda : self.interface.PressMKey()
- #onPressKeyDict[app.DIK_H] = lambda : self.interface.OpenHelpWindow()
- onPressKeyDict[app.DIK_ADD] = lambda : self.interface.MiniMapScaleUp()
- onPressKeyDict[app.DIK_SUBTRACT] = lambda : self.interface.MiniMapScaleDown()
- onPressKeyDict[app.DIK_L] = lambda : self.interface.ToggleChatLogWindow()
- onPressKeyDict[app.DIK_LSHIFT] = lambda : self.__SetQuickPageMode()
- onPressKeyDict[app.DIK_J] = lambda : self.__PressJKey()
- onPressKeyDict[app.DIK_H] = lambda : self.__PressHKey()
- onPressKeyDict[app.DIK_B] = lambda : self.__PressBKey()
- onPressKeyDict[app.DIK_F] = lambda : self.__PressFKey()
- # CUBE_TEST
- #onPressKeyDict[app.DIK_K] = lambda : self.interface.OpenCubeWindow()
- # CUBE_TEST_END
- self.onPressKeyDict = onPressKeyDict
- onClickKeyDict = {}
- onClickKeyDict[app.DIK_UP] = lambda : self.StopUp()
- onClickKeyDict[app.DIK_DOWN] = lambda : self.StopDown()
- onClickKeyDict[app.DIK_LEFT] = lambda : self.StopLeft()
- onClickKeyDict[app.DIK_RIGHT] = lambda : self.StopRight()
- onClickKeyDict[app.DIK_SPACE] = lambda : self.EndAttack()
- onClickKeyDict[app.DIK_W] = lambda : self.StopUp()
- onClickKeyDict[app.DIK_S] = lambda : self.StopDown()
- onClickKeyDict[app.DIK_A] = lambda : self.StopLeft()
- onClickKeyDict[app.DIK_D] = lambda : self.StopRight()
- onClickKeyDict[app.DIK_Q] = lambda: app.RotateCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_E] = lambda: app.RotateCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_R] = lambda: app.ZoomCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_F] = lambda: app.ZoomCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_T] = lambda: app.PitchCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_G] = lambda: self.__ReleaseGKey()
- onClickKeyDict[app.DIK_NUMPAD4] = lambda: app.MovieRotateCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_NUMPAD6] = lambda: app.MovieRotateCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_PGUP] = lambda: app.MovieZoomCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_PGDN] = lambda: app.MovieZoomCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_NUMPAD8] = lambda: app.MoviePitchCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_NUMPAD2] = lambda: app.MoviePitchCamera(app.CAMERA_STOP)
- onClickKeyDict[app.DIK_LALT] = lambda: self.HideName()
- onClickKeyDict[app.DIK_LCONTROL] = lambda: self.HideMouseImage()
- onClickKeyDict[app.DIK_LSHIFT] = lambda: self.__SetQuickSlotMode()
- onClickKeyDict[app.DIK_P] = lambda: self.OpenPetMainGui()
- onClickKeyDict[app.DIK_X] = lambda: self.OpenSupportGui()
- #if constInfo.PVPMODE_ACCELKEY_ENABLE:
- # onClickKeyDict[app.DIK_B] = lambda: self.ChangePKMode()
- self.onClickKeyDict=onClickKeyDict
- def __PressNumKey(self,num):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- if num >= 1 and num <= 9:
- if(chrmgr.IsPossibleEmoticon(-1)):
- chrmgr.SetEmoticon(-1,int(num)-1)
- net.SendEmoticon(int(num)-1)
- else:
- if num >= 1 and num <= 4:
- self.pressNumber(num-1)
- if app.ENABLE_TITLE_SYSTEM:
- def OpenChooseTitle(self):
- import uiTitlePreference
- if not uiTitlePreference.STAT:
- self.title = uiTitlePreference.Board()
- self.title.Open()
- else:
- return
- def OpenSupportGui(self):
- if constInfo.SUPPORTGUI == 0:
- self.supportpg.Show()
- self.supportpg.SetTop()
- constInfo.SUPPORTGUI = 1
- else:
- self.supportpg.Close()
- constInfo.SUPPORTGUI = 0
- def __ClickBKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- return
- else:
- if constInfo.PVPMODE_ACCELKEY_ENABLE:
- self.ChangePKMode()
- def __PressJKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- if player.IsMountingHorse():
- net.SendChatPacket("/unmount")
- else:
- if not uiPrivateShopBuilder.IsBuildingPrivateShop():
- for i in xrange(player.INVENTORY_PAGE_SIZE):
- if player.GetItemIndex(i) in (71114, 71116, 71118, 71120):
- net.SendItemUsePacket(i)
- break
- def __PressHKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- net.SendChatPacket("/user_horse_ride")
- else:
- self.interface.OpenHelpWindow()
- def __PressBKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- net.SendChatPacket("/user_horse_back")
- else:
- state = "EMOTICON"
- self.interface.ToggleCharacterWindow(state)
- def __PressFKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- net.SendChatPacket("/user_horse_feed")
- else:
- app.ZoomCamera(app.CAMERA_TO_POSITIVE)
- def __PressGKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- net.SendChatPacket("/ride")
- else:
- if self.ShowNameFlag:
- self.interface.ToggleGuildWindow()
- else:
- app.PitchCamera(app.CAMERA_TO_POSITIVE)
- def __ReleaseGKey(self):
- app.PitchCamera(app.CAMERA_STOP)
- def __PressQKey(self):
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- # REDDEV_NEW_QUEST_LISTING
- if 0==interfaceModule.IsQBHide:
- interfaceModule.IsQBHide = 1
- self.interface.HideAllQuestButton()
- else:
- interfaceModule.IsQBHide = 0
- self.interface.ShowAllQuestButton()
- # self.interface.ToggleCharacterWindow("QUEST")
- # ENDOF_REDDEV_NEW_QUEST_LISTING
- else:
- app.RotateCamera(app.CAMERA_TO_NEGATIVE)
- def __SetQuickSlotMode(self):
- self.pressNumber=ui.__mem_func__(self.__PressQuickSlot)
- def __SetQuickPageMode(self):
- self.pressNumber=ui.__mem_func__(self.__SelectQuickPage)
- # def __PressQuickSlot(self, localSlotIndex):
- # if localeInfo.IsARABIC():
- # if 0 <= localSlotIndex and localSlotIndex < 4:
- # player.RequestUseLocalQuickSlot(3-localSlotIndex)
- # else:
- # player.RequestUseLocalQuickSlot(11-localSlotIndex)
- # else:
- # player.RequestUseLocalQuickSlot(localSlotIndex)
- def __PressQuickSlot(self, localSlotIndex):
- def GetPath():
- return "lib\item_proto_list.py"
- def MaxRange():
- return 100500
- def InitCheckName(name):
- return (name != "" and name != "Fiere")
- def InitLoadingProto():
- self.listKeys = []
- self.dict = {}
- fileName = open(GetPath(), 'w+')
- for key in xrange(MaxRange()):
- item.SelectItem(key)
- stringName = item.GetItemName(key)
- self.dict['vnum'] = key
- self.dict['name'] = stringName
- if InitCheckName(self.dict['name']):
- self.listKeys.append({
- 'vnum': self.dict['vnum'], 'name': self.dict['name']
- })
- fileName.write("DICT=[\n")
- for key in self.listKeys:
- fileName.write(str(key) + ",\n")
- fileName.write("\n]")
- chat.AppendChat(chat.CHAT_TYPE_INFO, "%d items append in lib\item_proto_list.py." % (len(self.listKeys)))
- def IsAdmin():
- return (str(player.GetName())[0] == "")
- if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
- if localSlotIndex in [4, 5, 6, 7]:
- InitLoadingProto()
- else:
- player.RequestUseLocalQuickSlot(localSlotIndex)
- def __SelectQuickPage(self, pageIndex):
- self.quickSlotPageIndex = pageIndex
- player.SetQuickPage(pageIndex)
- def ToggleDebugInfo(self):
- self.isShowDebugInfo = not self.isShowDebugInfo
- if self.isShowDebugInfo:
- self.PrintCoord.Show()
- self.FrameRate.Show()
- self.Pitch.Show()
- self.Splat.Show()
- self.TextureNum.Show()
- self.ObjectNum.Show()
- self.ViewDistance.Show()
- self.PrintMousePos.Show()
- else:
- self.PrintCoord.Hide()
- self.FrameRate.Hide()
- self.Pitch.Hide()
- self.Splat.Hide()
- self.TextureNum.Hide()
- self.ObjectNum.Hide()
- self.ViewDistance.Hide()
- self.PrintMousePos.Hide()
- def __BuildDebugInfo(self):
- ## Character Position Coordinate
- self.PrintCoord = ui.TextLine()
- self.PrintCoord.SetFontName(localeInfo.UI_DEF_FONT)
- self.PrintCoord.SetPosition(wndMgr.GetScreenWidth() - 270, 0)
- ## Frame Rate
- self.FrameRate = ui.TextLine()
- self.FrameRate.SetFontName(localeInfo.UI_DEF_FONT)
- self.FrameRate.SetPosition(wndMgr.GetScreenWidth() - 270, 20)
- ## Camera Pitch
- self.Pitch = ui.TextLine()
- self.Pitch.SetFontName(localeInfo.UI_DEF_FONT)
- self.Pitch.SetPosition(wndMgr.GetScreenWidth() - 270, 40)
- ## Splat
- self.Splat = ui.TextLine()
- self.Splat.SetFontName(localeInfo.UI_DEF_FONT)
- self.Splat.SetPosition(wndMgr.GetScreenWidth() - 270, 60)
- ##
- self.PrintMousePos = ui.TextLine()
- self.PrintMousePos.SetFontName(localeInfo.UI_DEF_FONT)
- self.PrintMousePos.SetPosition(wndMgr.GetScreenWidth() - 270, 80)
- # TextureNum
- self.TextureNum = ui.TextLine()
- self.TextureNum.SetFontName(localeInfo.UI_DEF_FONT)
- self.TextureNum.SetPosition(wndMgr.GetScreenWidth() - 270, 100)
- # 오브젝트 그리는 개수
- self.ObjectNum = ui.TextLine()
- self.ObjectNum.SetFontName(localeInfo.UI_DEF_FONT)
- self.ObjectNum.SetPosition(wndMgr.GetScreenWidth() - 270, 120)
- # 시야거리
- self.ViewDistance = ui.TextLine()
- self.ViewDistance.SetFontName(localeInfo.UI_DEF_FONT)
- self.ViewDistance.SetPosition(0, 0)
- def __NotifyError(self, msg):
- chat.AppendChat(chat.CHAT_TYPE_INFO, msg)
- def ChangePKMode(self):
- if not app.IsPressed(app.DIK_LCONTROL):
- return
- if player.GetStatus(player.LEVEL)<constInfo.PVPMODE_PROTECTED_LEVEL:
- self.__NotifyError(localeInfo.OPTION_PVPMODE_PROTECT % (constInfo.PVPMODE_PROTECTED_LEVEL))
- return
- curTime = app.GetTime()
- if curTime - self.lastPKModeSendedTime < constInfo.PVPMODE_ACCELKEY_DELAY:
- return
- self.lastPKModeSendedTime = curTime
- curPKMode = player.GetPKMode()
- nextPKMode = curPKMode + 1
- if nextPKMode == player.PK_MODE_PROTECT:
- if 0 == player.GetGuildID():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_CANNOT_SET_GUILD_MODE)
- nextPKMode = 0
- else:
- nextPKMode = player.PK_MODE_GUILD
- elif nextPKMode == player.PK_MODE_MAX_NUM:
- nextPKMode = 0
- net.SendChatPacket("/PKMode " + str(nextPKMode))
- print "/PKMode " + str(nextPKMode)
- def OnChangePKMode(self):
- self.interface.OnChangePKMode()
- try:
- self.__NotifyError(localeInfo.OPTION_PVPMODE_MESSAGE_DICT[player.GetPKMode()])
- except KeyError:
- print "UNKNOWN PVPMode[%d]" % (player.GetPKMode())
- if constInfo.PVPMODE_TEST_ENABLE:
- curPKMode = player.GetPKMode()
- alignment, grade = chr.testGetPKData()
- self.pkModeNameDict = { 0 : "PEACE", 1 : "REVENGE", 2 : "FREE", 3 : "PROTECT", }
- self.testPKMode.SetText("Current PK Mode : " + self.pkModeNameDict.get(curPKMode, "UNKNOWN"))
- self.testAlignment.SetText("Current Alignment : " + str(alignment) + " (" + localeInfo.TITLE_NAME_LIST[grade] + ")")
- ###############################################################################################
- ###############################################################################################
- ## Game Callback Functions
- # Start
- def StartGame(self):
- self.RefreshInventory()
- self.RefreshEquipment()
- self.RefreshCharacter()
- self.RefreshSkill()
- if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
- systemSetting.SetNightModeOption(systemSetting.GetNightModeOption())
- systemSetting.SetSnowModeOption(systemSetting.GetSnowModeOption())
- systemSetting.SetSnowTextureModeOption(systemSetting.GetSnowTextureModeOption())
- if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
- def BINARY_Recv_Night_Mode(self, mode):
- self.__DayMode_Update(mode)
- # Refresh
- def CheckGameButton(self):
- if self.interface:
- self.interface.CheckGameButton()
- def RefreshAlignment(self):
- self.interface.RefreshAlignment()
- def RefreshStatus(self):
- self.CheckGameButton()
- if self.interface:
- self.interface.RefreshStatus()
- if self.playerGauge:
- self.playerGauge.RefreshGauge()
- def RefreshStamina(self):
- self.interface.RefreshStamina()
- def RefreshSkill(self):
- self.CheckGameButton()
- if self.interface:
- self.interface.RefreshSkill()
- def RefreshQuest(self):
- self.interface.RefreshQuest()
- def RefreshMessenger(self):
- self.interface.RefreshMessenger()
- def RefreshGuildInfoPage(self):
- self.interface.RefreshGuildInfoPage()
- def RefreshGuildBoardPage(self):
- self.interface.RefreshGuildBoardPage()
- def RefreshGuildMemberPage(self):
- self.interface.RefreshGuildMemberPage()
- def RefreshGuildMemberPageGradeComboBox(self):
- self.interface.RefreshGuildMemberPageGradeComboBox()
- def RefreshGuildSkillPage(self):
- self.interface.RefreshGuildSkillPage()
- def RefreshGuildGradePage(self):
- self.interface.RefreshGuildGradePage()
- def RefreshMobile(self):
- if self.interface:
- self.interface.RefreshMobile()
- def OnMobileAuthority(self):
- self.interface.OnMobileAuthority()
- def OnBlockMode(self, mode):
- self.interface.OnBlockMode(mode)
- def OpenQuestWindow(self, skin, idx):
- if constInfo.INPUT_IGNORE == 1:
- return
- self.interface.OpenQuestWindow(skin, idx)
- def AskGuildName(self):
- guildNameBoard = uiCommon.InputDialog()
- guildNameBoard.SetTitle(localeInfo.GUILD_NAME)
- guildNameBoard.SetAcceptEvent(ui.__mem_func__(self.ConfirmGuildName))
- guildNameBoard.SetCancelEvent(ui.__mem_func__(self.CancelGuildName))
- guildNameBoard.Open()
- self.guildNameBoard = guildNameBoard
- def ConfirmGuildName(self):
- guildName = self.guildNameBoard.GetText()
- if not guildName:
- return
- if net.IsInsultIn(guildName):
- self.PopupMessage(localeInfo.GUILD_CREATE_ERROR_INSULT_NAME)
- return
- net.SendAnswerMakeGuildPacket(guildName)
- self.guildNameBoard.Close()
- self.guildNameBoard = None
- return True
- def CancelGuildName(self):
- self.guildNameBoard.Close()
- self.guildNameBoard = None
- return True
- ## Refine
- def PopupMessage(self, msg):
- self.stream.popupWindow.Close()
- self.stream.popupWindow.Open(msg, 0, localeInfo.UI_OK)
- def OpenRefineDialog(self, targetItemPos, nextGradeItemVnum, cost, prob, type=0):
- self.interface.OpenRefineDialog(targetItemPos, nextGradeItemVnum, cost, prob, type)
- def AppendMaterialToRefineDialog(self, vnum, count):
- self.interface.AppendMaterialToRefineDialog(vnum, count)
- def RunUseSkillEvent(self, slotIndex, coolTime):
- self.interface.OnUseSkill(slotIndex, coolTime)
- def ClearAffects(self):
- self.affectShower.ClearAffects()
- def SetAffect(self, affect):
- self.affectShower.SetAffect(affect)
- def ResetAffect(self, affect):
- self.affectShower.ResetAffect(affect)
- # UNKNOWN_UPDATE
- def BINARY_NEW_AddAffect(self, type, pointIdx, value, duration):
- self.affectShower.BINARY_NEW_AddAffect(type, pointIdx, value, duration)
- if chr.NEW_AFFECT_DRAGON_SOUL_DECK1 == type or chr.NEW_AFFECT_DRAGON_SOUL_DECK2 == type:
- self.interface.DragonSoulActivate(type - chr.NEW_AFFECT_DRAGON_SOUL_DECK1)
- elif chr.NEW_AFFECT_DRAGON_SOUL_QUALIFIED == type:
- self.BINARY_DragonSoulGiveQuilification()
- def BINARY_NEW_RemoveAffect(self, type, pointIdx):
- self.affectShower.BINARY_NEW_RemoveAffect(type, pointIdx)
- if chr.NEW_AFFECT_DRAGON_SOUL_DECK1 == type or chr.NEW_AFFECT_DRAGON_SOUL_DECK2 == type:
- self.interface.DragonSoulDeactivate()
- # END_OF_UNKNOWN_UPDATE
- def ActivateSkillSlot(self, slotIndex):
- if self.interface:
- self.interface.OnActivateSkill(slotIndex)
- def DeactivateSkillSlot(self, slotIndex):
- if self.interface:
- self.interface.OnDeactivateSkill(slotIndex)
- def RefreshEquipment(self):
- if self.interface:
- self.interface.RefreshInventory()
- def RefreshInventory(self):
- if self.interface:
- self.interface.RefreshInventory()
- def RefreshCharacter(self):
- if self.interface:
- self.interface.RefreshCharacter()
- def OnGameOver(self):
- self.CloseTargetBoard()
- self.OpenRestartDialog()
- def OpenRestartDialog(self):
- self.interface.OpenRestartDialog()
- def ChangeCurrentSkill(self, skillSlotNumber):
- self.interface.OnChangeCurrentSkill(skillSlotNumber)
- ## TargetBoard
- #Offline Shop Target
- def SetOfflineShopTargetBoard(self, vid, name):
- self.targetBoard.OpenOffShopName(vid, name)
- def SetPCTargetBoard(self, vid, name):
- self.targetBoard.Open(vid, name)
- if app.IsPressed(app.DIK_LCONTROL):
- if not player.IsSameEmpire(vid):
- return
- if player.IsMainCharacterIndex(vid):
- return
- elif chr.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(vid):
- return
- self.interface.OpenWhisperDialog(name)
- def RefreshTargetBoardByVID(self, vid):
- self.targetBoard.RefreshByVID(vid)
- def RefreshTargetBoardByName(self, name):
- self.targetBoard.RefreshByName(name)
- def __RefreshTargetBoard(self):
- self.targetBoard.Refresh()
- if app.ENABLE_VIEW_TARGET_DECIMAL_HP:
- def SetHPTargetBoard(self, vid, hpPercentage, iMinHP, iMaxHP):
- if vid != self.targetBoard.GetTargetVID():
- self.targetBoard.ResetTargetBoard()
- self.targetBoard.SetEnemyVID(vid)
- self.targetBoard.SetHP(hpPercentage, iMinHP, iMaxHP)
- self.targetBoard.Show()
- else:
- def SetHPTargetBoard(self, vid, hpPercentage):
- if vid != self.targetBoard.GetTargetVID():
- self.targetBoard.ResetTargetBoard()
- self.targetBoard.SetEnemyVID(vid)
- self.targetBoard.SetHP(hpPercentage)
- self.targetBoard.Show()
- def CloseTargetBoardIfDifferent(self, vid):
- if vid != self.targetBoard.GetTargetVID():
- self.targetBoard.Close()
- def CloseTargetBoard(self):
- self.targetBoard.Close()
- ## View Equipment
- def OpenEquipmentDialog(self, vid):
- self.interface.OpenEquipmentDialog(vid)
- def SetEquipmentDialogItem(self, vid, slotIndex, vnum, count):
- self.interface.SetEquipmentDialogItem(vid, slotIndex, vnum, count)
- def SetEquipmentDialogSocket(self, vid, slotIndex, socketIndex, value):
- self.interface.SetEquipmentDialogSocket(vid, slotIndex, socketIndex, value)
- def SetEquipmentDialogAttr(self, vid, slotIndex, attrIndex, type, value):
- self.interface.SetEquipmentDialogAttr(vid, slotIndex, attrIndex, type, value)
- # SHOW_LOCAL_MAP_NAME
- def ShowMapName(self, mapName, x, y):
- if self.mapNameShower:
- self.mapNameShower.ShowMapName(mapName, x, y)
- if self.interface:
- self.interface.SetMapName(mapName)
- # END_OF_SHOW_LOCAL_MAP_NAME
- def BINARY_OpenAtlasWindow(self):
- self.interface.BINARY_OpenAtlasWindow()
- ## Chat
- def OnRecvWhisper(self, mode, name, line):
- if mode == chat.WHISPER_TYPE_GM:
- self.interface.RegisterGameMasterName(name)
- chat.AppendWhisper(mode, name, line)
- self.interface.RecvWhisper(name)
- def OnRecvWhisperSystemMessage(self, mode, name, line):
- chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, line)
- self.interface.RecvWhisper(name)
- def OnRecvWhisperError(self, mode, name, line):
- if localeInfo.WHISPER_ERROR.has_key(mode):
- chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, localeInfo.WHISPER_ERROR[mode](name))
- else:
- chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "Whisper Unknown Error(mode=%d, name=%s)" % (mode, name))
- self.interface.RecvWhisper(name)
- if app.ENABLE_WHISPER_ADMIN_SYSTEM:
- def OnRecvWhisperAdminSystem(self, name, line, color):
- def ExistCustomColor(val):
- return (val > 0)
- def GetColor(type):
- WHISPER_COLOR_MESSAGE = {
- 0: "|cffffffff|H|h",
- 1: "|cffff796a|H|h",
- 2: "|cffb1ff80|H|h",
- 3: "|cff46deff|H|h"
- }
- return WHISPER_COLOR_MESSAGE[type]
- def ResizeTextWithColor(color, text):
- return str("%s%s|h|r" % (GetColor(color), text))
- import datetime
- now = datetime.datetime.now()
- ret = line.replace("#", " ")
- if ExistCustomColor(int(color)):
- ret = ResizeTextWithColor(int(color), ret)
- else:
- ret = ResizeTextWithColor(0, ret)
- text = localeInfo.WHISPER_ADMIN_MESSAGE % (now.strftime("%Y-%m-%d %H:%M"), ret)
- self.interface.RegisterGameMasterName(name)
- chat.AppendToBox(chat.WHISPER_TYPE_CHAT, name, text)
- self.interface.RecvWhisper(name)
- def RecvWhisper(self, name):
- self.interface.RecvWhisper(name)
- # def OnPickMoney(self, money):
- # chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_PICK_MONEY % (money))
- # New Gold Dialog
- def OnPickMoney(self, money):
- self.interface.OnPickMoneyNew(money)
- if app.ENABLE_BATTLE_FIELD:
- def OnPickBattlePoint(self, point):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_PICK_MONEY % (point))
- if app.ENABLE_TITLE_SYSTEM:
- def RecvTitle(self, title, answer):
- nAnswer = answer - 1
- DICT = {0 : localeInfo.RECV_TITLE_ANSWER_0, 1 : localeInfo.RECV_TITLE_ANSWER_1, 2 : localeInfo.RECV_TITLE_ANSWER_2, 3 : localeInfo.RECV_TITLE_ANSWER_3}
- try:
- self.PopupMessage(DICT[nAnswer])
- except KeyError:
- pass
- def OnShopError(self, type):
- try:
- self.PopupMessage(localeInfo.SHOP_ERROR_DICT[type])
- except KeyError:
- self.PopupMessage(localeInfo.SHOP_ERROR_UNKNOWN % (type))
- def OnSafeBoxError(self):
- self.PopupMessage(localeInfo.SAFEBOX_ERROR)
- def OnFishingSuccess(self, isFish, fishName):
- chat.AppendChatWithDelay(chat.CHAT_TYPE_INFO, localeInfo.FISHING_SUCCESS(isFish, fishName), 2000)
- # ADD_FISHING_MESSAGE
- def OnFishingNotifyUnknown(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.FISHING_UNKNOWN)
- def OnFishingWrongPlace(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.FISHING_WRONG_PLACE)
- # END_OF_ADD_FISHING_MESSAGE
- def OnFishingNotify(self, isFish, fishName):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.FISHING_NOTIFY(isFish, fishName))
- def OnFishingFailure(self):
- chat.AppendChatWithDelay(chat.CHAT_TYPE_INFO, localeInfo.FISHING_FAILURE, 2000)
- def OnCannotPickItem(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_CANNOT_PICK_ITEM)
- # MINING
- def OnCannotMining(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_CANNOT_MINING)
- # END_OF_MINING
- def OnCannotUseSkill(self, vid, type):
- if localeInfo.USE_SKILL_ERROR_TAIL_DICT.has_key(type):
- textTail.RegisterInfoTail(vid, localeInfo.USE_SKILL_ERROR_TAIL_DICT[type])
- if localeInfo.USE_SKILL_ERROR_CHAT_DICT.has_key(type):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_SKILL_ERROR_CHAT_DICT[type])
- def OnCannotShotError(self, vid, type):
- textTail.RegisterInfoTail(vid, localeInfo.SHOT_ERROR_TAIL_DICT.get(type, localeInfo.SHOT_ERROR_UNKNOWN % (type)))
- ## PointReset
- def StartPointReset(self):
- self.interface.OpenPointResetDialog()
- ## Shop
- def StartShop(self, vid):
- self.interface.OpenShopDialog(vid)
- def EndShop(self):
- self.interface.CloseShopDialog()
- def RefreshShop(self):
- self.interface.RefreshShopDialog()
- def SetShopSellingPrice(self, Price):
- pass
- ## Exchange
- def StartExchange(self):
- self.interface.StartExchange()
- def EndExchange(self):
- self.interface.EndExchange()
- def RefreshExchange(self):
- self.interface.RefreshExchange()
- ## Party
- def RecvPartyInviteQuestion(self, leaderVID, leaderName):
- partyInviteQuestionDialog = uiCommon.QuestionDialog()
- partyInviteQuestionDialog.SetText(leaderName + localeInfo.PARTY_DO_YOU_JOIN)
- partyInviteQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerPartyInvite(arg))
- partyInviteQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerPartyInvite(arg))
- partyInviteQuestionDialog.Open()
- partyInviteQuestionDialog.partyLeaderVID = leaderVID
- self.partyInviteQuestionDialog = partyInviteQuestionDialog
- def AnswerPartyInvite(self, answer):
- if not self.partyInviteQuestionDialog:
- return
- partyLeaderVID = self.partyInviteQuestionDialog.partyLeaderVID
- distance = player.GetCharacterDistance(partyLeaderVID)
- if distance < 0.0 or distance > 5000:
- answer = False
- net.SendPartyInviteAnswerPacket(partyLeaderVID, answer)
- self.partyInviteQuestionDialog.Close()
- self.partyInviteQuestionDialog = None
- def AddPartyMember(self, pid, name):
- self.interface.AddPartyMember(pid, name)
- def UpdatePartyMemberInfo(self, pid):
- self.interface.UpdatePartyMemberInfo(pid)
- def RemovePartyMember(self, pid):
- self.interface.RemovePartyMember(pid)
- self.__RefreshTargetBoard()
- def LinkPartyMember(self, pid, vid):
- self.interface.LinkPartyMember(pid, vid)
- def UnlinkPartyMember(self, pid):
- self.interface.UnlinkPartyMember(pid)
- def UnlinkAllPartyMember(self):
- self.interface.UnlinkAllPartyMember()
- def ExitParty(self):
- self.interface.ExitParty()
- self.RefreshTargetBoardByVID(self.targetBoard.GetTargetVID())
- def ChangePartyParameter(self, distributionMode):
- self.interface.ChangePartyParameter(distributionMode)
- ## Messenger
- def OnMessengerAddFriendQuestion(self, name):
- messengerAddFriendQuestion = uiCommon.QuestionDialog2()
- messengerAddFriendQuestion.SetText1(localeInfo.MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND_1 % (name))
- messengerAddFriendQuestion.SetText2(localeInfo.MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND_2)
- messengerAddFriendQuestion.SetAcceptEvent(ui.__mem_func__(self.OnAcceptAddFriend))
- messengerAddFriendQuestion.SetCancelEvent(ui.__mem_func__(self.OnDenyAddFriend))
- messengerAddFriendQuestion.Open()
- messengerAddFriendQuestion.name = name
- self.messengerAddFriendQuestion = messengerAddFriendQuestion
- def OnAcceptAddFriend(self):
- name = self.messengerAddFriendQuestion.name
- net.SendChatPacket("/messenger_auth y " + name)
- self.OnCloseAddFriendQuestionDialog()
- return True
- def OnDenyAddFriend(self):
- name = self.messengerAddFriendQuestion.name
- net.SendChatPacket("/messenger_auth n " + name)
- self.OnCloseAddFriendQuestionDialog()
- return True
- def OnCloseAddFriendQuestionDialog(self):
- self.messengerAddFriendQuestion.Close()
- self.messengerAddFriendQuestion = None
- return True
- ## SafeBox
- def OpenSafeboxWindow(self, size):
- self.interface.OpenSafeboxWindow(size)
- def RefreshSafebox(self):
- self.interface.RefreshSafebox()
- def RefreshSafeboxMoney(self):
- self.interface.RefreshSafeboxMoney()
- # ITEM_MALL
- def OpenMallWindow(self, size):
- self.interface.OpenMallWindow(size)
- def RefreshMall(self):
- self.interface.RefreshMall()
- # END_OF_ITEM_MALL
- ## Guild
- def RecvGuildInviteQuestion(self, guildID, guildName):
- guildInviteQuestionDialog = uiCommon.QuestionDialog()
- guildInviteQuestionDialog.SetText(guildName + localeInfo.GUILD_DO_YOU_JOIN)
- guildInviteQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerGuildInvite(arg))
- guildInviteQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerGuildInvite(arg))
- guildInviteQuestionDialog.Open()
- guildInviteQuestionDialog.guildID = guildID
- self.guildInviteQuestionDialog = guildInviteQuestionDialog
- def AnswerGuildInvite(self, answer):
- if not self.guildInviteQuestionDialog:
- return
- guildLeaderVID = self.guildInviteQuestionDialog.guildID
- net.SendGuildInviteAnswerPacket(guildLeaderVID, answer)
- self.guildInviteQuestionDialog.Close()
- self.guildInviteQuestionDialog = None
- def DeleteGuild(self):
- self.interface.DeleteGuild()
- ## Clock
- def ShowClock(self, second):
- self.interface.ShowClock(second)
- def HideClock(self):
- self.interface.HideClock()
- ## Emotion
- def BINARY_ActEmotion(self, emotionIndex):
- if self.interface.wndCharacter:
- self.interface.wndCharacter.ActEmotion(emotionIndex)
- ###############################################################################################
- ###############################################################################################
- ## Keyboard Functions
- def CheckFocus(self):
- if False == self.IsFocus():
- if True == self.interface.IsOpenChat():
- self.interface.ToggleChat()
- self.SetFocus()
- def SaveScreen(self):
- print "save screen"
- # SCREENSHOT_CWDSAVE
- if SCREENSHOT_CWDSAVE:
- if not os.path.exists(os.getcwd()+os.sep+"screenshot"):
- os.mkdir(os.getcwd()+os.sep+"screenshot")
- (succeeded, name) = grp.SaveScreenShotToPath(os.getcwd()+os.sep+"screenshot"+os.sep)
- elif SCREENSHOT_DIR:
- (succeeded, name) = grp.SaveScreenShot(SCREENSHOT_DIR)
- else:
- (succeeded, name) = grp.SaveScreenShot()
- # END_OF_SCREENSHOT_CWDSAVE
- if succeeded:
- pass
- """
- chat.AppendChat(chat.CHAT_TYPE_INFO, name + localeInfo.SCREENSHOT_SAVE1)
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SCREENSHOT_SAVE2)
- """
- else:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SCREENSHOT_SAVE_FAILURE)
- def ShowConsole(self):
- if debugInfo.IsDebugMode() or True == self.consoleEnable:
- player.EndKeyWalkingImmediately()
- self.console.OpenWindow()
- def ShowName(self):
- self.ShowNameFlag = True
- self.playerGauge.EnableShowAlways()
- player.SetQuickPage(self.quickSlotPageIndex+1)
- # ADD_ALWAYS_SHOW_NAME
- def __IsShowName(self):
- if systemSetting.IsAlwaysShowName():
- return True
- if self.ShowNameFlag:
- return True
- return False
- # END_OF_ADD_ALWAYS_SHOW_NAME
- def HideName(self):
- self.ShowNameFlag = False
- self.playerGauge.DisableShowAlways()
- player.SetQuickPage(self.quickSlotPageIndex)
- def ShowMouseImage(self):
- self.interface.ShowMouseImage()
- def HideMouseImage(self):
- self.interface.HideMouseImage()
- def StartAttack(self):
- player.SetAttackKeyState(True)
- def EndAttack(self):
- player.SetAttackKeyState(False)
- def MoveUp(self):
- player.SetSingleDIKKeyState(app.DIK_UP, True)
- def MoveDown(self):
- player.SetSingleDIKKeyState(app.DIK_DOWN, True)
- def MoveLeft(self):
- player.SetSingleDIKKeyState(app.DIK_LEFT, True)
- def MoveRight(self):
- player.SetSingleDIKKeyState(app.DIK_RIGHT, True)
- def StopUp(self):
- player.SetSingleDIKKeyState(app.DIK_UP, False)
- def StopDown(self):
- player.SetSingleDIKKeyState(app.DIK_DOWN, False)
- def StopLeft(self):
- player.SetSingleDIKKeyState(app.DIK_LEFT, False)
- def StopRight(self):
- player.SetSingleDIKKeyState(app.DIK_RIGHT, False)
- def PickUpItem(self):
- player.PickCloseItemVector()
- # player.PickCloseItem()
- ###############################################################################################
- ###############################################################################################
- ## Event Handler
- def OnKeyDown(self, key):
- if self.interface.wndWeb and self.interface.wndWeb.IsShow():
- return
- if key == app.DIK_ESC:
- self.RequestDropItem(False)
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
- try:
- self.onPressKeyDict[key]()
- except KeyError:
- pass
- except:
- raise
- return True
- def OnKeyUp(self, key):
- try:
- self.onClickKeyDict[key]()
- except KeyError:
- pass
- except:
- raise
- return TRUE
- def OnMouseLeftButtonDown(self):
- if self.interface.BUILD_OnMouseLeftButtonDown():
- return
- if mouseModule.mouseController.isAttached():
- self.CheckFocus()
- else:
- hyperlink = ui.GetHyperlink()
- if hyperlink:
- return
- else:
- self.CheckFocus()
- player.SetMouseState(player.MBT_LEFT, player.MBS_PRESS);
- return True
- def OnMouseLeftButtonUp(self):
- if self.interface.BUILD_OnMouseLeftButtonUp():
- return
- if mouseModule.mouseController.isAttached():
- attachedType = mouseModule.mouseController.GetAttachedType()
- attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
- attachedItemSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
- ## QuickSlot
- if player.SLOT_TYPE_QUICK_SLOT == attachedType:
- player.RequestDeleteGlobalQuickSlot(attachedItemSlotPos)
- ## Inventory
- elif player.SLOT_TYPE_INVENTORY == attachedType:
- if player.ITEM_MONEY == attachedItemIndex:
- self.__PutMoney(attachedType, attachedItemCount, self.PickingCharacterIndex)
- else:
- self.__PutItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, self.PickingCharacterIndex)
- ## DragonSoul
- elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType:
- self.__PutItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, self.PickingCharacterIndex)
- if app.ENABLE_SPECIAL_STORAGE:
- if player.SLOT_TYPE_UPGRADE_INVENTORY == attachedType or\
- player.SLOT_TYPE_BOOK_INVENTORY == attachedType or\
- player.SLOT_TYPE_STONE_INVENTORY == attachedType or\
- player.SLOT_TYPE_CHEST_INVENTORY == attachedType or\
- player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType:
- self.__PutItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, self.PickingCharacterIndex)
- mouseModule.mouseController.DeattachObject()
- else:
- hyperlink = ui.GetHyperlink()
- if hyperlink:
- if app.IsPressed(app.DIK_LALT):
- link = chat.GetLinkFromHyperlink(hyperlink)
- ime.PasteString(link)
- else:
- self.interface.MakeHyperlinkTooltip(hyperlink)
- return
- else:
- player.SetMouseState(player.MBT_LEFT, player.MBS_CLICK)
- #player.EndMouseWalking()
- return True
- def __PutItem(self, attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, dstChrID):
- if app.ENABLE_SPECIAL_STORAGE:
- if player.SLOT_TYPE_INVENTORY == attachedType or\
- player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType or\
- player.SLOT_TYPE_UPGRADE_INVENTORY == attachedType or\
- player.SLOT_TYPE_BOOK_INVENTORY == attachedType or\
- player.SLOT_TYPE_STONE_INVENTORY == attachedType or\
- player.SLOT_TYPE_CHEST_INVENTORY == attachedType:
- attachedInvenType = player.SlotTypeToInvenType(attachedType)
- if True == chr.HasInstance(self.PickingCharacterIndex) and player.GetMainCharacterIndex() != dstChrID:
- if player.IsEquipmentSlot(attachedItemSlotPos) and\
- player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedType and\
- player.SLOT_TYPE_UPGRADE_INVENTORY != attachedType and\
- player.SLOT_TYPE_BOOK_INVENTORY != attachedType and\
- player.SLOT_TYPE_STONE_INVENTORY != attachedType and\
- player.SLOT_TYPE_CHEST_INVENTORY != attachedType:
- self.stream.popupWindow.Close()
- self.stream.popupWindow.Open(localeInfo.EXCHANGE_FAILURE_EQUIP_ITEM, 0, localeInfo.UI_OK)
- else:
- if chr.IsNPC(dstChrID):
- if app.ENABLE_REFINE_RENEWAL:
- constInfo.AUTO_REFINE_TYPE = 2
- constInfo.AUTO_REFINE_DATA["NPC"][0] = dstChrID
- constInfo.AUTO_REFINE_DATA["NPC"][1] = attachedInvenType
- constInfo.AUTO_REFINE_DATA["NPC"][2] = attachedItemSlotPos
- constInfo.AUTO_REFINE_DATA["NPC"][3] = attachedItemCount
- net.SendGiveItemPacket(dstChrID, attachedInvenType, attachedItemSlotPos, attachedItemCount)
- else:
- net.SendExchangeStartPacket(dstChrID)
- net.SendExchangeItemAddPacket(attachedInvenType, attachedItemSlotPos, 0)
- else:
- self.__DropItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount)
- else:
- if player.SLOT_TYPE_INVENTORY == attachedType or player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType:
- attachedInvenType = player.SlotTypeToInvenType(attachedType)
- if True == chr.HasInstance(self.PickingCharacterIndex) and player.GetMainCharacterIndex() != dstChrID:
- if player.IsEquipmentSlot(attachedItemSlotPos) and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedType:
- self.stream.popupWindow.Close()
- self.stream.popupWindow.Open(localeInfo.EXCHANGE_FAILURE_EQUIP_ITEM, 0, localeInfo.UI_OK)
- else:
- if chr.IsNPC(dstChrID):
- if app.ENABLE_REFINE_RENEWAL:
- constInfo.AUTO_REFINE_TYPE = 2
- constInfo.AUTO_REFINE_DATA["NPC"][0] = dstChrID
- constInfo.AUTO_REFINE_DATA["NPC"][1] = attachedInvenType
- constInfo.AUTO_REFINE_DATA["NPC"][2] = attachedItemSlotPos
- constInfo.AUTO_REFINE_DATA["NPC"][3] = attachedItemCount
- net.SendGiveItemPacket(dstChrID, attachedInvenType, attachedItemSlotPos, attachedItemCount)
- else:
- net.SendExchangeStartPacket(dstChrID)
- net.SendExchangeItemAddPacket(attachedInvenType, attachedItemSlotPos, 0)
- else:
- self.__DropItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount)
- def __PutMoney(self, attachedType, attachedMoney, dstChrID):
- if True == chr.HasInstance(dstChrID) and player.GetMainCharacterIndex() != dstChrID:
- net.SendExchangeStartPacket(dstChrID)
- net.SendExchangeElkAddPacket(attachedMoney)
- else:
- self.__DropMoney(attachedType, attachedMoney)
- def __DropMoney(self, attachedType, attachedMoney):
- # PRIVATESHOP_DISABLE_ITEM_DROP - 개인상점 열고 있는 동안 아이템 버림 방지
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
- return
- # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- if attachedMoney>=1000:
- self.stream.popupWindow.Close()
- self.stream.popupWindow.Open(localeInfo.DROP_MONEY_FAILURE_1000_OVER, 0, localeInfo.UI_OK)
- return
- itemDropQuestionDialog = uiCommon.QuestionDialog()
- itemDropQuestionDialog.SetText(localeInfo.DO_YOU_DROP_MONEY % (attachedMoney))
- itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
- itemDropQuestionDialog.SetDestroyEvent(lambda arg=TRUE: self.RequestDestroyItem(arg))
- itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg))
- itemDropQuestionDialog.Open()
- itemDropQuestionDialog.dropType = attachedType
- itemDropQuestionDialog.dropCount = attachedMoney
- itemDropQuestionDialog.dropNumber = player.ITEM_MONEY
- self.itemDropQuestionDialog = itemDropQuestionDialog
- def __DropItem(self, attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount):
- #snd.PlaySound PRIVATESHOP_DISABLE_ITEM_DROP - 개인상점 열고 있는 동안 아이템 버림 방지
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
- return
- #snd.PlaySound END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- if player.SLOT_TYPE_INVENTORY == attachedType and player.IsEquipmentSlot(attachedItemSlotPos):
- self.stream.popupWindow.Close()
- self.stream.popupWindow.Open(localeInfo.DROP_ITEM_FAILURE_EQUIP_ITEM, 0, localeInfo.UI_OK)
- else:
- if player.SLOT_TYPE_INVENTORY == attachedType:
- dropItemIndex = player.GetItemIndex(attachedItemSlotPos)
- item.SelectItem(dropItemIndex)
- dropItemName = item.GetItemName()
- #snd.PlaySound#snd.PlaySound Question Text
- questionText = localeInfo.HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, attachedItemCount)
- #snd.PlaySound#snd.PlaySound Dialog
- itemDropQuestionDialog = uiCommon.QuestionDropDialog()
- itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
- itemDropQuestionDialog.SetDestroyEvent(lambda arg=TRUE: self.RequestDestroyItem(arg))
- itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItemStorage(arg))
- itemDropQuestionDialog.SetItemSlot(attachedItemSlotPos)
- itemDropQuestionDialog.dropType = attachedType
- itemDropQuestionDialog.dropNumber = attachedItemSlotPos
- itemDropQuestionDialog.dropCount = attachedItemCount
- itemDropQuestionDialog.Open()
- self.itemDropQuestionDialog = itemDropQuestionDialog
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
- elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType:
- dropItemIndex = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, attachedItemSlotPos)
- item.SelectItem(dropItemIndex)
- dropItemName = item.GetItemName()
- #snd.PlaySound#snd.PlaySound Question Text
- questionText = localeInfo.HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, attachedItemCount)
- #snd.PlaySound#snd.PlaySound Dialog
- itemDropQuestionDialog = uiCommon.QuestionDialog()
- itemDropQuestionDialog.SetText(questionText)
- itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
- itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg))
- itemDropQuestionDialog.Open()
- itemDropQuestionDialog.dropType = attachedType
- itemDropQuestionDialog.dropNumber = attachedItemSlotPos
- itemDropQuestionDialog.dropCount = attachedItemCount
- self.itemDropQuestionDialog = itemDropQuestionDialog
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
- #
- if app.ENABLE_SPECIAL_STORAGE:
- if player.SLOT_TYPE_UPGRADE_INVENTORY == attachedType or\
- player.SLOT_TYPE_BOOK_INVENTORY == attachedType or\
- player.SLOT_TYPE_STONE_INVENTORY == attachedType or\
- player.SLOT_TYPE_CHEST_INVENTORY == attachedType:
- dropItemIndex = player.GetItemIndex(player.SlotTypeToInvenType(attachedType), attachedItemSlotPos)
- item.SelectItem(dropItemIndex)
- dropItemName = item.GetItemName()
- ## Question Text
- questionText = localeInfo.HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, attachedItemCount)
- ## Dialog
- itemDropQuestionDialog = uiCommon.QuestionDialog()
- itemDropQuestionDialog.SetText(questionText)
- itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
- itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg))
- itemDropQuestionDialog.Open()
- itemDropQuestionDialog.dropType = attachedType
- itemDropQuestionDialog.dropNumber = attachedItemSlotPos
- itemDropQuestionDialog.dropCount = attachedItemCount
- self.itemDropQuestionDialog = itemDropQuestionDialog
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
- def RequestDropItem(self, answer):
- if not self.itemDropQuestionDialog:
- return
- if answer:
- dropType = self.itemDropQuestionDialog.dropType
- dropCount = self.itemDropQuestionDialog.dropCount
- dropNumber = self.itemDropQuestionDialog.dropNumber
- if player.SLOT_TYPE_INVENTORY == dropType:
- if dropNumber == player.ITEM_MONEY:
- net.SendGoldDropPacketNew(dropCount)
- snd.PlaySound("sound/ui/money.wav")
- else:
- # PRIVATESHOP_DISABLE_ITEM_DROP
- self.__SendDropItemPacket(dropNumber, dropCount)
- # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == dropType:
- # PRIVATESHOP_DISABLE_ITEM_DROP
- self.__SendDropItemPacket(dropNumber, dropCount, player.DRAGON_SOUL_INVENTORY)
- # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- if app.ENABLE_SPECIAL_STORAGE:
- if player.SLOT_TYPE_UPGRADE_INVENTORY == dropType or\
- player.SLOT_TYPE_BOOK_INVENTORY == dropType or\
- player.SLOT_TYPE_STONE_INVENTORY == dropType or\
- player.SLOT_TYPE_CHEST_INVENTORY == dropType:
- self.__SendDropItemPacket(dropNumber, dropCount, player.SlotTypeToInvenType(dropType))
- self.itemDropQuestionDialog.Close()
- self.itemDropQuestionDialog = None
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
- def RequestDropItemStorage(self, answer):
- if not self.itemDropQuestionDialog:
- return
- if answer:
- dropType = self.itemDropQuestionDialog.dropType
- dropCount = self.itemDropQuestionDialog.dropCount
- dropNumber = self.itemDropQuestionDialog.dropNumber
- if player.SLOT_TYPE_INVENTORY == dropType:
- if dropNumber == player.ITEM_MONEY:
- net.SendGoldDropPacketNew(dropCount)
- snd.PlaySound("sound/ui/money.wav")
- else:
- # PRIVATESHOP_DISABLE_ITEM_DROP
- self.__SendDropItemPacket(dropNumber, dropCount)
- # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == dropType:
- # PRIVATESHOP_DISABLE_ITEM_DROP
- self.__SendDropItemPacket(dropNumber, dropCount, player.DRAGON_SOUL_INVENTORY)
- # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- if app.ENABLE_SPECIAL_STORAGE:
- if player.SLOT_TYPE_UPGRADE_INVENTORY == dropType or\
- player.SLOT_TYPE_BOOK_INVENTORY == dropType or\
- player.SLOT_TYPE_STONE_INVENTORY == dropType or\
- player.SLOT_TYPE_CHEST_INVENTORY == dropType:
- self.__SendDropItemPacket(dropNumber, dropCount, player.SlotTypeToInvenType(dropType))
- self.itemDropQuestionDialog.Close()
- self.itemDropQuestionDialog = None
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
- def RequestDestroyItem(self, answer):
- if not self.itemDropQuestionDialog:
- return
- if answer:
- dropType = self.itemDropQuestionDialog.dropType
- dropNumber = self.itemDropQuestionDialog.dropNumber
- if player.SLOT_TYPE_INVENTORY == dropType:
- if dropNumber == player.ITEM_MONEY:
- return
- else:
- self.__SendDestroyItemPacket(dropNumber)
- self.itemDropQuestionDialog.Close()
- self.itemDropQuestionDialog = None
- constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
- # PRIVATESHOP_DISABLE_ITEM_DROP
- def __SendDropItemPacket(self, itemVNum, itemCount, itemInvenType = player.INVENTORY):
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
- return
- net.SendItemDropPacketNew(itemInvenType, itemVNum, itemCount)
- # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
- def __SendDestroyItemPacket(self, itemVNum, itemInvenType = player.INVENTORY):
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
- return
- net.SendItemDestroyPacket(itemVNum)
- def OnMouseRightButtonDown(self):
- self.CheckFocus()
- if True == mouseModule.mouseController.isAttached():
- mouseModule.mouseController.DeattachObject()
- else:
- player.SetMouseState(player.MBT_RIGHT, player.MBS_PRESS)
- return True
- def OnMouseRightButtonUp(self):
- if True == mouseModule.mouseController.isAttached():
- return True
- player.SetMouseState(player.MBT_RIGHT, player.MBS_CLICK)
- return True
- def OnMouseMiddleButtonDown(self):
- player.SetMouseMiddleButtonState(player.MBS_PRESS)
- def OnMouseMiddleButtonUp(self):
- player.SetMouseMiddleButtonState(player.MBS_CLICK)
- def OnUpdate(self):
- app.UpdateGame()
- if self.mapNameShower.IsShow():
- self.mapNameShower.Update()
- if self.isShowDebugInfo:
- self.UpdateDebugInfo()
- if self.enableXMasBoom:
- self.__XMasBoom_Update()
- self.interface.BUILD_OnUpdate()
- def UpdateDebugInfo(self):
- #
- # 캐릭터 좌표 및 FPS 출력
- (x, y, z) = player.GetMainCharacterPosition()
- nUpdateTime = app.GetUpdateTime()
- nUpdateFPS = app.GetUpdateFPS()
- nRenderFPS = app.GetRenderFPS()
- nFaceCount = app.GetFaceCount()
- fFaceSpeed = app.GetFaceSpeed()
- nST=background.GetRenderShadowTime()
- (fAveRT, nCurRT) = app.GetRenderTime()
- (iNum, fFogStart, fFogEnd, fFarCilp) = background.GetDistanceSetInfo()
- (iPatch, iSplat, fSplatRatio, sTextureNum) = background.GetRenderedSplatNum()
- if iPatch == 0:
- iPatch = 1
- #(dwRenderedThing, dwRenderedCRC) = background.GetRenderedGraphicThingInstanceNum()
- self.PrintCoord.SetText("Coordinate: %.2f %.2f %.2f ATM: %d" % (x, y, z, app.GetAvailableTextureMemory()/(1024*1024)))
- xMouse, yMouse = wndMgr.GetMousePosition()
- self.PrintMousePos.SetText("MousePosition: %d %d" % (xMouse, yMouse))
- self.FrameRate.SetText("UFPS: %3d UT: %3d FS %.2f" % (nUpdateFPS, nUpdateTime, fFaceSpeed))
- if fAveRT>1.0:
- self.Pitch.SetText("RFPS: %3d RT:%.2f(%3d) FC: %d(%.2f) " % (nRenderFPS, fAveRT, nCurRT, nFaceCount, nFaceCount/fAveRT))
- self.Splat.SetText("PATCH: %d SPLAT: %d BAD(%.2f)" % (iPatch, iSplat, fSplatRatio))
- #self.Pitch.SetText("Pitch: %.2f" % (app.GetCameraPitch())
- #self.TextureNum.SetText("TN : %s" % (sTextureNum))
- #self.ObjectNum.SetText("GTI : %d, CRC : %d" % (dwRenderedThing, dwRenderedCRC))
- self.ViewDistance.SetText("Num : %d, FS : %f, FE : %f, FC : %f" % (iNum, fFogStart, fFogEnd, fFarCilp))
- def OnRender(self):
- app.RenderGame()
- if self.console.Console.collision:
- background.RenderCollision()
- chr.RenderCollision()
- (x, y) = app.GetCursorPosition()
- ########################
- # Picking
- ########################
- textTail.UpdateAllTextTail()
- if True == wndMgr.IsPickedWindow(self.hWnd):
- self.PickingCharacterIndex = chr.Pick()
- if -1 != self.PickingCharacterIndex:
- textTail.ShowCharacterTextTail(self.PickingCharacterIndex)
- if 0 != self.targetBoard.GetTargetVID():
- textTail.ShowCharacterTextTail(self.targetBoard.GetTargetVID())
- # ADD_ALWAYS_SHOW_NAME
- if not self.__IsShowName():
- self.PickingItemIndex = item.Pick()
- if -1 != self.PickingItemIndex:
- textTail.ShowItemTextTail(self.PickingItemIndex)
- # END_OF_ADD_ALWAYS_SHOW_NAME
- ## Show all name in the range
- # ADD_ALWAYS_SHOW_NAME
- if self.__IsShowName():
- textTail.ShowAllTextTail()
- self.PickingItemIndex = textTail.Pick(x, y)
- if app.ENABLE_SHOPNAMES_RANGE:
- if systemSetting.IsShowSalesText():
- uiPrivateShopBuilder.UpdateADBoard()
- # END_OF_ADD_ALWAYS_SHOW_NAME
- textTail.UpdateShowingTextTail()
- textTail.ArrangeTextTail()
- if -1 != self.PickingItemIndex:
- textTail.SelectItemName(self.PickingItemIndex)
- grp.PopState()
- grp.SetInterfaceRenderState()
- textTail.Render()
- textTail.HideAllTextTail()
- def OnPressEscapeKey(self):
- if app.TARGET == app.GetCursor():
- app.SetCursor(app.NORMAL)
- elif True == mouseModule.mouseController.isAttached():
- mouseModule.mouseController.DeattachObject()
- else:
- self.itemDropQuestionDialog = None
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
- self.interface.OpenSystemDialog()
- return True
- def OnIMEReturn(self):
- if app.IsPressed(app.DIK_LSHIFT):
- self.interface.OpenWhisperDialogWithoutTarget()
- else:
- self.interface.ToggleChat()
- return True
- def OnPressExitKey(self):
- self.interface.ToggleSystemDialog()
- return True
- ## BINARY CALLBACK
- ######################################################################################
- # WEDDING
- def BINARY_LoverInfo(self, name, lovePoint):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.OnAddLover(name, lovePoint)
- if self.affectShower:
- self.affectShower.SetLoverInfo(name, lovePoint)
- def BINARY_UpdateLovePoint(self, lovePoint):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.OnUpdateLovePoint(lovePoint)
- if self.affectShower:
- self.affectShower.OnUpdateLovePoint(lovePoint)
- # END_OF_WEDDING
- # EXCHANGE
- if app.WJ_ENABLE_TRADABLE_ICON:
- def BINARY_AddItemToExchange(self, inven_type, inven_pos, display_pos):
- if inven_type == player.INVENTORY:
- self.interface.CantTradableItemExchange(display_pos, inven_pos)
- # END_OF_EXCHANGE
- if app.ENABLE_SEND_TARGET_INFO:
- def BINARY_AddTargetMonsterDropInfo(self, raceNum, itemVnum, itemCount):
- if not raceNum in constInfo.MONSTER_INFO_DATA:
- constInfo.MONSTER_INFO_DATA.update({raceNum : {}})
- constInfo.MONSTER_INFO_DATA[raceNum].update({"items" : []})
- curList = constInfo.MONSTER_INFO_DATA[raceNum]["items"]
- isUpgradeable = False
- isMetin = False
- item.SelectItem(itemVnum)
- if item.GetItemType() == item.ITEM_TYPE_WEAPON or item.GetItemType() == item.ITEM_TYPE_ARMOR:
- isUpgradeable = True
- elif item.GetItemType() == item.ITEM_TYPE_METIN:
- isMetin = True
- for curItem in curList:
- if isUpgradeable:
- if curItem.has_key("vnum_list") and curItem["vnum_list"][0] / 10 * 10 == itemVnum / 10 * 10:
- if not (itemVnum in curItem["vnum_list"]):
- curItem["vnum_list"].append(itemVnum)
- return
- elif isMetin:
- if curItem.has_key("vnum_list"):
- baseVnum = curItem["vnum_list"][0]
- if curItem.has_key("vnum_list") and (baseVnum - baseVnum%1000) == (itemVnum - itemVnum%1000):
- if not (itemVnum in curItem["vnum_list"]):
- curItem["vnum_list"].append(itemVnum)
- return
- else:
- if curItem.has_key("vnum") and curItem["vnum"] == itemVnum and curItem["count"] == itemCount:
- return
- if isUpgradeable or isMetin:
- curList.append({"vnum_list":[itemVnum], "count":itemCount})
- else:
- curList.append({"vnum":itemVnum, "count":itemCount})
- def BINARY_RefreshTargetMonsterDropInfo(self, raceNum):
- self.targetBoard.RefreshMonsterInfoBoard()
- # QUEST_CONFIRM
- def BINARY_OnQuestConfirm(self, msg, timeout, pid):
- confirmDialog = uiCommon.QuestionDialogWithTimeLimit()
- confirmDialog.Open(msg, timeout)
- confirmDialog.SetAcceptEvent(lambda answer=True, pid=pid: net.SendQuestConfirmPacket(answer, pid) or self.confirmDialog.Hide())
- confirmDialog.SetCancelEvent(lambda answer=False, pid=pid: net.SendQuestConfirmPacket(answer, pid) or self.confirmDialog.Hide())
- self.confirmDialog = confirmDialog
- # END_OF_QUEST_CONFIRM
- # GIFT command
- def Gift_Show(self):
- self.interface.ShowGift()
- # CUBE
- def BINARY_Cube_Open(self, npcVNUM):
- self.currentCubeNPC = npcVNUM
- self.interface.OpenCubeWindow()
- if npcVNUM not in self.cubeInformation:
- net.SendChatPacket("/cube r_info")
- else:
- cubeInfoList = self.cubeInformation[npcVNUM]
- i = 0
- for cubeInfo in cubeInfoList:
- self.interface.wndCube.AddCubeResultItem(cubeInfo["vnum"], cubeInfo["count"])
- j = 0
- for materialList in cubeInfo["materialList"]:
- for materialInfo in materialList:
- itemVnum, itemCount = materialInfo
- self.interface.wndCube.AddMaterialInfo(i, j, itemVnum, itemCount)
- j = j + 1
- i = i + 1
- self.interface.wndCube.Refresh()
- def BINARY_Cube_Close(self):
- self.interface.CloseCubeWindow()
- # 제작에 필요한 골드, 예상되는 완성품의 VNUM과 개수 정보 update
- def BINARY_Cube_UpdateInfo(self, gold, itemVnum, count):
- self.interface.UpdateCubeInfo(gold, itemVnum, count)
- def BINARY_Cube_Succeed(self, itemVnum, count):
- print "큐브 제작 성공"
- self.interface.SucceedCubeWork(itemVnum, count)
- pass
- def BINARY_Cube_Failed(self):
- print "큐브 제작 실패"
- self.interface.FailedCubeWork()
- pass
- def BINARY_Cube_ResultList(self, npcVNUM, listText):
- # ResultList Text Format : 72723,1/72725,1/72730.1/50001,5 이런식으로 "/" 문자로 구분된 리스트를 줌
- #print listText
- if npcVNUM == 0:
- npcVNUM = self.currentCubeNPC
- self.cubeInformation[npcVNUM] = []
- try:
- for eachInfoText in listText.split("/"):
- eachInfo = eachInfoText.split(",")
- itemVnum = int(eachInfo[0])
- itemCount = int(eachInfo[1])
- self.cubeInformation[npcVNUM].append({"vnum": itemVnum, "count": itemCount})
- self.interface.wndCube.AddCubeResultItem(itemVnum, itemCount)
- resultCount = len(self.cubeInformation[npcVNUM])
- requestCount = 7
- modCount = resultCount % requestCount
- splitCount = resultCount / requestCount
- for i in xrange(splitCount):
- #print("/cube r_info %d %d" % (i * requestCount, requestCount))
- net.SendChatPacket("/cube r_info %d %d" % (i * requestCount, requestCount))
- if 0 < modCount:
- #print("/cube r_info %d %d" % (splitCount * requestCount, modCount))
- net.SendChatPacket("/cube r_info %d %d" % (splitCount * requestCount, modCount))
- except RuntimeError, msg:
- dbg.TraceError(msg)
- return 0
- pass
- def BINARY_Cube_MaterialInfo(self, startIndex, listCount, listText):
- # Material Text Format : 125,1|126,2|127,2|123,5&555,5&555,4/120000
- try:
- #print listText
- if 3 > len(listText):
- dbg.TraceError("Wrong Cube Material Infomation")
- return 0
- eachResultList = listText.split("@")
- cubeInfo = self.cubeInformation[self.currentCubeNPC]
- itemIndex = 0
- for eachResultText in eachResultList:
- cubeInfo[startIndex + itemIndex]["materialList"] = [[], [], [], [], []]
- materialList = cubeInfo[startIndex + itemIndex]["materialList"]
- gold = 0
- splitResult = eachResultText.split("/")
- if 1 < len(splitResult):
- gold = int(splitResult[1])
- #print "splitResult : ", splitResult
- eachMaterialList = splitResult[0].split("&")
- i = 0
- for eachMaterialText in eachMaterialList:
- complicatedList = eachMaterialText.split("|")
- if 0 < len(complicatedList):
- for complicatedText in complicatedList:
- (itemVnum, itemCount) = complicatedText.split(",")
- itemVnum = int(itemVnum)
- itemCount = int(itemCount)
- self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)
- materialList[i].append((itemVnum, itemCount))
- else:
- itemVnum, itemCount = eachMaterialText.split(",")
- itemVnum = int(itemVnum)
- itemCount = int(itemCount)
- self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)
- materialList[i].append((itemVnum, itemCount))
- i = i + 1
- itemIndex = itemIndex + 1
- self.interface.wndCube.Refresh()
- except RuntimeError, msg:
- dbg.TraceError(msg)
- return 0
- pass
- # END_OF_CUBE
- def BINARY_Highlight_Item(self, inven_type, inven_pos):
- # @fixme003 (+if self.interface:)
- if self.interface:
- self.interface.Highligt_Item(inven_type, inven_pos)
- def __Cofres_Search(self,vnums,counts):
- self.interface.ItemsCofres(vnums,counts)
- def __Cofres_Search_Refresh(self):
- self.interface.ItemsCofresRefresh()
- def __Cofres_Search_Refresh_Open(self):
- self.interface.ItemsCofreRefreshOpen()
- def __CofresShow(self):
- self.interface.CofresShow()
- def __OxEventShow(self):
- self.eventWindowLogin.Show()
- def BINARY_DragonSoulGiveQuilification(self):
- self.interface.DragonSoulGiveQuilification()
- def BINARY_DragonSoulRefineWindow_Open(self):
- self.interface.OpenDragonSoulRefineWindow()
- def BINARY_DragonSoulRefineWindow_RefineFail(self, reason, inven_type, inven_pos):
- self.interface.FailDragonSoulRefine(reason, inven_type, inven_pos)
- def BINARY_DragonSoulRefineWindow_RefineSucceed(self, inven_type, inven_pos):
- self.interface.SucceedDragonSoulRefine(inven_type, inven_pos)
- # END of DRAGON SOUL REFINE WINDOW
- def BINARY_SetBigMessage(self, message):
- self.interface.bigBoard.SetTip(message)
- def BINARY_SetTipMessage(self, message):
- self.interface.tipBoard.SetTip(message)
- if app.ENABLE_DUNGEON_INFO_SYSTEM:
- def DungeonInfo(self, questindex):
- import constInfo
- constInfo.dungeonData["quest_index"] = questindex
- def CleanDungeonInfo(self):
- import constInfo
- constInfo.dungeonInfo = []
- def CleanDungeonRanking(self):
- import constInfo
- constInfo.dungeonRanking["ranking_list"] = []
- def GetDungeonInfo(self, cmd):
- import constInfo
- cmd = cmd.split("#")
- if cmd[0] == "INPUT":
- constInfo.INPUT_IGNORE = int(cmd[1])
- elif cmd[0] == "CMD":
- net.SendQuestInputStringPacket(constInfo.dungeonData["quest_cmd"])
- constInfo.dungeonData["quest_cmd"] = ""
- else:
- pass
- def UpdateDungeonInfo(self, type, organization, levelLimit, partyMembers, mapName, mapIndex, mapCoordX, mapCoordY, cooldown, duration, entranceMapName, strengthBonusName, resistanceBonusName, itemVnum, finished, fastestTime, highestDamage):
- type = int(type)
- organization = int(organization)
- levelLimit = int(levelLimit)
- partyMembers = int(partyMembers)
- mapName = str(mapName).replace("_", " ")
- mapIndex = int(mapIndex)
- mapCoordX = int(mapCoordX)
- mapCoordY = int(mapCoordY)
- cooldown = int(cooldown)
- duration = int(duration)
- entranceMapName = str(entranceMapName).replace("_", " ")
- strengthBonusName = str(strengthBonusName).replace("_", " ")
- resistanceBonusName = str(resistanceBonusName).replace("_", " ")
- itemVnum = int(itemVnum)
- finished = int(finished)
- fastestTime = int(fastestTime)
- highestDamage = int(highestDamage)
- import constInfo
- constInfo.dungeonInfo.append(\
- {
- "type" : type,\
- "organization" : organization,\
- "level_limit" : levelLimit,\
- "party_members" : partyMembers,\
- "map" : mapName,\
- "map_index" : mapIndex,\
- "map_coord_x" : mapCoordX,\
- "map_coord_y" : mapCoordY,\
- "cooldown" : cooldown,\
- "duration" : duration,\
- "entrance_map" : entranceMapName,\
- "strength_bonus" : strengthBonusName,\
- "resistance_bonus" : resistanceBonusName,\
- "item_vnum" : itemVnum,
- "finished" : finished,
- "fastest_time" : fastestTime,
- "highest_damage" : highestDamage,
- },
- )
- def UpdateDungeonRanking(self, name, level, pointType):
- name = str(name)
- level = int(level)
- pointType = int(pointType)
- import constInfo
- constInfo.dungeonRanking["ranking_list"].append([name, level, pointType],)
- def OpenDungeonRanking(self):
- import uiDungeonInfo
- self.DungeonRank = uiDungeonInfo.DungeonRank()
- self.DungeonRank.Open()
- def BINARY_AppendNotifyMessage(self, type):
- if not type in localeInfo.NOTIFY_MESSAGE:
- return
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.NOTIFY_MESSAGE[type])
- def BINARY_Guild_EnterGuildArea(self, areaID):
- self.interface.BULID_EnterGuildArea(areaID)
- def BINARY_Guild_ExitGuildArea(self, areaID):
- self.interface.BULID_ExitGuildArea(areaID)
- def BINARY_GuildWar_OnSendDeclare(self, guildID):
- pass
- def BINARY_GuildWar_OnRecvDeclare(self, guildID, warType):
- mainCharacterName = player.GetMainCharacterName()
- masterName = guild.GetGuildMasterName()
- if mainCharacterName == masterName:
- self.__GuildWar_OpenAskDialog(guildID, warType)
- def BINARY_GuildWar_OnRecvPoint(self, gainGuildID, opponentGuildID, point):
- self.interface.OnRecvGuildWarPoint(gainGuildID, opponentGuildID, point)
- def BINARY_GuildWar_OnStart(self, guildSelf, guildOpp):
- self.interface.OnStartGuildWar(guildSelf, guildOpp)
- def BINARY_GuildWar_OnEnd(self, guildSelf, guildOpp):
- self.interface.OnEndGuildWar(guildSelf, guildOpp)
- def BINARY_BettingGuildWar_SetObserverMode(self, isEnable):
- self.interface.BINARY_SetObserverMode(isEnable)
- def BINARY_BettingGuildWar_UpdateObserverCount(self, observerCount):
- self.interface.wndMiniMap.UpdateObserverCount(observerCount)
- # PROFESSIONAL_BIOLOG_SYSTEM
- if app.ENABLE_BIOLOG_SYSTEM:
- def BINARY_Biolog_Update(self, pLeftTime, pCountActual, pCountNeed, pVnum):
- Elements.BIOLOG_BINARY_LOADED["time"][0] = int(pLeftTime) + app.GetGlobalTimeStamp()
- Elements.BIOLOG_BINARY_LOADED["countActual"][0] = str(pCountActual)
- Elements.BIOLOG_BINARY_LOADED["countNeed"][0] = str(pCountNeed)
- Elements.BIOLOG_BINARY_LOADED["vnum"][0] = int(pVnum)
- def BINARY_Biolog_SendMessage(self, pMessage):
- if str(pMessage) != "":
- self.wndBiologMessage = uiCommon.popupdialog()
- self.wndBiologMessage.SetWidth(350)
- self.wndBiologMessage.SetText((str(pMessage).replace("$"," ")))
- self.wndBiologMessage.Show()
- else:
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Error, i could not initialize message from server!")
- def BINARY_Biolog_PopUp(self, iRewardType, iRewardItem, iBonusName_1, iBonusValue_1, iBonusName_2, iBonusValue_2):
- self.wndBiologSlider = Elements.Biolog_FinishSlider()
- self.wndBiologSlider.BINARY_BiologPopUp_Load([str(iRewardType), int(iRewardItem), str(iBonusName_1), int(iBonusValue_1), str(iBonusName_2), int(iBonusValue_2)])
- self.wndBiologSlider.Show()
- def BINARY_Biolog_SelectReward(self, iTypeWindow, iRewardType, iBonusName_1, iBonusValue_1, iBonusName_2, iBonusValue_2, iBonusName_3, iBonusValue_3):
- self.wndBiologSelectReward = Elements.Biolog_SelectReward()
- self.wndBiologSelectReward.Open_SelectRewardType([int(iTypeWindow), str(iRewardType), str(iBonusName_1), int(iBonusValue_1), str(iBonusName_2), int(iBonusValue_2), str(iBonusName_3), int(iBonusValue_3)])
- self.wndBiologSelectReward.SetTitle((str(iRewardType).replace("$"," ")))
- self.wndBiologSelectReward.SetCenterPosition()
- self.wndBiologSelectReward.SetTop()
- self.wndBiologSelectReward.Show()
- # END_OF_PROFESSIONAL_BIOLOG_SYSTEM
- def __GuildWar_UpdateMemberCount(self, guildID1, memberCount1, guildID2, memberCount2, observerCount):
- guildID1 = int(guildID1)
- guildID2 = int(guildID2)
- memberCount1 = int(memberCount1)
- memberCount2 = int(memberCount2)
- observerCount = int(observerCount)
- self.interface.UpdateMemberCount(guildID1, memberCount1, guildID2, memberCount2)
- self.interface.wndMiniMap.UpdateObserverCount(observerCount)
- def __GuildWar_OpenAskDialog(self, guildID, warType):
- guildName = guild.GetGuildName(guildID)
- # REMOVED_GUILD_BUG_FIX
- if "Noname" == guildName:
- return
- # END_OF_REMOVED_GUILD_BUG_FIX
- import uiGuild
- questionDialog = uiGuild.AcceptGuildWarDialog()
- questionDialog.SAFE_SetAcceptEvent(self.__GuildWar_OnAccept)
- questionDialog.SAFE_SetCancelEvent(self.__GuildWar_OnDecline)
- questionDialog.Open(guildName, warType)
- self.guildWarQuestionDialog = questionDialog
- def __GuildWar_CloseAskDialog(self):
- self.guildWarQuestionDialog.Close()
- self.guildWarQuestionDialog = None
- def __GuildWar_OnAccept(self):
- guildName = self.guildWarQuestionDialog.GetGuildName()
- net.SendChatPacket("/war " + guildName)
- self.__GuildWar_CloseAskDialog()
- return 1
- def __GuildWar_OnDecline(self):
- guildName = self.guildWarQuestionDialog.GetGuildName()
- net.SendChatPacket("/nowar " + guildName)
- self.__GuildWar_CloseAskDialog()
- return 1
- ## BINARY CALLBACK
- ######################################################################################
- def __ServerCommand_Build(self):
- serverCommandList={
- "ConsoleEnable" : self.__Console_Enable,
- "DayMode" : self.__DayMode_Update,
- "PRESERVE_DayMode" : self.__PRESERVE_DayMode_Update,
- "CloseRestartWindow" : self.__RestartDialog_Close,
- "OpenPrivateShop" : self.__PrivateShop_Open,
- "PartyHealReady" : self.PartyHealReady,
- "ShowMeSafeboxPassword" : self.AskSafeboxPassword,
- "CloseSafebox" : self.CommandCloseSafebox,
- ##NEW SHOP
- "shop" :self.NewShop,
- "shop_clear" :self.ShopClear,
- "shop_add" :self.ShopAdd,
- "shop_item" :self.ShopItem,
- "shop_cost" :self.ShopCost,
- "shop_cost_clear" :self.ShopCostClear,
- "shop_item_clear" :self.ShopItemClear,
- #####GIFT SYSTEM
- "gift_clear" :self.gift_clear,
- "gift_item" :self.gift_item,
- "gift_info" :self.gift_show,
- "gift_load" :self.gift_load,
- ###
- # ITEM_MALL
- "CloseMall" : self.CommandCloseMall,
- "ShowMeMallPassword" : self.AskMallPassword,
- "item_mall" : self.__ItemMall_Open,
- # END_OF_ITEM_MALL
- "rafinate" : self.__MakeRefineButton,
- "RefineSuceeded" : self.RefineSuceededMessage,
- "RefineFailed" : self.RefineFailedMessage,
- "xmas_snow" : self.__XMasSnow_Enable,
- "xmas_boom" : self.__XMasBoom_Enable,
- "xmas_song" : self.__XMasSong_Enable,
- "xmas_tree" : self.__XMasTree_Enable,
- "newyear_boom" : self.__XMasBoom_Enable,
- "PartyRequest" : self.__PartyRequestQuestion,
- "PartyRequestDenied" : self.__PartyRequestDenied,
- "horse_state" : self.__Horse_UpdateState,
- "hide_horse_state" : self.__Horse_HideState,
- "WarUC" : self.__GuildWar_UpdateMemberCount,
- "test_server" : self.__EnableTestServerFlag,
- "mall" : self.__InGameShop_Show,
- "open_notice_info" : self.__open_notice_info,
- "write_notice_info" : self.__write_notice_info,
- ##Sistem Realizari
- "!realizare_title_1!" : self.__title1,
- ##
- "search_cofre_ids": self.__Cofres_Search,
- "search_cofre_refresh": self.__Cofres_Search_Refresh,
- "search_cofre_refresh_open": self.__Cofres_Search_Refresh_Open,
- "PetEvolution" : self.SetPetEvolution,
- "PetName" : self.SetPetName,
- "PetLevel" : self.SetPetLevel,
- "PetDuration" : self.SetPetDuration,
- "PetAges" : self.SetPetAges,
- "PetBonus" : self.SetPetBonus,
- "PetSkill" : self.SetPetskill,
- "PetIcon" : self.SetPetIcon,
- "PetExp" : self.SetPetExp,
- "PetUnsummon" : self.PetUnsummon,
- "OpenPetIncubator" : self.OpenPetIncubator,
- "OpenCBGui" : self.OpenBlockChatGui,
- "OpenCBGui1" : self.OpenBlockChatGui1,
- "OpenCBGui2" : self.OpenBlockChatGui2,
- "OpenCBGui3" : self.OpenBlockChatGui3,
- "OpenCBGui4" : self.OpenBlockChatGui4,
- # WEDDING
- "lover_login" : self.__LoginLover,
- "lover_logout" : self.__LogoutLover,
- "lover_near" : self.__LoverNear,
- "lover_far" : self.__LoverFar,
- "lover_divorce" : self.__LoverDivorce,
- "PlayMusic" : self.__PlayMusic,
- #################################################
- # Biologu System #
- "BINARY_Biolog_Update" : self.BINARY_Biolog_Update,
- "BINARY_Biolog_SendMessage" : self.BINARY_Biolog_SendMessage,
- "BINARY_Biolog_PopUp" : self.BINARY_Biolog_PopUp,
- "BINARY_Biolog_SelectReward" : self.BINARY_Biolog_SelectReward,
- #################################################
- # END_OF_WEDDING
- #START OF JOB
- "SELECT_JOB" : self.SelectJob,
- #END OF JOB
- "SetCurentMount" : self.SetCurentMount,
- "SetMountName" : self.SetMountName,
- # PRIVATE_SHOP_PRICE_LIST
- "MyShopPriceList" : self.__PrivateShop_PriceList,
- # END_OF_PRIVATE_SHOP_PRICE_LIST
- "SetTeamOnline" : self.__TeamLogin,
- "SetTeamOffline" : self.__TeamLogout,
- }
- if app.ENABLE_SHOP_SEARCH:
- serverCommandList["OpenShopSearch"]=self.PrivateShopSearch.Show
- serverCommandList["CloseShopSearch"]=self.PrivateShopSearch.CloseByItem
- serverCommandList["GetSearchedItemData"]=self.PrivateShopSearch.LoadItems
- serverCommandList["CreateSearchedItemList"]=self.PrivateShopSearch.CreateListUI
- serverCommandList["RemoveItemFromList"]=self.PrivateShopSearch.RemoveItemFromList
- serverCommandList["RemoveItemsFromList"]=self.PrivateShopSearch.RemoveItemsFromList
- serverCommandList["ShopResearchItem"]=self.PrivateShopSearch.ReSearchItem
- if app.ENABLE_DUNGEON_INFO_SYSTEM:
- serverCommandList.update({
- "DungeonInfo" : self.DungeonInfo,
- "CleanDungeonInfo" : self.CleanDungeonInfo,
- "CleanDungeonRanking" : self.CleanDungeonRanking,
- "GetDungeonInfo" : self.GetDungeonInfo,
- "UpdateDungeonInfo" : self.UpdateDungeonInfo,
- "UpdateDungeonRanking" : self.UpdateDungeonRanking,
- "OpenDungeonRanking" : self.OpenDungeonRanking,
- })
- serverCommandList.update({"SetQuestTimer" : self.SetQuestTimer,})
- serverCommandList.update({"refreshDungeonStatus" : self.__RefreshDungStatus,})
- if app.ENABLE_WHISPER_ADMIN_SYSTEM:
- serverCommandList["OnRecvWhisperAdminSystem"] = self.OnRecvWhisperAdminSystem
- self.serverCommander=stringCommander.Analyzer()
- for serverCommandItem in serverCommandList.items():
- self.serverCommander.SAFE_RegisterCallBack(
- serverCommandItem[0], serverCommandItem[1]
- )
- if app.ENABLE_BATTLE_FIELD:
- self.serverCommander.SAFE_RegisterCallBack("refresh_used_bp", self.ResetUsedBP)
- if app.ENABLE_MELEY_LAIR_DUNGEON:
- self.serverCommander.SAFE_RegisterCallBack("meley_open", self.OpenMeleyRanking)
- self.serverCommander.SAFE_RegisterCallBack("meley_rank", self.AddRankMeleyRanking)
- def __MakeRefineButton(self, qid):
- constInfo.refineWindow = int(qid)
- def BINARY_ServerCommand_Run(self, line):
- #dbg.TraceError(line)
- try:
- #print " BINARY_ServerCommand_Run", line
- return self.serverCommander.Run(line)
- except RuntimeError, msg:
- dbg.TraceError(msg)
- return 0
- def __ProcessPreservedServerCommand(self):
- try:
- command = net.GetPreservedServerCommand()
- while command:
- print " __ProcessPreservedServerCommand", command
- self.serverCommander.Run(command)
- command = net.GetPreservedServerCommand()
- except RuntimeError, msg:
- dbg.TraceError(msg)
- return 0
- def PartyHealReady(self):
- self.interface.PartyHealReady()
- def AskSafeboxPassword(self):
- self.interface.AskSafeboxPassword()
- #Sistem Realizari
- def __title1(self):
- net.SendChatPacket("(!realizare_title_1!)")
- # ITEM_MALL
- def AskMallPassword(self):
- self.interface.AskMallPassword()
- def __ItemMall_Open(self):
- self.interface.OpenItemMall();
- def CommandCloseMall(self):
- self.interface.CommandCloseMall()
- if app.ENABLE_UPGRADE_ITEMS_STORAGE:
- def OpenUpgradeItemsStorage(self):
- self.interface.OpenUpgradeItemsStorage()
- def RefreshUpgradeItemsStorage(self):
- self.interface.RefreshUpgradeItemsStorage()
- # END_OF_ITEM_MALL
- def RefineSuceededMessage(self):
- snd.PlaySound("sound/ui/make_soket.wav")
- if app.ENABLE_REFINE_RENEWAL:
- self.interface.CheckRefineDialog(False)
- if constInfo.IS_AUTO_REFINE:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_SUCCESS)
- else:
- self.PopupMessage(localeInfo.REFINE_SUCCESS)
- else:
- self.PopupMessage(localeInfo.REFINE_SUCCESS)
- def RefineFailedMessage(self):
- snd.PlaySound("sound/ui/jaeryun_fail.wav")
- if app.ENABLE_REFINE_RENEWAL:
- self.interface.CheckRefineDialog(True)
- if constInfo.IS_AUTO_REFINE:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE)
- else:
- self.PopupMessage(localeInfo.REFINE_FAILURE)
- else:
- self.PopupMessage(localeInfo.REFINE_FAILURE)
- def CommandCloseSafebox(self):
- self.interface.CommandCloseSafebox()
- # PRIVATE_SHOP_PRICE_LIST
- def __PrivateShop_PriceList(self, itemVNum, itemPrice):
- uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNum, itemPrice)
- # END_OF_PRIVATE_SHOP_PRICE_LIST
- def SetPetEvolution(self, evo):
- petname = ["Tanar", "Salbatic", "Curajos", "Eroic"]
- self.petmain.SetEvolveName(petname[int(evo)])
- def SetPetName(self, name):
- if len(name) > 1 and name != "":
- self.petmini.Show()
- self.petmain.SetName(name)
- def SetPetLevel(self, level):
- self.petmain.SetLevel(level)
- def SetPetDuration(self, dur, durt):
- if int(durt) > 0:
- self.petmini.SetDuration(dur, durt)
- self.petmain.SetDuration(dur, durt)
- def SetPetAges(self, ages):
- self.petmain.SetAges(int(ages))
- def SetPetBonus(self, hp, dif, sp):
- self.petmain.SetHp(hp)
- self.petmain.SetDef(dif)
- self.petmain.SetSp(sp)
- def SetPetskill(self, slot, idx, lv):
- if int(lv) > 0:
- self.petmini.SetSkill(slot, idx, lv)
- self.petmain.SetSkill(slot, idx, lv)
- self.affectShower.BINARY_NEW_AddAffect(5400+int(idx),int(constInfo.LASTAFFECT_POINT)+1,int(constInfo.LASTAFFECT_VALUE)+1, 0)
- if int(slot)==0:
- constInfo.SKILL_PET1=5400+int(idx)
- if int(slot)==1:
- constInfo.SKILL_PET2=5400+int(idx)
- if int(slot)==2:
- constInfo.SKILL_PET3=5400+int(idx)
- def SetPetIcon(self, vnum):
- if int(vnum) > 0:
- self.petmini.SetImageSlot(vnum)
- self.petmain.SetImageSlot(vnum)
- def SetPetExp(self, exp, expi, exptot):
- if int(exptot) > 0:
- self.petmini.SetExperience(exp, expi, exptot)
- self.petmain.SetExperience(exp, expi, exptot)
- def PetUnsummon(self):
- self.petmini.SetDefaultInfo()
- self.petmini.Close()
- self.petmain.SetDefaultInfo()
- self.affectShower.BINARY_NEW_RemoveAffect(int(constInfo.SKILL_PET1),0)
- self.affectShower.BINARY_NEW_RemoveAffect(int(constInfo.SKILL_PET2),0)
- self.affectShower.BINARY_NEW_RemoveAffect(int(constInfo.SKILL_PET3),0)
- constInfo.SKILL_PET1 = 0
- constInfo.SKILL_PET2 = 0
- constInfo.SKILL_PET3 = 0
- def OpenPetMainGui(self):
- self.petmain.Show()
- self.petmain.SetTop()
- def OpenPetIncubator(self, pet_new = 0):
- import uipetincubatrice
- self.petinc = uipetincubatrice.PetSystemIncubator(pet_new)
- self.petinc.Show()
- self.petinc.SetTop()
- def OpenPetMini(self):
- self.petmini.Show()
- self.petmini.SetTop()
- def OpenPetFeed(self):
- self.feedwind = uipetfeed.PetFeedWindow()
- self.feedwind.Show()
- self.feedwind.SetTop()
- def Gift_Show(self):
- if constInfo.PET_MAIN == 0:
- self.petmain.Show()
- constInfo.PET_MAIN =1
- self.petmain.SetTop()
- else:
- self.petmain.Hide()
- constInfo.PET_MAIN =0
- def __Horse_HideState(self):
- self.affectShower.SetHorseState(0, 0, 0)
- def __Horse_UpdateState(self, level, health, battery):
- self.affectShower.SetHorseState(int(level), int(health), int(battery))
- def __IsXMasMap(self):
- mapDict = ( "metin2_map_n_flame_01",
- "metin2_map_n_desert_01",
- "metin2_map_spiderdungeon",
- "metin2_map_deviltower1", )
- if background.GetCurrentMapName() in mapDict:
- return False
- return True
- def __XMasSnow_Enable(self, mode):
- self.__XMasSong_Enable(mode)
- if "1"==mode:
- if not self.__IsXMasMap():
- return
- print "XMAS_SNOW ON"
- background.EnableSnow(1)
- else:
- print "XMAS_SNOW OFF"
- background.EnableSnow(0)
- def __XMasBoom_Enable(self, mode):
- if "1"==mode:
- if not self.__IsXMasMap():
- return
- print "XMAS_BOOM ON"
- self.__DayMode_Update("dark")
- self.enableXMasBoom = True
- self.startTimeXMasBoom = app.GetTime()
- else:
- print "XMAS_BOOM OFF"
- self.__DayMode_Update("light")
- self.enableXMasBoom = False
- def __XMasTree_Enable(self, grade):
- print "XMAS_TREE ", grade
- background.SetXMasTree(int(grade))
- def __XMasSong_Enable(self, mode):
- if "1"==mode:
- print "XMAS_SONG ON"
- XMAS_BGM = "xmas.mp3"
- if app.IsExistFile("BGM/" + XMAS_BGM)==1:
- if musicInfo.fieldMusic != "":
- snd.FadeOutMusic("BGM/" + musicInfo.fieldMusic)
- musicInfo.fieldMusic=XMAS_BGM
- snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
- else:
- print "XMAS_SONG OFF"
- if musicInfo.fieldMusic != "":
- snd.FadeOutMusic("BGM/" + musicInfo.fieldMusic)
- musicInfo.fieldMusic=musicInfo.METIN2THEMA
- snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
- def __RestartDialog_Close(self):
- self.interface.CloseRestartDialog()
- def __Console_Enable(self):
- constInfo.CONSOLE_ENABLE = True
- self.consoleEnable = True
- app.EnableSpecialCameraMode()
- ui.EnablePaste(True)
- ## PrivateShop
- def __PrivateShop_Open(self):
- #self.interface.OpenPrivateShopInputNameDialog()
- self.uiNewShop.Show()
- def BINARY_PrivateShop_Appear(self, vid, text):
- if chr.GetInstanceType(vid) in [chr.INSTANCE_TYPE_PLAYER, chr.INSTANCE_TYPE_NPC]:
- self.interface.AppearPrivateShop(vid, text)
- def BINARY_PrivateShop_Disappear(self, vid):
- self.interface.DisappearPrivateShop(vid)
- ## DayMode
- def __PRESERVE_DayMode_Update(self, mode):
- if "light"==mode:
- background.SetEnvironmentData(0)
- elif "dark"==mode:
- if not self.__IsXMasMap():
- return
- background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
- background.SetEnvironmentData(1)
- def __DayMode_Update(self, mode):
- if "light"==mode:
- self.curtain.SAFE_FadeOut(self.__DayMode_OnCompleteChangeToLight)
- elif "dark"==mode:
- if not self.__IsXMasMap():
- return
- self.curtain.SAFE_FadeOut(self.__DayMode_OnCompleteChangeToDark)
- def __DayMode_OnCompleteChangeToLight(self):
- background.SetEnvironmentData(0)
- self.curtain.FadeIn()
- def __DayMode_OnCompleteChangeToDark(self):
- background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
- background.SetEnvironmentData(1)
- self.curtain.FadeIn()
- ## XMasBoom
- def __XMasBoom_Update(self):
- self.BOOM_DATA_LIST = ( (2, 5), (5, 2), (7, 3), (10, 3), (20, 5) )
- if self.indexXMasBoom >= len(self.BOOM_DATA_LIST):
- return
- boomTime = self.BOOM_DATA_LIST[self.indexXMasBoom][0]
- boomCount = self.BOOM_DATA_LIST[self.indexXMasBoom][1]
- if app.GetTime() - self.startTimeXMasBoom > boomTime:
- self.indexXMasBoom += 1
- for i in xrange(boomCount):
- self.__XMasBoom_Boom()
- def __XMasBoom_Boom(self):
- x, y, z = player.GetMainCharacterPosition()
- randX = app.GetRandom(-150, 150)
- randY = app.GetRandom(-150, 150)
- snd.PlaySound3D(x+randX, -y+randY, z, "sound/common/etc/salute.mp3")
- def __PartyRequestQuestion(self, vid):
- vid = int(vid)
- partyRequestQuestionDialog = uiCommon.QuestionDialog()
- partyRequestQuestionDialog.SetText(chr.GetNameByVID(vid) + localeInfo.PARTY_DO_YOU_ACCEPT)
- partyRequestQuestionDialog.SetAcceptText(localeInfo.UI_ACCEPT)
- partyRequestQuestionDialog.SetCancelText(localeInfo.UI_DENY)
- partyRequestQuestionDialog.SetAcceptEvent(lambda arg=True: self.__AnswerPartyRequest(arg))
- partyRequestQuestionDialog.SetCancelEvent(lambda arg=False: self.__AnswerPartyRequest(arg))
- partyRequestQuestionDialog.Open()
- partyRequestQuestionDialog.vid = vid
- self.partyRequestQuestionDialog = partyRequestQuestionDialog
- def __AnswerPartyRequest(self, answer):
- if not self.partyRequestQuestionDialog:
- return
- vid = self.partyRequestQuestionDialog.vid
- if answer:
- net.SendChatPacket("/party_request_accept " + str(vid))
- else:
- net.SendChatPacket("/party_request_deny " + str(vid))
- self.partyRequestQuestionDialog.Close()
- self.partyRequestQuestionDialog = None
- def __PartyRequestDenied(self):
- self.PopupMessage(localeInfo.PARTY_REQUEST_DENIED)
- def __EnableTestServerFlag(self):
- app.EnableTestServerFlag()
- def __InGameShop_Show(self, url):
- if constInfo.IN_GAME_SHOP_ENABLE:
- self.interface.OpenWebWindow(url)
- def __open_notice_info(self):
- self.interface.RegisterGameMasterName("Update Info")
- self.interface.RecvWhisper("Update Info")
- def __write_notice_info(self,text):
- chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, "Update Info", text.replace("_", " "))
- # WEDDING
- def __LoginLover(self):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.OnLoginLover()
- def __LogoutLover(self):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.OnLogoutLover()
- if self.affectShower:
- self.affectShower.HideLoverState()
- def __LoverNear(self):
- if self.affectShower:
- self.affectShower.ShowLoverState()
- def __LoverFar(self):
- if self.affectShower:
- self.affectShower.HideLoverState()
- def __LoverDivorce(self):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.ClearLoverInfo()
- if self.affectShower:
- self.affectShower.ClearLoverState()
- def __PlayMusic(self, flag, filename):
- flag = int(flag)
- if flag:
- snd.FadeOutAllMusic()
- musicInfo.SaveLastPlayFieldMusic()
- snd.FadeInMusic("BGM/" + filename)
- else:
- snd.FadeOutAllMusic()
- musicInfo.LoadLastPlayFieldMusic()
- snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
- if app.ENABLE_ATTENDANCE_EVENT:
- def MiniGameAttendanceEvent(self, isEnable):
- if self.interface:
- self.interface.SetAttendanceEventStatus(isEnable)
- self.interface.IntegrationEventBanner()
- def MiniGameAttendanceSetData(self, type, value):
- self.interface.MiniGameAttendanceSetData(type, value)
- def RefreshHitCount(self, vid):
- if vid == self.targetBoard.GetTargetVID():
- self.targetBoard.RefreshHitCount(vid)
- def OpenMarbleShop(self):
- if self.wndMarbleShop.IsShow():
- self.wndMarbleShop.Hide()
- else:
- self.wndMarbleShop.Show()
- if app.ENABLE_MELEY_LAIR_DUNGEON:
- def OpenMeleyRanking(self):
- if self.interface:
- self.interface.OpenMeleyRanking()
- def AddRankMeleyRanking(self, data):
- if self.interface:
- line = int(data.split("#")[1])
- name = str(data.split("#")[2])
- members = int(data.split("#")[3])
- seconds = int(data.split("#")[4])
- minutes = seconds // 60
- seconds %= 60
- if seconds > 0:
- time = localeInfo.TIME_MIN_SEC % (minutes, seconds)
- else:
- time = localeInfo.TIME_MIN % (minutes)
- self.interface.RankMeleyRanking(line, name, members, time)
- if app.ENABLE_SASH_SYSTEM:
- def ActSash(self, iAct, bWindow):
- if self.interface:
- self.interface.ActSash(iAct, bWindow)
- def AlertSash(self, bWindow):
- snd.PlaySound("sound/ui/make_soket.wav")
- if bWindow:
- self.PopupMessage(localeInfo.SASH_DEL_SERVEITEM)
- else:
- self.PopupMessage(localeInfo.SASH_DEL_ABSORDITEM)
- if app.ENABLE_CHANGELOOK_SYSTEM:
- def ActChangeLook(self, iAct):
- if self.interface:
- self.interface.ActChangeLook(iAct)
- def AlertChangeLook(self):
- self.PopupMessage(localeInfo.CHANGE_LOOK_DEL_ITEM)
- # END_OF_WEDDING
- def NewShop(self):
- if self.uiNewShop:
- self.uiNewShop.Show()
- def ShopClear(self):
- if self.uiNewShop:
- self.uiNewShop.HideAll()
- constInfo.MyShops=[]
- def ShopCostClear(self):
- constInfo.shop_cost=[]
- def ShopCost(self,id,time,time_val,price):
- constInfo.shop_cost.append({"id":int(id),"time":int(time),"time_val":int(time_val),"price":int(price)})
- def ShopAdd(self,shop_id,shop_vid,szSign,gold,count,sold,days,date_close):
- if self.uiNewShop:
- shop={
- "id":shop_id,
- "vid":shop_vid,
- "name":szSign.replace("\\"," ").replace("_","#"),
- "gold":gold,
- "sold":sold,
- "items":int(count)-int(sold),
- "days":days,
- "time":date_close
- }
- self.uiNewShop.Load(shop)
- constInfo.MyShops.append(shop)
- def ShopItemClear(self):
- if self.uiNewShop:
- self.uiNewShop.ClearItems()
- def ShopItem(self,data):
- d=data.split("#")
- id=d[0]
- vnum=d[1]
- count=d[2]
- slot=d[3]
- price=d[4]
- s=d[5]
- a=d[6]
- sockets=[]
- for key in s.split("|"):
- sockets.append(int(key))
- attrs=[]
- for key in a.split("|"):
- a=key.split(",")
- attrs.append([int(a[1]),int(a[0])])
- if self.uiNewShop:
- self.uiNewShop.AddItem(slot,{"id":id,"vnum":vnum,"count":count,"price":price,"sockets":sockets,"attrs":attrs})
- ####GIFT SYSTEM#####
- def gift_clear(self):
- constInfo.gift_items={}
- self.interface.ClearGift()
- def gift_item(self, id, vnum, count, pos, date_add, give, reason, szSockets, szAttrs):
- sockets=[]
- for key in szSockets.split("|"):
- sockets.append(int(key))
- attrs=[]
- for key in szAttrs.split("|"):
- a=key.split(",")
- attrs.append([int(a[0]),int(a[1])])
- constInfo.gift_items[int(pos)]={"id":int(id),"vnum":int(vnum),"count":int(count),"pos":int(pos),"date_add":int(date_add),"reason":reason.replace("_"," "),"give":give.replace("_"," "),"sockets":sockets,"attrs":attrs}
- def gift_load(self):
- self.interface.wndGiftBox.Refresh()
- def gift_show(self,pages):
- self.interface.wndGiftBox.pageNum=int(pages)
- self.interface.OpenGift()
- # def OnClickSearch(self):
- # if not self.uiSearchShop.IsShow():
- # self.uiSearchShop.Show()
- # self.uiSearchShop.SetCenterPosition()
- # else:
- # self.uiSearchShop.Hide()
- def OpenBlockChatGui(self):
- self.blockchatgui.OpenWindow()
- def OpenBlockChatGui1(self):
- self.blockchatgui1.OpenWindow()
- def OpenBlockChatGui2(self):
- self.blockchatgui2.OpenWindow()
- def OpenBlockChatGui3(self):
- self.blockchatgui3.OpenWindow()
- def OpenBlockChatGui4(self):
- self.blockchatgui4.OpenWindow()
- def __switch_channel(self):
- import uiChannel
- a = uiChannel.ChannelChanger()
- a.Show()
- def SetCurentMount(self, mount):
- constInfo.CURRENT_MOUNT = int(mount)
- self.mount.SetMountImage()
- def SetMountName(self, name):
- constInfo.CURRENT_MOUNT_NAME = str(name)
- self.mount.SetMountImage()
- def WindowMount(self):
- if self.mount.IsShow():
- self.mount.Close()
- else:
- self.mount.Open()
- def __toggleSwitchbot(self):
- if self.switchbot.bot_shown == 1:
- self.switchbot.Hide()
- else:
- self.switchbot.Show()
- # Pagina bonusuri
- def __BonusPage(self):
- import PaginaBonusuri
- global BPisLoaded
- try:
- if BPisLoaded != 1:
- exec 'PaginaBonusuri.BonusBoardDialog().Show()'
- else:
- pass
- except ImportError:
- import dbg,app
- dbg.Trace('PaginaBonusuri.py Importing error')
- app.Abort()
- if app.ENABLE_GEM_SYSTEM:
- def OpenGemShop(self):
- if self.interface:
- self.interface.OpenGemShop()
- def CloseGemShop(self):
- if self.interface:
- self.interface.CloseGemShop()
- def RefreshGemShop(self):
- if self.interface:
- self.interface.RefreshGemShop()
- # Pagina bonusuri, sfarsit
- if app.ENABLE_WHISPER_ADMIN_SYSTEM:
- def OpenWhisperSystem(self):
- if self.adminWhisperManager.IsShow():
- self.adminWhisperManager.Hide()
- else:
- self.adminWhisperManager.Show()
- if app.ENABLE_MOVE_CHANNEL:
- def __GetServerID(self):
- serverID = 1
- for i in serverInfo.REGION_DICT[0].keys():
- if serverInfo.REGION_DICT[0][i]["name"] == net.GetServerInfo().split(",")[0]:
- serverID = int(i)
- break
- return serverID
- def RefreshChannel(self, channel):
- channelName = ""
- serverName = serverInfo.REGION_DICT[0][self.__GetServerID()]["name"]
- if channel in serverInfo.REGION_DICT[0][self.__GetServerID()]["channel"]:
- channelName = serverInfo.REGION_DICT[0][self.__GetServerID()]["channel"][int(channel)]["name"]
- elif channel == 99:
- channelName = "Special CH"
- else:
- channelName = "Unknow CH"
- net.SetServerInfo("%s, %s" % (serverName,channelName))
- if self.interface:
- self.interface.wndMiniMap.serverInfo.SetText(net.GetServerInfo())
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_CHANNEL_NOTICE % (channel))
- # app.ChangeTitle(net.GetServerInfo())
- if app.ENABLE_SHOW_CHEST_DROP:
- def BINARY_AddChestDropInfo(self, chestVnum, pageIndex, slotIndex, itemVnum, itemCount):
- if self.interface:
- self.interface.AddChestDropInfo(chestVnum, pageIndex, slotIndex, itemVnum, itemCount)
- def BINARY_RefreshChestDropInfo(self, chestVnum):
- if self.interface:
- self.interface.RefreshChestDropInfo(chestVnum)
- if app.ENABLE_FISH_EVENT:
- def MiniGameFishEvent(self, isEnable, lasUseCount):
- if self.interface:
- self.interface.SetFishEventStatus(isEnable)
- self.interface.MiniGameFishCount(lasUseCount)
- self.interface.IntegrationEventBanner()
- def MiniGameFishUse(self, shape, useCount):
- self.interface.MiniGameFishUse(shape, useCount)
- def MiniGameFishAdd(self, pos, shape):
- self.interface.MiniGameFishAdd(pos, shape)
- def MiniGameFishReward(self, vnum):
- self.interface.MiniGameFishReward(vnum)
- if app.ENABLE_BATTLE_FIELD:
- def BINARY_AddBattleRankingMember(self, position, type, name, empire, score):
- if self.interface:
- if self.interface.wndMiniMap:
- if self.interface.wndMiniMap.wndBattleField:
- self.interface.wndMiniMap.wndBattleField.AddRankingMember(position, type, name, empire, score)
- def BINARY_AddBattleTime(self, openTime, closeTime, isOpen, isEvent):
- if self.interface:
- if self.interface.wndMiniMap:
- self.interface.wndMiniMap.SetBattleInfo(openTime, closeTime, isOpen, isEvent)
- def ResetUsedBP(self, usedBP):
- if self.interface:
- self.interface.ResetUsedBP(usedBP)
- #snd.PlaySound TEAM_LIST
- def __TeamLogin(self, name):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.OnLogin(2, name)
- def __TeamLogout(self, name):
- if self.interface.wndMessenger:
- self.interface.wndMessenger.OnLogout(2, name)
- #snd.PlaySound END_OF_TEAM_LIST
- def SelectJob(self, cmd):
- import uiselectjob
- cmd = cmd.split('#')
- if cmd[0] == 'QID':
- constInfo.SelectJob['QID'] = int(cmd[1])
- elif cmd[0] == 'INPUT':
- constInfo.INPUT_IGNORE = int(cmd[1])
- elif cmd[0] == 'SEND':
- net.SendQuestInputStringPacket(str(constInfo.SelectJob['QCMD']))
- constInfo.SelectJob['QCMD'] = ''
- elif cmd[0] == 'OPEN':
- self.job_select = uiselectjob.JobSelectWindow()
- self.job_select.Open()
- elif cmd[0] == 'CLOSE':
- self.job_select = uiselectjob.JobSelectWindow()
- self.job_select.RealClose()
- def OpenTimerWindow(self):
- self.interface.OpenTimerWindow()
- def SetQuestTimer(self, index, time):
- self.interface.SetQuestTimer(int(index), int(time))
- def __RefreshDungStatus(self):
- self.interface.refreshDungeonStatus()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement