代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1
2二三八.璀璨流星雨(给远古盔甲10个黄金或荧光果,为你下场流星雨)
3
4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/armor_ruins.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
5
6local function ShouldAcceptItem(inst, item)
7 if GetPlayer().components.inventory:Has("goldnugget", 10) then
8 if item.prefab == "goldnugget" then
9 return true
10 end
11 end
12 if GetPlayer().components.inventory:Has("lightbulb", 10) then
13 if item.prefab == "lightbulb" then
14 return true
15 end
16 end
17 return false
18end
19local function OnGetItemFromPlayer(inst, giver, item)
20 if item.prefab == "goldnugget" then
21 giver.components.inventory:ConsumeByName("goldnugget", 9)
22 elseif item.prefab == "lightbulb" then
23 giver.components.inventory:ConsumeByName("lightbulb", 9)
24 end
25 local bullet = SpawnPrefab("trinket_5")
26 bullet.Transform:SetPosition(inst.Transform:GetWorldPosition())
27 bullet.components.inventoryitem.canbepickedup = false
28 bullet.Physics:SetMotorVelOverride(0,20,0)
29 giver.components.sanity:DoDelta(10)
30 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
31 inst:DoTaskInTime(1, function() bullet:Remove() end )
32 inst:DoTaskInTime(1.5, function()
33 inst:StartThread(function()
34 for k = 1, 200 do
35 local pt = Vector3(GetPlayer().Transform:GetWorldPosition())
36 local rain = SpawnPrefab("lightbulb")
37 rain:RemoveComponent("edible")
38 rain.components.inventoryitem.canbepickedup = false
39 if item.prefab == "goldnugget" then
40 rain.AnimState:SetMultColour(math.random(255)/255,math.random(255)/255,math.random(255)/255,1)
41 end
42 rain.Transform:SetPosition(pt.x+(math.random(30)-math.random(30)), 20, pt.z+(math.random(30)-math.random(30)))
43 inst:DoTaskInTime(5, function()
44 local pt2 = rain:GetPosition()
45 SpawnPrefab("explode_small").Transform:SetPosition(pt2.x, 0, pt2.z)
46 rain:Remove()
47 end)
48 Sleep(0.2)
49 end
50 end)
51 end)
52end
53 inst:AddComponent("trader")
54 inst.components.trader.onaccept = OnGetItemFromPlayer
55 inst.components.trader:SetAcceptTest(ShouldAcceptItem)
56
57 即可拿着黄金或荧光果,对放在地上的远古盔甲点鼠标左键,将向空中发射火箭,打下漫天的流星雨。每次发射消耗10个黄金或荧光果,身上数量不足时无法发射。如果给远古盔甲的是黄金,则下彩色流星雨,如果给的是荧光果则下白色流星雨。可以连续发射,但不要连续次数太多,除非你的计算机硬件足够坚强。每场流星雨可补脑10点。另外穿着远古盔甲,拿黄金或荧光果对装备格点鼠标右键,同样可以发射。远古盔甲在远古选项(画着远古祭坛)下,用6个铥矿石、4个噩梦燃料制造,制造时需要靠近远古祭坛