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

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


 1
 2二七六.电动草叉(拿草叉自动铲起脚下的地皮)
 3
 4	MT管理器打开游戏目录/assets/scripts/prefabs/pitchfork.lua文件,将下列内容:
 5
 6local function onequip(inst, owner) 
 7	owner.AnimState:OverrideSymbol("swap_object", "swap_pitchfork", "swap_pitchfork")
 8	owner.AnimState:Show("ARM_carry") 
 9	owner.AnimState:Hide("ARM_normal") 
10end
11
12local function onunequip(inst, owner) 
13	owner.AnimState:Hide("ARM_carry") 
14	owner.AnimState:Show("ARM_normal") 
15end
16
17	替换为:
18
19local function pickup(inst, owner)
20	local pt = owner:GetPosition()
21	inst.components.terraformer:Terraform(pt)
22	inst.SoundEmitter:PlaySound("dontstarve/wilson/dig")
23end
24local function onequip(inst, owner) 
25	if owner.components.inventory:Has("lightbulb", 1) then
26	   inst.task = inst:DoPeriodicTask(.033, function() pickup(inst, owner) end)
27	   owner.components.inventory:ConsumeByName("lightbulb", 1)
28	end
29	owner.AnimState:OverrideSymbol("swap_object", "swap_pitchfork", "swap_pitchfork")
30	owner.AnimState:Show("ARM_carry") 
31	owner.AnimState:Hide("ARM_normal") 
32end
33local function onunequip(inst, owner) 
34	owner.AnimState:Hide("ARM_carry") 
35	owner.AnimState:Show("ARM_normal") 
36	if inst.task then inst.task:Cancel() inst.task = nil end
37end
38
39	即可拿草叉自动铲起脚下的地皮,效率极高,铲地的速度只取决于你走多快。电动草叉需要能源,每次装备时自动开启,会消耗1个荧光果,如果身上没有荧光果,则不会开启电动功能,只能手动铲地了