[C++]Metin2 4 Pagini de Inventare

  • Autor subiect ElectroZ
  • Dată creare
  • Răspunsuri: Răspunsuri 2
  • Vizualizări: Vizualizări 895

ElectroZ

Member
19 Aug 2018
30
39
18
25
Romania
Monede Dragon
0
Intrați în /usr/src/your_source/Srcs/Server/game/src

O să vă pun și TAB-uri să nu vă încurcați.

Deschideți char_item.cpp și căutați:




BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);
Și modificați în


[TAB][TAB][TAB][TAB][TAB]BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);
Vedeți că se află în 2 părți..
Acum căutați


if (p / (INVENTORY_MAX_NUM / 2) != bPage) ( și acesta tot în 2 părți este )
Și modificați în


[TAB][TAB][TAB][TAB][TAB][TAB]if (p / (INVENTORY_MAX_NUM / 4) != bPage)
Gata cu char_item.cpp
Acum intrați în exchange.cpp și căutați:


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

În loc de ele adăugați:

[TAB]static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 4); // inven page 1
[TAB]static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 4); // inven page 2
[TAB]static CGrid s_grid3(5, INVENTORY_MAX_NUM/5 / 4); // inven page 3
[TAB]static CGrid s_grid4(5, INVENTORY_MAX_NUM/5 / 4); // inven page 4
Acum căutați:


s_grid1.Clear();
s_grid2.Clear();
În loc de ele adăugați:


[TAB]s_grid1.Clear();
[TAB]s_grid2.Clear();
[TAB]s_grid3.Clear();
[TAB]s_grid4.Clear();
Tot aici căutați funcția:


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());
}
În loc de ea puneți:


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

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

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


Acum vă duceți în /usr/src/your_source/Srcs/Server/common, deschideți lenght.h și căutați:

INVENTORY_MAX_NUM = 90;

În loc de 90 treceți 180 !!!! Va arăta așa ( INVENTORY_MAX_NUM = 180; )

Gata cu partea de game !!!
Partea de launcher :

Intrați în /usr/src/your_source/Srcs/Client/Userinterface după deschideți GameType.h și căutați:



const DWORD c_Inventory_Page_Count = 2;
În loc de el treceți:


const DWORD c_Inventory_Page_Count = 4;

Acum despachetați locale, intrați în locale/ro/ui și deschideți inventorywindow.py

Înlocuiți ce este în el cu ce vă pun la dispoziție aici:


import uiScriptLocale
import item

EQUIPMENT_START_INDEX = 180

window = {
"name" : "InventoryWindow",

## 600 - (width + 오른쪽으로 부터 띄우기 24 px)
"x" : SCREEN_WIDTH - 176,
"y" : SCREEN_HEIGHT - 37 - 565,

"style" : ("movable", "float",),

"width" : 176,
"height" : 585,

"children" :
(
## Inventory, Equipment Slots
{
"name" : "board",
"type" : "board",
"style" : ("attach",),

"x" : 0,
"y" : 0,

"width" : 176,
"height" : 585,

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

## Equipment Slot
{
"name" : "Equipment_Base",
"type" : "image",

"x" : 10,
"y" : 33,

"image" : "d:/ymir work/ui/equipment_bg_without_ring.tga",

"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},
## 새 반지1
##{"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},
## 새 반지2
##{"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32},
## 새 벨트
{"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32},
),
},
## Dragon Soul Button
{
"name" : "DSSButton",
"type" : "button",

"x" : 114,
"y" : 107,

"tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,

"default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",
"over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",
"down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",
},
## MallButton
{
"name" : "MallButton",
"type" : "button",

"x" : 118,
"y" : 148,

"tooltip_text" : uiScriptLocale.MALL_TITLE,

"default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",
"over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",
"down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",
},
## CostumeButton
{
"name" : "CostumeButton",
"type" : "button",

"x" : 78,
"y" : 5,

"tooltip_text" : uiScriptLocale.COSTUME_TITLE,

"default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga",
"over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga",
"down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga",
},
{
"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" : "Inventory_Tab_01",
"type" : "radio_button",

"x" : 10,
"y" : 33 + 189,

"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_1,

"children" :
(
{
"name" : "Inventory_Tab_01_Print",
"type" : "text",

"x" : 0,
"y" : 0,

"all_align" : "center",

"text" : "I",
},
),
},
{
"name" : "Inventory_Tab_02",
"type" : "radio_button",

"x" : 10 + 78,
"y" : 33 + 189,

"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_2,

"children" :
(
{
"name" : "Inventory_Tab_02_Print",
"type" : "text",

"x" : 0,
"y" : 0,

"all_align" : "center",

"text" : "II",
},
),
},
{
"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_2,

"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_2,

"children" :
(
{
"name" : "Inventory_Tab_04_Print",
"type" : "text",

"x" : 0,
"y" : 0,

"all_align" : "center",

"text" : "IV",
},
),
},

## Item Slot
{
"name" : "ItemSlot",
"type" : "grid_table",

"x" : 8,
"y" : 264,

"start_index" : 0,
"x_count" : 5,
"y_count" : 9,
"x_step" : 32,
"y_step" : 32,

"image" : "d:/ymir work/ui/public/Slot_Base.sub"
},

## Print
{
"name":"Money_Slot",
"type":"button",

"x":8,
"y":28,

"horizontal_align":"center",
"vertical_align":"bottom",

"default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

"children" :
(
{
"name":"Money_Icon",
"type":"image",

"x":-18,
"y":2,

"image":"d:/ymir work/ui/game/windows/money_icon.sub",
},

{
"name" : "Money",
"type" : "text",

"x" : 3,
"y" : 3,

"horizontal_align" : "right",
"text_horizontal_align" : "right",

"text" : "123456789",
},
),
},

),
},
),
}
Gata partea de locale ! Acum despachetați root, deschideți uiinvetory.py și faceți următoarele :

Căutați :


self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
Sub el adăugați:


[TAB]self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
[TAB]self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
Acum căutați :


self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
self.inventoryTab[0].Down()
În loc de el adăugați:


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

Acum căutați funcția SetInventoryPage și înlocuiți-o cu aceasta:


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

Și gata, vă puteți bucura de cele 4 inventare !!!