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

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



二三八.璀璨流星雨(给远古盔甲10个黄金或荧光果,为你下场流星雨)

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

local function ShouldAcceptItem(inst, item)
	if GetPlayer().components.inventory:Has("goldnugget", 10) then
	   if item.prefab == "goldnugget" then
		  return true
	   end
	end
	if GetPlayer().components.inventory:Has("lightbulb", 10) then
	   if item.prefab == "lightbulb" then
		  return true
	   end
	end
	return false
end
local function OnGetItemFromPlayer(inst, giver, item)
	if item.prefab == "goldnugget" then
	   giver.components.inventory:ConsumeByName("goldnugget", 9)
	elseif item.prefab == "lightbulb" then
	   giver.components.inventory:ConsumeByName("lightbulb", 9)
	end
	local bullet = SpawnPrefab("trinket_5")
	bullet.Transform:SetPosition(inst.Transform:GetWorldPosition())
	bullet.components.inventoryitem.canbepickedup = false
	bullet.Physics:SetMotorVelOverride(0,20,0)
	giver.components.sanity:DoDelta(10)
	GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
	inst:DoTaskInTime(1, function() bullet:Remove() end )
	inst:DoTaskInTime(1.5, function()
	   inst:StartThread(function()
		   for k = 1, 200 do
			   local pt = Vector3(GetPlayer().Transform:GetWorldPosition())
			   local rain = SpawnPrefab("lightbulb")
			   rain:RemoveComponent("edible")
			   rain.components.inventoryitem.canbepickedup = false
			   if item.prefab == "goldnugget" then
				  rain.AnimState:SetMultColour(math.random(255)/255,math.random(255)/255,math.random(255)/255,1)
			   end
			   rain.Transform:SetPosition(pt.x+(math.random(30)-math.random(30)), 20, pt.z+(math.random(30)-math.random(30)))
			   inst:DoTaskInTime(5, function()
					local pt2 = rain:GetPosition()
					SpawnPrefab("explode_small").Transform:SetPosition(pt2.x, 0, pt2.z)
					rain:Remove()
			   end)
			   Sleep(0.2)
		   end
	   end)
	end)
end
	inst:AddComponent("trader")
	inst.components.trader.onaccept = OnGetItemFromPlayer
	inst.components.trader:SetAcceptTest(ShouldAcceptItem)

	即可拿着黄金或荧光果,对放在地上的远古盔甲点鼠标左键,将向空中发射火箭,打下漫天的流星雨。每次发射消耗10个黄金或荧光果,身上数量不足时无法发射。如果给远古盔甲的是黄金,则下彩色流星雨,如果给的是荧光果则下白色流星雨。可以连续发射,但不要连续次数太多,除非你的计算机硬件足够坚强。每场流星雨可补脑10点。另外穿着远古盔甲,拿黄金或荧光果对装备格点鼠标右键,同样可以发射。远古盔甲在远古选项(画着远古祭坛)下,用6个铥矿石、4个噩梦燃料制造,制造时需要靠近远古祭坛