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