[C++ & Python] 4 leltár komplett + bugfixek

Indította Pisti95, 2018-03-17, 23:04:18

2018-03-17, 23:04:18 Utolsó szerkesztés: 2018-03-18, 10:14:57 Szerző: Pisti95
Sziasztok!

Szerintem nagyobb igény lenne egy komplex 4 leltár leírásra,
mivel minden javítást össze kell böngészni az internetről,
és egyszerűbb ha egy rendszer teljes, és nem kell keresgetni
semmit sem hozzá, hanem kéz alatt van.

Lássuk is hozzá!

Szerver oldali forrás

Server/common

length.h

Keress rá erre:
(1 leltár 45 slot, 2 leltár 90...)

INVENTORY_MAX_NUM       = 90,


Módosíts erre: (4 leltár esetében)

INVENTORY_MAX_NUM       = 180,

   
   

Server/game

char_item.cpp

Keress rá:

BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);



Módosítsd erre:

BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);



Keress erre rá:

if (p / (INVENTORY_MAX_NUM / 2) != bPage)



Módosítsd erre:

if (p / (INVENTORY_MAX_NUM / 4) != bPage)




Server/game
Exchange.cpp.

Rákeresel erre:

static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); // inven page 2


Alámásolod ezeket:

static CGrid s_grid3(5, INVENTORY_MAX_NUM/5 / 2); // inven page 3
static CGrid s_grid4(5, INVENTORY_MAX_NUM/5 / 2); // inven page 4



Alatta pedig ez alá:

s_grid2.Clear();


Ezeket írod:

s_grid3.Clear();
s_grid4.Clear();



Rákerestek erre:

for (i = 0; i < INVENTORY_MAX_NUM / 2; ++i)



Kicsivel alatt lévő részt látván módosítanotok kell így:

for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;

s_grid1.Put(i, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;

s_grid2.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}

//////////////////s_grid3 és s_grid4//////////////////////////////////
    for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
    {
        if (!(item = victim->GetInventoryItem(i)))
            continue;

        s_grid3.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
    }
    for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
    {
        if (!(item = victim->GetInventoryItem(i)))
            continue;

        s_grid4.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
    }
//////////////////////////////////////////////////////////////////////







Indító forrás

Client/Userinterface

GameType.h

Keress rá erre:

const DWORD c_Inventory_Page_Count = 2;



Módosítsd erre: (4 leltár esetében)

const DWORD c_Inventory_Page_Count = 4;





Locale_xy.eix/epk

Locale_interface.txt-be másold be ezt:

INVENTORY_PAGE_BUTTON_TOOLTIP_3 3. leltár
INVENTORY_PAGE_BUTTON_TOOLTIP_4 4. leltár




Inventorywindow.py

Keress rá erre:

EQUIPMENT_START_INDEX = 90



Módosíts így:

EQUIPMENT_START_INDEX = 180



Rákeresel erre:

"name" : "Inventory_Tab_02",


Alámásolod ezt: (!!figyelj a kapcsos zárójelekre!!)

                {
                    "name" : "Inventory_Tab_03",
                    "type" : "radio_button",
                    "x" : 10,
                    "y" : 33 + 210,
                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3,
                    "children" :
                    (
                        {
                            "name" : "Inventory_Tab_03_Print",
                            "type" : "text",
                            "x" : 0,
                            "y" : 0,
                            "all_align" : "center",
                            "text" : "III",
                        },
                    ),
                },
                {
                    "name" : "Inventory_Tab_04",
                    "type" : "radio_button",
                    "x" : 10 + 78,
                    "y" : 33 + 210,
                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4,
                    "children" :
                    (
                        {
                            "name" : "Inventory_Tab_04_Print",
                            "type" : "text",
                            "x" : 0,
                            "y" : 0,
                            "all_align" : "center",
                            "text" : "IV",
                        },
                    ),
                },


            
            
Beltinventorywindow.py

Rákeresel erre:

EQUIPMENT_START_INDEX = 90


Módosítod erre:

EQUIPMENT_START_INDEX = 180
         



root.eix/epk

uiinventory.py

Keress rá erre:

self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))


Másold alá ezeket:

self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))



Keress erre:

self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))

   

Alá másolod ezeket:

self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))


   

Keress rá erre:

SetInventoryPage


Írd felül ezzel:

def SetInventoryPage(self, page):
self.inventoryTab[self.inventoryPageIndex].SetUp()
self.inventoryPageIndex = page
self.inventoryTab[self.inventoryPageIndex].Down()
self.RefreshBagSlotWindow()

      
      
Keress rá erre:

self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
self.inventoryTab[0].Down()

      

Módosítsd erre:

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[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
self.inventoryTab[0].Down()
self.inventoryPageIndex = 0

      
      
      
      

      
Autopotik avagy Elixírek javítás

uiinventory.py

Erre is keress rá:

if slotNumber >= player.INVENTORY_PAGE_SIZE:
slotNumber -= player.INVENTORY_PAGE_SIZE

               
Módosítsd erre:

if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex:
slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex

               



Tárgy eldobása 3-4. leltár részből by Pisti95

uicommon.py

Rákeresel erre:

def Open(self, iPos=None):
if None == iPos or iPos >= 90 or iPos < 0:
return

         

Módosítod erre:

def Open(self, iPos=None):
if None == iPos or iPos >= 180 or iPos < 0:
return

         
         

Alkímia szellemkövek választás 3-4 leltárból is by Pisti95

uiselectitem.py

Rákeresel erre:

for i in xrange(player.INVENTORY_PAGE_SIZE*2):


Írjátok felül ezzel:

for i in xrange(player.INVENTORY_PAGE_SIZE*4): ##2  Alkímia szellemkövek 3-4 leltár láthatóság #fix




Quickslot bug by Feco
http://metin2hungary.net/index.php?topic=187534.0


Sárkánykő alkímia hibára fix by P3NG3R
https://metin2dev.org/board/index.php?/topic/2925-4-inventory-bug/#comment-19470


Quickslot bug2 by Meli
http://hugames.hu/showthread.php?tid=164


Üdv Pisti95