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

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

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

第357页:炸弹客

展开

三零七.炸弹客(用红色护身符种炸弹客,购买遥控炸弹,放在地上按键盘Delete键引爆)

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

  TheInput:AddKeyUpHandler(KEY_DELETE, function()

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

  inst:DoTaskInTime(0.1, function()

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

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

  for k,v in pairs(ents) do

  if v:HasTag("bomballright") and v.components.inventoryitem and not v.components.inventoryitem:IsHeld() then

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

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

  for k,i in pairs(ents1) do

  if i.components.combat and i.components.health and not i.components.health:IsDead() and not i:HasTag("player") then

  SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(i.Transform:GetWorldPosition())

  i.components.health:Kill()

  end

  if i.components.workable and i.components.workable.workleft > 0 and not i.components.inventoryitem then

  SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(i.Transform:GetWorldPosition())

  i.components.workable:Destroy(v)

  end

  end

  GetPlayer().SoundEmitter:PlaySound("dontstarve_DLC001/creatures/glommer/foot_ground")

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

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

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

  GetClock():DoLightningLighting()

  GetPlayer().components.playercontroller:ShakeCamera(v, "FULL", 0.7, 0.02, .5, 40)

  v:Remove()

  end

  end

  end )

  end )

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

  local function makebomber(inst)

  local pt = inst:GetPosition()

  local bomber = SpawnPrefab("amulet")

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

  bomber.AnimState:SetBank("wilson")

  bomber.AnimState:SetBuild("wx78")

  bomber.AnimState:OverrideSymbol("swap_hat", "hat_catcoon", "swap_hat")

  bomber.AnimState:OverrideSymbol("swap_body", "swap_krampus_sack", "backpack")

  bomber.AnimState:OverrideSymbol("swap_body", "swap_krampus_sack", "swap_body")

  bomber.AnimState:Show("HAT")

  bomber.AnimState:Show("HAT_HAIR")

  bomber.AnimState:Hide("HAIR_NOHAT")

  bomber.AnimState:Hide("HAIR")

  bomber.AnimState:Hide("ARM_carry")

  bomber.AnimState:Show("ARM_normal")

  bomber.Transform:SetFourFaced()

  bomber.AnimState:PlayAnimation("idle")

  bomber:RemoveComponent("equippable")

  bomber:RemoveComponent("inventoryitem")

  bomber:RemoveComponent("finiteuses")

  bomber:RemoveComponent("deployable")

  MakeLargeBurnable(bomber)

  MakeLargePropagator(bomber)

  bomber:AddComponent("trader")

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

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

  if item.prefab == "goldnugget" then

  return true

  end

  end

  return false

  end )

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

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

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

  bomber.AnimState:PlayAnimation("give")

  local bomb = SpawnPrefab("amulet")

  bomb.AnimState:SetBank("bee_mine_maxwell")

  bomb.AnimState:SetBuild("bee_mine_maxwell")

  bomb.AnimState:PlayAnimation("idle")

  bomb.Transform:SetScale(0.8, 0.8, 0.8)

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

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

  bomb:AddComponent("named")

  bomb.components.named:SetName("Bomb")

  local minimap = bomb.entity:AddMiniMapEntity()

  minimap:SetIcon( "beemine.png" )

  bomb:RemoveComponent("equippable")

  bomb:RemoveComponent("inventoryitem")

  bomb:RemoveComponent("finiteuses")

  bomb:RemoveComponent("deployable")

  bomb:AddComponent("inventoryitem")

  bomb.components.inventoryitem:ChangeImageName("beemine")

  bomb.components.inventoryitem:SetOnDroppedFn(function()

  bomb:AddTag("bomballright")

  end )

  bomb.components.inventoryitem:SetOnPickupFn(function()

  bomb:RemoveTag("bomballright")

  end )

  bomb.components.inventoryitem:SetOnPutInInventoryFn(function()

  bomb:RemoveTag("bomballright")

  end )

  bomb:AddTag("bomb")

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

  end

  bomber:AddTag("bomber")

  for k = 1, 11 do

  local result_offset = FindValidPositionByFan(1 * 2 * PI, 2, 11, 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 bombbye = SpawnPrefab("amulet")

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

  bombbye.AnimState:SetBank("bee_mine_maxwell")

  bombbye.AnimState:SetBuild("bee_mine_maxwell")

  bombbye.AnimState:PlayAnimation("idle")

  bombbye.Transform:SetScale(0.8, 0.8, 0.8)

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

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

  bombbye:RemoveComponent("equippable")

  bombbye:RemoveComponent("inventoryitem")

  bombbye:RemoveComponent("finiteuses")

  bombbye:RemoveComponent("deployable")

  MakeLargeBurnable(bombbye)

  MakeLargePropagator(bombbye)

  bombbye:AddTag("NOCLICK")

  bombbye:AddTag("bombbye")

  end

  end

  end

  local function OnDeploy (inst, pt)

  makebomber(inst)

  inst:Remove()

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("bomber") then

  data.bomber = true

  end

  if inst:HasTag("bombbye") then

  data.bombbye = true

  end

  if inst:HasTag("bomb") then

  data.bomb = true

  end

  if inst:HasTag("bomballright") then

  data.bomballright = true

  end

  end

  local function onload(inst, data)

  if data and data.bomber then

  makebomber(inst)

  inst:Remove()

  end

  if data and data.bombbye then

  inst:Remove()

  end

  if data and data.bomb then

  inst.AnimState:SetBank("bee_mine_maxwell")

  inst.AnimState:SetBuild("bee_mine_maxwell")

  inst.AnimState:PlayAnimation("idle")

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

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

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

  inst:AddComponent("named")

  inst.components.named:SetName("Bomb")

  local minimap = inst.entity:AddMiniMapEntity()

  minimap:SetIcon( "beemine.png" )

  inst:RemoveComponent("equippable")

  inst:RemoveComponent("inventoryitem")

  inst:RemoveComponent("finiteuses")

  inst:RemoveComponent("deployable")

  inst:AddComponent("inventoryitem")

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

  inst.components.inventoryitem:SetOnDroppedFn(function()

  inst:AddTag("bomballright")

  end )

  inst.components.inventoryitem:SetOnPickupFn(function()

  inst:RemoveTag("bomballright")

  end )

  inst.components.inventoryitem:SetOnPutInInventoryFn(function()

  inst:RemoveTag("bomballright")

  end )

  inst:AddTag("bomb")

  end

  if data and data.bomballright then

  inst:AddTag("bomballright")

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可用红色护身符种炸弹客,给炸弹客10个黄金(拿着黄金对炸弹客点鼠标左键),可购买遥控炸弹,将炸弹放在地上,按键盘Delete键可遥控引爆,能炸死除主角外的任何生物,炸毁建筑、树木等。遥控炸弹在小地图上显示为炸弹图标,引爆时不要让同伴靠近。不想要炸弹客了,烧掉即可(拿着火炬对其点鼠标右键)。红色护身符在魔法选项(画着红骷髅)下,用3个黄金、2个噩梦燃料、1个红宝石制造

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

责任编辑:Shy夏夏

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

本文是否解决了您的问题

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