第269页:公车站
展开二六九.公车站(用草席卷种公车站,买票坐到下一站)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\bedroll_straw.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
inst.kind = ""
inst.soundpath = "dontstarve/creatures/rook/"
inst.effortsound = "dontstarve/creatures/rook/steam"
local function OnDeploy (inst, pt)
local busstation = SpawnPrefab("bedroll_straw")
busstation.Transform:SetPosition(pt.x, pt.y, pt.z)
busstation.AnimState:SetBank("sign_home")
busstation.AnimState:SetBuild("sign_home")
busstation.AnimState:PlayAnimation("idle")
busstation.Transform:SetScale(1.5, 1.5, 1.5)
busstation.AnimState:SetMultColour(255/255,105/255,0/255,0.8)
local minimap = busstation.entity:AddMiniMapEntity()
minimap:SetIcon( "sign.png" )
busstation:RemoveComponent("inventoryitem")
busstation:RemoveComponent("stackable")
busstation:RemoveComponent("fuel")
busstation:RemoveComponent("sleepingbag")
busstation:RemoveComponent("burnable")
busstation:RemoveComponent("propagator")
busstation:RemoveComponent("deployable")
busstation:AddTag("busstation")
busstation:AddComponent("workable")
busstation.components.workable:SetWorkAction(ACTIONS.HAMMER)
busstation.components.workable:SetWorkLeft(3)
busstation.components.workable:SetOnFinishCallback(function(busstation)
SpawnPrefab("collapse_big").Transform:SetPosition(busstation.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
busstation:Remove()
end )
busstation:AddComponent("trader")
busstation.components.trader:SetAcceptTest(function(busstation, item)
if item.prefab == "goldnugget" then
return true
end
return false
end )
busstation.components.trader.onaccept = function(busstation, giver, item)
busstation:AddTag("startingpoint")
local target = FindEntity(busstation, 3000, function(guy)
return guy:HasTag("busstation") and not guy:HasTag("startingpoint")
end )
if target then
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")
GetPlayer().components.playercontroller:Enable(false)
local pt1 = busstation:GetPosition()
local bus = SpawnPrefab("bedroll_straw")
bus.Transform:SetPosition(pt1.x+15+2, 0, pt1.z-15+2)
bus.AnimState:SetBank("rook")
bus.AnimState:SetBuild("rook_build")
bus.AnimState:PlayAnimation("idle", true)
bus.Transform:SetFourFaced()
bus.Transform:SetScale(1.2, 1.2, 1.2)
bus.AnimState:SetMultColour(255/255,105/255,0/255,1)
local sound = bus.entity:AddSoundEmitter()
bus:RemoveComponent("inventoryitem")
bus:RemoveComponent("stackable")
bus:RemoveComponent("fuel")
bus:RemoveComponent("sleepingbag")
bus:RemoveComponent("burnable")
bus:RemoveComponent("propagator")
bus:RemoveComponent("deployable")
bus:AddTag("goodbye")
bus:AddComponent("locomotor")
bus.components.locomotor.walkspeed = 5
bus.components.locomotor.runspeed = 10
bus:SetStateGraph("SGrook")
bus:AddComponent("health")
bus.components.health:SetMaxHealth(1000)
bus.components.health:SetInvincible(true)
bus:AddComponent("combat")
bus:AddComponent("follower")
bus:AddComponent("knownlocations")
bus:DoTaskInTime(1, function()
bus.components.locomotor:GoToPoint(Point(pt1.x+2, 0, pt1.z+2))
end )
bus:DoTaskInTime(9, function()
GetPlayer():Hide()
GetPlayer().components.health:SetInvincible(true)
local shadow = GetPlayer().entity:AddDynamicShadow()
shadow:SetSize( 0, 0 )
bus.components.locomotor:GoToPoint(Point(pt1.x-15+2, 0, pt1.z+15+2))
end )
GetPlayer():DoTaskInTime(15, function()
TheFrontEnd:Fade(false,1)
bus:Remove()
GetPlayer().Transform:SetPosition(target.Transform:GetWorldPosition())
GetPlayer():DoTaskInTime(2, function()
TheFrontEnd:Fade(true,1)
busstation:RemoveTag("startingpoint")
GetPlayer():Show()
GetPlayer().components.health:SetInvincible(false)
GetPlayer().components.playercontroller:Enable(true)
local shadow = GetPlayer().entity:AddDynamicShadow()
shadow:SetSize( 1.3, .6 )
end )
end )
else
SpawnPrefab("goldnugget").Transform:SetPosition(GetPlayer().Transform:GetWorldPosition())
busstation:RemoveTag("startingpoint")
end
end
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("goodbye") then
data.goodbye = true
end
if inst:HasTag("busstation") then
data.busstation = true
end
end
local function onload(inst, data)
if data and data.goodbye then
inst:Remove()
end
if data and data.busstation then
inst.AnimState:SetBank("sign_home")
inst.AnimState:SetBuild("sign_home")
inst.AnimState:PlayAnimation("idle")
inst.Transform:SetScale(1.5, 1.5, 1.5)
inst.AnimState:SetMultColour(255/255,105/255,0/255,0.8)
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon( "sign.png" )
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("stackable")
inst:RemoveComponent("fuel")
inst:RemoveComponent("sleepingbag")
inst:RemoveComponent("burnable")
inst:RemoveComponent("propagator")
inst:RemoveComponent("deployable")
inst:AddTag("busstation")
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:AddComponent("trader")
inst.components.trader:SetAcceptTest(function(inst, item)
if item.prefab == "goldnugget" then
return true
end
return false
end )
inst.components.trader.onaccept = function(inst, giver, item)
inst:AddTag("startingpoint")
local target = FindEntity(inst, 3000, function(guy)
return guy:HasTag("busstation") and not guy:HasTag("startingpoint")
end )
if target then
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")
GetPlayer().components.playercontroller:Enable(false)
local pt1 = inst:GetPosition()
local bus = SpawnPrefab("bedroll_straw")
bus.Transform:SetPosition(pt1.x+15+2, 0, pt1.z-15+2)
bus.AnimState:SetBank("rook")
bus.AnimState:SetBuild("rook_build")
bus.AnimState:PlayAnimation("idle", true)
bus.Transform:SetFourFaced()
bus.Transform:SetScale(1.2, 1.2, 1.2)
bus.AnimState:SetMultColour(255/255,105/255,0/255,1)
local sound = bus.entity:AddSoundEmitter()
bus:RemoveComponent("inventoryitem")
bus:RemoveComponent("stackable")
bus:RemoveComponent("fuel")
bus:RemoveComponent("sleepingbag")
bus:RemoveComponent("burnable")
bus:RemoveComponent("propagator")
bus:RemoveComponent("deployable")
bus:AddTag("goodbye")
bus:AddComponent("locomotor")
bus.components.locomotor.walkspeed = 5
bus.components.locomotor.runspeed = 10
bus:SetStateGraph("SGrook")
bus:AddComponent("health")
bus.components.health:SetMaxHealth(1000)
bus.components.health:SetInvincible(true)
bus:AddComponent("combat")
bus:AddComponent("follower")
bus:AddComponent("knownlocations")
bus:DoTaskInTime(1, function()
bus.components.locomotor:GoToPoint(Point(pt1.x+2, 0, pt1.z+2))
end )
bus:DoTaskInTime(9, function()
GetPlayer():Hide()
GetPlayer().components.health:SetInvincible(true)
local shadow = GetPlayer().entity:AddDynamicShadow()
shadow:SetSize( 0, 0 )
bus.components.locomotor:GoToPoint(Point(pt1.x-15+2, 0, pt1.z+15+2))
end )
GetPlayer():DoTaskInTime(15, function()
TheFrontEnd:Fade(false,1)
bus:Remove()
GetPlayer().Transform:SetPosition(target.Transform:GetWorldPosition())
GetPlayer():DoTaskInTime(2, function()
TheFrontEnd:Fade(true,1)
inst:RemoveTag("startingpoint")
GetPlayer():Show()
GetPlayer().components.health:SetInvincible(false)
GetPlayer().components.playercontroller:Enable(true)
local shadow = GetPlayer().entity:AddDynamicShadow()
shadow:SetSize( 1.3, .6 )
end )
end )
else
SpawnPrefab("goldnugget").Transform:SetPosition(GetPlayer().Transform:GetWorldPosition())
inst:RemoveTag("startingpoint")
end
end
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可在地图的任意两个地点,用草席卷种公车站,给站牌1个黄金(拿着黄金对站牌点鼠标左键),会来公共汽车送你到另一个站牌,方便在两点间快速移动。公车站须种在空旷的地方,以便公共汽车行驶。如果只种了一个公车站,则站牌不会接受你的黄金。公车站在小地图上显示为路牌的图标。不想要公车站时,用锤子砸掉即可。草席卷在生存选项下(画着绳套)下,用6个草、1个绳子制造
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏