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

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

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

第202页:天使蝴蝶

展开

二零二.天使蝴蝶(用雨衣种天使蝴蝶,为你照亮,电击来犯之敌,可收入物品栏)

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

  local function OnDeploy (inst, pt)

  local scalewing = SpawnPrefab("raincoat")

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

  scalewing.AnimState:SetBank("butterfly")

  scalewing.AnimState:SetBuild("butterfly_basic")

  scalewing.AnimState:PlayAnimation("idle")

  scalewing.AnimState:SetRayTestOnBB(true);

  scalewing.Transform:SetTwoFaced()

  scalewing.Transform:SetScale(1.5, 1.5, 1.5)

  scalewing.AnimState:SetMultColour(255/255,0/255,115/255,0.8)

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

  scalewing.entity:AddSoundEmitter()

  local shadow = scalewing.entity:AddDynamicShadow()

  shadow:SetSize(.8, .5)

  RemovePhysicsColliders(scalewing)

  scalewing.entity:AddLight()

  scalewing.Light:SetFalloff(1)

  scalewing.Light:SetIntensity(.8)

  scalewing.Light:SetRadius(12)

  scalewing.Light:SetColour(180/255, 195/255, 50/255)

  scalewing.Light:Enable(true)

  scalewing:RemoveComponent("inventoryitem")

  scalewing:RemoveComponent("equippable")

  scalewing:RemoveComponent("waterproofer")

  scalewing:RemoveComponent("fueled")

  scalewing:RemoveComponent("insulator")

  scalewing:RemoveComponent("deployable")

  scalewing:AddComponent("inventoryitem")

  scalewing.components.inventoryitem:ChangeImageName("butterfly")

  scalewing:AddComponent("named")

  scalewing.components.named:SetName("Butterfly")

  scalewing:AddComponent("follower")

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

  scalewing:AddComponent("locomotor")

  scalewing.components.locomotor.walkspeed = 8

  scalewing:SetStateGraph("SGbutterfly")

  local brain = require "brains/abigailbrain"

  scalewing:SetBrain(brain)

  scalewing:AddComponent("health")

  scalewing.components.health:SetMaxHealth(10)

  scalewing.components.health:SetInvincible(true)

  scalewing:AddComponent("combat")

  scalewing.components.combat:SetDefaultDamage(0)

  scalewing.components.combat:SetRange(2)

  scalewing.components.combat:SetAttackPeriod(0.5)

  scalewing.components.combat:SetRetargetFunction(1, function(scalewing)

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

  return FindEntity(GetPlayer(), 20, 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.components.combat.target == scalewing or scalewing.components.combat.target == guy or guy:HasTag("monster")

  end

  end)

  end

  end )

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

  scalewing:AddTag("duty")

  scalewing.task = scalewing:DoPeriodicTask(0.5, function(scalewing)

  local target = FindEntity(scalewing, 3, 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.components.combat.target == scalewing or scalewing.components.combat.target == guy or guy:HasTag("monster")

  end

  end )

  if target then

  if target.components.combat then target.components.combat:SetTarget(scalewing) end

  if target.components.locomotor then target.components.locomotor:Stop() end

  SpawnPrefab("lightning_rod_fx").Transform:SetPosition(target.Transform:GetWorldPosition())

  scalewing.SoundEmitter:PlaySound("dontstarve/common/lightningrod")

  target.components.health:DoDelta(-100)

  end

  end )

  scalewing.components.inventoryitem:SetOnDroppedFn(function(scalewing)

  scalewing:AddTag("duty")

  scalewing.Light:Enable(true)

  scalewing.task = scalewing:DoPeriodicTask(0.5, function(scalewing)

  local target = FindEntity(scalewing, 3, 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.components.combat.target == scalewing or scalewing.components.combat.target == guy or guy:HasTag("monster")

  end

  end )

  if target then

  if target.components.combat then target.components.combat:SetTarget(scalewing) end

  if target.components.locomotor then target.components.locomotor:Stop() end

  SpawnPrefab("lightning_rod_fx").Transform:SetPosition(target.Transform:GetWorldPosition())

  scalewing.SoundEmitter:PlaySound("dontstarve/common/lightningrod")

  target.components.health:DoDelta(-100)

  end

  end )

  end )

  scalewing.components.inventoryitem:SetOnPickupFn(function(scalewing)

  scalewing:RemoveTag("duty")

  scalewing.Light:Enable(false)

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

  end )

  scalewing.components.inventoryitem:SetOnPutInInventoryFn(function(scalewing)

  scalewing:RemoveTag("duty")

  scalewing.Light:Enable(false)

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

  end )

  scalewing:AddTag("scalewings")

  inst:Remove()

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("scalewings") then

  data.scalewings = true

  end

  if inst:HasTag("duty") then

  data.duty = true

  end

  end

  local function onload(inst, data)

  if data and data.scalewings then

  inst.AnimState:SetBank("butterfly")

  inst.AnimState:SetBuild("butterfly_basic")

  inst.AnimState:PlayAnimation("idle")

  inst.AnimState:SetRayTestOnBB(true);

  inst.Transform:SetTwoFaced()

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

  inst.AnimState:SetMultColour(255/255,0/255,115/255,0.8)

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

  inst.entity:AddSoundEmitter()

  local shadow = inst.entity:AddDynamicShadow()

  shadow:SetSize(.8, .5)

  RemovePhysicsColliders(inst)

  inst.entity:AddLight()

  inst.Light:SetFalloff(1)

  inst.Light:SetIntensity(.8)

  inst.Light:SetRadius(12)

  inst.Light:SetColour(180/255, 195/255, 50/255)

  inst.Light:Enable(true)

  inst:RemoveComponent("inventoryitem")

  inst:RemoveComponent("equippable")

  inst:RemoveComponent("waterproofer")

  inst:RemoveComponent("fueled")

  inst:RemoveComponent("insulator")

  inst:RemoveComponent("deployable")

  inst:AddComponent("inventoryitem")

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

  inst:AddComponent("named")

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

  inst:AddComponent("follower")

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

  inst:AddComponent("locomotor")

  inst.components.locomotor.walkspeed = 8

  inst:SetStateGraph("SGbutterfly")

  local brain = require "brains/abigailbrain"

  inst:SetBrain(brain)

  inst:AddComponent("health")

  inst.components.health:SetMaxHealth(10)

  inst.components.health:SetInvincible(true)

  inst:AddComponent("combat")

  inst.components.combat:SetDefaultDamage(0)

  inst.components.combat:SetRange(2)

  inst.components.combat:SetAttackPeriod(0.5)

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

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

  return FindEntity(GetPlayer(), 20, 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.components.combat.target == inst or inst.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.components.inventoryitem:SetOnDroppedFn(function(inst)

  inst:AddTag("duty")

  inst.Light:Enable(true)

  inst.task = inst:DoPeriodicTask(0.5, function(inst)

  local target = FindEntity(inst, 3, 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.components.combat.target == inst or inst.components.combat.target == guy or guy:HasTag("monster")

  end

  end )

  if target then

  if target.components.combat then target.components.combat:SetTarget(inst) end

  if target.components.locomotor then target.components.locomotor:Stop() end

  SpawnPrefab("lightning_rod_fx").Transform:SetPosition(target.Transform:GetWorldPosition())

  inst.SoundEmitter:PlaySound("dontstarve/common/lightningrod")

  target.components.health:DoDelta(-100)

  end

  end )

  end )

  inst.components.inventoryitem:SetOnPickupFn(function(inst)

  inst:RemoveTag("duty")

  inst.Light:Enable(false)

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

  end )

  inst.components.inventoryitem:SetOnPutInInventoryFn(function(inst)

  inst:RemoveTag("duty")

  inst.Light:Enable(false)

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

  end )

  inst:AddTag("scalewings")

  end

  if data and data.duty then

  inst:AddTag("duty")

  inst.task = inst:DoPeriodicTask(0.5, function(inst)

  local target = FindEntity(inst, 3, 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.components.combat.target == inst or inst.components.combat.target == guy or guy:HasTag("monster")

  end

  end )

  if target then

  if target.components.combat then target.components.combat:SetTarget(inst) end

  if target.components.locomotor then target.components.locomotor:Stop() end

  SpawnPrefab("lightning_rod_fx").Transform:SetPosition(target.Transform:GetWorldPosition())

  inst.SoundEmitter:PlaySound("dontstarve/common/lightningrod")

  target.components.health:DoDelta(-100)

  end

  end )

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可用雨衣种天使蝴蝶,会跟随你,为你照亮。任何企图攻击你的敌人,都会遭到天使蝴蝶的电击,杀伤其生命值,并阻止其靠近你。鼠标左键点击天使蝴蝶,可收入物品栏,显示为蝴蝶图标。不想要天使蝴蝶了,在物品栏中对其按鼠标右键即可。雨衣在穿戴选项(画着礼帽)下,用2个触手皮、2个绳子、2个硬骨头制造

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

责任编辑:Shy夏夏

上一页 201 202 203 204 205 206 207 208 209 210 211 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

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