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

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

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

第254页:噩梦草

展开

二五四.噩梦草(用鸟粪种噩梦草,可采噩梦燃料,有一定概率出现地下巨人)

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

  local items = { SWORD = "swap_ham_bat" }

  local function EquipItem(inst, item)

  if item then

  inst.AnimState:OverrideSymbol("swap_object", item, item)

  inst.AnimState:Show("ARM_carry")

  inst.AnimState:Hide("ARM_normal")

  end

  end

  inst.items = items

  inst.equipfn = EquipItem

  EquipItem(inst)

  local function OnDeploy (inst, pt)

  local darkgrass = SpawnPrefab("guano")

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

  darkgrass.AnimState:SetBank("marsh_plant")

  darkgrass.AnimState:SetBuild("marsh_plant")

  darkgrass.AnimState:PlayAnimation("idle")

  darkgrass.Transform:SetScale(1.8, 1.8, 1.8)

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

  darkgrass:RemoveComponent("stackable")

  darkgrass:RemoveComponent("inventoryitem")

  darkgrass:RemoveComponent("fertilizer")

  darkgrass:RemoveComponent("smotherer")

  darkgrass:RemoveComponent("fuel")

  darkgrass:RemoveComponent("burnable")

  darkgrass:RemoveComponent("propagator")

  darkgrass:RemoveComponent("deployable")

  MakeMediumBurnable(darkgrass)

  MakeSmallPropagator(darkgrass)

  if darkgrass.flies then darkgrass.flies:Remove() darkgrass.flies = nil end

  darkgrass:AddComponent("workable")

  darkgrass.components.workable:SetWorkAction(ACTIONS.DIG)

  darkgrass.components.workable:SetWorkLeft(1)

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

  SpawnPrefab("nightmarefuel").Transform:SetPosition(darkgrass.Transform:GetWorldPosition())

  darkgrass:Remove()

  end )

  darkgrass:AddComponent("pickable")

  darkgrass.components.pickable:SetUp("nightmarefuel", 480)

  darkgrass.components.pickable:SetOnRegenFn(function(darkgrass) darkgrass.AnimState:SetMultColour(255/255,255/255,0/255,1) end )

  darkgrass.components.pickable:SetOnPickedFn(function(darkgrass)

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

  if math.random()<0.05 then

  GetPlayer().components.playercontroller:ShakeCamera(darkgrass, "FULL", 1.5, 0.03, 2, 30)

  GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")

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

  local giant = SpawnPrefab("guano")

  giant.Transform:SetPosition(darkgrass.Transform:GetWorldPosition())

  giant.entity:AddSoundEmitter()

  giant.AnimState:SetBank("wilson")

  giant.AnimState:SetBuild("wolfgang")

  giant.AnimState:PlayAnimation("idle")

  giant.AnimState:OverrideSymbol("swap_object", "swap_ham_bat", "swap_ham_bat")

  giant.AnimState:OverrideSymbol("swap_body", "armor_slurper", "swap_body")

  giant.AnimState:Show("ARM_carry")

  giant.AnimState:Hide("ARM_normal")

  giant.Transform:SetFourFaced()

  giant.Transform:SetScale(3.5,3.5,3.5)

  local sound = giant.entity:AddSoundEmitter()

  local shadow = giant.entity:AddDynamicShadow()

  shadow:SetSize( 6, 3.5 )

  MakeCharacterPhysics(giant, 200, 1)

  local minimap = giant.entity:AddMiniMapEntity()

  minimap:SetIcon("wolfgang.png")

  local brain = require "brains/leifbrain"

  giant:SetBrain(brain)

  giant:AddComponent("locomotor")

  giant.components.locomotor.walkspeed = 1

  giant.components.locomotor.runspeed = 2

  giant:SetStateGraph("SGshadowwaxwell")

  giant:RemoveComponent("stackable")

  giant:RemoveComponent("inventoryitem")

  giant:RemoveComponent("fertilizer")

  giant:RemoveComponent("smotherer")

  giant:RemoveComponent("fuel")

  giant:RemoveComponent("burnable")

  giant:RemoveComponent("propagator")

  giant:RemoveComponent("deployable")

  if giant.flies then giant.flies:Remove() giant.flies = nil end

  giant:AddComponent("follower")

  giant:AddComponent("inventory")

  giant:AddComponent("combat")

  giant.components.combat.hiteffectsymbol = "torso"

  giant.components.combat:SetDefaultDamage(70)

  giant.components.combat:SetAttackPeriod(3)

  giant.components.combat.onhitotherfn = function()

  giant.SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")

  GetPlayer().components.playercontroller:ShakeCamera(giant, "FULL", 0.5, 0.05, 2, 40)

  end

  giant.components.combat:SetAreaDamage(5, 0.8)

  giant.components.combat:SetRetargetFunction(3, function(giant)

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

  return FindEntity(giant, 20, function(guy)

  return giant.components.combat:CanTarget(guy) and not guy:HasTag("giant")

  end )

  end

  end )

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

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

  end )

  giant.Physics:SetCollisionCallback(function(giant, other)

  if other and other.components.workable and other.components.workable.workleft > 0 then

  other.components.workable:Destroy(giant)

  end

  end )

  giant:AddComponent("health")

  giant.components.health:SetMaxHealth(8000)

  giant.components.health.nofadeout = true

  giant:AddComponent("sanityaura")

  giant.components.sanityaura.aura = -TUNING.SANITYAURA_LARGE

  giant:ListenForEvent("death", function()

  local pt1 = giant:GetPosition()

  for k = 1,math.random(20,35) do

  local gold = SpawnPrefab("goldnugget")

  gold.Transform:SetPosition(pt1.x+(math.random(3)-math.random(3)), 0, pt1.z+(math.random(3)-math.random(3)))

  end

  local rewards = {"walrus_tusk","trunk_summer","trunk_winter","deerclops_eyeball","minotaurhorn"}

  local reward = rewards[math.random(#rewards)]

  SpawnPrefab(reward).Transform:SetPosition(pt1.x, 0, pt1.z)

  end )

  giant:DoTaskInTime(480, function(giant)

  giant:Remove()

  end )

  giant:AddTag("monster")

  giant:AddTag("giant")

  end

  end )

  darkgrass:AddTag("darkgrass")

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

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("darkgrass") then

  data.darkgrass = true

  end

  if inst:HasTag("giant") then

  data.giant = true

  end

  end

  local function onload(inst, data)

  if data and data.darkgrass then

  inst.AnimState:SetBank("marsh_plant")

  inst.AnimState:SetBuild("marsh_plant")

  inst.AnimState:PlayAnimation("idle")

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

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

  inst:RemoveComponent("stackable")

  inst:RemoveComponent("inventoryitem")

  inst:RemoveComponent("fertilizer")

  inst:RemoveComponent("smotherer")

  inst:RemoveComponent("fuel")

  inst:RemoveComponent("burnable")

  inst:RemoveComponent("propagator")

  inst:RemoveComponent("deployable")

  MakeMediumBurnable(inst)

  MakeSmallPropagator(inst)

  if inst.flies then inst.flies:Remove() inst.flies = nil end

  inst:AddComponent("workable")

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

  inst.components.workable:SetWorkLeft(1)

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

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

  inst:Remove()

  end )

  inst:AddComponent("pickable")

  inst.components.pickable:SetUp("nightmarefuel", 480)

  inst.components.pickable:SetOnRegenFn(function(inst) inst.AnimState:SetMultColour(255/255,255/255,0/255,1) end )

  inst.components.pickable:SetOnPickedFn(function(inst)

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

  if math.random()<0.05 then

  GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 1.5, 0.03, 2, 30)

  GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")

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

  local giant = SpawnPrefab("guano")

  giant.Transform:SetPosition(inst.Transform:GetWorldPosition())

  giant.entity:AddSoundEmitter()

  giant.AnimState:SetBank("wilson")

  giant.AnimState:SetBuild("wolfgang")

  giant.AnimState:PlayAnimation("idle")

  giant.AnimState:OverrideSymbol("swap_object", "swap_ham_bat", "swap_ham_bat")

  giant.AnimState:OverrideSymbol("swap_body", "armor_slurper", "swap_body")

  giant.AnimState:Show("ARM_carry")

  giant.AnimState:Hide("ARM_normal")

  giant.Transform:SetFourFaced()

  giant.Transform:SetScale(3.5,3.5,3.5)

  local sound = giant.entity:AddSoundEmitter()

  local shadow = giant.entity:AddDynamicShadow()

  shadow:SetSize( 6, 3.5 )

  MakeCharacterPhysics(giant, 200, 1)

  local minimap = giant.entity:AddMiniMapEntity()

  minimap:SetIcon("wolfgang.png")

  local brain = require "brains/leifbrain"

  giant:SetBrain(brain)

  giant:AddComponent("locomotor")

  giant.components.locomotor.walkspeed = 1

  giant.components.locomotor.runspeed = 2

  giant:SetStateGraph("SGshadowwaxwell")

  giant:RemoveComponent("stackable")

  giant:RemoveComponent("inventoryitem")

  giant:RemoveComponent("fertilizer")

  giant:RemoveComponent("smotherer")

  giant:RemoveComponent("fuel")

  giant:RemoveComponent("burnable")

  giant:RemoveComponent("propagator")

  giant:RemoveComponent("deployable")

  if giant.flies then giant.flies:Remove() giant.flies = nil end

  giant:AddComponent("follower")

  giant:AddComponent("inventory")

  giant:AddComponent("combat")

  giant.components.combat.hiteffectsymbol = "torso"

  giant.components.combat:SetDefaultDamage(70)

  giant.components.combat:SetAttackPeriod(3)

  giant.components.combat.onhitotherfn = function()

  giant.SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")

  GetPlayer().components.playercontroller:ShakeCamera(giant, "FULL", 0.5, 0.05, 2, 40)

  end

  giant.components.combat:SetAreaDamage(5, 0.8)

  giant.components.combat:SetRetargetFunction(3, function(giant)

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

  return FindEntity(giant, 20, function(guy)

  return giant.components.combat:CanTarget(guy) and not guy:HasTag("giant")

  end )

  end

  end )

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

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

  end )

  giant.Physics:SetCollisionCallback(function(giant, other)

  if other and other.components.workable and other.components.workable.workleft > 0 then

  other.components.workable:Destroy(giant)

  end

  end )

  giant:AddComponent("health")

  giant.components.health:SetMaxHealth(8000)

  giant.components.health.nofadeout = true

  giant:AddComponent("sanityaura")

  giant.components.sanityaura.aura = -TUNING.SANITYAURA_LARGE

  giant:ListenForEvent("death", function()

  local pt1 = giant:GetPosition()

  for k = 1,math.random(20,35) do

  local gold = SpawnPrefab("goldnugget")

  gold.Transform:SetPosition(pt1.x+(math.random(3)-math.random(3)), 0, pt1.z+(math.random(3)-math.random(3)))

  end

  local rewards = {"walrus_tusk","trunk_summer","trunk_winter","deerclops_eyeball","minotaurhorn"}

  local reward = rewards[math.random(#rewards)]

  SpawnPrefab(reward).Transform:SetPosition(pt1.x, 0, pt1.z)

  end )

  giant:DoTaskInTime(480, function(giant)

  giant:Remove()

  end )

  giant:AddTag("monster")

  giant:AddTag("giant")

  end

  end )

  inst:AddTag("darkgrass")

  end

  if data and data.giant then

  inst.entity:AddSoundEmitter()

  inst.AnimState:SetBank("wilson")

  inst.AnimState:SetBuild("wolfgang")

  inst.AnimState:PlayAnimation("idle")

  inst.AnimState:OverrideSymbol("swap_object", "swap_ham_bat", "swap_ham_bat")

  inst.AnimState:OverrideSymbol("swap_body", "armor_slurper", "swap_body")

  inst.AnimState:Show("ARM_carry")

  inst.AnimState:Hide("ARM_normal")

  inst.Transform:SetFourFaced()

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

  local sound = inst.entity:AddSoundEmitter()

  local shadow = inst.entity:AddDynamicShadow()

  shadow:SetSize( 6, 3.5 )

  MakeCharacterPhysics(inst, 200, 1)

  local minimap = inst.entity:AddMiniMapEntity()

  minimap:SetIcon("wolfgang.png")

  local brain = require "brains/leifbrain"

  inst:SetBrain(brain)

  inst:AddComponent("locomotor")

  inst.components.locomotor.walkspeed = 1

  inst.components.locomotor.runspeed = 2

  inst:SetStateGraph("SGshadowwaxwell")

  inst:RemoveComponent("stackable")

  inst:RemoveComponent("inventoryitem")

  inst:RemoveComponent("fertilizer")

  inst:RemoveComponent("smotherer")

  inst:RemoveComponent("fuel")

  inst:RemoveComponent("burnable")

  inst:RemoveComponent("propagator")

  inst:RemoveComponent("deployable")

  if inst.flies then inst.flies:Remove() inst.flies = nil end

  inst:AddComponent("follower")

  inst:AddComponent("inventory")

  inst:AddComponent("combat")

  inst.components.combat.hiteffectsymbol = "torso"

  inst.components.combat:SetDefaultDamage(70)

  inst.components.combat:SetAttackPeriod(3)

  inst.components.combat.onhitotherfn = function()

  inst.SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")

  GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.5, 0.05, 2, 40)

  end

  inst.components.combat:SetAreaDamage(5, 0.8)

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

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

  return FindEntity(inst, 20, function(guy)

  return inst.components.combat:CanTarget(guy) and not guy:HasTag("giant")

  end )

  end

  end )

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

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

  end )

  inst.Physics:SetCollisionCallback(function(inst, other)

  if other and other.components.workable and other.components.workable.workleft > 0 then

  other.components.workable:Destroy(inst)

  end

  end )

  inst:AddComponent("health")

  inst.components.health:SetMaxHealth(8000)

  inst.components.health.nofadeout = true

  inst:AddComponent("sanityaura")

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

  inst:ListenForEvent("death", function()

  local pt1 = inst:GetPosition()

  for k = 1,math.random(20,35) do

  local gold = SpawnPrefab("goldnugget")

  gold.Transform:SetPosition(pt1.x+(math.random(3)-math.random(3)), 0, pt1.z+(math.random(3)-math.random(3)))

  end

  local rewards = {"walrus_tusk","trunk_summer","trunk_winter","deerclops_eyeball","minotaurhorn"}

  local reward = rewards[math.random(#rewards)]

  SpawnPrefab(reward).Transform:SetPosition(pt1.x, 0, pt1.z)

  end )

  inst:DoTaskInTime(480, function(inst)

  inst:Remove()

  end )

  inst:AddTag("monster")

  inst:AddTag("giant")

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可用鸟粪(白色便便)种噩梦草(请远离基地种植),可采摘噩梦燃料,每天都能采一次。采摘时有一定概率出现地下巨人,将攻击你,消灭巨人可获得黄金、巨鹿眼球、远古守护者角、海象牙等宝物。巨人的血量及攻击力都很强,如果打不过,就先逃跑避避风头,一天后巨人将回到地下。巨人在小地图上显示为大力士的图标,绕着点走吧

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

责任编辑:Shy夏夏

上一页 251 252 253 254 255 256 257 258 259 260 261 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

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