Guest User

Untitled

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