Hello!
I am writing because I don't know what to do. I edit Metin2 4fun and I installed Inventory Slot Marking System and 6-7th bonus. It's okay when I log in but when I want to change map, black screen occurs and syserr:
1215 13:06:23302 :: Traceback (most recent call last):
1215 13:06:23302 :: File "networkModule.py", line 247, in SetGamePhase
1215 13:06:23303 :: File "game.py", line 98, in __init__
1215 13:06:23303 :: File "interfaceModule.py", line 314, in MakeInterface
1215 13:06:23303 :: File "interfaceModule.py", line 176, in __MakeWindows
1215 13:06:23303 :: File "uiInventory.py", line 274, in __init__
1215 13:06:23303 :: File "uiInventory.py", line 422, in __LoadWindow
1215 13:06:23303 :: File "uiInventory.py", line 495, in SetInventoryPage
1215 13:06:23303 :: File "uiInventory.py", line 786, in RefreshBagSlotWindow
1215 13:06:23303 :: File "uiInventory.py", line 786, in <lambda>
1215 13:06:23303 :: File "uiAttr67Add.py", line 476, in RefreshLockedSlot
1215 13:06:23303 :: AttributeError
1215 13:06:23303 :: :
1215 13:06:23303 :: 'int' object has no attribute 'SetCanMouseEventSlot'
1215 13:06:23303 ::
This is the extract from uiAttr67Add.py that contains SetCanMouseEventSlot:
if app.WJ_ENABLE_TRADABLE_ICON:
@staticmethod
def IsSupportItem(inven_slot):
dstItemVNum = player.GetItemIndex(inven_slot)
if dstItemVNum == 0:
return False
return dstItemVNum in Attr67AddWindow.SUPPORT_DICT
def RefreshLockedSlot(self):
if self.inven == None:
return
for i in range(player.INVENTORY_PAGE_SIZE):
self.inven.wndItem.SetCanMouseEventSlot(i)
for i in (self.SupportSlotIndex, self.RegistSlotIndex):
if i != -1:
itemInvenPage = i / player.INVENTORY_PAGE_SIZE
localSlotPos = i - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
if self.inven.GetInventoryPageIndex() == itemInvenPage:
self.inven.wndItem.SetCantMouseEventSlot(localSlotPos)
self.inven.wndItem.RefreshSlot()
self.inven.RefreshMarkSlots()
def BindInterface(self, interface):
from _weakref import proxy
self.interface = proxy(interface)
def SetInven(self, inven):
from _weakref import proxy
self.inven = proxy(inven)
def OnTop(self):
if self.tooltipitem:
self.tooltipitem.SetTop()
if app.WJ_ENABLE_TRADABLE_ICON and self.interface:
self.interface.SetOnTopWindow(player.ON_TOP_WND_ATTR_67)
self.interface.RefreshMarkInventoryBag()
The line that syserr underline is:
self.inven.wndItem.SetCanMouseEventSlot(i)
I also want to send extract from uiRefine.py where setCanMouseEventSlot and RefreshLockedSlot are defined.
def SetCanMouseEventSlot(self, slotIndex):
itemInvenPage = slotIndex / player.INVENTORY_PAGE_SIZE
localSlotPos = slotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
self.lockedItem = (-1, -1)
if itemInvenPage == self.wndInventory.GetInventoryPageIndex():
self.wndInventory.wndItem.SetCanMouseEventSlot(localSlotPos)
def SetCantMouseEventSlot(self, slotIndex):
itemInvenPage = slotIndex / player.INVENTORY_PAGE_SIZE
localSlotPos = slotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
self.lockedItem = (itemInvenPage, localSlotPos)
if itemInvenPage == self.wndInventory.GetInventoryPageIndex():
self.wndInventory.wndItem.SetCantMouseEventSlot(localSlotPos)
def SetInven(self, wndInventory):
from _weakref import proxy
self.wndInventory = proxy(wndInventory)
def RefreshLockedSlot(self):
if self.wndInventory:
itemInvenPage, itemSlotPos = self.lockedItem
if self.wndInventory.GetInventoryPageIndex() == itemInvenPage:
self.wndInventory.wndItem.SetCantMouseEventSlot(itemSlotPos)
self.wndInventory.wndItem.RefreshSlot()
I don't have any idea to solve this problems. Every smaller ones I fixed but this seems to be complicated. Could you help me please?