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

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



二四0.完好如初(红色魔杖可修复物品、回复新鲜度、补充燃料及治愈同伴)

	用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/staff.lua文件,在local inst = commonfn("red")的下一行插入以下内容:

local function canbeback(staff, caster, target, pos)
	if caster.components.inventory:Has("goldnugget", 1) then
	   return true
	end
	return false
end
local function beback(staff, target, pos)
	local player = GetPlayer()
	SpawnPrefab("book_fx").Transform:SetPosition(target.Transform:GetWorldPosition())
	if target.components.fueled then
	   target.components.fueled.currentfuel = target.components.fueled.maxfuel
	   player.components.inventory:ConsumeByName("goldnugget", 1)
	end
	if target.components.finiteuses then
	   target.components.finiteuses.current = target.components.finiteuses.total
	   player.components.inventory:ConsumeByName("goldnugget", 1)
	end
	if target.components.armor then
	   target.components.armor.condition = target.components.armor.maxcondition
	   player.components.inventory:ConsumeByName("goldnugget", 1)
	end
	if target.components.perishable then
	   target.components.perishable.perishremainingtime = target.components.perishable.perishtime
	   player.components.inventory:ConsumeByName("goldnugget", 1)
	end
	if target.components.health then
	   target.components.health.currenthealth = target.components.health.maxhealth
	   player.components.inventory:ConsumeByName("goldnugget", 1)
	end
end
	inst:AddComponent("spellcaster")
	inst.components.spellcaster:SetSpellFn(beback)
	inst.components.spellcaster:SetSpellTestFn(canbeback)
	inst.components.spellcaster.canuseontargets = true
	inst.components.spellcaster.canusefrominventory = false

	即可将想要修复的物品放在地上,装备红色魔杖右键点地上的物品,可修复武器装备使用百分比,回复食物新鲜度,为照明物品补充燃料,也可用于治疗同伴。每次使用须支付1个黄金,身上没有黄金时无法使用。可堆叠的物品尽量堆在一起修复,这样只要花费1个黄金即可