第321页:全自动播种机
展开二七一.全自动播种机(给避雷针植物,自动种下一百多个)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\lightningrod.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local slotpos = { Vector3(0,-75,0)}
local function itemtest(inst, item, slot)
if item.prefab == "twigs" or item.prefab == "cutgrass" or item.prefab == "petals" or item.prefab == "petals_evil" or item.prefab == "cutreeds" or item.prefab == "red_cap" or item.prefab == "green_cap" or item.prefab == "blue_cap" or item.prefab == "carrot" or item.prefab == "berries" or item.prefab == "mandrake" or item.prefab == "foliage" or item.prefab == "cave_banana" or item.prefab == "cutlichen" or item.prefab == "lightbulb" or item.prefab == "pinecone" or item.prefab == "charcoal" or item.prefab == "acorn" or item.prefab == "cactus_meat" then
return true
end
return false
end
local widgetbuttoninfo = {
text = "Do",
position = Vector3(0, -145, 0),
fn = function(inst)
if GetPlayer().components.inventory:Has("goldnugget", 50) then
if inst.components.container:Has("twigs", 1) then
inst.components.container:ConsumeByName("twigs", 1)
inst.plants = "sapling"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("cutgrass", 1) then
inst.components.container:ConsumeByName("cutgrass", 1)
inst.plants = "grass"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("petals", 1) then
inst.components.container:ConsumeByName("petals", 1)
inst.plants = "flower"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("petals_evil", 1) then
inst.components.container:ConsumeByName("petals_evil", 1)
inst.plants = "flower_evil"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("cutreeds", 1) then
inst.components.container:ConsumeByName("cutreeds", 1)
inst.plants = "reeds"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("red_cap", 1) then
inst.components.container:ConsumeByName("red_cap", 1)
inst.plants = "red_mushroom"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("green_cap", 1) then
inst.components.container:ConsumeByName("green_cap", 1)
inst.plants = "green_mushroom"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("blue_cap", 1) then
inst.components.container:ConsumeByName("blue_cap", 1)
inst.plants = "blue_mushroom"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("carrot", 1) then
inst.components.container:ConsumeByName("carrot", 1)
inst.plants = "carrot_planted"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("berries", 1) then
inst.components.container:ConsumeByName("berries", 1)
inst.plants = "berrybush2"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("mandrake", 1) then
inst.components.container:ConsumeByName("mandrake", 1)
inst.plants = "mandrake"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("foliage", 1) then
inst.components.container:ConsumeByName("foliage", 1)
inst.plants = "cave_fern"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("cave_banana", 1) then
inst.components.container:ConsumeByName("cave_banana", 1)
inst.plants = "cave_banana_tree"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("cutlichen", 1) then
inst.components.container:ConsumeByName("cutlichen", 1)
inst.plants = "lichen"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("lightbulb", 1) then
inst.components.container:ConsumeByName("lightbulb", 1)
inst.plants = "flower_cave_triple"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("pinecone", 1) then
inst.components.container:ConsumeByName("pinecone", 1)
inst.plants = "evergreen_tall"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("charcoal", 1) then
inst.components.container:ConsumeByName("charcoal", 1)
inst.plants = "mushtree_tall"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("acorn", 1) then
inst.components.container:ConsumeByName("acorn", 1)
inst.plants = "deciduoustree_tall"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
if inst.components.container:Has("cactus_meat", 1) then
inst.components.container:ConsumeByName("cactus_meat", 1)
inst.plants = "cactus"
GetPlayer().components.inventory:ConsumeByName("goldnugget", 50)
end
local pt = Vector3(inst.Transform:GetWorldPosition())
inst:StartThread(function()
for k = 1, 25 do
local result_offset = FindValidPositionByFan(1 * 2 * PI, 4, 25, function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local plant = SpawnPrefab(inst.plants)
plant.Transform:SetPosition((pt + result_offset):Get())
GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.2, 0.02, .25, 40)
local fx = SpawnPrefab("splash_ocean")
local pos = pt + result_offset
fx.Transform:SetPosition(pos.x, pos.y, pos.z)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
end
Sleep(.33)
end
for k = 1, 37 do
local result_offset = FindValidPositionByFan(1 * 2 * PI, 6, 37, function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local plant = SpawnPrefab(inst.plants)
plant.Transform:SetPosition((pt + result_offset):Get())
GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.2, 0.02, .25, 40)
local fx = SpawnPrefab("splash_ocean")
local pos = pt + result_offset
fx.Transform:SetPosition(pos.x, pos.y, pos.z)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
end
Sleep(.23)
end
for k = 1, 50 do
local result_offset = FindValidPositionByFan(1 * 2 * PI, 8, 50, function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local plant = SpawnPrefab(inst.plants)
plant.Transform:SetPosition((pt + result_offset):Get())
GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.2, 0.02, .25, 40)
local fx = SpawnPrefab("splash_ocean")
local pos = pt + result_offset
fx.Transform:SetPosition(pos.x, pos.y, pos.z)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
end
Sleep(.13)
end
end)
end
end }
inst:AddComponent("container")
inst.components.container:SetNumSlots(#slotpos)
inst.components.container.widgetslotpos = slotpos
inst.components.container.widgetpos = Vector3(0,180,0)
inst.components.container.side_align_tip = 160
inst.components.container.itemtestfn = itemtest
inst.components.container.acceptsstacks = false
inst.components.container.widgetbuttoninfo = widgetbuttoninfo
即可在空旷的地上建一个避雷针,鼠标左键点避雷针可打开格子,在格子中放入植物后点Do按钮,可自动种下100多株该植物,将花费50个黄金,身上黄金数不足时不会种植。可种植的17种植物有:给树枝种树苗、给草种草、给花瓣种花、给噩梦花瓣种噩梦花、给芦苇种芦苇、给红蘑菇种红蘑菇、给绿蘑菇种绿蘑菇、给蓝蘑菇种蓝蘑菇、给胡萝卜种胡萝卜、给浆果种果树丛、给曼德拉草种曼德拉草、给叶子种蕨类植物、给香蕉种香蕉树、给苔藓种苔藓、给荧光果种三朵洞穴花、给松果种树、给木炭种蘑菇树、给仙人掌肉种仙人掌、给橡果种橡树(橡树种下时不显示,存档退出再读档就可正常显示)。注意,其中果树丛、香蕉树、树、蘑菇树等种好后人无法通行,可以用“瑞士手杖”瞬移(或“神奇跳跃”跳出来),并用“收割者”大面积收获
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏