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

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

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

第360页:疯狂躲避球

展开

三一0.疯狂躲避球(用浣熊尾巴种躲避球场,在圈内60秒不被球打到,赢50个黄金)

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

  local function makecourt(inst)

  local pt = inst:GetPosition()

  local caddie = SpawnPrefab("coontail")

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

  caddie.AnimState:SetBank("wilson")

  caddie.AnimState:SetBuild("wes")

  caddie.AnimState:OverrideSymbol("swap_hat", "hat_football", "swap_hat")

  caddie.AnimState:OverrideSymbol("swap_body", "armor_sweatervest", "swap_body")

  caddie.AnimState:Show("HAT")

  caddie.AnimState:Show("HAT_HAIR")

  caddie.AnimState:Hide("HAIR_NOHAT")

  caddie.AnimState:Hide("HAIR")

  caddie.AnimState:Hide("ARM_carry")

  caddie.AnimState:Show("ARM_normal")

  caddie.Transform:SetFourFaced()

  caddie.AnimState:PlayAnimation("idle")

  caddie:RemoveComponent("inventoryitem")

  caddie:RemoveComponent("stackable")

  caddie:RemoveComponent("deployable")

  caddie:RemoveTag("cattoy")

  caddie:AddComponent("workable")

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

  caddie.components.workable:SetWorkLeft(1)

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

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

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

  GetPlayer().SoundEmitter:KillSound("beavermusic")

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

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

  for k,v in pairs(ents) do

  if v:HasTag("border") or v:HasTag("landmine") then

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

  v:Remove()

  end

  end

  caddie:Remove()

  end )

  caddie:AddComponent("named")

  caddie.components.named:SetName("Pitcher")

  caddie:AddComponent("talker")

  caddie:AddComponent("trader")

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

  if not caddie:HasTag("startgame") then

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

  if item.prefab == "goldnugget" then

  return true

  end

  end

  end

  return false

  end )

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

  caddie:AddTag("startgame")

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

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

  caddie.components.talker:Say("Are you ready ?", 3, false)

  GetPlayer().SoundEmitter:PlaySound("dontstarve/music/music_hoedown", "beavermusic")

  for k = 1, 10 do

  local landmine = SpawnPrefab("coontail")

  landmine.Transform:SetPosition(pt.x+(math.random(7)-math.random(7)), 0, pt.z+(math.random(7)-math.random(7)))

  landmine.AnimState:SetBank("bee_mine")

  landmine.AnimState:SetBuild("bee_mine")

  landmine.AnimState:PlayAnimation("idle")

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

  landmine.AnimState:SetMultColour(255/255,105/255,0/255,1)

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

  landmine:RemoveComponent("inventoryitem")

  landmine:RemoveComponent("stackable")

  landmine:RemoveComponent("deployable")

  landmine:RemoveTag("cattoy")

  landmine.persists = false

  landmine:DoPeriodicTask(0.01, function()

  local pos0 = Vector3(landmine.Transform:GetWorldPosition())

  local ents0 = TheSim:FindEntities(pos0.x,pos0.y,pos0.z, 1)

  for k,v in pairs(ents0) do

  if v and v:HasTag("player") and not v:HasTag("pain")then

  v:AddTag("pain")

  v.sg:GoToState("hit")

  if v.components.health then v.components.health:DoDelta(-3) end

  v:DoTaskInTime(0.5, function() v:RemoveTag("pain") end )

  end

  end

  end )

  landmine:AddTag("landmine")

  end

  caddie:DoTaskInTime(3, function()

  caddie.components.talker:Say("Go !", 1, false)

  GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")

  caddie.task = caddie:DoPeriodicTask(0.4, function(caddie)

  local target = FindEntity(caddie, 9, function(guy)

  return guy:HasTag("player")

  end )

  if target then

  caddie.Transform:SetRotation(GetPlayer().Transform:GetRotation() - 180)

  caddie.AnimState:PlayAnimation("give")

  local dodgeball = SpawnPrefab("coontail")

  dodgeball.AnimState:SetBank("bulb")

  dodgeball.AnimState:SetBuild("bulb")

  dodgeball.AnimState:PlayAnimation("idle")

  dodgeball.Transform:SetPosition(pt.x, 0, pt.z)

  dodgeball:RemoveComponent("inventoryitem")

  dodgeball:RemoveComponent("stackable")

  dodgeball:RemoveComponent("deployable")

  dodgeball:RemoveTag("cattoy")

  dodgeball.persists = false

  dodgeball:AddComponent("complexprojectile")

  dodgeball.components.complexprojectile.yOffset = 1

  if math.random()<.5 then

  local targetpos = target:GetPosition()

  dodgeball.components.complexprojectile:Launch(targetpos)

  else

  dodgeball.components.complexprojectile:Launch(Point(pt.x+(math.random(9)-math.random(9)), 0, pt.z+(math.random(9)-math.random(9))))

  end

  dodgeball.components.complexprojectile:SetOnHit(function()

  SpawnPrefab("small_puff").Transform:SetPosition(dodgeball.Transform:GetWorldPosition())

  dodgeball:Remove()

  end )

  dodgeball:DoPeriodicTask(0.01, function()

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

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

  for k,v in pairs(ents) do

  if v and v:HasTag("player") then

  v.sg:GoToState("hit")

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

  if caddie.task2 then caddie.task2:Cancel() caddie.task2 = nil end

  caddie.Transform:SetRotation( 0 )

  caddie.AnimState:PlayAnimation("idle_onemanband1_loop",true)

  caddie:DoTaskInTime(2, function() caddie.AnimState:PlayAnimation("idle") end )

  caddie.components.talker:Say("Game over !", 3, false)

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

  GetPlayer().SoundEmitter:KillSound("beavermusic")

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

  dodgeball:Remove()

  local pos1 = Vector3(caddie.Transform:GetWorldPosition())

  local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 10)

  for k,v in pairs(ents1) do

  if v:HasTag("landmine") then

  v:Remove()

  end

  end

  caddie:RemoveTag("startgame")

  end

  end

  end )

  else

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

  if caddie.task2 then caddie.task2:Cancel() caddie.task2 = nil end

  caddie.Transform:SetRotation( 0 )

  caddie.AnimState:PlayAnimation("idle_onemanband1_loop",true)

  caddie:DoTaskInTime(2, function() caddie.AnimState:PlayAnimation("idle") end )

  caddie.components.talker:Say("Game over !", 3, false)

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

  GetPlayer().SoundEmitter:KillSound("beavermusic")

  local pos1 = Vector3(caddie.Transform:GetWorldPosition())

  local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 10)

  for k,v in pairs(ents1) do

  if v:HasTag("landmine") then

  v:Remove()

  end

  end

  caddie:RemoveTag("startgame")

  end

  end )

  end )

  caddie.task2 = caddie:DoTaskInTime(63, function()

  if caddie:HasTag("startgame") then

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

  if caddie.task2 then caddie.task2:Cancel() caddie.task2 = nil end

  caddie.Transform:SetRotation( 0 )

  caddie.AnimState:PlayAnimation("give")

  caddie.components.talker:Say("You win !", 3, false)

  GetPlayer().SoundEmitter:KillSound("beavermusic")

  caddie:StartThread(function()

  for k = 1, 10 do

  GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")

  Sleep(0.15)

  end

  end )

  for k = 1, 50 do

  local goldnugget = SpawnPrefab("goldnugget")

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

  end

  local pos1 = Vector3(caddie.Transform:GetWorldPosition())

  local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 10)

  for k,v in pairs(ents1) do

  if v:HasTag("landmine") then

  v:Remove()

  end

  end

  caddie:RemoveTag("startgame")

  end

  end )

  end

  caddie:AddTag("caddie")

  for k = 1, 50 do

  local result_offset = FindValidPositionByFan(1 * 2 * PI, 8.5, 50, function(offset)

  local x,y,z = (pt + offset):Get()

  local ents = TheSim:FindEntities(x,y,z , 1)

  return not next(ents)

  end)

  if result_offset then

  local border = SpawnPrefab("coontail")

  border.Transform:SetPosition((pt + result_offset):Get())

  border.AnimState:SetBank("bulb")

  border.AnimState:SetBuild("bulb")

  border.AnimState:PlayAnimation("idle")

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

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

  border.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )

  border.AnimState:SetLayer( LAYER_BACKGROUND )

  border.AnimState:SetSortOrder( 1 )

  border:RemoveComponent("inventoryitem")

  border:RemoveComponent("stackable")

  border:RemoveComponent("deployable")

  border:RemoveTag("cattoy")

  border:DoPeriodicTask(2, function(shopsign)

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

  border:DoTaskInTime(1, function() border.AnimState:SetMultColour(255/255,0/255,0/255,1) end )

  end )

  border:AddTag("NOCLICK")

  border:AddTag("border")

  end

  end

  end

  local function OnDeploy (inst, pt)

  makecourt(inst)

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

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("caddie") then

  data.caddie = true

  end

  if inst:HasTag("border") then

  data.border = true

  end

  end

  local function onload(inst, data)

  if data and data.caddie then

  makecourt(inst)

  inst:Remove()

  end

  if data and data.border then

  inst:Remove()

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可在空旷的地上,用浣熊尾巴种躲避球场(拿着1个浣熊尾巴对地面点鼠标右键,如果拿着多个,则不会种出来)。给投手10个黄金玩一次(拿着黄金对投手点鼠标左键),他会不断向你扔球,在不跑出圆圈边界、不被砸到的情况下,坚持60秒,就可赢得50个黄金的奖励。球场内会随机出现障碍物,碰到会被扎伤(减3点血),绕着点跑吧。不想要躲避球场了,用锤子砸投手即可

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

责任编辑:Shy夏夏

上一页 351 352 353 354 355 356 357 358 359 360 361 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

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