第356页:生鲜售卖机
展开三零六.生鲜售卖机(用木板种生鲜售卖机,放入生鲜产品,每天清晨自动卖出换黄金)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\boards.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local vending = SpawnPrefab("boards")
vending.Transform:SetPosition(pt.x, pt.y, pt.z)
vending.AnimState:SetBank("icebox")
vending.AnimState:SetBuild("ice_box")
vending.AnimState:PlayAnimation("closed")
vending.Transform:SetScale(1.3, 1.3, 1.3)
vending.AnimState:SetMultColour(255/255,255/255,0/255,1)
vending:RemoveComponent("stackable")
vending:RemoveComponent("tradable")
vending:RemoveComponent("edible")
vending:RemoveComponent("inventoryitem")
vending:RemoveComponent("repairer")
vending:RemoveComponent("fuel")
vending:RemoveComponent("burnable")
vending:RemoveComponent("propagator")
vending:RemoveComponent("deployable")
vending.components.container.canbeopened = true
vending:DoPeriodicTask(2, function(vending)
vending.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
vending:DoTaskInTime(1, function() vending.AnimState:SetBloomEffectHandle("") end )
end )
vending:AddComponent("workable")
vending.components.workable:SetWorkAction(ACTIONS.HAMMER)
vending.components.workable:SetWorkLeft(3)
vending.components.workable:SetOnFinishCallback(function(vending)
SpawnPrefab("collapse_big").Transform:SetPosition(vending.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
vending:Remove()
end )
vending:ListenForEvent( "daytime", function()
local num_found = 0
for k,v in pairs(vending.components.container.slots) do
if v and v.prefab ~= "goldnugget" and v.prefab ~= "spoiled_food" then
num_found = num_found + v.components.stackable:StackSize()
v:Remove()
end
end
for k = 1, num_found do
local goldnugget = SpawnPrefab("goldnugget")
vending.components.container:GiveItem(goldnugget)
end
end, GetWorld())
vending:AddTag("vendings")
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("vendings") then
data.vendings = true
end
end
local function onload(inst, data)
if data and data.vendings then
inst.AnimState:SetBank("icebox")
inst.AnimState:SetBuild("ice_box")
inst.AnimState:PlayAnimation("closed")
inst.Transform:SetScale(1.3, 1.3, 1.3)
inst.AnimState:SetMultColour(255/255,255/255,0/255,1)
inst:RemoveComponent("stackable")
inst:RemoveComponent("tradable")
inst:RemoveComponent("edible")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("repairer")
inst:RemoveComponent("fuel")
inst:RemoveComponent("burnable")
inst:RemoveComponent("propagator")
inst:RemoveComponent("deployable")
inst.components.container.canbeopened = true
inst:DoPeriodicTask(2, function(inst)
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:DoTaskInTime(1, function() inst.AnimState:SetBloomEffectHandle("") end )
end )
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()
local num_found = 0
for k,v in pairs(inst.components.container.slots) do
if v and v.prefab ~= "goldnugget" and v.prefab ~= "spoiled_food" then
num_found = num_found + v.components.stackable:StackSize()
v:Remove()
end
end
for k = 1, num_found do
local goldnugget = SpawnPrefab("goldnugget")
inst.components.container:GiveItem(goldnugget)
end
end, GetWorld())
inst:AddTag("vendings")
end
end
inst.OnSave = onsave
inst.OnLoad = onload
local slotpos = {}
for y = 3, 0, -1 do
for x = 0, 2 do
table.insert(slotpos, Vector3(75*x-75*2+75, 75*y-75*2+75,0))
end
end
inst:AddComponent("container")
inst.components.container:SetNumSlots(#slotpos)
inst.components.container.widgetslotpos = slotpos
inst.components.container.widgetpos = Vector3(0,100,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 = function(inst, item, slot)
if item.prefab == "cave_banana" or item.prefab == "carrot" or item.prefab == "corn" or item.prefab == "pumpkin" or item.prefab == "eggplant" or item.prefab == "durian" or item.prefab == "pomegranate" or item.prefab == "dragonfruit" or item.prefab == "berries" or item.prefab == "cactus_meat" or item.prefab == "watermelon" or item.prefab == "acorn" or item.prefab == "meat" or item.prefab == "smallmeat" or item.prefab == "fish" or item.prefab == "eel" or item.prefab == "drumstick" or item.prefab == "bird_egg" or item.prefab == "froglegs" or item.prefab == "monstermeat" or item.prefab == "spoiled_food" or item.prefab == "butter" or item.prefab == "butterflywings" or item.prefab == "cutlichen" or item.prefab == "foliage" or item.prefab == "honey" or item.prefab == "lightbulb" or item.prefab == "red_cap" or item.prefab == "green_cap" or item.prefab == "blue_cap" or item.prefab == "petals" or item.prefab == "petals_evil" or item.prefab == "goatmilk" or item.prefab == "goldnugget" then
return true
end
return false
end
inst:AddTag("fridge")
即可用木板种生鲜售卖机,鼠标左键点售卖机,可打开格子,将蔬菜和肉类等生鲜产品放入格子中,每天清晨将全部卖出,每个售价1个黄金,结算的黄金在售卖机中领取。有了生鲜售卖机,不用发愁过剩的产品不好销售了。可以出售的生鲜产品包括香蕉、胡萝卜、玉米、南瓜、茄子、榴莲、石榴、火龙果、浆果、仙人掌肉、西瓜、橡果、大肉、小肉、鱼、鳗鱼、鸡腿、鸟蛋、蛙腿、疯肉、黄油、蝴蝶翅膀、苔藓、叶子、蜂蜜、荧光果、红蘑菇、绿蘑菇、蓝蘑菇、花瓣、噩梦花瓣。不想要生鲜售卖机了,用锤子砸掉即可。不要与“用木板种鱼人房”一同修改
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏