代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接: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个荧光果,如果身上没有荧光果,则不会开启电动功能,只能手动铲地了