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

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

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

第251页:我的王国

展开

二五一.我的王国(用远古短棒种国王雕像,可获得税收,有警察巡逻并听你调遣)

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

  local items = { SWORD = "swap_spear" }

  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 createguru(inst)

  local pt = inst:GetPosition()

  local guru = SpawnPrefab("ruins_bat")

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

  guru.AnimState:SetBank("wilson")

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

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

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

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

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

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

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

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

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

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

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

  guru.AnimState:PlayAnimation("idle")

  guru.AnimState:OverrideSymbol("swap_object", "swap_cane", "swap_cane")

  guru.AnimState:Hide("ARM_normal")

  guru.AnimState:Show("ARM_carry")

  guru.AnimState:OverrideSymbol("swap_hat", "hat_ruins", "swap_hat")

  guru.AnimState:Show("HAT")

  guru.AnimState:Show("HAT_HAIR")

  guru.AnimState:Hide("HAIR_NOHAT")

  guru.AnimState:Hide("HAIR")

  guru.Transform:SetFourFaced()

  guru.Transform:SetRotation( 0 )

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

  local shadow = guru.entity:AddDynamicShadow()

  shadow:SetSize( 6, 3.5 )

  local minimap = guru.entity:AddMiniMapEntity()

  minimap:SetIcon( "obelisk.png" )

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

  guru:AddTag("guru")

  guru:RemoveTag("sharp")

  guru:RemoveComponent("weapon")

  guru:RemoveComponent("finiteuses")

  guru:RemoveComponent("inventoryitem")

  guru:RemoveComponent("equippable")

  guru:RemoveComponent("deployable")

  local light = guru.entity:AddLight()

  light:SetFalloff(1)

  light:SetIntensity(.8)

  light:SetRadius(10)

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

  light:Enable(true)

  guru:AddComponent("workable")

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

  guru.components.workable:SetWorkLeft(5)

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

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

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

  guru:Remove()

  end )

  guru:AddComponent("pickable")

  guru.components.pickable:SetUp("goldnugget", 480, math.random(15,25))

  guru.components.pickable:SetOnPickedFn(function(guru) guru.AnimState:SetBloomEffectHandle("") end )

  guru.components.pickable:SetOnRegenFn(function(guru) guru.AnimState:SetBloomEffectHandle("shaders/anim.ksh") end )

  guru:ListenForEvent( "daytime", function()

  for k = 1,math.random(10,25) do

  local pt0 = guru:GetPosition()

  local ground = GetWorld()

  local x = pt0.x+(math.random(50)-math.random(50))

  local z = pt0.z+(math.random(50)-math.random(50))

  local tile = ground.Map:GetTileAtPoint(x,0, z)

  if tile ~= GROUND.IMPASSABLE and tile ~= GROUND.INVALID then

  local militia = SpawnPrefab("ruins_bat")

  militia.Transform:SetPosition(x,0,z)

  militia.AnimState:SetBank("wilson")

  local buildnames = {"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}

  local buildname = buildnames[math.random(#buildnames)]

  militia.AnimState:SetBuild(buildname)

  militia.AnimState:OverrideSymbol("swap_hat", "hat_walrus", "swap_hat")

  militia.AnimState:OverrideSymbol("swap_body", "armor_wood", "swap_body")

  militia.AnimState:OverrideSymbol("swap_object", "swap_spear", "swap_spear")

  militia.AnimState:Show("HAT")

  militia.AnimState:Show("HAT_HAIR")

  militia.AnimState:Hide("HAIR_NOHAT")

  militia.AnimState:Hide("HAIR")

  militia.AnimState:Hide("ARM_normal")

  militia.AnimState:Show("ARM_carry")

  militia.AnimState:PlayAnimation("idle")

  militia.Transform:SetFourFaced()

  local shadow = militia.entity:AddDynamicShadow()

  shadow:SetSize( 1.3, .6 )

  MakeCharacterPhysics(militia, 75, .5)

  local minimap = militia.entity:AddMiniMapEntity()

  minimap:SetIcon( "statue_small.png" )

  militia:AddTag("militia")

  militia:AddComponent("locomotor")

  militia.components.locomotor.walkspeed = 5

  militia.components.locomotor.runspeed = 10

  militia:SetStateGraph("SGshadowwaxwell")

  local brain = require "brains/frogbrain"

  militia:SetBrain(brain)

  militia:RemoveTag("sharp")

  militia:RemoveComponent("weapon")

  militia:RemoveComponent("finiteuses")

  militia:RemoveComponent("inventoryitem")

  militia:RemoveComponent("equippable")

  militia:RemoveComponent("deployable")

  militia:AddComponent("follower")

  militia:AddComponent("knownlocations")

  militia:AddComponent("health")

  militia.components.health:SetMaxHealth(1200)

  militia.components.health.nofadeout = true

  militia:AddComponent("combat")

  militia.components.combat:SetDefaultDamage(20)

  militia.components.combat:SetAttackPeriod(1)

  militia.components.combat.hiteffectsymbol = "torso"

  militia.components.combat:SetRange(2, 3)

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

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

  return FindEntity(militia, 25, function(guy)

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

  return guy.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == guy or guy:HasTag("monster")

  end

  end )

  end

  end )

  militia.components.combat:SetKeepTargetFunction(function(militia, target) return target and target:IsValid() end )

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

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

  end )

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

  if not militia:HasTag("letsgo") then

  local brain = require "brains/abigailbrain"

  militia:SetBrain(brain)

  militia:RestartBrain()

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

  militia:AddTag("letsgo")

  else

  local brain = require "brains/frogbrain"

  militia:SetBrain(brain)

  militia:RestartBrain()

  militia.components.follower:SetLeader(nil)

  militia:RemoveTag("letsgo")

  end

  end

  militia:ListenForEvent( "nighttime", function() militia:Remove() end , GetWorld())

  end

  end

  end , GetWorld())

  end

  local function OnDeploy (inst, pt)

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

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

  createguru(inst)

  inst:Remove()

  end

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("guru") then

  data.guru = true

  end

  if inst:HasTag("militia") then

  data.militia = true

  end

  if inst:HasTag("letsgo") then

  data.letsgo = true

  end

  end

  local function onload(inst, data)

  if data and data.guru then

  createguru(inst)

  inst:Remove()

  end

  if data and data.militia then

  inst.AnimState:SetBank("wilson")

  local buildnames = {"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}

  local buildname = buildnames[math.random(#buildnames)]

  inst.AnimState:SetBuild(buildname)

  inst.AnimState:OverrideSymbol("swap_hat", "hat_walrus", "swap_hat")

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

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

  inst.AnimState:Show("HAT")

  inst.AnimState:Show("HAT_HAIR")

  inst.AnimState:Hide("HAIR_NOHAT")

  inst.AnimState:Hide("HAIR")

  inst.AnimState:Hide("ARM_normal")

  inst.AnimState:Show("ARM_carry")

  inst.AnimState:PlayAnimation("idle")

  inst.Transform:SetFourFaced()

  local shadow = inst.entity:AddDynamicShadow()

  shadow:SetSize( 1.3, .6 )

  MakeCharacterPhysics(inst, 75, .5)

  local minimap = inst.entity:AddMiniMapEntity()

  minimap:SetIcon( "statue_small.png" )

  inst:AddTag("militia")

  inst:AddComponent("locomotor")

  inst.components.locomotor.walkspeed = 5

  inst.components.locomotor.runspeed = 10

  inst:SetStateGraph("SGshadowwaxwell")

  local brain = require "brains/frogbrain"

  inst:SetBrain(brain)

  inst:RemoveTag("sharp")

  inst:RemoveComponent("weapon")

  inst:RemoveComponent("finiteuses")

  inst:RemoveComponent("inventoryitem")

  inst:RemoveComponent("equippable")

  inst:RemoveComponent("deployable")

  inst:AddComponent("follower")

  inst:AddComponent("knownlocations")

  inst:AddComponent("health")

  inst.components.health:SetMaxHealth(1200)

  inst.components.health.nofadeout = true

  inst:AddComponent("combat")

  inst.components.combat:SetDefaultDamage(20)

  inst.components.combat:SetAttackPeriod(1)

  inst.components.combat.hiteffectsymbol = "torso"

  inst.components.combat:SetRange(2, 3)

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

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

  return FindEntity(inst, 25, function(guy)

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

  return guy.components.combat.target == GetPlayer() or GetPlayer().components.combat.target == guy or guy:HasTag("monster")

  end

  end )

  end

  end )

  inst.components.combat:SetKeepTargetFunction(function(inst, target) return target and target:IsValid() end )

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

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

  end )

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

  if not inst:HasTag("letsgo") then

  local brain = require "brains/abigailbrain"

  inst:SetBrain(brain)

  inst:RestartBrain()

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

  inst:AddTag("letsgo")

  else

  local brain = require "brains/frogbrain"

  inst:SetBrain(brain)

  inst:RestartBrain()

  inst.components.follower:SetLeader(nil)

  inst:RemoveTag("letsgo")

  end

  end

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

  end

  if data and data.letsgo then

  local brain = require "brains/abigailbrain"

  inst:SetBrain(brain)

  inst:RestartBrain()

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

  inst:AddTag("letsgo")

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可在身上有1000个黄金时,用远古短棒种国王雕像(你自己的形象),宣誓你在这块大陆上的主权,将消费1000个黄金,身上黄金数不足时,不会种出雕像。当雕像发光时,代表当地的税收已经上缴(每日一次),用鼠标左键点雕像,可收到税款。每天白天,雕像周围会有警察巡逻,黑夜将离去,他们会攻击任何来犯的敌人。鼠标左键点警察(不要拿武器,以免误伤),可让他跟随你(黑夜离去),再次点击可解除跟随。在大陆各地树起国王雕像,建立你的王国,统治整块大陆吧。可通过小地图查看你的势力范围,国王雕像在小地图上显示为方尖碑图标,警察显示为天使雕像图标。不想要国王雕像时,用锤子砸掉即可。远古短棒在远古选项(画着远古祭坛)下,用3个活木头、4个铥矿石、4个噩梦燃料制造,制造时须靠近远古祭坛

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

责任编辑:Shy夏夏

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

本文是否解决了您的问题

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