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

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

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

第346页:企鹅养殖场

展开

二九六.企鹅养殖场(用蜂巢种企鹅养殖场,买小企鹅,养大后卖出赚黄金)

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

  local function penguinshop(inst)

  local pt = inst:GetPosition()

  local peddler = SpawnPrefab("honeycomb")

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

  peddler.AnimState:SetBank("wilson")

  peddler.AnimState:SetBuild("willow")

  peddler.AnimState:OverrideSymbol("swap_hat", "hat_straw", "swap_hat")

  peddler.AnimState:Show("HAT")

  peddler.AnimState:Show("HAT_HAIR")

  peddler.AnimState:Hide("HAIR_NOHAT")

  peddler.AnimState:Hide("HAIR")

  peddler.AnimState:OverrideSymbol("swap_body", "armor_grass", "swap_body")

  peddler.AnimState:Hide("ARM_carry")

  peddler.AnimState:Show("ARM_normal")

  peddler.Transform:SetFourFaced()

  peddler.AnimState:PlayAnimation("idle")

  peddler:AddTag("peddler")

  peddler:RemoveComponent("stackable")

  peddler:RemoveComponent("tradable")

  peddler:RemoveComponent("inventoryitem")

  local light = peddler.entity:AddLight()

  light:SetFalloff(1)

  light:SetIntensity(.8)

  light:SetRadius(10)

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

  light:Enable(true)

  MakeLargeBurnable(peddler)

  MakeLargePropagator(peddler)

  peddler.components.inspectable.getstatus = function(peddler)

  peddler.AnimState:PlayAnimation("give")

  GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold")

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

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

  for k,v in pairs(ents) do

  if v:HasTag("penguin_2") then

  for k = 1, 20 do

  SpawnPrefab("goldnugget").Transform:SetPosition(v.Transform:GetWorldPosition())

  end

  v:Remove()

  end

  end

  end

  peddler:AddComponent("trader")

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

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

  if item.prefab == "goldnugget" then

  return true

  end

  end

  return false

  end )

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

  peddler.AnimState:PlayAnimation("give")

  GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")

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

  local penguin = SpawnPrefab("honeycomb")

  penguin.Transform:SetPosition(pt.x+3.1, 0, pt.z+3.1)

  penguin.AnimState:SetBank("penguin")

  penguin.AnimState:SetBuild("penguin_build")

  penguin.Transform:SetFourFaced()

  penguin.AnimState:PlayAnimation("idle_loop", true)

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

  penguin.entity:AddSoundEmitter()

  local minimap = penguin.entity:AddMiniMapEntity()

  minimap:SetIcon( "penguin.png" )

  MakeCharacterPhysics(penguin, 50, .5)

  penguin:AddComponent("follower")

  penguin.components.follower:SetLeader(GetPlayer())

  local brain = require "brains/abigailbrain"

  penguin:SetBrain(brain)

  penguin:AddComponent("locomotor")

  penguin.components.locomotor.walkspeed = 0.75

  penguin.components.locomotor.directdrive = false

  penguin:SetStateGraph("SGpenguin")

  penguin:AddComponent("combat")

  penguin.components.combat.hiteffectsymbol = "body"

  penguin.components.combat:SetAttackPeriod(1)

  penguin.components.combat:SetRange(2.5)

  penguin.components.combat:SetDefaultDamage(1)

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

  penguin:AddComponent("health")

  penguin.components.health:SetMaxHealth(50)

  penguin.Transform:SetScale(0.7, 0.7, 0.7)

  penguin:RemoveComponent("stackable")

  penguin:RemoveComponent("tradable")

  penguin:RemoveComponent("inventoryitem")

  penguin:AddTag("retinue")

  penguin:AddTag("penguin_1")

  penguin:AddComponent("lootdropper")

  penguin.components.lootdropper:SetLoot({"smallmeat", "smallmeat"})

  penguin.components.inspectable.getstatus = function(penguin)

  if not penguin:HasTag("retinue") then

  local brain = require "brains/abigailbrain"

  penguin:SetBrain(brain)

  penguin.components.follower:SetLeader(GetPlayer())

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

  penguin:AddTag("retinue")

  else

  local brain = require "brains/leifbrain"

  penguin:SetBrain(brain)

  penguin.components.follower:SetLeader(nil)

  penguin.AnimState:SetBloomEffectHandle("")

  penguin:RemoveTag("retinue")

  end

  end

  penguin:DoTaskInTime(math.random(480,560), function()

  if not penguin:HasTag("penguin_2") then

  penguin.AnimState:PlayAnimation("taunt")

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

  penguin:AddTag("penguin_2")

  penguin.components.lootdropper:SetLoot({"meat", "meat", "drumstick", "drumstick"})

  end

  end )

  penguin:DoPeriodicTask(math.random(120,180), function()

  if penguin:HasTag("penguin_2") then

  SpawnPrefab("bird_egg").Transform:SetPosition(penguin.Transform:GetWorldPosition())

  end

  end)

  end

  local ice = SpawnPrefab("honeycomb")

  ice.Transform:SetPosition(pt.x+1, 0, pt.z+1)

  ice.AnimState:SetBank("penguin_ice")

  ice.AnimState:SetBuild("penguin_ice")

  ice.AnimState:PlayAnimation("idle")

  ice.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )

  ice.AnimState:SetLayer( LAYER_BACKGROUND )

  ice.AnimState:SetSortOrder( 1 )

  ice.Transform:SetRotation( 225 )

  ice:RemoveComponent("stackable")

  ice:RemoveComponent("tradable")

  ice:RemoveComponent("inventoryitem")

  ice:AddTag("goodbye")

  ice:AddTag("NOCLICK")

  MakeLargeBurnable(ice)

  MakeLargePropagator(ice)

  local model1 = SpawnPrefab("honeycomb")

  model1.Transform:SetPosition(pt.x+2-1, 0, pt.z-2-1)

  model1.AnimState:SetBank("penguin")

  model1.AnimState:SetBuild("penguin_build")

  model1.Transform:SetFourFaced()

  model1.AnimState:PlayAnimation("idle_loop", true)

  model1.Transform:SetRotation( 270 )

  model1.Transform:SetScale(2, 2, 2)

  model1:RemoveComponent("stackable")

  model1:RemoveComponent("tradable")

  model1:RemoveComponent("inventoryitem")

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

  model1:AddTag("goodbye")

  MakeLargeBurnable(model1)

  MakeLargePropagator(model1)

  local model2 = SpawnPrefab("honeycomb")

  model2.Transform:SetPosition(pt.x-2-1, 0, pt.z+2-1)

  model2.AnimState:SetBank("penguin")

  model2.AnimState:SetBuild("penguin_build")

  model2.Transform:SetFourFaced()

  model2.AnimState:PlayAnimation("idle_loop", true)

  model2.Transform:SetRotation( 90 )

  model2.Transform:SetScale(2, 2, 2)

  model2:RemoveComponent("stackable")

  model2:RemoveComponent("tradable")

  model2:RemoveComponent("inventoryitem")

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

  model2:AddTag("goodbye")

  MakeLargeBurnable(model2)

  MakeLargePropagator(model2)

  end

  local function OnDeploy (inst, pt)

  penguinshop(inst)

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

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("peddler") then data.peddler = true end

  if inst:HasTag("goodbye") then data.goodbye = true end

  if inst:HasTag("penguin_1") then data.penguin_1 = true end

  if inst:HasTag("penguin_2") then data.penguin_2 = true end

  if inst:HasTag("retinue") then data.retinue = true end

  end

  local function onload(inst, data)

  if data and data.peddler then

  penguinshop(inst)

  inst:Remove()

  end

  if data and data.goodbye then

  inst:Remove()

  end

  if data and data.penguin_1 then

  inst.AnimState:SetBank("penguin")

  inst.AnimState:SetBuild("penguin_build")

  inst.Transform:SetFourFaced()

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

  inst.entity:AddSoundEmitter()

  local minimap = inst.entity:AddMiniMapEntity()

  minimap:SetIcon( "penguin.png" )

  MakeCharacterPhysics(inst, 50, .5)

  inst:AddComponent("follower")

  inst.components.follower:SetLeader(nil)

  local brain = require "brains/leifbrain"

  inst:SetBrain(brain)

  inst:AddComponent("locomotor")

  inst.components.locomotor.walkspeed = 0.75

  inst.components.locomotor.directdrive = false

  inst:SetStateGraph("SGpenguin")

  inst:AddComponent("combat")

  inst.components.combat.hiteffectsymbol = "body"

  inst.components.combat:SetAttackPeriod(1)

  inst.components.combat:SetRange(2.5)

  inst.components.combat:SetDefaultDamage(1)

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

  inst:AddComponent("health")

  inst.components.health:SetMaxHealth(50)

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

  inst:RemoveComponent("stackable")

  inst:RemoveComponent("tradable")

  inst:RemoveComponent("inventoryitem")

  inst:AddTag("penguin_1")

  inst:AddComponent("lootdropper")

  inst.components.lootdropper:SetLoot({"smallmeat", "smallmeat"})

  inst.components.inspectable.getstatus = function(inst)

  if not inst:HasTag("retinue") then

  local brain = require "brains/abigailbrain"

  inst:SetBrain(brain)

  inst.components.follower:SetLeader(GetPlayer())

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

  inst:AddTag("retinue")

  else

  local brain = require "brains/leifbrain"

  inst:SetBrain(brain)

  inst.components.follower:SetLeader(nil)

  inst.AnimState:SetBloomEffectHandle("")

  inst:RemoveTag("retinue")

  end

  end

  inst:DoTaskInTime(math.random(480,560), function()

  if not inst:HasTag("penguin_2") then

  inst.AnimState:PlayAnimation("taunt")

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

  inst:AddTag("penguin_2")

  inst.components.lootdropper:SetLoot({"meat", "meat", "drumstick", "drumstick"})

  end

  end )

  inst:DoPeriodicTask(math.random(120,180), function()

  if inst:HasTag("penguin_2") then

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

  end

  end)

  end

  if data and data.penguin_2 then

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

  inst:AddTag("penguin_2")

  inst.components.lootdropper:SetLoot({"meat", "meat", "drumstick", "drumstick"})

  end

  if data and data.retinue then

  local brain = require "brains/abigailbrain"

  inst:SetBrain(brain)

  inst.components.follower:SetLeader(GetPlayer())

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

  inst:AddTag("retinue")

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可用蜂巢种企鹅养殖场(手里拿着1个蜂巢对地面点鼠标右键,如果拿着多个蜂巢,则不会种出来),拿着黄金对老板点鼠标左键,可以购买小企鹅,每只10个黄金。小企鹅会跟着你,鼠标左键点企鹅可停止跟随,再点则继续跟随(手里不要拿武器,以免误杀)。把它们带到你建造的企鹅圈,圈养起来吧,如果有淘气的企鹅啄墙,把它带离墙边即可。1-2天后,小企鹅长成大企鹅,并会下蛋,你可以继续养它们获得企鹅蛋,也可以带它们去企鹅养殖场,让它们停在冰面上,鼠标左键点老板,即可卖掉冰面上的大企鹅,收购价每只20个黄金。保护好你的企鹅群,从此作一个快乐的养鹅人吧。如果企鹅走失,可以打开小地图查找,将显示企鹅图标。杀掉小企鹅,会掉2个小肉(修改过“巨型超市”则增加掉落1-2个黄金),杀掉大企鹅会掉2个大肉和2个企鹅腿。不想要企鹅养殖场时烧掉即可

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

责任编辑:Shy夏夏

上一页 341 342 343 344 345 346 347 348 349 350 351 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

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