第260页:奶报箱
展开二六零.奶报箱(用苔藓种奶报箱,放入黄金,每天清晨送来报纸和5瓶牛奶,读报纸可补脑)
用记事本打开游戏目录\data\scripts\prefabs\cutlichen.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function itemtest(inst, item, slot)
if item.prefab == "goldnugget" or item.prefab == "goatmilk" or item.prefab == "cutlichen" then
return true
end
return false
end
local slotpos = { Vector3(0,32+4,0), Vector3(0,-(32+4),0), Vector3(0,-(64+32+8+4),0)}
local widgetbuttoninfo = {
text = "Buy",
position = Vector3(0, 95, 0),
fn = function(inst)
if inst:HasTag("milkcartons") and inst.components.container:Has("goldnugget", 1) then
inst.components.container:ConsumeByName("goldnugget", 1)
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
local newspaper = SpawnPrefab("cutlichen")
newspaper.AnimState:SetBank("blueprint")
newspaper.AnimState:SetBuild("blueprint")
newspaper.AnimState:PlayAnimation("idle")
newspaper.components.inventoryitem:ChangeImageName("blueprint")
newspaper.Transform:SetScale(1.2, 1.2, 1.2)
newspaper:AddComponent("named")
newspaper.components.named:SetName("Newspaper")
newspaper:RemoveComponent("stackable")
newspaper:RemoveComponent("edible")
newspaper:RemoveComponent("perishable")
newspaper:RemoveComponent("container")
newspaper:RemoveComponent("deployable")
newspaper.components.inspectable.getstatus = function(newspaper)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_clothing")
GetPlayer().components.sanity:DoDelta(GetPlayer().components.sanity.max)
newspaper:Remove()
end
newspaper:AddTag("newspapers")
GetPlayer().components.inventory:GiveItem(newspaper)
end
end }
local function OnDeploy (inst, pt)
local milkcarton = SpawnPrefab("cutlichen")
milkcarton.Transform:SetPosition(pt.x, pt.y, pt.z)
milkcarton.AnimState:SetBank("icebox")
milkcarton.AnimState:SetBuild("ice_box")
milkcarton.AnimState:PlayAnimation("closed")
milkcarton.Transform:SetScale(0.6, 0.6, 0.6)
milkcarton.AnimState:SetMultColour(0/255,185/255,255/255,1)
milkcarton:AddComponent("named")
milkcarton.components.named:SetName("Milk carton")
milkcarton:RemoveComponent("stackable")
milkcarton:RemoveComponent("inventoryitem")
milkcarton:RemoveComponent("edible")
milkcarton:RemoveComponent("perishable")
milkcarton:RemoveComponent("deployable")
milkcarton.components.container.canbeopened = true
milkcarton:AddComponent("workable")
milkcarton.components.workable:SetWorkAction(ACTIONS.HAMMER)
milkcarton.components.workable:SetWorkLeft(3)
milkcarton.components.workable:SetOnFinishCallback(function(milkcarton)
SpawnPrefab("collapse_big").Transform:SetPosition(milkcarton.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
milkcarton:Remove()
end )
milkcarton:ListenForEvent( "daytime", function()
if milkcarton.components.container:Has("goldnugget", 5) then
milkcarton.components.container:ConsumeByName("goldnugget", 5)
for k = 1, 5 do
local goatmilk = SpawnPrefab("goatmilk")
milkcarton.components.container:GiveItem(goatmilk)
end
local newspaper = SpawnPrefab("cutlichen")
newspaper.AnimState:SetBank("blueprint")
newspaper.AnimState:SetBuild("blueprint")
newspaper.AnimState:PlayAnimation("idle")
newspaper.components.inventoryitem:ChangeImageName("blueprint")
newspaper.Transform:SetScale(1.2, 1.2, 1.2)
newspaper:AddComponent("named")
newspaper.components.named:SetName("Newspaper")
newspaper:RemoveComponent("stackable")
newspaper:RemoveComponent("edible")
newspaper:RemoveComponent("perishable")
newspaper:RemoveComponent("container")
newspaper:RemoveComponent("deployable")
newspaper.components.inspectable.getstatus = function(newspaper)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_clothing")
GetPlayer().components.sanity:DoDelta(GetPlayer().components.sanity.max)
newspaper:Remove()
end
newspaper:AddTag("newspapers")
milkcarton.components.container:GiveItem(newspaper)
end
end, GetWorld())
milkcarton:AddTag("milkcartons")
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
inst.components.deployable.min_spacing = 1
inst:AddComponent("container")
inst.components.container.widgetbuttoninfo = widgetbuttoninfo
inst.components.container:SetNumSlots(#slotpos)
inst.components.container.widgetslotpos = slotpos
inst.components.container.widgetpos = Vector3(0,150,0)
inst.components.container.side_align_tip = 160
inst.components.container.canbeopened = false
inst.components.container.onopenfn = function(inst) inst.AnimState:PlayAnimation("open") GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") end
inst.components.container.onclosefn = function(inst) inst.AnimState:PlayAnimation("close") GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") end
inst.components.container.itemtestfn = itemtest
inst:AddTag("fridge")
local function onsave(inst, data)
if inst:HasTag("milkcartons") then
data.milkcartons = true
end
if inst:HasTag("newspapers") then
data.newspapers = true
end
end
local function onload(inst, data)
if data and data.milkcartons then
inst.AnimState:SetBank("icebox")
inst.AnimState:SetBuild("ice_box")
inst.AnimState:PlayAnimation("closed")
inst.Transform:SetScale(0.6, 0.6, 0.6)
inst.AnimState:SetMultColour(0/255,185/255,255/255,1)
inst:AddComponent("named")
inst.components.named:SetName("Milk carton")
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst.components.container.canbeopened = true
inst:AddComponent("workable")
inst.components.workable:SetWorkAction(ACTIONS.HAMMER)
inst.components.workable:SetWorkLeft(3)
inst.components.workable:SetOnFinishCallback(function(inst)
SpawnPrefab("collapse_big").Transform:SetPosition(inst.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
inst:Remove()
end )
inst:ListenForEvent( "daytime", function()
if inst.components.container:Has("goldnugget", 5) then
inst.components.container:ConsumeByName("goldnugget", 5)
for k = 1, 5 do
local goatmilk = SpawnPrefab("goatmilk")
inst.components.container:GiveItem(goatmilk)
end
local newspaper = SpawnPrefab("cutlichen")
newspaper.AnimState:SetBank("blueprint")
newspaper.AnimState:SetBuild("blueprint")
newspaper.AnimState:PlayAnimation("idle")
newspaper.components.inventoryitem:ChangeImageName("blueprint")
newspaper.Transform:SetScale(1.2, 1.2, 1.2)
newspaper:AddComponent("named")
newspaper.components.named:SetName("Newspaper")
newspaper:RemoveComponent("stackable")
newspaper:RemoveComponent("edible")
newspaper:RemoveComponent("perishable")
newspaper:RemoveComponent("container")
newspaper:RemoveComponent("deployable")
newspaper.components.inspectable.getstatus = function(newspaper)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_clothing")
GetPlayer().components.sanity:DoDelta(GetPlayer().components.sanity.max)
newspaper:Remove()
end
newspaper:AddTag("newspapers")
inst.components.container:GiveItem(newspaper)
end
end, GetWorld())
inst:AddTag("milkcartons")
end
if data and data.newspapers then
inst.AnimState:SetBank("blueprint")
inst.AnimState:SetBuild("blueprint")
inst.AnimState:PlayAnimation("idle")
inst.components.inventoryitem:ChangeImageName("blueprint")
inst.Transform:SetScale(1.2, 1.2, 1.2)
inst:AddComponent("named")
inst.components.named:SetName("Newspaper")
inst:RemoveComponent("stackable")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("container")
inst:RemoveComponent("deployable")
inst.components.inspectable.getstatus = function(inst)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_clothing")
GetPlayer().components.sanity:DoDelta(GetPlayer().components.sanity.max)
inst:Remove()
end
inst:AddTag("newspapers")
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可用苔藓种奶报箱,鼠标左键点奶报箱可打开格子,在格子中放入黄金(订奶预付款,最少5个黄金),第二天清晨将送来5瓶牛奶,并免费赠送一份报纸,同时扣除5个黄金。将报纸放入物品栏,对其点鼠标右键可读报,将补满脑值。如果格子中有黄金,点格子上方的“Buy”按钮,可以额外购买报纸,每份1个黄金。如果每天想多订牛奶和报纸,就多种几个奶报箱吧。不想要奶报箱了,用锤子砸毁即可。苔藓可在洞穴中采到。不要与“用苔藓种苔藓(苔藓可移植)”一同修改
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏