中级玩家
 
- 贡献度
- 0
- 金元
- 1932
- 积分
- 193
- 精华
- 0
- 注册时间
- 2014-2-20
|
我把内容贴出来 省的你找了
二七五.企鹅养殖场(用蜂巢种企鹅养殖场,买小企鹅,养大后卖出赚黄金)
用记事本打开游戏目录\data\scripts\prefabs\honeycomb.lua文件,在inst:AddComponent
("inspectable")的下一行插入以下内容:
local function penguinshop(inst)
local pt = inst:GetPosition()
local peddler = SpawnPrefab("honeycomb")
peddler.Transform:SetPosition(pt.x, pt.y, pt.z)
peddler.AnimState:SetBank("wilson")
peddler.AnimState:SetBuild("willow")
peddler.AnimState:OverrideSymbol("swap_hat", "hat_straw", "swap_hat")
peddler.AnimState:Show("HAT")
peddler.AnimState:Show("HAT_HAIR")
peddler.AnimState:Hide("HAIR_NOHAT")
peddler.AnimState:Hide("HAIR")
peddler.AnimState:OverrideSymbol("swap_body", "armor_grass", "swap_body")
peddler.AnimState:Hide("ARM_carry")
peddler.AnimState:Show("ARM_normal")
peddler.Transform:SetFourFaced()
peddler.AnimState layAnimation("idle")
peddler:AddTag("peddler")
peddler:RemoveComponent("stackable")
peddler:RemoveComponent("tradable")
peddler:RemoveComponent("inventoryitem")
peddler:AddComponent("heater")
peddler.components.heater.heat = 180
local light = peddler.entity:AddLight()
light:SetFalloff(1)
light:SetIntensity(.8)
light:SetRadius(10)
light:SetColour(180/255, 195/255, 50/255)
light:Enable(true)
MakeLargeBurnable(peddler)
MakeLargePropagator(peddler)
peddler.components.inspectable.getstatus = function(peddler)
peddler.AnimState layAnimation("give")
GetPlayer().SoundEmitter laySound("dontstarve/HUD/get_gold")
local pos = Vector3(peddler.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 50)
for k,v in pairs(ents) do
if v:HasTag("penguin_2") then
for k = 1, 20 do
SpawnPrefab("goldnugget").Transform:SetPosition
(v.Transform:GetWorldPosition())
end
v:Remove()
end
end
end
peddler:AddComponent("trader")
peddler.components.trader:SetAcceptTest(function(peddler, item)
if GetPlayer().components.inventory:Has("goldnugget", 10) then
if item.prefab == "goldnugget" then
return true
end
end
return false
end )
peddler.components.trader.onaccept = function(peddler, giver, item)
peddler.AnimState layAnimation("give")
GetPlayer().SoundEmitter laySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 9)
local penguin = SpawnPrefab("honeycomb")
penguin.Transform:SetPosition(pt.x+3.1, 0, pt.z+3.1)
penguin.AnimState:SetBank("penguin")
penguin.AnimState:SetBuild("penguin_build")
penguin.Transform:SetFourFaced()
penguin.AnimState layAnimation("idle_loop", true)
penguin.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
penguin.entity:AddSoundEmitter()
local minimap = penguin.entity:AddMiniMapEntity()
minimap:SetIcon( "penguin.png" )
MakeCharacterPhysics(penguin, 50, .5)
penguin:AddComponent("follower")
penguin.components.follower:SetLeader(GetPlayer())
local brain = require "brains/abigailbrain"
penguin:SetBrain(brain)
penguin:AddComponent("locomotor")
penguin.components.locomotor.walkspeed = 0.75
penguin.components.locomotor.directdrive = false
penguin:SetStateGraph("SGpenguin")
penguin:AddComponent("combat")
penguin.components.combat.hiteffectsymbol = "body"
penguin.components.combat:SetAttackPeriod(1)
penguin.components.combat:SetRange(2.5)
penguin.components.combat:SetDefaultDamage(1)
penguin istenForEvent("attacked", function(penguin, data)
penguin.components.combat:SetTarget(data.attacker) end )
penguin:AddComponent("health")
penguin.components.health:SetMaxHealth(50)
penguin.Transform:SetScale(0.7, 0.7, 0.7)
penguin:RemoveComponent("stackable")
penguin:RemoveComponent("tradable")
penguin:RemoveComponent("inventoryitem")
penguin:AddTag("retinue")
penguin:AddTag("penguin_1")
penguin:AddComponent("lootdropper")
penguin.components.lootdropper:SetLoot({"smallmeat", "smallmeat"})
penguin.components.inspectable.getstatus = function(penguin)
if not penguin:HasTag("retinue") then
local brain = require "brains/abigailbrain"
penguin:SetBrain(brain)
penguin.components.follower:SetLeader(GetPlayer())
penguin.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
penguin:AddTag("retinue")
else
local brain = require "brains/leifbrain"
penguin:SetBrain(brain)
penguin.components.follower:SetLeader(nil)
penguin.AnimState:SetBloomEffectHandle("")
penguin:RemoveTag("retinue")
end
end
penguin oTaskInTime(math.random(480,560), function()
if not penguin:HasTag("penguin_2") then
penguin.AnimState layAnimation("taunt")
penguin.Transform:SetScale(1, 1, 1)
penguin:AddTag("penguin_2")
penguin.components.lootdropper:SetLoot({"meat", "meat", "drumstick",
"drumstick"})
end
end )
penguin oPeriodicTask(math.random(120,180), function()
if penguin:HasTag("penguin_2") then
SpawnPrefab("bird_egg").Transform:SetPosition
(penguin.Transform:GetWorldPosition())
end
end)
end
local ice = SpawnPrefab("honeycomb")
ice.Transform:SetPosition(pt.x+1, 0, pt.z+1)
ice.AnimState:SetBank("penguin_ice")
ice.AnimState:SetBuild("penguin_ice")
ice.AnimState layAnimation("idle")
ice.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )
ice.AnimState:SetLayer( LAYER_BACKGROUND )
ice.AnimState:SetSortOrder( 1 )
ice.Transform:SetRotation( 225 )
ice:RemoveComponent("stackable")
ice:RemoveComponent("tradable")
ice:RemoveComponent("inventoryitem")
ice:AddTag("goodbye")
ice:AddTag("NOCLICK")
MakeLargeBurnable(ice)
MakeLargePropagator(ice)
local model1 = SpawnPrefab("honeycomb")
model1.Transform:SetPosition(pt.x+2-1, 0, pt.z-2-1)
model1.AnimState:SetBank("penguin")
model1.AnimState:SetBuild("penguin_build")
model1.Transform:SetFourFaced()
model1.AnimState layAnimation("idle_loop", true)
model1.Transform:SetRotation( 270 )
model1.Transform:SetScale(2, 2, 2)
model1:RemoveComponent("stackable")
model1:RemoveComponent("tradable")
model1:RemoveComponent("inventoryitem")
model1.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
model1:AddTag("goodbye")
MakeLargeBurnable(model1)
MakeLargePropagator(model1)
local model2 = SpawnPrefab("honeycomb")
model2.Transform:SetPosition(pt.x-2-1, 0, pt.z+2-1)
model2.AnimState:SetBank("penguin")
model2.AnimState:SetBuild("penguin_build")
model2.Transform:SetFourFaced()
model2.AnimState layAnimation("idle_loop", true)
model2.Transform:SetRotation( 90 )
model2.Transform:SetScale(2, 2, 2)
model2:RemoveComponent("stackable")
model2:RemoveComponent("tradable")
model2:RemoveComponent("inventoryitem")
model2.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
model2:AddTag("goodbye")
MakeLargeBurnable(model2)
MakeLargePropagator(model2)
end
local function OnDeploy (inst, pt)
penguinshop(inst)
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("peddler") then data.peddler = true end
if inst:HasTag("goodbye") then data.goodbye = true end
if inst:HasTag("penguin_1") then data.penguin_1 = true end
if inst:HasTag("penguin_2") then data.penguin_2 = true end
if inst:HasTag("retinue") then data.retinue = true end
end
local function onload(inst, data)
if data and data.peddler then
penguinshop(inst)
inst:Remove()
end
if data and data.goodbye then
inst:Remove()
end
if data and data.penguin_1 then
inst.AnimState:SetBank("penguin")
inst.AnimState:SetBuild("penguin_build")
inst.Transform:SetFourFaced()
inst.AnimState:PlayAnimation("idle_loop", true)
inst.entity:AddSoundEmitter()
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon( "penguin.png" )
MakeCharacterPhysics(inst, 50, .5)
inst:AddComponent("follower")
inst.components.follower:SetLeader(nil)
local brain = require "brains/leifbrain"
inst:SetBrain(brain)
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 0.75
inst.components.locomotor.directdrive = false
inst:SetStateGraph("SGpenguin")
inst:AddComponent("combat")
inst.components.combat.hiteffectsymbol = "body"
inst.components.combat:SetAttackPeriod(1)
inst.components.combat:SetRange(2.5)
inst.components.combat:SetDefaultDamage(1)
inst istenForEvent("attacked", function(inst, data)
inst.components.combat:SetTarget(data.attacker) end )
inst:AddComponent("health")
inst.components.health:SetMaxHealth(50)
inst.Transform:SetScale(0.7, 0.7, 0.7)
inst:RemoveComponent("stackable")
inst:RemoveComponent("tradable")
inst:RemoveComponent("inventoryitem")
inst:AddTag("penguin_1")
inst:AddComponent("lootdropper")
inst.components.lootdropper:SetLoot({"smallmeat", "smallmeat"})
inst.components.inspectable.getstatus = function(inst)
if not inst:HasTag("retinue") then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("retinue")
else
local brain = require "brains/leifbrain"
inst:SetBrain(brain)
inst.components.follower:SetLeader(nil)
inst.AnimState:SetBloomEffectHandle("")
inst:RemoveTag("retinue")
end
end
inst oTaskInTime(math.random(480,560), function()
if not inst:HasTag("penguin_2") then
inst.AnimState:PlayAnimation("taunt")
inst.Transform:SetScale(1, 1, 1)
inst:AddTag("penguin_2")
inst.components.lootdropper:SetLoot({"meat", "meat", "drumstick",
"drumstick"})
end
end )
inst oPeriodicTask(math.random(120,180), function()
if inst:HasTag("penguin_2") then
SpawnPrefab("bird_egg").Transform:SetPosition
(inst.Transform:GetWorldPosition())
end
end)
end
if data and data.penguin_2 then
inst.Transform:SetScale(1, 1, 1)
inst:AddTag("penguin_2")
inst.components.lootdropper:SetLoot({"meat", "meat", "drumstick",
"drumstick"})
end
if data and data.retinue then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("retinue")
end
end
inst.OnSave = onsave
inst.OnLoad = onload |
|