饥荒 全人物解锁及主角自动回血等实用修改教程

《饥荒》这款生存游戏,很多玩家都想觉得游戏有些难,就想修改一些内容,比如解锁全人物,主角自动回血,主角不会饿之类的,下面小编为大家奉上最全的修改教程,内容简单易懂,希望各位玩家喜欢。目录

饥荒 全人物解锁及主角自动回血等实用修改教程

一八八.口袋蜂箱(用噩梦燃料种口袋蜂箱,放在地上飞出杀人蜂攻击敌人)

  用记事本打开游戏目录\data\scripts\prefabs\nightmarefuel.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:

  local killersounds =

  {

  takeoff = "dontstarve/bee/killerbee_takeoff",

  attack = "dontstarve/bee/killerbee_attack",

  buzz = "dontstarve/bee/killerbee_fly_LP",

  hit = "dontstarve/bee/killerbee_hurt",

  death = "dontstarve/bee/killerbee_death",

  }

  local function OnDeploy (inst, pt)

  if GetPlayer().components.inventory:Has("goldnugget", 500) then

  GetPlayer().components.inventory:ConsumeByName("goldnugget", 500)

  local box = SpawnPrefab("nightmarefuel")

  box.Transform:SetPosition(pt.x, pt.y, pt.z)

  box.AnimState:SetBank("bee_box")

  box.AnimState:SetBuild("bee_box")

  box.AnimState:PlayAnimation("idle")

  box.AnimState:SetMultColour(255/255,0/255,0/255,1)

  box.Transform:SetScale(0.5, 0.5, 0.5)

  local sound = box.entity:AddSoundEmitter()

  local minimap = box.entity:AddMiniMapEntity()

  minimap:SetIcon( "beebox.png" )

  box.components.inventoryitem:ChangeImageName("beebox")

  box:RemoveComponent("stackable")

  box:RemoveComponent("fuel")

  box:RemoveComponent("deployable")

  box:AddComponent("workable")

  box.components.workable:SetWorkAction(ACTIONS.HAMMER)

  box.components.workable:SetWorkLeft(3)

  box.components.workable:SetOnFinishCallback(function(box)

  SpawnPrefab("collapse_small").Transform:SetPosition(box.Transform:GetWorldPosition())

  box.SoundEmitter:PlaySound("dontstarve/common/destroy_wood")

  box:Remove()

  end )

  box.task = box:DoPeriodicTask(2, function(box)

  box.AnimState:SetBloomEffectHandle("shaders/anim.ksh")

  box:DoTaskInTime(1, function() box.AnimState:SetBloomEffectHandle("") end )

  local pos = Vector3(box.Transform:GetWorldPosition())

  local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 30)

  for k,v in pairs(ents) do

  if v.components.health and not v.components.health:IsDead() and not v:HasTag("player") then

  if v.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == v or v:HasTag("monster") or v.prefab == "beefalo" or v.prefab == "bunnyman" or v.prefab == "pigman" or v.prefab == "pigguard" or v.prefab == "merm" or v.prefab == "monkey" or v.prefab == "tallbird" or v.prefab == "walrus" or v.prefab == "little_walrus" or v.prefab == "wasphive" then

  local pt1 = box:GetPosition()

  local killerbee = SpawnPrefab("nightmarefuel")

  killerbee.Transform:SetPosition(pt1.x, pt1.y, pt1.z)

  killerbee.AnimState:SetBank("bee")

  killerbee.AnimState:SetBuild("bee_angry_build")

  killerbee.AnimState:PlayAnimation("idle")

  killerbee.AnimState:SetRayTestOnBB(true)

  killerbee.AnimState:SetMultColour(255/255,255/255,255/255,1)

  killerbee.entity:AddSoundEmitter()

  killerbee.entity:AddLightWatcher()

  killerbee.entity:AddDynamicShadow()

  killerbee.DynamicShadow:SetSize( .8, .5 )

  killerbee.Transform:SetFourFaced()

  MakeCharacterPhysics(killerbee, 1, .3)

  killerbee.Physics:SetCollisionGroup(COLLISION.FLYERS)

  killerbee.Physics:ClearCollisionMask()

  killerbee.Physics:CollidesWith(COLLISION.WORLD)

  killerbee.Physics:CollidesWith(COLLISION.FLYERS)

  killerbee:AddTag("killerbee")

  killerbee:AddComponent("locomotor")

  killerbee.components.locomotor:EnableGroundSpeedMultiplier(false)

  killerbee.components.locomotor:SetTriggersCreep(false)

  killerbee:SetStateGraph("SGbee")

  killerbee:AddComponent("health")

  killerbee.components.health:SetMaxHealth(200)

  killerbee:AddComponent("combat")

  killerbee.components.combat:SetTarget(v)

  killerbee.components.combat:SetDefaultDamage(20)

  killerbee.components.combat:SetAttackPeriod(0.1)

  killerbee.components.combat.hiteffectsymbol = "body"

  killerbee.components.combat:SetRetargetFunction(1, function(killerbee)

  if not killerbee.components.health:IsDead() then

  return FindEntity(box, 30, function(guy)

  if guy.components.health and not guy.components.health:IsDead() and not guy:HasTag("player") then

  return guy.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == guy or guy:HasTag("monster") or guy.prefab == "beefalo" or guy.prefab == "bunnyman" or guy.prefab == "pigman" or guy.prefab == "pigguard" or guy.prefab == "merm" or guy.prefab == "monkey" or guy.prefab == "tallbird" or guy.prefab == "walrus" or guy.prefab == "little_walrus" or guy.prefab == "wasphive"

  end

  end)

  end

  end )

  local killerbrain = require("brains/killerbeebrain")

  killerbee:SetBrain(killerbrain)

  killerbee.sounds = killersounds

  killerbee:AddComponent("knownlocations")

  killerbee:ListenForEvent("attacked", function(killerbee, data) killerbee.components.combat:SetTarget(data.attacker) end )

  killerbee:RemoveComponent("stackable")

  killerbee:RemoveComponent("fuel")

  killerbee:RemoveComponent("deployable")

  killerbee:RemoveComponent("inventoryitem")

  killerbee:DoTaskInTime(30, function() killerbee:Remove() end )

  v:ListenForEvent("death", function() killerbee:Remove() end )

  end

  end

  end

  end )

  box.components.inventoryitem:SetOnPutInInventoryFn(function(box)

  box:RemoveTag("doings")

  if box.task then box.task:Cancel() box.task = nil end

  local pos = Vector3(box.Transform:GetWorldPosition())

  local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 3000)

  for k,v in pairs(ents) do

  if v:HasTag("killerbee") then

  v:Remove()

  end

  end

  end )

  box.components.inventoryitem:SetOnDroppedFn(function(box)

  box:AddTag("doings")

  box.task = box:DoPeriodicTask(2, function(box)

  box.AnimState:SetBloomEffectHandle("shaders/anim.ksh")

  box:DoTaskInTime(1, function() box.AnimState:SetBloomEffectHandle("") end )

  local pos = Vector3(box.Transform:GetWorldPosition())

  local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 30)

  for k,v in pairs(ents) do

  if v.components.health and not v.components.health:IsDead() and not v:HasTag("player") then

  if v.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == v or v:HasTag("monster") or v.prefab == "beefalo" or v.prefab == "bunnyman" or v.prefab == "pigman" or v.prefab == "pigguard" or v.prefab == "merm" or v.prefab == "monkey" or v.prefab == "tallbird" or v.prefab == "walrus" or v.prefab == "little_walrus" or v.prefab == "wasphive" then

  local pt1 = box:GetPosition()

  local killerbee = SpawnPrefab("nightmarefuel")

  killerbee.Transform:SetPosition(pt1.x, pt1.y, pt1.z)

  killerbee.AnimState:SetBank("bee")

  killerbee.AnimState:SetBuild("bee_angry_build")

  killerbee.AnimState:PlayAnimation("idle")

  killerbee.AnimState:SetRayTestOnBB(true)

  killerbee.AnimState:SetMultColour(255/255,255/255,255/255,1)

  killerbee.entity:AddSoundEmitter()

  killerbee.entity:AddLightWatcher()

  killerbee.entity:AddDynamicShadow()

  killerbee.DynamicShadow:SetSize( .8, .5 )

  killerbee.Transform:SetFourFaced()

  MakeCharacterPhysics(killerbee, 1, .3)

  killerbee.Physics:SetCollisionGroup(COLLISION.FLYERS)

  killerbee.Physics:ClearCollisionMask()

  killerbee.Physics:CollidesWith(COLLISION.WORLD)

  killerbee.Physics:CollidesWith(COLLISION.FLYERS)

  killerbee:AddTag("killerbee")

  killerbee:AddComponent("locomotor")

  killerbee.components.locomotor:EnableGroundSpeedMultiplier(false)

  killerbee.components.locomotor:SetTriggersCreep(false)

  killerbee:SetStateGraph("SGbee")

  killerbee:AddComponent("health")

  killerbee.components.health:SetMaxHealth(200)

  killerbee:AddComponent("combat")

  killerbee.components.combat:SetTarget(v)

  killerbee.components.combat:SetDefaultDamage(20)

  killerbee.components.combat:SetAttackPeriod(0.1)

  killerbee.components.combat.hiteffectsymbol = "body"

  killerbee.components.combat:SetRetargetFunction(1, function(killerbee)

  if not killerbee.components.health:IsDead() then

  return FindEntity(box, 30, function(guy)

  if guy.components.health and not guy.components.health:IsDead() and not guy:HasTag("player") then

  return guy.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == guy or guy:HasTag("monster") or guy.prefab == "beefalo" or guy.prefab == "bunnyman" or guy.prefab == "pigman" or guy.prefab == "pigguard" or guy.prefab == "merm" or guy.prefab == "monkey" or guy.prefab == "tallbird" or guy.prefab == "walrus" or guy.prefab == "little_walrus" or guy.prefab == "wasphive"

  end

  end)

  end

  end )

  local killerbrain = require("brains/killerbeebrain")

  killerbee:SetBrain(killerbrain)

  killerbee.sounds = killersounds

  killerbee:AddComponent("knownlocations")

  killerbee:ListenForEvent("attacked", function(killerbee, data) killerbee.components.combat:SetTarget(data.attacker) end )

  killerbee:RemoveComponent("stackable")

  killerbee:RemoveComponent("fuel")

  killerbee:RemoveComponent("deployable")

  killerbee:RemoveComponent("inventoryitem")

  killerbee:DoTaskInTime(30, function() killerbee:Remove() end )

  v:ListenForEvent("death", function() killerbee:Remove() end )

  end

  end

  end

  end )

  end )

  box:AddTag("doings")

  box:AddTag("boxs")

  end

  inst.components.stackable:Get():Remove()

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("boxs") then

  data.boxs = true

  end

  if inst:HasTag("doings") then

  data.doings = true

  end

  if inst:HasTag("killerbee") then

  data.killerbee = true

  end

  end

  local function onload(inst, data)

  if data and data.boxs then

  inst.AnimState:SetBank("bee_box")

  inst.AnimState:SetBuild("bee_box")

  inst.AnimState:PlayAnimation("idle")

  inst.AnimState:SetMultColour(255/255,0/255,0/255,1)

  inst.Transform:SetScale(0.5, 0.5, 0.5)

  local sound = inst.entity:AddSoundEmitter()

  local minimap = inst.entity:AddMiniMapEntity()

  minimap:SetIcon( "beebox.png" )

  inst.components.inventoryitem:ChangeImageName("beebox")

  inst:RemoveComponent("stackable")

  inst:RemoveComponent("fuel")

  inst:RemoveComponent("deployable")

  inst:AddComponent("workable")

  inst.components.workable:SetWorkAction(ACTIONS.HAMMER)

  inst.components.workable:SetWorkLeft(3)

  inst.components.workable:SetOnFinishCallback(function(inst)

  SpawnPrefab("collapse_small").Transform:SetPosition(inst.Transform:GetWorldPosition())

  inst.SoundEmitter:PlaySound("dontstarve/common/destroy_wood")

  inst:Remove()

  end )

  inst.components.inventoryitem:SetOnPutInInventoryFn(function(inst)

  inst:RemoveTag("doings")

  if inst.task then inst.task:Cancel() inst.task = nil end

  local pos = Vector3(inst.Transform:GetWorldPosition())

  local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 3000)

  for k,v in pairs(ents) do

  if v:HasTag("killerbee") then

  v:Remove()

  end

  end

  end )

  inst.components.inventoryitem:SetOnDroppedFn(function(inst)

  inst:AddTag("doings")

  inst.task = inst:DoPeriodicTask(2, function(inst)

  inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")

  inst:DoTaskInTime(1, function() inst.AnimState:SetBloomEffectHandle("") end )

  local pos = Vector3(inst.Transform:GetWorldPosition())

  local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 30)

  for k,v in pairs(ents) do

  if v.components.health and not v.components.health:IsDead() and not v:HasTag("player") then

  if v.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == v or v:HasTag("monster") or v.prefab == "beefalo" or v.prefab == "bunnyman" or v.prefab == "pigman" or v.prefab == "pigguard" or v.prefab == "merm" or v.prefab == "monkey" or v.prefab == "tallbird" or v.prefab == "walrus" or v.prefab == "little_walrus" or v.prefab == "wasphive" then

  local pt1 = inst:GetPosition()

  local killerbee = SpawnPrefab("nightmarefuel")

  killerbee.Transform:SetPosition(pt1.x, pt1.y, pt1.z)

  killerbee.AnimState:SetBank("bee")

  killerbee.AnimState:SetBuild("bee_angry_build")

  killerbee.AnimState:PlayAnimation("idle")

  killerbee.AnimState:SetRayTestOnBB(true)

  killerbee.AnimState:SetMultColour(255/255,255/255,255/255,1)

  killerbee.entity:AddSoundEmitter()

  killerbee.entity:AddLightWatcher()

  killerbee.entity:AddDynamicShadow()

  killerbee.DynamicShadow:SetSize( .8, .5 )

  killerbee.Transform:SetFourFaced()

  MakeCharacterPhysics(killerbee, 1, .3)

  killerbee.Physics:SetCollisionGroup(COLLISION.FLYERS)

  killerbee.Physics:ClearCollisionMask()

  killerbee.Physics:CollidesWith(COLLISION.WORLD)

  killerbee.Physics:CollidesWith(COLLISION.FLYERS)

  killerbee:AddTag("killerbee")

  killerbee:AddComponent("locomotor")

  killerbee.components.locomotor:EnableGroundSpeedMultiplier(false)

  killerbee.components.locomotor:SetTriggersCreep(false)

  killerbee:SetStateGraph("SGbee")

  killerbee:AddComponent("health")

  killerbee.components.health:SetMaxHealth(200)

  killerbee:AddComponent("combat")

  killerbee.components.combat:SetTarget(v)

  killerbee.components.combat:SetDefaultDamage(20)

  killerbee.components.combat:SetAttackPeriod(0.1)

  killerbee.components.combat.hiteffectsymbol = "body"

  killerbee.components.combat:SetRetargetFunction(1, function(killerbee)

  if not killerbee.components.health:IsDead() then

  return FindEntity(inst, 30, function(guy)

  if guy.components.health and not guy.components.health:IsDead() and not guy:HasTag("player") then

  return guy.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == guy or guy:HasTag("monster") or guy.prefab == "beefalo" or guy.prefab == "bunnyman" or guy.prefab == "pigman" or guy.prefab == "pigguard" or guy.prefab == "merm" or guy.prefab == "monkey" or guy.prefab == "tallbird" or guy.prefab == "walrus" or guy.prefab == "little_walrus" or guy.prefab == "wasphive"

  end

  end)

  end

  end )

  local killerbrain = require("brains/killerbeebrain")

  killerbee:SetBrain(killerbrain)

  killerbee.sounds = killersounds

  killerbee:AddComponent("knownlocations")

  killerbee:ListenForEvent("attacked", function(killerbee, data) killerbee.components.combat:SetTarget(data.attacker) end )

  killerbee:RemoveComponent("stackable")

  killerbee:RemoveComponent("fuel")

  killerbee:RemoveComponent("deployable")

  killerbee:RemoveComponent("inventoryitem")

  killerbee:DoTaskInTime(30, function() killerbee:Remove() end )

  v:ListenForEvent("death", function() killerbee:Remove() end )

  end

  end

  end

  end )

  end )

  inst:AddTag("boxs")

  end

  if data and data.doings then

  inst.task = inst:DoPeriodicTask(2, function(inst)

  inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")

  inst:DoTaskInTime(1, function() inst.AnimState:SetBloomEffectHandle("") end )

  local pos = Vector3(inst.Transform:GetWorldPosition())

  local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 30)

  for k,v in pairs(ents) do

  if v.components.health and not v.components.health:IsDead() and not v:HasTag("player") then

  if v.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == v or v:HasTag("monster") or v.prefab == "beefalo" or v.prefab == "bunnyman" or v.prefab == "pigman" or v.prefab == "pigguard" or v.prefab == "merm" or v.prefab == "monkey" or v.prefab == "tallbird" or v.prefab == "walrus" or v.prefab == "little_walrus" or v.prefab == "wasphive" then

  local pt1 = inst:GetPosition()

  local killerbee = SpawnPrefab("nightmarefuel")

  killerbee.Transform:SetPosition(pt1.x, pt1.y, pt1.z)

  killerbee.AnimState:SetBank("bee")

  killerbee.AnimState:SetBuild("bee_angry_build")

  killerbee.AnimState:PlayAnimation("idle")

  killerbee.AnimState:SetRayTestOnBB(true)

  killerbee.AnimState:SetMultColour(255/255,255/255,255/255,1)

  killerbee.entity:AddSoundEmitter()

  killerbee.entity:AddLightWatcher()

  killerbee.entity:AddDynamicShadow()

  killerbee.DynamicShadow:SetSize( .8, .5 )

  killerbee.Transform:SetFourFaced()

  MakeCharacterPhysics(killerbee, 1, .3)

  killerbee.Physics:SetCollisionGroup(COLLISION.FLYERS)

  killerbee.Physics:ClearCollisionMask()

  killerbee.Physics:CollidesWith(COLLISION.WORLD)

  killerbee.Physics:CollidesWith(COLLISION.FLYERS)

  killerbee:AddTag("killerbee")

  killerbee:AddComponent("locomotor")

  killerbee.components.locomotor:EnableGroundSpeedMultiplier(false)

  killerbee.components.locomotor:SetTriggersCreep(false)

  killerbee:SetStateGraph("SGbee")

  killerbee:AddComponent("health")

  killerbee.components.health:SetMaxHealth(200)

  killerbee:AddComponent("combat")

  killerbee.components.combat:SetTarget(v)

  killerbee.components.combat:SetDefaultDamage(20)

  killerbee.components.combat:SetAttackPeriod(0.1)

  killerbee.components.combat.hiteffectsymbol = "body"

  killerbee.components.combat:SetRetargetFunction(1, function(killerbee)

  if not killerbee.components.health:IsDead() then

  return FindEntity(inst, 30, function(guy)

  if guy.components.health and not guy.components.health:IsDead() and not guy:HasTag("player") then

  return guy.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == guy or guy:HasTag("monster") or guy.prefab == "beefalo" or guy.prefab == "bunnyman" or guy.prefab == "pigman" or guy.prefab == "pigguard" or guy.prefab == "merm" or guy.prefab == "monkey" or guy.prefab == "tallbird" or guy.prefab == "walrus" or guy.prefab == "little_walrus" or guy.prefab == "wasphive"

  end

  end)

  end

  end )

  local killerbrain = require("brains/killerbeebrain")

  killerbee:SetBrain(killerbrain)

  killerbee.sounds = killersounds

  killerbee:AddComponent("knownlocations")

  killerbee:ListenForEvent("attacked", function(killerbee, data) killerbee.components.combat:SetTarget(data.attacker) end )

  killerbee:RemoveComponent("stackable")

  killerbee:RemoveComponent("fuel")

  killerbee:RemoveComponent("deployable")

  killerbee:RemoveComponent("inventoryitem")

  killerbee:DoTaskInTime(30, function() killerbee:Remove() end )

  v:ListenForEvent("death", function() killerbee:Remove() end )

  end

  end

  end

  end )

  inst:AddTag("doings")

  end

  if data and data.killerbee then

  inst:Remove()

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可在攒够500个黄金时,用噩梦燃料种口袋蜂箱,将消费500个黄金,身上黄金数不足时不会种出来。蜂箱放在地上时,如果周围有敌人,会不断飞出杀人蜂攻击敌人,直至敌人死亡为止,且杀人蜂不会攻击主角及同伴(不包括猪人、兔人)。鼠标左键点口袋蜂箱,可将其放入物品栏,显示为蜂箱的图标,所有飞出的杀人蜂将消失。口袋蜂箱类似于导弹防御系统,既可以帮助主角作战,也可以保护基地,无论周围有多少敌人,都会派出足够数量的杀人蜂去攻击,因此只种一个即可,否则对电脑硬件要求较高。可以通过小地图查询口袋蜂箱的位置,显示为蜂箱的图标。不想要口袋蜂箱时,用锤子砸掉即可

相关内容请关注:饥荒专区

作者:易宁     责任编辑:Shy夏夏

本文是否解决了您的问题

APP精彩推荐打开游民APP查看更多

  • 官方公布《生化9》解锁时间!PC已开放预载
    官方公布《生化9》解锁时间!PC已开放预载

  • 三上悠亚老师再发新图:超短牛仔裙大白腿看流口水
    三上悠亚老师再发新图:超短牛仔裙大白腿看流口水

  • 白人女婿吃砂糖橘吃成贵州本地人 医生:要均衡摄入
    白人女婿吃砂糖橘吃成贵州本地人 医生:要均衡摄入

攻略合集
人物图鉴

相关内容

在线玩推荐更多

游民星空

打开App阅读体验更佳,攻略、资讯实时更新

下载APP