代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。

原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html



二十一.双层主角物品条(60格)

	1.用MT管理器打开游戏目录/assets/DLC0002/scripts/components/inventory.lua文件,将local MAXSLOTS = 15替换为local MAXSLOTS = 60

	2.用MT管理器打开游戏目录/assets/scripts/widgets/inventorybar.lua文件,将self.bg:SetScale(1.15,1,1)替换为self.bg:SetScale(1.86,1.85,1)

	3.将下列内容:

	local num_intersep = math.floor(num_slots / 5) + 1 
	local total_w = (num_slots + num_equip)*(W) + (num_slots + num_equip - 2 - num_intersep) *(SEP) + INTERSEP*num_intersep
	
	for k, v in ipairs(self.equipslotinfo) do
		local slot = EquipSlot(v.slot, v.atlas, v.image, self.owner)
		self.equip[v.slot] = self.toprow:AddChild(slot)
		local x = -total_w/2 + (num_slots)*(W)+num_intersep*(INTERSEP - SEP) + (num_slots-1)*SEP + INTERSEP + W*(k-1) + SEP*(k-1)
		slot:SetPosition(x,0,0)
		table.insert(eslot_order, slot)
		
		local item = self.owner.components.inventory:GetEquippedItem(v.slot)
		if item then
			slot:SetTile(ItemTile(item))
		end

	end	

	for k = 1,num_slots do
		local slot = InvSlot(k, HUD_ATLAS, "inv_slot.tex", self.owner, self.owner.components.inventory)
		self.inv[k] = self.toprow:AddChild(slot)
		local interseps = math.floor((k-1) / 5)
		local x = -total_w/2 + W/2 + interseps*(INTERSEP - SEP) + (k-1)*W + (k-1)*SEP
		slot:SetPosition(x,0,0)
		
		slot.top_align_tip = W*0.5 + YSEP

		local item = self.owner.components.inventory:GetItemInSlot(k)
		if item then
			slot:SetTile(ItemTile(item))
		end
		
	end

	替换为:

	local num_intersep = math.floor(num_slots / 10) + 1 
	local total_w = (num_slots -30.85)*(W) + (num_slots -30.85 - 2 - num_intersep) *(SEP) + INTERSEP*num_intersep
	
	for k, v in ipairs(self.equipslotinfo) do
		local slot = EquipSlot(v.slot, v.atlas, v.image, self.owner)
		self.equip[v.slot] = self.toprow:AddChild(slot)
		local x = -total_w/2 + (num_slots*0+14.07)*(W)+num_intersep*(INTERSEP - SEP) + (num_slots-1)*SEP + INTERSEP + W*(k-1) + SEP*(k-1)
		slot:SetPosition(x+341,190,0)
		table.insert(eslot_order, slot)
		
		local item = self.owner.components.inventory:GetEquippedItem(v.slot)
		if item then
			slot:SetTile(ItemTile(item))
		end

	end	

	for k = 1,30 do
		local slot = InvSlot(k, HUD_ATLAS, "inv_slot.tex", self.owner, self.owner.components.inventory)
		self.inv[k] = self.toprow:AddChild(slot)
		local interseps = math.floor((k-1) / 10)
		local x = -total_w/2 + W/2 + interseps*(INTERSEP - SEP) + (k-1)*W + (k-1)*SEP
		slot:SetPosition(x,0,0)
		
		local item = self.owner.components.inventory:GetItemInSlot(k)
		if item then
			slot:SetTile(ItemTile(item))
		end
		
	end

	for k = 31,60 do
		local slot = InvSlot(k, HUD_ATLAS, "inv_slot.tex", self.owner, self.owner.components.inventory)
		self.inv[k] = self.toprow:AddChild(slot)
		local interseps = math.floor((k-1-30) / 10)
		local x = -total_w/2 + W/2 + interseps*(INTERSEP - SEP) + (k-1-30)*W + (k-1-30)*SEP
		slot:SetPosition(x,80,0)
		
		local item = self.owner.components.inventory:GetItemInSlot(k)
		if item then
			slot:SetTile(ItemTile(item))
		end
		
	end

	即可获得双层主角物品条(60格),注意必须将游戏设置(options) - (Settings) - HUD size项设为0,即显示最小物品条,才可完整显示60格哦