Added game files from TMP4

This commit is contained in:
2023-07-21 21:55:58 +03:00
parent bb44b31af9
commit eb47a22455
9325 changed files with 276198 additions and 69890 deletions

View File

@ -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