C1pr1sor

Untitled

Oct 15th, 2018
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.32 KB | None | 0 0
  1. import ui
  2. import net
  3. import mouseModule
  4. import player
  5. import snd
  6. import localeInfo
  7. import item
  8. import grp
  9. import uiScriptLocale
  10. import uiToolTip
  11. import app
  12.  
  13. class CubeResultWindow(ui.ScriptWindow):
  14. def __init__(self):
  15. ui.ScriptWindow.__init__(self)
  16.  
  17. def __del__(self):
  18. ui.ScriptWindow.__del__(self)
  19.  
  20. def LoadWindow(self):
  21. try:
  22. pyScrLoader = ui.PythonScriptLoader()
  23. pyScrLoader.LoadScriptFile(self, "UIScript/CubeResultWindow.py")
  24. except:
  25. import exception
  26. exception.Abort("CubeResultWindow.LoadDialog.LoadScript")
  27.  
  28. try:
  29. GetObject=self.GetChild
  30. self.titleBar = GetObject("TitleBar")
  31. self.btnClose = GetObject("CloseButton")
  32. self.cubeSlot = GetObject("CubeSlot")
  33.  
  34. except:
  35. import exception
  36. exception.Abort("CubeWindow.LoadDialog.BindObject")
  37.  
  38. self.cubeSlot.SetOverInItemEvent(ui.__mem_func__(self.__OnOverInItem))
  39. self.cubeSlot.SetOverOutItemEvent(ui.__mem_func__(self.__OnOverOutItem))
  40. self.titleBar.SetCloseEvent(ui.__mem_func__(self.__OnCloseButtonClick))
  41. self.btnClose.SetEvent(ui.__mem_func__(self.__OnCloseButtonClick))
  42. self.itemVnum = 0
  43.  
  44. def Destroy(self):
  45. self.ClearDictionary()
  46. self.titleBar = None
  47. self.btnClose = None
  48. self.cubeSlot = None
  49. self.tooltipItem = None
  50. self.itemVnum = 0
  51.  
  52. def SetItemToolTip(self, tooltipItem):
  53. self.tooltipItem = tooltipItem
  54.  
  55. def SetCubeResultItem(self, itemVnum, count):
  56. self.itemVnum = itemVnum
  57.  
  58. if 0 == count:
  59. count = 1
  60.  
  61. self.cubeSlot.SetItemSlot(0, itemVnum, count)
  62.  
  63. def Open(self):
  64. self.Show()
  65.  
  66. def Close(self):
  67. self.Hide()
  68.  
  69. def __OnCloseButtonClick(self):
  70. self.Close()
  71.  
  72. def __OnOverInItem(self, slotIndex):
  73. if self.tooltipItem:
  74. if 0 != self.itemVnum:
  75. self.tooltipItem.SetItemToolTip(self.itemVnum)
  76.  
  77. def __OnOverOutItem(self):
  78. if self.tooltipItem:
  79. self.tooltipItem.HideToolTip()
  80.  
  81. def OnPressEscapeKey(self):
  82. if 0 != self.eventClose:
  83. self.eventClose()
  84. return True
  85.  
  86.  
  87. class CubeWindow(ui.ScriptWindow):
  88.  
  89. def __init__(self):
  90. ui.ScriptWindow.__init__(self)
  91. self.xShopStart = 0
  92. self.yShopStart = 0
  93. self.isUsable = False
  94.  
  95. def __del__(self):
  96. ui.ScriptWindow.__del__(self)
  97.  
  98. def LoadWindow(self):
  99. try:
  100. pyScrLoader = ui.PythonScriptLoader()
  101. pyScrLoader.LoadScriptFile(self, "UIScript/CubeWindow.py")
  102.  
  103. except:
  104. import exception
  105. exception.Abort("CubeWindow.LoadDialog.LoadScript")
  106.  
  107. try:
  108. GetObject=self.GetChild
  109. if localeInfo.IsARABIC():
  110. self.board = GetObject("board")
  111. self.board.SetScale(-1.0, 1.0)
  112. self.board.SetRenderingRect(-1.0, 0.0, 1.0, 0.0)
  113.  
  114. self.titleBar = GetObject("TitleBar")
  115. self.btnAccept = GetObject("AcceptButton")
  116. self.btnCancel = GetObject("CancelButton")
  117. self.cubeSlot = GetObject("CubeSlot")
  118. self.needMoney = GetObject("NeedMoney")
  119. self.contentScrollbar = GetObject("contentScrollbar")
  120. self.resultSlots = [GetObject("result1"), GetObject("result2"), GetObject("result3")]
  121. self.materialSlots = [
  122. [GetObject("material11"), GetObject("material12"), GetObject("material13"), GetObject("material14"), GetObject("material15")],
  123. [GetObject("material21"), GetObject("material22"), GetObject("material23"), GetObject("material24"), GetObject("material25")],
  124. [GetObject("material31"), GetObject("material32"), GetObject("material33"), GetObject("material34"), GetObject("material35")],
  125. ]
  126.  
  127.  
  128. row = 0
  129. for materialRow in self.materialSlots:
  130. j = 0
  131. for material in materialRow:
  132. material.SetOverInItemEvent(lambda trash = 0, rowIndex = row, col = j: self.__OverInMaterialSlot(trash, rowIndex, col))
  133. material.SetSelectItemSlotEvent(lambda trash = 0, rowIndex = row, col = j: self.__OnSelectMaterialSlot(trash, rowIndex, col))
  134. material.SetOverOutItemEvent(lambda : self.__OverOutMaterialSlot())
  135. j = j + 1
  136. row = row + 1
  137.  
  138. row = 0
  139. for resultSlot in self.resultSlots:
  140. resultSlot.SetOverInItemEvent(lambda trash = 0, rowIndex = row: self.__OverInCubeResultSlot(trash, rowIndex))
  141. resultSlot.SetOverOutItemEvent(lambda : self.__OverOutMaterialSlot())
  142. row = row + 1
  143.  
  144.  
  145.  
  146. except:
  147. import exception
  148. exception.Abort("CubeWindow.LoadDialog.BindObject")
  149.  
  150. self.contentScrollbar.SetScrollStep(0.15)
  151. self.contentScrollbar.SetScrollEvent(ui.__mem_func__(self.OnScrollResultList))
  152. self.cubeSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.__OnSelectEmptySlot))
  153. self.cubeSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.__OnSelectItemSlot))
  154. self.cubeSlot.SetOverInItemEvent(ui.__mem_func__(self.__OnOverInItem))
  155. self.cubeSlot.SetOverOutItemEvent(ui.__mem_func__(self.__OnOverOutItem))
  156.  
  157. self.titleBar.SetCloseEvent(ui.__mem_func__(self.__OnCloseButtonClick))
  158. self.btnCancel.SetEvent(ui.__mem_func__(self.__OnCloseButtonClick))
  159. self.btnAccept.SetEvent(ui.__mem_func__(self.__OnAcceptButtonClick))
  160.  
  161. self.cubeItemInfo = {}
  162. self.cubeResultInfos = []
  163. self.cubeMaterialInfos = {}
  164.  
  165. self.tooltipItem = None
  166.  
  167. self.firstSlotIndex = 0
  168. self.RESULT_SLOT_COUNT = len(self.resultSlots)
  169. self.SLOT_SIZEX = 32
  170. self.SLOT_SIZEY = 32
  171. self.CUBE_SLOT_COUNTX = 8
  172. self.CUBE_SLOT_COUNTY = 3
  173.  
  174. def SetItemToolTip(self, itemTooltip):
  175. self.tooltipItem = itemTooltip
  176.  
  177. def GetResultCount(self):
  178. return len(self.cubeResultInfos)
  179.  
  180. def OnScrollResultList(self):
  181. count = self.GetResultCount()
  182. scrollLineCount = max(0, count - self.RESULT_SLOT_COUNT)
  183. startIndex = int(scrollLineCount * self.contentScrollbar.GetPos())
  184.  
  185. if startIndex != self.firstSlotIndex:
  186. self.firstSlotIndex = startIndex
  187. self.Refresh()
  188.  
  189. def AddCubeResultItem(self, itemVnum, count):
  190. self.cubeResultInfos.append((itemVnum, count))
  191. #self.Refresh()
  192.  
  193. def AddMaterialInfo(self, itemIndex, orderIndex, itemVnum, itemCount):
  194. if itemIndex not in self.cubeMaterialInfos:
  195. self.cubeMaterialInfos[itemIndex] = [[], [], [], [], []]
  196.  
  197. self.cubeMaterialInfos[itemIndex][orderIndex].append((itemVnum, itemCount))
  198. #print "AddMaterialInfo", itemIndex, orderIndex, itemVnum, itemCount, self.cubeMaterialInfos
  199.  
  200. def ClearCubeResultItem(self):
  201. self.cubeResultInfos = []
  202. self.Refresh()
  203.  
  204. def Destroy(self):
  205. self.ClearDictionary()
  206.  
  207. self.titleBar = None
  208. self.btnAccept = None
  209. self.btnCancel = None
  210. self.cubeSlot = None
  211. self.tooltipItem = None
  212. self.needMoney = None
  213.  
  214. def __OverOutMaterialSlot(self):
  215. self.tooltipItem.SetCannotUseItemForceSetDisableColor(True)
  216. self.tooltipItem.HideToolTip()
  217.  
  218. def __OverInCubeResultSlot(self, trash, resultIndex):
  219. self.tooltipItem.ClearToolTip()
  220. self.tooltipItem.SetCannotUseItemForceSetDisableColor(True)
  221.  
  222. metinSlot = []
  223. for i in xrange(player.METIN_SOCKET_MAX_NUM):
  224. metinSlot.append(0)
  225. attrSlot = []
  226. for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
  227. attrSlot.append((0, 0))
  228.  
  229. #print "resultIndex, firstSlotIndex", resultIndex, self.firstSlotIndex
  230.  
  231. resultIndex = resultIndex + self.firstSlotIndex
  232. itemVnum, itemCount = self.cubeResultInfos[resultIndex]
  233.  
  234. self.tooltipItem.AddItemData(itemVnum, metinSlot, attrSlot)
  235.  
  236.  
  237. # 재료를 클릭하면 인벤토리에서 해당 아이템을 찾아서 등록함.
  238. def __OnSelectMaterialSlot(self, trash, resultIndex, materialIndex):
  239. resultIndex = resultIndex + self.firstSlotIndex
  240. if resultIndex not in self.cubeMaterialInfos:
  241. return
  242.  
  243. materialInfo = self.cubeMaterialInfos[resultIndex]
  244. materialCount = len(materialInfo[materialIndex])
  245.  
  246. if 0 == materialCount:
  247. return
  248.  
  249. for itemVnum, itemCount in materialInfo[materialIndex]:
  250. bAddedNow = False # 이번에 클릭함으로써 아이템이 추가되었나?
  251. item.SelectItem(itemVnum)
  252. itemSizeX, itemSizeY = item.GetItemSize()
  253.  
  254. # 제조에 필요한 만큼의 재료를 가지고 있는가?
  255. if player.GetItemCountByVnum(itemVnum) >= itemCount:
  256. for i in xrange(player.INVENTORY_SLOT_COUNT):
  257. vnum = player.GetItemIndex(i)
  258. count= player.GetItemCount(i)
  259.  
  260. if vnum == itemVnum and count >= itemCount:
  261. # 이미 같은 아이템이 등록되어 있는지 검사하고, 없다면 추가함
  262. bAlreadyExists = False
  263. for slotPos, invenPos in self.cubeItemInfo.items():
  264. if invenPos == i:
  265. bAlreadyExists = True
  266.  
  267. if True == bAlreadyExists:
  268. continue #continue inventory iterating
  269.  
  270. #print "Cube Status : ", self.cubeItemInfo
  271.  
  272. # 여기 진입하면 큐브에 등록되지 않은 아이템이므로, 빈 큐브 슬롯에 해당 아이템 추가
  273. bCanAddSlot = False
  274. for slotPos in xrange(self.cubeSlot.GetSlotCount()):
  275. # 이 큐브 슬롯이 비어있는가?
  276. if not slotPos in self.cubeItemInfo:
  277. upperColumnItemSizeY = -1
  278. currentSlotLine = int(slotPos / self.CUBE_SLOT_COUNTX)
  279. cubeColumn = int(slotPos % self.CUBE_SLOT_COUNTX)
  280.  
  281.  
  282. # 만약 큐브에 3칸짜리 아이템이 등록되어 있다면, 이 열(column)은 더 이상 볼 것도 없이 넘어간다
  283. if cubeColumn in self.cubeItemInfo:
  284. columnVNUM = player.GetItemIndex(self.cubeItemInfo[cubeColumn])
  285. item.SelectItem(columnVNUM)
  286. columnItemSizeX, columnItemSizeY = item.GetItemSize()
  287.  
  288. if 3 == columnItemSizeY:
  289. continue #continue cube slot iterating
  290.  
  291. if 0 < currentSlotLine and slotPos - self.CUBE_SLOT_COUNTX in self.cubeItemInfo:
  292. upperColumnVNUM = player.GetItemIndex(self.cubeItemInfo[slotPos - self.CUBE_SLOT_COUNTX])
  293. item.SelectItem(upperColumnVNUM)
  294. columnItemSizeX, upperColumnItemSizeY = item.GetItemSize()
  295.  
  296. # 1칸짜리 아이템은 바로 윗줄에 한칸짜리 아이템이 있어야 함
  297. if 1 == itemSizeY:
  298. if 0 == currentSlotLine:
  299. bCanAddSlot = True
  300. elif 1 == currentSlotLine and 1 == upperColumnItemSizeY:
  301. bCanAddSlot = True
  302. elif 2 == currentSlotLine:
  303. bCanAddSlot = True
  304. # 2칸짜리 아이템은 위아래가 비어있어야 함
  305. elif 2 == itemSizeY:
  306. if 0 == currentSlotLine and not cubeColumn + self.CUBE_SLOT_COUNTX in self.cubeItemInfo:
  307. bCanAddSlot = True
  308. elif 1 == currentSlotLine and 1 == upperColumnItemSizeY and not cubeColumn + (self.CUBE_SLOT_COUNTX * 2) in self.cubeItemInfo:
  309. bCanAddSlot = True
  310. # 3칸짜리 아이템은 해당 Column 자체가 모두 비어있어야 함
  311. else:
  312. if not cubeColumn in self.cubeItemInfo and not cubeColumn + self.CUBE_SLOT_COUNTX in self.cubeItemInfo and not cubeColumn + (self.CUBE_SLOT_COUNTX * 2) in self.cubeItemInfo:
  313. bCanAddSlot = True
  314.  
  315. if True == bCanAddSlot:
  316. self.cubeItemInfo[slotPos] = i
  317. self.cubeSlot.SetItemSlot(slotPos, vnum, count)
  318. net.SendChatPacket("/cube add %d %d" % (slotPos, i))
  319.  
  320. bAddedNow = True
  321.  
  322. if True == bAddedNow:
  323. break #break cube slot iterating
  324.  
  325. if True == bAddedNow:
  326. break #break inventory iterating
  327.  
  328. if True == bAddedNow:
  329. break #break material iterating
  330.  
  331.  
  332.  
  333. def __OverInMaterialSlot(self, trash, resultIndex, col):
  334. self.tooltipItem.ClearToolTip()
  335. self.tooltipItem.SetCannotUseItemForceSetDisableColor(False)
  336.  
  337. resultIndex = resultIndex + self.firstSlotIndex
  338.  
  339. if resultIndex not in self.cubeMaterialInfos:
  340. return
  341.  
  342. i = 0
  343. materialInfo = self.cubeMaterialInfos[resultIndex]
  344. materialCount = len(materialInfo[col])
  345.  
  346. for itemVnum, count in materialInfo[col]:
  347. item.SelectItem(itemVnum)
  348. if player.GetItemCountByVnum(itemVnum) >= count:
  349. self.tooltipItem.AppendTextLine("%s" % (item.GetItemName()), grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0)).SetFeather()
  350. else:
  351. self.tooltipItem.AppendTextLine("%s" % (item.GetItemName()), grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)).SetFeather()
  352.  
  353. if i < materialCount - 1:
  354. self.tooltipItem.AppendTextLine(uiScriptLocale.CUBE_REQUIRE_MATERIAL_OR)
  355.  
  356. i = i + 1
  357.  
  358. self.tooltipItem.Show()
  359.  
  360.  
  361. def Open(self):
  362. self.cubeItemInfo = {}
  363. self.cubeResultInfos = []
  364. self.cubeMaterialInfos = {}
  365.  
  366. self.Refresh()
  367. self.Show()
  368.  
  369. self.isUsable = True
  370. (self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()
  371.  
  372. def UpdateInfo(self, gold, itemVnum, count):
  373. if self.needMoney:
  374. self.needMoney.SetText(localeInfo.NumberToMoneyString(gold))
  375.  
  376. self.Refresh()
  377.  
  378. def OnPressEscapeKey(self):
  379. self.__OnCloseButtonClick()
  380. return True
  381.  
  382. def Close(self):
  383. if self.tooltipItem:
  384. self.tooltipItem.HideToolTip()
  385.  
  386. self.Hide()
  387. self.cubeItemInfo = {}
  388. self.cubeMaterialInfos = {}
  389. self.cubeResultInfos = {}
  390. self.firstSlotIndex = 0
  391. self.contentScrollbar.SetPos(0)
  392.  
  393. if self.needMoney:
  394. self.needMoney.SetText("0")
  395.  
  396. def Clear(self):
  397. self.Refresh()
  398.  
  399. def Refresh(self):
  400. for slotPos in xrange(self.cubeSlot.GetSlotCount()):
  401.  
  402. if not slotPos in self.cubeItemInfo:
  403. self.cubeSlot.ClearSlot(slotPos)
  404. continue
  405.  
  406. if app.ENABLE_SPECIAL_STORAGE:
  407. invenPos = self.cubeItemInfo[slotPos][0]
  408. invenType = player.SlotTypeToInvenType(self.cubeItemInfo[slotPos][1])
  409.  
  410. itemIndex = player.GetItemIndex(invenType, invenPos)
  411. itemCount = player.GetItemCount(invenType, invenPos)
  412.  
  413. if itemCount > 0:
  414. self.cubeSlot.SetItemSlot(slotPos, itemIndex, itemCount)
  415. else:
  416. del self.cubeItemInfo[slotPos]
  417. self.cubeSlot.ClearSlot(slotPos)
  418. else:
  419. invenPos = self.cubeItemInfo[slotPos][0]
  420.  
  421. itemCount = player.GetItemCount(invenPos)
  422.  
  423. if itemCount > 0:
  424. self.cubeSlot.SetItemSlot(slotPos, player.GetItemIndex(invenPos), itemCount)
  425. else:
  426. del self.cubeItemInfo[slotPos]
  427. self.cubeSlot.ClearSlot(slotPos)
  428.  
  429.  
  430. i = 0
  431. for itemVnum, count in self.cubeResultInfos[self.firstSlotIndex:]:
  432. currentSlot = self.resultSlots[i]
  433.  
  434. item.SelectItem(itemVnum)
  435.  
  436. currentSlot.SetItemSlot(0, itemVnum, count)
  437. currentSlot.Show()
  438.  
  439. # Center Align
  440. item.SelectItem(itemVnum)
  441. sizeX, sizeY = item.GetItemSize()
  442. localX, localY = currentSlot.GetLocalPosition()
  443.  
  444. currentSlot.SetSize(self.SLOT_SIZEX, self.SLOT_SIZEY * sizeY)
  445.  
  446. adjustLocalY = 0
  447. if sizeY < 3:
  448. adjustLocalY = int(32 / sizeY)
  449.  
  450. currentSlot.SetPosition(localX, 0 + adjustLocalY)
  451.  
  452. i = i + 1
  453. if 3 <= i:
  454. break
  455.  
  456. #print "self.cubeMaterialInfos : ", self.cubeMaterialInfos
  457. if self.firstSlotIndex in self.cubeMaterialInfos:
  458. for i in xrange(self.RESULT_SLOT_COUNT):
  459. materialList = self.cubeMaterialInfos[self.firstSlotIndex + i]
  460. #print "Refresh ::: ", materialList
  461. j = 0
  462. for materialInfo in materialList:
  463. if 0 < len(materialInfo):
  464. currentSlot = self.materialSlots[i][j]
  465. itemVnum, itemCount = materialInfo[0]
  466. currentSlot.SetItemSlot(0, itemVnum, itemCount)
  467. j = j + 1
  468.  
  469. # Center Align
  470. item.SelectItem(itemVnum)
  471. sizeX, sizeY = item.GetItemSize()
  472. localX, localY = currentSlot.GetLocalPosition()
  473.  
  474. currentSlot.SetSize(self.SLOT_SIZEX, self.SLOT_SIZEY * sizeY)
  475.  
  476. adjustLocalY = 0
  477. if sizeY < 3:
  478. adjustLocalY = int(32 / sizeY)
  479.  
  480. currentSlot.SetPosition(localX, 0 + adjustLocalY)
  481.  
  482. for k in xrange(5):
  483. if k >= j:
  484. self.materialSlots[i][k].ClearSlot(0)
  485.  
  486. if self.RESULT_SLOT_COUNT <= i:
  487. break
  488.  
  489. self.cubeSlot.RefreshSlot()
  490.  
  491. def __OnCloseButtonClick(self):
  492. if self.isUsable:
  493. self.isUsable = False
  494.  
  495. print "큐브 닫기"
  496. net.SendChatPacket("/cube close")
  497.  
  498. self.Close()
  499.  
  500. def __OnAcceptButtonClick(self):
  501. if len(self.cubeItemInfo) == 0:
  502. "빈 큐브"
  503. return
  504.  
  505. print "큐브 제작 시작"
  506. #for invenPos in self.cubeItemInfo.values():
  507. # net.SendChatPacket("/cube add " + str(invenPos))
  508. net.SendChatPacket("/cube make")
  509.  
  510. def __OnSelectEmptySlot(self, selectedSlotPos):
  511.  
  512. isAttached = mouseModule.mouseController.isAttached()
  513. if isAttached:
  514. attachedSlotType = mouseModule.mouseController.GetAttachedType()
  515. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  516. mouseModule.mouseController.DeattachObject()
  517.  
  518. if app.ENABLE_SPECIAL_STORAGE:
  519. if player.SLOT_TYPE_INVENTORY != attachedSlotType and\
  520. player.SLOT_TYPE_UPGRADE_INVENTORY != attachedSlotType and\
  521. player.SLOT_TYPE_BOOK_INVENTORY != attachedSlotType and\
  522. player.SLOT_TYPE_STONE_INVENTORY != attachedSlotType:
  523. return
  524. else:
  525. if player.SLOT_TYPE_INVENTORY != attachedSlotType:
  526. return
  527.  
  528. for slotPos, invenPos in self.cubeItemInfo.items():
  529. if invenPos == attachedSlotPos:
  530. del self.cubeItemInfo[slotPos]
  531.  
  532. if app.ENABLE_SPECIAL_STORAGE:
  533. self.cubeItemInfo[selectedSlotPos] = [attachedSlotPos, attachedSlotType]
  534. net.SendChatPacket("/cube add %d %d %d" % (selectedSlotPos, attachedSlotPos, player.SlotTypeToInvenType(attachedSlotType)))
  535. else:
  536. self.cubeItemInfo[selectedSlotPos] = attachedSlotPos
  537. net.SendChatPacket("/cube add %d %d" % (selectedSlotPos, attachedSlotPos))
  538.  
  539. self.Refresh()
  540.  
  541. def __OnSelectItemSlot(self, selectedSlotPos):
  542.  
  543. isAttached = mouseModule.mouseController.isAttached()
  544. if isAttached:
  545. snd.PlaySound("sound/ui/loginfail.wav")
  546. mouseModule.mouseController.DeattachObject()
  547.  
  548. else:
  549. if not selectedSlotPos in self.cubeItemInfo:
  550. return
  551.  
  552. snd.PlaySound("sound/ui/drop.wav")
  553.  
  554. net.SendChatPacket("/cube del %d " % selectedSlotPos)
  555. del self.cubeItemInfo[selectedSlotPos]
  556.  
  557. self.Refresh()
  558.  
  559. def __OnOverInItem(self, slotIndex):
  560. if self.tooltipItem:
  561. if self.cubeItemInfo.has_key(slotIndex):
  562. if app.ENABLE_SPECIAL_STORAGE:
  563. self.tooltipItem.SetInventoryItem(self.cubeItemInfo[slotIndex][0])
  564. else:
  565. self.tooltipItem.SetInventoryItem(self.cubeItemInfo[slotIndex])
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572. def __OnOverOutItem(self):
  573. if self.tooltipItem:
  574. self.tooltipItem.HideToolTip()
  575.  
  576. def OnUpdate(self):
  577. USE_SHOP_LIMIT_RANGE = 1000
  578.  
  579. (x, y, z) = player.GetMainCharacterPosition()
  580. if abs(x - self.xShopStart) > USE_SHOP_LIMIT_RANGE or abs(y - self.yShopStart) > USE_SHOP_LIMIT_RANGE:
  581. self.__OnCloseButtonClick()
  582.  
  583. if __name__ == "__main__":
  584.  
  585. import app
  586. import wndMgr
  587. import systemSetting
  588. import mouseModule
  589. import grp
  590. import ui
  591. import uiToolTip
  592. import localeInfo
  593.  
  594. app.SetMouseHandler(mouseModule.mouseController)
  595. app.SetHairColorEnable(True)
  596. wndMgr.SetMouseHandler(mouseModule.mouseController)
  597. wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
  598. app.Create(localeInfo.APP_TITLE, systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
  599. mouseModule.mouseController.Create()
  600.  
  601. class TestGame(ui.Window):
  602. def __init__(self):
  603. ui.Window.__init__(self)
  604.  
  605. localeInfo.LoadLocaleData()
  606.  
  607. self.tooltipItem = uiToolTip.ItemToolTip()
  608. self.tooltipItem.Hide()
  609.  
  610. self.cubeWindow = CubeWindow()
  611. self.cubeWindow.LoadWindow()
  612. self.cubeWindow.SetItemToolTip(self.tooltipItem)
  613. self.cubeWindow.Open()
  614.  
  615. self.cubeResultWindow = CubeResultWindow()
  616. self.cubeResultWindow.LoadWindow()
  617. self.cubeResultWindow.SetItemToolTip(self.tooltipItem)
  618. self.cubeResultWindow.SetCubeResultItem(27001, 1)
  619. self.cubeResultWindow.Open()
  620.  
  621. def __del__(self):
  622. ui.Window.__del__(self)
  623.  
  624. def OnUpdate(self):
  625. app.UpdateGame()
  626.  
  627. def OnRender(self):
  628. app.RenderGame()
  629. grp.PopState()
  630. grp.SetInterfaceRenderState()
  631.  
  632. game = TestGame()
  633. game.SetSize(systemSetting.GetWidth(), systemSetting.GetHeight())
  634. game.Show()
  635.  
  636. app.Loop()
Advertisement
Add Comment
Please, Sign In to add comment