游民星空 > 攻略秘籍 > 攻略 > 正文

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

2015-01-21 11:28:46 来源:互联网 作者:易宁 我要投稿

第216页:鬼影重重

展开

二一六.鬼影重重(夜晚墓地有大量亡魂游荡,购买亡魂之心让主角变身亡魂)

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

  local function createghostnpc(inst)

  for k = 1,math.random(3,7) do

  local pt = inst:GetPosition()

  local ghostnpc = SpawnPrefab("deadlyfeast")

  ghostnpc.Transform:SetPosition(pt.x+(math.random(20)-math.random(20)), 0, pt.z+(math.random(20)-math.random(20)))

  ghostnpc.entity:AddSoundEmitter()

  ghostnpc.AnimState:SetBank("ghost")

  ghostnpc.AnimState:SetBuild("ghost_build")

  ghostnpc.AnimState:PlayAnimation("idle", true)

  ghostnpc.Transform:SetFourFaced()

  MakeGhostPhysics(ghostnpc, 1, .5)

  local minimap = ghostnpc.entity:AddMiniMapEntity()

  minimap:SetIcon("whitespider_den.png")

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

  local light = ghostnpc.entity:AddLight()

  light:SetIntensity(.6)

  light:SetRadius(.5)

  light:SetFalloff(.6)

  light:Enable(true)

  light:SetColour(180/255, 195/255, 225/255)

  local brain = require "brains/leifbrain"

  ghostnpc:SetBrain(brain)

  ghostnpc:AddComponent("locomotor")

  ghostnpc.components.locomotor.walkspeed = 5

  ghostnpc.components.locomotor.runspeed = 5

  ghostnpc:SetStateGraph("SGghost")

  ghostnpc:AddTag("ghostnpcs")

  ghostnpc:RemoveComponent("edible")

  ghostnpc:RemoveComponent("inventoryitem")

  ghostnpc:RemoveTag("meat")

  ghostnpc:AddComponent("sanityaura")

  ghostnpc.components.sanityaura.aura = -TUNING.SANITYAURA_SMALL

  ghostnpc:AddComponent("health")

  ghostnpc.components.health:SetMaxHealth(500)

  ghostnpc:AddComponent("trader")

  ghostnpc.components.trader:SetAcceptTest(function(ghostnpc, item)

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

  if item.prefab == "goldnugget" then

  return true

  end

  end

  return false

  end )

  ghostnpc.components.trader.onaccept = function(ghostnpc, giver, item)

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

  local ghostheart = SpawnPrefab("deadlyfeast")

  ghostheart.AnimState:SetBank("egg")

  ghostheart.AnimState:SetBuild("tallbird_egg")

  ghostheart.AnimState:PlayAnimation("cooked")

  ghostheart.components.inventoryitem:ChangeImageName("tallbirdegg_cooked")

  ghostheart:RemoveComponent("edible")

  ghostheart:RemoveTag("meat")

  ghostheart:AddComponent("equippable")

  ghostheart.components.equippable:SetOnEquip( function(ghostheart, owner)

  if owner == GetPlayer() and not GetPlayer():HasTag("poisoning") and not GetPlayer():HasTag("fever") then

  owner.components.locomotor:Stop()

  owner.components.playercontroller:Enable(false)

  owner:DoTaskInTime(0.3, function()

  SpawnPrefab("collapse_big").Transform:SetPosition(owner.Transform:GetWorldPosition())

  owner.AnimState:SetBank("ghost")

  owner.AnimState:SetBuild("ghost_build")

  owner:SetStateGraph("SGghost")

  owner.AnimState:PlayAnimation("idle", true)

  owner.Transform:SetScale(1.2,1.2,1.2)

  local shadow = owner.entity:AddDynamicShadow()

  shadow:SetSize( 0, 0 )

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

  local light = owner.entity:AddLight()

  light:SetIntensity(.6)

  light:SetRadius(20)

  light:SetFalloff(.6)

  light:Enable(true)

  light:SetColour(180/255, 195/255, 225/255)

  owner.components.locomotor.walkspeed = 20

  owner.components.locomotor.runspeed = 20

  owner.components.health:DoDelta(owner.components.health.maxhealth)

  owner.components.health:SetInvincible(true)

  owner.components.hunger:DoDelta(owner.components.hunger.max)

  owner.components.hunger:Pause()

  owner.components.sanity:DoDelta(owner.components.sanity.max)

  owner.components.sanity.ignore = true

  owner.components.combat:SetDefaultDamage(1000)

  owner:AddComponent("aura")

  owner.components.aura.radius = 3

  owner.components.aura.tickperiod = 0.5

  owner.components.aura.ignoreallies = true

  owner.components.aura.auratestfn = function(ghostnpc, target)

  if target.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == target then

  return true

  end

  return false

  end

  owner.components.temperature:SetTemp(20)

  owner.components.playercontroller:Enable(true)

  end )

  end

  end )

  ghostheart.components.equippable:SetOnUnequip( function(ghostheart, owner)

  SpawnPrefab("collapse_big").Transform:SetPosition(owner.Transform:GetWorldPosition())

  owner.components.locomotor:Stop()

  owner.components.playercontroller:Enable(false)

  owner:DoTaskInTime(0.3, function()

  owner.AnimState:SetBank("wilson")

  if GetPlayer().prefab == "wilson" then owner.AnimState:SetBuild("wilson") end

  if GetPlayer().prefab == "wendy" then owner.AnimState:SetBuild("wendy") end

  if GetPlayer().prefab == "wes" then owner.AnimState:SetBuild("wes") end

  if GetPlayer().prefab == "wickerbottom" then owner.AnimState:SetBuild("wickerbottom") end

  if GetPlayer().prefab == "willow" then owner.AnimState:SetBuild("willow") end

  if GetPlayer().prefab == "wolfgang" then owner.AnimState:SetBuild("wolfgang") end

  if GetPlayer().prefab == "wx78" then owner.AnimState:SetBuild("wx78") end

  if GetPlayer().prefab == "woodie" then owner.AnimState:SetBuild("woodie") end

  if GetPlayer().prefab == "waxwell" then owner.AnimState:SetBuild("waxwell") end

  if GetPlayer().prefab == "wathgrithr" then owner.AnimState:SetBuild("wathgrithr") end

  if GetPlayer().prefab == "webber" then owner.AnimState:SetBuild("webber") end

  owner:SetStateGraph("SGwilson")

  owner.AnimState:PlayAnimation("idle")

  owner.Transform:SetScale(1,1,1)

  local shadow = owner.entity:AddDynamicShadow()

  shadow:SetSize( 1.3, .6 )

  owner.AnimState:SetBloomEffectHandle("")

  owner.Light:Enable(false)

  owner.components.locomotor.walkspeed = TUNING.WILSON_WALK_SPEED

  owner.components.locomotor.runspeed = TUNING.WILSON_RUN_SPEED

  owner.components.health:SetInvincible(false)

  owner.components.hunger:Resume()

  owner.components.sanity.ignore = false

  owner.components.combat:SetDefaultDamage(TUNING.UNARMED_DAMAGE)

  owner.components.combat.hiteffectsymbol = "torso"

  owner:RemoveComponent("aura")

  owner.components.temperature:SetTemp(nil)

  owner.components.playercontroller:Enable(true)

  ghostheart:Remove()

  end )

  end )

  ghostheart.components.equippable.equipslot = EQUIPSLOTS.HANDS

  ghostheart:AddTag("ghostheart")

  GetPlayer().components.inventory:GiveItem(ghostheart)

  end

  ghostnpc:AddComponent("combat")

  ghostnpc.components.combat:SetDefaultDamage(3)

  ghostnpc.components.combat:SetAttackPeriod(1)

  ghostnpc.components.combat:SetRetargetFunction(2, function(ghostnpc)

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

  return FindEntity(ghostnpc, 25, function(guy)

  if guy:HasTag("monster") then return guy end

  if guy:HasTag("player") and guy.components.inventory and not guy.components.inventory:FindItem(function(item) return item.prefab == "nightmarefuel" end ) then return guy end

  end )

  end

  end )

  ghostnpc:ListenForEvent("attacked", function(ghostnpc, data)

  ghostnpc.components.combat:SetTarget(data.attacker)

  ghostnpc.components.combat:ShareTarget(data.attacker, 35, function(dude) return dude:HasTag("ghostnpcs") and not dude.components.health:IsDead() end, 5)

  end )

  ghostnpc:AddComponent("aura")

  ghostnpc.components.aura.radius = 2

  ghostnpc.components.aura.tickperiod = 1

  ghostnpc.components.aura.ignoreallies = true

  ghostnpc.components.aura.auratestfn = function(ghostnpc, target)

  if target:HasTag("ghostnpcs") then return false end

  if target.components.combat.target == ghostnpc or ghostnpc.components.combat.target == target then

  return true

  end

  end

  ghostnpc:ListenForEvent("death", function()

  local gems = {"purplegem","bluegem","redgem","orangegem","yellowgem","greengem","thulecite","goldnugget"}

  local gem = gems[math.random(#gems)]

  SpawnPrefab(gem).Transform:SetPosition(ghostnpc.Transform:GetWorldPosition())

  end )

  ghostnpc:ListenForEvent( "daytime", function() ghostnpc:Remove() end , GetWorld())

  end

  end

  inst:ListenForEvent( "dusktime", function() createghostnpc(inst) end , GetWorld())

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

  local function onsave(inst, data)

  if inst:HasTag("ghostnpcs") then

  data.ghostnpcs = true

  end

  if inst:HasTag("ghostheart") then

  data.ghostheart = true

  end

  end

  local function onload(inst, data)

  if data and data.ghostnpcs then

  inst.entity:AddSoundEmitter()

  inst.AnimState:SetBank("ghost")

  inst.AnimState:SetBuild("ghost_build")

  inst.AnimState:PlayAnimation("idle", true)

  inst.Transform:SetFourFaced()

  MakeGhostPhysics(inst, 1, .5)

  local minimap = inst.entity:AddMiniMapEntity()

  minimap:SetIcon("whitespider_den.png")

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

  local light = inst.entity:AddLight()

  light:SetIntensity(.6)

  light:SetRadius(.5)

  light:SetFalloff(.6)

  light:Enable(true)

  light:SetColour(180/255, 195/255, 225/255)

  local brain = require "brains/leifbrain"

  inst:SetBrain(brain)

  inst:AddComponent("locomotor")

  inst.components.locomotor.walkspeed = 5

  inst.components.locomotor.runspeed = 5

  inst:SetStateGraph("SGghost")

  inst:AddTag("ghostnpcs")

  inst:RemoveComponent("edible")

  inst:RemoveComponent("inventoryitem")

  inst:RemoveTag("meat")

  inst:AddComponent("sanityaura")

  inst.components.sanityaura.aura = -TUNING.SANITYAURA_SMALL

  inst:AddComponent("health")

  inst.components.health:SetMaxHealth(500)

  inst:AddComponent("trader")

  inst.components.trader:SetAcceptTest(function(inst, item)

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

  if item.prefab == "goldnugget" then

  return true

  end

  end

  return false

  end )

  inst.components.trader.onaccept = function(inst, giver, item)

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

  local ghostheart = SpawnPrefab("deadlyfeast")

  ghostheart.AnimState:SetBank("egg")

  ghostheart.AnimState:SetBuild("tallbird_egg")

  ghostheart.AnimState:PlayAnimation("cooked")

  ghostheart.components.inventoryitem:ChangeImageName("tallbirdegg_cooked")

  ghostheart:RemoveComponent("edible")

  ghostheart:RemoveTag("meat")

  ghostheart:AddComponent("equippable")

  ghostheart.components.equippable:SetOnEquip( function(ghostheart, owner)

  if owner == GetPlayer() and not GetPlayer():HasTag("poisoning") and not GetPlayer():HasTag("fever") then

  owner.components.locomotor:Stop()

  owner.components.playercontroller:Enable(false)

  owner:DoTaskInTime(0.3, function()

  SpawnPrefab("collapse_big").Transform:SetPosition(owner.Transform:GetWorldPosition())

  owner.AnimState:SetBank("ghost")

  owner.AnimState:SetBuild("ghost_build")

  owner:SetStateGraph("SGghost")

  owner.AnimState:PlayAnimation("idle", true)

  owner.Transform:SetScale(1.2,1.2,1.2)

  local shadow = owner.entity:AddDynamicShadow()

  shadow:SetSize( 0, 0 )

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

  local light = owner.entity:AddLight()

  light:SetIntensity(.6)

  light:SetRadius(20)

  light:SetFalloff(.6)

  light:Enable(true)

  light:SetColour(180/255, 195/255, 225/255)

  owner.components.locomotor.walkspeed = 20

  owner.components.locomotor.runspeed = 20

  owner.components.health:DoDelta(owner.components.health.maxhealth)

  owner.components.health:SetInvincible(true)

  owner.components.hunger:DoDelta(owner.components.hunger.max)

  owner.components.hunger:Pause()

  owner.components.sanity:DoDelta(owner.components.sanity.max)

  owner.components.sanity.ignore = true

  owner.components.combat:SetDefaultDamage(1000)

  owner:AddComponent("aura")

  owner.components.aura.radius = 3

  owner.components.aura.tickperiod = 0.5

  owner.components.aura.ignoreallies = true

  owner.components.aura.auratestfn = function(inst, target)

  if target.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == target then

  return true

  end

  return false

  end

  owner.components.temperature:SetTemp(20)

  owner.components.playercontroller:Enable(true)

  end )

  end

  end )

  ghostheart.components.equippable:SetOnUnequip( function(ghostheart, owner)

  SpawnPrefab("collapse_big").Transform:SetPosition(owner.Transform:GetWorldPosition())

  owner.components.locomotor:Stop()

  owner.components.playercontroller:Enable(false)

  owner:DoTaskInTime(0.3, function()

  owner.AnimState:SetBank("wilson")

  if GetPlayer().prefab == "wilson" then owner.AnimState:SetBuild("wilson") end

  if GetPlayer().prefab == "wendy" then owner.AnimState:SetBuild("wendy") end

  if GetPlayer().prefab == "wes" then owner.AnimState:SetBuild("wes") end

  if GetPlayer().prefab == "wickerbottom" then owner.AnimState:SetBuild("wickerbottom") end

  if GetPlayer().prefab == "willow" then owner.AnimState:SetBuild("willow") end

  if GetPlayer().prefab == "wolfgang" then owner.AnimState:SetBuild("wolfgang") end

  if GetPlayer().prefab == "wx78" then owner.AnimState:SetBuild("wx78") end

  if GetPlayer().prefab == "woodie" then owner.AnimState:SetBuild("woodie") end

  if GetPlayer().prefab == "waxwell" then owner.AnimState:SetBuild("waxwell") end

  if GetPlayer().prefab == "wathgrithr" then owner.AnimState:SetBuild("wathgrithr") end

  if GetPlayer().prefab == "webber" then owner.AnimState:SetBuild("webber") end

  owner:SetStateGraph("SGwilson")

  owner.AnimState:PlayAnimation("idle")

  owner.Transform:SetScale(1,1,1)

  local shadow = owner.entity:AddDynamicShadow()

  shadow:SetSize( 1.3, .6 )

  owner.AnimState:SetBloomEffectHandle("")

  owner.Light:Enable(false)

  owner.components.locomotor.walkspeed = TUNING.WILSON_WALK_SPEED

  owner.components.locomotor.runspeed = TUNING.WILSON_RUN_SPEED

  owner.components.health:SetInvincible(false)

  owner.components.hunger:Resume()

  owner.components.sanity.ignore = false

  owner.components.combat:SetDefaultDamage(TUNING.UNARMED_DAMAGE)

  owner.components.combat.hiteffectsymbol = "torso"

  owner:RemoveComponent("aura")

  owner.components.temperature:SetTemp(nil)

  owner.components.playercontroller:Enable(true)

  ghostheart:Remove()

  end )

  end )

  ghostheart.components.equippable.equipslot = EQUIPSLOTS.HANDS

  ghostheart:AddTag("ghostheart")

  GetPlayer().components.inventory:GiveItem(ghostheart)

  end

  inst:AddComponent("combat")

  inst.components.combat:SetDefaultDamage(3)

  inst.components.combat:SetAttackPeriod(1)

  inst.components.combat:SetRetargetFunction(2, function(inst)

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

  return FindEntity(inst, 25, function(guy)

  if guy:HasTag("monster") then return guy end

  if guy:HasTag("player") and guy.components.inventory and not guy.components.inventory:FindItem(function(item) return item.prefab == "nightmarefuel" end ) then return guy end

  end )

  end

  end )

  inst:ListenForEvent("attacked", function(inst, data)

  inst.components.combat:SetTarget(data.attacker)

  inst.components.combat:ShareTarget(data.attacker, 35, function(dude) return dude:HasTag("ghostnpcs") and not dude.components.health:IsDead() end, 5)

  end )

  inst:AddComponent("aura")

  inst.components.aura.radius = 2

  inst.components.aura.tickperiod = 1

  inst.components.aura.ignoreallies = true

  inst.components.aura.auratestfn = function(inst, target)

  if target:HasTag("ghostnpcs") then return false end

  if target.components.combat.target == inst or inst.components.combat.target == target then

  return true

  end

  end

  inst:ListenForEvent("death", function()

  local gems = {"purplegem","bluegem","redgem","orangegem","yellowgem","greengem","thulecite","goldnugget"}

  local gem = gems[math.random(#gems)]

  SpawnPrefab(gem).Transform:SetPosition(inst.Transform:GetWorldPosition())

  end )

  inst:ListenForEvent( "daytime", function() inst:Remove() end , GetWorld())

  end

  if data and data.ghostheart then

  inst.AnimState:SetBank("egg")

  inst.AnimState:SetBuild("tallbird_egg")

  inst.AnimState:PlayAnimation("cooked")

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

  inst:RemoveComponent("edible")

  inst:RemoveTag("meat")

  inst:AddComponent("equippable")

  inst.components.equippable:SetOnEquip( function(inst, owner)

  if owner == GetPlayer() and not GetPlayer():HasTag("poisoning") and not GetPlayer():HasTag("fever") then

  owner.components.locomotor:Stop()

  owner.components.playercontroller:Enable(false)

  owner:DoTaskInTime(0.3, function()

  SpawnPrefab("collapse_big").Transform:SetPosition(owner.Transform:GetWorldPosition())

  owner.AnimState:SetBank("ghost")

  owner.AnimState:SetBuild("ghost_build")

  owner:SetStateGraph("SGghost")

  owner.AnimState:PlayAnimation("idle", true)

  owner.Transform:SetScale(1.2,1.2,1.2)

  local shadow = owner.entity:AddDynamicShadow()

  shadow:SetSize( 0, 0 )

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

  local light = owner.entity:AddLight()

  light:SetIntensity(.6)

  light:SetRadius(20)

  light:SetFalloff(.6)

  light:Enable(true)

  light:SetColour(180/255, 195/255, 225/255)

  owner.components.locomotor.walkspeed = 20

  owner.components.locomotor.runspeed = 20

  owner.components.health:DoDelta(owner.components.health.maxhealth)

  owner.components.health:SetInvincible(true)

  owner.components.hunger:DoDelta(owner.components.hunger.max)

  owner.components.hunger:Pause()

  owner.components.sanity:DoDelta(owner.components.sanity.max)

  owner.components.sanity.ignore = true

  owner.components.combat:SetDefaultDamage(1000)

  owner:AddComponent("aura")

  owner.components.aura.radius = 3

  owner.components.aura.tickperiod = 0.5

  owner.components.aura.ignoreallies = true

  owner.components.aura.auratestfn = function(ghostnpc, target)

  if target.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == target then

  return true

  end

  return false

  end

  owner.components.temperature:SetTemp(20)

  owner.components.playercontroller:Enable(true)

  end )

  end

  end )

  inst.components.equippable:SetOnUnequip( function(inst, owner)

  SpawnPrefab("collapse_big").Transform:SetPosition(owner.Transform:GetWorldPosition())

  owner.components.locomotor:Stop()

  owner.components.playercontroller:Enable(false)

  owner:DoTaskInTime(0.3, function()

  owner.AnimState:SetBank("wilson")

  if GetPlayer().prefab == "wilson" then owner.AnimState:SetBuild("wilson") end

  if GetPlayer().prefab == "wendy" then owner.AnimState:SetBuild("wendy") end

  if GetPlayer().prefab == "wes" then owner.AnimState:SetBuild("wes") end

  if GetPlayer().prefab == "wickerbottom" then owner.AnimState:SetBuild("wickerbottom") end

  if GetPlayer().prefab == "willow" then owner.AnimState:SetBuild("willow") end

  if GetPlayer().prefab == "wolfgang" then owner.AnimState:SetBuild("wolfgang") end

  if GetPlayer().prefab == "wx78" then owner.AnimState:SetBuild("wx78") end

  if GetPlayer().prefab == "woodie" then owner.AnimState:SetBuild("woodie") end

  if GetPlayer().prefab == "waxwell" then owner.AnimState:SetBuild("waxwell") end

  if GetPlayer().prefab == "wathgrithr" then owner.AnimState:SetBuild("wathgrithr") end

  if GetPlayer().prefab == "webber" then owner.AnimState:SetBuild("webber") end

  owner:SetStateGraph("SGwilson")

  owner.AnimState:PlayAnimation("idle")

  owner.Transform:SetScale(1,1,1)

  local shadow = owner.entity:AddDynamicShadow()

  shadow:SetSize( 1.3, .6 )

  owner.AnimState:SetBloomEffectHandle("")

  owner.Light:Enable(false)

  owner.components.locomotor.walkspeed = TUNING.WILSON_WALK_SPEED

  owner.components.locomotor.runspeed = TUNING.WILSON_RUN_SPEED

  owner.components.health:SetInvincible(false)

  owner.components.hunger:Resume()

  owner.components.sanity.ignore = false

  owner.components.combat:SetDefaultDamage(TUNING.UNARMED_DAMAGE)

  owner.components.combat.hiteffectsymbol = "torso"

  owner:RemoveComponent("aura")

  owner.components.temperature:SetTemp(nil)

  owner.components.playercontroller:Enable(true)

  inst:Remove()

  end )

  end )

  inst.components.equippable.equipslot = EQUIPSLOTS.HANDS

  inst:AddTag("ghostheart")

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可在夜晚时,墓地有大量亡魂游荡,会主动攻击你,且靠近它们会降脑,消灭亡魂可获得宝石、铥矿石、黄金。亡魂在小地图上显示为白蜘蛛的图标。如果身上携带了噩梦燃料,亡魂就不会主动攻击你,给亡魂30个黄金(拿着黄金对亡魂点鼠标左键),可购买亡魂之心,装备它即可变身亡魂,生命、饥饿、脑全部锁死,按Ctrl + 鼠标左键攻击,且任何攻击你的敌人都会被自动烫死。卸载亡魂之心即可变回人,同时亡魂之心消失,想再变身就多买一些吧。如果修改了“小病小灾”,在主角感冒和食物中毒时,装备亡魂之心也不会变身

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

责任编辑:Shy夏夏

上一页 211 212 213 214 215 216 217 218 219 220 221 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

文章内容导航
游民星空APP
随手浏览游戏攻略
code
攻略合集
单机游戏下载
休闲娱乐
综合热点资讯
游民星空联运游戏