第198页:找矿蜗牛
展开一九八.找矿蜗牛(用蜗牛龟盔甲种找矿蜗牛,为你勘探新石矿)
用记事本打开游戏目录\data\scripts\prefabs\armor_snurtleshell.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local snail = SpawnPrefab("armorsnurtleshell")
snail.Transform:SetPosition(pt.x, pt.y, pt.z)
snail.AnimState:SetBank("slurtle")
snail.AnimState:SetBuild("slurtle")
snail.AnimState:PlayAnimation("idle", true)
snail.Transform:SetFourFaced()
local sound = snail.entity:AddSoundEmitter()
local brain = require "brains/leifbrain"
snail:SetBrain(brain)
snail:AddComponent("locomotor")
snail.components.locomotor.walkspeed = 7
snail:SetStateGraph("SGslurtle")
local minimap = snail.entity:AddMiniMapEntity()
minimap:SetIcon( "slurtle_den.png" )
snail.components.inventoryitem:ChangeImageName("armorsnurtleshell")
snail:RemoveComponent("armor")
snail:RemoveComponent("equippable")
snail:RemoveComponent("useableitem")
snail:RemoveComponent("deployable")
snail:RemoveTag("shell")
snail:RemoveComponent("inventoryitem")
snail:AddComponent("combat")
snail:AddComponent("health")
snail.components.health:SetMaxHealth(1000)
snail.components.health:SetInvincible(true)
snail.components.health.nofadeout = true
snail.task = snail:DoPeriodicTask(math.random(8,12), function(snail)
local pt1 = snail:GetPosition()
local rocks = {"rock1","rock2","rock_flintless","rock_ice"}
local rock = rocks[math.random(#rocks)]
local newrock = SpawnPrefab(rock)
newrock.Transform:SetPosition(pt1.x, 0, pt1.z)
newrock.Physics:SetActive(false)
newrock:DoTaskInTime(3, function(newrock) newrock.Physics:SetActive(true) end )
SpawnPrefab("splash_ocean").Transform:SetPosition(pt1.x, 0, pt1.z)
snail.SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
GetPlayer().components.playercontroller:ShakeCamera(snail, "FULL", 0.2, 0.02, .25, 40)
end )
snail:AddComponent("inventoryitem")
snail.components.inventoryitem:SetOnPutInInventoryFn(function(snail)
snail:RemoveTag("sports")
snail.components.locomotor:Stop()
snail:SetBrain(nil)
if snail.task then snail.task:Cancel() snail.task = nil end
end )
snail.components.inventoryitem:SetOnDroppedFn(function(snail)
snail:AddTag("sports")
local brain = require "brains/leifbrain"
snail:SetBrain(brain)
snail:RestartBrain()
snail.task = snail:DoPeriodicTask(math.random(8,12), function(snail)
local pt1 = snail:GetPosition()
local rocks = {"rock1","rock2","rock_flintless","rock_ice"}
local rock = rocks[math.random(#rocks)]
local newrock = SpawnPrefab(rock)
newrock.Transform:SetPosition(pt1.x, 0, pt1.z)
newrock.Physics:SetActive(false)
newrock:DoTaskInTime(3, function(newrock) newrock.Physics:SetActive(true) end )
SpawnPrefab("splash_ocean").Transform:SetPosition(pt1.x, 0, pt1.z)
snail.SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
GetPlayer().components.playercontroller:ShakeCamera(snail, "FULL", 0.2, 0.02, .25, 40)
end )
end )
snail:AddTag("sports")
snail:AddTag("companion")
snail:AddTag("snails")
inst:Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("snails") then
data.snails = true
end
if inst:HasTag("sports") then
data.sports = true
end
end
local function onload(inst, data)
if data and data.snails then
inst.AnimState:SetBank("slurtle")
inst.AnimState:SetBuild("slurtle")
inst.AnimState:PlayAnimation("idle", true)
inst.Transform:SetFourFaced()
local sound = inst.entity:AddSoundEmitter()
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 7
inst:SetStateGraph("SGslurtle")
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon( "slurtle_den.png" )
inst.components.inventoryitem:ChangeImageName("armorsnurtleshell")
inst:RemoveComponent("armor")
inst:RemoveComponent("equippable")
inst:RemoveComponent("useableitem")
inst:RemoveComponent("deployable")
inst:RemoveTag("shell")
inst:RemoveComponent("inventoryitem")
inst:AddComponent("combat")
inst:AddComponent("health")
inst.components.health:SetMaxHealth(1000)
inst.components.health:SetInvincible(true)
inst.components.health.nofadeout = true
inst:AddComponent("inventoryitem")
inst.components.inventoryitem:SetOnPutInInventoryFn(function(inst)
inst:RemoveTag("sports")
inst.components.locomotor:Stop()
inst:SetBrain(nil)
if inst.task then inst.task:Cancel() inst.task = nil end
end )
inst.components.inventoryitem:SetOnDroppedFn(function(inst)
inst:AddTag("sports")
local brain = require "brains/leifbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.task = inst:DoPeriodicTask(math.random(8,12), function(inst)
local pt1 = inst:GetPosition()
local rocks = {"rock1","rock2","rock_flintless","rock_ice"}
local rock = rocks[math.random(#rocks)]
local newrock = SpawnPrefab(rock)
newrock.Transform:SetPosition(pt1.x, 0, pt1.z)
newrock.Physics:SetActive(false)
newrock:DoTaskInTime(3, function(newrock) newrock.Physics:SetActive(true) end )
SpawnPrefab("splash_ocean").Transform:SetPosition(pt1.x, 0, pt1.z)
inst.SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.2, 0.02, .25, 40)
end )
end )
inst:AddTag("companion")
inst:AddTag("snails")
end
if data and data.sports then
local brain = require "brains/leifbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.task = inst:DoPeriodicTask(math.random(8,12), function(inst)
local pt1 = inst:GetPosition()
local rocks = {"rock1","rock2","rock_flintless","rock_ice"}
local rock = rocks[math.random(#rocks)]
local newrock = SpawnPrefab(rock)
newrock.Transform:SetPosition(pt1.x, 0, pt1.z)
newrock.Physics:SetActive(false)
newrock:DoTaskInTime(3, function(newrock) newrock.Physics:SetActive(true) end )
SpawnPrefab("splash_ocean").Transform:SetPosition(pt1.x, 0, pt1.z)
inst.SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.2, 0.02, .25, 40)
end )
inst:AddTag("sports")
local pt2 = GetPlayer():GetPosition()
inst.Transform:SetPosition(pt2.x+1, 0, pt2.z+1)
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可用蜗牛龟盔甲种找矿蜗牛,鼠标左键点蜗牛,可将其放入物品栏(显示为蜗牛龟盔甲的图标)。在空旷的地上放下找矿蜗牛,它会为你勘探出新的石矿,石头从此成为可再生资源。找矿蜗牛只会专注于找矿,不会跟随你,别把它弄丢了,如果真找不到了,存档退出后再读档,它会出现在你身边。不想要找矿蜗牛时,在物品栏中对其按鼠标右键即可。蜗牛龟盔甲可在地下一层打蜗牛龟时获得,如果修改了“巨型超市”,也可以花9-11个黄金购买
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏