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

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



二三0.五彩木箱(找东西直接看木箱颜色,木箱可搬动)

	用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/treasurechest.lua文件,将下列内容:

		inst.OnSave = onsave 
		inst.OnLoad = onload

	替换为:

local colours=
{
	{198/255,43/255,43/255},
	{79/255,153/255,68/255},
	{35/255,105/255,235/255},
	{233/255,208/255,69/255},
	{109/255,50/255,163/255},
	{222/255,126/255,39/255},
}
local function onequip(inst, owner) 
	owner.AnimState:OverrideSymbol("swap_body", "swap_backpack", "swap_body")
end
local function onunequip(inst, owner) 
	owner.AnimState:ClearOverrideSymbol("swap_body")
end
local function turnon(inst)
	inst.components.machine.ison = true
	if inst.prefab == "treasurechest" then
	   inst:AddComponent("inventoryitem")
	end
end
local function turnoff(inst)
	inst.components.machine.ison = false
	if inst.prefab == "treasurechest" then
	   inst:RemoveComponent("inventoryitem")
	end
end
local function onsave2(inst, data)
	data.num = inst.balloon_num
	data.colour_idx = inst.colour_idx
end
local function onload2(inst, data)
	if data then
		if data.num then
			inst.balloon_num = data.num
			inst.AnimState:OverrideSymbol("swap_balloon", "balloon_shapes", "balloon_" .. tostring(inst.balloon_num))
		end
		if data.colour_idx then
			inst.colour_idx = math.min(#colours, data.colour_idx)
			inst.AnimState:SetMultColour(colours[inst.colour_idx][1],colours[inst.colour_idx][2],colours[inst.colour_idx][3],1)
		end
	end
end
	inst:AddComponent("machine")
	inst.components.machine.turnonfn = turnon
	inst.components.machine.turnofffn = turnoff
	inst:AddComponent("equippable")
	inst.components.equippable:SetOnEquip( onequip )
	inst.components.equippable:SetOnUnequip( onunequip )
	inst.colour_idx = math.random(#colours)
	inst.AnimState:SetMultColour(colours[inst.colour_idx][1],colours[inst.colour_idx][2],colours[inst.colour_idx][3],1)
	inst.OnSave = onsave2
	inst.OnLoad = onload2

	即可使木箱具备不同颜色,找东西直接看颜色,再也不用翻箱倒柜了。木箱可搬动,对地上的木箱按鼠标右键,可拿起木箱。将木箱放在地上后,对其按鼠标右键,可以锁定在地上