Jump to content

rootmaster

Inactive Member
  • Posts

    4
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by rootmaster

  1. Hi guys :D Someone wondered how to make 4 inventory page with source. I will share how to make 4 inventory page today :)

     

    I hope you are like it ;)

     

    First which you are use to source files open it. I will use to mainline_released(SG)

     

    log in mainline_released/mainline_sg/Srcs/Server/common after open length.h after search this

    INVENTORY_MAX_NUM		= 90,

    Replace to 

    INVENTORY_MAX_NUM		= 180,

    Open char_item.cpp and search this

    					BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);

    Replace to 

    					BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);

    search this

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

    Replace to

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

    open exchange.cpp. Search this after add under this.

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

    will be like this.

    	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
    
    	s_grid1.Clear();
    	s_grid2.Clear();
    	s_grid3.Clear();
    	s_grid4.Clear();

    and replace to your self.. 

    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());
    	}
    
    	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());
    	}

    After client.. :D

     

    Log in mainline_released/mainline_sg/Srcs/Client/Userinterface after open GameType.h after search this

    const DWORD c_Inventory_Page_Count = 2;

    Replace to

    const DWORD c_Inventory_Page_Count = 4;

    open inventorywindow.py and search this

    EQUIPMENT_START_INDEX = 90

    Replace to

    EQUIPMENT_START_INDEX = 180

    open uiinventory.py and search this after add under this

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

    search this after add under this

    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))

    Search SetInventoryPage function and replace with this.

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

    Thanks for @Zardon,Deniec Cikiec comment.

    i will share my inventorywindow.py

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

    open beltinventorywindow.py after search this

    EQUIPMENT_START_INDEX = 90

    replace to

    EQUIPMENT_START_INDEX = 180

    I think someone don't make part of client-side. I share binary file (original file) with your.

     

    https://mega.co.nz/#!TxpUzL6Y!9vC4ip61k_El6Ew6POIF53_PApd29a4CFSqIMdzb4XQ

     

    Kind Regards

    HaveBeen

     

    I did not add it on resolving issues or where the file on the base in the beautiful ...

     

     

    log in mainline_released/mainline_sg/Srcs/Server/common after open length.h after search this

    16
    INVENTORY_MAX_NUM       = 90,

    Replace to 

    6
    INVENTORY_MAX_NUM       = 180,

    Open char_item.cpp and search this

    BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);

    Replace to 

    BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);

    search this

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

    Replace to

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

    open exchange.cpp. Search this after add under this.

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

    will be like this.

    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
     
    s_grid1.Clear();
    s_grid2.Clear();
    s_grid3.Clear();
    s_grid4.Clear();

    and replace to your self.. 

    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());
        }
     
        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());
        }

    After client..  :D

     

    Log in mainline_released/mainline_sg/Srcs/Client/Userinterface after open GameType.h after search this

    const DWORD c_Inventory_Page_Count = 2;

    Replace to

    const DWORD c_Inventory_Page_Count = 4;

    open inventorywindow.py and search this

    EQUIPMENT_START_INDEX = 90
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.