- Mesaj
- 5.932
- Çözümler
- 250
- Beğeni
- 7.691
- Puan
- 6.350
- Ticaret Puanı
- 7
soru cevap bölümüne konu açarsan yardımcı olayım. resimde ekle konuna uiinventory.py de dahil etMerhaba sistemi ekledim kostüm, kemer sorunsuz takılıyor. Fakat iç itemler zırh silah takıldığı zaman gözükmüyor sebebi nedir syserr yok
hatalı eklemiş olabilirsin tekrar kontrol et0324 17:17:18150 :: AttributeError
0324 17:17:18150 :: :
0324 17:17:18150 :: 'NoneType' object has no attribute 'SetItemSlot'
0324 17:17:18150 ::
şöyle bir syser aldım ama
hasanmacit diye eklersen ben çıkıyorum zaten biliyorsun o sonundaki numaralar kalktı artık@hasanmacit paylaşım için teşekkürler discordun hala aynı mı sonu 6876
o profile bu discordu artık kullanmıyorum yazmışsın hocam
valla ben sisteme buraya bakıyom ondan sonra soru cevap yerine burada yorumlara bakıyomben konu açmanızı konunun altı kirlenmesin diye istemiştim baş şişirmek olarak algılandıysa onu düzelteyim öncelikle. bir de şimdi bu konu başlığını görünce herkes girmiyor ama soru cevap konularına forumdaki çoğu kişi giriyor o yüzden o bölüme açarsanız ben olsamda olmasam da daha hızlı çözüm bulabilirsiniz.
genelde hata alan direkt yazıyor buraya ondano kısım için inventorywindow paylaşırsan konuya ekleyebilirim bu şekil eklemek isteyen üyelerimiz için18750 eklentisini görüntüle
Teşekkürler çalışıyor problem yok butonları sevmediğim için bu şekil yaptım daha sonra yine değişirim şimdilik böyle
2 envanterli benim dosyalarım ona göre ayarlarsınız kendinize göreo kısım için inventorywindow paylaşırsan konuya ekleyebilirim bu şekil eklemek isteyen üyelerimiz için
Can you explain how you adapted the system to only two windows? I need to activate them for only two windows, the fashion and the main hardware window. Thank you.Arkadaşla iletişime geçtim ve hatamı düzeltti, İstek üzerine sadece 1. ve 2. butonu aktif etmemde yardımcı oldu. Teşekkür ederim.
Bence gayet hoş duruyo valla herkese hayırlı kullanımlar.
uiinventory.py açalım ve aratalım
arat
uiinventory:def __LoadWindow(self): if self.isLoaded == 1: return self.isLoaded = 1 try: pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "InventoryWindow.py") except: import exception exception.Abort("InventoryWindow.LoadWindow.LoadObject") try: wndItem = self.GetChild("ItemSlot") wndEquip = self.GetChild("EquipmentSlot")
altına ekle
Python:wndCostume = self.GetChild("CostumeSlot") wndSecondary = self.GetChild("SecondarySlot") wndTalisman = self.GetChild("TalismanSlot") wndEffect = self.GetChild("EffectSlot")
arat
Python:self.DSSButton = self.GetChild2("DSSButton")
altına ekle
Python:mask1 = self.GetChild("Equipment_Base") mask2 = self.GetChild("Costume_Base") mask3 = self.GetChild("Secondary_Base") mask4 = self.GetChild("Talisman_Base") mask5 = self.GetChild("Effect_Base")
arat
Python:self.equipmentTab = [] self.equipmentTab.append(self.GetChild("Equipment_Tab_01")) self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))
altına ekle
Python:self.costumeTab = [] self.costumeTab.append(self.GetChild("Costume_Tab_01")) self.costumeTab.append(self.GetChild("Costume_Tab_02")) self.costumeTab.append(self.GetChild("Costume_Tab_03")) self.costumeTab.append(self.GetChild("Costume_Tab_04")) self.costumeTab.append(self.GetChild("Costume_Tab_05"))
arat
Python: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))
altına ekle
Python:## New EQUIPMENT ## Costume wndCostume.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndCostume.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndCostume.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndCostume.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndCostume.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndCostume.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) ## Secondary wndSecondary.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndSecondary.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndSecondary.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndSecondary.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndSecondary.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndSecondary.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) ## Talisman wndTalisman.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndTalisman.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndTalisman.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndTalisman.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndTalisman.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndTalisman.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) ## Effect wndEffect.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot)) wndEffect.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot)) wndEffect.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndEffect.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot)) wndEffect.SetOverInItemEvent(ui.__mem_func__(self.OverInItem)) wndEffect.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) ## New EQUIPMENT
arat
Python: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()
altına ekle
Python:self.costumeTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg)) self.costumeTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg)) self.costumeTab[2].SetEvent(lambda arg=2: self.SetEquipmentPage(arg)) self.costumeTab[3].SetEvent(lambda arg=3: self.SetEquipmentPage(arg)) self.costumeTab[4].SetEvent(lambda arg=4: self.SetEquipmentPage(arg)) self.costumeTab[0].Down() self.costumePageIndex = 0 ## New EQUIPMENT
arat
Python:self.wndItem = wndItem self.wndEquip = wndEquip
altına ekle
Python:self.wndCostume = wndCostume self.wndSecondary = wndSecondary self.wndTalisman = wndTalisman self.wndEffect = wndEffect self.mask1 = mask1 self.mask2 = mask2 self.mask3 = mask3 self.mask4 = mask4 self.mask5 = mask5 ## New EQUIPMENT
arat
Python:self.tooltipItem = None self.wndItem = 0 self.wndEquip = 0
altına ekle
Python:## NEW EQUIPMENT self.wndCostume = 0 self.wndSecondary = 0 self.wndTalisman = 0 self.wndEffect = 0 ## NEW EQUIPMENT
arat
Python:def SetEquipmentPage(self, page):
değiştir
Python:def SetEquipmentPage(self, page): self.costumeTab[self.costumePageIndex].SetUp() self.costumePageIndex = page self.costumeTab[self.costumePageIndex].Down() self.mask1.Hide() self.mask2.Hide() self.mask3.Hide() self.mask4.Hide() self.mask5.Hide() if page == 0: self.mask1.Show() elif page == 1: self.mask3.Show() elif page == 2: self.mask2.Show() elif page == 3: self.mask4.Show() elif page == 4: self.mask5.Show() else: self.mask1.Hide() self.mask2.Hide() self.mask3.Hide() self.mask4.Hide() self.mask5.Hide() self.RefreshEquipSlotWindow() def OnRunMouseWheel(self, nLen): if nLen > 0: if self.equipmentPageIndex < 4: self.SetEquipmentPage(self.equipmentPageIndex + 1) else: if self.equipmentPageIndex > 0: self.SetEquipmentPage(self.equipmentPageIndex - 1)
arat
Python:def RefreshEquipSlotWindow(self):
değiştir
Python: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) for i in xrange(item.COSTUME_SLOT_COUNT): slotNumber = item.COSTUME_SLOT_START + i self.wndCostume.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) if app.ENABLE_WEAPON_COSTUME_SYSTEM: self.wndCostume.SetItemSlot(item.COSTUME_SLOT_WEAPON, getItemVNum(item.COSTUME_SLOT_WEAPON), 0) self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) 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 self.wndSecondary.SetItemSlot(slotNumber, getItemVNum(slotNumber), itemCount) print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber) self.wndEquip.RefreshSlot()
locale-uicscript/inventorywindow.py:"children" : ( ## Title { "name" : "TitleBar", "type" : "titlebar", "style" : ("attach",), "x" : 8, "y" : 7, "width" : 161, "color" : "yellow", "children" : ( { "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" }, ), },
burdan aşağısını envanter butonlarının kodlarına kadar değiştirin
Python:## Equipment Slot { "name" : "Equipment_Base", "type" : "expanded_image", "x" : 10, "y" : 33, "image" : "d:/ymir work/ui/inventory_buttons/eq_primary_page.jpg", "children" : ( { "name" : "EquipmentSlot", "type" : "slot", "x" : 3, "y" : 3, "width" : 150, "height" : 182, "slot" : ( {"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64}, {"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96}, {"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32}, {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32}, ), }, ), }, ## Costume Equipment Slot { "name" : "Costume_Base", "type" : "expanded_image", "x" : 10, "y" : 33, "image" : "d:/ymir work/ui/inventory_buttons/eq_cosmetics_page_v2.jpg", "children" : ( { "name" : "CostumeSlot", "type" : "slot", "x" : 3, "y" : 3, "width" : 150, "height" : 182, "slot" : ( {"index":COSTUME_START_INDEX+0, "x":61, "y":77, "width":32, "height":64}, {"index":COSTUME_START_INDEX+1, "x":61, "y":40, "width":32, "height":32}, {"index":COSTUME_START_INDEX+2, "x":108, "y":23, "width":32, "height":32},#Sash {"index":COSTUME_START_INDEX+3, "x":108, "y":63, "width":32, "height":32}, {"index":item.COSTUME_SLOT_WEAPON, "x":10, "y":63, "width":32, "height":96},#¹«±â ), }, ), }, ## Secondary Equipment Slot { "name" : "Secondary_Base", "type" : "expanded_image", "x" : 10, "y" : 33, "image" : "d:/ymir work/ui/inventory_buttons/eq_secondary_page_v2.jpg", "children" : ( { "name" : "SecondarySlot", "type" : "slot", "x" : 3, "y" : 3, "width" : 150, "height" : 182, "slot" : ( # {"index":item.EQUIPMENT_RING1, "x":8, "y":2, "width":32, "height":32}, #{"index":item.EQUIPMENT_RING2, "x":44, "y":2, "width":32, "height":32}, # {"index":item.EQUIPMENT_PET, "x":115, "y":42, "width":32, "height":32}, #{"index":item.EQUIPMENT_MOUNT, "x":115, "y":4, "width":32, "height":32}, ), }, ), }, ## Talisman Equipment Slot { "name" : "Talisman_Base", "type" : "expanded_image", "x" : 10, "y" : 33, "image" : "d:/ymir work/ui/inventory_buttons/eq_pendant_page.jpg", "children" : ( { "name" : "TalismanSlot", "type" : "slot", "x" : 3, "y" : 3, "width" : 150, "height" : 182, "slot" : ( # {"index":COSTUME_START_INDEX+0, "x":61, "y":77, "width":32, "height":64}, # {"index":COSTUME_START_INDEX+1, "x":61, "y":40, "width":32, "height":32}, # {"index":COSTUME_START_INDEX+2, "x":61, "y":125, "width":32, "height":32}, # {"index":COSTUME_START_INDEX+3, "x":10, "y":62, "width":32, "height":96}, # {"index":COSTUME_START_INDEX+4, "x":110, "y":61, "width":32, "height":32}, ), }, ), }, ## Effect Equipment Slot { "name" : "Effect_Base", "type" : "expanded_image", "x" : 10, "y" : 33, "image" : "d:/ymir work/ui/inventory_buttons/eq_effect_page_v2.jpg", "children" : ( { "name" : "EffectSlot", "type" : "slot", "x" : 3, "y" : 3, "width" : 150, "height" : 182, "slot" : ( # {"index":COSTUME_START_INDEX+0, "x":61, "y":77, "width":32, "height":64}, # {"index":COSTUME_START_INDEX+1, "x":61, "y":40, "width":32, "height":32}, # {"index":COSTUME_START_INDEX+2, "x":61, "y":125, "width":32, "height":32}, # {"index":COSTUME_START_INDEX+3, "x":10, "y":62, "width":32, "height":96}, # {"index":COSTUME_START_INDEX+4, "x":110, "y":61, "width":32, "height":32}, ), }, ), }, { "name" : "Equipment_Tab_01", "type" : "radio_button", "x" : 86, "y" : 161, "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub", "children" : ( { "name" : "Equipment_Tab_01_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "I", }, ), }, { "name" : "Equipment_Tab_02", "type" : "radio_button", "x" : 86 + 32, "y" : 161, "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub", "children" : ( { "name" : "Equipment_Tab_02_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "II", }, ), }, { "name" : "Costume_Tab_01", "type" : "radio_button", "x" : -14, "y" : 33, "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.dds", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1, "children" : ( { "name" : "Equipment_Tab_01_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "I", }, ), }, { "name" : "Costume_Tab_02", "type" : "radio_button", "x" : -14, "y" : 33 + 22, "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.dds", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2, "children" : ( { "name" : "Equipment_Tab_02_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "II", }, ), }, { "name" : "Costume_Tab_03", "type" : "radio_button", "x" : -14, "y" : 33 + 22*2, "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.dds", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3, "children" : ( { "name" : "Equipment_Tab_03_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "III", }, ), }, { "name" : "Costume_Tab_04", "type" : "radio_button", "x" : -14, "y" : 33 + 22*3, "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.dds", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4, "children" : ( { "name" : "Equipment_Tab_04_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "IV", }, ), }, { "name" : "Costume_Tab_05", "type" : "radio_button", "x" : -14, "y" : 33 + 22*4, "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.dds", "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.dds", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_5, "children" : ( { "name" : "Equipment_Tab_05_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "V", }, ), },
arat
Python:EQUIPMENT_START_INDEX
altına ekle
Python:COSTUME_START_INDEX = item.COSTUME_SLOT_START
uiinventory.py de class inventorywindow içerisinde arat ve sil
Python:# Costume Button if self.costumeButton: self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton)) self.wndCostume = None
tekrar arat ve sil
Python:if self.wndCostume: self.wndCostume.Destroy() self.wndCostume = 0
tekrar arat ve sil
Python:if self.wndCostume: self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow() # Àκ¥Å丮 âÀÌ ´İÈú ¶§ ÄÚ½ºÃõÀÌ ¿·Á ÀÖ¾ú´Â°¡? self.wndCostume.Close()
18.01.2024 Tarihinde Verilen Güncelleme
Forumdaki çoğu kişi slotları nasıl uyarlayacağını bilmiyor. Bunu şahsen bende bilmiyordum. @Reached 'in verdiği fikirle çözmüş oldum. Asıl hikaye burada eklediğimiz şeyleri iyi bilmek. Mesela tılsımların envanterde gözükmesini istiyoruz. O zaman şu kodu eklememiz gerek.
diğer eşyaları uyarlama:self.wndTalisman.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) #tılsımlar için self.wndCostume.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) #kostümler için self.wndSecondary.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) #ikinci envanter için self.wndEffect.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0) #ekleyeceğiniz giymeli efektler için (kanat vb.) #veya ekleyeceğiniz item slota otomatik geçmiyorsa şu şekil olucak self.wndCostume.SetItemSlot(item.COSTUME_SLOT_WEAPON, getItemVNum(item.COSTUME_SLOT_WEAPON), 0)
Linkleri görebilmek için giriş yap veya kayıt ol.
Linkleri görebilmek için giriş yap veya kayıt ol.
videoda gözükmemiş ama sizde silah fişleride slotuna oturacaktır oturmazsa ya da hata alırsanız konu altına belirtin.
Hayırlı kullanımlar
Offical envanter önüne geçerek yazman gerekiyor benim çözmem biraz zaman almıştı bayağıda ugraşmıştımAklıma bir şey takıldı, bu rubinum tarzı envanter ile, Tr tipi envanter sistemi (üst ve alt ayrı olan) birleştirilip kullanılabilir mi? Aklımda deli sorular var... Manyak bir envanter olmaz mı? Ayrıca k evanterini ana envanterin üstüne ( 1-2-3-4 butonlarının üzerine K envanter butonları) butonlu şekilde eklenebilir ve bu üç sistem kobine çalışır mı?
Nasıl yani, officialden önce mi eklemem gerekiyor? Rubiyi?Offical envanter önüne geçerek yazman gerekiyor benim çözmem biraz zaman almıştı bayağıda ugraşmıştım
Kankam bunun için tılsım sistemini eklemen gerekiyor. O sistem ayrı bir sistem.marty 5.8 kullanıyorum tılsımları envantere ekleyemedim talisman yok ama tılsımlar var nasıl ekleyebilirim
peki yüzükleri nasıl yapacağımKankam bunun için tılsım sistemini eklemen gerekiyor. O sistem ayrı bir sistem.
Envantere koymak istediğin ekstra her item için ekstra slot oluşturman gerekiyor.peki yüzükleri nasıl yapacağım
bana destek olabilirmisin bu konudaEnvantere koymak istediğin ekstra her item için ekstra slot oluşturman gerekiyor.
Hocam ilerde de kendin yapabilmen için Tılsım sistemi - Talisman System bu konuyu öneririm. Bu konu üzerinden ilerlersen sorunun çözülür.bana destek olabilirmisin bu konuda