forked from metin2/client
Added game files from TMP4
This commit is contained in:
@ -24,7 +24,7 @@ ITEM_FLAG_APPLICABLE = 1 << 14
|
||||
# ITEM VNUM<55><4D> 10<31><30> <20>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>, FEDCBA<42><41><EFBFBD><EFBFBD> <20>Ѵٸ<D1B4>
|
||||
# FE : <20><>ȥ<EFBFBD><C8A5> <20><><EFBFBD><EFBFBD>. D : <20><><EFBFBD><EFBFBD>
|
||||
# C : <20>ܰ<EFBFBD> B : <20><>ȭ
|
||||
# A : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3>...
|
||||
# A : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3>...
|
||||
|
||||
class DragonSoulWindow(ui.ScriptWindow):
|
||||
KIND_TAP_TITLES = [uiScriptLocale.DRAGONSOUL_TAP_TITLE_1, uiScriptLocale.DRAGONSOUL_TAP_TITLE_2,
|
||||
@ -35,7 +35,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
self.tooltipItem = None
|
||||
self.sellingSlotNumber = -1
|
||||
self.isLoaded = 0
|
||||
self.isActivated = FALSE
|
||||
self.isActivated = False
|
||||
self.DSKindIndex = 0
|
||||
self.tabDict = None
|
||||
self.tabButtonDict = None
|
||||
@ -192,11 +192,11 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
def Close(self):
|
||||
if None != self.tooltipItem:
|
||||
self.tooltipItem.HideToolTip()
|
||||
self.Hide()
|
||||
|
||||
def __DeckButtonDown(self, deck):
|
||||
self.deckTab[deck].Down()
|
||||
|
||||
self.Hide()
|
||||
|
||||
def __DeckButtonDown(self, deck):
|
||||
self.deckTab[deck].Down()
|
||||
|
||||
def SetInventoryPage(self, page):
|
||||
if self.inventoryPageIndex != page:
|
||||
self.__HighlightSlot_ClearCurrentPage()
|
||||
@ -300,7 +300,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
|
||||
def OnPressEscapeKey(self):
|
||||
self.Close()
|
||||
return TRUE
|
||||
return True
|
||||
|
||||
def OnTop(self):
|
||||
if None != self.tooltipItem:
|
||||
@ -308,7 +308,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
|
||||
# item slot <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
||||
def OverOutItem(self):
|
||||
self.wndItem.SetUsableItem(FALSE)
|
||||
self.wndItem.SetUsableItem(False)
|
||||
if None != self.tooltipItem:
|
||||
self.tooltipItem.HideToolTip()
|
||||
|
||||
@ -320,7 +320,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
except:
|
||||
pass
|
||||
|
||||
self.wndItem.SetUsableItem(FALSE)
|
||||
self.wndItem.SetUsableItem(False)
|
||||
self.ShowToolTip(player.DRAGON_SOUL_INVENTORY, overSlotPos)
|
||||
|
||||
def __UseItem(self, slotIndex):
|
||||
@ -339,10 +339,10 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
equipSlotPos = player.DRAGON_SOUL_EQUIPMENT_SLOT_START + self.deckPageIndex * player.DRAGON_SOUL_EQUIPMENT_FIRST_SIZE + subType
|
||||
srcItemPos = (player.DRAGON_SOUL_INVENTORY, slotIndex)
|
||||
dstItemPos = (player.INVENTORY, equipSlotPos)
|
||||
self.__OpenQuestionDialog(TRUE, srcItemPos, dstItemPos)
|
||||
self.__OpenQuestionDialog(True, srcItemPos, dstItemPos)
|
||||
|
||||
def SelectItemSlot(self, itemSlotIndex):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
|
||||
return
|
||||
|
||||
itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
|
||||
@ -359,18 +359,82 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
mouseModule.mouseController.DeattachObject()
|
||||
|
||||
else:
|
||||
selectedItemVNum = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
|
||||
itemCount = player.GetItemCount(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
|
||||
mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_DRAGON_SOUL_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
|
||||
self.wndItem.SetUseMode(FALSE)
|
||||
snd.PlaySound("sound/ui/pick.wav")
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȵ<EFBFBD><C8B5><EFBFBD> <20>߰<EFBFBD>
|
||||
## 20140220
|
||||
curCursorNum = app.GetCursor()
|
||||
|
||||
if app.SELL == curCursorNum:
|
||||
self.__SellItem(itemSlotIndex)
|
||||
elif app.BUY == curCursorNum:
|
||||
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
|
||||
elif app.IsPressed(app.DIK_LALT):
|
||||
link = player.GetItemLink(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
|
||||
ime.PasteString(link)
|
||||
else:
|
||||
selectedItemVNum = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
|
||||
itemCount = player.GetItemCount(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)
|
||||
mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_DRAGON_SOUL_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
|
||||
self.wndItem.SetUseMode(False)
|
||||
snd.PlaySound("sound/ui/pick.wav")
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȱ<EFBFBD>
|
||||
## 2014.02.20 <20>߰<EFBFBD>
|
||||
def __SellItem(self, itemSlotPos):
|
||||
if not player.IsDSEquipmentSlot(player.DRAGON_SOUL_INVENTORY, itemSlotPos):
|
||||
self.sellingSlotNumber = itemSlotPos
|
||||
itemIndex = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, itemSlotPos)
|
||||
itemCount = player.GetItemCount(player.DRAGON_SOUL_INVENTORY, itemSlotPos)
|
||||
|
||||
item.SelectItem(itemIndex)
|
||||
|
||||
if item.IsAntiFlag(item.ANTIFLAG_SELL):
|
||||
popup = uiCommon.PopupDialog()
|
||||
popup.SetText(localeInfo.SHOP_CANNOT_SELL_ITEM)
|
||||
popup.SetAcceptEvent(self.__OnClosePopupDialog)
|
||||
popup.Open()
|
||||
self.popup = popup
|
||||
return
|
||||
|
||||
itemPrice = item.GetISellItemPrice()
|
||||
|
||||
if item.Is1GoldItem():
|
||||
itemPrice = itemCount / itemPrice / 5
|
||||
else:
|
||||
itemPrice = itemPrice * itemCount / 5
|
||||
|
||||
item.GetItemName(itemIndex)
|
||||
itemName = item.GetItemName()
|
||||
|
||||
self.questionDialog = uiCommon.QuestionDialog()
|
||||
self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
|
||||
self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
|
||||
self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
|
||||
self.questionDialog.Open()
|
||||
self.questionDialog.count = itemCount
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȱ<EFBFBD>
|
||||
def SellItem(self):
|
||||
|
||||
net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.DRAGON_SOUL_INVENTORY)
|
||||
snd.PlaySound("sound/ui/money.wav")
|
||||
self.OnCloseQuestionDialog()
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȱ<EFBFBD>
|
||||
def OnCloseQuestionDialog(self):
|
||||
if self.questionDialog:
|
||||
self.questionDialog.Close()
|
||||
|
||||
self.questionDialog = None
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȱ<EFBFBD>
|
||||
def __OnClosePopupDialog(self):
|
||||
self.pop = None
|
||||
|
||||
def SelectEmptySlot(self, selectedSlotPos):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
|
||||
return
|
||||
|
||||
selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, selectedSlotPos)
|
||||
print "__debug", selectedSlotPos
|
||||
if mouseModule.mouseController.isAttached():
|
||||
|
||||
attachedSlotType = mouseModule.mouseController.GetAttachedType()
|
||||
@ -400,7 +464,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
if player.IsDSEquipmentSlot(attachedInvenType, attachedSlotPos):
|
||||
srcItemPos = (attachedInvenType, attachedSlotPos)
|
||||
dstItemPos = (player.DRAGON_SOUL_INVENTORY, selectedSlotPos)
|
||||
self.__OpenQuestionDialog(FALSE, srcItemPos, dstItemPos)
|
||||
self.__OpenQuestionDialog(False, srcItemPos, dstItemPos)
|
||||
else:
|
||||
itemCount = player.GetItemCount(attachedInvenType, attachedSlotPos)
|
||||
attachedCount = mouseModule.mouseController.GetAttachedItemCount()
|
||||
@ -410,7 +474,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
mouseModule.mouseController.DeattachObject()
|
||||
|
||||
def UseItemSlot(self, slotIndex):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
|
||||
return
|
||||
slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, slotIndex)
|
||||
try:
|
||||
@ -442,11 +506,11 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
|
||||
def OverInEquipItem(self, overSlotPos):
|
||||
overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, overSlotPos)
|
||||
self.wndItem.SetUsableItem(FALSE)
|
||||
self.wndItem.SetUsableItem(False)
|
||||
self.ShowToolTip(player.INVENTORY, overSlotPos)
|
||||
|
||||
def UseEquipItemSlot(self, slotIndex):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
|
||||
return
|
||||
|
||||
slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, slotIndex)
|
||||
@ -460,11 +524,20 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
|
||||
return
|
||||
|
||||
self.__OpenQuestionDialog(FALSE, (player.INVENTORY, slotIndex), (1, 1))
|
||||
self.__OpenQuestionDialog(False, (player.INVENTORY, slotIndex), (1, 1))
|
||||
|
||||
|
||||
def SelectEquipItemSlot(self, itemSlotIndex):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
|
||||
|
||||
## <20><><EFBFBD>콺 <20><>ư<EFBFBD><C6B0> sell buy üũ <20>ؼ<EFBFBD> return
|
||||
curCursorNum = app.GetCursor()
|
||||
if app.SELL == curCursorNum:
|
||||
return
|
||||
elif app.BUY == curCursorNum:
|
||||
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
|
||||
return
|
||||
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
|
||||
return
|
||||
|
||||
itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, itemSlotIndex)
|
||||
@ -487,11 +560,11 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
selectedItemVNum = player.GetItemIndex(player.INVENTORY, itemSlotIndex)
|
||||
itemCount = player.GetItemCount(player.INVENTORY, itemSlotIndex)
|
||||
mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
|
||||
self.wndItem.SetUseMode(FALSE)
|
||||
self.wndItem.SetUseMode(False)
|
||||
snd.PlaySound("sound/ui/pick.wav")
|
||||
|
||||
def SelectEmptyEquipSlot(self, selectedSlot):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
|
||||
return
|
||||
|
||||
selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.INVENTORY, selectedSlot)
|
||||
@ -516,7 +589,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
else:
|
||||
srcItemPos = (player.DRAGON_SOUL_INVENTORY, attachedSlotPos)
|
||||
dstItemPos = (player.INVENTORY, selectedSlotPos)
|
||||
self.__OpenQuestionDialog(TRUE, srcItemPos, dstItemPos)
|
||||
self.__OpenQuestionDialog(True, srcItemPos, dstItemPos)
|
||||
|
||||
mouseModule.mouseController.DeattachObject()
|
||||
# equip <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><>.
|
||||
@ -540,7 +613,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
|
||||
def __Accept(self):
|
||||
if (-1, -1) == self.dstItemPos:
|
||||
net.SendItemUsePacket(*srcItemPos)
|
||||
net.SendItemUsePacket(*self.srcItemPos)
|
||||
else:
|
||||
self.__SendMoveItemPacket(*(self.srcItemPos + self.dstItemPos + (0,)))
|
||||
self.dlgQuestion.Close()
|
||||
@ -585,7 +658,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
|
||||
# <20><>ȥ<EFBFBD><C8A5> Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD>
|
||||
def ActivateDragonSoulByExtern(self, deck):
|
||||
self.isActivated = TRUE
|
||||
self.isActivated = True
|
||||
self.activateButton.Down()
|
||||
self.deckPageIndex = deck
|
||||
self.deckTab[deck].Down()
|
||||
@ -593,16 +666,16 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
self.RefreshEquipSlotWindow()
|
||||
|
||||
def DeactivateDragonSoul(self):
|
||||
self.isActivated = FALSE
|
||||
self.isActivated = False
|
||||
self.activateButton.SetUp()
|
||||
|
||||
def ActivateButtonClick(self):
|
||||
self.isActivated = self.isActivated ^ TRUE
|
||||
self.isActivated = self.isActivated ^ True
|
||||
if self.isActivated:
|
||||
if self.__CanActivateDeck():
|
||||
net.SendChatPacket("/dragon_soul activate " + str(self.deckPageIndex))
|
||||
else:
|
||||
self.isActivated = FALSE
|
||||
self.isActivated = False
|
||||
self.activateButton.SetUp()
|
||||
else:
|
||||
net.SendChatPacket("/dragon_soul deactivate")
|
||||
@ -615,7 +688,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
|
||||
if itemVnum != 0:
|
||||
item.SelectItem(itemVnum)
|
||||
isNoLimit = TRUE
|
||||
isNoLimit = True
|
||||
for i in xrange(item.LIMIT_MAX_NUM):
|
||||
(limitType, limitValue) = item.GetLimit(i)
|
||||
|
||||
@ -623,7 +696,7 @@ class DragonSoulWindow(ui.ScriptWindow):
|
||||
# LIMIT_REAL_TIME<4D><45> <20>ð<EFBFBD> <20><> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><> <20>ʿ䰡 <20><><EFBFBD><EFBFBD>.
|
||||
# LIMIT_REAL_TIME_START_FIRST_USE<53><45> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD> <20>ʾ<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD>д<EFBFBD>.
|
||||
if item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
|
||||
isNoLimit = FALSE
|
||||
isNoLimit = False
|
||||
remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0)
|
||||
if 0 != remain_time:
|
||||
canActiveNum += 1
|
||||
@ -781,17 +854,17 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
|
||||
self.__FlushRefineItemSlot()
|
||||
player.SendDragonSoulRefine(player.DRAGON_SOUL_REFINE_CLOSE)
|
||||
self.Hide()
|
||||
self.Hide()
|
||||
|
||||
def Show(self):
|
||||
self.currentRefineType = self.REFINE_TYPE_GRADE
|
||||
def Show(self):
|
||||
self.currentRefineType = self.REFINE_TYPE_GRADE
|
||||
self.wndMoney.SetText(localeInfo.NumberToMoneyString(0))
|
||||
self.refineChoiceButtonDict[self.REFINE_TYPE_GRADE].Down()
|
||||
self.refineChoiceButtonDict[self.REFINE_TYPE_STEP].SetUp()
|
||||
self.refineChoiceButtonDict[self.REFINE_TYPE_STRENGTH].SetUp()
|
||||
|
||||
self.Refresh()
|
||||
|
||||
|
||||
ui.ScriptWindow.Show(self)
|
||||
|
||||
def SetItemToolTip(self, tooltipItem):
|
||||
@ -821,49 +894,50 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
player.SetItemCount(invenType, invenPos, remainCount + itemCount)
|
||||
self.__Initialize()
|
||||
|
||||
def __ToggleUpButton(self, idx):
|
||||
#if self.REFINE_TYPE_GRADE == self.currentRefineType:
|
||||
self.refineChoiceButtonDict[idx].Down()
|
||||
|
||||
def __ToggleDownGradeButton(self):
|
||||
if self.REFINE_TYPE_GRADE == self.currentRefineType:
|
||||
return
|
||||
self.refineChoiceButtonDict[self.currentRefineType].SetUp()
|
||||
self.currentRefineType = self.REFINE_TYPE_GRADE
|
||||
self.__FlushRefineItemSlot()
|
||||
def __ToggleUpButton(self, idx):
|
||||
#if self.REFINE_TYPE_GRADE == self.currentRefineType:
|
||||
self.refineChoiceButtonDict[idx].Down()
|
||||
|
||||
def __ToggleDownGradeButton(self):
|
||||
if self.REFINE_TYPE_GRADE == self.currentRefineType:
|
||||
return
|
||||
self.refineChoiceButtonDict[self.currentRefineType].SetUp()
|
||||
self.currentRefineType = self.REFINE_TYPE_GRADE
|
||||
self.__FlushRefineItemSlot()
|
||||
self.Refresh()
|
||||
|
||||
def __ToggleDownStepButton(self):
|
||||
if self.REFINE_TYPE_STEP == self.currentRefineType:
|
||||
return
|
||||
self.refineChoiceButtonDict[self.currentRefineType].SetUp()
|
||||
self.currentRefineType = self.REFINE_TYPE_STEP
|
||||
|
||||
def __ToggleDownStepButton(self):
|
||||
if self.REFINE_TYPE_STEP == self.currentRefineType:
|
||||
return
|
||||
self.refineChoiceButtonDict[self.currentRefineType].SetUp()
|
||||
self.currentRefineType = self.REFINE_TYPE_STEP
|
||||
self.__FlushRefineItemSlot()
|
||||
self.Refresh()
|
||||
|
||||
def __ToggleDownStrengthButton(self):
|
||||
if self.REFINE_TYPE_STRENGTH == self.currentRefineType:
|
||||
return
|
||||
self.refineChoiceButtonDict[self.currentRefineType].SetUp()
|
||||
self.currentRefineType = self.REFINE_TYPE_STRENGTH
|
||||
self.__FlushRefineItemSlot()
|
||||
self.Refresh()
|
||||
def __ToggleDownStrengthButton(self):
|
||||
if self.REFINE_TYPE_STRENGTH == self.currentRefineType:
|
||||
return
|
||||
self.refineChoiceButtonDict[self.currentRefineType].SetUp()
|
||||
self.currentRefineType = self.REFINE_TYPE_STRENGTH
|
||||
self.__FlushRefineItemSlot()
|
||||
self.Refresh()
|
||||
|
||||
def __PopUp(self, message):
|
||||
def __PopUp(self, message):
|
||||
self.wndPopupDialog.SetText(message)
|
||||
self.wndPopupDialog.Open()
|
||||
|
||||
def __SetItem(self, (invenType, invenPos), dstSlotIndex, itemCount):
|
||||
|
||||
|
||||
def __SetItem(self, inven, dstSlotIndex, itemCount):
|
||||
invenType, invenPos = inven
|
||||
|
||||
if dstSlotIndex >= self.refineSlotLockStartIndex:
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
itemVnum = player.GetItemIndex(invenType, invenPos)
|
||||
maxCount = player.GetItemCount(invenType, invenPos)
|
||||
|
||||
if itemCount > maxCount:
|
||||
raise Exception, ("Invalid attachedItemCount(%d). (base pos (%d, %d), base itemCount(%d))" % (itemCount, invenType, invenPos, maxCount))
|
||||
#return FALSE
|
||||
#return False
|
||||
|
||||
# strength <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD>, 0<><30><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD><C8AD>, 1<><31><EFBFBD><EFBFBD> <20><>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType:
|
||||
@ -874,18 +948,18 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
|
||||
# <20><> <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD>.
|
||||
if dstSlotIndex in self.refineItemInfo:
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
# <20><>ȭâ<C8AD><C3A2> <20>ø<EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>.
|
||||
if FALSE == self.__CheckCanRefine(itemVnum):
|
||||
return FALSE
|
||||
if False == self.__CheckCanRefine(itemVnum):
|
||||
return False
|
||||
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB>Ʈ<EFBFBD><C6AE>ŭ <20><><EFBFBD><EFBFBD> <20>ڸ<EFBFBD><DAB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
player.SetItemCount(invenType, invenPos, maxCount - itemCount)
|
||||
self.refineItemInfo[dstSlotIndex] = (invenType, invenPos, itemCount)
|
||||
self.Refresh()
|
||||
|
||||
return TRUE
|
||||
return True
|
||||
|
||||
# <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
|
||||
# <20><>ȥ<EFBFBD><C8A5> <20><>ȭ<EFBFBD><C8AD> <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD>س<EFBFBD><D8B3><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴ϶<C6B4>,
|
||||
@ -903,23 +977,21 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
return self.__CanRefineStrength(vnum)
|
||||
|
||||
else:
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
return False
|
||||
|
||||
def __CanRefineGrade (self, vnum):
|
||||
ds_info = self.__GetDragonSoulTypeInfo(vnum)
|
||||
|
||||
if DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO == ds_info:
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL)
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
if self.currentRecipe:
|
||||
ds_type, grade, step, strength = ds_info
|
||||
cur_refine_ds_type, cur_refine_grade, cur_refine_step, cur_refine_strength = self.currentRecipe["ds_info"]
|
||||
if not (cur_refine_ds_type == ds_type and cur_refine_grade == grade):
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_INVALID_DRAGON_SOUL)
|
||||
return FALSE
|
||||
return False
|
||||
# <20><>ȭ â<><C3A2> ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><>ȭ <20><><EFBFBD>ῡ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
# <20><>ȥ<EFBFBD><C8A5> <20><>ȭ<EFBFBD><C8AD>, <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴ϶<C6B4>, <20><>ȭâ<C8AD><C3A2> ó<><C3B3> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̳Ŀ<CCB3> <20><><EFBFBD><EFBFBD>,
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD>ϰ<EFBFBD>, <20><><EFBFBD>ᰡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
@ -930,25 +1002,25 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
if self.currentRecipe:
|
||||
self.refineSlotLockStartIndex = self.currentRecipe["need_count"]
|
||||
self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"]))
|
||||
return TRUE
|
||||
return True
|
||||
else:
|
||||
# <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ø<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD>.
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE)
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
def __CanRefineStep (self, vnum):
|
||||
ds_info = self.__GetDragonSoulTypeInfo(vnum)
|
||||
|
||||
if DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO == ds_info:
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL)
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
if self.currentRecipe:
|
||||
ds_type, grade, step, strength = ds_info
|
||||
cur_refine_ds_type, cur_refine_grade, cur_refine_step, cur_refine_strength = self.currentRecipe["ds_info"]
|
||||
if not (cur_refine_ds_type == ds_type and cur_refine_grade == grade and cur_refine_step == step):
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_INVALID_DRAGON_SOUL)
|
||||
return FALSE
|
||||
return False
|
||||
# <20><>ȭ â<><C3A2> ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>ῡ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
# <20><>ȥ<EFBFBD><C8A5> <20><>ȭ<EFBFBD><C8AD>, <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴ϶<C6B4>, <20><>ȭâ<C8AD><C3A2> ó<><C3B3> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̳Ŀ<CCB3> <20><><EFBFBD><EFBFBD>,
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD>ϰ<EFBFBD>, <20><><EFBFBD>ᰡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
@ -959,12 +1031,12 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
if self.currentRecipe:
|
||||
self.refineSlotLockStartIndex = self.currentRecipe["need_count"]
|
||||
self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"]))
|
||||
return TRUE
|
||||
return True
|
||||
|
||||
else:
|
||||
# <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ø<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD>.
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE)
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
def __CanRefineStrength (self, vnum):
|
||||
# <20><>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><> <20>̻<EFBFBD> strength <20><>ȭ<EFBFBD><C8AD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC>ؾ<EFBFBD><D8BE><EFBFBD>.
|
||||
@ -974,29 +1046,29 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
import dragon_soul_refine_settings
|
||||
if strength >= dragon_soul_refine_settings.dragon_soul_refine_info[ds_type]["strength_max_table"][grade][step]:
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE_MORE)
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
else:
|
||||
return TRUE
|
||||
return True
|
||||
|
||||
# strength <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD>, refine_recipe<70><65> <20><>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD>, <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEB6><EFBFBD><EFBFBD><EFBFBD>.
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD> <20>ƴ϶<C6B4><CFB6><EFBFBD>,
|
||||
# <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> <20><>ȭâ<C8AD><C3A2> <20>ִٴ<D6B4> <20><><EFBFBD>̹Ƿ<CCB9>, return FALSE
|
||||
# <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> <20><>ȭâ<C8AD><C3A2> <20>ִٴ<D6B4> <20><><EFBFBD>̹Ƿ<CCB9>, return False
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD>ϰ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
else:
|
||||
if self.currentRecipe:
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL)
|
||||
return FALSE
|
||||
return False
|
||||
else:
|
||||
refineRecipe = self.__GetRefineStrengthInfo(vnum)
|
||||
if refineRecipe:
|
||||
self.currentRecipe = refineRecipe
|
||||
self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"]))
|
||||
return TRUE
|
||||
return True
|
||||
else:
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
self.__PopUp(localeInfo.DRAGON_SOUL_NOT_DRAGON_SOUL_REFINE_STONE)
|
||||
return FALSE
|
||||
return False
|
||||
|
||||
def __GetRefineGradeRecipe (self, vnum):
|
||||
ds_type, grade, step, strength = self.__GetDragonSoulTypeInfo(vnum)
|
||||
@ -1047,7 +1119,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
# ITEM VNUM<55><4D> 10<31><30> <20>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>, FEDCBA<42><41><EFBFBD><EFBFBD> <20>Ѵٸ<D1B4>
|
||||
# FE : <20><>ȥ<EFBFBD><C8A5> <20><><EFBFBD><EFBFBD>. D : <20><><EFBFBD><EFBFBD>
|
||||
# C : <20>ܰ<EFBFBD> B : <20><>ȭ
|
||||
# A : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3>...
|
||||
# A : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3>...
|
||||
def __GetDragonSoulTypeInfo(self, vnum):
|
||||
if not self.__IsDragonSoul(vnum):
|
||||
return DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO
|
||||
@ -1061,10 +1133,10 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
def __MakeDragonSoulVnum(self, ds_type, grade, step, strength):
|
||||
return ds_type * 10000 + grade * 1000 + step * 100 + strength * 10
|
||||
|
||||
## <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Event
|
||||
## <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Event
|
||||
def __SelectRefineEmptySlot(self, selectedSlotPos):
|
||||
try:
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
|
||||
return
|
||||
|
||||
if selectedSlotPos >= self.refineSlotLockStartIndex:
|
||||
@ -1089,7 +1161,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
if player.INVENTORY != attachedInvenType and player.DRAGON_SOUL_INVENTORY != attachedInvenType:
|
||||
return
|
||||
|
||||
if TRUE == self.__SetItem((attachedInvenType, attachedSlotPos), selectedSlotPos, attachedItemCount):
|
||||
if True == self.__SetItem((attachedInvenType, attachedSlotPos), selectedSlotPos, attachedItemCount):
|
||||
self.Refresh()
|
||||
|
||||
except Exception, e:
|
||||
@ -1098,7 +1170,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
|
||||
# Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
def __SelectRefineItemSlot(self, selectedSlotPos):
|
||||
if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
|
||||
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
|
||||
return
|
||||
|
||||
try:
|
||||
@ -1185,7 +1257,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
|
||||
def OnPressEscapeKey(self):
|
||||
self.Close()
|
||||
return TRUE
|
||||
return True
|
||||
|
||||
def Refresh(self):
|
||||
self.__RefreshRefineItemSlot()
|
||||
@ -1241,7 +1313,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
invenType, invenPos, itemCount = self.refineItemInfo[slotPos]
|
||||
remainCount = player.GetItemCount(invenType, invenPos)
|
||||
player.SetItemCount(invenType, invenPos, remainCount + itemCount)
|
||||
del self.refineItemInfo[selectedSlotPos]
|
||||
del self.refineItemInfo[slotPos]
|
||||
# refineSlotLockStartIndex <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>̹<EFBFBD><CCB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
self.wndRefineSlot.ShowSlotBaseImage(slotPos)
|
||||
|
||||
@ -1257,10 +1329,10 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
dbg.TraceError("Exception : __RefreshRefineItemSlot, %s" % e)
|
||||
|
||||
def __GetEmptySlot(self, itemVnum = 0):
|
||||
# STRENGTH <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD>, <20><>ȥ<EFBFBD><C8A5> <20><><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>еǾ<D0B5><C7BE>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
# vnum<75><6D> <20>˾ƾ<CBBE> <20>Ѵ<EFBFBD>.
|
||||
if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType:
|
||||
if 0 == itemVnum:
|
||||
# STRENGTH <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD>, <20><>ȥ<EFBFBD><C8A5> <20><><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>еǾ<D0B5><C7BE>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
# vnum<75><6D> <20>˾ƾ<CBBE> <20>Ѵ<EFBFBD>.
|
||||
if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType:
|
||||
if 0 == itemVnum:
|
||||
return -1
|
||||
|
||||
if self.__IsDragonSoul(itemVnum):
|
||||
@ -1276,8 +1348,9 @@ class DragonSoulRefineWindow(ui.ScriptWindow):
|
||||
|
||||
return -1
|
||||
|
||||
def AutoSetItem(self, (invenType, invenPos), itemCount):
|
||||
itemVnum = player.GetItemIndex(invenType, invenPos)
|
||||
def AutoSetItem(self, inven, itemCount):
|
||||
invenType, invenPos = inven
|
||||
itemVnum = player.GetItemIndex(invenType, invenPos)
|
||||
emptySlot = self.__GetEmptySlot(itemVnum)
|
||||
if -1 == emptySlot:
|
||||
return
|
||||
|
Reference in New Issue
Block a user