Jump to content

Mr.Metin2

Inactive Member
  • Posts

    52
  • Joined

  • Last visited

  • Feedback

    0%

About Mr.Metin2

Informations

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Mr.Metin2's Achievements

Enthusiast

Enthusiast (6/16)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

5

Reputation

  1. What I am selling is not selling anything I need encryption instruction to protect my server and not sell it #Close Some are making false accusations In that forum
  2. When I modified that key [Hidden Content] A problem appears in client syserr 0601 22:21:16837 :: LZObject: key incorrect 0601 22:21:00031 :: RunMain Error @xAres
  3. My friend, I need the tool to encrypt my private client and not someone else's client When I encrypted using Enigma, the launcher had viruses I tried to encode using MoleBox Pro, but it was easily decoded using demoleition I am looking for software that encrypts the client in a way that is difficult to decrypt
  4. Version of Files : 40k Hey everyone, I hope everyone is fine I am looking for eix pack encoder without leaving viruses in the launcher. Can anyone give me a program with an explanation of its use and thank you all
  5. Version of Files : 40k Hi, I hope everyone is fine I have a problem with resistors like fire - lightning - darkness etc. Resistors are not activated against monsters and bosses. I want a way or know why to solve this problem More clearly, I want to activate all resistances against monsters and leaders in order to further increase player damage
  6. Welcome allI have a bug system Mount a horse when I have an advantage. For example, 25 points. Get experience. When I lift the seal, this gives me an advantage. When I go up the animal it gives me 25 too, so I have 50 instead of 25.In short, the system gives me the feature twice instead of onceBefore going up on the animal he gives me the value that I added to the seal, which is 25 [Hidden Content] After climbing on the animal, give me the same value that you added the seal again? [Hidden Content] Hope for help is necessary
  7. Hello allI need help adding a fourth socket for armor and weapons in the perceptive system in order for armor and weapons to be displayed without problems.I made several attempts, but I failed because I did not understand the code and how to amend it. I hope someone helps me and thank youPythonChatModule.cpp PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs) { char * szHyperlink; if (!PyTuple_GetString(poArgs, 0, &szHyperlink)) return Py_BuildException(); std::string stHyperlink(szHyperlink); std::vector<std::string> results; split_string(stHyperlink, ":", results, false); // item:vnum:flag:socket0:socket1:socket2 if (0 == results[0].compare("item")) { if (results.size() < 6) return Py_BuildValue("s", ""); CItemData * pItemData = NULL; if (CItemManager::Instance().GetItemDataPointer(htoi(results[1].c_str()), &pItemData)) { char buf[1024] = { 0 }; #ifdef ENABLE_CHANGELOOK_SYSTEM char itemlink[256 + 12]; #else char itemlink[256]; #endif int len; bool isAttr = false; len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x", htoi(results[1].c_str()), htoi(results[2].c_str()), htoi(results[3].c_str()), htoi(results[4].c_str()), htoi(results[5].c_str()), htoi(results[6].c_str())); #ifdef ENABLE_CHANGELOOK_SYSTEM if (results.size() >= 9) #else if (results.size() >= 8) #endif { #ifdef ENABLE_CHANGELOOK_SYSTEM for (int i = 7; i < results.size(); i += 2) #else for (int i = 6; i < results.size(); i += 2) #endif { len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d", htoi(results[i].c_str()), atoi(results[i+1].c_str())); isAttr = true; } } if (isAttr) //"item:¹ّب£:اأ·،±×:¼زؤد0:¼زؤد1:¼زؤد2" snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); else snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); return Py_BuildValue("s", buf); } } return Py_BuildValue("s", ""); } andPythonPlayerModule.cpp PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs) { TItemPos Cell; switch (PyTuple_Size(poArgs)) { case 1: if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell)) return Py_BuildException(); break; case 2: if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type)) return Py_BuildException(); if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell)) return Py_BuildException(); break; default: return Py_BuildException(); } const TItemData * pPlayerItem = CPythonPlayer::Instance().GetItemData(Cell); CItemData * pItemData = NULL; char buf[1024]; if (pPlayerItem && CItemManager::Instance().GetItemDataPointer(pPlayerItem->vnum, &pItemData)) { char itemlink[256 + 12]; int len; bool isAttr = false; len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x", pPlayerItem->vnum, pPlayerItem->flags, pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2], pPlayerItem->transmutation); for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i) { len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d", pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue); isAttr = true; } if( GetDefaultCodePage() == CP_ARABIC ) { if (isAttr) //"item:¹ّب£:اأ·،±×:¼زؤد0:¼زؤد1:¼زؤد2" snprintf(buf, sizeof(buf), " |h|r[%s]|cffffc700|H%s|h", pItemData->GetName(), itemlink); else snprintf(buf, sizeof(buf), " |h|r[%s]|cfff1e6c0|H%s|h", pItemData->GetName(), itemlink); } else { if (isAttr) //"item:¹ّب£:اأ·،±×:¼زؤد0:¼زؤد1:¼زؤد2" snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); else snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); } } else buf[0] = '\0'; return Py_BuildValue("s", buf); } anduitooltip.py class HyperlinkItemToolTip(ItemToolTip): def __init__(self): ItemToolTip.__init__(self, isPickable=True) def SetHyperlinkItem(self, tokens): minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM if app.ENABLE_CHANGELOOK_SYSTEM: minTokenCount += 1 maxTokenCount = minTokenCount + 2 * player.ATTRIBUTE_SLOT_MAX_NUM if tokens and len(tokens) >= minTokenCount and len(tokens) <= maxTokenCount: head, vnum, flag = tokens[:3] itemVnum = int(vnum, 16) metinSlot = [int(metin, 16) for metin in tokens[3:6]] rests = tokens[6:] transmutation = 0 if app.ENABLE_CHANGELOOK_SYSTEM: rests = tokens[7:] cnv = [int(cnv, 16) for cnv in tokens[6:7]] transmutation = int(cnv[0]) if rests: attrSlot = [] rests.reverse() while rests: key = int(rests.pop(), 16) if rests: val = int(rests.pop()) attrSlot.append((key, val)) attrSlot += [(0, 0)] * (player.ATTRIBUTE_SLOT_MAX_NUM - len(attrSlot)) else: attrSlot = [(0, 0)] * player.ATTRIBUTE_SLOT_MAX_NUM self.ClearToolTip() if app.ENABLE_CHANGELOOK_SYSTEM: if not transmutation: self.AddItemData(itemVnum, metinSlot, attrSlot) else: self.AddItemData(itemVnum, metinSlot, attrSlot, 0, 0, player.INVENTORY, -1, transmutation) else: self.AddItemData(itemVnum, metinSlot, attrSlot) ItemToolTip.OnUpdate(self) def OnUpdate(self): pass def OnMouseLeftButtonDown(self): self.Hide() Hope someone help me please
  8. // import ui import player import mouseModule import net import app import snd import item import player import chat import grp import uiScriptLocale import uiRefine import uiAttachMetin import uiPickMoney import uiPickEtc import uiCommon import uiPrivateShopBuilder # °³ہخ»َء، ؟­µ؟¾ب ItemMove ¹وءِ import localeInfo import constInfo import ime import uiToolTip import wndMgr import uipicketc # BEGIN_OFFLINE_SHOP import uiOfflineShopBuilder import uiOfflineShop # END_OF_OFFLINE_SHOP if app.WJ_ELDER_ATTRIBUTE_SYSTEM: import uiAttachBonus ITEM_MALL_BUTTON_ENABLE = True if app.ENABLE_SASH_SYSTEM: import sash if app.ENABLE_CHANGELOOK_SYSTEM: import changelook ITEM_FLAG_APPLICABLE = 1 << 14 class CostumeWindow(ui.ScriptWindow): def __init__(self, wndInventory): import exception if not app.ENABLE_COSTUME_SYSTEM: exception.Abort("What do you do?") return if not wndInventory: exception.Abort("wndInventory parameter must be set to InventoryWindow") return ui.ScriptWindow.__init__(self) self.isLoaded = 0 self.wndInventory = wndInventory; self.__LoadWindow() def __del__(self): ui.ScriptWindow.__del__(self) def Show(self): self.__LoadWindow() self.RefreshCostumeSlot() ui.ScriptWindow.Show(self) def Close(self): self.Hide() def __LoadWindow(self): if self.isLoaded == 1: return self.isLoaded = 1 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/CostumeWindow.py") except: import exception exception.Abort("CostumeWindow.LoadWindow.LoadObject") try: wndEquip = self.GetChild("CostumeSlot") self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close)) except: import exception exception.Abort("CostumeWindow.LoadWindow.BindObject") ## Equipment wndEquip.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem)) wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem)) wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot)) wndEquip.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot)) wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot)) wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot)) self.wndEquip = wndEquip def RefreshCostumeSlot(self): getItemVNum=player.GetItemIndex for i in xrange(item.COSTUME_SLOT_COUNT): slotNumber = item.COSTUME_SLOT_START + i self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) if app.ENABLE_CHANGELOOK_SYSTEM: itemTransmutedVnum = player.GetItemTransmutation(slotNumber) if itemTransmutedVnum: self.wndEquip.DisableCoverButton(slotNumber) else: self.wndEquip.EnableCoverButton(slotNumber) for i in xrange(2): slotNumber = player.NEW_EQUIPMENT_SLOT_START + i self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) self.wndEquip.RefreshSlot() if app.WJ_SPLIT_INVENTORY_SYSTEM: class ExtendedInventoryWindow(ui.ScriptWindow): tooltipItem = None interface = None dlgPickMoney = None dlgPickItem = None sellingSlotNumber = -1 isLoaded = 0 def __init__(self): ui.ScriptWindow.__init__(self) self.inventoryPageIndex = 0 self.__LoadWindow() def __del__(self): ui.ScriptWindow.__del__(self) def Show(self): self.__LoadWindow() ui.ScriptWindow.Show(self) def BindInterfaceClass(self, interface): self.interface = interface def __LoadWindow(self): if self.isLoaded == 1: return self.isLoaded = 1 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/ExtendedInventoryWindow.py") except: import exception exception.Abort("ExtendedInventoryWindow.LoadWindow.LoadObject") try: wndItem = self.GetChild("ItemSlot") self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close)) self.titleName = self.GetChild("TitleName") self.SkillBookButton = self.GetChild("SkillBookButton") self.UpgradeItemsButton = self.GetChild("UpgradeItemsButton") self.stoneButton = self.GetChild("StoneButton") self.boxButton = self.GetChild("BoxButton") self.efsunButton = self.GetChild("EfsunButton") self.cicekButton = self.GetChild("CicekButton") self.inventoryTab = [] self.inventoryTab.append(self.GetChild("Inventory_Tab_01")) self.inventoryTab.append(self.GetChild("Inventory_Tab_02")) self.inventoryTab.append(self.GetChild("Inventory_Tab_03")) self.MalzemeDeposuInfo = self.GetChild("MalzemeDeposuInfo") except: import exception exception.Abort("ExtendedInventoryWindow.LoadWindow.BindObject") ## Info self.tlInfo = uiToolTip.ItemToolTip() self.tlInfo.Hide() self.tooltipInfo = [self.tlInfo]*7 self.InformationText = [localeInfo.MALZEME_DEPOSU, localeInfo.BK_ENVANTER_TEXT1, localeInfo.BK_ENVANTER_TEXT2, localeInfo.BK_ENVANTER_TEXT3, localeInfo.BK_ENVANTER_TEXT4, localeInfo.BK_ENVANTER_TEXT5, localeInfo.BK_ENVANTER_TEXT6 ] for i in xrange(7): self.tooltipInfo[i].SetFollow(True) self.tooltipInfo[i].AlignHorizonalCenter() if i == 0: TITLE_COLOR = grp.GenerateColor(0.9490, 0.9058, 0.7568, 1.0) self.tooltipInfo[i].AutoAppendTextLine(self.InformationText[i], TITLE_COLOR) else: self.tooltipInfo[i].AutoAppendTextLine(self.InformationText[i]) self.tooltipInfo[i].Hide() self.tooltipInfo[i].toolTipWidth += 10 ## Item wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.envanterileacilsin = ui.CheckBox() self.envanterileacilsin.SetParent(self) self.envanterileacilsin.SetPosition(17, 385) self.envanterileacilsin.SetEvent(ui.__mem_func__(self.__OnClickEnableEnvanterOn), "ON_CHECK", True) self.envanterileacilsin.SetEvent(ui.__mem_func__(self.__OnClickDisableEnvanterOf), "ON_UNCKECK", False) self.envanterileacilsin.SetTextInfo(localeInfo.ENVANTER_ILE_AC) self.envanterileacilsin.SetCheckStatus(constInfo.EnvanterAcilsinmi) self.envanterileacilsin.Show() self.SkillBookButton.SetEvent(lambda arg=0: self.SetInventoryType(arg)) self.UpgradeItemsButton.SetEvent(lambda arg=1: self.SetInventoryType(arg)) self.stoneButton.SetEvent(lambda arg=2: self.SetInventoryType(arg)) self.boxButton.SetEvent(lambda arg=3: self.SetInventoryType(arg)) self.efsunButton.SetEvent(lambda arg=4: self.SetInventoryType(arg)) self.cicekButton.SetEvent(lambda arg=5: self.SetInventoryType(arg)) self.SkillBookButton.Down() self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg)) self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg)) self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg)) self.inventoryTab[0].Down() ## PickMoneyDialog dlgPickMoney = uiPickMoney.PickMoneyDialog() dlgPickMoney.LoadDialog() dlgPickMoney.Hide() ## PickItemDialog dlgPickItem = uiPickEtc.PickEtcDialog() dlgPickItem.LoadDialog() dlgPickItem.Hide() self.dlgPickMoney = dlgPickMoney self.wndItem = wndItem self.SetInventoryType(0) self.SetInventoryPage(0) self.dlgPickItem = dlgPickItem self.wndCostume = None def Destroy(self): self.ClearDictionary() self.dlgPickMoney.Destroy() self.dlgPickItem.Destroy() self.dlgPickItem = 0 self.dlgPickMoney = 0 self.tooltipItem = None self.wndItem = 0 self.interface = None self.inventoryTab = [] self.envanterileacilsin = [] def __OnClickEnableEnvanterOn(self): constInfo.EnvanterAcilsinmi = 1 chat.AppendChat(chat.CHAT_TYPE_INFO, "<Sistem> Envanter ile aç‎lma aktif.") def __OnClickDisableEnvanterOf(self): constInfo.EnvanterAcilsinmi = 0 chat.AppendChat(chat.CHAT_TYPE_INFO, "<Sistem> Envanter ile aç‎lma pasif.") def Hide(self): if None != self.tooltipItem: self.tooltipItem.HideToolTip() self.tlInfo.Hide() if self.dlgPickItem: self.dlgPickItem.Close() wndMgr.Hide(self.hWnd) def Close(self): if self.tooltipItem: self.tooltipItem.HideToolTip() self.tlInfo.Hide() self.Hide() def OnUpdate(self): for i in xrange(7): if self.MalzemeDeposuInfo.IsIn(): self.tooltipInfo[i].Show() else: self.tooltipInfo[i].Hide() def SetInventoryType(self, type): self.inventoryType = type if type == 0: self.SkillBookButton.Down() self.efsunButton.SetUp() self.cicekButton.SetUp() self.UpgradeItemsButton.SetUp() self.stoneButton.SetUp() self.boxButton.SetUp() self.titleName.SetText(localeInfo.INVENTORY_SKILL_BOOK_TOOLTIP) elif type == 2: self.stoneButton.Down() self.efsunButton.SetUp() self.cicekButton.SetUp() self.UpgradeItemsButton.SetUp() self.SkillBookButton.SetUp() self.boxButton.SetUp() self.titleName.SetText(localeInfo.INVENTORY_STONE_TOOLTIP) elif type == 3: self.boxButton.Down() self.efsunButton.SetUp() self.UpgradeItemsButton.SetUp() self.cicekButton.SetUp() self.stoneButton.SetUp() self.SkillBookButton.SetUp() self.titleName.SetText(localeInfo.INVENTORY_BOX_TOOLTIP) elif type == 4: self.efsunButton.Down() self.boxButton.SetUp() self.cicekButton.SetUp() self.UpgradeItemsButton.SetUp() self.stoneButton.SetUp() self.SkillBookButton.SetUp() self.titleName.SetText(localeInfo.INVENTORY_EFSUN_TOOLTIP) elif type == 5: self.cicekButton.Down() self.efsunButton.SetUp() self.boxButton.SetUp() self.UpgradeItemsButton.SetUp() self.stoneButton.SetUp() self.SkillBookButton.SetUp() self.titleName.SetText(localeInfo.INVENTORY_CICEK_TOOLTIP) else: self.UpgradeItemsButton.Down() self.SkillBookButton.SetUp() self.efsunButton.SetUp() self.cicekButton.SetUp() self.stoneButton.SetUp() self.boxButton.SetUp() self.titleName.SetText(localeInfo.INVENTORY_UPGRADE_ITEM_TOOLTIP) self.RefreshBagSlotWindow() def SetInventoryPage(self, page): self.inventoryPageIndex = page for i in range(0,len(self.inventoryTab)): self.inventoryTab[i].SetUp() self.inventoryTab[page].Down() self.RefreshBagSlotWindow() def OnPickItem(self, count): itemSlotIndex = self.dlgPickItem.itemGlobalSlotIndex selectedItemVNum = player.GetItemIndex(itemSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_SKILL_BOOK_INVENTORY, itemSlotIndex, selectedItemVNum, count) def __InventoryLocalSlotPosToGlobalSlotPos(self, local): if self.inventoryType == 0: return self.inventoryPageIndex*player.SKILL_BOOK_INVENTORY_SLOT_COUNT + local + item.SKILL_BOOK_INVENTORY_SLOT_START elif self.inventoryType == 2: return self.inventoryPageIndex*player.STONE_INVENTORY_SLOT_COUNT + local + item.STONE_INVENTORY_SLOT_START elif self.inventoryType == 3: return self.inventoryPageIndex*player.BOX_INVENTORY_SLOT_COUNT + local + item.BOX_INVENTORY_SLOT_START elif self.inventoryType == 4: return self.inventoryPageIndex*player.EFSUN_INVENTORY_SLOT_COUNT + local + item.EFSUN_INVENTORY_SLOT_START elif self.inventoryType == 5: return self.inventoryPageIndex*player.CICEK_INVENTORY_SLOT_COUNT + local + item.CICEK_INVENTORY_SLOT_START else: return self.inventoryPageIndex*player.UPGRADE_ITEMS_INVENTORY_SLOT_COUNT + local + item.UPGRADE_ITEMS_INVENTORY_SLOT_START def GetInventoryPageIndex(self): return self.inventoryPageIndex def RefreshBagSlotWindow(self): getItemVNum=player.GetItemIndex getItemCount=player.GetItemCount setItemVNum=self.wndItem.SetItemSlot if self.inventoryType == 0: for i in xrange(player.SKILL_BOOK_INVENTORY_SLOT_COUNT): slotNumber = item.SKILL_BOOK_INVENTORY_SLOT_START + i if self.GetInventoryPageIndex() == 1: slotNumber += 45 elif self.GetInventoryPageIndex() == 2: slotNumber += 90 itemCount = getItemCount(slotNumber) if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) elif self.inventoryType == 2: for i in xrange(player.STONE_INVENTORY_SLOT_COUNT): slotNumber = item.STONE_INVENTORY_SLOT_START + i if self.GetInventoryPageIndex() == 1: slotNumber += 45 elif self.GetInventoryPageIndex() == 2: slotNumber += 90 itemCount = getItemCount(slotNumber) if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) elif self.inventoryType == 3: for i in xrange(player.BOX_INVENTORY_SLOT_COUNT): slotNumber = item.BOX_INVENTORY_SLOT_START + i if self.GetInventoryPageIndex() == 1: slotNumber += 45 elif self.GetInventoryPageIndex() == 2: slotNumber += 90 itemCount = getItemCount(slotNumber) if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) elif self.inventoryType == 4: for i in xrange(player.EFSUN_INVENTORY_SLOT_COUNT): slotNumber = item.EFSUN_INVENTORY_SLOT_START + i if self.GetInventoryPageIndex() == 1: slotNumber += 45 elif self.GetInventoryPageIndex() == 2: slotNumber += 90 itemCount = getItemCount(slotNumber) if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) elif self.inventoryType == 5: for i in xrange(player.CICEK_INVENTORY_SLOT_COUNT): slotNumber = item.CICEK_INVENTORY_SLOT_START + i if self.GetInventoryPageIndex() == 1: slotNumber += 45 elif self.GetInventoryPageIndex() == 2: slotNumber += 90 itemCount = getItemCount(slotNumber) if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) else: for i in xrange(player.UPGRADE_ITEMS_INVENTORY_SLOT_COUNT): slotNumber = item.UPGRADE_ITEMS_INVENTORY_SLOT_START + i if self.GetInventoryPageIndex() == 1: slotNumber += 45 elif self.GetInventoryPageIndex() == 2: slotNumber += 90 itemCount = getItemCount(slotNumber) if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) self.wndItem.RefreshSlot() def RefreshItemSlot(self): self.RefreshBagSlotWindow() def RefreshStatus(self): pass def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def SelectEmptySlot(self, selectedSlotPos): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return if self.inventoryType == 0: selectedSlotPos += item.SKILL_BOOK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: selectedSlotPos += 45 elif self.GetInventoryPageIndex() == 2: selectedSlotPos += 90 elif self.inventoryType == 2: selectedSlotPos += item.STONE_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: selectedSlotPos += 45 elif self.GetInventoryPageIndex() == 2: selectedSlotPos += 90 elif self.inventoryType == 3: selectedSlotPos += item.BOX_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: selectedSlotPos += 45 elif self.GetInventoryPageIndex() == 2: selectedSlotPos += 90 elif self.inventoryType == 4: selectedSlotPos += item.EFSUN_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: selectedSlotPos += 45 elif self.GetInventoryPageIndex() == 2: selectedSlotPos += 90 elif self.inventoryType == 5: selectedSlotPos += item.CICEK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: selectedSlotPos += 45 elif self.GetInventoryPageIndex() == 2: selectedSlotPos += 90 else: selectedSlotPos += item.UPGRADE_ITEMS_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: selectedSlotPos += 45 elif self.GetInventoryPageIndex() == 2: selectedSlotPos += 90 if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedItemCount = mouseModule.mouseController.GetAttachedItemCount() attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_STONE_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_BOX_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_EFSUN_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_CICEK_INVENTORY == attachedSlotType: itemCount = player.GetItemCount(attachedSlotPos) attachedCount = mouseModule.mouseController.GetAttachedItemCount() self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount) if item.IsRefineScroll(attachedItemIndex): self.wndItem.SetUseMode(False) elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType: mouseModule.mouseController.RunCallBack("INVENTORY") elif player.SLOT_TYPE_SHOP == attachedSlotType: net.SendShopBuyPacket(attachedSlotPos) elif player.SLOT_TYPE_SAFEBOX == attachedSlotType: if player.ITEM_MONEY == attachedItemIndex: net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount()) snd.PlaySound("sound/ui/money.wav") else: net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos) elif player.SLOT_TYPE_MALL == attachedSlotType: net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos) mouseModule.mouseController.DeattachObject() def SelectItemSlot(self, itemSlotIndex): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return if self.inventoryType == 0: itemSlotIndex += item.SKILL_BOOK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: itemSlotIndex += 45 elif self.GetInventoryPageIndex() == 2: itemSlotIndex += 90 elif self.inventoryType == 2: itemSlotIndex += item.STONE_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: itemSlotIndex += 45 elif self.GetInventoryPageIndex() == 2: itemSlotIndex += 90 elif self.inventoryType == 3: itemSlotIndex += item.BOX_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: itemSlotIndex += 45 elif self.GetInventoryPageIndex() == 2: itemSlotIndex += 90 elif self.inventoryType == 4: itemSlotIndex += item.EFSUN_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: itemSlotIndex += 45 elif self.GetInventoryPageIndex() == 2: itemSlotIndex += 90 elif self.inventoryType == 5: itemSlotIndex += item.CICEK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: itemSlotIndex += 45 elif self.GetInventoryPageIndex() == 2: itemSlotIndex += 90 else: itemSlotIndex += item.UPGRADE_ITEMS_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: itemSlotIndex += 45 elif self.GetInventoryPageIndex() == 2: itemSlotIndex += 90 if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex() attachedItemCount = mouseModule.mouseController.GetAttachedItemCount() if player.GetItemCount(itemSlotIndex) > attachedItemCount: return if player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_STONE_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_BOX_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_EFSUN_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_CICEK_INVENTORY == attachedSlotType: self.__SendMoveItemPacket(attachedSlotPos, itemSlotIndex, attachedItemCount) mouseModule.mouseController.DeattachObject() else: curCursorNum = app.GetCursor() #if app.SELL == curCursorNum: #self.__SellItem(itemSlotIndex) if app.BUY == curCursorNum: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO) elif app.IsPressed(app.DIK_LALT): link = player.GetItemLink(itemSlotIndex) ime.PasteString(link) elif app.IsPressed(app.DIK_LALT): link = player.GetItemLink(itemSlotIndex) ime.PasteString(link) elif app.IsPressed(app.DIK_LSHIFT): itemCount = player.GetItemCount(itemSlotIndex) if itemCount > 1: self.dlgPickItem.SetTitleName(localeInfo.PICK_ITEM_TITLE) self.dlgPickItem.SetAcceptEvent(ui.__mem_func__(self.OnPickItem)) self.dlgPickItem.Open(itemCount) self.dlgPickItem.itemGlobalSlotIndex = itemSlotIndex elif app.IsPressed(app.DIK_LCONTROL): itemIndex = player.GetItemIndex(itemSlotIndex) if TRUE == item.CanAddToQuickSlotItem(itemIndex): player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex) else: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.QUICKSLOT_REGISTER_DISABLE_ITEM) else: selectedItemVNum = player.GetItemIndex(itemSlotIndex) itemCount = player.GetItemCount(itemSlotIndex) if self.inventoryType == 0: mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_SKILL_BOOK_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) elif self.inventoryType == 2: mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_STONE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) elif self.inventoryType == 3: mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_BOX_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) elif self.inventoryType == 4: mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_EFSUN_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) elif self.inventoryType == 5: mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_CICEK_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) else: mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) self.wndItem.SetUseMode(True) snd.PlaySound("sound/ui/pick.wav") def OnCloseQuestionDialog(self): if not self.questionDialog: return self.questionDialog.Close() self.questionDialog = None constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0) def Sat(self): if self.sellingSlotitemIndex == player.GetItemIndex(self.sellingSlotNumber): if self.sellingSlotitemCount == player.GetItemCount(self.sellingSlotNumber): net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.INVENTORY) snd.PlaySound("sound/ui/money.wav") self.OnCloseQuestionDialog() def __OnClosePopupDialog(self): self.pop = None def OverOutItem(self): self.wndItem.SetUsableItem(False) if None != self.tooltipItem: self.tooltipItem.HideToolTip() def OverInItem(self, overSlotPos): if self.inventoryType == 0: overSlotPos += item.SKILL_BOOK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: overSlotPos += 45 elif self.GetInventoryPageIndex() == 2: overSlotPos += 90 elif self.inventoryType == 2: overSlotPos += item.STONE_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: overSlotPos += 45 elif self.GetInventoryPageIndex() == 2: overSlotPos += 90 elif self.inventoryType == 3: overSlotPos += item.BOX_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: overSlotPos += 45 elif self.GetInventoryPageIndex() == 2: overSlotPos += 90 elif self.inventoryType == 4: overSlotPos += item.EFSUN_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: overSlotPos += 45 elif self.GetInventoryPageIndex() == 2: overSlotPos += 90 elif self.inventoryType == 5: overSlotPos += item.CICEK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: overSlotPos += 45 elif self.GetInventoryPageIndex() == 2: overSlotPos += 90 else: overSlotPos += item.UPGRADE_ITEMS_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: overSlotPos += 45 elif self.GetInventoryPageIndex() == 2: overSlotPos += 90 self.wndItem.SetUsableItem(False) self.ShowToolTip(overSlotPos) def ShowToolTip(self, slotIndex): if None != self.tooltipItem: self.tooltipItem.SetInventoryItem(slotIndex) def OnPressEscapeKey(self): self.Close() return True def UseItemSlot(self, slotIndex): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS(): return if self.inventoryType == 0: slotIndex += item.SKILL_BOOK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: slotIndex += 45 elif self.GetInventoryPageIndex() == 2: slotIndex += 90 elif self.inventoryType == 2: slotIndex += item.STONE_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: slotIndex += 45 elif self.GetInventoryPageIndex() == 2: slotIndex += 90 elif self.inventoryType == 3: slotIndex += item.BOX_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: slotIndex += 45 elif self.GetInventoryPageIndex() == 2: slotIndex += 90 elif self.inventoryType == 4: slotIndex += item.EFSUN_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: slotIndex += 45 elif self.GetInventoryPageIndex() == 2: slotIndex += 90 elif self.inventoryType == 5: slotIndex += item.CICEK_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: slotIndex += 45 elif self.GetInventoryPageIndex() == 2: slotIndex += 90 else: slotIndex += item.UPGRADE_ITEMS_INVENTORY_SLOT_START if self.GetInventoryPageIndex() == 1: slotIndex += 45 elif self.GetInventoryPageIndex() == 2: slotIndex += 90 self.__UseItem(slotIndex) mouseModule.mouseController.DeattachObject() self.OverOutItem() def __UseItem(self, slotIndex): ItemVNum = player.GetItemIndex(slotIndex) item.SelectItem(ItemVNum) if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE): self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM) self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel)) self.questionDialog.Open() self.questionDialog.slotIndex = slotIndex constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1) elif app.IsPressed(app.DIK_LSHIFT): if player.GetItemTypeBySlot(slotIndex) == item.ITEM_TYPE_GIFTBOX and\ ItemVNum != 31374 and ItemVNum != 50255 and\ ItemVNum != 50187 and ItemVNum != 50197 and\ ItemVNum != 50188 and ItemVNum != 50189 and\ ItemVNum != 50190 and ItemVNum != 50191 and\ ItemVNum != 50192 and ItemVNum != 50193 and\ ItemVNum != 50194 and ItemVNum != 50195: if app.ENABLE_SHOW_CHEST_DROP: if self.interface: if self.interface.dlgChestDrop: if not self.interface.dlgChestDrop.IsShow(): self.interface.dlgChestDrop.Open(slotIndex) net.SendChestDropInfo(slotIndex) else: self.__SendUseItemPacket(slotIndex) def __UseItemQuestionDialog_OnCancel(self): self.OnCloseQuestionDialog() def __UseItemQuestionDialog_OnAccept(self): self.__SendUseItemPacket(self.questionDialog.slotIndex) self.OnCloseQuestionDialog() def __SendUseItemPacket(self, slotPos): if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP) return net.SendItemUsePacket(slotPos) def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount): if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP) return net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount) class BeltInventoryWindow(ui.ScriptWindow): def __init__(self, wndInventory): import exception if not app.ENABLE_NEW_EQUIPMENT_SYSTEM: exception.Abort("What do you do?") return if not wndInventory: exception.Abort("wndInventory parameter must be set to InventoryWindow") return ui.ScriptWindow.__init__(self) self.isLoaded = 0 self.wndInventory = wndInventory; self.wndBeltInventoryLayer = None self.wndBeltInventorySlot = None self.expandBtn = None self.minBtn = None self.__LoadWindow() def __del__(self): ui.ScriptWindow.__del__(self) def Show(self, openBeltSlot = False): self.__LoadWindow() self.RefreshSlot() ui.ScriptWindow.Show(self) if openBeltSlot: self.OpenInventory() else: self.CloseInventory() def Close(self): self.Hide() def IsOpeningInventory(self): return self.wndBeltInventoryLayer.IsShow() def OpenInventory(self): self.wndBeltInventoryLayer.Show() self.expandBtn.Hide() if localeInfo.IsARABIC() == 0: self.AdjustPositionAndSize() def CloseInventory(self): self.wndBeltInventoryLayer.Hide() self.expandBtn.Show() if localeInfo.IsARABIC() == 0: self.AdjustPositionAndSize() ## اِہç ہخ؛¥إن¸® ہ§ؤ،¸¦ ±âءطہ¸·خ BASE ہ§ؤ،¸¦ °è»ê, ¸®إد.. ¼‎ہع ادµهؤعµùاد±â ء¤¸» ½بءِ¸¸ ¹و¹‎ہج ¾ّ´ظ.. def GetBasePosition(self): x, y = self.wndInventory.GetGlobalPosition() return x - 148, y + 241 def AdjustPositionAndSize(self): bx, by = self.GetBasePosition() if self.IsOpeningInventory(): self.SetPosition(bx, by) self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight()) else: self.SetPosition(bx + 138, by); self.SetSize(10, self.GetHeight()) def __LoadWindow(self): if self.isLoaded == 1: return self.isLoaded = 1 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/BeltInventoryWindow.py") except: import exception exception.Abort("CostumeWindow.LoadWindow.LoadObject") try: self.ORIGINAL_WIDTH = self.GetWidth() wndBeltInventorySlot = self.GetChild("BeltInventorySlot") self.wndBeltInventoryLayer = self.GetChild("BeltInventoryLayer") self.expandBtn = self.GetChild("ExpandBtn") self.minBtn = self.GetChild("MinimizeBtn") self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory)) self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory)) if localeInfo.IsARABIC() : self.expandBtn.SetPosition(self.expandBtn.GetWidth() - 2, 15) self.wndBeltInventoryLayer.SetPosition(self.wndBeltInventoryLayer.GetWidth() - 5, 0) self.minBtn.SetPosition(self.minBtn.GetWidth() + 3, 15) for i in xrange(item.BELT_INVENTORY_SLOT_COUNT): slotNumber = item.BELT_INVENTORY_SLOT_START + i wndBeltInventorySlot.SetCoverButton(slotNumber, "d:/ymir work/ui/game/quest/slot_button_01.sub",\ "d:/ymir work/ui/game/quest/slot_button_01.sub",\ "d:/ymir work/ui/game/quest/slot_button_01.sub",\ "d:/ymir work/ui/game/belt_inventory/slot_disabled.tga", False, False) except: import exception exception.Abort("CostumeWindow.LoadWindow.BindObject") ## Equipment wndBeltInventorySlot.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem)) wndBeltInventorySlot.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem)) wndBeltInventorySlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot)) wndBeltInventorySlot.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot)) wndBeltInventorySlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot)) wndBeltInventorySlot.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot)) self.wndBeltInventorySlot = wndBeltInventorySlot def RefreshSlot(self): getItemVNum=player.GetItemIndex for i in xrange(item.BELT_INVENTORY_SLOT_COUNT): slotNumber = item.BELT_INVENTORY_SLOT_START + i self.wndBeltInventorySlot.SetItemSlot(slotNumber, getItemVNum(slotNumber), player.GetItemCount(slotNumber)) self.wndBeltInventorySlot.SetAlwaysRenderCoverButton(slotNumber, True) avail = "0" if player.IsAvailableBeltInventoryCell(slotNumber): self.wndBeltInventorySlot.EnableCoverButton(slotNumber) else: self.wndBeltInventorySlot.DisableCoverButton(slotNumber) self.wndBeltInventorySlot.RefreshSlot() class BioWindow(ui.ScriptWindow): def __init__(self, wndInventory): import exception if not wndInventory: exception.Abort("wndInventory parameter must be set to InventoryWindow") return ui.ScriptWindow.__init__(self) self.isLoaded = 0 self.kalan = 0 self.gerekli = 0 self.wndInventory = wndInventory; self.wndBioLayer = None self.wndBioSlot = None self.expandBtn = None self.minBtn = None self.tooltipItem = uiToolTip.ItemToolTip() self.tooltipItem.Hide() self.__LoadWindow() def __del__(self): ui.ScriptWindow.__del__(self) def Show(self, openBeltSlot = FALSE): self.__LoadWindow() self.RefreshSlot() ui.ScriptWindow.Show(self) if openBeltSlot: self.OpenInventory() else: self.CloseInventory() def Close(self): self.Hide() def IsOpeningInventory(self): return self.wndBioLayer.IsShow() def OpenInventory(self): self.wndBioLayer.Show() self.expandBtn.Hide() if localeInfo.IsARABIC() == 0: self.AdjustPositionAndSize() def CloseInventory(self): self.wndBioLayer.Hide() self.expandBtn.Show() if localeInfo.IsARABIC() == 0: self.AdjustPositionAndSize() def GetBasePosition(self): x, y = self.wndInventory.GetGlobalPosition() return x - 148, y + 20 def AdjustPositionAndSize(self): bx, by = self.GetBasePosition() if self.IsOpeningInventory(): self.SetPosition(bx, by) self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight()) else: self.SetPosition(bx + 138, by); self.SetSize(10, self.GetHeight()) def __LoadWindow(self): if self.isLoaded == 1: return self.isLoaded = 1 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/BioWindow.py") except: import exception exception.Abort("CostumeWindow.LoadWindow.LoadObject") try: self.ORIGINAL_WIDTH = self.GetWidth() wndBioSlot = self.GetChild("BeltInventorySlot") self.wndBioLayer = self.GetChild("BeltInventoryLayer") self.expandBtn = self.GetChild("ExpandBtn") self.minBtn = self.GetChild("MinimizeBtn") self.counttext = self.GetChild("count") self.sure = self.GetChild("time") self.verbutton = self.GetChild("biobutton") self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory)) self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory)) self.verbutton.SetEvent(ui.__mem_func__(self.vergitsin)) if localeInfo.IsARABIC() : self.expandBtn.SetPosition(self.expandBtn.GetWidth() - 2, 15) self.wndBioLayer.SetPosition(self.wndBioLayer.GetWidth() - 5, 0) self.minBtn.SetPosition(self.minBtn.GetWidth() + 3, 15) for i in xrange(item.BELT_INVENTORY_SLOT_COUNT): slotNumber = item.BELT_INVENTORY_SLOT_START + i wndBioSlot.SetCoverButton(slotNumber, "d:/ymir work/ui/game/quest/slot_button_01.sub",\ "d:/ymir work/ui/game/quest/slot_button_01.sub",\ "d:/ymir work/ui/game/quest/slot_button_01.sub",\ "d:/ymir work/ui/game/belt_inventory/slot_disabled.tga", FALSE, FALSE) except: import exception exception.Abort("CostumeWindow.LoadWindow.BindObject") wndBioSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem2)) wndBioSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem2)) self.wndBioSlot = wndBioSlot def vergitsin(self): net.SendChatPacket("/biyologver") def SetBiyolog(self, bioitem, verilen, toplam, kalansure): self.gerekli = int(bioitem) self.kalan = int(kalansure) self.counttext.SetText(str(verilen)+"/"+str(toplam)) self.RefreshSlot() def OverInItem2(self): itemIndex = int(self.gerekli) item.SelectItem(itemIndex) taslarr = [player.GetItemMetinSocket(999, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)] efsunlarr = [player.GetItemAttribute(999, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)] self.tooltipItem.ClearToolTip() self.tooltipItem.AddRefineItemData(itemIndex, taslarr, efsunlarr) self.tooltipItem.Show() def OverOutItem2(self): self.tooltipItem.ClearToolTip() self.tooltipItem.Hide() def OnUpdate(self): import time current_milli_time = int(app.GetGlobalTimeStamp()) if int(self.kalan) == 0: self.sure.SetText(" للتسليم ") elif (int(self.kalan)-current_milli_time <= 0): self.sure.SetText(" للتسليم ") else: self.sure.SetText(str(localeInfo.surever(int(self.kalan)-current_milli_time))) def RefreshSlot(self): getItemVNum= int (self.gerekli) if getItemVNum > 0: self.wndBioSlot.SetItemSlot(999, getItemVNum) else: self.wndBioSlot.ClearSlot(999) return self.wndBioSlot.RefreshSlot() class InventoryWindow(ui.ScriptWindow): liHighlightedItems = [] USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET", "USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ATTRIBUTE2", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET", "USE_CHANGE_COSTUME_ATTR", "USE_RESET_COSTUME_ATTR", "USE_BIND", "USE_UNBIND") questionDialog = None tooltipItem = None wndCostume = None wndBelt = None wndBio = None dlgPickMoney = None dlgPickItem = None interface = None if app.WJ_ENABLE_TRADABLE_ICON: bindWnds = [] if app.ENABLE_CHEQUE_SYSTEM: toolTipChequeTitle = None toolTipMoneyTitle = None sellingSlotNumber = -1 isLoaded = 0 isOpenedCostumeWindowWhenClosingInventory = 0 # ہخ؛¥إن¸® ´فہ» ¶§ ؤع½؛أُہج ؟­·ءہض¾ْ´آءِ ؟©؛خ-_-; ³×ہج¹ض ¤¸¤µ isOpenedBeltWindowWhenClosingInventory = 0 # ہخ؛¥إن¸® ´فہ» ¶§ ؛§ئ® ہخ؛¥إن¸®°، ؟­·ءہض¾ْ´آءِ ؟©؛خ-_-; ³×ہج¹ض ¤¸¤µ isOpenedBioInventory = 0 def __init__(self): ui.ScriptWindow.__init__(self) self.isOpenedBeltWindowWhenClosingInventory = 0 # ہخ؛¥إن¸® ´فہ» ¶§ ؛§ئ® ہخ؛¥إن¸®°، ؟­·ءہض¾ْ´آءِ ؟©؛خ-_-; ³×ہج¹ض ¤¸¤µ self.isOpenedBioInventory = 0 self.__LoadWindow() def __del__(self): ui.ScriptWindow.__del__(self) def Show(self): self.__LoadWindow() ui.ScriptWindow.Show(self) # ہخ؛¥إن¸®¸¦ ´فہ» ¶§ ؤع½؛أُہج ؟­·ءہض¾ْ´ظ¸é ہخ؛¥إن¸®¸¦ ؟­ ¶§ ؤع½؛أُµµ °°ہج ؟­µµ·د اش. if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume: self.wndCostume.Show() # ہخ؛¥إن¸®¸¦ ´فہ» ¶§ ؛§ئ® ہخ؛¥إن¸®°، ؟­·ءہض¾ْ´ظ¸é °°ہج ؟­µµ·د اش. if self.wndBelt: self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory) if self.wndBio: self.wndBio.Show(self.isOpenedBioInventory) def BindInterfaceClass(self, interface): self.interface = interface if app.WJ_ENABLE_TRADABLE_ICON: def BindWindow(self, wnd): self.bindWnds.append(wnd) def SetBiyolog(self, bioitem, verilen, toplam, kalansure): self.wndBio.SetBiyolog(bioitem, verilen, toplam, kalansure) def __LoadWindow(self): if self.isLoaded == 1: return self.isLoaded = 1 try: pyScrLoader = ui.PythonScriptLoader() if ITEM_MALL_BUTTON_ENABLE: pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "InventoryWindow.py") else: pyScrLoader.LoadScriptFile(self, "UIScript/InventoryWindow.py") except: import exception exception.Abort("InventoryWindow.LoadWindow.LoadObject") try: wndItem = self.GetChild("ItemSlot") wndEquip = self.GetChild("EquipmentSlot") self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close)) if app.ENABLE_EXTEND_INVEN_SYSTEM: self.EX_INVEN_COVER_IMG_CLOSE = [] self.EX_INVEN_COVER_IMG_OPEN = [] for i in xrange(9): self.EX_INVEN_COVER_IMG_OPEN.append(self.GetChild("cover_open_" + str(i))) self.EX_INVEN_COVER_IMG_CLOSE.append(self.GetChild("cover_close_" + str(i))) self.mallButton = self.GetChild2("MallButton") self.DSSButton = self.GetChild2("DSSButton") self.costumeButton = self.GetChild2("CostumeButton") # BEGIN_OFFLINE_SHOP self.offlineShopButton = self.GetChild2("OfflineShopButton") # END_OF_OFFLINE_SHOP self.inventoryTab = [] for i in xrange(player.INVENTORY_PAGE_COUNT): self.inventoryTab.append(self.GetChild("Inventory_Tab_%02d" % (i+1))) self.equipmentTab = [] self.equipmentTab.append(self.GetChild("Equipment_Tab_01")) self.equipmentTab.append(self.GetChild("Equipment_Tab_02")) if self.costumeButton and not app.ENABLE_COSTUME_SYSTEM: self.costumeButton.Hide() self.costumeButton.Destroy() self.costumeButton = 0 if app.ENABLE_EXTEND_INVEN_SYSTEM: for i in xrange(9): self.EX_INVEN_COVER_IMG_CLOSE[i].Hide() self.EX_INVEN_COVER_IMG_OPEN[i].Hide() # Belt Inventory Window self.wndBelt = None self.wndBio = None if app.ENABLE_NEW_EQUIPMENT_SYSTEM: self.wndBelt = BeltInventoryWindow(self) self.wndBio = BioWindow(self) except: import exception exception.Abort("InventoryWindow.LoadWindow.BindObject") ## Item wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) ## Equipment wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) ## PickMoneyDialog dlgPickMoney = uiPickMoney.PickMoneyDialog() dlgPickMoney.LoadDialog() dlgPickMoney.Hide() ## PickItemDialog dlgPickItem = uiPickEtc.PickEtcDialog() dlgPickItem.LoadDialog() dlgPickItem.Hide() ## RefineDialog self.refineDialog = uiRefine.RefineDialog() self.refineDialog.Hide() self.costumeffect = uiCommon.CostumEffectDialog() self.costumeffect.Hide() ## AttachMetinDialog if app.WJ_ENABLE_TRADABLE_ICON: self.attachMetinDialog = uiAttachMetin.AttachMetinDialog(self) self.BindWindow(self.attachMetinDialog) else: self.attachMetinDialog = uiAttachMetin.AttachMetinDialog() self.attachMetinDialog.Hide() if app.WJ_ELDER_ATTRIBUTE_SYSTEM: ## AttachBonusDialog self.attachBonusDialog = uiAttachBonus.AttachBonusDialog(self) if app.WJ_ENABLE_TRADABLE_ICON: self.BindWindow(self.attachBonusDialog) self.attachBonusDialog.Hide() for i in xrange(player.INVENTORY_PAGE_COUNT): self.inventoryTab[i].SetEvent(lambda arg=i: self.SetInventoryPage(arg)) self.inventoryTab[0].Down() self.equipmentTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg)) self.equipmentTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg)) self.equipmentTab[0].Down() self.equipmentTab[0].Hide() self.equipmentTab[1].Hide() self.wndItem = wndItem self.wndEquip = wndEquip self.dlgPickMoney = dlgPickMoney self.dlgPickItem = dlgPickItem if app.ENABLE_EXTEND_INVEN_SYSTEM: for i in xrange(9): self.EX_INVEN_COVER_IMG_OPEN[i].SetEvent(ui.__mem_func__(self.en_ac)) # MallButton if self.mallButton: self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton)) if self.DSSButton: self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton)) # Costume Button if self.costumeButton: self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton)) # BEGIN_OFFLINE_SHOP if self.offlineShopButton: self.offlineShopButton.SetEvent(ui.__mem_func__(self.ClickOfflineShopButton)) # END_OF_OFFLINE_SHOP self.wndCostume = None ##### ## Refresh if app.ENABLE_SASH_SYSTEM: self.listAttachedSashs = [] if app.ENABLE_CHANGELOOK_SYSTEM: self.listAttachedCl = [] self.SetInventoryPage(0) self.SetEquipmentPage(0) self.RefreshItemSlot() def Destroy(self): self.ClearDictionary() self.dlgPickMoney.Destroy() self.dlgPickItem.Destroy() self.dlgPickItem = 0 self.dlgPickMoney = 0 self.refineDialog.Destroy() self.refineDialog = 0 self.costumeffect.Destroy() self.costumeffect = 0 self.attachMetinDialog.Destroy() self.attachMetinDialog = 0 if app.WJ_ELDER_ATTRIBUTE_SYSTEM: self.attachBonusDialog.Destroy() self.attachBonusDialog = 0 self.tooltipItem = None self.wndItem = 0 self.wndEquip = 0 self.dlgPickMoney = 0 self.questionDialog = None self.mallButton = None if app.ENABLE_EXTEND_INVEN_SYSTEM: self.EX_INVEN_COVER_IMG_CLOSE = None self.EX_INVEN_COVER_IMG_OPEN = None self.DSSButton = None self.interface = None if app.WJ_ENABLE_TRADABLE_ICON: self.bindWnds = [] if self.wndCostume: self.wndCostume.Destroy() self.wndCostume = 0 if self.wndBelt: self.wndBelt.Destroy() self.wndBelt = None if self.wndBio: self.wndBio.Destroy() self.wndBio = None self.inventoryTab = [] self.equipmentTab = [] def Hide(self): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS(): self.OnCloseQuestionDialog() return if None != self.tooltipItem: self.tooltipItem.HideToolTip() if self.wndCostume: self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow() # ہخ؛¥إن¸® أ¢ہج ´فبْ ¶§ ؤع½؛أُہج ؟­·ء ہض¾ْ´آ°،? self.wndCostume.Close() if self.wndBelt: self.isOpenedBeltWindowWhenClosingInventory = self.wndBelt.IsOpeningInventory() # ہخ؛¥إن¸® أ¢ہج ´فبْ ¶§ ؛§ئ® ہخ؛¥إن¸®µµ ؟­·ء ہض¾ْ´آ°،? print "Is Opening Belt Inven?? ", self.isOpenedBeltWindowWhenClosingInventory self.wndBelt.Close() if self.wndBio: self.isOpenedBioInventory = self.wndBio.IsOpeningInventory() print "Is Opening bio Inven ", self.isOpenedBioInventory self.wndBio.Close() if self.dlgPickMoney: self.dlgPickMoney.Close() if self.dlgPickItem: self.dlgPickItem.Close() wndMgr.Hide(self.hWnd) def Close(self): self.Hide() if app.ENABLE_EXTEND_INVEN_SYSTEM: def UpdateInven(self): page = self.inventoryPageIndex for i in xrange(9): inv_plus = player.GetEnvanter() + i inv_pluss = player.GetEnvanter() - i if page == 2: if player.GetEnvanter() > 8: self.EX_INVEN_COVER_IMG_OPEN[i].Hide() self.EX_INVEN_COVER_IMG_CLOSE[i].Hide() else: self.EX_INVEN_COVER_IMG_OPEN[player.GetEnvanter()].Show() self.EX_INVEN_COVER_IMG_CLOSE[player.GetEnvanter()].Hide() if inv_pluss >= 0: self.EX_INVEN_COVER_IMG_OPEN[inv_pluss].Hide() self.EX_INVEN_COVER_IMG_CLOSE[inv_pluss].Hide() if inv_plus < 9: self.EX_INVEN_COVER_IMG_CLOSE[inv_plus].Show() self.EX_INVEN_COVER_IMG_OPEN[inv_plus].Hide() elif page == 3: if player.GetEnvanter() < 9: self.EX_INVEN_COVER_IMG_OPEN[i].Hide() self.EX_INVEN_COVER_IMG_CLOSE[i].Show() elif player.GetEnvanter() > 17: self.EX_INVEN_COVER_IMG_OPEN[i].Hide() self.EX_INVEN_COVER_IMG_CLOSE[i].Hide() else: self.EX_INVEN_COVER_IMG_OPEN[player.GetEnvanter()-9].Show() self.EX_INVEN_COVER_IMG_CLOSE[player.GetEnvanter()-9].Hide() if inv_pluss >= 0: self.EX_INVEN_COVER_IMG_OPEN[inv_pluss-9].Hide() if inv_plus < 18: self.EX_INVEN_COVER_IMG_CLOSE[inv_plus-9].Show() else: self.EX_INVEN_COVER_IMG_OPEN[i].Hide() self.EX_INVEN_COVER_IMG_CLOSE[i].Hide() def genislet(self): net.Envanter_genislet() self.OnCloseQuestionDialog() def en_ac(self): if player.GetEnvanter() < 18: needkeys = (2,2,2,2,3,3,4,4,4,5,5,5,6,6,6,7,7,7) self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % needkeys[player.GetEnvanter()]) self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) self.questionDialog.Open() def SetInventoryPage(self, page): self.inventoryPageIndex = page for index in range(len(self.inventoryTab)): if index == page: continue self.inventoryTab[index].SetUp() if app.ENABLE_EXTEND_INVEN_SYSTEM: self.UpdateInven() self.RefreshBagSlotWindow() def SetEquipmentPage(self, page): self.equipmentPageIndex = page self.equipmentTab[1-page].SetUp() self.RefreshEquipSlotWindow() def ClickMallButton(self): net.SendChatPacket("/click_safebox") def OpenIs(self): self.Itemshop.Hide() self.Depo.Hide() self.sehir.Hide() self.choix.Hide() net.SendChatPacket("/click_mall") def _normal_mall(self): self.Itemshop.Hide() self.Depo.Hide() self.sehir.Hide() self.choix.Hide() net.SendChatPacket("/click_safebox") # DSSButton def ClickDSSButton(self): print "click_dss_button" self.interface.ToggleDragonSoulWindow() def ClickCostumeButton(self): print "Click Costume Button" if self.wndCostume: if self.wndCostume.IsShow(): self.wndCostume.Hide() else: self.wndCostume.Show() else: self.wndCostume = CostumeWindow(self) self.wndCostume.Show() # BEGIN_OFFLINE_SHOP def ClickOfflineShopButton(self): net.SendChatPacket('/open_offlineshop') # END_OF_OFFLINE_SHOP #def OpenPickMoneyDialog(self): # if mouseModule.mouseController.isAttached(): # attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() # if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType(): # if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex(): # net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount()) # snd.PlaySound("sound/ui/money.wav") # mouseModule.mouseController.DeattachObject() # else: # curMoney = player.GetElk() # if curMoney <= 0: # return # self.dlgPickMoney.SetTitleName(localeInfo.PICK_MONEY_TITLE) # self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney)) # if app.ENABLE_CHEQUE_SYSTEM: # self.dlgPickMoney.Open(curMoney, player.GetCheque()) # else: # self.dlgPickMoney.Open(curMoney) # self.dlgPickMoney.SetMax(7) # ہخ؛¥إن¸® 990000 ء¦ار ¹ِ±× ¼ِء¤ #def OnPickMoney(self, money, cheque = None): # mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money) def OnPickItem(self, count): itemSlotIndex = self.dlgPickItem.itemGlobalSlotIndex selectedItemVNum = player.GetItemIndex(itemSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, count) def __InventoryLocalSlotPosToGlobalSlotPos(self, local): if player.IsEquipmentSlot(local) or player.IsCostumeSlot(local) or (app.ENABLE_NEW_EQUIPMENT_SYSTEM and player.IsBeltInventorySlot(local)): return local return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local def GetInventoryPageIndex(self): return self.inventoryPageIndex if app.WJ_ENABLE_TRADABLE_ICON: def RefreshMarkSlots(self, localIndex=None): if not self.interface: return onTopWnd = self.interface.GetOnTopWindow() if localIndex: slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(localIndex) if onTopWnd == player.ON_TOP_WND_NONE: self.wndItem.SetUsableSlotOnTopWnd(localIndex) elif onTopWnd == player.ON_TOP_WND_SHOP: if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SELL): self.wndItem.SetUnusableSlotOnTopWnd(localIndex) else: self.wndItem.SetUsableSlotOnTopWnd(localIndex) elif onTopWnd == player.ON_TOP_WND_EXCHANGE: if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_GIVE): self.wndItem.SetUnusableSlotOnTopWnd(localIndex) else: self.wndItem.SetUsableSlotOnTopWnd(localIndex) elif onTopWnd == player.ON_TOP_WND_PRIVATE_SHOP: if player.IsAntiFlagBySlot(slotNumber, item.ITEM_ANTIFLAG_MYSHOP): self.wndItem.SetUnusableSlotOnTopWnd(localIndex) else: self.wndItem.SetUsableSlotOnTopWnd(localIndex) elif onTopWnd == player.ON_TOP_WND_SAFEBOX: if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SAFEBOX): self.wndItem.SetUnusableSlotOnTopWnd(localIndex) else: self.wndItem.SetUsableSlotOnTopWnd(localIndex) return for i in xrange(player.INVENTORY_PAGE_SIZE): slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i) if onTopWnd == player.ON_TOP_WND_NONE: self.wndItem.SetUsableSlotOnTopWnd(i) elif onTopWnd == player.ON_TOP_WND_SHOP: if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SELL): self.wndItem.SetUnusableSlotOnTopWnd(i) else: self.wndItem.SetUsableSlotOnTopWnd(i) elif onTopWnd == player.ON_TOP_WND_EXCHANGE: if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_GIVE): self.wndItem.SetUnusableSlotOnTopWnd(i) else: self.wndItem.SetUsableSlotOnTopWnd(i) elif onTopWnd == player.ON_TOP_WND_PRIVATE_SHOP: if player.IsAntiFlagBySlot(slotNumber, item.ITEM_ANTIFLAG_MYSHOP): self.wndItem.SetUnusableSlotOnTopWnd(i) else: self.wndItem.SetUsableSlotOnTopWnd(i) elif onTopWnd == player.ON_TOP_WND_SAFEBOX: if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SAFEBOX): self.wndItem.SetUnusableSlotOnTopWnd(i) else: self.wndItem.SetUsableSlotOnTopWnd(i) def RefreshBagSlotWindow(self): getItemVNum=player.GetItemIndex getItemCount=player.GetItemCount setItemVNum=self.wndItem.SetItemSlot for i in xrange(player.INVENTORY_PAGE_SIZE): slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i) itemCount = getItemCount(slotNumber) # itemCount == 0ہج¸é ¼زؤدہ» ؛ٌ؟î´ظ. if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) if app.ENABLE_CHANGELOOK_SYSTEM: itemTransmutedVnum = player.GetItemTransmutation(slotNumber) if itemTransmutedVnum: self.wndItem.DisableCoverButton(i) else: self.wndItem.EnableCoverButton(i) if itemVnum == 0 and slotNumber in self.liHighlightedItems: self.liHightlightedItems.remove(slotNumber) if app.WJ_ENABLE_TRADABLE_ICON: self.RefreshMarkSlots(i) ## ہعµ؟¹°¾à (HP: #72723 ~ #72726, SP: #72727 ~ #72730) ئ¯¼ِأ³¸® - ¾ئہجإغہخµ¥µµ ½½·ش؟، ب°¼؛ب­/؛ٌب°¼؛ب­ ا¥½أ¸¦ ہ§ار ہغ¾÷ہس - [hyo] if constInfo.IS_AUTO_POTION(itemVnum): metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex: slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex isActivated = 0 != metinSocket[0] if isActivated: self.wndItem.ActivateSlot(slotNumber) potionType = 0; if constInfo.IS_AUTO_POTION_HP(itemVnum): potionType = player.AUTO_POTION_TYPE_HP elif constInfo.IS_AUTO_POTION_SP(itemVnum): potionType = player.AUTO_POTION_TYPE_SP usedAmount = int(metinSocket[1]) totalAmount = int(metinSocket[2]) player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, self.__InventoryLocalSlotPosToGlobalSlotPos(i)) else: self.wndItem.DeactivateSlot(slotNumber) else: self.wndItem.DeactivateSlot(slotNumber) if app.ENABLE_SASH_SYSTEM: slotNumberChecked = 0 if not constInfo.IS_AUTO_POTION(itemVnum): self.wndItem.DeactivateSlot(slotNumber) for j in xrange(sash.WINDOW_MAX_MATERIALS): (isHere, iCell) = sash.GetAttachedItem(j) if isHere: if iCell == slotNumber: self.wndItem.ActivateSlot(slotNumber, (36.00 / 255.0), (222.00 / 255.0), (3.00 / 255.0), 1.0) if not slotNumber in self.listAttachedSashs: self.listAttachedSashs.append(slotNumber) slotNumberChecked = 1 else: if slotNumber in self.listAttachedSashs and not slotNumberChecked: self.wndItem.DeactivateSlot(slotNumber) self.listAttachedSashs.remove(slotNumber) if app.ENABLE_CHANGELOOK_SYSTEM: slotClNumberChecked = 0 if not constInfo.IS_AUTO_POTION(itemVnum): self.wndItem.DeactivateSlot(i) for q in xrange(changelook.WINDOW_MAX_MATERIALS): (isHere, iCell) = changelook.GetAttachedItem(q) if isHere: if iCell == slotNumber: self.wndItem.ActivateSlot(i, (238.00 / 255.0), (11.00 / 255.0), (11.00 / 255.0), 1.0) if not slotNumber in self.listAttachedCl: self.listAttachedCl.append(slotNumber) slotClNumberChecked = 1 else: if slotNumber in self.listAttachedCl and not slotClNumberChecked: self.wndItem.DeactivateSlot(i) self.listAttachedCl.remove(slotNumber) if itemVnum >= 53001 and itemVnum <= 53025 or itemVnum >= 53218 and itemVnum <= 53270: metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex: slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex isActivated = 0 != metinSocket[1] if isActivated: self.wndItem.ActivateSlot(slotNumber) else: self.wndItem.DeactivateSlot(slotNumber) self.__RefreshHighlights() self.wndItem.RefreshSlot() if self.wndBelt: self.wndBelt.RefreshSlot() if app.WJ_ENABLE_TRADABLE_ICON: map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds) if self.wndBio: self.wndBio.RefreshSlot() def OnUpdate(self): if app.WJ_ELDER_ATTRIBUTE_SYSTEM: if self.attachBonusDialog: if self.attachBonusDialog.IsShow(): self.attachBonusDialog.Update() def RefreshEquipSlotWindow(self): getItemVNum=player.GetItemIndex getItemCount=player.GetItemCount setItemVNum=self.wndEquip.SetItemSlot for i in xrange(player.EQUIPMENT_PAGE_COUNT): slotNumber = player.EQUIPMENT_SLOT_START + i itemCount = getItemCount(slotNumber) if itemCount <= 1: itemCount = 0 setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount) if app.ENABLE_CHANGELOOK_SYSTEM: itemTransmutedVnum = player.GetItemTransmutation(slotNumber) if itemTransmutedVnum: self.wndEquip.DisableCoverButton(slotNumber) else: self.wndEquip.EnableCoverButton(slotNumber) if app.ENABLE_NEW_EQUIPMENT_SYSTEM: for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT): slotNumber = player.NEW_EQUIPMENT_SLOT_START + i itemCount = getItemCount(slotNumber) if itemCount <= 1: itemCount = 0 setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount) if app.ENABLE_CHANGELOOK_SYSTEM: itemTransmutedVnum = player.GetItemTransmutation(slotNumber) if itemTransmutedVnum: self.wndEquip.DisableCoverButton(slotNumber) else: self.wndEquip.EnableCoverButton(slotNumber) print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber) self.wndEquip.RefreshSlot() if self.wndCostume: self.wndCostume.RefreshCostumeSlot() def RefreshItemSlot(self): self.RefreshBagSlotWindow() self.RefreshEquipSlotWindow() def HighlightSlot(self, slot): if not slot in self.liHighlightedItems: self.liHighlightedItems.append(slot) def __RefreshHighlights(self): for i in xrange(player.INVENTORY_PAGE_SIZE): slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i) if slotNumber in self.liHighlightedItems: self.wndItem.ActivateSlot(i) def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def SellItem(self): if self.sellingSlotitemIndex == player.GetItemIndex(self.sellingSlotNumber): if self.sellingSlotitemCount == player.GetItemCount(self.sellingSlotNumber): ## ؟ëب¥¼®µµ ئب¸®°ش اد´آ ±â´ة أك°،اد¸é¼­ ہخہع type أك°، net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.INVENTORY) snd.PlaySound("sound/ui/money.wav") self.OnCloseQuestionDialog() def OnDetachMetinFromItem(self): if None == self.questionDialog: return #net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos) self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos) self.OnCloseQuestionDialog() def OnCloseQuestionDialog(self): if not self.questionDialog: return self.questionDialog.Close() self.questionDialog = None constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0) ## Slot Event def SelectEmptySlot(self, selectedSlotPos): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos) if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedItemCount = mouseModule.mouseController.GetAttachedItemCount() attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_STONE_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_BOX_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_EFSUN_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_CICEK_INVENTORY == attachedSlotType: itemCount = player.GetItemCount(attachedSlotPos) attachedCount = mouseModule.mouseController.GetAttachedItemCount() self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount) if item.IsRefineScroll(attachedItemIndex): self.wndItem.SetUseMode(False) elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType: mouseModule.mouseController.RunCallBack("INVENTORY") # BEGIN_OFFLINE_SHOP elif player.SLOT_TYPE_OFFLINE_SHOP == attachedSlotType: mouseModule.mouseController.RunCallBack('INVENTORY') # END_OF_OFFLINE_SHOP elif player.SLOT_TYPE_SHOP == attachedSlotType: net.SendShopBuyPacket(attachedSlotPos) elif player.SLOT_TYPE_SAFEBOX == attachedSlotType: if player.ITEM_MONEY == attachedItemIndex: net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount()) snd.PlaySound("sound/ui/money.wav") else: net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos) elif player.SLOT_TYPE_MALL == attachedSlotType: net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos) mouseModule.mouseController.DeattachObject() def SelectItemSlot(self, itemSlotIndex): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex) if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex() if player.SLOT_TYPE_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_STONE_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_BOX_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_EFSUN_INVENTORY == attachedSlotType or\ player.SLOT_TYPE_CICEK_INVENTORY == attachedSlotType: self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex) mouseModule.mouseController.DeattachObject() else: 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(itemSlotIndex) ime.PasteString(link) elif app.IsPressed(app.DIK_LSHIFT): itemCount = player.GetItemCount(itemSlotIndex) if itemCount > 1: self.dlgPickItem.SetTitleName(localeInfo.PICK_ITEM_TITLE) self.dlgPickItem.SetAcceptEvent(ui.__mem_func__(self.OnPickItem)) self.dlgPickItem.Open(itemCount) self.dlgPickItem.itemGlobalSlotIndex = itemSlotIndex #else: #selectedItemVNum = player.GetItemIndex(itemSlotIndex) #mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum) elif app.IsPressed(app.DIK_LCONTROL): itemIndex = player.GetItemIndex(itemSlotIndex) if True == item.CanAddToQuickSlotItem(itemIndex): player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex) else: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.QUICKSLOT_REGISTER_DISABLE_ITEM) else: selectedItemVNum = player.GetItemIndex(itemSlotIndex) itemCount = player.GetItemCount(itemSlotIndex) mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount) if self.__IsUsableItemToItem(selectedItemVNum, itemSlotIndex): self.wndItem.SetUseMode(True) else: self.wndItem.SetUseMode(False) snd.PlaySound("sound/ui/pick.wav") def UseTransportBox(self): self.__SendUseItemToItemPacket(self.questionDialog.src, self.questionDialog.dst) self.OnCloseQuestionDialog() def UseProtein(self): self.__SendUseItemToItemPacket(self.questionDialog.src, self.questionDialog.dst) self.OnCloseQuestionDialog() def __DropSrcItemToDestItemInInventory(self, srcItemVID, srcItemSlotPos, dstItemSlotPos): if srcItemSlotPos == dstItemSlotPos: return if srcItemVID >= 55701 and srcItemVID <= 55710 and player.GetItemIndex(dstItemSlotPos) == 55002: self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(localeInfo.PET_SYSTEM_ADD_BOX_PET) self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseTransportBox)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) self.questionDialog.Open() self.questionDialog.src = srcItemSlotPos self.questionDialog.dst = dstItemSlotPos if srcItemVID == 55001 and player.GetItemIndex(dstItemSlotPos) >= 55701 and player.GetItemIndex(dstItemSlotPos) <= 55710: self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(localeInfo.PET_SYSTEM_FEED_PROTEIN) self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseProtein)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) self.questionDialog.Open() self.questionDialog.src = srcItemSlotPos self.questionDialog.dst = dstItemSlotPos if srcItemVID == 80060: self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(" هل انت متاكد انك تريد فتح مقبس 4 جديد ؟ ") self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseTransportBox)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) self.questionDialog.Open() self.questionDialog.src = srcItemSlotPos self.questionDialog.dst = dstItemSlotPos if srcItemVID == 80061: self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(" هل انت متاكد انك تريد فتح مقبس 4 جديد ؟ ") self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.UseTransportBox)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) self.questionDialog.Open() self.questionDialog.src = srcItemSlotPos self.questionDialog.dst = dstItemSlotPos if player.GetItemIndex(dstItemSlotPos) >= 55701 and player.GetItemIndex(dstItemSlotPos) <= 55710 and srcItemVID == 55008: self.interface.OpenInputNameDialogPet(dstItemSlotPos) # cyh itemseal 2013 11 08 if app.ENABLE_SOULBIND_SYSTEM and (item.IsSealScroll(srcItemVID) or item.IsUnSealScroll(srcItemVID)): self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) elif item.IsRefineScroll(srcItemVID): self.RefineItem(srcItemSlotPos, dstItemSlotPos) self.wndItem.SetUseMode(False) elif app.WJ_ELDER_ATTRIBUTE_SYSTEM and player.GetItemIndex(srcItemSlotPos) == 71051: self.AttachBonusToItem(srcItemSlotPos, dstItemSlotPos) elif app.WJ_ELDER_ATTRIBUTE_SYSTEM and player.GetItemIndex(srcItemSlotPos) == 71052: self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) elif item.IsMetin(srcItemVID): self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos) elif int(srcItemVID) == 50512: self.AddCostumEffect(srcItemSlotPos, dstItemSlotPos) elif item.IsDetachScroll(srcItemVID): self.DetachMetinFromItem(srcItemSlotPos, dstItemSlotPos) elif item.IsKey(srcItemVID): self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE: self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE: self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) elif app.ENABLE_EXTENDING_COSTUME_TIME and player.GetItemIndex(srcItemSlotPos) >= 84014 and player.GetItemIndex(srcItemSlotPos) <= 84016: self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) else: #snd.PlaySound("sound/ui/drop.wav") ## ہجµ؟½أإ² °÷ہج ہهآّ ½½·شہد °و؟ى ¾ئہجإغہ» »ç؟ëاط¼­ ہهآّ ½أإ²´ظ - [levites] if player.IsEquipmentSlot(dstItemSlotPos): ## µé°ي ہض´آ ¾ئہجإغہج ہه؛ٌہد¶§¸¸ if item.IsEquipmentVID(srcItemVID): self.__UseItem(srcItemSlotPos) else: self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0) #net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0) def __SellItem(self, itemSlotPos): if not player.IsEquipmentSlot(itemSlotPos): self.sellingSlotNumber = itemSlotPos itemIndex = player.GetItemIndex(itemSlotPos) itemCount = player.GetItemCount(itemSlotPos) self.sellingSlotitemIndex = itemIndex self.sellingSlotitemCount = itemCount item.SelectItem(itemIndex) ## ¾بئ¼ اأ·¹±× °ث»ç ؛üء®¼­ أك°، ## 20140220 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 constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1) def __OnClosePopupDialog(self): self.pop = None def RefineItem(self, scrollSlotPos, targetSlotPos): scrollIndex = player.GetItemIndex(scrollSlotPos) targetIndex = player.GetItemIndex(targetSlotPos) if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos): return ########################################################### self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos) #net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos) return ########################################################### ########################################################### #net.SendRequestRefineInfoPacket(targetSlotPos) #return ########################################################### result = player.CanRefine(scrollIndex, targetSlotPos) if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result: #snd.PlaySound("sound/ui/jaeryun_fail.wav") chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_MORE_SOCKET) elif player.REFINE_NEED_MORE_GOOD_SCROLL == result: #snd.PlaySound("sound/ui/jaeryun_fail.wav") chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NEED_BETTER_SCROLL) elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result: #snd.PlaySound("sound/ui/jaeryun_fail.wav") chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_SOCKET_DISABLE_ITEM) elif player.REFINE_NOT_NEXT_GRADE_ITEM == result: #snd.PlaySound("sound/ui/jaeryun_fail.wav") chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_UPGRADE_DISABLE_ITEM) elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM) if player.REFINE_OK != result: return self.refineDialog.Open(scrollSlotPos, targetSlotPos) def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos): scrollIndex = player.GetItemIndex(scrollSlotPos) targetIndex = player.GetItemIndex(targetSlotPos) if app.ENABLE_CHANGELOOK_SYSTEM: if not player.CanDetach(scrollIndex, targetSlotPos): item.SelectItem(scrollIndex) if item.GetValue(0) == changelook.CLEAN_ATTR_VALUE0: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHANGE_LOOK_FAILURE_CLEAN) else: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM) return if not player.CanDetach(scrollIndex, targetSlotPos): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM) return if app.ENABLE_SASH_SYSTEM: if not player.CanDetach(scrollIndex, targetSlotPos): item.SelectItem(scrollIndex) if item.GetValue(0) == sash.CLEAN_ATTR_VALUE0: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SASH_FAILURE_CLEAN) else: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM) return else: if not player.CanDetach(scrollIndex, targetSlotPos): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM) return self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(localeInfo.REFINE_DO_YOU_SEPARATE_METIN) if app.ENABLE_SASH_SYSTEM: item.SelectItem(targetIndex) if item.GetItemType() == item.ITEM_TYPE_COSTUME and item.GetItemSubType() == item.COSTUME_TYPE_SASH: item.SelectItem(scrollIndex) if item.GetValue(0) == sash.CLEAN_ATTR_VALUE0: self.questionDialog.SetText(localeInfo.SASH_DO_YOU_CLEAN) if app.ENABLE_CHANGELOOK_SYSTEM: item.SelectItem(targetIndex) if item.GetItemType() == item.ITEM_TYPE_WEAPON or item.GetItemType() == item.ITEM_TYPE_ARMOR or item.GetItemType() == item.ITEM_TYPE_COSTUME: item.SelectItem(scrollIndex) if item.GetValue(0) == changelook.CLEAN_ATTR_VALUE0: self.questionDialog.SetText(localeInfo.CHANGE_LOOK_DO_YOU_CLEAN) self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) self.questionDialog.Open() self.questionDialog.sourcePos = scrollSlotPos self.questionDialog.targetPos = targetSlotPos def AttachMetinToItem(self, metinSlotPos, targetSlotPos): metinIndex = player.GetItemIndex(metinSlotPos) targetIndex = player.GetItemIndex(targetSlotPos) item.SelectItem(metinIndex) itemName = item.GetItemName() result = player.CanAttachMetin(metinIndex, targetSlotPos) if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_CAN_NOT_ATTACH(itemName)) if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_SOCKET(itemName)) elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_GOLD_SOCKET(itemName)) elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM) if player.ATTACH_METIN_OK != result: return self.attachMetinDialog.Open(metinSlotPos, targetSlotPos) if app.WJ_ELDER_ATTRIBUTE_SYSTEM: def AttachBonusToItem(self, sourceSlotPos, targetSlotPos): targetIndex = player.GetItemIndex(targetSlotPos) item.SelectItem(targetIndex) if item.GetItemType() not in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR): return False self.attachBonusDialog.Open(sourceSlotPos, targetSlotPos) def OverOutItem(self): self.wndItem.SetUsableItem(False) if None != self.tooltipItem: self.tooltipItem.HideToolTip() def OverInItem(self, overSlotPos): overSlotPosGlobal = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos) self.wndItem.SetUsableItem(False) if overSlotPosGlobal in self.liHighlightedItems: self.liHighlightedItems.remove(overSlotPosGlobal) self.wndItem.DeactivateSlot(overSlotPos) if mouseModule.mouseController.isAttached(): attachedItemType = mouseModule.mouseController.GetAttachedType() if player.SLOT_TYPE_INVENTORY == attachedItemType or player.SLOT_TYPE_STONE_INVENTORY == attachedItemType or player.SLOT_TYPE_EFSUN_INVENTORY == attachedItemType: attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex() if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPosGlobal): self.wndItem.SetUsableItem(True) self.ShowToolTip(overSlotPosGlobal) return self.ShowToolTip(overSlotPosGlobal) def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos): "´ظ¸¥ ¾ئہجإغ؟، »ç؟ëاز ¼ِ ہض´آ ¾ئہجإغہخ°،?" if srcItemVNum >= 55701 and srcItemVNum <= 55710: return True if srcItemVNum == 55001: return True if srcItemVNum == 55008: return True if item.IsRefineScroll(srcItemVNum): return True elif app.ENABLE_SOULBIND_SYSTEM and (item.IsSealScroll(srcItemVNum) or item.IsUnSealScroll(srcItemVNum)): return True elif item.IsMetin(srcItemVNum): return True elif item.IsDetachScroll(srcItemVNum): return True elif item.IsKey(srcItemVNum): return True elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE: return True elif app.ENABLE_EXTENDING_COSTUME_TIME and player.GetItemIndex(srcSlotPos) >= 84014 and player.GetItemIndex(srcSlotPos) <= 84016: return True elif app.WJ_ELDER_ATTRIBUTE_SYSTEM and player.GetItemIndex(srcSlotPos) == 71051 or player.GetItemIndex(srcSlotPos) == 71052: return True else: if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE: return True return False def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos): "´ë»َ ¾ئہجإغ؟، »ç؟ëاز ¼ِ ہض´آ°،?" if srcItemVNum >= 55701 and srcItemVNum <= 55710 and player.GetItemIndex(dstSlotPos) == 55002: return True if srcItemVNum == 55001 and player.GetItemIndex(dstSlotPos) >= 55701 and player.GetItemIndex(dstSlotPos) <= 55710: return True if srcItemVNum == 55008 and player.GetItemIndex(dstSlotPos) >= 55701 and player.GetItemIndex(dstSlotPos) <= 55710: return True if srcSlotPos == dstSlotPos and not item.IsMetin(srcItemVNum): return False if item.IsRefineScroll(srcItemVNum): if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos): return True elif item.IsMetin(srcItemVNum): if player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNum, dstSlotPos): return True elif item.IsDetachScroll(srcItemVNum): if player.DETACH_METIN_OK == player.CanDetach(srcItemVNum, dstSlotPos): return True elif item.IsKey(srcItemVNum): if player.CanUnlock(srcItemVNum, dstSlotPos): return True elif app.ENABLE_EXTENDING_COSTUME_TIME and player.GetItemIndex(srcSlotPos) >= 84014 and player.GetItemIndex(srcSlotPos) <= 84016: item.SelectItem(player.GetItemIndex(dstSlotPos)) if item.GetItemType() == item.ITEM_TYPE_COSTUME: return True elif int(srcItemVNum) == 50512: if self.__CanAddCostumEffect(dstSlotPos) == True: return TRUE elif app.ENABLE_SOULBIND_SYSTEM and item.IsSealScroll(srcItemVNum): if (item.IsSealScroll(srcItemVNum) and player.CanSealItem(dstSlotPos)) or (item.IsUnSealScroll(srcItemVNum) and player.CanUnSealItem(dstSlotPos)): return True elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE: return True elif app.WJ_ELDER_ATTRIBUTE_SYSTEM and player.GetItemIndex(srcSlotPos) == 71051 or player.GetItemIndex(srcSlotPos) == 71052: if self.__CanPutNewAttribute(dstSlotPos): return True else: useType=item.GetUseType(srcItemVNum) if "USE_CLEAN_SOCKET" == useType: if self.__CanCleanBrokenMetinStone(dstSlotPos): return True elif "USE_CHANGE_ATTRIBUTE" == useType: if self.__CanChangeItemAttrList(dstSlotPos): return True elif "USE_ADD_ATTRIBUTE" == useType: if self.__CanAddItemAttr(dstSlotPos): return True elif "USE_ADD_ATTRIBUTE2" == useType: if self.__CanAddItemAttr(dstSlotPos): return True elif "USE_ADD_ACCESSORY_SOCKET" == useType: if self.__CanAddAccessorySocket(dstSlotPos): return True elif "USE_PUT_INTO_ACCESSORY_SOCKET" == useType: if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum): return True; elif "USE_PUT_INTO_BELT_SOCKET" == useType: dstItemVNum = player.GetItemIndex(dstSlotPos) print "USE_PUT_INTO_BELT_SOCKET", srcItemVNum, dstItemVNum item.SelectItem(dstItemVNum) if item.ITEM_TYPE_BELT == item.GetItemType(): return True elif "USE_CHANGE_COSTUME_ATTR" == useType: if not app.ENABLE_ENCHANT_COSTUME_SYSTEM: return False if self.__CanChangeCostumeAttrList(dstSlotPos): return True; elif "USE_RESET_COSTUME_ATTR" == useType: if not app.ENABLE_ENCHANT_COSTUME_SYSTEM: return False if self.__CanResetCostumeAttr(dstSlotPos): return True; return False if app.ENABLE_ENCHANT_COSTUME_SYSTEM: def __CanChangeCostumeAttrList(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.ITEM_TYPE_COSTUME != item.GetItemType() and not item.GetItemSubType() in (item.COSTUME_TYPE_BODY, item.COSTUME_TYPE_HAIR): return False for i in xrange(player.COSTUME_ATTRIBUTE_MAX_NUM): if player.GetItemAttribute(dstSlotPos, i) != 0: return True return False def __CanResetCostumeAttr(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.ITEM_TYPE_COSTUME != item.GetItemType() and not item.GetItemSubType() in (item.COSTUME_TYPE_BODY, item.COSTUME_TYPE_HAIR): return False return True def __CanCleanBrokenMetinStone(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.ITEM_TYPE_WEAPON != item.GetItemType(): return False for i in xrange(player.METIN_SOCKET_MAX_NUM): if player.GetItemMetinSocket(dstSlotPos, i) == constInfo.ERROR_METIN_STONE: return True return False def __CanAddCostumEffect(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.ITEM_TYPE_COSTUME != item.GetItemType(): return False if item.COSTUME_TYPE_BODY != item.GetItemSubType(): return False return True def AddCostumEffect(self, metinSlotPos, targetSlotPos): if player.IsEquipmentSlot(targetSlotPos): return if self.__CanAddCostumEffect(targetSlotPos) == False: chat.AppendChat(chat.CHAT_TYPE_INFO, " يمكنك اضافة اللمعات للازياء فقط. ") return if not self.costumeffect.IsShow(): self.costumeffect.SlotPos(metinSlotPos, targetSlotPos) self.costumeffect.Open() def __CanChangeItemAttrList(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR): return False for i in xrange(player.METIN_SOCKET_MAX_NUM): if player.GetItemAttribute(dstSlotPos, i) != 0: return True return False if app.WJ_ELDER_ATTRIBUTE_SYSTEM: def __CanPutNewAttribute(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.GetItemType() not in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR): return False return True def __CanPutAccessorySocket(self, dstSlotPos, mtrlVnum): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.GetItemType() != item.ITEM_TYPE_ARMOR: return False if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR): return False curCount = player.GetItemMetinSocket(dstSlotPos, 0) maxCount = player.GetItemMetinSocket(dstSlotPos, 1) if mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNum, item.GetItemSubType()): return False if curCount>=maxCount: return False return True def __CanAddAccessorySocket(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if item.GetItemType() != item.ITEM_TYPE_ARMOR: return False if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR): return False curCount = player.GetItemMetinSocket(dstSlotPos, 0) maxCount = player.GetItemMetinSocket(dstSlotPos, 1) ACCESSORY_SOCKET_MAX_SIZE = 3 if maxCount >= ACCESSORY_SOCKET_MAX_SIZE: return False return True def __CanAddItemAttr(self, dstSlotPos): dstItemVNum = player.GetItemIndex(dstSlotPos) if dstItemVNum == 0: return False item.SelectItem(dstItemVNum) if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR): return False attrCount = 0 for i in xrange(player.METIN_SOCKET_MAX_NUM): if player.GetItemAttribute(dstSlotPos, i) != 0: attrCount += 1 if attrCount<4: return True return False def ShowToolTip(self, slotIndex): if None != self.tooltipItem: self.tooltipItem.SetInventoryItem(slotIndex) def OnTop(self): if None != self.tooltipItem: self.tooltipItem.SetTop() if app.WJ_ENABLE_TRADABLE_ICON: map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds) self.RefreshMarkSlots() def OnPressEscapeKey(self): self.Close() return True def UseItemSlot(self, slotIndex): curCursorNum = app.GetCursor() if app.SELL == curCursorNum: return if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS(): return slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex) if app.ENABLE_DRAGON_SOUL_SYSTEM: if self.wndDragonSoulRefine.IsShow(): self.wndDragonSoulRefine.AutoSetItem((player.INVENTORY, slotIndex), 1) return if app.ENABLE_SASH_SYSTEM: if self.isShowSashWindow(): sash.Add(player.INVENTORY, slotIndex, 255) return if app.ENABLE_CHANGELOOK_SYSTEM: if self.isShowChangeLookWindow(): changelook.Add(player.INVENTORY, slotIndex, 255) return self.__UseItem(slotIndex) mouseModule.mouseController.DeattachObject() self.OverOutItem() def __UseItem(self, slotIndex): ItemVNum = player.GetItemIndex(slotIndex) item.SelectItem(ItemVNum) if app.ENABLE_EXTEND_INVEN_SYSTEM: if ItemVNum == 72320: self.en_ac() ## if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE): ## self.questionDialog = uiCommon.QuestionDialog() ## self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM) ## self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept)) ## self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel)) ## self.questionDialog.Open() ## self.questionDialog.slotIndex = slotIndex ## constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1) if 80003 == ItemVNum or 80004 == ItemVNum or 80005 == ItemVNum or 80006 == ItemVNum or 80007 == ItemVNum or 80014 == ItemVNum or 80015 == ItemVNum or 80016 == ItemVNum or 80017 == ItemVNum: self.questionDialog = uiCommon.QuestionDialog() self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM) self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept)) self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel)) self.questionDialog.Open() self.questionDialog.slotIndex = slotIndex constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1) elif player.GetItemTypeBySlot(slotIndex) == item.ITEM_TYPE_GIFTBOX: if app.ENABLE_SHOW_CHEST_DROP: if self.interface: if self.interface.dlgChestDrop: if not self.interface.dlgChestDrop.IsShow(): self.interface.dlgChestDrop.Open(slotIndex) net.SendChestDropInfo(slotIndex) else: self.__SendUseItemPacket(slotIndex) #net.SendItemUsePacket(slotIndex) def __UseItemQuestionDialog_OnCancel(self): self.OnCloseQuestionDialog() def __UseItemQuestionDialog_OnAccept(self): self.__SendUseItemPacket(self.questionDialog.slotIndex) self.OnCloseQuestionDialog() def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos): # °³ہخ»َء، ؟­°ي ہض´آ µ؟¾ب ¾ئہجإغ »ç؟ë ¹وءِ if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP) return # BEGIN_OFFLINE_SHOP if uiOfflineShopBuilder.IsBuildingOfflineShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_SHOP) return if uiOfflineShop.IsEditingOfflineShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_SHOP) return # END_OF_OFFLINE_SHOP net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos) def __SendUseItemPacket(self, slotPos): # °³ہخ»َء، ؟­°ي ہض´آ µ؟¾ب ¾ئہجإغ »ç؟ë ¹وءِ if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP) return # BEGIN_OFFLINE_SHOP if uiOfflineShopBuilder.IsBuildingOfflineShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_SHOP) return if uiOfflineShop.IsEditingOfflineShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_SHOP) return # END_OF_OFFLINE_SHOP net.SendItemUsePacket(slotPos) def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount): # °³ہخ»َء، ؟­°ي ہض´آ µ؟¾ب ¾ئہجإغ »ç؟ë ¹وءِ if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP) return # BEGIN_OFFLINE_SHOP if uiOfflineShopBuilder.IsBuildingOfflineShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_OFFLINE_SHOP) return if uiOfflineShop.IsEditingOfflineShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_OFFLINE_SHOP) return # END_OF_OFFLINE_SHOP net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount) def SetDragonSoulRefineWindow(self, wndDragonSoulRefine): if app.ENABLE_DRAGON_SOUL_SYSTEM: self.wndDragonSoulRefine = wndDragonSoulRefine if app.ENABLE_CHANGELOOK_SYSTEM: def SetChangeLookWindow(self, wndChangeLook): self.wndChangeLook = wndChangeLook def isShowChangeLookWindow(self): if self.wndChangeLook: if self.wndChangeLook.IsShow(): return 1 return 0 if app.ENABLE_SASH_SYSTEM: def SetSashWindow(self, wndSashCombine, wndSashAbsorption): self.wndSashCombine = wndSashCombine self.wndSashAbsorption = wndSashAbsorption def isShowSashWindow(self): if self.wndSashCombine: if self.wndSashCombine.IsShow(): return 1 if self.wndSashAbsorption: if self.wndSashAbsorption.IsShow(): return 1 return 0 def OnMoveWindow(self, x, y): # print "Inventory Global Pos : ", self.GetGlobalPosition() if self.wndBelt: # print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition() self.wndBelt.AdjustPositionAndSize() if self.wndBio: self.wndBio.AdjustPositionAndSize()
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.