第355页:环保公司
展开三零五.环保公司(用草种环保公司,将接收的垃圾搬到粉碎区,点铃粉碎后得黄金)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\cutgrass.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function makegrinder(inst)
local pt = inst:GetPosition()
local redmark = SpawnPrefab("cutgrass")
redmark.Transform:SetPosition(pt.x, pt.y, pt.z)
redmark.AnimState:SetBank("gridplacer")
redmark.AnimState:SetBuild("gridplacer")
redmark.AnimState:PlayAnimation("anim", true)
redmark.Transform:SetScale(1.5, 1.5, 1.5)
redmark.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )
redmark.AnimState:SetLayer( LAYER_BACKGROUND )
redmark.AnimState:SetSortOrder( 3 )
redmark.Transform:SetRotation( 45 )
redmark.AnimState:SetMultColour(255/255,0/255,0/255,1)
redmark.AnimState:SetLightOverride(1)
redmark:AddTag("NOCLICK")
redmark:RemoveComponent("stackable")
redmark:RemoveComponent("edible")
redmark:RemoveComponent("tradable")
redmark:RemoveComponent("fuel")
redmark:RemoveComponent("burnable")
redmark:RemoveComponent("propagator")
redmark:RemoveComponent("repairer")
redmark:RemoveComponent("inventoryitem")
redmark:RemoveComponent("deployable")
redmark:RemoveTag("cattoy")
redmark:AddTag("redmark")
local yellowmark = SpawnPrefab("cutgrass")
yellowmark.Transform:SetPosition(pt.x-12.5, 0, pt.z+12.5)
yellowmark.AnimState:SetBank("gridplacer")
yellowmark.AnimState:SetBuild("gridplacer")
yellowmark.AnimState:PlayAnimation("anim", true)
yellowmark.Transform:SetScale(2, 2, 2)
yellowmark.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )
yellowmark.AnimState:SetLayer( LAYER_BACKGROUND )
yellowmark.AnimState:SetSortOrder( 3 )
yellowmark.Transform:SetRotation( 45 )
yellowmark.AnimState:SetMultColour(255/255,255/255,0/255,1)
yellowmark.AnimState:SetLightOverride(1)
yellowmark:AddTag("NOCLICK")
yellowmark:RemoveComponent("stackable")
yellowmark:RemoveComponent("edible")
yellowmark:RemoveComponent("tradable")
yellowmark:RemoveComponent("fuel")
yellowmark:RemoveComponent("burnable")
yellowmark:RemoveComponent("propagator")
yellowmark:RemoveComponent("repairer")
yellowmark:RemoveComponent("inventoryitem")
yellowmark:RemoveComponent("deployable")
yellowmark:RemoveTag("cattoy")
yellowmark:ListenForEvent( "daytime", function()
for k = 1,math.random(6,12) do
local pt1 = yellowmark:GetPosition()
local trash = SpawnPrefab("cutgrass")
trash.Transform:SetPosition(pt1.x+(math.random(6)-math.random(6)), 0, pt1.z+(math.random(6)-math.random(6)))
trash.AnimState:SetBank("fertilizer")
trash.AnimState:SetBuild("fertilizer")
trash.AnimState:PlayAnimation("idle")
trash.Transform:SetScale(1.5, 1.5, 1.5)
trash.AnimState:SetMultColour(0/255,255/255,0/255,1)
trash.components.inventoryitem:ChangeImageName("fertilizer")
trash:RemoveComponent("stackable")
trash:RemoveComponent("edible")
trash:RemoveComponent("tradable")
trash:RemoveComponent("fuel")
trash:RemoveComponent("burnable")
trash:RemoveComponent("propagator")
trash:RemoveComponent("repairer")
trash:RemoveComponent("deployable")
trash:RemoveTag("cattoy")
trash:AddComponent("named")
trash.components.named:SetName("Refuse")
trash.flies = trash:SpawnChild("flies")
trash.components.inventoryitem:SetOnDroppedFn(function() trash.flies = trash:SpawnChild("flies") end )
trash.components.inventoryitem:SetOnPickupFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end )
trash.components.inventoryitem:SetOnPutInInventoryFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end )
MakeSmallBurnable(trash)
MakeSmallPropagator(trash)
trash:AddTag("trash")
end
end , GetWorld() )
yellowmark:ListenForEvent( "nighttime", function()
for k = 1,math.random(3,5) do
local pt1 = yellowmark:GetPosition()
local trash = SpawnPrefab("cutgrass")
trash.Transform:SetPosition(pt1.x+(math.random(6)-math.random(6)), 0, pt1.z+(math.random(6)-math.random(6)))
trash.AnimState:SetBank("fertilizer")
trash.AnimState:SetBuild("fertilizer")
trash.AnimState:PlayAnimation("idle")
trash.Transform:SetScale(1.5, 1.5, 1.5)
trash.AnimState:SetMultColour(0/255,255/255,0/255,1)
trash.components.inventoryitem:ChangeImageName("fertilizer")
trash:RemoveComponent("stackable")
trash:RemoveComponent("edible")
trash:RemoveComponent("tradable")
trash:RemoveComponent("fuel")
trash:RemoveComponent("burnable")
trash:RemoveComponent("propagator")
trash:RemoveComponent("repairer")
trash:RemoveComponent("deployable")
trash:RemoveTag("cattoy")
trash:AddComponent("named")
trash.components.named:SetName("Refuse")
trash.flies = trash:SpawnChild("flies")
trash.components.inventoryitem:SetOnDroppedFn(function() trash.flies = trash:SpawnChild("flies") end )
trash.components.inventoryitem:SetOnPickupFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end )
trash.components.inventoryitem:SetOnPutInInventoryFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end )
MakeSmallBurnable(trash)
MakeSmallPropagator(trash)
trash:AddTag("trash")
end
end , GetWorld() )
yellowmark:ListenForEvent( "dusktime", function()
for k = 1,math.random(5,7) do
local pt1 = yellowmark:GetPosition()
local trash = SpawnPrefab("cutgrass")
trash.Transform:SetPosition(pt1.x+(math.random(6)-math.random(6)), 0, pt1.z+(math.random(6)-math.random(6)))
trash.AnimState:SetBank("fertilizer")
trash.AnimState:SetBuild("fertilizer")
trash.AnimState:PlayAnimation("idle")
trash.Transform:SetScale(1.5, 1.5, 1.5)
trash.AnimState:SetMultColour(0/255,255/255,0/255,1)
trash.components.inventoryitem:ChangeImageName("fertilizer")
trash:RemoveComponent("stackable")
trash:RemoveComponent("edible")
trash:RemoveComponent("tradable")
trash:RemoveComponent("fuel")
trash:RemoveComponent("burnable")
trash:RemoveComponent("propagator")
trash:RemoveComponent("repairer")
trash:RemoveComponent("deployable")
trash:RemoveTag("cattoy")
trash:AddComponent("named")
trash.components.named:SetName("Refuse")
trash.flies = trash:SpawnChild("flies")
trash.components.inventoryitem:SetOnDroppedFn(function() trash.flies = trash:SpawnChild("flies") end )
trash.components.inventoryitem:SetOnPickupFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end )
trash.components.inventoryitem:SetOnPutInInventoryFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end )
MakeSmallBurnable(trash)
MakeSmallPropagator(trash)
trash:AddTag("trash")
end
end , GetWorld() )
yellowmark:AddTag("yellowmark")
local footbell = SpawnPrefab("cutgrass")
footbell.Transform:SetPosition(pt.x-5, 0, pt.z+5)
footbell.AnimState:SetBank("bell")
footbell.AnimState:SetBuild("bell")
footbell.AnimState:PlayAnimation("idle")
footbell.AnimState:SetMultColour(255/255,255/255,0/255,1)
footbell.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
footbell:RemoveComponent("stackable")
footbell:RemoveComponent("edible")
footbell:RemoveComponent("tradable")
footbell:RemoveComponent("fuel")
footbell:RemoveComponent("burnable")
footbell:RemoveComponent("propagator")
footbell:RemoveComponent("repairer")
footbell:RemoveComponent("inventoryitem")
footbell:RemoveComponent("deployable")
footbell:RemoveTag("cattoy")
footbell:AddComponent("named")
footbell.components.named:SetName("Bell")
footbell:AddTag("footbell")
footbell:AddComponent("workable")
footbell.components.workable:SetWorkAction(ACTIONS.HAMMER)
footbell.components.workable:SetWorkLeft(3)
footbell.components.workable:SetOnFinishCallback(function()
SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(footbell.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
local pos2 = Vector3(footbell.Transform:GetWorldPosition())
local ents2 = TheSim:FindEntities(pos2.x,pos2.y,pos2.z, 30)
for k,v in pairs(ents2) do
if v:HasTag("redmark") or v:HasTag("yellowmark") or v:HasTag("trash") or v:HasTag("footfoot") then
SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition())
v:Remove()
end
end
footbell:Remove()
end )
footbell.components.inspectable.getstatus = function()
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")
local foot = SpawnPrefab("cutgrass")
foot.Transform:SetPosition(pt.x, 10, pt.z)
foot.AnimState:SetBank("foot")
foot.AnimState:SetBuild("foot_build")
foot.AnimState:PlayAnimation("idle")
foot.Transform:SetFourFaced()
foot.Transform:SetRotation( 270 )
foot:RemoveComponent("stackable")
foot:RemoveComponent("edible")
foot:RemoveComponent("tradable")
foot:RemoveComponent("fuel")
foot:RemoveComponent("burnable")
foot:RemoveComponent("propagator")
foot:RemoveComponent("repairer")
foot:RemoveComponent("inventoryitem")
foot:RemoveComponent("deployable")
foot:RemoveTag("cattoy")
foot:AddTag("footfoot")
foot.falling = foot:DoPeriodicTask(.01, function() foot.Physics:SetMotorVelOverride(0,-55,0) end)
foot:DoTaskInTime(0.1, function()
if foot.falling then foot.falling:Cancel() foot.falling = nil end
GetPlayer().SoundEmitter:PlaySound("dontstarve_DLC001/creatures/glommer/foot_ground")
GetPlayer().components.playercontroller:ShakeCamera(foot, "FULL", 0.5, 0.05, 2, 40)
SpawnPrefab("collapse_big").Transform:SetPosition(pt.x, 0, pt.z)
local pos = Vector3(foot.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,0,pos.z, 5)
for k,v in pairs(ents) do
if v:HasTag("trash") and v.components.inventoryitem and not v.components.inventoryitem:IsHeld() then
SpawnPrefab("goldnugget").Transform:SetPosition(v.Transform:GetWorldPosition())
v:Remove()
end
if v:HasTag("player") then
v.AnimState:PlayAnimation("hit")
v.components.health:DoDelta(-5)
end
end
foot:DoTaskInTime(0.5, function()
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/stone_drop")
SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(foot.Transform:GetWorldPosition())
foot:Remove()
end )
end )
end
end
local function OnDeploy (inst, pt)
makegrinder(inst)
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("redmark") then
data.redmark = true
end
if inst:HasTag("yellowmark") then
data.yellowmark = true
end
if inst:HasTag("trash") then
data.trash = true
end
if inst:HasTag("footbell") then
data.footbell = true
end
if inst:HasTag("footfoot") then
data.footfoot = true
end
end
local function onload(inst, data)
if data and data.redmark then
makegrinder(inst)
inst:Remove()
end
if data and data.yellowmark then
inst:Remove()
end
if data and data.footbell then
inst:Remove()
end
if data and data.footfoot then
inst:Remove()
end
if data and data.trash then
inst.AnimState:SetBank("fertilizer")
inst.AnimState:SetBuild("fertilizer")
inst.AnimState:PlayAnimation("idle")
inst.Transform:SetScale(1.5, 1.5, 1.5)
inst.AnimState:SetMultColour(0/255,255/255,0/255,1)
inst.components.inventoryitem:ChangeImageName("fertilizer")
inst:RemoveComponent("stackable")
inst:RemoveComponent("edible")
inst:RemoveComponent("tradable")
inst:RemoveComponent("fuel")
inst:RemoveComponent("burnable")
inst:RemoveComponent("propagator")
inst:RemoveComponent("repairer")
inst:RemoveComponent("deployable")
inst:RemoveTag("cattoy")
inst:AddComponent("named")
inst.components.named:SetName("Refuse")
inst.flies = inst:SpawnChild("flies")
inst.components.inventoryitem:SetOnDroppedFn(function() inst.flies = inst:SpawnChild("flies") end )
inst.components.inventoryitem:SetOnPickupFn(function() if inst.flies then inst.flies:Remove() inst.flies = nil end end )
inst.components.inventoryitem:SetOnPutInInventoryFn(function() if inst.flies then inst.flies:Remove() inst.flies = nil end end )
MakeSmallBurnable(inst)
MakeSmallPropagator(inst)
inst:AddTag("trash")
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可在开阔的空地上,用草种环保公司(拿着1个草对地面点鼠标右键,如果拿着多个,则不会种出来),每天白天、傍晚、黑夜都会有垃圾被送到黄区,将它们搬到红区后,鼠标左键点地上的铃,可将垃圾粉碎,其中的贵金属(黄金)将留在地上,这就是环保公司的收入来源。粉碎垃圾时,不要站在红区附近,会被砸伤(减5点血)。黄区的垃圾如不及时清理,会越来越多,如果实在处理不过来,可以将垃圾烧掉,但那样就没有收入了。这是饥荒世界唯一一家环保公司,整块大陆的清洁就仰赖你了,承担起这肮脏而又崇高的事业吧。不想要环保公司了,用锤子砸掉铃即可
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏