代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
三0二.经营动物园(用黄油种动物园,买卖、繁殖小动物,赚门票钱) 用MT管理器打开游戏目录/assets/scripts/prefabs/butter.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: local slotpos = { Vector3(0,-100,0)} local function itemtest(inst, item, slot) if item.prefab == "carrot" then return true end return false end local widgetbuttoninfo = { text = "Sell", position = Vector3(0, -30, 0), fn = function(inst) local target = FindEntity(inst, 9, function(guy) return guy:HasTag("zoobaby") end ) if target then for k = 1,20 do local pt5 = target:GetPosition() SpawnPrefab("goldnugget").Transform:SetPosition(pt5.x, 0, pt5.z) GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") target:Remove() end end end } local function OnDeploy (inst, pt) local brand = SpawnPrefab("butter") brand.Transform:SetPosition(pt.x, pt.y, pt.z) brand.AnimState:SetBank("sign_home") brand.AnimState:SetBuild("sign_home") brand.AnimState:PlayAnimation("idle") brand.Transform:SetScale(0.8, 0.8, 0.8) brand.AnimState:SetMultColour(0/255,255/255,0/255,1) brand:RemoveComponent("stackable") brand:RemoveComponent("inventoryitem") brand:RemoveComponent("edible") brand:RemoveComponent("perishable") brand:RemoveComponent("deployable") brand:RemoveComponent("container") brand:AddTag("brand") local slotpos1 = { Vector3(0,-75,0)} brand:AddComponent("container") brand.components.container:SetNumSlots(#slotpos1) brand.components.container.widgetslotpos = slotpos1 brand.components.container.widgetpos = Vector3(0,180,0) brand.components.container.side_align_tip = 160 brand.components.container.acceptsstacks = false brand.components.container.itemtestfn = function(brand, item, slot) if item.prefab == "charcoal" or item.prefab == "trunk_summer" or item.prefab == "trunk_winter" or item.prefab == "walrus_tusk" or item.prefab == "cave_banana" then return true end return false end brand.components.container.widgetbuttoninfo = { text = "Buy", position = Vector3(0, -145, 0), fn = function(brand) if GetPlayer().components.inventory:Has("goldnugget", 30) then if brand.components.container:Has("charcoal", 1) then brand.components.container:ConsumeByName("charcoal", 1) local zoobaby = SpawnPrefab("butter") local pt1 = brand:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("krampus") zoobaby.AnimState:SetBuild("krampus_build") zoobaby.AnimState:PlayAnimation("idle", true) zoobaby.entity:AddSoundEmitter() zoobaby.AnimState:Hide("SACK") zoobaby.AnimState:Show("ARM") zoobaby.Transform:SetScale(0.7,0.7,0.7) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkrampus") zoobaby:AddTag("zoobaby1") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if brand.components.container:Has("trunk_summer", 1) then brand.components.container:ConsumeByName("trunk_summer", 1) local zoobaby = SpawnPrefab("butter") local pt1 = brand:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_summer_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby2") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if brand.components.container:Has("trunk_winter", 1) then brand.components.container:ConsumeByName("trunk_winter", 1) local zoobaby = SpawnPrefab("butter") local pt1 = brand:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_winter_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby3") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if brand.components.container:Has("walrus_tusk", 1) then brand.components.container:ConsumeByName("walrus_tusk", 1) local zoobaby = SpawnPrefab("butter") local pt1 = brand:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("walrus") zoobaby.AnimState:SetBuild("walrus_baby_build") zoobaby.AnimState:PlayAnimation("idle_happy") zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.8,0.8,0.8) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGwalrus") zoobaby:AddTag("zoobaby4") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if brand.components.container:Has("cave_banana", 1) then brand.components.container:ConsumeByName("cave_banana", 1) local zoobaby = SpawnPrefab("butter") local pt1 = brand:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("kiki") zoobaby.AnimState:SetBuild("kiki_basic") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.soundtype = "" zoobaby.Transform:SetScale(1.2,1.2,1.2) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGmonkey") zoobaby:AddTag("zoobaby5") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end end end } local zooroom = SpawnPrefab("butter") zooroom.Transform:SetPosition(pt.x-7, 0, pt.z-7) zooroom.AnimState:SetBank("rabbithouse") zooroom.AnimState:SetBuild("rabbit_house") zooroom.AnimState:PlayAnimation("idle", true) zooroom.Transform:SetScale(0.4, 0.4, 0.4) zooroom:RemoveComponent("stackable") zooroom:RemoveComponent("inventoryitem") zooroom:RemoveComponent("edible") zooroom:RemoveComponent("perishable") zooroom:RemoveComponent("deployable") zooroom.components.container.canbeopened = true zooroom.entity:AddLight() zooroom.Light:SetFalloff(1) zooroom.Light:SetIntensity(.8) zooroom.Light:SetRadius(15) zooroom.Light:SetColour(180/255, 195/255, 50/255) zooroom.Light:Enable(true) zooroom:AddTag("zooroom") zooroom:DoPeriodicTask(180, function(zooroom) local target = FindEntity(zooroom, 9, function(guy) return guy:HasTag("zoobaby") end ) if target then local target1 = FindEntity(zooroom, 9, function(guy) return guy.prefab == "poop" end ) if not target1 then for k = 1,math.random(5,10) do local pt2 = zooroom:GetPosition() SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) end else for k = 1,math.random(1,3) do local pt2 = zooroom:GetPosition() SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) end end if zooroom.components.container:Has("carrot", 3) then zooroom.components.container:ConsumeByName("carrot", 3) if math.random()<0.1 then if target:HasTag("zoobaby1") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("krampus") zoobaby.AnimState:SetBuild("krampus_build") zoobaby.AnimState:PlayAnimation("idle", true) zoobaby.entity:AddSoundEmitter() zoobaby.AnimState:Hide("SACK") zoobaby.AnimState:Show("ARM") zoobaby.Transform:SetScale(0.7,0.7,0.7) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkrampus") zoobaby:AddTag("zoobaby1") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby2") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_summer_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby2") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby3") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_winter_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby3") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby4") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("walrus") zoobaby.AnimState:SetBuild("walrus_baby_build") zoobaby.AnimState:PlayAnimation("idle_happy") zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.8,0.8,0.8) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGwalrus") zoobaby:AddTag("zoobaby4") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby5") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("kiki") zoobaby.AnimState:SetBuild("kiki_basic") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.soundtype = "" zoobaby.Transform:SetScale(1.2,1.2,1.2) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGmonkey") zoobaby:AddTag("zoobaby5") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end end else target.components.health:Kill() end end end ) zooroom:AddComponent("workable") zooroom.components.workable:SetWorkAction(ACTIONS.HAMMER) zooroom.components.workable:SetWorkLeft(3) zooroom.components.workable:SetOnFinishCallback(function(zooroom) local pos = Vector3(zooroom.Transform:GetWorldPosition()) local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) for k,v in pairs(ents) do if v:HasTag("zoofence") or v:HasTag("brand") then SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") v:Remove() end end zooroom:Remove() end ) local pt0 = Vector3(zooroom.Transform:GetWorldPosition()) for k = 1, 40 do local result_offset = FindValidPositionByFan(1 * 2 * PI, 8, 40, function(offset) local x,y,z = (pt0 + offset):Get() local ents = TheSim:FindEntities(x,y,z , 1) return not next(ents) end) if result_offset then local zoofence = SpawnPrefab("butter") zoofence.AnimState:SetBank("wall") zoofence.AnimState:SetBuild("wall_wood") zoofence.AnimState:PlayAnimation("1_2", false) MakeObstaclePhysics(zoofence, .5) zoofence:RemoveComponent("stackable") zoofence:RemoveComponent("inventoryitem") zoofence:RemoveComponent("edible") zoofence:RemoveComponent("perishable") zoofence:RemoveComponent("deployable") zoofence:RemoveComponent("container") zoofence:AddTag("zoofence") zoofence.Transform:SetPosition((pt0 + result_offset):Get()) zoofence.components.inspectable.getstatus = function(zoofence) zoofence.Transform:SetScale(1, 0.1, 1) zoofence.Physics:SetActive(false) GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") zoofence:DoTaskInTime(5, function(zoofence) zoofence.Transform:SetScale(1, 1, 1) zoofence.Physics:SetActive(true) GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") end ) end end end inst.components.stackable:Get():Remove() end inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy inst:AddComponent("container") 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 inst.components.container.widgetbuttoninfo = widgetbuttoninfo local function onsave(inst, data) if inst:HasTag("brand") then data.brand = true end if inst:HasTag("zooroom") then data.zooroom = true end if inst:HasTag("zoofence") then data.zoofence = true end if inst:HasTag("zoobaby1") then data.zoobaby1 = true end if inst:HasTag("zoobaby2") then data.zoobaby2 = true end if inst:HasTag("zoobaby3") then data.zoobaby3 = true end if inst:HasTag("zoobaby4") then data.zoobaby4 = true end if inst:HasTag("zoobaby5") then data.zoobaby5 = true end if inst:HasTag("followme") then data.followme = true end end local function onload(inst, data) if data and data.brand then inst.AnimState:SetBank("sign_home") inst.AnimState:SetBuild("sign_home") inst.AnimState:PlayAnimation("idle") inst.Transform:SetScale(0.8, 0.8, 0.8) inst.AnimState:SetMultColour(0/255,255/255,0/255,1) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") inst:AddTag("brand") local slotpos1 = { Vector3(0,-75,0)} inst:AddComponent("container") inst.components.container:SetNumSlots(#slotpos1) inst.components.container.widgetslotpos = slotpos1 inst.components.container.widgetpos = Vector3(0,180,0) inst.components.container.side_align_tip = 160 inst.components.container.acceptsstacks = false inst.components.container.itemtestfn = function(inst, item, slot) if item.prefab == "charcoal" or item.prefab == "trunk_summer" or item.prefab == "trunk_winter" or item.prefab == "walrus_tusk" or item.prefab == "cave_banana" then return true end return false end inst.components.container.widgetbuttoninfo = { text = "Buy", position = Vector3(0, -145, 0), fn = function(inst) if GetPlayer().components.inventory:Has("goldnugget", 30) then if inst.components.container:Has("charcoal", 1) then inst.components.container:ConsumeByName("charcoal", 1) local zoobaby = SpawnPrefab("butter") local pt1 = inst:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("krampus") zoobaby.AnimState:SetBuild("krampus_build") zoobaby.AnimState:PlayAnimation("idle", true) zoobaby.entity:AddSoundEmitter() zoobaby.AnimState:Hide("SACK") zoobaby.AnimState:Show("ARM") zoobaby.Transform:SetScale(0.7,0.7,0.7) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkrampus") zoobaby:AddTag("zoobaby1") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if inst.components.container:Has("trunk_summer", 1) then inst.components.container:ConsumeByName("trunk_summer", 1) local zoobaby = SpawnPrefab("butter") local pt1 = inst:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_summer_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby2") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if inst.components.container:Has("trunk_winter", 1) then inst.components.container:ConsumeByName("trunk_winter", 1) local zoobaby = SpawnPrefab("butter") local pt1 = inst:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_winter_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby3") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if inst.components.container:Has("walrus_tusk", 1) then inst.components.container:ConsumeByName("walrus_tusk", 1) local zoobaby = SpawnPrefab("butter") local pt1 = inst:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("walrus") zoobaby.AnimState:SetBuild("walrus_baby_build") zoobaby.AnimState:PlayAnimation("idle_happy") zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.8,0.8,0.8) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGwalrus") zoobaby:AddTag("zoobaby4") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end if inst.components.container:Has("cave_banana", 1) then inst.components.container:ConsumeByName("cave_banana", 1) local zoobaby = SpawnPrefab("butter") local pt1 = inst:GetPosition() zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) zoobaby.AnimState:SetBank("kiki") zoobaby.AnimState:SetBuild("kiki_basic") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.soundtype = "" zoobaby.Transform:SetScale(1.2,1.2,1.2) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGmonkey") zoobaby:AddTag("zoobaby5") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) end end end } end if data and data.zooroom then inst.AnimState:SetBank("rabbithouse") inst.AnimState:SetBuild("rabbit_house") inst.AnimState:PlayAnimation("idle", true) inst.Transform:SetScale(0.4, 0.4, 0.4) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst.components.container.canbeopened = true inst.entity:AddLight() inst.Light:SetFalloff(1) inst.Light:SetIntensity(.8) inst.Light:SetRadius(15) inst.Light:SetColour(180/255, 195/255, 50/255) inst.Light:Enable(true) inst:AddTag("zooroom") inst:DoPeriodicTask(180, function(inst) local target = FindEntity(inst, 9, function(guy) return guy:HasTag("zoobaby") end ) if target then local target1 = FindEntity(inst, 9, function(guy) return guy.prefab == "poop" end ) if not target1 then for k = 1,math.random(5,10) do local pt2 = inst:GetPosition() SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) end else for k = 1,math.random(1,3) do local pt2 = inst:GetPosition() SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) end end if inst.components.container:Has("carrot", 3) then inst.components.container:ConsumeByName("carrot", 3) if math.random()<0.1 then if target:HasTag("zoobaby1") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("krampus") zoobaby.AnimState:SetBuild("krampus_build") zoobaby.AnimState:PlayAnimation("idle", true) zoobaby.entity:AddSoundEmitter() zoobaby.AnimState:Hide("SACK") zoobaby.AnimState:Show("ARM") zoobaby.Transform:SetScale(0.7,0.7,0.7) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkrampus") zoobaby:AddTag("zoobaby1") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby2") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_summer_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby2") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby3") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("koalefant") zoobaby.AnimState:SetBuild("koalefant_winter_build") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.5,0.5,0.5) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGkoalefant") zoobaby:AddTag("zoobaby3") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby4") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("walrus") zoobaby.AnimState:SetBuild("walrus_baby_build") zoobaby.AnimState:PlayAnimation("idle_happy") zoobaby.entity:AddSoundEmitter() zoobaby.Transform:SetScale(0.8,0.8,0.8) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGwalrus") zoobaby:AddTag("zoobaby4") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end if target:HasTag("zoobaby5") then local zoobaby = SpawnPrefab("butter") local pt4 = target:GetPosition() zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) zoobaby.AnimState:SetBank("kiki") zoobaby.AnimState:SetBuild("kiki_basic") zoobaby.AnimState:PlayAnimation("idle_loop", true) zoobaby.entity:AddSoundEmitter() zoobaby.soundtype = "" zoobaby.Transform:SetScale(1.2,1.2,1.2) zoobaby:AddComponent("locomotor") zoobaby.components.locomotor.walkspeed = 3 zoobaby.components.locomotor.runspeed = 6 zoobaby:SetStateGraph("SGmonkey") zoobaby:AddTag("zoobaby5") local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby.Transform:SetFourFaced() MakeCharacterPhysics(zoobaby, 15, .5) zoobaby:AddComponent("knownlocations") zoobaby:AddComponent("combat") zoobaby:AddComponent("health") zoobaby.components.health:SetMaxHealth(100) zoobaby:RemoveComponent("stackable") zoobaby:RemoveComponent("inventoryitem") zoobaby:RemoveComponent("edible") zoobaby:RemoveComponent("perishable") zoobaby:RemoveComponent("deployable") zoobaby:RemoveComponent("container") local minimap = zoobaby.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") zoobaby:AddComponent("follower") zoobaby.components.inspectable.getstatus = function(zoobaby) if not zoobaby:HasTag("followme") then local brain = require "brains/abigailbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(GetPlayer()) zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") zoobaby:AddTag("followme") else local brain = require "brains/frogbrain" zoobaby:SetBrain(brain) zoobaby:RestartBrain() zoobaby.components.follower:SetLeader(nil) zoobaby.AnimState:SetBloomEffectHandle("") zoobaby:RemoveTag("followme") end end zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) end ) zoobaby:AddComponent("lootdropper") zoobaby.components.lootdropper:SetLoot({"smallmeat"}) zoobaby:AddTag("zoobaby") end end else target.components.health:Kill() end end end ) inst:AddComponent("workable") inst.components.workable:SetWorkAction(ACTIONS.HAMMER) inst.components.workable:SetWorkLeft(3) inst.components.workable:SetOnFinishCallback(function(inst) local pos = Vector3(inst.Transform:GetWorldPosition()) local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) for k,v in pairs(ents) do if v:HasTag("zoofence") or v:HasTag("brand") then SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") v:Remove() end end inst:Remove() end ) end if data and data.zoofence then inst.AnimState:SetBank("wall") inst.AnimState:SetBuild("wall_wood") inst.AnimState:PlayAnimation("1_2", false) MakeObstaclePhysics(inst, .5) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") inst:AddTag("zoofence") inst.components.inspectable.getstatus = function(inst) inst.Transform:SetScale(1, 0.1, 1) inst.Physics:SetActive(false) GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") inst:DoTaskInTime(5, function(inst) inst.Transform:SetScale(1, 1, 1) inst.Physics:SetActive(true) GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") end ) end end if data and data.zoobaby1 then inst.AnimState:SetBank("krampus") inst.AnimState:SetBuild("krampus_build") inst.AnimState:PlayAnimation("idle", true) inst.entity:AddSoundEmitter() inst.AnimState:Hide("SACK") inst.AnimState:Show("ARM") inst.Transform:SetScale(0.7,0.7,0.7) inst:AddComponent("locomotor") inst.components.locomotor.walkspeed = 3 inst.components.locomotor.runspeed = 6 inst:SetStateGraph("SGkrampus") inst:AddTag("zoobaby1") local brain = require "brains/frogbrain" inst:SetBrain(brain) inst.Transform:SetFourFaced() MakeCharacterPhysics(inst, 15, .5) inst:AddComponent("knownlocations") inst:AddComponent("combat") inst:AddComponent("health") inst.components.health:SetMaxHealth(100) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") local minimap = inst.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") inst:AddComponent("follower") inst.components.inspectable.getstatus = function(inst) if not inst:HasTag("followme") then local brain = require "brains/abigailbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(GetPlayer()) inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") inst:AddTag("followme") else local brain = require "brains/frogbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(nil) inst.AnimState:SetBloomEffectHandle("") inst:RemoveTag("followme") end end inst:DoPeriodicTask(math.random(360, 480), function(inst) SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) end ) inst:AddComponent("lootdropper") inst.components.lootdropper:SetLoot({"smallmeat"}) inst:AddTag("zoobaby") end if data and data.zoobaby2 then inst.AnimState:SetBank("koalefant") inst.AnimState:SetBuild("koalefant_summer_build") inst.AnimState:PlayAnimation("idle_loop", true) inst.entity:AddSoundEmitter() inst.Transform:SetScale(0.5,0.5,0.5) inst:AddComponent("locomotor") inst.components.locomotor.walkspeed = 3 inst.components.locomotor.runspeed = 6 inst:SetStateGraph("SGkoalefant") inst:AddTag("zoobaby2") local brain = require "brains/frogbrain" inst:SetBrain(brain) inst.Transform:SetFourFaced() MakeCharacterPhysics(inst, 15, .5) inst:AddComponent("knownlocations") inst:AddComponent("combat") inst:AddComponent("health") inst.components.health:SetMaxHealth(100) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") local minimap = inst.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") inst:AddComponent("follower") inst.components.inspectable.getstatus = function(inst) if not inst:HasTag("followme") then local brain = require "brains/abigailbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(GetPlayer()) inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") inst:AddTag("followme") else local brain = require "brains/frogbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(nil) inst.AnimState:SetBloomEffectHandle("") inst:RemoveTag("followme") end end inst:DoPeriodicTask(math.random(360, 480), function(inst) SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) end ) inst:AddComponent("lootdropper") inst.components.lootdropper:SetLoot({"smallmeat"}) inst:AddTag("zoobaby") end if data and data.zoobaby3 then inst.AnimState:SetBank("koalefant") inst.AnimState:SetBuild("koalefant_winter_build") inst.AnimState:PlayAnimation("idle_loop", true) inst.entity:AddSoundEmitter() inst.Transform:SetScale(0.5,0.5,0.5) inst:AddComponent("locomotor") inst.components.locomotor.walkspeed = 3 inst.components.locomotor.runspeed = 6 inst:SetStateGraph("SGkoalefant") inst:AddTag("zoobaby3") local brain = require "brains/frogbrain" inst:SetBrain(brain) inst.Transform:SetFourFaced() MakeCharacterPhysics(inst, 15, .5) inst:AddComponent("knownlocations") inst:AddComponent("combat") inst:AddComponent("health") inst.components.health:SetMaxHealth(100) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") local minimap = inst.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") inst:AddComponent("follower") inst.components.inspectable.getstatus = function(inst) if not inst:HasTag("followme") then local brain = require "brains/abigailbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(GetPlayer()) inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") inst:AddTag("followme") else local brain = require "brains/frogbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(nil) inst.AnimState:SetBloomEffectHandle("") inst:RemoveTag("followme") end end inst:DoPeriodicTask(math.random(360, 480), function(inst) SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) end ) inst:AddComponent("lootdropper") inst.components.lootdropper:SetLoot({"smallmeat"}) inst:AddTag("zoobaby") end if data and data.zoobaby4 then inst.AnimState:SetBank("walrus") inst.AnimState:SetBuild("walrus_baby_build") inst.AnimState:PlayAnimation("idle_happy") inst.entity:AddSoundEmitter() inst.Transform:SetScale(0.8,0.8,0.8) inst:AddComponent("locomotor") inst.components.locomotor.walkspeed = 3 inst.components.locomotor.runspeed = 6 inst:SetStateGraph("SGwalrus") inst:AddTag("zoobaby4") local brain = require "brains/frogbrain" inst:SetBrain(brain) inst.Transform:SetFourFaced() MakeCharacterPhysics(inst, 15, .5) inst:AddComponent("knownlocations") inst:AddComponent("combat") inst:AddComponent("health") inst.components.health:SetMaxHealth(100) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") local minimap = inst.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") inst:AddComponent("follower") inst.components.inspectable.getstatus = function(inst) if not inst:HasTag("followme") then local brain = require "brains/abigailbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(GetPlayer()) inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") inst:AddTag("followme") else local brain = require "brains/frogbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(nil) inst.AnimState:SetBloomEffectHandle("") inst:RemoveTag("followme") end end inst:DoPeriodicTask(math.random(360, 480), function(inst) SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) end ) inst:AddComponent("lootdropper") inst.components.lootdropper:SetLoot({"smallmeat"}) inst:AddTag("zoobaby") end if data and data.zoobaby5 then inst.AnimState:SetBank("kiki") inst.AnimState:SetBuild("kiki_basic") inst.AnimState:PlayAnimation("idle_loop", true) inst.entity:AddSoundEmitter() inst.soundtype = "" inst.Transform:SetScale(1.2,1.2,1.2) inst:AddComponent("locomotor") inst.components.locomotor.walkspeed = 3 inst.components.locomotor.runspeed = 6 inst:SetStateGraph("SGmonkey") inst:AddTag("zoobaby5") local brain = require "brains/frogbrain" inst:SetBrain(brain) inst.Transform:SetFourFaced() MakeCharacterPhysics(inst, 15, .5) inst:AddComponent("knownlocations") inst:AddComponent("combat") inst:AddComponent("health") inst.components.health:SetMaxHealth(100) inst:RemoveComponent("stackable") inst:RemoveComponent("inventoryitem") inst:RemoveComponent("edible") inst:RemoveComponent("perishable") inst:RemoveComponent("deployable") inst:RemoveComponent("container") local minimap = inst.entity:AddMiniMapEntity() minimap:SetIcon("monkey_barrel.png") inst:AddComponent("follower") inst.components.inspectable.getstatus = function(inst) if not inst:HasTag("followme") then local brain = require "brains/abigailbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(GetPlayer()) inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") inst:AddTag("followme") else local brain = require "brains/frogbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(nil) inst.AnimState:SetBloomEffectHandle("") inst:RemoveTag("followme") end end inst:DoPeriodicTask(math.random(360, 480), function(inst) SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) end ) inst:AddComponent("lootdropper") inst.components.lootdropper:SetLoot({"smallmeat"}) inst:AddTag("zoobaby") end if data and data.followme then local brain = require "brains/abigailbrain" inst:SetBrain(brain) inst:RestartBrain() inst.components.follower:SetLeader(GetPlayer()) inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") inst:AddTag("followme") end end inst.OnSave = onsave inst.OnLoad = onload 即可在开阔的空地上,用黄油种动物园,在身上有30个黄金时,用鼠标左键点牌子,可打开格子,放入木炭点Buy按钮,可买一只小龙,花费30个黄金;放入夏象鼻点Buy按钮,可买小红象;放入冬象鼻点Buy按钮,可买小蓝象;放入海象牙点Buy按钮,可买小海象;放入香蕉点Buy按钮,可买猴子。鼠标左键点木栅栏,可开门,5秒后自动关门。鼠标左键点中间的胡萝卜房可打开格子,放入小动物爱吃的胡萝卜(每天消耗9个),当格子里的胡萝卜不足3个时,圈里的动物将陆续饿死。当动物园里有动物时,每天都能收到15-30个黄金的门票钱(放在牌子前面),动物会产便便,如果不及时清扫,门票钱将下降为正常的1/3。如果食物充足,小动物还有一定概率会繁殖,点胡萝卜房格子上方的Sell按钮,可卖掉圈舍中的动物,每只20个黄金。如果动物跑出圈舍,或想带领动物转场,就用鼠标左键点动物(手里不要拿武器),它会跟随你,再次用鼠标左键点动物,可以取消跟随。动物在小地图上显示为猴子的图标。不想要动物园时,用锤子砸掉胡萝卜房即可。黄油可以打蝴蝶获得,如果修改了“巨型超市”,也可花1-3个黄金购得