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

原帖链接: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个噩梦燃料制造,制造时需要靠近远古祭坛