Keşfet

Metin2 Rubinum Envanter Sistemi C++

C++ paylaşımları.

PowerShoot

Yönetici
Yönetici
Moderatör
Premium Üye
Gold 6
Katılım
19 Şub 2024
Mesajlar
3,048
Tepkime puanı
1,390
Puanları
113
Metin2 Rubinum global olarak dünya çapında hizmet veren ve piyasaya damgasını vuran sunucular arasında yer almaktaydı. Bazı talihsiz durumlar yaşandı ve sunucu kapandı ama her oyuncu bu sunucuda ki envanter sistemine aşıktı. Bizde bugün sizler için kendi sunucularınıza ekleyebileceğiniz Rubinum Envanter Sistemini paylaşıyoruz. Aşağıdaki adımları harfiyen uygulayınız lütfen.

1737673572427.png
1737673592300.png
1737673615955.png


konuda ekli olan ekteki dosyayı indirin

uiinventory.py açın ve aşağıdaki kodu aratın


Kod:
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")

üstteki kodun altına , alttaki kodu ekleyin

Kod:
            wndCostume = self.GetChild("CostumeSlot")
            wndSecondary = self.GetChild("SecondarySlot")
            wndTalisman = self.GetChild("TalismanSlot")
            wndEffect = self.GetChild("EffectSlot")

aşağıdaki kodu aratın

Kod:
self.DSSButton = self.GetChild2("DSSButton")

aşağıdaki kodu üsttekinin altına ekleyin

Kod:
            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ınız

Kod:
            self.equipmentTab = []
            self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))
            self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))

altına ekleyiniz

Kod:
            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ınız

Kod:
            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 ekleyiniz

Kod:
        ## 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ınız

Kod:
        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 ekleyiniz

Kod:
        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ınız

Kod:
        self.wndItem = wndItem
        self.wndEquip = wndEquip

altına ekleyiniz

Kod:
        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ınız

Kod:
        self.tooltipItem = None
        self.wndItem = 0
        self.wndEquip = 0

altına ekleyiniz

Kod:
        ## NEW EQUIPMENT
        self.wndCostume = 0
        self.wndSecondary = 0
        self.wndTalisman = 0
        self.wndEffect = 0
        ## NEW EQUIPMENT

aratınız

Kod:
def SetEquipmentPage(self, page):

kodu değiştiriniz

Kod:
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ınız

Kod:
def RefreshEquipSlotWindow(self):

kodu değiştiriniz

Kod:
    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()

Kod:
"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" },
                    ),
                },

Metin2 Yazılım - Geliştirme kategorisindeki içeriklerimizi indirebilmeniz için yorum ve beğeni bırakmanız gerekmektedir.

 

Ekli dosyalar

  • inventory_buttons.rar
    234.9 KB · Görüntüleme: 1
uiinventory.py açın ve aşağıdaki kodu aratın
 

Konuyu görüntüleyen kullanıcılar