From 2e1d73b1796884a9bd4f627709e9355dde1346a9 Mon Sep 17 00:00:00 2001 From: rtw1x1 Date: Sat, 27 Dec 2025 21:27:54 +0000 Subject: [PATCH] Update uidragonsoul.py --- assets/root/uidragonsoul.py | 203 ++++++++++++++++++------------------ 1 file changed, 101 insertions(+), 102 deletions(-) diff --git a/assets/root/uidragonsoul.py b/assets/root/uidragonsoul.py index a37123b9..fe1f58fe 100644 --- a/assets/root/uidragonsoul.py +++ b/assets/root/uidragonsoul.py @@ -20,11 +20,11 @@ import uiInventory import sys ITEM_FLAG_APPLICABLE = 1 << 14 -# 용혼석 Vnum에 대한 comment -# ITEM VNUM을 10만 자리부터, FEDCBA라고 한다면 -# FE : 용혼석 종류. D : 등급 -# C : 단계 B : 강화 -# A : 여벌의 번호들... +# Dragon soul Vnum comments +# If ITEM VNUM from 100,000s digit is represented as FEDCBA +# FE: Dragon soul type D: Grade +# C: Step B: Strength +# A: Reserved numbers class DragonSoulWindow(ui.ScriptWindow): KIND_TAP_TITLES = [uiScriptLocale.DRAGONSOUL_TAP_TITLE_1, uiScriptLocale.DRAGONSOUL_TAP_TITLE_2, @@ -226,9 +226,9 @@ class DragonSoulWindow(ui.ScriptWindow): for j in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(j) - # 밑에서 remain_time이 0이하인지 체크 하기 때문에 임의의 양수로 초기화 + # Initialize to arbitrary positive number since we check if remain_time <= 0 below remain_time = 999 - # 일단 현재 타이머는 이 세개 뿐이다. + # Currently only these three timers exist if item.LIMIT_REAL_TIME == limitType: remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0) - app.GetGlobalTimeStamp() elif item.LIMIT_REAL_TIME_START_FIRST_USE == limitType: @@ -275,7 +275,7 @@ class DragonSoulWindow(ui.ScriptWindow): for j in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(j) - # 밑에서 remain_time이 음수인지 체크 하기 때문에 임의의 양수로 초기화 + # Initialize to arbitrary positive number since we check if remain_time < 0 below remain_time = 999 if item.LIMIT_REAL_TIME == limitType: remain_time = player.GetItemMetinSocket(player.DRAGON_SOUL_INVENTORY, slotNumber, 0) @@ -306,7 +306,7 @@ class DragonSoulWindow(ui.ScriptWindow): if None != self.tooltipItem: self.tooltipItem.SetTop() - # item slot 관련 함수 + # Item slot related functions def OverOutItem(self): self.wndItem.SetUsableItem(False) if None != self.tooltipItem: @@ -359,7 +359,7 @@ class DragonSoulWindow(ui.ScriptWindow): mouseModule.mouseController.DeattachObject() else: - ## 상점에서 팔도록 추가 + # # Added to be sold in shop ## 20140220 curCursorNum = app.GetCursor() @@ -377,8 +377,8 @@ class DragonSoulWindow(ui.ScriptWindow): self.wndItem.SetUseMode(False) snd.PlaySound("sound/ui/pick.wav") - ## 상점에 팔기 - ## 2014.02.20 추가 + ## Sell to shop + ## Added 2014.02.20 def __SellItem(self, itemSlotPos): if not player.IsDSEquipmentSlot(player.DRAGON_SOUL_INVENTORY, itemSlotPos): self.sellingSlotNumber = itemSlotPos @@ -412,21 +412,21 @@ class DragonSoulWindow(ui.ScriptWindow): self.questionDialog.Open() self.questionDialog.count = itemCount - ## 상점에 팔기 + ## Sell to shop def SellItem(self): net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.DRAGON_SOUL_INVENTORY) snd.PlaySound("sound/ui/money.wav") self.OnCloseQuestionDialog() - ## 상점에 팔기 + ## Sell to shop def OnCloseQuestionDialog(self): if self.questionDialog: self.questionDialog.Close() self.questionDialog = None - ## 상점에 팔기 + ## Sell to shop def __OnClosePopupDialog(self): self.pop = None @@ -478,7 +478,7 @@ class DragonSoulWindow(ui.ScriptWindow): return slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, slotIndex) try: - # 용혼석 강화창이 열려있으면, 아이템 우클릭 시 자동으로 강화창으로 들어감. + # If dragon soul refine window is open, right-click automatically puts item into refine window if self.wndDragonSoulRefine.IsShow(): if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP) @@ -500,7 +500,7 @@ class DragonSoulWindow(ui.ScriptWindow): net.SendItemMovePacket(srcSlotWindow , srcSlotPos, dstSlotWindow, dstSlotPos, srcItemCount) - # equip 슬롯 관련 함수들. + # Equipment slot related functions def OverOutEquipItem(self): self.OverOutItem() @@ -529,7 +529,7 @@ class DragonSoulWindow(ui.ScriptWindow): def SelectEquipItemSlot(self, itemSlotIndex): - ## 마우스 버튼이 sell buy 체크 해서 return + ## Check for sell/buy mouse button and return curCursorNum = app.GetCursor() if app.SELL == curCursorNum: return @@ -545,7 +545,7 @@ class DragonSoulWindow(ui.ScriptWindow): if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() - # 자기 자신을 자기 자신에게 드래그하는 경우 + # Case of dragging item onto itself if player.SLOT_TYPE_INVENTORY == attachedSlotType and itemSlotIndex == attachedSlotPos: return @@ -592,9 +592,9 @@ class DragonSoulWindow(ui.ScriptWindow): self.__OpenQuestionDialog(True, srcItemPos, dstItemPos) mouseModule.mouseController.DeattachObject() - # equip 슬롯 관련 함수들 끝. - - # 경고창 관련 + # Equipment slot related functions end + + # Warning dialog related def __OpenQuestionDialog(self, Equip, srcItemPos, dstItemPos): self.srcItemPos = srcItemPos self.dstItemPos = dstItemPos @@ -623,7 +623,7 @@ class DragonSoulWindow(ui.ScriptWindow): self.dstItemPos = (0, 0) self.dlgQuestion.Close() - # 경고창 관련 끝 + # Warning dialog related end def SetDSKindIndex(self, kindIndex): if self.DSKindIndex != kindIndex: @@ -656,7 +656,7 @@ class DragonSoulWindow(ui.ScriptWindow): self.RefreshEquipSlotWindow() - # 용혼석 활성화 관련 + # Dragon soul activation related def ActivateDragonSoulByExtern(self, deck): self.isActivated = True self.activateButton.Down() @@ -701,24 +701,24 @@ class DragonSoulWindow(ui.ScriptWindow): for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) - # LIMIT_TIMER_BASED_ON_WEAR는 소켓0에 남은 시간을 박는다. - # LIMIT_REAL_TIME은 시간 다 되면 아이템이 사라지므로 할 필요가 없다. - # LIMIT_REAL_TIME_START_FIRST_USE는 서버에 제대로 정의되지 않아 일단 냅둔다. + # LIMIT_TIMER_BASED_ON_WEAR stores remaining time in socket0 + # LIMIT_REAL_TIME makes item disappear when time expires, so no need to check + # LIMIT_REAL_TIME_START_FIRST_USE not properly defined on server, leave as is if item.LIMIT_TIMER_BASED_ON_WEAR == limitType: isNoLimit = False remain_time = player.GetItemMetinSocket(player.INVENTORY, slotNumber, 0) if 0 != remain_time: canActiveNum += 1 break - # 타이머가 없다면 Activate할 수 있는 용혼석. + # Dragon soul can be activated if it has no timer if isNoLimit: canActiveNum += 1 return canActiveNum > 0 - # 활성화 관련 끝 - - # 슬롯 highlight 관련 + # Activation related end + + # Slot highlight related def __HighlightSlot_ClearCurrentPage(self): for i in xrange(self.wndItem.GetSlotCount()): slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, i) @@ -735,14 +735,14 @@ class DragonSoulWindow(ui.ScriptWindow): def HighlightSlot(self, slot): if not slot in self.listHighlightedSlot: self.listHighlightedSlot.append (slot) - # 슬롯 highlight 관련 끝 + # Slot highlight related end def SetDragonSoulRefineWindow(self, wndDragonSoulRefine): if app.ENABLE_DRAGON_SOUL_SYSTEM: from _weakref import proxy self.wndDragonSoulRefine = proxy(wndDragonSoulRefine) -## 강화할 수 없는 경우 날리는 예외 +## Exception raised when refining is not possible #class DragonSoulRefineException(Exception): #pass @@ -879,7 +879,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow): def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem - # 버튼 눌려 있는 상태를 제외한 모든 강화창 관련 변수들을 초기화. + # Initialize all refine window variables except button pressed state def __Initialize(self): self.currentRecipe = {} self.refineItemInfo = {} @@ -897,7 +897,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow): def __FlushRefineItemSlot(self): ## Item slot settings - # 원래 인벤의 아이템 카운트 회복 + # Restore original inventory item count for invenType, invenPos, itemCount in self.refineItemInfo.values(): remainCount = player.GetItemCount(invenType, invenPos) player.SetItemCount(invenType, invenPos, remainCount + itemCount) @@ -948,33 +948,33 @@ class DragonSoulRefineWindow(ui.ScriptWindow): raise Exception, ("Invalid attachedItemCount(%d). (base pos (%d, %d), base itemCount(%d))" % (itemCount, invenType, invenPos, maxCount)) #return False - # strength 강화일 경우, 0번엔 강화석, 1번엔 용혼석을 놓도록 강제함. + # For strength refining, force slot 0 for refine stone and slot 1 for dragon soul if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType: if self.__IsDragonSoul(itemVnum): dstSlotIndex = 1 else: dstSlotIndex = 0 - # 빈 슬롯이어야함. + # Must be empty slot if dstSlotIndex in self.refineItemInfo: return False - - # 강화창에 올릴 수 있는 아이템인지 검사. + + # Check if item can be placed in refine window if False == self.__CheckCanRefine(itemVnum): return False - - # 끌어다 놓은 아이템 카운트만큼 원래 자리의 아이템 카운트 감소 + + # Decrease original slot item count by dragged amount player.SetItemCount(invenType, invenPos, maxCount - itemCount) self.refineItemInfo[dstSlotIndex] = (invenType, invenPos, itemCount) self.Refresh() return True - # 강화 가능한 아이템인지 체크 - # 용혼석 강화는 강화 레시피를 정해놓고 시작하는 것이 아니라, - # 처음에 강화창에 올린 용혼석에 의해 강화 레시피가 결정된다. - # 그래서 __CanRefineGrade, __CanRefineStep, __CanRefineStrength 함수에서 - # 강화 레시피가 없다면(처음 올리는 아이템이라면), 강화 레시피를 설정해주는 역할도 한다. + # Check if item can be refined + # Dragon soul refining doesn't start with a predetermined recipe + # The refine recipe is determined by the first dragon soul placed in the refine window + # So __CanRefineGrade, __CanRefineStep, __CanRefineStrength functions also + # set the refine recipe if there isn't one (if it's the first item placed) def __CheckCanRefine(self, vnum): if self.REFINE_TYPE_GRADE == self.currentRefineType: return self.__CanRefineGrade(vnum) @@ -1001,19 +1001,19 @@ class DragonSoulRefineWindow(ui.ScriptWindow): if not (cur_refine_ds_type == ds_type and cur_refine_grade == grade): self.__PopUp(localeInfo.DRAGON_SOUL_INVALID_DRAGON_SOUL) return False - # 강화 창에 처음 아이템을 올리는 경우, 강화 재료에 관한 정보가 없다. - # 용혼석 강화가, 레시피를 가지고 시작하는 것이 아니라, 강화창에 처음 올리는 아이템이 무엇이냐에 따라, - # 무엇을 강화하고, 재료가 무엇인지(이하 레시피)가 정해진다. - # 레시피가 없다면, 처음 올린 아이템이라 생각하고, vnum을 바탕으로 레시피를 셋팅. + # When placing first item in refine window, there's no material information + # Dragon soul refining doesn't start with a recipe - what to refine and + # what materials are needed (recipe) is determined by the first item placed + # If no recipe exists, assume it's the first item and set recipe based on vnum else: self.currentRecipe = self.__GetRefineGradeRecipe(vnum) if self.currentRecipe: self.refineSlotLockStartIndex = self.currentRecipe["need_count"] - self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"])) + self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"])) return True else: - # 강화 정보 셋팅에 실패하면 올릴 수 없는 아이템으로 판단. + # If recipe setup fails, item cannot be placed self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE) return False @@ -1030,25 +1030,25 @@ class DragonSoulRefineWindow(ui.ScriptWindow): 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 - # 강화 창에 처음 아이템을 올리는 경우, 재료에 관한 정보가 없다. - # 용혼석 강화가, 레시피를 가지고 시작하는 것이 아니라, 강화창에 처음 올리는 아이템이 무엇이냐에 따라, - # 무엇을 강화하고, 재료가 무엇인지(이하 레시피)가 정해진다. - # 레시피가 없다면, 처음 올린 아이템이라 생각하고, vnum을 바탕으로 레시피를 셋팅. + # When placing first item in refine window, there's no material information + # Dragon soul refining doesn't start with a recipe - what to refine and + # what materials are needed (recipe) is determined by the first item placed + # If no recipe exists, assume it's the first item and set recipe based on vnum else: self.currentRecipe = self.__GetRefineStepRecipe(vnum) if self.currentRecipe: self.refineSlotLockStartIndex = self.currentRecipe["need_count"] - self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"])) + self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"])) return True else: - # 강화 정보 셋팅에 실패하면 올릴 수 없는 아이템으로 판단. + # If recipe setup fails, item cannot be placed self.__PopUp(localeInfo.DRAGON_SOUL_CANNOT_REFINE) return False def __CanRefineStrength (self, vnum): - # 용혼석인 경우, 더 이상 strength 강화를 할 수 없는지 체크해야함. + # For dragon souls, check if strength refining is no longer possible if self.__IsDragonSoul(vnum): ds_type, grade, step, strength = self.__GetDragonSoulTypeInfo(vnum) @@ -1060,10 +1060,10 @@ class DragonSoulRefineWindow(ui.ScriptWindow): else: return True - # strength 강화의 경우, refine_recipe가 용혼석의 종류가 아닌, 강화석의 종류에 따라 달라진다. - # 따라서 용혼석이 아니라면, - # 이미 레시피가 있는 경우는, 강화석이 강화창에 있다는 것이므로, return False - # 레시피가 없는 경우는, 강화석인지 확인하고, 레시피를 셋팅한다. + # For strength refining, refine_recipe depends on refine stone type, not dragon soul type + # So if it's not a dragon soul: + # If recipe already exists, refine stone is in window, so return False + # If no recipe, check if it's a refine stone and set recipe else: if self.currentRecipe: self.__PopUp(localeInfo.DRAGON_SOUL_IS_NOT_DRAGON_SOUL) @@ -1075,7 +1075,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow): self.wndMoney.SetText(localeInfo.NumberToMoneyString(self.currentRecipe["fee"])) return True else: - # 레시피를 셋팅할 수 없는 경우 + # Cannot set recipe self.__PopUp(localeInfo.DRAGON_SOUL_NOT_DRAGON_SOUL_REFINE_STONE) return False @@ -1105,11 +1105,11 @@ class DragonSoulRefineWindow(ui.ScriptWindow): except: return None - # strength 강화의 경우, refineInfo는 강화석에 따라 달라진다. + # For strength refining, refineInfo depends on the refine stone def __GetRefineStrengthInfo (self, itemVnum): try: - # 이놈의 위치를 어찌하지.... - # 강화석이 아니면 안됨. + # Where to put this... + # Must be a refine stone item.SelectItem(itemVnum) if not (item.ITEM_TYPE_MATERIAL == item.GetItemType() \ and (item.MATERIAL_DS_REFINE_NORMAL <= item.GetItemSubType() and item.GetItemSubType() <= item.MATERIAL_DS_REFINE_HOLLY)): @@ -1124,11 +1124,11 @@ class DragonSoulRefineWindow(ui.ScriptWindow): item.SelectItem(vnum) return item.GetItemType() == item.ITEM_TYPE_DS - # 용혼석 Vnum에 대한 comment - # ITEM VNUM을 10만 자리부터, FEDCBA라고 한다면 - # FE : 용혼석 종류. D : 등급 - # C : 단계 B : 강화 - # A : 여벌의 번호들... + # Dragon soul Vnum comments + # If ITEM VNUM from 100,000s digit is represented as FEDCBA + # FE: Dragon soul type D: Grade + # C: Step B: Strength + # A: Reserved numbers def __GetDragonSoulTypeInfo(self, vnum): if not self.__IsDragonSoul(vnum): return DragonSoulRefineWindow.INVALID_DRAGON_SOUL_INFO @@ -1142,7 +1142,7 @@ class DragonSoulRefineWindow(ui.ScriptWindow): def __MakeDragonSoulVnum(self, ds_type, grade, step, strength): return ds_type * 10000 + grade * 1000 + step * 100 + strength * 10 - ## 빈 슬롯 선택 Event + ## Empty slot selection event def __SelectRefineEmptySlot(self, selectedSlotPos): try: if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: @@ -1177,14 +1177,14 @@ class DragonSoulRefineWindow(ui.ScriptWindow): import dbg dbg.TraceError("Exception : __SelectRefineEmptySlot, %s" % e) - # 클릭으로 슬롯에서 삭제. + # Remove from slot by clicking def __SelectRefineItemSlot(self, selectedSlotPos): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return try: if not selectedSlotPos in self.refineItemInfo: - # 새로운 아이템을 강화창에 올리는 작업. + # Place new item in refine window if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() @@ -1211,26 +1211,26 @@ class DragonSoulRefineWindow(ui.ScriptWindow): attachedInvenType, attachedSlotPos, attachedItemCount = self.refineItemInfo[selectedSlotPos] selectedItemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos) - - # 강화창에서 삭제 및 원래 인벤의 아이템 카운트 회복 + + # Remove from refine window and restore original inventory item count invenType, invenPos, itemCount = self.refineItemInfo[selectedSlotPos] remainCount = player.GetItemCount(invenType, invenPos) player.SetItemCount(invenType, invenPos, remainCount + itemCount) del self.refineItemInfo[selectedSlotPos] - - # 강화창이 비었다면, 초기화 + + # If refine window is empty, initialize if not self.refineItemInfo: self.__Initialize() else: item.SelectItem(selectedItemVnum) - # 없앤 아이템이 강화석이었다면 강화 레피시 초기화 + # If removed item was refine stone, reset refine recipe if (item.ITEM_TYPE_MATERIAL == item.GetItemType() \ and (item.MATERIAL_DS_REFINE_NORMAL <= item.GetItemSubType() and item.GetItemSubType() <= item.MATERIAL_DS_REFINE_HOLLY)): self.currentRecipe = {} self.wndMoney.SetText(localeInfo.NumberToMoneyString(0)) - # 용혼석이었다면, - # strength강화가 아닌 경우, 강화창에 다른 용혼석이 남아있으므로, 레시피를 초기화하면 안됨. - # strength강화의 경우, 강화 레시피는 강화석에 종속된 것이므로 다른 처리할 필요가 없음. + # If it was a dragon soul: + # For non-strength refining, don't reset recipe since other dragon souls remain in window + # For strength refining, no special handling needed since recipe depends on refine stone else: pass @@ -1277,10 +1277,10 @@ class DragonSoulRefineWindow(ui.ScriptWindow): for slotPos in xrange(self.wndRefineSlot.GetSlotCount()): self.wndRefineSlot.ClearSlot(slotPos) if slotPos < self.refineSlotLockStartIndex: - # self.refineItemInfo[slotPos]의 정보확인 - # (실제로 아이템이 존재하는지 확인) - # 존재 -> 아이템 아이콘을 슬롯에 셋팅. - # 비존재 -> 아이템이 없으므로 강화창에서 삭제. + # Check self.refineItemInfo[slotPos] information + # (check if item actually exists) + # Exists -> Set item icon to slot + # Doesn't exist -> Remove from refine window since there's no item if slotPos in self.refineItemInfo: invenType, invenPos, itemCount = self.refineItemInfo[slotPos] itemVnum = player.GetItemIndex(invenType, invenPos) @@ -1291,12 +1291,12 @@ class DragonSoulRefineWindow(ui.ScriptWindow): else: del self.refineItemInfo[slotPos] - # 빈 슬롯에 reference 아이콘을 alpha 0.5로 셋팅. + # Set reference icon with alpha 0.5 for empty slot if not slotPos in self.refineItemInfo: try: reference_vnum = 0 - # strength 강화일 때는, - # 0번 슬롯에 강화석을, 1번 슬롯에 용혼석을 놓는다. + # For strength refining: + # Slot 0 for refine stone, slot 1 for dragon soul if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType: if DragonSoulRefineWindow.REFINE_STONE_SLOT == slotPos: reference_vnum = 100300 @@ -1307,28 +1307,27 @@ class DragonSoulRefineWindow(ui.ScriptWindow): itemIcon = item.GetIconImage() (width, height) = item.GetItemSize() self.wndRefineSlot.SetSlot(slotPos, 0, width, height, itemIcon, (1.0, 1.0, 1.0, 0.5)) - # slot 우측 하단에 숫자 뜨면 안 예쁨... + # Don't show number in bottom right of slot, looks bad self.wndRefineSlot.SetSlotCount(slotPos, 0) except: pass - # refineSlotLockStartIndex 보다 작은 슬롯은 닫힌 이미지를 보여주면 안됨. + # Slots smaller than refineSlotLockStartIndex shouldn't show closed image self.wndRefineSlot.HideSlotBaseImage(slotPos) # slotPos >= self.refineSlotLockStartIndex: else: - # 정상적인 경우라면 이 if문에 들어갈 일은 없겠지만, - # (애초에 인덱스가 refineSlotLockStartIndex 이상인 슬롯에는 아이템을 넣지 못하게 했기 때문) - # 혹시 모를 에러에 대비함. + # Normally this if statement shouldn't execute + # (since we prevented items from being placed in slots >= refineSlotLockStartIndex) + # But handle just in case of error if slotPos in self.refineItemInfo: invenType, invenPos, itemCount = self.refineItemInfo[slotPos] remainCount = player.GetItemCount(invenType, invenPos) player.SetItemCount(invenType, invenPos, remainCount + itemCount) del self.refineItemInfo[slotPos] - # refineSlotLockStartIndex 이상인 슬롯은 닫힌 이미지를 보여줘야함. + # Slots >= refineSlotLockStartIndex should show closed image self.wndRefineSlot.ShowSlotBaseImage(slotPos) - - # 강화창에 아무런 아이템이 없다면, 초기화해줌. - # 위에서 중간 중간에 "del self.refineItemInfo[slotPos]"를 했기 때문에, - # 여기서 한번 체크해줘야함. + + # If there are no items in refine window, initialize + # Need to check here since we did "del self.refineItemInfo[slotPos]" above if not self.refineItemInfo: self.__Initialize() @@ -1338,8 +1337,8 @@ class DragonSoulRefineWindow(ui.ScriptWindow): dbg.TraceError("Exception : __RefreshRefineItemSlot, %s" % e) def __GetEmptySlot(self, itemVnum = 0): - # STRENGTH 강화의 경우, 용혼석 슬롯과 강화석 슬롯이 구분되어있기 떄문에 - # vnum을 알아야 한다. + # For STRENGTH refining, dragon soul slot and refine stone slot are separate + # so we need to know the vnum if DragonSoulRefineWindow.REFINE_TYPE_STRENGTH == self.currentRefineType: if 0 == itemVnum: return -1