Jump to content

igoriap

Members
  • Content count

    14
  • Joined

  • Last visited

Community Reputation

0 Neutral

About igoriap

  • Rank
    Member
  1. Adicionar Switchbot 2.3 Mijago

    import os, ui, app, dbg, grp, chr, net, snd, fly, day, ime, item, time, chat, event, quest, guild, skill, chrmgr, player, effect, wndMgr, uiPopup, textTail import exchange, uiCommon, uiTarget, uiHealth, uiTaskbar, messenger, constInfo, musicInfo, debugInfo, localeInfo, background, uiCharacter, exception import uiinventory, mouseModule, systemSetting, uiPlayerGauge, consoleModule, uiPhaseCurtain, uiAffectShower, uiMapNameShower, stringCommander import interfaceModule, playerSettingModule, uiShop, uiGuild, uithreewaygui, uikillgui, herbology, uiPrivateShopBuilder import uiOfflineShopBuilder, uipetsystem, uiOfflineShop from switchbot import Bot from _weakref import proxy 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 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) ### Sistema dia e noite day.nacht = 0 day.tag = 0 ### Sistema dia e noite self.quickSlotPageIndex = 0 self.lastPKModeSendedTime = 0 self.pressNumber = None self.guildWarQuestionDialog = None self.interface = None self.targetBoard = None self.console = None self.mapNameShower = None self.affectShower = None self.playerGauge = None ##edson self.itemShopWnd = 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() self.targetBoard = uiTarget.TargetBoard() self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog)) self.targetBoard.Hide() self.petmain = uipetsystem.PetSystemMain() self.petmini = uipetsystem.PetSystemMini() self.console = consoleModule.ConsoleWindow() self.console.BindGameClass(self) self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200) self.console.Hide() self.mapNameShower = uiMapNameShower.MapNameShower() self.affectShower = uiAffectShower.AffectShower() self.playerGauge = uiPlayerGauge.PlayerGauge(self) self.playerGauge.Hide() self.__SetQuickSlotMode() self.__ServerCommand_Build() self.__ProcessPreservedServerCommand() # Kill_Gui_By:_Edson.B.Junior self.kill_gui = uikillgui.KillGuiDialog() # Threeway_Gui_By:_Edson.B.Junior self.threeway_war_gui = uithreewaygui.ThreewayGuiDialog() 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 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 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 # OFFLINE_SHOP_PRICE_LIST uiOfflineShopBuilder.Clear() # END_OF_OFFLINE_SHOP_PRICE_LIST # UNKNOWN_UPDATE exchange.InitTrading() # END_OF_UNKNOWN_UPDATE ## 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: exception.Abort("GameWindow.Open") # END_OF_START_GAME_ERROR_EXIT # NPC가 큐브시스템으로 만들 수 있는 아이템들의 목록을 캐싱 # ex) cubeInformation[20383] = [ {"rewordVNUM": 72723, "rewordCount": 1, "materialInfo": "101,1&102,2", "price": 999 }, ... ] self.cubeInformation = {} self.currentCubeNPC = 0 self.acceInformation = {} self.currentAcceNPC = 0 #GUERRA DAS INSIGNIAS espacio_insignia = ui.AniImageBox() espacio_insignia.SetWindowHorizontalAlignLeft() espacio_insignia.SetWindowVerticalAlignTop() espacio_insignia.AppendImage("d:/ymir work/ui/pattern/medallas/espacio.dds") self.espacio_insignia = espacio_insignia self.espacio_insignia.SetPosition(10, 80) imagen_insignia = ui.AniImageBox() imagen_insignia.SetWindowHorizontalAlignLeft() imagen_insignia.SetWindowVerticalAlignTop() imagen_insignia.AppendImage("icon/item/insignia.dds") self.imagen_insignia = imagen_insignia self.imagen_insignia.SetPosition(10, 80) self.numero_insignia = ui.TextLine() self.numero_insignia.SetWindowHorizontalAlignLeft() self.numero_insignia.SetWindowVerticalAlignTop() self.numero_insignia.SetDefaultFontName() self.numero_insignia.SetPosition(10, 80) self.numero_insignia.SetText("0") self.numero_insignia.SetOutline() #FIANL DA GUERRA def Close(self): self.Hide() #GUERRA INSIGNIA self.__ocultar_insignia() #GUERRA INSIGNIA FIM global cameraDistance, cameraPitch, cameraRotation, cameraHeight (cameraDistance, cameraPitch, cameraRotation, cameraHeight) = app.GetCamera() if musicInfo.fieldMusic != "": snd.FadeOutMusic("BGM/"+ musicInfo.fieldMusic) 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() 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.playerGauge = None self.mapNameShower = None self.affectShower = None ##edson self.itemShopWnd = 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.interface: self.interface.HideAllWindows() self.interface.Close() self.interface=None if self.itemShopWnd: self.itemShopWnd.Destroy() self.itemShopWnd = None player.ClearSkillDict() player.ResetCameraRotation() self.KillFocus() app.HideCursor() print "---------------------------------------------------------------------------- CLOSE GAME WINDOW" def __BuildKeyDict(self): onPressKeyDict = {} 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.__toogleSwitchbot() #packen # onPressKeyDict[app.DIK_F5] = lambda : self.__toogleSwitchbot() # onPressKeyDict[app.DIK_F6] = lambda : self.__afk() onPressKeyDict[app.DIK_F7] = lambda : self.__toggleSwitchbot() #onPressKeyDict[app.DIK_F8] = lambda : self.__deschideputere() #onPressKeyDict[app.DIK_F9] = lambda : self.calendario.Show() 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_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_P] = self.__PressPKey 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_COMMA] = lambda : self.ShowConsole() # "`" key 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() onPressKeyDict[app.DIK_X] = lambda : self.__PressXKey() # 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() #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) 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: #net.SendChatPacket("/user_horse_ride") if not uiPrivateShopBuilder.IsBuildingPrivateShop() or not uiOfflineShopBuilder.IsBuildingOfflineShop(): 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): if 0==interfaceModule.IsQBHide: interfaceModule.IsQBHide = 1 self.interface.HideAllQuestButton() else: interfaceModule.IsQBHide = 0 self.interface.ShowAllQuestButton() else: app.RotateCamera(app.CAMERA_TO_NEGATIVE) def __PressPKey(self): if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL): if 0==interfaceModule.IsWisperHide: interfaceModule.IsWisperHide = 1 self.interface.HideAllWhisperButton() else: interfaceModule.IsWisperHide= 0 self.interface.ShowAllWhisperButton() 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 __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() # 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.CApiSetHide == 1: net.SendQuestInputStringPacket(str(constInfo.SendString)) constInfo.CApiSetHide = 0 return elif constInfo.INPUT_IGNORE == 1: return else: 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() if constInfo.INPUT_Coliseu == 1: net.SendChatPacket("/restart_town") else: self.OpenRestartDialog() ### Fun豫o de retornar quando esta morto def OpenRestartDialog(self): self.interface.OpenRestartDialog() def ChangeCurrentSkill(self, skillSlotNumber): self.interface.OnChangeCurrentSkill(skillSlotNumber) ## TargetBoard 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() 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): global afk afk = time.strftime("%H:%M") if mode == chat.WHISPER_TYPE_GM: self.interface.RegisterGameMasterName(name) #DIGITANDO if line.find("|xyaziyorumsuanda|") != -1: constInfo.yazanlar.append(name) constInfo.yaziyor = 1 return elif line.find("|xyazmiyorumsuanda|") != -1: if name in constInfo.yazanlar: constInfo.yazanlar.remove(name) constInfo.yaziyor = 0 return else: pass #FINAL DIGITANDO if line[-25:] == "Este Jogador esta ausente!": net.SendWhisperPacket(name, afk) chat.AppendWhisper(mode, name, line) self.interface.RecvWhisper(name) return if constInfo.AFK == 1 and line[-5:] != afk: net.SendWhisperPacket(name, "Este Jogador esta ausente!") chat.AppendWhisper(mode, name, line) self.interface.RecvWhisper(name) # else: # chat.AppendWhisper(mode, name, line) # self.interface.RecvWhisper(name) if line.find("#texto#") != -1: bol = line.split("#") chat.AppendWhisper(mode, name, bol[1]) # self.interface.RecvWhisper(name) return else: if not "#"+str(name)+"#" in constInfo.WHISPER_GORULDU_LIST: constInfo.WHISPER_GORULDU_LIST.append("#"+str(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) def RecvWhisper(self, name): self.interface.RecvWhisper(name) def OnPickMoney(self, money): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_PICK_MONEY % (money)) def OnPickCheque(self, cheque): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHEQUE_SYSTEM_PICK_WON % (cheque)) 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 ## OfflineShop def StartOfflineShop(self, vid): self.interface.OpenOfflineShopDialog(vid) def EndOfflineShop(self): self.interface.CloseOfflineShopDialog() def RefreshOfflineShop(self): self.interface.RefreshOfflineShopDialog() ## 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): pass 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.PickCloseItem() #GUERRA DA INSIGNIA MapName = str(background.GetCurrentMapName()) if MapName == "mapa_rinnegan_insignias": self.rinne() #FINAL DA GUERRA ############################################################################################### ############################################################################################### ## Event Handler def OnKeyDown(self, key): if self.interface.wndWeb and self.interface.wndWeb.IsShow(): return constInfo.SET_ITEM_DROP_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) elif player.ITEM_CHEQUE == attachedItemIndex: self.__PutCheque(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) 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 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): self.stream.popupWindow.Close() self.stream.popupWindow.Open(localeInfo.EXCHANGE_FAILURE_EQUIP_ITEM, 0, localeInfo.UI_OK) else: if chr.IsNPC(dstChrID): 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 # OFFLINESHOP_DISABLE_ITEM_DROP if (uiOfflineShopBuilder.IsBuildingOfflineShop()): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_OFFLINE_SHOP) return # END_OF_OFFLINESHOP_DISABLE_ITEM_DROP # OFFLINESHOP_DISABLE_ITEM_DROP2 if (uiOfflineShop.IsEditingOfflineShop()): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_OFFLINE_SHOP) return # END_OF_OFFLINESHOP_DISABLE_ITEM_DROP2 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.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg)) itemDropQuestionDialog.Open() itemDropQuestionDialog.dropType = attachedType itemDropQuestionDialog.dropCount = attachedMoney itemDropQuestionDialog.dropNumber = player.ITEM_MONEY self.itemDropQuestionDialog = itemDropQuestionDialog def __PutCheque(self, attachedType, attachedCheque, dstChrID): if True == chr.HasInstance(dstChrID) and player.GetMainCharacterIndex() != dstChrID: net.SendExchangeStartPacket(dstChrID) net.SendExchangePsgAddPacket(attachedCheque) else: self.__DropCheque(attachedType, attachedCheque) def __DropCheque(self, attachedType, attachedCheque): if attachedCheque>=100: self.stream.popupWindow.Close() self.stream.popupWindow.Open("S??poss?el descartar at?99 Won por vez.", 0, localeInfo.UI_OK) return itemDropQuestionDialog = uiCommon.QuestionDialog() itemDropQuestionDialog.SetText("Deseja realmente descartar %d Won?" % (attachedCheque)) itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg)) itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg)) itemDropQuestionDialog.Open() itemDropQuestionDialog.dropType = attachedType itemDropQuestionDialog.dropCount = attachedCheque itemDropQuestionDialog.dropNumber = player.ITEM_CHEQUE self.itemDropQuestionDialog = itemDropQuestionDialog def __DropItem(self, attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount): # 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 # OFFLINESHOP_DISABLE_ITEM_DROP if (uiOfflineShopBuilder.IsBuildingOfflineShop()): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_OFFLINE_SHOP) return # END_OFF_OFFLINESHOP_DISABLE_ITEM_DROP # OFFLINESHOP_DISABLE_ITEM_DROP2 if (uiOfflineShop.IsEditingOfflineShop()): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_OFFLINE_SHOP) return # END_OF_OFFLINESHOP_DISABLE_ITEM_DROP2 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() ## 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_DROP_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() ## 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_DROP_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") elif dropNumber == player.ITEM_CHEQUE: net.SendChequeDropPacketNew(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 self.itemDropQuestionDialog.Close() self.itemDropQuestionDialog = None constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0) # PRIVATESHOP_DISABLE_ITEM_DROP - OFFLINESHOP_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 if (uiOfflineShopBuilder.IsBuildingOfflineShop()): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_OFFLINE_SHOP) return if (uiOfflineShop.IsEditingOfflineShop()): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_OFFLINE_SHOP) return net.SendItemDropPacketNew(itemInvenType, itemVNum, itemCount) # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP - END_OF_OFFLINESHOP_DISABLE_ITEM_DROP 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() #####Sistema dia e noite self.day_night() #####Sistema dia e noite ## Z ############################################################################# if app.IsPressed(app.DIK_P) and app.IsPressed(app.DIK_LSHIFT): if self.GiftBox.IsShow(): self.GiftBox.Hide() else: self.GiftBox.Show() ## Z ############################################################################# 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) # 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.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 # 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.append((itemVnum, itemCount)) else: itemVnum, itemCount = eachMaterialText.split(",") itemVnum = int(itemVnum) itemCount = int(itemCount) self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount) materialList.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 #Sistema de Faixas def BINARY_Acce_Open(self, npcVNUM): self.interface.OpenAcceWindow() def BINARY_Acce_Close(self): self.interface.CloseAcceWindow() def BINARY_Acce_UpdateInfo(self, gold, itemVnum, count, rItemVnum, rCount): self.interface.UpdateAcceInfo(gold, itemVnum, count, rItemVnum, rCount) def BINARY_Acce_Succeed(self, itemVnum, count): print "Making acce has succesfully!" self.interface.SucceedAcceWork(itemVnum, count) pass def BINARY_Acce_Failed(self): print "Making acce has failed!" self.interface.FailedAcceWork() pass def BINARY_Acce_Abs_Open(self, npcVNUM): self.interface.OpenAcceAbsWindow() def BINARY_Acce_Abs_Succeed(self): print "Acce absorption has succesfully!" self.interface.SucceedAcceAbsWork() pass if app.ENABLE_ITEM_COMBINATION: ## Costume def BINARY_Item_Combination_Open(self, npcVNUM): self.interface.OpenItemCombinationWindow() def BINARY_Item_Combination_Succeed(self): print "Item Combination has succesfully!" self.interface.SucceedItemCombinationWork() pass ## SkillBook def BINARY_Skill_Book_Combination_Open(self, npcVNUM): self.interface.OpenSkillBookCombinationWindow() def BINARY_Skill_Book_Combination_Succeed(self): print "Item Combination has succesfully!" self.interface.SucceedSkillBookCombinationWork() pass ## Close def BINARY_Combination_Close(self): self.interface.CloseCombinationWindow() # 용혼석 def BINARY_Highlight_Item(self, inven_type, inven_pos): self.interface.Highligt_Item(inven_type, inven_pos) def BINARY_Cards_UpdateInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points): self.interface.UpdateCardsInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points) def BINARY_Cards_FieldUpdateInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points): self.interface.UpdateCardsFieldInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points) def BINARY_Cards_PutReward(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points): self.interface.CardsPutReward(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points) def BINARY_Cards_ShowIcon(self): self.interface.CardsShowIcon() def BINARY_Cards_Open(self, safemode): self.interface.OpenCardsWindow(safemode) 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) 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) 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 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, "OpenOfflineShop" : self.__OfflineShop_Open, "PartyHealReady" : self.PartyHealReady, "ShowMeSafeboxPassword" : self.AskSafeboxPassword, "CloseSafebox" : self.CommandCloseSafebox, ###################### # ITEM_MALL "CloseMall" : self.CommandCloseMall, "ShowMeMallPassword" : self.AskMallPassword, "item_mall" : self.__ItemMall_Open, # END_OF_ITEM_MALL ###################### "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, ###################### # New Pet System ########################################## "PetIcon" : self.SetPetIcon, "PetEvolution" : self.SetPetEvolution, "PetName" : self.SetPetName, "PetLevel" : self.SetPetLevel, "PetDuration" : self.SetPetDuration, "PetBonus" : self.SetPetBonus, # "PetSkill" : self.SetPetskill, "UsePetskill" : self.SetUsePetskill, "PetExp" : self.SetPetExp, "PetUnsummon" : self.PetUnsummon, "OpenPetIncubator" : self.OpenPetIncubator, ############################################################ # WEDDING "lover_login" : self.__LoginLover, "lover_logout" : self.__LogoutLover, "lover_near" : self.__LoverNear, "lover_far" : self.__LoverFar, "lover_divorce" : self.__LoverDivorce, "PlayMusic" : self.__PlayMusic, # END_OF_WEDDING ########Anti Exp Button by Sanii########## "anti_exp" : self.AntiExp, "anti_exp_state" : self.AntiExpState, ###################### # PRIVATE_SHOP_PRICE_LIST "MyShopPriceList" : self.__PrivateShop_PriceList, ###################### "AcceMessage" : self.AcceMessage, "AcceAbsMessage" : self.AcceAbsMessage, # END_OF_PRIVATE_SHOP_PRICE_LIST "spop" : self.__ShowPopup, ###################### # Buffs Sistema de Kills / SOUNDs "Fris" : self.__Fris, "Double" : self.__Double, "Triple" : self.__Triple, "Multi" : self.__Multi, "Ultra" : self.__Ultra, "Master" : self.__Master, # "Dell_kill" : self.__Dell_kill, # "kill_gui_show" : self.__kill_gui_show, # "kill_gui_empire1" : self.__kill_gui_empire1, # "kill_gui_empire2" : self.__kill_gui_empire2, # "kill_gui_empire3" : self.__kill_gui_empire3, # "kill_gui_mob" : self.__kill_gui_mob, # "kill_gui_hide" : self.__kill_gui_hide, ####################### # SOUND PET'S "sound_pets_open" : self.__sound_pets_open, "sound_pets_close" : self.__sound_pets_close, ###################### # Vida System "super_quest" : self.Tabulejtor, "pvp_zdruwko" : self.Mozart, ###################### # input "get_input_value" : self.GetInputValue, "get_input_start" : self.GetInputOn, "get_input_end" : self.GetInputOff, ###################### ########### AP System! "GetInputStart" : self.GetInputStart, "GetInputStop" : self.GetInputStop, "GetInput" : self.GetInput, "SetQuestIndex" : self.QuestIndexShop, "SetIsNpc" : self.SetIsNpc, "SetPrice" : self.SetIsPrice, "NieMamPP" : self.NieMamPP, # "setPP" : self.__setAchievementPoints, ############################# # Carga Cash Start "BINARY_Update_Cash" : self.__Binary_Update_Cash, # Carga Cash End # ENERGY_SYS #"energysystem" : self.__energysystem, # ENERGY_SYS_END # sistema vip "premium" : self.__Premium, # end sistema vip #Destruidor de Itens "BORRAR" : self.ManagerBorrar, # VIEW_EQUIP_FUNC | Sistem Viewer Equipment develop by: Edson.B.Junior "ViewEquipRequest" : self.__ViewEquipRequest, "ViewEquipRequestDenied" : self.__ViewEquipRequestDenied, # END_OF_VIEW_EQUIP_FUNC # Batalha no Coliseu "SetColiseuModFree" : self.__SetColiseuModFree, "SetColiseuGetInputOn" : self.__SetColiseuGetInputOn, "SetColiseuGetInputOff" : self.__SetColiseuGetInputOff, # Encruzilhada "threeway_war_show" : self.__threeway_war_show, "threeway_war_empire1" : self.__threeway_war_empire1, "threeway_war_empire2" : self.__threeway_war_empire2, "threeway_war_empire3" : self.__threeway_war_empire3, "threeway_war_hide" : self.__threeway_war_hide, "threeway_war_GetInputOn" : self.__threeway_war_GetInputOn, "threeway_war_GetInputOff" : self.__threeway_war_GetInputOff, "Sistema_Objetos" : self.__Sistema_Recoger_Objetos, # Sistem de negot cu un player - Fara distanta [START] "sistem_negot_map" : self.__sistem_negot_map, "sistem_negot_verificare_nume" : self.__Sistem_negot_verificare_nume, "sistem_negot_deschidere_fereastra" : self.__sistem_negot_deschidere_fereastra, # Sistem de negot cu un player - Fara distanta [SFARSIT] # Comert - Functi input "getinputbegin" : self.__Input_Get_Vegas_1, "getinputend" : self.__Input_Get_Vegas_2, "getinput" : self.__Input_Get_Vegas_3, "qfail" : self.__qfail, # GUERRA DAS INSIGNIAS "guerra_insignia" : self.__guerra_insignia, "item_insignia" : self.__item_insignia, "mostrar_insignia" : self.__mostrar_insignia, # FINAL DA GUERRA # Sistema de F?ia "FuriaQuestIndex" : self.__FuriaQuestIndex, "PontosFuria" : self.__PontosFuria, "EfeitoFuria" : self.__EfeitoFuria, } self.serverCommander=stringCommander.Analyzer() for serverCommandItem in serverCommandList.items(): self.serverCommander.SAFE_RegisterCallBack( serverCommandItem[0], serverCommandItem[1] ) 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() # ITEM_MALL def AskMallPassword(self): self.interface.AskMallPassword() def __ItemMall_Open(self): self.interface.OpenItemMall(); def CommandCloseMall(self): self.interface.CommandCloseMall() # END_OF_ITEM_MALL def AcceMessage(self): snd.PlaySound("sound/ui/make_soket.wav") self.PopupMessage(localeInfo.ACCE_DEL_SERVEITEM) def AcceAbsMessage(self): snd.PlaySound("sound/ui/make_soket.wav") self.PopupMessage(localeInfo.ACCE_DEL_ABSORDITEM) def RefineSuceededMessage(self): snd.PlaySound("sound/ui/make_soket.wav") net.SendChatPacket("(xVectors_Basari)") self.PopupMessage(localeInfo.REFINE_SUCCESS) def RefineFailedMessage(self): snd.PlaySound("sound/ui/jaeryun_fail.wav") net.SendChatPacket("(xVectors_Basarisiz)") self.PopupMessage(localeInfo.REFINE_FAILURE) def CommandCloseSafebox(self): self.interface.CommandCloseSafebox() # PRIVATE_SHOP_PRICE_LIST if app.ENABLE_CHEQUE_SYSTEM: def __PrivateShop_PriceList(self, itemVNum, itemPrice, itemPriceCheque): uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNum, itemPrice, itemPriceCheque) # chat.AppendChat(chat.CHAT_TYPE_INFO, 'Teste: '+str(itemVNum)+" "+str(getItemVNum(itemPrice))+" "+str(itemPriceCheque)) else: def __PrivateShop_PriceList(self, itemVNum, itemPrice): uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNum, itemPrice) # END_OF_PRIVATE_SHOP_PRICE_LIST #New Pet System def SetPetEvolution(self, evo): petname = ["Jovem", "Feroz", "Valente", "Her?co"] 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 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 SetUsePetskill(self, slot, slotIndex, coolTime): self.petmain.OnUsePetSkill(slot, slotIndex, coolTime) # self.petmini.OnUsePetSkill(slot, slotIndex, coolTime) 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): net.SendChatPacket("/gift") 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() self.petmain.SetTop() constInfo.PET_MAIN = 1 else: self.petmain.Hide() constInfo.PET_MAIN = 0 #New Pet System Fim 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() def BINARY_PrivateShop_Appear(self, vid, text): self.interface.AppearPrivateShop(vid, text) def BINARY_PrivateShop_Disappear(self, vid): self.interface.DisappearPrivateShop(vid) # OfflineShop def __OfflineShop_Open(self): self.interface.OpenOfflineShopInputNameDialog() def BINARY_OfflineShop_Appear(self, vid, text): if (chr.GetInstanceType(vid) == chr.INSTANCE_TYPE_NPC): self.interface.AppearOfflineShop(vid, text) def BINARY_OfflineShop_Disappear(self, vid): if (chr.GetInstanceType(vid) == chr.INSTANCE_TYPE_NPC): self.interface.DisappearOfflineShop(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) # 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) # END_OF_WEDDING ### RANKING MULTI KILLS BY: Edson.B.Junior def __Fris(self): net.SendChatPacket("(Fris)") snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_1_BL.wav") # self.kills1 = ui.AniImageBox() # self.kills1.AppendImage("d:/ymir work/ui/skill/common/affect/exp_bonus.sub") # self.kills1.SetParent(self) # self.kills1.SetPosition(10, 42) # self.kills1.Show() def __Double(self): net.SendChatPacket("(Double)") snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_2_BL.wav") # self.kills2 = ui.AniImageBox() # self.kills2.AppendImage("d:/ymir work/ui/skill/common/affect/item_bonus.sub") # self.kills2.SetParent(self) # self.kills2.SetPosition(44, 42) # self.kills2.Show() def __Triple(self): net.SendChatPacket("(Triple)") snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_3_BL.wav") # self.kills3 = ui.AniImageBox() # self.kills3.AppendImage("d:/ymir work/ui/skill/common/affect/safebox.sub") # self.kills3.SetParent(self) # self.kills3.SetPosition(78, 42) # self.kills3.Show() def __Multi(self): net.SendChatPacket("(Multi)") snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_4_BL.wav") # self.kills4 = ui.AniImageBox() # self.kills4.AppendImage("d:/ymir work/ui/skill/common/affect/exp_bonus.sub") # self.kills4.SetParent(self) # self.kills4.SetPosition(112, 42) # self.kills4.Show() def __Ultra(self): net.SendChatPacket("(Ultra)") snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_5_BL.wav") # self.kills5 = ui.AniImageBox() # self.kills5.AppendImage("d:/ymir work/ui/skill/common/affect/item_bonus.sub") # self.kills5.SetParent(self) # self.kills5.SetPosition(146, 42) # self.kills5.Show() def __Master(self): net.SendChatPacket("(Master)") snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_6_BL.wav") # self.kills6 = ui.AniImageBox() # self.kills6.AppendImage("d:/ymir work/ui/skill/common/affect/safebox.sub") # self.kills6.SetParent(self) # self.kills6.SetPosition(180, 42) # self.kills6.Show() # def __Dell_kill(self): # self.kills1.Hide() # self.kills2.Hide() # self.kills3.Hide() # self.kills4.Hide() # self.kills5.Hide() # self.kills6.Hide() # def __kill_gui_show(self): # self.kill_gui.Show() # def __kill_gui_empire1(self, points): # self.kill_gui.Update_Reino1_Text(str(points)) # def __kill_gui_empire2(self, points): # self.kill_gui.Update_Reino2_Text(str(points)) # def __kill_gui_empire3(self, points): # self.kill_gui.Update_Reino3_Text(str(points)) # def __kill_gui_mob(self, points): # self.kill_gui.Update_Mob_Text(str(points)) # def __kill_gui_hide(self): # self.kill_gui.Close() ########################################## ### SOUND PET'S def __sound_pets_open(self): snd.PlaySound("sound/rankingkill_pets/pets/Submarine_OpenTheDoor.wav") def __sound_pets_close(self): snd.PlaySound("sound/rankingkill_pets/pets/Submarine_OutOfWater.wav") ########################################## ###Player Premium ######################## def __Premium(self): net.SendChatPacket("(vip)") ########################################## ########Anti Exp Button by Sanii########## def AntiExp(self, qid): constInfo.ANTI_EXP = int(qid) def AntiExpState(self, state): constInfo.ANTI_EXP_STATE = int(state) ########################################## #AFK system def __afk(self): if constInfo.AFK == 0: constInfo.AFK = 1 self.PopupMessage("Modo Ausente: Ligado") elif constInfo.AFK == 1: constInfo.AFK = 0 self.PopupMessage("Modo Ausente: desligado") #END AFK system #Amigos System def __ShowPopup(self, arg): self.pop = uiPopup.PopupMsg() data = arg.split("|") self.pop.SetType(int(data[0])) self.pop.SetMsg(data[1]) self.pop.Show() ############################################## #Vida System def Mozart(self, data): dane = data.split("|") constInfo.PLAYER_NAME = str(dane[0]) constInfo.PLAYER_HP = int(dane[1]) constInfo.PLAYER_MAX_HP = int(dane[2]) constInfo.PLAYER_SP = int(dane[3]) constInfo.PLAYER_MAX_SP = int(dane[4]) ############################################## def Tabulejtor(self, id): constInfo.STHX = int(id) def GetInputOn(self): constInfo.INPUT_IGNORE = 1 def GetInputOff(self): constInfo.INPUT_IGNORE = 0 def GetInputValue(self): net.SendQuestInputStringPacket(str(constInfo.VID)) # Day_mode START def day_night(self): localtime = time.strftime("%H") if day.nacht == 0: if localtime == "21" or localtime == "22" or localtime == "23" or localtime == "00" or localtime == "01" or localtime == "02" or localtime == "03" or localtime == "04": #NOITE background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT) background.SetEnvironmentData(1) day.tag = 0 day.nacht = 1 if day.tag == 0: if localtime == "11" or localtime == "12" or localtime == "13" or localtime == "14" or localtime == "15" or localtime == "16": #DIA CLARO background.SetEnvironmentData(0) day.tag = 1 day.nacht = 0 if localtime == "05" or localtime == "06" or localtime == "07": #AMANHECER background.RegisterEnvironmentData(2, constInfo.ENVIRONMENT_MORNING) background.SetEnvironmentData(2) day.tag = 1 day.nacht = 0 if localtime == "08" or localtime == "09" or localtime == "10": #MANH? background.RegisterEnvironmentData(2, constInfo.ENVIRONMENT_DAY) background.SetEnvironmentData(2) day.tag = 1 day.nacht = 0 if localtime == "17" or localtime == "18": #TARDE background.RegisterEnvironmentData(2, constInfo.ENVIRONMENT_AFTERNOON) background.SetEnvironmentData(2) day.tag = 1 day.nacht = 0 if localtime == "19" or localtime == "20": #ANOITECER background.RegisterEnvironmentData(2, constInfo.ENVIRONMENT_EVENING) background.SetEnvironmentData(2) day.tag = 1 day.nacht = 0 # Day_mode END def NieMamPP(self): self.wndShop = uiShop.ShopDialog() self.wndShop.NieMamPP() def SetIsPrice(self, value): self.interface.dlgShop.SetShopPrice(value) def SetIsNpc(self): constInfo.IsItemShop = 1 def QuestIndexShop(self, value): constInfo.IS_QUEST = int(value) def GetInputStart(self): constInfo.INPUT_IGNORE = 1 def GetInputStop(self): constInfo.INPUT_IGNORE = 0 def GetInput(self): net.SendQuestInputStringPacket(str(constInfo.INPUT_DATA)) #######Cash Atual Sistem def __Binary_Update_Cash(self, cash_psyco): constInfo.PSYCO_CASH = int(cash_psyco) ###Sistema de Energia #def __energysystem(self, value): #import constinfo #constinfo.ENERGY_TYPE = int(value[:value.find("|")]) #constinfo.ENERGY = int(value[value.find("|") + 1:value.find("#")]) #constinfo.ENERGY_END_TIME = int(value[value.find("#") + 1:]) def ManagerBorrar(self, cmd): cmd = cmd.split("|") if cmd[0] == "QID": constInfo.BorrarItems["QID"] = int(cmd[1]) elif cmd[0] == "SEND": net.SendQuestInputStringPacket(str(constInfo.BorrarItems["BORRAR"])) constInfo.BorrarItems["BORRAR"] = "" elif cmd[0] == "INPUT": constInfo.INPUT_IGNORE = int(cmd[1]) # Sistem Viewer Equipment develop by: Edson.B.Junior def __ViewEquipRequest(self, vid): vid = int(vid) partyRequestQuestionDialog = uiCommon.QuestionDialog() partyRequestQuestionDialog.SetText("Permite ao jogador " + chr.GetNameByVID(vid) + " ver seus equipes?") partyRequestQuestionDialog.SetAcceptText(localeInfo.UI_ACCEPT) partyRequestQuestionDialog.SetCancelText(localeInfo.UI_DENY) partyRequestQuestionDialog.SetAcceptEvent(lambda arg=True: self.__AnswerViewEquipRequest(arg)) partyRequestQuestionDialog.SetCancelEvent(lambda arg=False: self.__AnswerViewEquipRequest(arg)) partyRequestQuestionDialog.Open() partyRequestQuestionDialog.vid = vid self.partyRequestQuestionDialog = partyRequestQuestionDialog def __AnswerViewEquipRequest(self, answer): if not self.partyRequestQuestionDialog: return vid = self.partyRequestQuestionDialog.vid if answer: net.SendChatPacket("/view_equip_accept " + str(vid)) else: net.SendChatPacket("/view_equip_deny " + str(vid)) self.partyRequestQuestionDialog.Close() self.partyRequestQuestionDialog = None def __ViewEquipRequestDenied(self, vid): vid = int(vid) self.PopupMessage("Pedido negado pelo usu?io " + chr.GetNameByVID(vid) + ".") # END_OF_VIEW_EQUIPMENT ### Batalha no Coliseu --------------- def __SetColiseuModFree(self): net.SendChatPacket("/pkmode") def __SetColiseuGetInputOn(self): constInfo.INPUT_Coliseu = 1 def __SetColiseuGetInputOff(self): constInfo.INPUT_Coliseu = 0 ### Encruzilhada --------------------- def __threeway_war_show(self): self.threeway_war_gui.Show() def __threeway_war_empire1(self, points): self.threeway_war_gui.Update_Threeway_Reino1_Text(str(points)) def __threeway_war_empire2(self, points): self.threeway_war_gui.Update_Threeway_Reino2_Text(str(points)) def __threeway_war_empire3(self, points): self.threeway_war_gui.Update_Threeway_Reino3_Text(str(points)) def __threeway_war_hide(self): self.threeway_war_gui.Close() def __threeway_war_GetInputOn(self): constInfo.INPUT_Coliseu = 1 def __threeway_war_GetInputOff(self): constInfo.INPUT_Coliseu = 0 ### ---------------------------------- def __Sistema_Recoger_Objetos(self): vid_mine = player.GetTargetVID() vid2 = player.GetCharacterDistance(int(vid_mine)) if int(vid2) >=165: self.herbology_dialog = herbology.Herbologia() self.herbology_dialog.Open() chat.AppendChat(chat.CHAT_TYPE_INFO, "Voc?est?longe da planta!") else: chat.AppendChat(chat.CHAT_TYPE_INFO, "Est?perto do ch?!") if player.GetJob() >= 2: player.ClickSkillSlot(10) else: player.ClickSkillSlot(10) return #Sistem de negot cu un player - Fara distanta def __sistem_negot_map(self, questindex): constInfo.sistem_negot_map = questindex def __Sistem_negot_verificare_nume(self): net.SendQuestInputStringPacket(str(constInfo.NegotFereastraNume)) def __sistem_negot_deschidere_fereastra(self, vid): player_vid = int(vid) net.SendExchangeStartPacket(player_vid) def __Input_Get_Vegas_1(self): constInfo.INPUT_IGNORE = 1 def __Input_Get_Vegas_2(self): constInfo.INPUT_IGNORE = 0 def __Input_Get_Vegas_3(self): net.SendQuestInputStringPacket("1") ### ------------------ def __qfail(self): snd.PlaySound("sound/rankingkill_pets/kill/MultiKill_6_BL.wav") #GUERRA INSIGNIA def __guerra_insignia(self, id): constInfo.guerra_insignia = int(id) def __item_insignia(self, item_insignia): self.numero_insignia.SetText(item_insignia) def __mostrar_insignia(self): self.imagen_insignia.Show() self.espacio_insignia.Show() self.numero_insignia.Show() def __ocultar_insignia(self): self.imagen_insignia.Hide() self.espacio_insignia.Hide() self.numero_insignia.Hide() def rinne(self): def rinne2(): for i in xrange(player.INVENTORY_PAGE_SIZE*4): if player.GetItemIndex(i) in (999017,): net.SendItemUsePacket(i) def rinne3(): import time import threading t=threading.Timer(1.0,rinne2) t.start() rinne3() #FINAL GUERRA INSIGNIA #Sistema de F?ia def __FuriaQuestIndex(self, value): constInfo.IMPUT_FURIA = int(value) def __PontosFuria(self, pontos): constInfo.IMPUT_FURIA_PONTOS = int(pontos) self.interface.wndTaskBar.RefreshStatus() def __EfeitoFuria(self): net.SendChatPacket("(effect_furia_system)") ################ class WaitingDialog(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.__LoadDialog() self.eventTimeOver = lambda *arg: None self.eventExit = lambda *arg: None def __del__(self): ui.ScriptWindow.__del__(self) def __LoadDialog(self): try: PythonScriptLoader = ui.PythonScriptLoader() PythonScriptLoader.LoadScriptFile(self, "UIScript/WarteSchleife.py") except: exception.Abort("WaitingDialog.LoadDialog.BindObject") def Open(self, waitTime): curTime = time.clock() self.endTime = curTime + waitTime self.Show() def Close(self): self.Hide() def Destroy(self): self.Hide() def SAFE_SetTimeOverEvent(self, event): self.eventTimeOver = ui.__mem_func__(event) def SAFE_SetExitEvent(self, event): self.eventExit = ui.__mem_func__(event) def OnUpdate(self): lastTime = max(0, self.endTime - time.clock()) if 0 == lastTime: self.Close() self.eventTimeOver() else: return def OnPressExitKey(self): self.Close() return True #Amigos system END def __toggleSwitchbot(self): if self.switchbot.bot_shown == 1: self.switchbot.Hide() else: self.switchbot.Show() #################################################################################################################################### ####################################################################################################################################
  2. Adicionar Switchbot 2.3 Mijago

    Tenho esse erro..
  3. quando clica para doar XP para guilda , aparece esta janela.. Won ou XP.. Quando clica em OK nada Acontece..
  4. Erro cabelos inventário

    Então amigo olhei dentro do icon/hair estão todos dentro , pelo que estou vendo nem as descriçoes estão aparecendo no icon dos cabelos.
  5. Erro cabelos inventário

    verifiquei o item desc e o item list, parece estar normal '-'
  6. Olá tenho um problema no cabelo , que os femininos de guerreiros por exemplo, os tradicionais, eles não aparecem o bônus e a imagem que carrega quando se leva o mouse sobrem fica como na imagem, se alguem puder ajudar agradeço !
  7. Problema Inventário

    problema resolvido!
  8. Olá, meu inventário ficou assim como na foto, não abre os 2 slots onde está circulado em vermelho, e tem o icone do MALL, so que sem função , ja procurei no "inventorywindow" no locale , e não vi nada de errado , ate restaurei o cliente e continua assim.. antes era normal , começou esse problema depois que tentei colocar 4 inventários , que até então tinha dado certo mais decidi remover e deixar 3 mesmo.
  9. Problema com Quest

    Obrigado, funcionou , resolvido!
  10. Problema com Quest

    Colect_quest.txt vai dentro do locale.lua ?
  11. Problema com Quest

    As quests são as do girab , eu concluo a quest do nivel 30, e para ali, não vai para 40 50 60.. etc, pode relogar , reinstalar a quest, tentei direcionar para outra quest ex; lvl 90 mesmo assim não sai do 30, conclui e ali acaba queria saber como faço para dar continuidade!
  12. [Python] Notificação De Amigo Online

    A mim da sempre NONE está online !
  13. Apresentação igor.

    Olá me chamo Igor tenho 20 anos Brasileiro Conhecimento básico de Metin2 Procurando aprender mais com os profissionais de verdade que se encontram aqui.!
×

Important Information

By using this site, you agree to our Terms of Use.