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

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

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

第348页:我的果汁店

展开

二九八.我的果汁店(用治疗药膏种果汁店,自己制作果汁,顾客上门购买)

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

  local function itemtest(inst, item, slot)

  if item.prefab == "cave_banana" or item.prefab == "pomegranate" or item.prefab == "dragonfruit" then

  return true

  end

  return false

  end

  local slotpos = { Vector3(0,32+4,0), Vector3(0,-(32+4),0), Vector3(0,-(64+32+8+4),0)}

  local widgetbuttoninfo = {

  text = "Start",

  position = Vector3(0, -165, 0),

  fn = function(inst)

  if inst:HasTag("juicer") and inst.components.container:Has("cave_banana", 1) and inst.components.container:Has("pomegranate", 1) and inst.components.container:Has("dragonfruit", 1) then

  inst.components.container:ConsumeByName("cave_banana", 1)

  inst.components.container:ConsumeByName("pomegranate", 1)

  inst.components.container:ConsumeByName("dragonfruit", 1)

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

  local sweets = SpawnPrefab("healingsalve")

  sweets.AnimState:SetBank("food")

  sweets.AnimState:SetBuild("cook_pot_food")

  sweets.AnimState:PlayAnimation("fruitmedley", false)

  sweets:RemoveComponent("stackable")

  sweets:RemoveComponent("deployable")

  sweets.components.healer:SetHealthAmount(TUNING.HEALING_SUPERHUGE)

  sweets.components.inventoryitem:ChangeImageName("fruitmedley")

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

  sweets:AddTag("sweets")

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

  end

  end }

  inst:AddComponent("container")

  inst.components.container.widgetbuttoninfo = widgetbuttoninfo

  inst.components.container:SetNumSlots(#slotpos)

  inst.components.container.widgetslotpos = slotpos

  inst.components.container.widgetpos = Vector3(0,180,0)

  inst.components.container.side_align_tip = 160

  inst.components.container.itemtestfn = itemtest

  inst.components.container.canbeopened = false

  local function sweetshop(inst)

  local pt = inst:GetPosition()

  local shop = SpawnPrefab("healingsalve")

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

  shop.AnimState:SetBank("rabbithouse")

  shop.AnimState:SetBuild("rabbit_house")

  shop.AnimState:PlayAnimation("idle", true)

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

  shop:RemoveComponent("stackable")

  shop:RemoveComponent("inventoryitem")

  shop:RemoveComponent("healer")

  shop:RemoveComponent("deployable")

  local light = shop.entity:AddLight()

  light:SetFalloff(1)

  light:SetIntensity(.8)

  light:SetRadius(5)

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

  light:Enable(true)

  MakeLargeBurnable(shop)

  MakeLargePropagator(shop)

  shop:AddTag("shop")

  shop:DoPeriodicTask(2, function(shop)

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

  shop:DoTaskInTime(1, function() shop.AnimState:SetBloomEffectHandle("") end )

  end )

  shop:AddComponent("trader")

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

  if item.prefab == "goldnugget" then

  return true

  end

  return false

  end )

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

  local names = {"cave_banana","pomegranate","dragonfruit"}

  local name = names[math.random(#names)]

  local veggie = SpawnPrefab(name)

  if item.prefab == "goldnugget" then

  giver.components.inventory:GiveItem(veggie)

  end

  end

  local counter = SpawnPrefab("healingsalve")

  counter.Transform:SetPosition(pt.x+2+1.8, 0, pt.z+2-1.8)

  counter.AnimState:SetBank("winter_meter")

  counter.AnimState:SetBuild("winter_meter")

  counter.AnimState:SetPercent("meter", 0)

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

  counter.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )

  counter.AnimState:SetLayer( LAYER_BACKGROUND )

  counter.AnimState:SetSortOrder( 1 )

  counter.Transform:SetRotation( 135 )

  counter.AnimState:SetMultColour(255/255,255/255,255/255,0)

  counter:RemoveComponent("stackable")

  counter:RemoveComponent("inventoryitem")

  counter:RemoveComponent("healer")

  counter:RemoveComponent("deployable")

  MakeLargeBurnable(counter)

  MakeLargePropagator(counter)

  counter:AddTag("NOCLICK")

  counter:AddTag("goodbye")

  local juicer = SpawnPrefab("healingsalve")

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

  juicer.AnimState:SetBank("researchlab2")

  juicer.AnimState:SetBuild("researchlab2")

  juicer.AnimState:PlayAnimation("idle")

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

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

  juicer:RemoveComponent("stackable")

  juicer:RemoveComponent("inventoryitem")

  juicer:RemoveComponent("healer")

  juicer:RemoveComponent("deployable")

  juicer.components.container.canbeopened = true

  MakeLargeBurnable(juicer)

  MakeLargePropagator(juicer)

  juicer:AddTag("juicer")

  juicer:AddTag("goodbye")

  local sweetsign = SpawnPrefab("healingsalve")

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

  sweetsign.AnimState:SetBank("sign_home")

  sweetsign.AnimState:SetBuild("sign_home")

  sweetsign.AnimState:PlayAnimation("idle")

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

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

  MakeLargeBurnable(sweetsign)

  MakeLargePropagator(sweetsign)

  sweetsign:AddTag("goodbye")

  sweetsign:RemoveComponent("stackable")

  sweetsign:RemoveComponent("inventoryitem")

  sweetsign:RemoveComponent("healer")

  sweetsign:RemoveComponent("deployable")

  sweetsign:ListenForEvent( "nighttime", function()

  sweetsign:RemoveTag("openshop")

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

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

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

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

  for k,v in pairs(ents) do

  if v:HasTag("customers") then

  v:Remove()

  end

  end

  end, GetWorld())

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

  if not sweetsign:HasTag("openshop") then

  local target0 = FindEntity(sweetsign, 10, function(guy)

  return guy:HasTag("sweets") and guy.components.inventoryitem and not guy.components.inventoryitem:IsHeld()

  end )

  if target0 then

  sweetsign:AddTag("openshop")

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

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

  for k = 1, math.random(8,16) do

  local pt1 = sweetsign:GetPosition()

  local customer = SpawnPrefab("healingsalve")

  customer.Transform:SetPosition(pt1.x+(math.random(30)-math.random(30)), 0, pt1.z+(math.random(30)-math.random(30)))

  customer.AnimState:SetBank("wilson")

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

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

  customer.AnimState:SetBuild(buildname)

  local hats = {"hat_bee","hat_beefalo","hat_bush","hat_earmuffs","hat_feather","hat_flower","hat_football","hat_miner","hat_ruins","hat_slurper","hat_slurtle","hat_spider","hat_straw","hat_top","hat_walrus","hat_winter"}

  local hat = hats[math.random(#hats)]

  customer.AnimState:OverrideSymbol("swap_hat", hat, "swap_hat")

  local armors = {"armor_grass","armor_marble","armor_onemanband","armor_ruins","armor_sanity","armor_slurper","armor_slurtleshell","armor_sweatervest","armor_trunkvest_summer","armor_trunkvest_winter","armor_wood"}

  local armor = armors[math.random(#armors)]

  customer.AnimState:OverrideSymbol("swap_body", armor, "swap_body")

  customer.AnimState:Show("HAT")

  customer.AnimState:Show("HAT_HAIR")

  customer.AnimState:Hide("HAIR_NOHAT")

  customer.AnimState:Hide("HAIR")

  customer.AnimState:Hide("ARM_carry")

  customer.AnimState:Show("ARM_normal")

  customer.AnimState:PlayAnimation("idle")

  customer.Transform:SetFourFaced()

  local sound = customer.entity:AddSoundEmitter()

  local shadow = customer.entity:AddDynamicShadow()

  shadow:SetSize( 1.3, .6 )

  customer:RemoveComponent("stackable")

  customer:RemoveComponent("inventoryitem")

  customer:RemoveComponent("healer")

  customer:RemoveComponent("deployable")

  customer:AddComponent("locomotor")

  customer.components.locomotor.walkspeed = 4

  customer.components.locomotor.runspeed = 8

  customer:SetStateGraph("SGshadowwaxwell")

  local brain = require "brains/frogbrain"

  customer:SetBrain(brain)

  customer:AddComponent("health")

  customer.components.health:SetMaxHealth(1000)

  customer.components.health:SetInvincible(true)

  customer.components.health.nofadeout = true

  customer:AddComponent("combat")

  customer:AddComponent("knownlocations")

  customer:AddTag("customers")

  customer:AddTag("goodbye")

  customer.task1 = customer:DoPeriodicTask(3, function(customer)

  if math.random() < 0.1 then

  local target = FindEntity(customer, 100, function(guy)

  return guy:HasTag("sweets") and guy.components.inventoryitem and not guy.components.inventoryitem:IsHeld()

  end )

  if target then

  customer.components.locomotor:Stop()

  customer:SetBrain(nil)

  customer.components.locomotor:GoToEntity(target)

  customer.task2 = customer:DoPeriodicTask(.25, function(customer)

  local target2 = FindEntity(customer, 1, function(guy)

  return guy:HasTag("sweets") and guy.components.inventoryitem and not guy.components.inventoryitem:IsHeld()

  end )

  if target2 then

  customer.AnimState:PlayAnimation("pickup")

  for k = 1, 6 do

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

  end

  target2:Remove()

  local brain = require "brains/frogbrain"

  customer:SetBrain(brain)

  customer:RestartBrain()

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

  end

  end )

  customer:DoTaskInTime(8, function(customer)

  local brain = require "brains/frogbrain"

  customer:SetBrain(brain)

  customer:RestartBrain()

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

  end )

  else

  local brain = require "brains/frogbrain"

  customer:SetBrain(brain)

  customer:RestartBrain()

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

  end

  end

  end )

  end

  end

  else

  sweetsign:RemoveTag("openshop")

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

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

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

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

  for k,v in pairs(ents) do

  if v:HasTag("customers") then

  v:Remove()

  end

  end

  end

  end

  end

  local function OnDeploy (inst, pt)

  sweetshop(inst)

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

  end

  inst:AddComponent("deployable")

  inst.components.deployable.ondeploy = OnDeploy

  local function onsave(inst, data)

  if inst:HasTag("shop") then

  data.shop = true

  end

  if inst:HasTag("goodbye") then

  data.goodbye = true

  end

  if inst:HasTag("sweets") then

  data.sweets = true

  end

  end

  local function onload(inst, data)

  if data and data.shop then

  sweetshop(inst)

  inst:Remove()

  end

  if data and data.goodbye then

  inst:Remove()

  end

  if data and data.sweets then

  inst.AnimState:SetBank("food")

  inst.AnimState:SetBuild("cook_pot_food")

  inst.AnimState:PlayAnimation("fruitmedley", false)

  inst:RemoveComponent("stackable")

  inst:RemoveComponent("deployable")

  inst.components.healer:SetHealthAmount(TUNING.HEALING_SUPERHUGE)

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

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

  inst:AddTag("sweets")

  end

  end

  inst.OnSave = onsave

  inst.OnLoad = onload

  即可用治疗药膏种我的果汁店(手里拿着1个治疗药膏对地面点鼠标右键,如果拿着多个治疗药膏,则不会种出来),拿着黄金对库房(大胡萝卜)点鼠标左键,可以购入果汁原料,分别是火龙果、香蕉、石榴,每个水果1个黄金,当然你也可以用自己种的水果。将三种水果放入右边的榨汁机(拿着水果对榨汁机点鼠标左键),然后按Start按钮,将开始榨汁,榨完后果汁自动装入主角物品栏。将果汁放在柜台上(地上半透明的长方形),点左边的牌子就可以开张了(柜台上没有果汁则无法开张),会有顾客上门购买,每份售价6个黄金。想打烊,就再次点击牌子即可。黑夜来临时会自动打烊,回家休息吧,当然你也可以再次点牌子开张,但夜里的顾客都昏昏欲睡。出售的果汁自己也可以喝(在物品栏里对果汁点鼠标右键),可大幅补充生命值。不想要果汁店时,烧掉即可,记得先打烊哦。治疗药膏在生存选项(画着绳套)下,用2个灰、1个石头、1个蜘蛛腺体制造

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

责任编辑:Shy夏夏

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

本文是否解决了您的问题

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