ICe0707 0 Posted April 3, 2015 Share Posted April 3, 2015 (edited) hi Guys I want to add 3 inventory in the source and the client I want like this I did not understand the http://metin2dev.org/board/topic/791-metin2-4-inventory-page/ Thank you Edited August 19, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 3, 2015 Premium Share Posted April 3, 2015 Hi! Try this: find: ../common/length.h INVENTORY_MAX_NUM = 90, Replace to: INVENTORY_MAX_NUM = 135, Find: ../game/src/char_item.cpp BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2); And: BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2); Replace to: BYTE bPage = bCell / (INVENTORY_MAX_NUM / 3); And: BYTE bPage = bCell / (INVENTORY_MAX_NUM / 3); Find: (in the same file) if (p / (INVENTORY_MAX_NUM / 2) != bPage) And: if (p / (INVENTORY_MAX_NUM / 2) != bPage) Replace to: if (p / (INVENTORY_MAX_NUM / 3) != bPage) And: if (p / (INVENTORY_MAX_NUM / 3) != bPage) Find: ../game/src/exchange.cpp static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 2); static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); Replace to: static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 3); static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 3); static CGrid s_grid3(5, INVENTORY_MAX_NUM/5 / 3); Find: (in the same file) s_grid1.Clear(); s_grid2.Clear(); Replace to: s_grid1.Clear(); s_grid2.Clear(); s_grid3.Clear(); and replace to your self.. for (i = 0; i < INVENTORY_MAX_NUM / 3; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid1.Put(i, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 3; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid2.Put(i - INVENTORY_MAX_NUM / 3, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 3; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid3.Put(i - INVENTORY_MAX_NUM / 3, 1, item->GetSize()); } Client side: Find: ../userinterface/gametype.h const DWORD c_Inventory_Page_Count = 2; Replace to: const DWORD c_Inventory_Page_Count = 3; Open inventorywindow.py: EQUIPMENT_START_INDEX = 90 Replace to: EQUIPMENT_START_INDEX = 135 Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 3, 2015 Author Share Posted April 3, 2015 Thank you Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 3, 2015 Author Share Posted April 3, 2015 (edited) oh There is a problem Tools do not come in its place Edited August 19, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 3, 2015 Premium Share Posted April 3, 2015 Do you rewrite the EQUIPMET_START_INDEX in the inventorywindow.py? Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 3, 2015 Author Share Posted April 3, 2015 yes EQUIPMENT_START_INDEX = 135 {"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}, Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 3, 2015 Premium Share Posted April 3, 2015 in the local_**.eix || .epk? Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 3, 2015 Author Share Posted April 3, 2015 yes Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 3, 2015 Premium Share Posted April 3, 2015 (edited) I don't know then! But rewrite in the beltinventory.py open beltinventorywindow.py after search this EQUIPMENT_START_INDEX = 90 replace to EQUIPMENT_START_INDEX = 180 Edited April 3, 2015 by EzionX Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 I can not solve the problem, in fact I have a 5 inventory and I want to make it 3 How Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 4, 2015 Premium Share Posted April 4, 2015 Upload your edited files please Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 get me your skype pls Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 /game/src/exchange.cpp 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 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 static CGrid s_grid5(5, INVENTORY_MAX_NUM/5 / 2); // inven page 5 s_grid1.Clear(); s_grid2.Clear(); s_grid3.Clear(); s_grid4.Clear(); s_grid5.Clear(); LPCHARACTER victim = GetCompany()->GetOwner(); LPITEM item; int i; for (i = 0; i < INVENTORY_MAX_NUM / 5; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid1.Put(i, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid2.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid3.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid4.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid5.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize()); } int iPos = s_grid1.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid1.Put(iPos, 1, item->GetSize()); } else { iPos = s_grid2.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid2.Put(iPos, 1, item->GetSize()); } else { iPos = s_grid3.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid3.Put(iPos, 1, item->GetSize()); } else { iPos = s_grid4.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid4.Put(iPos, 1, item->GetSize()); } else { iPos = s_grid5.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid5.Put(iPos, 1, item->GetSize()); } else { return false; } } } } } } } return true; } |___________________________________________________ /game/src/char_item.cpp bPage = bCell / (INVENTORY_MAX_NUM / 5); the 4 sourcecommonlength.h INVENTORY_MAX_NUM = 225, ClientUserInterfaceGameType.h const DWORD c_Inventory_Page_Size = 5*9; // x*y const DWORD c_Inventory_Page_Count = 5; Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 I want 3 inventory Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 plz Guys help me Link to comment Share on other sites More sharing options...
Alina 234 Posted April 4, 2015 Share Posted April 4, 2015 No, belt_inventory does not cause this error. It's the inventory size clientside, not only the py-part but also the binary. Equipment is normally stored at the end of your normal inventory. The server now has 135 as the inventory size (45 more than the prior 90) so the equipment starts with index 136 there. But the client still thinks that the inventory size is just 90, so the equipment starts at 91 there. That's the mismatch you can see. When equipping something, the server will move the item to the proper index, so it's at 136+, not 91+ like the client has it In GameType.h change const DWORD c_Inventory_Page_Count = 2; to const DWORD c_Inventory_Page_Count = 3; and make sure you've recompiled everything after raising the inventory size serverside to 135. Then everything should work Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 ok But my client inventorywindow.py EQUIPMENT_START_INDEX = 135 I did everything Link to comment Share on other sites More sharing options...
Alina 234 Posted April 4, 2015 Share Posted April 4, 2015 It's not a problem with the py-files, it's a problem with the source. Did you do that too? Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 yes look the exchange.cpp int iPos = s_grid1.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid1.Put(iPos, 1, item->GetSize()); } else { iPos = s_grid2.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid2.Put(iPos, 1, item->GetSize()); } else { iPos = s_grid3.FindBlank(1, item->GetSize()); if (iPos >= 0) { s_grid3.Put(iPos, 1, item->GetSize()); } else { return false; } } } } } } Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 4, 2015 Premium Share Posted April 4, 2015 (edited) oh There is a problem Tools do not come in its place It's not a problem with the py-files, it's a problem with the source. Did you do that too? Please rewrite the EQUIPMENT_START_INDEX in the inventorywindow.py and look what happen! Edited August 19, 2022 by Metin2 Dev Core X - External 2 Internal 1 Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 this inventorywindow.py import uiScriptLocale import item EQUIPMENT_START_INDEX = 135 window = { "name" : "InventoryWindow", ## 600 - (width + 오른쪽으로 부터 띄우기 24 px) "x" : SCREEN_WIDTH - 176, "y" : SCREEN_HEIGHT - 37 - 565, "style" : ("movable", "float",), "width" : 176, "height" : 565, "children" : ( ## Inventory, Equipment Slots { "name" : "board", "type" : "board", "style" : ("attach",), "x" : 0, "y" : 0, "width" : 176, "height" : 565, "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" : 222, "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", "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" : 40, "y" : 222, "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", "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" : 70, "y" : 222, "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", "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", }, ), }, ## Item Slot { "name" : "ItemSlot", "type" : "grid_table", "x" : 8, "y" : 246, "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", }, ), }, ), }, ), } Link to comment Share on other sites More sharing options...
Premium V0iĐ 114 Posted April 4, 2015 Premium Share Posted April 4, 2015 I told Alina, but i don't know what could be a problem sorry Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 4, 2015 Author Share Posted April 4, 2015 np Thank you Link to comment Share on other sites More sharing options...
ICe0707 0 Posted April 7, 2015 Author Share Posted April 7, 2015 So far, I did not know to solve the problem Link to comment Share on other sites More sharing options...
Aurora 46 Posted April 7, 2015 Share Posted April 7, 2015 What you need is: - This guide: - Working brains (Because you want 3 inventorys so you have to delete some codes) And dont use the Binary from that tutorial you need to compile your own because you want 3 inventorys instead of 4. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now