Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 68.18 KB | None | 0 0
  1. import ui
  2. import player
  3. import mouseModule
  4. import net
  5. import app
  6. import snd
  7. import item
  8. import player
  9. import chat
  10. import grp
  11. import uiScriptLocale
  12. import uiRefine
  13. import uiAttachMetin
  14. import uiPickMoney
  15. import uiCommon
  16. import uiPrivateShopBuilder # 개인상점 열동안 ItemMove 방지
  17. import localeInfo
  18. import constInfo
  19. import ime
  20. import ui
  21. import ahmetatalayInfo
  22. import wndMgr
  23. import exchange
  24. import uiSearchShop
  25. import uiNewShop
  26. if app.ENABLE_SASH_SYSTEM:
  27. import sash
  28. if app.ENABLE_BIOLOG_SYSTEM:
  29. import uiprofessionalbiolog, uiToolTip
  30. if app.ENABLE_CHANGELOOK_SYSTEM:
  31. import changelook
  32. from _weakref import proxy
  33. from switchbot import Bot
  34. import switchbot
  35. import interfaceModule
  36.  
  37. ITEM_MALL_BUTTON_ENABLE = True
  38.  
  39.  
  40.  
  41. ITEM_FLAG_APPLICABLE = 1 << 14
  42.  
  43. class CostumeWindow(ui.ScriptWindow):
  44.  
  45. def __init__(self, wndInventory):
  46. import exception
  47.  
  48. if not app.ENABLE_COSTUME_SYSTEM:
  49. exception.Abort("What do you do?")
  50. return
  51.  
  52. if not wndInventory:
  53. exception.Abort("wndInventory parameter must be set to InventoryWindow")
  54. return
  55.  
  56. ui.ScriptWindow.__init__(self)
  57.  
  58. self.isLoaded = 0
  59. self.wndInventory = wndInventory;
  60.  
  61. self.__LoadWindow()
  62.  
  63. def __del__(self):
  64. ui.ScriptWindow.__del__(self)
  65.  
  66. def Show(self):
  67. self.__LoadWindow()
  68. self.RefreshCostumeSlot()
  69.  
  70. ui.ScriptWindow.Show(self)
  71.  
  72. def Close(self):
  73. self.Hide()
  74.  
  75. if app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  76. def HighlightSlot(self, slot):
  77. if not slot in self.listHighlightedSlot:
  78. self.listHighlightedSlot.append(slot)
  79.  
  80. def __LoadWindow(self):
  81. if self.isLoaded == 1:
  82. return
  83.  
  84. self.isLoaded = 1
  85.  
  86. try:
  87. pyScrLoader = ui.PythonScriptLoader()
  88. pyScrLoader.LoadScriptFile(self, "UIScript/costumewindow.py")
  89. except:
  90. import exception
  91. exception.Abort("CostumeWindow.LoadWindow.LoadObject")
  92.  
  93. try:
  94. wndEquip = self.GetChild("CostumeSlot")
  95. self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
  96.  
  97. except:
  98. import exception
  99. exception.Abort("CostumeWindow.LoadWindow.BindObject")
  100.  
  101. ## Equipment
  102. wndEquip.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
  103. wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
  104. wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
  105. wndEquip.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
  106. wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
  107. wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
  108.  
  109. self.wndEquip = wndEquip
  110.  
  111. def RefreshCostumeSlot(self):
  112. getItemVNum=player.GetItemIndex
  113. for i in xrange(item.COSTUME_SLOT_COUNT):
  114. slotNumber = item.COSTUME_SLOT_START + i
  115. self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0)
  116. if app.ENABLE_CHANGELOOK_SYSTEM:
  117. itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  118. if itemTransmutedVnum:
  119. self.wndEquip.DisableCoverButton(slotNumber)
  120. else:
  121. self.wndEquip.EnableCoverButton(slotNumber)
  122.  
  123. slotNumber = item.EQUIPMENT_BELT + 1
  124. self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0)
  125. if app.ENABLE_CHANGELOOK_SYSTEM:
  126. itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  127. if itemTransmutedVnum:
  128. self.wndEquip.DisableCoverButton(slotNumber)
  129. else:
  130. self.wndEquip.EnableCoverButton(slotNumber)
  131.  
  132. self.wndEquip.RefreshSlot()
  133. class BeltInventoryWindow(ui.ScriptWindow):
  134.  
  135. def __init__(self, wndInventory):
  136. import exception
  137.  
  138. if not app.ENABLE_NEW_EQUIPMENT_SYSTEM:
  139. exception.Abort("What do you do?")
  140. return
  141.  
  142. if not wndInventory:
  143. exception.Abort("wndInventory parameter must be set to InventoryWindow")
  144. return
  145.  
  146. ui.ScriptWindow.__init__(self)
  147.  
  148. self.isLoaded = 0
  149. self.wndInventory = wndInventory;
  150.  
  151. self.wndBeltInventoryLayer = None
  152. self.wndBeltInventorySlot = None
  153. self.expandBtn = None
  154. self.minBtn = None
  155.  
  156. self.__LoadWindow()
  157.  
  158. def __del__(self):
  159. ui.ScriptWindow.__del__(self)
  160.  
  161. def Show(self, openBeltSlot = False):
  162. self.__LoadWindow()
  163. self.RefreshSlot()
  164.  
  165. ui.ScriptWindow.Show(self)
  166.  
  167. if openBeltSlot:
  168. self.OpenInventory()
  169. else:
  170. self.CloseInventory()
  171.  
  172. def Close(self):
  173. self.Hide()
  174.  
  175. if app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  176. def HighlightSlot(self, slot):
  177. if not slot in self.listHighlightedSlot:
  178. self.listHighlightedSlot.append(slot)
  179.  
  180. def IsOpeningInventory(self):
  181. return self.wndBeltInventoryLayer.IsShow()
  182.  
  183. def OpenInventory(self):
  184. self.wndBeltInventoryLayer.Show()
  185. self.expandBtn.Hide()
  186.  
  187. if localeInfo.IsARABIC() == 0:
  188. self.AdjustPositionAndSize()
  189.  
  190. def CloseInventory(self):
  191. self.wndBeltInventoryLayer.Hide()
  192. self.expandBtn.Show()
  193.  
  194. if localeInfo.IsARABIC() == 0:
  195. self.AdjustPositionAndSize()
  196.  
  197. ## 현재 인벤토리 위치를 기준으로 BASE 위치를 계산, 리턴.. 숫자 하드코딩하기 정말 싫지만 방법이 없다..
  198. if app.ENABLE_BIOLOG_SYSTEM:
  199. def GetBasePosition(self):
  200. x, y = self.wndInventory.GetGlobalPosition()
  201. return x - 148, y + 385
  202. else:
  203. def GetBasePosition(self):
  204. x, y = self.wndInventory.GetGlobalPosition()
  205. return x - 148, y + 241
  206.  
  207. def AdjustPositionAndSize(self):
  208. bx, by = self.GetBasePosition()
  209.  
  210. if self.IsOpeningInventory():
  211. self.SetPosition(bx, by)
  212. self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight())
  213.  
  214. else:
  215. self.SetPosition(bx + 138, by);
  216. self.SetSize(10, self.GetHeight())
  217.  
  218. def __LoadWindow(self):
  219. if self.isLoaded == 1:
  220. return
  221.  
  222. self.isLoaded = 1
  223.  
  224. try:
  225. pyScrLoader = ui.PythonScriptLoader()
  226. pyScrLoader.LoadScriptFile(self, "UIScript/BeltInventoryWindow.py")
  227. except:
  228. import exception
  229. exception.Abort("CostumeWindow.LoadWindow.LoadObject")
  230.  
  231. try:
  232. self.ORIGINAL_WIDTH = self.GetWidth()
  233. wndBeltInventorySlot = self.GetChild("BeltInventorySlot")
  234. self.wndBeltInventoryLayer = self.GetChild("BeltInventoryLayer")
  235. self.expandBtn = self.GetChild("ExpandBtn")
  236. self.minBtn = self.GetChild("MinimizeBtn")
  237.  
  238. self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory))
  239. self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory))
  240.  
  241. if localeInfo.IsARABIC() :
  242. self.expandBtn.SetPosition(self.expandBtn.GetWidth() - 2, 15)
  243. self.wndBeltInventoryLayer.SetPosition(self.wndBeltInventoryLayer.GetWidth() - 5, 0)
  244. self.minBtn.SetPosition(self.minBtn.GetWidth() + 3, 15)
  245.  
  246. for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):
  247. slotNumber = item.BELT_INVENTORY_SLOT_START + i
  248. wndBeltInventorySlot.SetCoverButton(slotNumber, "d:/ymir work/ui/game/quest/slot_button_01.sub",\
  249. "d:/ymir work/ui/game/quest/slot_button_01.sub",\
  250. "d:/ymir work/ui/game/quest/slot_button_01.sub",\
  251. "d:/ymir work/ui/game/belt_inventory/slot_disabled.tga", False, False)
  252.  
  253. except:
  254. import exception
  255. exception.Abort("CostumeWindow.LoadWindow.BindObject")
  256.  
  257. ## Equipment
  258. wndBeltInventorySlot.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
  259. wndBeltInventorySlot.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
  260. wndBeltInventorySlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
  261. wndBeltInventorySlot.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
  262. wndBeltInventorySlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
  263. wndBeltInventorySlot.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
  264.  
  265. self.wndBeltInventorySlot = wndBeltInventorySlot
  266.  
  267. def RefreshSlot(self):
  268. getItemVNum=player.GetItemIndex
  269.  
  270. for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):
  271. slotNumber = item.BELT_INVENTORY_SLOT_START + i
  272. self.wndBeltInventorySlot.SetItemSlot(slotNumber, getItemVNum(slotNumber), player.GetItemCount(slotNumber))
  273. self.wndBeltInventorySlot.SetAlwaysRenderCoverButton(slotNumber, True)
  274.  
  275. avail = "0"
  276.  
  277. if player.IsAvailableBeltInventoryCell(slotNumber):
  278. self.wndBeltInventorySlot.EnableCoverButton(slotNumber)
  279. else:
  280. self.wndBeltInventorySlot.DisableCoverButton(slotNumber)
  281.  
  282. self.wndBeltInventorySlot.RefreshSlot()
  283.  
  284. if app.ENABLE_BIOLOG_SYSTEM:
  285. ###################################################################
  286. # title_name : Professional Biolog System
  287. # date_created : 2016.08.07
  288. # filename : uiInventory.py
  289. # author : VegaS
  290. # version_actual : Version 0.2.8
  291. #
  292. class CollectInventoryWindow(ui.ScriptWindow):
  293. def __init__(self, wndInventory):
  294. import exception
  295. if not wndInventory:
  296. exception.Abort("wndInventory parameter must be set to CollectInventoryWindow")
  297. return
  298. ui.ScriptWindow.__init__(self)
  299. self.isLoaded = 0
  300. self.updated = 0
  301. self.wndInventory = wndInventory;
  302. self.tooltipItem = uiToolTip.ItemToolTip()
  303. self.tooltipItem.Hide()
  304. self.wndBeltInventoryLayer = None
  305. self.wndBeltInventorySlot = None
  306. self.expandBtn = None
  307. self.minBtn = None
  308. self.gameWindow = None
  309. self.__LoadWindow()
  310.  
  311. def __del__(self):
  312. ui.ScriptWindow.__del__(self)
  313.  
  314. def Show(self, openBeltSlot = False):
  315. self.__LoadWindow()
  316. ui.ScriptWindow.Show(self)
  317.  
  318. if openBeltSlot:
  319. self.OpenInventory()
  320. else:
  321. self.CloseInventory()
  322.  
  323. def Close(self):
  324. self.Hide()
  325.  
  326. def IsOpeningInventory(self):
  327. return self.wndBeltInventoryLayer.IsShow()
  328.  
  329. def OpenInventory(self):
  330. self.wndBeltInventoryLayer.Show()
  331. self.expandBtn.Hide()
  332.  
  333. self.AdjustPositionAndSize()
  334.  
  335. def CloseInventory(self):
  336. self.wndBeltInventoryLayer.Hide()
  337. self.expandBtn.Show()
  338.  
  339. self.AdjustPositionAndSize()
  340.  
  341. def GetBasePosition(self):
  342. x, y = self.wndInventory.GetGlobalPosition()
  343. return x - 148, y + 260
  344.  
  345. def AdjustPositionAndSize(self):
  346. bx, by = self.GetBasePosition()
  347.  
  348. if self.IsOpeningInventory():
  349. self.SetPosition(bx, by)
  350. self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight())
  351. else:
  352. self.SetPosition(bx + 138, by);
  353. self.SetSize(10, self.GetHeight())
  354.  
  355. def __LoadWindow(self):
  356. if self.isLoaded == 1:
  357. return
  358.  
  359. self.isLoaded = 1
  360.  
  361. try:
  362. pyScrLoader = ui.PythonScriptLoader()
  363. pyScrLoader.LoadScriptFile(self, "UIScript/biolog_collectinventorywindow.py")
  364. except:
  365. import exception
  366. exception.Abort("CollectInventoryWindow.LoadWindow.LoadObject")
  367.  
  368. try:
  369. self.ORIGINAL_WIDTH = self.GetWidth()
  370. self.wndBeltInventoryLayer = self.GetChild("BeltInventoryLayer")
  371. self.wndItem = self.GetChild("BeltInventorySlot")
  372. self.time_value = self.GetChild("time_value")
  373. self.biolog_count = self.GetChild("count_value")
  374. self.expandBtn = self.GetChild("ExpandBtn")
  375. self.minBtn = self.GetChild("MinimizeBtn")
  376. self.sendBtn = self.GetChild("send_biolog")
  377. self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory))
  378. self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory))
  379. self.wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  380. self.wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  381. except:
  382. import exception
  383. exception.Abort("CollectInventoryWindow.LoadWindow.BindObject")
  384.  
  385. if self.sendBtn:
  386. self.sendBtn.SetEvent(ui.__mem_func__(self.AcceptBiolog))
  387.  
  388. def SetItem(self, arg1, arg2, arg3):
  389. self.wndItem.SetItemSlot(0, int(uiprofessionalbiolog.BIOLOG_BINARY_LOADED["vnum"][0]), 0)
  390.  
  391. def AcceptBiolog(self):
  392. net.SendChatPacket("/biolog")
  393.  
  394. def SetTime(self, time):
  395. time_collect = time - app.GetGlobalTimeStamp()
  396.  
  397. if time_collect < 0:
  398. time_collect = 0
  399.  
  400. if time_collect == 1:
  401. self.wndLeftTime = uiprofessionalbiolog.Biolog_TimeExpired()
  402. self.wndLeftTime.OpenWindow()
  403. self.wndLeftTime.Show()
  404.  
  405. self.time_value.SetText(localeInfo.FormatTime(time_collect))
  406.  
  407. def OnUpdate(self):
  408. self.SetTime(int(uiprofessionalbiolog.BIOLOG_BINARY_LOADED["time"][0]))
  409. self.SetItem(0, uiprofessionalbiolog.BIOLOG_BINARY_LOADED["vnum"][0], 0)
  410. self.biolog_count.SetText(uiprofessionalbiolog.BIOLOG_BINARY_LOADED['countActual'][0] + "/" + uiprofessionalbiolog.BIOLOG_BINARY_LOADED['countNeed'][0])
  411.  
  412. def OverInItem(self):
  413. if uiprofessionalbiolog.BIOLOG_BINARY_LOADED["vnum"][0]:
  414. self.tooltipItem.SetItemToolTip(uiprofessionalbiolog.BIOLOG_BINARY_LOADED["vnum"][0])
  415.  
  416. def OverOutItem(self):
  417. if self.tooltipItem:
  418. self.tooltipItem.HideToolTip()
  419.  
  420. class InventoryWindow(ui.ScriptWindow):
  421.  
  422. if app.ENABLE_COSTUME_ATTR_SYSTEM:
  423. USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET", "USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ATTRIBUTE2", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET", "USE_COSTUME_ENCHANT", "USE_COSTUME_TRANSFORM", "USE_SPECIAL")
  424. else:
  425. USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET", "USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ATTRIBUTE2", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET", "USE_SPECIAL")
  426.  
  427. questionDialog = None
  428. tooltipItem = None
  429. wndCostume = None
  430. wndBelt = None
  431. if app.ENABLE_BIOLOG_SYSTEM:
  432. wndCollect = None
  433. dlgPickMoney = None
  434. interface = None
  435. if app.WJ_ENABLE_TRADABLE_ICON:
  436. bindWnds = []
  437.  
  438. sellingSlotNumber = -1
  439. isLoaded = 0
  440. isOpenedCostumeWindowWhenClosingInventory = 0 # 인벤토리 닫을 때 코스츔이 열려있었는지 여부-_-; 네이밍 ㅈㅅ
  441. if app.ENABLE_BIOLOG_SYSTEM:
  442. isOpenedCollectWindowWhenClosingInventory = 0
  443. isOpenedBeltWindowWhenClosingInventory = 0 # 인벤토리 닫을 때 벨트 인벤토리가 열려있었는지 여부-_-; 네이밍 ㅈㅅ
  444.  
  445. def __init__(self):
  446. ui.ScriptWindow.__init__(self)
  447.  
  448. self.isOpenedBeltWindowWhenClosingInventory = 0 # 인벤토리 닫을 때 벨트 인벤토리가 열려있었는지 여부-_-; 네이밍 ㅈㅅ
  449. self.uiSearchShop=uiSearchShop.ShopSearch()
  450. self.switchbot = Bot()
  451. self.__LoadWindow()
  452.  
  453. def __del__(self):
  454. ui.ScriptWindow.__del__(self)
  455.  
  456. def Show(self):
  457. self.__LoadWindow()
  458.  
  459. ui.ScriptWindow.Show(self)
  460.  
  461. # 인벤토리를 닫을 때 코스츔이 열려있었다면 인벤토리를 열 때 코스츔도 같이 열도록 함.
  462. if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume:
  463. self.wndCostume.Show()
  464.  
  465. if app.ENABLE_BIOLOG_SYSTEM:
  466. if self.wndCollect:
  467. self.wndCollect.Show(self.isOpenedCollectWindowWhenClosingInventory)
  468.  
  469. # Belt System
  470. if self.wndBelt:
  471. self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory)
  472.  
  473. job = player.GetJob()
  474.  
  475. if job == 1:
  476. if self.wndEquip:
  477. self.wndEquip.Hide()
  478.  
  479. if self.wndEquipNinja:
  480. self.wndEquipNinja.Show()
  481.  
  482. if self.wndEquipBase:
  483. self.wndEquipBase.LoadImage("inventory/equipment_bg_without_ring_ninja.tga")
  484. else:
  485. if self.wndEquip:
  486. self.wndEquip.Show()
  487.  
  488. if self.wndEquipNinja:
  489. self.wndEquipNinja.Hide()
  490.  
  491. if self.wndEquipBase:
  492. self.wndEquipBase.LoadImage("inventory/equipment_bg_without_ring.tga")
  493.  
  494. def BindInterfaceClass(self, interface):
  495. self.interface = interface
  496.  
  497. if app.WJ_ENABLE_TRADABLE_ICON:
  498. def BindWindow(self, wnd):
  499. self.bindWnds.append(wnd)
  500.  
  501. def __LoadWindow(self):
  502. if self.isLoaded == 1:
  503. return
  504.  
  505. self.isLoaded = 1
  506.  
  507. try:
  508. pyScrLoader = ui.PythonScriptLoader()
  509. pyScrLoader.LoadScriptFile(self, "UIScript/InventoryWindow.py")
  510. except:
  511. import exception
  512. exception.Abort("InventoryWindow.LoadWindow.LoadObject")
  513.  
  514. try:
  515. wndItem = self.GetChild("ItemSlot")
  516. wndEquip = self.GetChild("EquipmentSlot")
  517. wndEquipNinja = self.GetChild("EquipmentSlotNinja")
  518.  
  519. self.wndEquipBase = self.GetChild("Equipment_Base")
  520. self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
  521. self.DSSButton = self.GetChild2("DSSButton")
  522. self.SpecialStorageButton = self.GetChild2("SpecialStorageButton")
  523. # self.INFOCHESTButton = self.GetChild2("INFOCHESTButton")
  524. self.costumeButton = self.GetChild2("CostumeButton")
  525. self.arrange_button = self.GetChild2("arrange_button")
  526.  
  527. self.inventoryTab = []
  528. for i in xrange(player.INVENTORY_PAGE_COUNT):
  529. self.inventoryTab.append(self.GetChild("Inventory_Tab_%02d" % (i+1)))
  530.  
  531. self.equipmentTab = []
  532. self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))
  533. self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))
  534.  
  535. if self.costumeButton and not app.ENABLE_COSTUME_SYSTEM:
  536. self.costumeButton.Hide()
  537. self.costumeButton.Destroy()
  538. self.costumeButton = 0
  539.  
  540. # Belt Inventory Window
  541. self.wndBelt = None
  542.  
  543. if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
  544. self.wndBelt = BeltInventoryWindow(self)
  545. if app.ENABLE_BIOLOG_SYSTEM:
  546. self.wndCollect = None
  547. self.wndCollect = CollectInventoryWindow(self)
  548.  
  549. except:
  550. import exception
  551. exception.Abort("InventoryWindow.LoadWindow.BindObject")
  552.  
  553. ## Item
  554. wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
  555. wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
  556. wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
  557. wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
  558. wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  559. wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  560.  
  561. ## Equipment
  562. wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
  563. wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
  564. wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
  565. wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
  566. wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  567. wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  568.  
  569. wndEquipNinja.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
  570. wndEquipNinja.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
  571. wndEquipNinja.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
  572. wndEquipNinja.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
  573. wndEquipNinja.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  574. wndEquipNinja.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  575.  
  576. ## PickMoneyDialog
  577. dlgPickMoney = uiPickMoney.PickMoneyDialog()
  578. dlgPickMoney.LoadDialog()
  579. dlgPickMoney.Hide()
  580.  
  581. ## RefineDialog
  582. self.refineDialog = uiRefine.RefineDialog()
  583. self.refineDialog.Hide()
  584.  
  585. ## AttachMetinDialog
  586. if app.WJ_ENABLE_TRADABLE_ICON:
  587. self.attachMetinDialog = uiAttachMetin.AttachMetinDialog(self)
  588. self.BindWindow(self.attachMetinDialog)
  589. else:
  590. self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()
  591. self.attachMetinDialog.Hide()
  592.  
  593. ## MoneySlot
  594. #self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))
  595.  
  596. for i in xrange(player.INVENTORY_PAGE_COUNT):
  597. self.inventoryTab[i].SetEvent(lambda arg=i: self.SetInventoryPage(arg))
  598. self.inventoryTab[0].Down()
  599.  
  600. self.equipmentTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg))
  601. self.equipmentTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg))
  602. self.equipmentTab[0].Down()
  603. self.equipmentTab[0].Hide()
  604. self.equipmentTab[1].Hide()
  605.  
  606. self.wndItem = wndItem
  607. self.wndEquip = wndEquip
  608. self.wndEquipNinja = wndEquipNinja
  609. self.dlgPickMoney = dlgPickMoney
  610.  
  611. # MallButton
  612. # if self.mallButton:
  613. # self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))
  614.  
  615. if self.DSSButton:
  616. self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton))
  617.  
  618. if self.SpecialStorageButton:
  619. self.SpecialStorageButton.SetEvent(ui.__mem_func__(self.ClickSpecialStorageButton))
  620.  
  621. # if self.OFFButton:
  622. # self.OFFButton.SetEvent(ui.__mem_func__(self.ClickOFFButton))
  623.  
  624. # if self.SWITCHButton:
  625. # self.SWITCHButton.SetEvent(ui.__mem_func__(self.SwitchBot))
  626.  
  627. # if self.INFOCHESTButton:
  628. # self.INFOCHESTButton.SetEvent(ui.__mem_func__(self.InfoChest))
  629.  
  630. # Costume Button
  631. if self.costumeButton:
  632. self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton))
  633.  
  634. if self.arrange_button:
  635. self.arrange_button.SetEvent(ui.__mem_func__(self.click_arrange))
  636.  
  637. self.wndCostume = None
  638.  
  639. if app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  640. self.listHighlightedSlot = []
  641.  
  642. #####
  643.  
  644. ## Refresh
  645. if app.ENABLE_SASH_SYSTEM:
  646. self.listAttachedSashs = []
  647. if app.ENABLE_CHANGELOOK_SYSTEM:
  648. self.listAttachedCl = []
  649. self.SetInventoryPage(0)
  650. self.SetEquipmentPage(0)
  651. self.RefreshItemSlot()
  652. self.RefreshStatus()
  653.  
  654. def Destroy(self):
  655. self.ClearDictionary()
  656.  
  657. self.dlgPickMoney.Destroy()
  658. self.dlgPickMoney = 0
  659.  
  660. self.refineDialog.Destroy()
  661. self.refineDialog = 0
  662.  
  663. self.attachMetinDialog.Destroy()
  664. self.attachMetinDialog = 0
  665.  
  666. self.tooltipItem = None
  667. self.wndItem = 0
  668. self.wndEquip = 0
  669. self.wndEquipNinja = 0
  670. self.dlgPickMoney = 0
  671. #self.wndMoney = 0
  672. #self.wndMoneySlot = 0
  673. self.questionDialog = None
  674. self.arrange_button = None
  675. # self.mallButton = None
  676. self.DSSButton = None
  677. # self.OFFButton = None
  678. # self.SWITCHButton = None
  679. # self.INFOCHESTButton = None
  680. self.interface = None
  681. if app.WJ_ENABLE_TRADABLE_ICON:
  682. self.bindWnds = []
  683.  
  684. if self.wndCostume:
  685. self.wndCostume.Destroy()
  686. self.wndCostume = 0
  687.  
  688. if self.wndBelt:
  689. self.wndBelt.Destroy()
  690. self.wndBelt = None
  691.  
  692. if app.ENABLE_BIOLOG_SYSTEM:
  693. if self.wndCollect:
  694. self.wndCollect.Destroy()
  695. self.wndCollect = None
  696.  
  697. if self.uiSearchShop:
  698. self.uiSearchShop.Destroy()
  699. self.uiSearchShop = None
  700.  
  701. self.inventoryTab = []
  702. self.equipmentTab = []
  703.  
  704. def Hide(self):
  705. if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
  706. self.OnCloseQuestionDialog()
  707. return
  708. if None != self.tooltipItem:
  709. self.tooltipItem.HideToolTip()
  710.  
  711. if self.wndCostume:
  712. self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow() # 인벤토리 창이 닫힐 때 코스츔이 열려 있었는가?
  713. self.wndCostume.Close()
  714.  
  715. if app.ENABLE_BIOLOG_SYSTEM:
  716. if self.wndCollect:
  717. self.isOpenedCollectWindowWhenClosingInventory = self.wndCollect.IsOpeningInventory()
  718. print "Is opening Biolog Inventory", self.isOpenedCollectWindowWhenClosingInventory
  719. self.wndCollect.Close()
  720.  
  721. if self.wndBelt:
  722. self.isOpenedBeltWindowWhenClosingInventory = self.wndBelt.IsOpeningInventory() # 인벤토리 창이 닫힐 때 벨트 인벤토리도 열려 있었는가?
  723. print "Is Opening Belt Inven?? ", self.isOpenedBeltWindowWhenClosingInventory
  724. self.wndBelt.Close()
  725.  
  726. if self.dlgPickMoney:
  727. self.dlgPickMoney.Close()
  728.  
  729. self.OnCloseQuestionDialog()
  730.  
  731. wndMgr.Hide(self.hWnd)
  732.  
  733.  
  734. def Close(self):
  735. self.Hide()
  736.  
  737. if app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  738. def HighlightSlot(self, slot):
  739. if not slot in self.listHighlightedSlot:
  740. self.listHighlightedSlot.append(slot)
  741.  
  742. def SetInventoryPage(self, page):
  743. self.inventoryPageIndex = page
  744. for i in xrange(player.INVENTORY_PAGE_COUNT):
  745. if i!=page:
  746. self.inventoryTab[i].SetUp()
  747. self.RefreshBagSlotWindow()
  748.  
  749. def SetEquipmentPage(self, page):
  750. self.equipmentPageIndex = page
  751. self.equipmentTab[1-page].SetUp()
  752. self.RefreshEquipSlotWindow()
  753.  
  754. # def ClickMallButton(self):
  755. # print "click_mall_button"
  756. # net.SendChatPacket("/click_mall")
  757.  
  758. # DSSButton
  759. # def ClickOFFButton(self):
  760. # print "click_off_button"
  761. # import uiNewShop
  762. # net.SendChatPacket("/open_shop")
  763.  
  764. def ClickDSSButton(self):
  765. self.interface.ToggleDragonSoulWindow()
  766.  
  767. def ClickSpecialStorageButton(self):
  768. self.interface.ToggleSpecialStorageWindow()
  769.  
  770. # def SwitchBot(self):
  771. # self.interface.ToggleSpecialStorageWindow()
  772.  
  773. # def InfoChest(self):
  774. # self.meniuinventar = uiInventoryMenue.InventoryMenueDialog()
  775. # self.meniuinventar.Show()
  776. def click_arrange(self):
  777. self.__ClickStartButton()
  778.  
  779. def __ClickStartButton(self):
  780. startQuestionDialog = uiCommon.QuestionDialog2()
  781. startQuestionDialog.SetText1("Acesta optiune ajuta la stacarea obiectelor din inventar.")
  782. startQuestionDialog.SetText2("Doresti sa continui aceasta actiune ?")
  783. startQuestionDialog.SetAcceptEvent(ui.__mem_func__(self.__StartAccept))
  784. startQuestionDialog.SetCancelEvent(ui.__mem_func__(self.__StartCancel))
  785. startQuestionDialog.Open()
  786. self.startQuestionDialog = startQuestionDialog
  787.  
  788. def __StartAccept(self):
  789. net.SendChatPacket("/click_sort_items")
  790. self.__StartCancel()
  791.  
  792. def __StartCancel(self):
  793. self.startQuestionDialog.Close()
  794.  
  795. def ClickCostumeButton(self):
  796. print "Click Costume Button"
  797. if self.wndCostume:
  798. if self.wndCostume.IsShow():
  799. self.wndCostume.Hide()
  800. else:
  801. self.wndCostume.Show()
  802. else:
  803. self.wndCostume = CostumeWindow(self)
  804. self.wndCostume.Show()
  805.  
  806. def OpenPickMoneyDialog(self):
  807.  
  808. if mouseModule.mouseController.isAttached():
  809.  
  810. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  811. if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():
  812.  
  813. if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
  814. net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
  815. snd.PlaySound("sound/ui/money.wav")
  816.  
  817. mouseModule.mouseController.DeattachObject()
  818.  
  819. else:
  820. curMoney = player.GetElk()
  821.  
  822. if curMoney <= 0:
  823. return
  824.  
  825. self.dlgPickMoney.SetTitleName(localeInfo.PICK_MONEY_TITLE)
  826. self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
  827. self.dlgPickMoney.Open(curMoney)
  828. self.dlgPickMoney.SetMax(7) # 인벤토리 990000 제한 버그 수정
  829.  
  830. def OnPickMoney(self, money):
  831. mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)
  832.  
  833. def OnPickItem(self, count):
  834. itemSlotIndex = self.dlgPickMoney.itemGlobalSlotIndex
  835. selectedItemVNum = player.GetItemIndex(itemSlotIndex)
  836. mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, count)
  837.  
  838. def __InventoryLocalSlotPosToGlobalSlotPos(self, local):
  839. if player.IsEquipmentSlot(local) or player.IsCostumeSlot(local) or (app.ENABLE_NEW_EQUIPMENT_SYSTEM and player.IsBeltInventorySlot(local)):
  840. return local
  841.  
  842. return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local
  843.  
  844. def GetInventoryPageIndex(self):
  845. return self.inventoryPageIndex
  846.  
  847. if app.WJ_ENABLE_TRADABLE_ICON:
  848. def RefreshMarkSlots(self, localIndex=None):
  849. if not self.interface:
  850. return
  851.  
  852. onTopWnd = self.interface.GetOnTopWindow()
  853. if localIndex:
  854. slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(localIndex)
  855. if onTopWnd == player.ON_TOP_WND_NONE:
  856. self.wndItem.SetUsableSlotOnTopWnd(localIndex)
  857.  
  858. elif onTopWnd == player.ON_TOP_WND_SHOP:
  859. if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SELL):
  860. self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
  861. else:
  862. self.wndItem.SetUsableSlotOnTopWnd(localIndex)
  863.  
  864. elif onTopWnd == player.ON_TOP_WND_EXCHANGE:
  865. if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_GIVE):
  866. self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
  867. else:
  868. self.wndItem.SetUsableSlotOnTopWnd(localIndex)
  869.  
  870. elif onTopWnd == player.ON_TOP_WND_PRIVATE_SHOP:
  871. if player.IsAntiFlagBySlot(slotNumber, item.ITEM_ANTIFLAG_MYSHOP):
  872. self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
  873. else:
  874. self.wndItem.SetUsableSlotOnTopWnd(localIndex)
  875.  
  876. elif onTopWnd == player.ON_TOP_WND_SAFEBOX:
  877. if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SAFEBOX):
  878. self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
  879. else:
  880. self.wndItem.SetUsableSlotOnTopWnd(localIndex)
  881.  
  882. return
  883.  
  884. for i in xrange(player.INVENTORY_PAGE_SIZE):
  885. slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
  886.  
  887. if onTopWnd == player.ON_TOP_WND_NONE:
  888. self.wndItem.SetUsableSlotOnTopWnd(i)
  889.  
  890. elif onTopWnd == player.ON_TOP_WND_SHOP:
  891. if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SELL):
  892. self.wndItem.SetUnusableSlotOnTopWnd(i)
  893. else:
  894. self.wndItem.SetUsableSlotOnTopWnd(i)
  895.  
  896. elif onTopWnd == player.ON_TOP_WND_EXCHANGE:
  897. if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_GIVE):
  898. self.wndItem.SetUnusableSlotOnTopWnd(i)
  899. else:
  900. self.wndItem.SetUsableSlotOnTopWnd(i)
  901.  
  902. elif onTopWnd == player.ON_TOP_WND_PRIVATE_SHOP:
  903. if player.IsAntiFlagBySlot(slotNumber, item.ITEM_ANTIFLAG_MYSHOP):
  904. self.wndItem.SetUnusableSlotOnTopWnd(i)
  905. else:
  906. self.wndItem.SetUsableSlotOnTopWnd(i)
  907.  
  908. elif onTopWnd == player.ON_TOP_WND_SAFEBOX:
  909. if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SAFEBOX):
  910. self.wndItem.SetUnusableSlotOnTopWnd(i)
  911. else:
  912. self.wndItem.SetUsableSlotOnTopWnd(i)
  913.  
  914. def RefreshBagSlotWindow(self):
  915. is_activated = 0
  916. getItemVNum=player.GetItemIndex
  917. getItemCount=player.GetItemCount
  918. setItemVNum=self.wndItem.SetItemSlot
  919.  
  920. for i in xrange(player.INVENTORY_PAGE_SIZE*2):
  921. slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
  922.  
  923. itemCount = getItemCount(slotNumber)
  924.  
  925. if 0 == itemCount:
  926. self.wndItem.ClearSlot(i)
  927. continue
  928. elif 1 == itemCount:
  929. itemCount = 0
  930.  
  931. itemVnum = getItemVNum(slotNumber)
  932. setItemVNum(i, itemVnum, itemCount)
  933.  
  934. if app.ENABLE_CHANGELOOK_SYSTEM:
  935. itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  936. if itemTransmutedVnum:
  937. self.wndItem.DisableCoverButton(i)
  938. else:
  939. self.wndItem.EnableCoverButton(i)
  940.  
  941. if constInfo.IS_AUTO_POTION(itemVnum):
  942. metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
  943. if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex:
  944. slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex
  945.  
  946. isActivated = 0 != metinSocket[0]
  947. if isActivated:
  948. self.wndItem.ActivateSlotOld(i)
  949. potionType = 0;
  950. if constInfo.IS_AUTO_POTION_HP(itemVnum):
  951. potionType = player.AUTO_POTION_TYPE_HP
  952. elif constInfo.IS_AUTO_POTION_SP(itemVnum):
  953. potionType = player.AUTO_POTION_TYPE_SP
  954.  
  955. usedAmount = int(metinSocket[1])
  956. totalAmount = int(metinSocket[2])
  957. player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, self.__InventoryLocalSlotPosToGlobalSlotPos(i))
  958. else:
  959. self.wndItem.DeactivateSlotOld(i)
  960.  
  961. elif app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  962. if slotNumber in self.listHighlightedSlot:
  963. self.wndItem.ActivateSlot(i)
  964.  
  965. if app.WJ_ENABLE_TRADABLE_ICON:
  966. self.RefreshMarkSlots(i)
  967.  
  968. if app.ENABLE_SASH_SYSTEM or app.ENABLE_CHANGELOOK_SYSTEM:
  969. if not constInfo.IS_AUTO_POTION(itemVnum):
  970. self.wndItem.DeactivateSlotOld(i)
  971.  
  972. if app.ENABLE_SASH_SYSTEM:
  973. slotNumberChecked = 0
  974. if not constInfo.IS_AUTO_POTION(itemVnum):
  975. if app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  976. if not slotNumber in self.listHighlightedSlot:
  977. self.wndItem.DeactivateSlot(i)
  978. else:
  979. self.wndItem.DeactivateSlot(i)
  980.  
  981. for j in xrange(sash.WINDOW_MAX_MATERIALS):
  982. (isHere, iCell) = sash.GetAttachedItem(j)
  983. if isHere:
  984. if iCell == slotNumber:
  985. self.wndItem.ActivateSlot(i, (238.00 / 255.0), (11.00 / 255.0), (11.00 / 255.0), 1.0)
  986. if not slotNumber in self.listAttachedSashs:
  987. self.listAttachedSashs.append(slotNumber)
  988.  
  989. slotNumberChecked = 1
  990. else:
  991. if slotNumber in self.listAttachedSashs and not slotNumberChecked:
  992. self.wndItem.DeactivateSlot(i)
  993. self.listAttachedSashs.remove(slotNumber)
  994.  
  995. if app.ENABLE_CHANGELOOK_SYSTEM:
  996. slotClNumberChecked = 0
  997. for q in xrange(changelook.WINDOW_MAX_MATERIALS):
  998. (isHere, iCell) = changelook.GetAttachedItem(q)
  999. if isHere:
  1000. if iCell == slotNumber:
  1001. self.wndItem.ActivateSlot(i, (238.00 / 255.0), (11.00 / 255.0), (11.00 / 255.0), 1.0)
  1002. if not slotNumber in self.listAttachedCl:
  1003. self.listAttachedCl.append(slotNumber)
  1004.  
  1005. slotClNumberChecked = 1
  1006. else:
  1007. if slotNumber in self.listAttachedCl and not slotClNumberChecked:
  1008. self.wndItem.DeactivateSlot(i)
  1009. self.listAttachedCl.remove(slotNumber)
  1010.  
  1011. if app.BYKATIL199_ITEM_SLOT_EFFECT:
  1012. import ahmetatalayInfo
  1013. if ahmetatalayInfo.IS_NEW_SPEED_POTION(itemVnum):
  1014. metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
  1015.  
  1016. if slotNumber >= player.INVENTORY_PAGE_SIZE * self.inventoryPageIndex:
  1017. slotNumber -= player.INVENTORY_PAGE_SIZE * self.inventoryPageIndex
  1018.  
  1019. isActivated = 0 != metinSocket[0]
  1020.  
  1021. if isActivated:
  1022. self.wndItem.ActivateSlot(i, (36.00 / 255.0), (222.00 / 255.0), (3.00 / 255.0), 1.0)
  1023. else:
  1024. self.wndItem.DeactivateSlot(i)
  1025.  
  1026. self.wndItem.RefreshSlot()
  1027.  
  1028. if self.wndBelt:
  1029. self.wndBelt.RefreshSlot()
  1030.  
  1031. if app.WJ_ENABLE_TRADABLE_ICON:
  1032. map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds)
  1033.  
  1034. def RefreshEquipSlotWindow(self):
  1035. getItemVNum=player.GetItemIndex
  1036. getItemCount=player.GetItemCount
  1037. # setItemVNum=self.wndEquip.SetItemSlot
  1038. job = player.GetJob()
  1039. for i in xrange(player.EQUIPMENT_PAGE_COUNT):
  1040. slotNumber = player.EQUIPMENT_SLOT_START + i
  1041. itemCount = getItemCount(slotNumber)
  1042. if itemCount <= 1:
  1043. itemCount = 0
  1044.  
  1045. # setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
  1046. if job == 1:
  1047. self.wndEquipNinja.SetItemSlot(slotNumber, getItemVNum(slotNumber), itemCount)
  1048. else:
  1049. self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), itemCount)
  1050. # if app.ENABLE_CHANGELOOK_SYSTEM:
  1051. # itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  1052. # if itemTransmutedVnum:
  1053. # self.wndEquip.DisableCoverButton(slotNumber)
  1054. # else:
  1055. # self.wndEquip.EnableCoverButton(slotNumber)
  1056. if app.ENABLE_CHANGELOOK_SYSTEM:
  1057. itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  1058. if job == 1:
  1059. if itemTransmutedVnum:
  1060. self.wndEquipNinja.DisableCoverButton(slotNumber)
  1061. else:
  1062. self.wndEquipNinja.EnableCoverButton(slotNumber)
  1063. else:
  1064. if itemTransmutedVnum:
  1065. self.wndEquip.DisableCoverButton(slotNumber)
  1066. else:
  1067. self.wndEquip.EnableCoverButton(slotNumber)
  1068.  
  1069. if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
  1070. for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT):
  1071. slotNumber = player.NEW_EQUIPMENT_SLOT_START + i
  1072. itemCount = getItemCount(slotNumber)
  1073. if itemCount <= 1:
  1074. itemCount = 0
  1075.  
  1076. # setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
  1077. if job == 1:
  1078. self.wndEquipNinja.SetItemSlot(slotNumber, getItemVNum(slotNumber), itemCount)
  1079. else:
  1080. self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), itemCount)
  1081. # if app.ENABLE_CHANGELOOK_SYSTEM:
  1082. # itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  1083. # if itemTransmutedVnum:
  1084. # self.wndEquip.DisableCoverButton(slotNumber)
  1085. # else:
  1086. # self.wndEquip.EnableCoverButton(slotNumber)
  1087. if app.ENABLE_CHANGELOOK_SYSTEM:
  1088. itemTransmutedVnum = player.GetItemTransmutation(slotNumber)
  1089. if job == 1:
  1090. if itemTransmutedVnum:
  1091. self.wndEquipNinja.DisableCoverButton(slotNumber)
  1092. else:
  1093. self.wndEquipNinja.EnableCoverButton(slotNumber)
  1094. else:
  1095. if itemTransmutedVnum:
  1096. self.wndEquip.DisableCoverButton(slotNumber)
  1097. else:
  1098. self.wndEquip.EnableCoverButton(slotNumber)
  1099.  
  1100. # self.wndEquip.RefreshSlot()
  1101. if job == 1:
  1102. self.wndEquipNinja.RefreshSlot()
  1103. else:
  1104. self.wndEquip.RefreshSlot()
  1105.  
  1106. if self.wndCostume:
  1107. self.wndCostume.RefreshCostumeSlot()
  1108.  
  1109. def RefreshItemSlot(self):
  1110. self.RefreshBagSlotWindow()
  1111. self.RefreshEquipSlotWindow()
  1112.  
  1113. def RefreshStatus(self):
  1114. money = player.GetElk()
  1115. #self.wndMoney.SetText(localeInfo.NumberToMoneyString(money))
  1116. def ActivateDragonSoul(self, deck):
  1117. if deck == 0:
  1118. if self.DSSButton:
  1119. self.DSSButton.SetUpVisual("d:/ymir work/ui/dragonsoul/deck1_1.tga")
  1120. self.DSSButton.SetOverVisual("d:/ymir work/ui/dragonsoul/deck1_2.tga")
  1121. self.DSSButton.SetDownVisual("d:/ymir work/ui/dragonsoul/deck1_3.tga")
  1122. else:
  1123. if self.DSSButton:
  1124. self.DSSButton.SetUpVisual("d:/ymir work/ui/dragonsoul/deck2_1.tga")
  1125. self.DSSButton.SetOverVisual("d:/ymir work/ui/dragonsoul/deck2_2.tga")
  1126. self.DSSButton.SetDownVisual("d:/ymir work/ui/dragonsoul/deck2_3.tga")
  1127.  
  1128. def DeactivateDragonSoul(self):
  1129. if self.DSSButton:
  1130. self.DSSButton.SetUpVisual("d:/ymir work/ui/dragonsoul/ds_01.tga")
  1131. self.DSSButton.SetOverVisual("d:/ymir work/ui/dragonsoul/ds_02.tga")
  1132. self.DSSButton.SetDownVisual("d:/ymir work/ui/dragonsoul/ds_03.tga")
  1133.  
  1134. def SetItemToolTip(self, tooltipItem):
  1135. self.tooltipItem = tooltipItem
  1136.  
  1137. def SellItem(self):
  1138. if self.sellingSlotitemIndex == player.GetItemIndex(self.sellingSlotNumber):
  1139. if self.sellingSlotitemCount == player.GetItemCount(self.sellingSlotNumber):
  1140. ## 용혼석도 팔리게 하는 기능 추가하면서 인자 type 추가
  1141. net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.INVENTORY)
  1142. snd.PlaySound("sound/ui/money.wav")
  1143. self.OnCloseQuestionDialog()
  1144.  
  1145. def OnDetachMetinFromItem(self):
  1146. if None == self.questionDialog:
  1147. return
  1148.  
  1149. #net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
  1150. self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
  1151. self.OnCloseQuestionDialog()
  1152.  
  1153. def OnCloseQuestionDialog(self):
  1154. if not self.questionDialog:
  1155. return
  1156.  
  1157. self.questionDialog.Close()
  1158. self.questionDialog = None
  1159. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
  1160.  
  1161. ## Slot Event
  1162. def SelectEmptySlot(self, selectedSlotPos):
  1163. if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
  1164. return
  1165.  
  1166. selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)
  1167.  
  1168. if mouseModule.mouseController.isAttached():
  1169.  
  1170. attachedSlotType = mouseModule.mouseController.GetAttachedType()
  1171. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1172. attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
  1173. attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
  1174.  
  1175. if player.SLOT_TYPE_INVENTORY == attachedSlotType:
  1176. itemCount = player.GetItemCount(attachedSlotPos)
  1177. attachedCount = mouseModule.mouseController.GetAttachedItemCount()
  1178. self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)
  1179.  
  1180. if item.IsRefineScroll(attachedItemIndex):
  1181. self.wndItem.SetUseMode(False)
  1182.  
  1183. elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:
  1184. mouseModule.mouseController.RunCallBack("INVENTORY")
  1185.  
  1186. elif player.SLOT_TYPE_SHOP == attachedSlotType:
  1187. net.SendShopBuyPacket(attachedSlotPos)
  1188.  
  1189. elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:
  1190.  
  1191. if player.ITEM_MONEY == attachedItemIndex:
  1192. net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
  1193. snd.PlaySound("sound/ui/money.wav")
  1194.  
  1195. else:
  1196. net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos)
  1197.  
  1198. elif player.SLOT_TYPE_MALL == attachedSlotType:
  1199. net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos)
  1200.  
  1201. mouseModule.mouseController.DeattachObject()
  1202.  
  1203. def SelectItemSlot(self, itemSlotIndex):
  1204. if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
  1205. return
  1206.  
  1207. itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)
  1208.  
  1209. if mouseModule.mouseController.isAttached():
  1210. attachedSlotType = mouseModule.mouseController.GetAttachedType()
  1211. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1212. attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()
  1213.  
  1214. if app.ENABLE_SPECIAL_STORAGE:
  1215. if player.SLOT_TYPE_INVENTORY == attachedSlotType or player.SLOT_TYPE_STONE_INVENTORY == attachedSlotType:
  1216. self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)
  1217. else:
  1218. if player.SLOT_TYPE_INVENTORY == attachedSlotType:
  1219. self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)
  1220.  
  1221. mouseModule.mouseController.DeattachObject()
  1222.  
  1223. else:
  1224.  
  1225. curCursorNum = app.GetCursor()
  1226. if app.SELL == curCursorNum:
  1227. self.__SellItem(itemSlotIndex)
  1228.  
  1229. elif app.BUY == curCursorNum:
  1230. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
  1231.  
  1232. elif app.IsPressed(app.DIK_LALT):
  1233. link = player.GetItemLink(itemSlotIndex)
  1234. ime.PasteString(link)
  1235.  
  1236. elif app.IsPressed(app.DIK_LSHIFT):
  1237. itemCount = player.GetItemCount(itemSlotIndex)
  1238.  
  1239. if itemCount > 1:
  1240. self.dlgPickMoney.SetTitleName(localeInfo.PICK_ITEM_TITLE)
  1241. self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))
  1242. self.dlgPickMoney.Open(itemCount)
  1243. self.dlgPickMoney.itemGlobalSlotIndex = itemSlotIndex
  1244. #else:
  1245. #selectedItemVNum = player.GetItemIndex(itemSlotIndex)
  1246. #mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum)
  1247.  
  1248. elif app.IsPressed(app.DIK_LCONTROL):
  1249. itemIndex = player.GetItemIndex(itemSlotIndex)
  1250.  
  1251. if True == item.CanAddToQuickSlotItem(itemIndex):
  1252. player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex)
  1253. else:
  1254. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.QUICKSLOT_REGISTER_DISABLE_ITEM)
  1255.  
  1256. else:
  1257. selectedItemVNum = player.GetItemIndex(itemSlotIndex)
  1258. itemCount = player.GetItemCount(itemSlotIndex)
  1259. mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
  1260.  
  1261. if self.__IsUsableItemToItem(selectedItemVNum, itemSlotIndex):
  1262. self.wndItem.SetUseMode(True)
  1263. else:
  1264. self.wndItem.SetUseMode(False)
  1265.  
  1266. snd.PlaySound("sound/ui/pick.wav")
  1267.  
  1268. def UseTransportBox(self):
  1269. self.__SendUseItemToItemPacket(self.questionDialog.src, self.questionDialog.dst)
  1270. self.OnCloseQuestionDialog()
  1271.  
  1272. def UseProtein(self):
  1273. self.__SendUseItemToItemPacket(self.questionDialog.src, self.questionDialog.dst)
  1274. self.OnCloseQuestionDialog()
  1275.  
  1276. def __DropSrcItemToDestItemInInventory(self, srcItemVID, srcItemSlotPos, dstItemSlotPos):
  1277. if app.ENABLE_SPECIAL_STORAGE:
  1278. if srcItemSlotPos == dstItemSlotPos and not item.IsMetin(srcItemVID):
  1279. return
  1280. else:
  1281. if srcItemSlotPos == dstItemSlotPos:
  1282. return
  1283.  
  1284. if srcItemVID >= 55701 and srcItemVID <= 55708 and player.GetItemIndex(dstItemSlotPos) == 55002:
  1285. self.questionDialog = uiCommon.QuestionDialog()
  1286. self.questionDialog.SetText("Vrei sa adaugi insotitorul in cutia de transport?")
  1287. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseTransportBox))
  1288. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1289. self.questionDialog.Open()
  1290. self.questionDialog.src = srcItemSlotPos
  1291. self.questionDialog.dst = dstItemSlotPos
  1292.  
  1293. if srcItemVID == 55001 and player.GetItemIndex(dstItemSlotPos) >= 55701 and player.GetItemIndex(dstItemSlotPos) <= 55708:
  1294. self.questionDialog = uiCommon.QuestionDialog()
  1295. self.questionDialog.SetText("Vrei sa hranesti insotitorul?")
  1296. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein))
  1297. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1298. self.questionDialog.Open()
  1299. self.questionDialog.src = srcItemSlotPos
  1300. self.questionDialog.dst = dstItemSlotPos
  1301.  
  1302. if srcItemVID == 71051 and player.GetItemIndex(dstItemSlotPos) >= 70500 and player.GetItemIndex(dstItemSlotPos) <= 70509:
  1303. self.questionDialog = uiCommon.QuestionDialog()
  1304. self.questionDialog.SetText("Vrei sa adaugi sufletele pe acest item?")
  1305. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein))
  1306. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1307. self.questionDialog.Open()
  1308. self.questionDialog.src = srcItemSlotPos
  1309. self.questionDialog.dst = dstItemSlotPos
  1310.  
  1311. if srcItemVID == 71051 and player.GetItemIndex(dstItemSlotPos) >= 9600 and player.GetItemIndex(dstItemSlotPos) <= 10770:
  1312. self.questionDialog = uiCommon.QuestionDialog()
  1313. self.questionDialog.SetText("Vrei sa adaugi sufletele pe acest item?")
  1314. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein))
  1315. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1316. self.questionDialog.Open()
  1317. self.questionDialog.src = srcItemSlotPos
  1318. self.questionDialog.dst = dstItemSlotPos
  1319.  
  1320. if srcItemVID == 71052 and player.GetItemIndex(dstItemSlotPos) >= 70500 and player.GetItemIndex(dstItemSlotPos) <= 70509:
  1321. self.questionDialog = uiCommon.QuestionDialog()
  1322. self.questionDialog.SetText("Vrei sa adaugi sufletele pe acest item?")
  1323. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein))
  1324. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1325. self.questionDialog.Open()
  1326. self.questionDialog.src = srcItemSlotPos
  1327. self.questionDialog.dst = dstItemSlotPos
  1328.  
  1329. if srcItemVID == 71052 and player.GetItemIndex(dstItemSlotPos) >= 9600 and player.GetItemIndex(dstItemSlotPos) <= 10770:
  1330. self.questionDialog = uiCommon.QuestionDialog()
  1331. self.questionDialog.SetText("Vrei sa adaugi sufletele pe acest item?")
  1332. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein))
  1333. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1334. self.questionDialog.Open()
  1335. self.questionDialog.src = srcItemSlotPos
  1336. self.questionDialog.dst = dstItemSlotPos
  1337.  
  1338. if srcItemVID >= 91021 and srcItemVID <= 91029 and player.GetItemIndex(dstItemSlotPos) >= 91010 and player.GetItemIndex(dstItemSlotPos) <= 91020:
  1339. self.questionDialog = uiCommon.QuestionDialog()
  1340. self.questionDialog.SetText("Sigur vrei sa folosesti acest item?")
  1341. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein))
  1342. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1343. self.questionDialog.Open()
  1344. self.questionDialog.src = srcItemSlotPos
  1345. self.questionDialog.dst = dstItemSlotPos
  1346.  
  1347. # cyh itemseal 2013 11 08
  1348. if app.ENABLE_SEALBIND_SYSTEM and item.IsSealScroll(srcItemVID):
  1349. self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
  1350.  
  1351. elif item.IsRefineScroll(srcItemVID):
  1352. self.RefineItem(srcItemSlotPos, dstItemSlotPos)
  1353. self.wndItem.SetUseMode(False)
  1354.  
  1355. elif item.IsMetin(srcItemVID):
  1356. self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos)
  1357.  
  1358. elif item.IsDetachScroll(srcItemVID):
  1359. self.DetachMetinFromItem(srcItemSlotPos, dstItemSlotPos)
  1360.  
  1361. elif item.IsKey(srcItemVID):
  1362. self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
  1363.  
  1364. elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
  1365. self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
  1366.  
  1367. elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
  1368. self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
  1369.  
  1370. else:
  1371. #snd.PlaySound("sound/ui/drop.wav")
  1372.  
  1373. ## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
  1374. if player.IsEquipmentSlot(dstItemSlotPos):
  1375.  
  1376. ## 들고 있는 아이템이 장비일때만
  1377. if item.IsEquipmentVID(srcItemVID):
  1378. self.__UseItem(srcItemSlotPos)
  1379.  
  1380. else:
  1381. self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
  1382. #net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)
  1383.  
  1384. def __SellItem(self, itemSlotPos):
  1385. if not player.IsEquipmentSlot(itemSlotPos):
  1386. self.sellingSlotNumber = itemSlotPos
  1387. itemIndex = player.GetItemIndex(itemSlotPos)
  1388. itemCount = player.GetItemCount(itemSlotPos)
  1389.  
  1390.  
  1391. self.sellingSlotitemIndex = itemIndex
  1392. self.sellingSlotitemCount = itemCount
  1393.  
  1394. item.SelectItem(itemIndex)
  1395. ## 안티 플레그 검사 빠져서 추가
  1396. ## 20140220
  1397. if item.IsAntiFlag(item.ANTIFLAG_SELL):
  1398. popup = uiCommon.PopupDialog()
  1399. popup.SetText(localeInfo.SHOP_CANNOT_SELL_ITEM)
  1400. popup.SetAcceptEvent(self.__OnClosePopupDialog)
  1401. popup.Open()
  1402. self.popup = popup
  1403. return
  1404.  
  1405. itemPrice = item.GetISellItemPrice()
  1406.  
  1407. if item.Is1GoldItem():
  1408. itemPrice = itemCount / itemPrice / 5
  1409. else:
  1410. itemPrice = itemPrice * itemCount / 5
  1411.  
  1412. item.GetItemName(itemIndex)
  1413. itemName = item.GetItemName()
  1414.  
  1415. self.questionDialog = uiCommon.QuestionDialog()
  1416. self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
  1417. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
  1418. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1419. self.questionDialog.Open()
  1420. self.questionDialog.count = itemCount
  1421.  
  1422. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
  1423.  
  1424. def __OnClosePopupDialog(self):
  1425. self.pop = None
  1426.  
  1427. def RefineItem(self, scrollSlotPos, targetSlotPos):
  1428.  
  1429. scrollIndex = player.GetItemIndex(scrollSlotPos)
  1430. targetIndex = player.GetItemIndex(targetSlotPos)
  1431.  
  1432. if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos):
  1433. return
  1434.  
  1435. if app.ENABLE_REFINE_RENEWAL:
  1436. constInfo.AUTO_REFINE_TYPE = 1
  1437. constInfo.AUTO_REFINE_DATA["ITEM"][0] = scrollSlotPos
  1438. constInfo.AUTO_REFINE_DATA["ITEM"][1] = targetSlotPos
  1439.  
  1440. ###########################################################
  1441. self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)
  1442. #net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)
  1443. return
  1444. ###########################################################
  1445.  
  1446. ###########################################################
  1447. #net.SendRequestRefineInfoPacket(targetSlotPos)
  1448. #return
  1449. ###########################################################
  1450.  
  1451. result = player.CanRefine(scrollIndex, targetSlotPos)
  1452.  
  1453. if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:
  1454. #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1455. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_MORE_SOCKET)
  1456.  
  1457. elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:
  1458. #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1459. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NEED_BETTER_SCROLL)
  1460.  
  1461. elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:
  1462. #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1463. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_SOCKET_DISABLE_ITEM)
  1464.  
  1465. elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:
  1466. #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1467. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)
  1468.  
  1469. elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:
  1470. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)
  1471.  
  1472. if player.REFINE_OK != result:
  1473. return
  1474.  
  1475. self.refineDialog.Open(scrollSlotPos, targetSlotPos)
  1476.  
  1477. def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):
  1478. scrollIndex = player.GetItemIndex(scrollSlotPos)
  1479. targetIndex = player.GetItemIndex(targetSlotPos)
  1480. if app.ENABLE_SASH_SYSTEM and app.ENABLE_CHANGELOOK_SYSTEM:
  1481. if not player.CanDetach(scrollIndex, targetSlotPos):
  1482. item.SelectItem(scrollIndex)
  1483. if item.GetValue(0) == sash.CLEAN_ATTR_VALUE0:
  1484. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SASH_FAILURE_CLEAN)
  1485. elif item.GetValue(0) == changelook.CLEAN_ATTR_VALUE0:
  1486. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHANGE_LOOK_FAILURE_CLEAN)
  1487. else:
  1488. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
  1489.  
  1490. return
  1491. elif app.ENABLE_SASH_SYSTEM:
  1492. if not player.CanDetach(scrollIndex, targetSlotPos):
  1493. item.SelectItem(scrollIndex)
  1494. if item.GetValue(0) == sash.CLEAN_ATTR_VALUE0:
  1495. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SASH_FAILURE_CLEAN)
  1496. else:
  1497. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
  1498.  
  1499. return
  1500. elif app.ENABLE_CHANGELOOK_SYSTEM:
  1501. if not player.CanDetach(scrollIndex, targetSlotPos):
  1502. item.SelectItem(scrollIndex)
  1503. if item.GetValue(0) == changelook.CLEAN_ATTR_VALUE0:
  1504. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHANGE_LOOK_FAILURE_CLEAN)
  1505. else:
  1506. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
  1507.  
  1508. return
  1509. else:
  1510. if not player.CanDetach(scrollIndex, targetSlotPos):
  1511. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
  1512. return
  1513.  
  1514. self.questionDialog = uiCommon.QuestionDialog()
  1515. self.questionDialog.SetText(localeInfo.REFINE_DO_YOU_SEPARATE_METIN)
  1516. if app.ENABLE_SASH_SYSTEM:
  1517. item.SelectItem(targetIndex)
  1518. if item.GetItemType() == item.ITEM_TYPE_COSTUME and item.GetItemSubType() == item.COSTUME_TYPE_SASH:
  1519. item.SelectItem(scrollIndex)
  1520. if item.GetValue(0) == sash.CLEAN_ATTR_VALUE0:
  1521. self.questionDialog.SetText(localeInfo.SASH_DO_YOU_CLEAN)
  1522.  
  1523. if app.ENABLE_CHANGELOOK_SYSTEM:
  1524. item.SelectItem(targetIndex)
  1525. if item.GetItemType() == item.ITEM_TYPE_WEAPON or item.GetItemType() == item.ITEM_TYPE_ARMOR or item.GetItemType() == item.ITEM_TYPE_COSTUME:
  1526. item.SelectItem(scrollIndex)
  1527. if item.GetValue(0) == changelook.CLEAN_ATTR_VALUE0:
  1528. self.questionDialog.SetText(localeInfo.CHANGE_LOOK_DO_YOU_CLEAN)
  1529.  
  1530. self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem))
  1531. self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1532. self.questionDialog.Open()
  1533. self.questionDialog.sourcePos = scrollSlotPos
  1534. self.questionDialog.targetPos = targetSlotPos
  1535.  
  1536. def AttachMetinToItem(self, metinSlotPos, targetSlotPos):
  1537. if app.ENABLE_SPECIAL_STORAGE:
  1538. metinIndex = player.GetItemIndex(player.STONE_INVENTORY, metinSlotPos)
  1539. else:
  1540. metinIndex = player.GetItemIndex(metinSlotPos)
  1541. targetIndex = player.GetItemIndex(targetSlotPos)
  1542.  
  1543. item.SelectItem(metinIndex)
  1544. itemName = item.GetItemName()
  1545.  
  1546. result = player.CanAttachMetin(metinIndex, targetSlotPos)
  1547.  
  1548. if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result:
  1549. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_CAN_NOT_ATTACH(itemName))
  1550.  
  1551. if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result:
  1552. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_SOCKET(itemName))
  1553.  
  1554. elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result:
  1555. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_GOLD_SOCKET(itemName))
  1556.  
  1557. elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result:
  1558. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)
  1559.  
  1560. if player.ATTACH_METIN_OK != result:
  1561. return
  1562.  
  1563. self.attachMetinDialog.Open(metinSlotPos, targetSlotPos)
  1564.  
  1565.  
  1566.  
  1567. def OverOutItem(self):
  1568. self.wndItem.SetUsableItem(False)
  1569. if None != self.tooltipItem:
  1570. self.tooltipItem.HideToolTip()
  1571.  
  1572. def OverInItem(self, overSlotPos):
  1573. if app.WJ_ENABLE_PICKUP_ITEM_EFFECT:
  1574. stat = 0
  1575. slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
  1576. itemVnum = player.GetItemIndex(slotNumber)
  1577. if constInfo.IS_AUTO_POTION(itemVnum):
  1578. metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
  1579. if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex:
  1580. slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex
  1581.  
  1582. isActivated = 0 != metinSocket[0]
  1583. if isActivated:
  1584. stat = 1
  1585.  
  1586. if not stat:
  1587. if slotNumber in self.listHighlightedSlot:
  1588. self.wndItem.DeactivateSlot(overSlotPos)
  1589. try:
  1590. if app.ENABLE_SASH_SYSTEM:
  1591. if not slotNumber in self.listAttachedSashs:
  1592. self.listHighlightedSlot.remove(slotNumber)
  1593. else:
  1594. self.listHighlightedSlot.remove(slotNumber)
  1595. except:
  1596. pass
  1597.  
  1598. overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
  1599. self.wndItem.SetUsableItem(False)
  1600.  
  1601. if mouseModule.mouseController.isAttached():
  1602. attachedItemType = mouseModule.mouseController.GetAttachedType()
  1603. if app.ENABLE_SPECIAL_STORAGE:
  1604. if player.SLOT_TYPE_INVENTORY == attachedItemType or player.SLOT_TYPE_STONE_INVENTORY == attachedItemType:
  1605. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1606. attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()
  1607.  
  1608. if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPos):
  1609. self.wndItem.SetUsableItem(True)
  1610. self.wndItem.SetUseMode(True)
  1611. self.ShowToolTip(overSlotPos)
  1612. return
  1613. else:
  1614. if player.SLOT_TYPE_INVENTORY == attachedItemType:
  1615. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1616. attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()
  1617.  
  1618. if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPos):
  1619. self.wndItem.SetUsableItem(True)
  1620. self.ShowToolTip(overSlotPos)
  1621. return
  1622.  
  1623. self.ShowToolTip(overSlotPos)
  1624.  
  1625. def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos):
  1626. "다른 아이템에 사용할 수 있는 아이템인가?"
  1627.  
  1628. if srcItemVNum >= 55701 and srcItemVNum <= 55708:
  1629. return True
  1630.  
  1631. if srcItemVNum >= 91010 and srcItemVNum <= 91015:
  1632. return True
  1633.  
  1634. if srcItemVNum == 55001:
  1635. return True
  1636.  
  1637. if srcItemVNum == 71051:
  1638. return True
  1639.  
  1640. if srcItemVNum == 71052:
  1641. return True
  1642.  
  1643. if srcItemVNum >= 91021 and srcItemVNum <= 91029:
  1644. return True
  1645.  
  1646. if item.IsRefineScroll(srcItemVNum):
  1647. return True
  1648. elif item.IsMetin(srcItemVNum):
  1649. return True
  1650. elif item.IsDetachScroll(srcItemVNum):
  1651. return True
  1652. elif item.IsKey(srcItemVNum):
  1653. return True
  1654. elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
  1655. return True
  1656. else:
  1657. if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE:
  1658. return True
  1659.  
  1660. return False
  1661.  
  1662. def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):
  1663. "대상 아이템에 사용할 수 있는가?"
  1664.  
  1665. if srcItemVNum >= 55701 and srcItemVNum <= 55708 and player.GetItemIndex(dstSlotPos) == 55002:
  1666. return True
  1667.  
  1668. if srcItemVNum == 55001 and player.GetItemIndex(dstSlotPos) >= 55701 and player.GetItemIndex(dstSlotPos) <= 55708:
  1669. return True
  1670.  
  1671. if srcItemVNum == 71051 and player.GetItemIndex(dstSlotPos) >= 70500 and player.GetItemIndex(dstSlotPos) <= 70509:
  1672. return True
  1673.  
  1674. if srcItemVNum == 71051 and player.GetItemIndex(dstSlotPos) >= 9600 and player.GetItemIndex(dstSlotPos) <= 10770:
  1675. return True
  1676.  
  1677. if srcItemVNum == 71052 and player.GetItemIndex(dstSlotPos) >= 70500 and player.GetItemIndex(dstSlotPos) <= 70509:
  1678. return True
  1679.  
  1680. if srcItemVNum == 71052 and player.GetItemIndex(dstSlotPos) >= 9600 and player.GetItemIndex(dstSlotPos) <= 10770:
  1681. return True
  1682.  
  1683. if srcItemVNum >= 91021 and srcItemVNum <= 91029 and player.GetItemIndex(dstSlotPos) >= 91010 and player.GetItemIndex(dstSlotPos) <= 91020:
  1684. return True
  1685.  
  1686. if app.ENABLE_SPECIAL_STORAGE:
  1687. if srcSlotPos == dstSlotPos and not item.IsMetin(srcItemVNum):
  1688. return False
  1689. else:
  1690. if srcSlotPos == dstSlotPos:
  1691. return False
  1692.  
  1693. if item.IsRefineScroll(srcItemVNum):
  1694. if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos):
  1695. return True
  1696. elif item.IsMetin(srcItemVNum):
  1697. if player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNum, dstSlotPos):
  1698. return True
  1699. elif item.IsDetachScroll(srcItemVNum):
  1700. if player.DETACH_METIN_OK == player.CanDetach(srcItemVNum, dstSlotPos):
  1701. return True
  1702. elif item.IsKey(srcItemVNum):
  1703. if player.CanUnlock(srcItemVNum, dstSlotPos):
  1704. return True
  1705.  
  1706. elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
  1707. return True
  1708.  
  1709. else:
  1710. useType=item.GetUseType(srcItemVNum)
  1711.  
  1712. if "USE_CLEAN_SOCKET" == useType:
  1713. if self.__CanCleanBrokenMetinStone(dstSlotPos):
  1714. return True
  1715. elif "USE_CHANGE_ATTRIBUTE" == useType:
  1716. if self.__CanChangeItemAttrList(dstSlotPos):
  1717. return True
  1718. elif "USE_ADD_ATTRIBUTE" == useType:
  1719. if self.__CanAddItemAttr(dstSlotPos):
  1720. return True
  1721. elif "USE_ADD_ATTRIBUTE2" == useType:
  1722. if self.__CanAddItemAttr(dstSlotPos):
  1723. return True
  1724. elif "USE_ADD_ACCESSORY_SOCKET" == useType:
  1725. if self.__CanAddAccessorySocket(dstSlotPos):
  1726. return True
  1727. elif "USE_PUT_INTO_ACCESSORY_SOCKET" == useType:
  1728. if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum):
  1729. return True
  1730. elif "USE_PUT_INTO_BELT_SOCKET" == useType:
  1731. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1732. print "USE_PUT_INTO_BELT_SOCKET", srcItemVNum, dstItemVNum
  1733. elif useType == "USE_COSTUME_ENCHANT" or useType == "USE_COSTUME_TRANSFORM":
  1734. if not app.ENABLE_COSTUME_ATTR_SYSTEM:
  1735. return FALSE
  1736.  
  1737. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1738. item.SelectItem(dstItemVNum)
  1739. if item.GetItemType() == item.ITEM_TYPE_COSTUME:
  1740. return TRUE
  1741.  
  1742. item.SelectItem(dstItemVNum)
  1743.  
  1744. if item.ITEM_TYPE_BELT == item.GetItemType():
  1745. return True
  1746.  
  1747. return False
  1748.  
  1749. def __CanCleanBrokenMetinStone(self, dstSlotPos):
  1750. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1751. if dstItemVNum == 0:
  1752. return False
  1753.  
  1754. item.SelectItem(dstItemVNum)
  1755.  
  1756. if item.ITEM_TYPE_WEAPON != item.GetItemType():
  1757. return False
  1758.  
  1759. for i in xrange(player.METIN_SOCKET_MAX_NUM):
  1760. if player.GetItemMetinSocket(dstSlotPos, i) == constInfo.ERROR_METIN_STONE:
  1761. return True
  1762.  
  1763. return False
  1764.  
  1765. def __CanChangeItemAttrList(self, dstSlotPos):
  1766. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1767. if dstItemVNum == 0:
  1768. return False
  1769.  
  1770. item.SelectItem(dstItemVNum)
  1771.  
  1772. if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR, item.ITEM_TYPE_RING):
  1773. return False
  1774.  
  1775. for i in xrange(player.METIN_SOCKET_MAX_NUM):
  1776. if player.GetItemAttribute(dstSlotPos, i) != 0:
  1777. return True
  1778.  
  1779. return False
  1780.  
  1781. def __CanAddSoulToItem(self, dstSlotPos):
  1782. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1783. if dstItemVNum == 0:
  1784. return False
  1785.  
  1786. item.SelectItem(dstItemVNum)
  1787.  
  1788. if item.GetItemType() == item.ITEM_TYPE_ARMOR:
  1789. return True
  1790.  
  1791. return False
  1792.  
  1793. def __CanPutAccessorySocket(self, dstSlotPos, mtrlVnum):
  1794. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1795. if dstItemVNum == 0:
  1796. return False
  1797.  
  1798. item.SelectItem(dstItemVNum)
  1799.  
  1800. if item.GetItemType() != item.ITEM_TYPE_ARMOR:
  1801. return False
  1802.  
  1803. if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
  1804. return False
  1805.  
  1806. curCount = player.GetItemMetinSocket(dstSlotPos, 0)
  1807. maxCount = player.GetItemMetinSocket(dstSlotPos, 1)
  1808.  
  1809. if mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNum, item.GetItemSubType()):
  1810. return False
  1811.  
  1812. if curCount>=maxCount:
  1813. return False
  1814.  
  1815. return True
  1816.  
  1817. def __CanAddAccessorySocket(self, dstSlotPos):
  1818. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1819. if dstItemVNum == 0:
  1820. return False
  1821.  
  1822. item.SelectItem(dstItemVNum)
  1823.  
  1824. if item.GetItemType() != item.ITEM_TYPE_ARMOR:
  1825. return False
  1826.  
  1827. if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
  1828. return False
  1829.  
  1830. curCount = player.GetItemMetinSocket(dstSlotPos, 0)
  1831. maxCount = player.GetItemMetinSocket(dstSlotPos, 1)
  1832.  
  1833. ACCESSORY_SOCKET_MAX_SIZE = 3
  1834. if maxCount >= ACCESSORY_SOCKET_MAX_SIZE:
  1835. return False
  1836.  
  1837. return True
  1838.  
  1839. def __CanAddItemAttr(self, dstSlotPos):
  1840. dstItemVNum = player.GetItemIndex(dstSlotPos)
  1841. if dstItemVNum == 0:
  1842. return False
  1843.  
  1844. item.SelectItem(dstItemVNum)
  1845.  
  1846. if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR, item.ITEM_TYPE_RING):
  1847. return False
  1848.  
  1849. attrCount = 0
  1850. for i in xrange(player.METIN_SOCKET_MAX_NUM):
  1851. if player.GetItemAttribute(dstSlotPos, i) != 0:
  1852. attrCount += 1
  1853.  
  1854. if attrCount<4:
  1855. return True
  1856.  
  1857. return False
  1858.  
  1859. def ShowToolTip(self, slotIndex):
  1860. if None != self.tooltipItem:
  1861. self.tooltipItem.SetInventoryItem(slotIndex)
  1862.  
  1863. def OnTop(self):
  1864. if None != self.tooltipItem:
  1865. self.tooltipItem.SetTop()
  1866. if app.WJ_ENABLE_TRADABLE_ICON:
  1867. map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds)
  1868. self.RefreshMarkSlots()
  1869.  
  1870. def OnPressEscapeKey(self):
  1871. self.Close()
  1872. return True
  1873.  
  1874. def UseItemSlot(self, slotIndex):
  1875. curCursorNum = app.GetCursor()
  1876. if app.SELL == curCursorNum:
  1877. return
  1878.  
  1879.  
  1880. if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
  1881. return
  1882.  
  1883. slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)
  1884.  
  1885. if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1886. if self.wndDragonSoulRefine.IsShow():
  1887. self.wndDragonSoulRefine.AutoSetItem((player.INVENTORY, slotIndex), 1)
  1888. return
  1889.  
  1890. if app.ENABLE_SASH_SYSTEM:
  1891. if self.isShowSashWindow():
  1892. sash.Add(player.INVENTORY, slotIndex, 255)
  1893. return
  1894.  
  1895. if app.ENABLE_CHANGELOOK_SYSTEM:
  1896. if self.isShowChangeLookWindow():
  1897. changelook.Add(player.INVENTORY, slotIndex, 255)
  1898. return
  1899.  
  1900. self.__UseItem(slotIndex)
  1901. mouseModule.mouseController.DeattachObject()
  1902. self.OverOutItem()
  1903.  
  1904. def IsTreasureBox(self, slotIndex):
  1905. itemVnum = player.GetItemIndex(slotIndex)
  1906. item.SelectItem(itemVnum)
  1907.  
  1908. if item.GetItemType() == item.ITEM_TYPE_GIFTBOX:
  1909. return True
  1910.  
  1911. treasures = {
  1912. 0: 50011,
  1913. 1: 50024,
  1914. 2: 50025,
  1915. 3: 50031,
  1916. 4: 50032,
  1917. }
  1918.  
  1919. if itemVnum in treasures.values():
  1920. return True
  1921.  
  1922. return False
  1923.  
  1924. def SendMultipleUseItemPacket(self, slotIndex):
  1925. for i in xrange(player.GetItemCount(slotIndex)):
  1926. self.__SendUseItemPacket(slotIndex)
  1927.  
  1928. def __UseItem(self, slotIndex):
  1929. ItemVNum = player.GetItemIndex(slotIndex)
  1930. item.SelectItem(ItemVNum)
  1931.  
  1932. if ItemVNum == 39116:
  1933. self.searchbtn2()
  1934.  
  1935. if ItemVNum == 39117:
  1936. self.searchbtn2()
  1937.  
  1938. #Open all stack of treasure box with CTRL + RIGHT CLICK - hunterukh 9.march.2017
  1939. if app.IsPressed(app.DIK_LCONTROL) and self.IsTreasureBox(slotIndex):
  1940. self.SendMultipleUseItemPacket(slotIndex)
  1941. return
  1942.  
  1943. if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
  1944. net.SendItemUsePacket(slotIndex)
  1945. elif player.GetItemTypeBySlot(slotIndex) == item.ITEM_TYPE_GIFTBOX:
  1946. if app.ENABLE_SHOW_CHEST_DROP:
  1947. if self.interface:
  1948. if self.interface.dlgChestDrop:
  1949. if not self.interface.dlgChestDrop.IsShow():
  1950. self.interface.dlgChestDrop.Open(slotIndex)
  1951. net.SendChestDropInfo(slotIndex)
  1952. elif player.GetItemTypeBySlot(slotIndex) == item.ITEM_TYPE_GACHA:
  1953. if app.ENABLE_SHOW_CHEST_DROP:
  1954. if self.interface:
  1955. if self.interface.dlgChestDrop:
  1956. if not self.interface.dlgChestDrop.IsShow():
  1957. self.interface.dlgChestDrop.Open(slotIndex)
  1958. net.SendChestDropInfo(slotIndex)
  1959. else:
  1960. # self.__SendUseItemPacket(slotIndex)
  1961. net.SendItemUsePacket(slotIndex)
  1962.  
  1963. def searchbtn2(self):
  1964. self.testasd = uiSearchShop.ShopSearch()
  1965. self.testasd.Show()
  1966.  
  1967. def __UseItemQuestionDialog_OnCancel(self):
  1968. self.OnCloseQuestionDialog()
  1969.  
  1970. def __UseItemQuestionDialog_OnAccept(self):
  1971. self.__SendUseItemPacket(self.questionDialog.slotIndex)
  1972. self.OnCloseQuestionDialog()
  1973.  
  1974. def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
  1975. # 개인상점 열고 있는 동안 아이템 사용 방지
  1976. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1977. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
  1978. return
  1979.  
  1980. net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)
  1981.  
  1982. def __SendUseItemPacket(self, slotPos):
  1983. # 개인상점 열고 있는 동안 아이템 사용 방지
  1984. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1985. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
  1986. return
  1987.  
  1988. net.SendItemUsePacket(slotPos)
  1989.  
  1990. def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount):
  1991. # 개인상점 열고 있는 동안 아이템 사용 방지
  1992. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1993. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
  1994. return
  1995.  
  1996. net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)
  1997.  
  1998. def SetDragonSoulRefineWindow(self, wndDragonSoulRefine):
  1999. if app.ENABLE_DRAGON_SOUL_SYSTEM:
  2000. self.wndDragonSoulRefine = wndDragonSoulRefine
  2001.  
  2002. if app.ENABLE_SASH_SYSTEM:
  2003. def SetSashWindow(self, wndSashCombine, wndSashAbsorption):
  2004. self.wndSashCombine = wndSashCombine
  2005. self.wndSashAbsorption = wndSashAbsorption
  2006.  
  2007. def isShowSashWindow(self):
  2008. if self.wndSashCombine:
  2009. if self.wndSashCombine.IsShow():
  2010. return 1
  2011.  
  2012. if self.wndSashAbsorption:
  2013. if self.wndSashAbsorption.IsShow():
  2014. return 1
  2015.  
  2016. return 0
  2017.  
  2018. if app.ENABLE_CHANGELOOK_SYSTEM:
  2019. def SetChangeLookWindow(self, wndChangeLook):
  2020. self.wndChangeLook = wndChangeLook
  2021.  
  2022. def isShowChangeLookWindow(self):
  2023. if self.wndChangeLook:
  2024. if self.wndChangeLook.IsShow():
  2025. return 1
  2026.  
  2027. return 0
  2028.  
  2029. def OnMoveWindow(self, x, y):
  2030. # print "Inventory Global Pos : ", self.GetGlobalPosition()
  2031. if self.wndBelt:
  2032. # print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition()
  2033. self.wndBelt.AdjustPositionAndSize()
  2034. if app.ENABLE_BIOLOG_SYSTEM:
  2035. if self.wndCollect:
  2036. self.wndCollect.AdjustPositionAndSize()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement