第354页:商业采矿机
展开三零四.商业采矿机(用晶体管种商业采矿机,20个黄金租用一次,收购采出的矿石,赔钱、赚钱天注定)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\transistor.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function makeluckypit(inst)
local pt = inst:GetPosition()
local luckypit = SpawnPrefab("transistor")
luckypit.Transform:SetPosition(pt.x, pt.y, pt.z)
luckypit.AnimState:SetBank("coldfirepit")
luckypit.AnimState:SetBuild("coldfirepit")
luckypit.AnimState:PlayAnimation("idle",false)
luckypit.entity:AddSoundEmitter()
luckypit.Transform:SetScale(1.5,1.5,1.5)
luckypit:RemoveComponent("stackable")
luckypit:RemoveComponent("inventoryitem")
luckypit:RemoveComponent("deployable")
luckypit:AddComponent("workable")
luckypit.components.workable:SetWorkAction(ACTIONS.HAMMER)
luckypit.components.workable:SetWorkLeft(3)
luckypit.components.workable:SetOnFinishCallback(function(luckypit)
SpawnPrefab("collapse_big").Transform:SetPosition(luckypit.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
luckypit:Remove()
end )
luckypit:AddComponent("trader")
luckypit.components.trader:SetAcceptTest(function(luckypit, item)
if GetPlayer().components.inventory:Has("goldnugget", 20) then
if not luckypit:HasTag("domining") then
if item.prefab == "goldnugget" then
return true
end
end
end
if item.prefab == "rocks" or item.prefab == "nitre" or item.prefab == "flint" or item.prefab == "redgem" or item.prefab == "bluegem" or item.prefab == "purplegem" or item.prefab == "greengem" or item.prefab == "orangegem" or item.prefab == "yellowgem" or item.prefab == "thulecite" or item.prefab == "ice" then
return true
end
return false
end )
luckypit.components.trader.onaccept = function(luckypit, giver, item)
if item.prefab == "goldnugget" then
giver.components.inventory:ConsumeByName("goldnugget", 19)
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
luckypit:AddTag("domining")
luckypit.task = luckypit:DoPeriodicTask(1, function()
local pt0 = luckypit:GetPosition()
luckypit.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
luckypit:DoTaskInTime(0.5, function() luckypit.AnimState:SetBloomEffectHandle("") end )
SpawnPrefab("collapse_small").Transform:SetPosition(pt0.x, 1, pt0.z)
luckypit.SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
GetPlayer().components.playercontroller:ShakeCamera(luckypit, "FULL", 0.7, 0.02, .5, 40)
local ores = {"rocks","nitre","flint","redgem","bluegem","purplegem","greengem","orangegem","yellowgem","thulecite","ice","goldnugget","ash"}
local ore = ores[math.random(#ores)]
local myore = SpawnPrefab(ore)
myore.Transform:SetPosition(pt0.x, 0, pt0.z)
myore.components.inventoryitem.canbepickedup = false
myore:AddComponent("complexprojectile")
myore.components.complexprojectile.yOffset = 2.5
myore.components.complexprojectile:Launch(Point(pt0.x+(math.random(10)-math.random(10)), 0, pt0.z+(math.random(10)-math.random(10))))
myore.components.complexprojectile:SetOnHit(function()
SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(myore.Transform:GetWorldPosition())
myore:RemoveComponent("complexprojectile")
myore.components.inventoryitem.canbepickedup = true
end )
end )
luckypit:DoTaskInTime(math.random(10,60), function()
SpawnPrefab("collapse_big").Transform:SetPosition(luckypit.Transform:GetWorldPosition())
luckypit.SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
if luckypit.task then luckypit.task:Cancel() luckypit.task = nil end
luckypit:RemoveTag("domining")
end )
end
if item.prefab == "thulecite" then
for k = 1, 3 do
local goldnugget = SpawnPrefab("goldnugget")
giver.components.inventory:GiveItem(goldnugget)
end
end
if item.prefab == "rocks" or item.prefab == "nitre" or item.prefab == "flint" or item.prefab == "redgem" or item.prefab == "bluegem" or item.prefab == "purplegem" or item.prefab == "greengem" or item.prefab == "orangegem" or item.prefab == "yellowgem" or item.prefab == "ice" then
local goldnugget = SpawnPrefab("goldnugget")
giver.components.inventory:GiveItem(goldnugget)
end
end
luckypit:AddTag("luckypit")
end
local function OnDeploy (inst, pt)
makeluckypit(inst)
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("luckypit") then
data.luckypit = true
end
end
local function onload(inst, data)
if data and data.luckypit then
makeluckypit(inst)
inst:Remove()
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可用晶体管种商业采矿机(拿着1个晶体管对地面点鼠标右键,如果拿着多个,则不会种出来),给它20个黄金(拿着黄金对采矿机点鼠标左键)可租用一次,采出的矿石数量不确定,还有一定概率采出灰。你可以将矿石留下自用,也可以卖给商业采矿机(拿着矿石对采矿机点鼠标左键),除铥矿石可卖3个黄金外,其余每个矿石可卖1个黄金,能否平衡你支付的租金,就要看天意了,开启矿业大亨的生涯吧。不想要商业采矿机了,用锤子砸掉即可。晶体管在精炼选项(画着白色宝石)下,用2个黄金、1个石砖制造
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏