[分享]饥荒联机版,支持局域网联机。

YN302-经营动物园(用黄油种动物园,买卖、繁殖小动物,赚门票钱)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0二.经营动物园(用黄油种动物园,买卖、繁殖小动物,赚门票钱) 3 4 用MT管理器打开游戏目录/assets/scripts/prefabs/butter.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local slotpos = { Vector3(0,-100,0)} 7local function itemtest(inst, item, slot) 8 if item.prefab == "carrot" then 9 return true 10 end 11 return false 12end 13local widgetbuttoninfo = { 14 text = "Sell", 15 position = Vector3(0, -30, 0), 16 fn = function(inst) 17 local target = FindEntity(inst, 9, function(guy) 18 return guy:HasTag("zoobaby") 19 end ) 20 if target then 21 for k = 1,20 do 22 local pt5 = target:GetPosition() 23 SpawnPrefab("goldnugget").Transform:SetPosition(pt5.x, 0, pt5.z) 24 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 25 target:Remove() 26 end 27 end 28end } 29local function OnDeploy (inst, pt) 30 local brand = SpawnPrefab("butter") 31 brand.Transform:SetPosition(pt.x, pt.y, pt.z) 32 brand.AnimState:SetBank("sign_home") 33 brand.AnimState:SetBuild("sign_home") 34 brand.AnimState:PlayAnimation("idle") 35 brand.Transform:SetScale(0.8, 0.8, 0.8) 36 brand.AnimState:SetMultColour(0/255,255/255,0/255,1) 37 brand:RemoveComponent("stackable") 38 brand:RemoveComponent("inventoryitem") 39 brand:RemoveComponent("edible") 40 brand:RemoveComponent("perishable") 41 brand:RemoveComponent("deployable") 42 brand:RemoveComponent("container") 43 brand:AddTag("brand") 44 local slotpos1 = { Vector3(0,-75,0)} 45 brand:AddComponent("container") 46 brand.components.container:SetNumSlots(#slotpos1) 47 brand.components.container.widgetslotpos = slotpos1 48 brand.components.container.widgetpos = Vector3(0,180,0) 49 brand.components.container.side_align_tip = 160 50 brand.components.container.acceptsstacks = false 51 brand.components.container.itemtestfn = function(brand, item, slot) 52 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 53 return true 54 end 55 return false 56 end 57 brand.components.container.widgetbuttoninfo = { 58 text = "Buy", 59 position = Vector3(0, -145, 0), 60 fn = function(brand) 61 if GetPlayer().components.inventory:Has("goldnugget", 30) then 62 if brand.components.container:Has("charcoal", 1) then 63 brand.components.container:ConsumeByName("charcoal", 1) 64 local zoobaby = SpawnPrefab("butter") 65 local pt1 = brand:GetPosition() 66 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 67 zoobaby.AnimState:SetBank("krampus") 68 zoobaby.AnimState:SetBuild("krampus_build") 69 zoobaby.AnimState:PlayAnimation("idle", true) 70 zoobaby.entity:AddSoundEmitter() 71 zoobaby.AnimState:Hide("SACK") 72 zoobaby.AnimState:Show("ARM") 73 zoobaby.Transform:SetScale(0.7,0.7,0.7) 74 zoobaby:AddComponent("locomotor") 75 zoobaby.components.locomotor.walkspeed = 3 76 zoobaby.components.locomotor.runspeed = 6 77 zoobaby:SetStateGraph("SGkrampus") 78 zoobaby:AddTag("zoobaby1") 79 local brain = require "brains/frogbrain" 80 zoobaby:SetBrain(brain) 81 zoobaby.Transform:SetFourFaced() 82 MakeCharacterPhysics(zoobaby, 15, .5) 83 zoobaby:AddComponent("knownlocations") 84 zoobaby:AddComponent("combat") 85 zoobaby:AddComponent("health") 86 zoobaby.components.health:SetMaxHealth(100) 87 zoobaby:RemoveComponent("stackable") 88 zoobaby:RemoveComponent("inventoryitem") 89 zoobaby:RemoveComponent("edible") 90 zoobaby:RemoveComponent("perishable") 91 zoobaby:RemoveComponent("deployable") 92 zoobaby:RemoveComponent("container") 93 local minimap = zoobaby.entity:AddMiniMapEntity() 94 minimap:SetIcon("monkey_barrel.png") 95 zoobaby:AddComponent("follower") 96 zoobaby.components.inspectable.getstatus = function(zoobaby) 97 if not zoobaby:HasTag("followme") then 98 local brain = require "brains/abigailbrain" 99 zoobaby:SetBrain(brain) 100 zoobaby:RestartBrain() 101 zoobaby.components.follower:SetLeader(GetPlayer()) 102 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 103 zoobaby:AddTag("followme") 104 else 105 local brain = require "brains/frogbrain" 106 zoobaby:SetBrain(brain) 107 zoobaby:RestartBrain() 108 zoobaby.components.follower:SetLeader(nil) 109 zoobaby.AnimState:SetBloomEffectHandle("") 110 zoobaby:RemoveTag("followme") 111 end 112 end 113 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 114 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 115 end ) 116 zoobaby:AddComponent("lootdropper") 117 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 118 zoobaby:AddTag("zoobaby") 119 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 120 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 121 end 122 if brand.components.container:Has("trunk_summer", 1) then 123 brand.components.container:ConsumeByName("trunk_summer", 1) 124 local zoobaby = SpawnPrefab("butter") 125 local pt1 = brand:GetPosition() 126 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 127 zoobaby.AnimState:SetBank("koalefant") 128 zoobaby.AnimState:SetBuild("koalefant_summer_build") 129 zoobaby.AnimState:PlayAnimation("idle_loop", true) 130 zoobaby.entity:AddSoundEmitter() 131 zoobaby.Transform:SetScale(0.5,0.5,0.5) 132 zoobaby:AddComponent("locomotor") 133 zoobaby.components.locomotor.walkspeed = 3 134 zoobaby.components.locomotor.runspeed = 6 135 zoobaby:SetStateGraph("SGkoalefant") 136 zoobaby:AddTag("zoobaby2") 137 local brain = require "brains/frogbrain" 138 zoobaby:SetBrain(brain) 139 zoobaby.Transform:SetFourFaced() 140 MakeCharacterPhysics(zoobaby, 15, .5) 141 zoobaby:AddComponent("knownlocations") 142 zoobaby:AddComponent("combat") 143 zoobaby:AddComponent("health") 144 zoobaby.components.health:SetMaxHealth(100) 145 zoobaby:RemoveComponent("stackable") 146 zoobaby:RemoveComponent("inventoryitem") 147 zoobaby:RemoveComponent("edible") 148 zoobaby:RemoveComponent("perishable") 149 zoobaby:RemoveComponent("deployable") 150 zoobaby:RemoveComponent("container") 151 local minimap = zoobaby.entity:AddMiniMapEntity() 152 minimap:SetIcon("monkey_barrel.png") 153 zoobaby:AddComponent("follower") 154 zoobaby.components.inspectable.getstatus = function(zoobaby) 155 if not zoobaby:HasTag("followme") then 156 local brain = require "brains/abigailbrain" 157 zoobaby:SetBrain(brain) 158 zoobaby:RestartBrain() 159 zoobaby.components.follower:SetLeader(GetPlayer()) 160 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 161 zoobaby:AddTag("followme") 162 else 163 local brain = require "brains/frogbrain" 164 zoobaby:SetBrain(brain) 165 zoobaby:RestartBrain() 166 zoobaby.components.follower:SetLeader(nil) 167 zoobaby.AnimState:SetBloomEffectHandle("") 168 zoobaby:RemoveTag("followme") 169 end 170 end 171 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 172 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 173 end ) 174 zoobaby:AddComponent("lootdropper") 175 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 176 zoobaby:AddTag("zoobaby") 177 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 178 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 179 end 180 if brand.components.container:Has("trunk_winter", 1) then 181 brand.components.container:ConsumeByName("trunk_winter", 1) 182 local zoobaby = SpawnPrefab("butter") 183 local pt1 = brand:GetPosition() 184 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 185 zoobaby.AnimState:SetBank("koalefant") 186 zoobaby.AnimState:SetBuild("koalefant_winter_build") 187 zoobaby.AnimState:PlayAnimation("idle_loop", true) 188 zoobaby.entity:AddSoundEmitter() 189 zoobaby.Transform:SetScale(0.5,0.5,0.5) 190 zoobaby:AddComponent("locomotor") 191 zoobaby.components.locomotor.walkspeed = 3 192 zoobaby.components.locomotor.runspeed = 6 193 zoobaby:SetStateGraph("SGkoalefant") 194 zoobaby:AddTag("zoobaby3") 195 local brain = require "brains/frogbrain" 196 zoobaby:SetBrain(brain) 197 zoobaby.Transform:SetFourFaced() 198 MakeCharacterPhysics(zoobaby, 15, .5) 199 zoobaby:AddComponent("knownlocations") 200 zoobaby:AddComponent("combat") 201 zoobaby:AddComponent("health") 202 zoobaby.components.health:SetMaxHealth(100) 203 zoobaby:RemoveComponent("stackable") 204 zoobaby:RemoveComponent("inventoryitem") 205 zoobaby:RemoveComponent("edible") 206 zoobaby:RemoveComponent("perishable") 207 zoobaby:RemoveComponent("deployable") 208 zoobaby:RemoveComponent("container") 209 local minimap = zoobaby.entity:AddMiniMapEntity() 210 minimap:SetIcon("monkey_barrel.png") 211 zoobaby:AddComponent("follower") 212 zoobaby.components.inspectable.getstatus = function(zoobaby) 213 if not zoobaby:HasTag("followme") then 214 local brain = require "brains/abigailbrain" 215 zoobaby:SetBrain(brain) 216 zoobaby:RestartBrain() 217 zoobaby.components.follower:SetLeader(GetPlayer()) 218 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 219 zoobaby:AddTag("followme") 220 else 221 local brain = require "brains/frogbrain" 222 zoobaby:SetBrain(brain) 223 zoobaby:RestartBrain() 224 zoobaby.components.follower:SetLeader(nil) 225 zoobaby.AnimState:SetBloomEffectHandle("") 226 zoobaby:RemoveTag("followme") 227 end 228 end 229 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 230 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 231 end ) 232 zoobaby:AddComponent("lootdropper") 233 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 234 zoobaby:AddTag("zoobaby") 235 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 236 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 237 end 238 if brand.components.container:Has("walrus_tusk", 1) then 239 brand.components.container:ConsumeByName("walrus_tusk", 1) 240 local zoobaby = SpawnPrefab("butter") 241 local pt1 = brand:GetPosition() 242 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 243 zoobaby.AnimState:SetBank("walrus") 244 zoobaby.AnimState:SetBuild("walrus_baby_build") 245 zoobaby.AnimState:PlayAnimation("idle_happy") 246 zoobaby.entity:AddSoundEmitter() 247 zoobaby.Transform:SetScale(0.8,0.8,0.8) 248 zoobaby:AddComponent("locomotor") 249 zoobaby.components.locomotor.walkspeed = 3 250 zoobaby.components.locomotor.runspeed = 6 251 zoobaby:SetStateGraph("SGwalrus") 252 zoobaby:AddTag("zoobaby4") 253 local brain = require "brains/frogbrain" 254 zoobaby:SetBrain(brain) 255 zoobaby.Transform:SetFourFaced() 256 MakeCharacterPhysics(zoobaby, 15, .5) 257 zoobaby:AddComponent("knownlocations") 258 zoobaby:AddComponent("combat") 259 zoobaby:AddComponent("health") 260 zoobaby.components.health:SetMaxHealth(100) 261 zoobaby:RemoveComponent("stackable") 262 zoobaby:RemoveComponent("inventoryitem") 263 zoobaby:RemoveComponent("edible") 264 zoobaby:RemoveComponent("perishable") 265 zoobaby:RemoveComponent("deployable") 266 zoobaby:RemoveComponent("container") 267 local minimap = zoobaby.entity:AddMiniMapEntity() 268 minimap:SetIcon("monkey_barrel.png") 269 zoobaby:AddComponent("follower") 270 zoobaby.components.inspectable.getstatus = function(zoobaby) 271 if not zoobaby:HasTag("followme") then 272 local brain = require "brains/abigailbrain" 273 zoobaby:SetBrain(brain) 274 zoobaby:RestartBrain() 275 zoobaby.components.follower:SetLeader(GetPlayer()) 276 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 277 zoobaby:AddTag("followme") 278 else 279 local brain = require "brains/frogbrain" 280 zoobaby:SetBrain(brain) 281 zoobaby:RestartBrain() 282 zoobaby.components.follower:SetLeader(nil) 283 zoobaby.AnimState:SetBloomEffectHandle("") 284 zoobaby:RemoveTag("followme") 285 end 286 end 287 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 288 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 289 end ) 290 zoobaby:AddComponent("lootdropper") 291 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 292 zoobaby:AddTag("zoobaby") 293 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 294 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 295 end 296 if brand.components.container:Has("cave_banana", 1) then 297 brand.components.container:ConsumeByName("cave_banana", 1) 298 local zoobaby = SpawnPrefab("butter") 299 local pt1 = brand:GetPosition() 300 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 301 zoobaby.AnimState:SetBank("kiki") 302 zoobaby.AnimState:SetBuild("kiki_basic") 303 zoobaby.AnimState:PlayAnimation("idle_loop", true) 304 zoobaby.entity:AddSoundEmitter() 305 zoobaby.soundtype = "" 306 zoobaby.Transform:SetScale(1.2,1.2,1.2) 307 zoobaby:AddComponent("locomotor") 308 zoobaby.components.locomotor.walkspeed = 3 309 zoobaby.components.locomotor.runspeed = 6 310 zoobaby:SetStateGraph("SGmonkey") 311 zoobaby:AddTag("zoobaby5") 312 local brain = require "brains/frogbrain" 313 zoobaby:SetBrain(brain) 314 zoobaby.Transform:SetFourFaced() 315 MakeCharacterPhysics(zoobaby, 15, .5) 316 zoobaby:AddComponent("knownlocations") 317 zoobaby:AddComponent("combat") 318 zoobaby:AddComponent("health") 319 zoobaby.components.health:SetMaxHealth(100) 320 zoobaby:RemoveComponent("stackable") 321 zoobaby:RemoveComponent("inventoryitem") 322 zoobaby:RemoveComponent("edible") 323 zoobaby:RemoveComponent("perishable") 324 zoobaby:RemoveComponent("deployable") 325 zoobaby:RemoveComponent("container") 326 local minimap = zoobaby.entity:AddMiniMapEntity() 327 minimap:SetIcon("monkey_barrel.png") 328 zoobaby:AddComponent("follower") 329 zoobaby.components.inspectable.getstatus = function(zoobaby) 330 if not zoobaby:HasTag("followme") then 331 local brain = require "brains/abigailbrain" 332 zoobaby:SetBrain(brain) 333 zoobaby:RestartBrain() 334 zoobaby.components.follower:SetLeader(GetPlayer()) 335 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 336 zoobaby:AddTag("followme") 337 else 338 local brain = require "brains/frogbrain" 339 zoobaby:SetBrain(brain) 340 zoobaby:RestartBrain() 341 zoobaby.components.follower:SetLeader(nil) 342 zoobaby.AnimState:SetBloomEffectHandle("") 343 zoobaby:RemoveTag("followme") 344 end 345 end 346 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 347 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 348 end ) 349 zoobaby:AddComponent("lootdropper") 350 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 351 zoobaby:AddTag("zoobaby") 352 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 353 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 354 end 355 end 356 end } 357 local zooroom = SpawnPrefab("butter") 358 zooroom.Transform:SetPosition(pt.x-7, 0, pt.z-7) 359 zooroom.AnimState:SetBank("rabbithouse") 360 zooroom.AnimState:SetBuild("rabbit_house") 361 zooroom.AnimState:PlayAnimation("idle", true) 362 zooroom.Transform:SetScale(0.4, 0.4, 0.4) 363 zooroom:RemoveComponent("stackable") 364 zooroom:RemoveComponent("inventoryitem") 365 zooroom:RemoveComponent("edible") 366 zooroom:RemoveComponent("perishable") 367 zooroom:RemoveComponent("deployable") 368 zooroom.components.container.canbeopened = true 369 zooroom.entity:AddLight() 370 zooroom.Light:SetFalloff(1) 371 zooroom.Light:SetIntensity(.8) 372 zooroom.Light:SetRadius(15) 373 zooroom.Light:SetColour(180/255, 195/255, 50/255) 374 zooroom.Light:Enable(true) 375 zooroom:AddTag("zooroom") 376 zooroom:DoPeriodicTask(180, function(zooroom) 377 local target = FindEntity(zooroom, 9, function(guy) 378 return guy:HasTag("zoobaby") 379 end ) 380 if target then 381 local target1 = FindEntity(zooroom, 9, function(guy) 382 return guy.prefab == "poop" 383 end ) 384 if not target1 then 385 for k = 1,math.random(5,10) do 386 local pt2 = zooroom:GetPosition() 387 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 388 end 389 else 390 for k = 1,math.random(1,3) do 391 local pt2 = zooroom:GetPosition() 392 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 393 end 394 end 395 if zooroom.components.container:Has("carrot", 3) then 396 zooroom.components.container:ConsumeByName("carrot", 3) 397 if math.random()<0.1 then 398 if target:HasTag("zoobaby1") then 399 local zoobaby = SpawnPrefab("butter") 400 local pt4 = target:GetPosition() 401 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 402 zoobaby.AnimState:SetBank("krampus") 403 zoobaby.AnimState:SetBuild("krampus_build") 404 zoobaby.AnimState:PlayAnimation("idle", true) 405 zoobaby.entity:AddSoundEmitter() 406 zoobaby.AnimState:Hide("SACK") 407 zoobaby.AnimState:Show("ARM") 408 zoobaby.Transform:SetScale(0.7,0.7,0.7) 409 zoobaby:AddComponent("locomotor") 410 zoobaby.components.locomotor.walkspeed = 3 411 zoobaby.components.locomotor.runspeed = 6 412 zoobaby:SetStateGraph("SGkrampus") 413 zoobaby:AddTag("zoobaby1") 414 local brain = require "brains/frogbrain" 415 zoobaby:SetBrain(brain) 416 zoobaby.Transform:SetFourFaced() 417 MakeCharacterPhysics(zoobaby, 15, .5) 418 zoobaby:AddComponent("knownlocations") 419 zoobaby:AddComponent("combat") 420 zoobaby:AddComponent("health") 421 zoobaby.components.health:SetMaxHealth(100) 422 zoobaby:RemoveComponent("stackable") 423 zoobaby:RemoveComponent("inventoryitem") 424 zoobaby:RemoveComponent("edible") 425 zoobaby:RemoveComponent("perishable") 426 zoobaby:RemoveComponent("deployable") 427 zoobaby:RemoveComponent("container") 428 local minimap = zoobaby.entity:AddMiniMapEntity() 429 minimap:SetIcon("monkey_barrel.png") 430 zoobaby:AddComponent("follower") 431 zoobaby.components.inspectable.getstatus = function(zoobaby) 432 if not zoobaby:HasTag("followme") then 433 local brain = require "brains/abigailbrain" 434 zoobaby:SetBrain(brain) 435 zoobaby:RestartBrain() 436 zoobaby.components.follower:SetLeader(GetPlayer()) 437 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 438 zoobaby:AddTag("followme") 439 else 440 local brain = require "brains/frogbrain" 441 zoobaby:SetBrain(brain) 442 zoobaby:RestartBrain() 443 zoobaby.components.follower:SetLeader(nil) 444 zoobaby.AnimState:SetBloomEffectHandle("") 445 zoobaby:RemoveTag("followme") 446 end 447 end 448 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 449 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 450 end ) 451 zoobaby:AddComponent("lootdropper") 452 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 453 zoobaby:AddTag("zoobaby") 454 end 455 if target:HasTag("zoobaby2") then 456 local zoobaby = SpawnPrefab("butter") 457 local pt4 = target:GetPosition() 458 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 459 zoobaby.AnimState:SetBank("koalefant") 460 zoobaby.AnimState:SetBuild("koalefant_summer_build") 461 zoobaby.AnimState:PlayAnimation("idle_loop", true) 462 zoobaby.entity:AddSoundEmitter() 463 zoobaby.Transform:SetScale(0.5,0.5,0.5) 464 zoobaby:AddComponent("locomotor") 465 zoobaby.components.locomotor.walkspeed = 3 466 zoobaby.components.locomotor.runspeed = 6 467 zoobaby:SetStateGraph("SGkoalefant") 468 zoobaby:AddTag("zoobaby2") 469 local brain = require "brains/frogbrain" 470 zoobaby:SetBrain(brain) 471 zoobaby.Transform:SetFourFaced() 472 MakeCharacterPhysics(zoobaby, 15, .5) 473 zoobaby:AddComponent("knownlocations") 474 zoobaby:AddComponent("combat") 475 zoobaby:AddComponent("health") 476 zoobaby.components.health:SetMaxHealth(100) 477 zoobaby:RemoveComponent("stackable") 478 zoobaby:RemoveComponent("inventoryitem") 479 zoobaby:RemoveComponent("edible") 480 zoobaby:RemoveComponent("perishable") 481 zoobaby:RemoveComponent("deployable") 482 zoobaby:RemoveComponent("container") 483 local minimap = zoobaby.entity:AddMiniMapEntity() 484 minimap:SetIcon("monkey_barrel.png") 485 zoobaby:AddComponent("follower") 486 zoobaby.components.inspectable.getstatus = function(zoobaby) 487 if not zoobaby:HasTag("followme") then 488 local brain = require "brains/abigailbrain" 489 zoobaby:SetBrain(brain) 490 zoobaby:RestartBrain() 491 zoobaby.components.follower:SetLeader(GetPlayer()) 492 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 493 zoobaby:AddTag("followme") 494 else 495 local brain = require "brains/frogbrain" 496 zoobaby:SetBrain(brain) 497 zoobaby:RestartBrain() 498 zoobaby.components.follower:SetLeader(nil) 499 zoobaby.AnimState:SetBloomEffectHandle("") 500 zoobaby:RemoveTag("followme") 501 end 502 end 503 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 504 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 505 end ) 506 zoobaby:AddComponent("lootdropper") 507 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 508 zoobaby:AddTag("zoobaby") 509 end 510 if target:HasTag("zoobaby3") then 511 local zoobaby = SpawnPrefab("butter") 512 local pt4 = target:GetPosition() 513 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 514 zoobaby.AnimState:SetBank("koalefant") 515 zoobaby.AnimState:SetBuild("koalefant_winter_build") 516 zoobaby.AnimState:PlayAnimation("idle_loop", true) 517 zoobaby.entity:AddSoundEmitter() 518 zoobaby.Transform:SetScale(0.5,0.5,0.5) 519 zoobaby:AddComponent("locomotor") 520 zoobaby.components.locomotor.walkspeed = 3 521 zoobaby.components.locomotor.runspeed = 6 522 zoobaby:SetStateGraph("SGkoalefant") 523 zoobaby:AddTag("zoobaby3") 524 local brain = require "brains/frogbrain" 525 zoobaby:SetBrain(brain) 526 zoobaby.Transform:SetFourFaced() 527 MakeCharacterPhysics(zoobaby, 15, .5) 528 zoobaby:AddComponent("knownlocations") 529 zoobaby:AddComponent("combat") 530 zoobaby:AddComponent("health") 531 zoobaby.components.health:SetMaxHealth(100) 532 zoobaby:RemoveComponent("stackable") 533 zoobaby:RemoveComponent("inventoryitem") 534 zoobaby:RemoveComponent("edible") 535 zoobaby:RemoveComponent("perishable") 536 zoobaby:RemoveComponent("deployable") 537 zoobaby:RemoveComponent("container") 538 local minimap = zoobaby.entity:AddMiniMapEntity() 539 minimap:SetIcon("monkey_barrel.png") 540 zoobaby:AddComponent("follower") 541 zoobaby.components.inspectable.getstatus = function(zoobaby) 542 if not zoobaby:HasTag("followme") then 543 local brain = require "brains/abigailbrain" 544 zoobaby:SetBrain(brain) 545 zoobaby:RestartBrain() 546 zoobaby.components.follower:SetLeader(GetPlayer()) 547 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 548 zoobaby:AddTag("followme") 549 else 550 local brain = require "brains/frogbrain" 551 zoobaby:SetBrain(brain) 552 zoobaby:RestartBrain() 553 zoobaby.components.follower:SetLeader(nil) 554 zoobaby.AnimState:SetBloomEffectHandle("") 555 zoobaby:RemoveTag("followme") 556 end 557 end 558 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 559 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 560 end ) 561 zoobaby:AddComponent("lootdropper") 562 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 563 zoobaby:AddTag("zoobaby") 564 end 565 if target:HasTag("zoobaby4") then 566 local zoobaby = SpawnPrefab("butter") 567 local pt4 = target:GetPosition() 568 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 569 zoobaby.AnimState:SetBank("walrus") 570 zoobaby.AnimState:SetBuild("walrus_baby_build") 571 zoobaby.AnimState:PlayAnimation("idle_happy") 572 zoobaby.entity:AddSoundEmitter() 573 zoobaby.Transform:SetScale(0.8,0.8,0.8) 574 zoobaby:AddComponent("locomotor") 575 zoobaby.components.locomotor.walkspeed = 3 576 zoobaby.components.locomotor.runspeed = 6 577 zoobaby:SetStateGraph("SGwalrus") 578 zoobaby:AddTag("zoobaby4") 579 local brain = require "brains/frogbrain" 580 zoobaby:SetBrain(brain) 581 zoobaby.Transform:SetFourFaced() 582 MakeCharacterPhysics(zoobaby, 15, .5) 583 zoobaby:AddComponent("knownlocations") 584 zoobaby:AddComponent("combat") 585 zoobaby:AddComponent("health") 586 zoobaby.components.health:SetMaxHealth(100) 587 zoobaby:RemoveComponent("stackable") 588 zoobaby:RemoveComponent("inventoryitem") 589 zoobaby:RemoveComponent("edible") 590 zoobaby:RemoveComponent("perishable") 591 zoobaby:RemoveComponent("deployable") 592 zoobaby:RemoveComponent("container") 593 local minimap = zoobaby.entity:AddMiniMapEntity() 594 minimap:SetIcon("monkey_barrel.png") 595 zoobaby:AddComponent("follower") 596 zoobaby.components.inspectable.getstatus = function(zoobaby) 597 if not zoobaby:HasTag("followme") then 598 local brain = require "brains/abigailbrain" 599 zoobaby:SetBrain(brain) 600 zoobaby:RestartBrain() 601 zoobaby.components.follower:SetLeader(GetPlayer()) 602 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 603 zoobaby:AddTag("followme") 604 else 605 local brain = require "brains/frogbrain" 606 zoobaby:SetBrain(brain) 607 zoobaby:RestartBrain() 608 zoobaby.components.follower:SetLeader(nil) 609 zoobaby.AnimState:SetBloomEffectHandle("") 610 zoobaby:RemoveTag("followme") 611 end 612 end 613 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 614 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 615 end ) 616 zoobaby:AddComponent("lootdropper") 617 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 618 zoobaby:AddTag("zoobaby") 619 end 620 if target:HasTag("zoobaby5") then 621 local zoobaby = SpawnPrefab("butter") 622 local pt4 = target:GetPosition() 623 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 624 zoobaby.AnimState:SetBank("kiki") 625 zoobaby.AnimState:SetBuild("kiki_basic") 626 zoobaby.AnimState:PlayAnimation("idle_loop", true) 627 zoobaby.entity:AddSoundEmitter() 628 zoobaby.soundtype = "" 629 zoobaby.Transform:SetScale(1.2,1.2,1.2) 630 zoobaby:AddComponent("locomotor") 631 zoobaby.components.locomotor.walkspeed = 3 632 zoobaby.components.locomotor.runspeed = 6 633 zoobaby:SetStateGraph("SGmonkey") 634 zoobaby:AddTag("zoobaby5") 635 local brain = require "brains/frogbrain" 636 zoobaby:SetBrain(brain) 637 zoobaby.Transform:SetFourFaced() 638 MakeCharacterPhysics(zoobaby, 15, .5) 639 zoobaby:AddComponent("knownlocations") 640 zoobaby:AddComponent("combat") 641 zoobaby:AddComponent("health") 642 zoobaby.components.health:SetMaxHealth(100) 643 zoobaby:RemoveComponent("stackable") 644 zoobaby:RemoveComponent("inventoryitem") 645 zoobaby:RemoveComponent("edible") 646 zoobaby:RemoveComponent("perishable") 647 zoobaby:RemoveComponent("deployable") 648 zoobaby:RemoveComponent("container") 649 local minimap = zoobaby.entity:AddMiniMapEntity() 650 minimap:SetIcon("monkey_barrel.png") 651 zoobaby:AddComponent("follower") 652 zoobaby.components.inspectable.getstatus = function(zoobaby) 653 if not zoobaby:HasTag("followme") then 654 local brain = require "brains/abigailbrain" 655 zoobaby:SetBrain(brain) 656 zoobaby:RestartBrain() 657 zoobaby.components.follower:SetLeader(GetPlayer()) 658 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 659 zoobaby:AddTag("followme") 660 else 661 local brain = require "brains/frogbrain" 662 zoobaby:SetBrain(brain) 663 zoobaby:RestartBrain() 664 zoobaby.components.follower:SetLeader(nil) 665 zoobaby.AnimState:SetBloomEffectHandle("") 666 zoobaby:RemoveTag("followme") 667 end 668 end 669 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 670 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 671 end ) 672 zoobaby:AddComponent("lootdropper") 673 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 674 zoobaby:AddTag("zoobaby") 675 end 676 end 677 else 678 target.components.health:Kill() 679 end 680 end 681 end ) 682 zooroom:AddComponent("workable") 683 zooroom.components.workable:SetWorkAction(ACTIONS.HAMMER) 684 zooroom.components.workable:SetWorkLeft(3) 685 zooroom.components.workable:SetOnFinishCallback(function(zooroom) 686 local pos = Vector3(zooroom.Transform:GetWorldPosition()) 687 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) 688 for k,v in pairs(ents) do 689 if v:HasTag("zoofence") or v:HasTag("brand") then 690 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 691 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 692 v:Remove() 693 end 694 end 695 zooroom:Remove() 696 end ) 697 local pt0 = Vector3(zooroom.Transform:GetWorldPosition()) 698 for k = 1, 40 do 699 local result_offset = FindValidPositionByFan(1 * 2 * PI, 8, 40, function(offset) 700 local x,y,z = (pt0 + offset):Get() 701 local ents = TheSim:FindEntities(x,y,z , 1) 702 return not next(ents) 703 end) 704 if result_offset then 705 local zoofence = SpawnPrefab("butter") 706 zoofence.AnimState:SetBank("wall") 707 zoofence.AnimState:SetBuild("wall_wood") 708 zoofence.AnimState:PlayAnimation("1_2", false) 709 MakeObstaclePhysics(zoofence, .5) 710 zoofence:RemoveComponent("stackable") 711 zoofence:RemoveComponent("inventoryitem") 712 zoofence:RemoveComponent("edible") 713 zoofence:RemoveComponent("perishable") 714 zoofence:RemoveComponent("deployable") 715 zoofence:RemoveComponent("container") 716 zoofence:AddTag("zoofence") 717 zoofence.Transform:SetPosition((pt0 + result_offset):Get()) 718 zoofence.components.inspectable.getstatus = function(zoofence) 719 zoofence.Transform:SetScale(1, 0.1, 1) 720 zoofence.Physics:SetActive(false) 721 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 722 zoofence:DoTaskInTime(5, function(zoofence) 723 zoofence.Transform:SetScale(1, 1, 1) 724 zoofence.Physics:SetActive(true) 725 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 726 end ) 727 end 728 end 729 end 730 inst.components.stackable:Get():Remove() 731end 732 inst:AddComponent("deployable") 733 inst.components.deployable.ondeploy = OnDeploy 734 inst:AddComponent("container") 735 inst.components.container:SetNumSlots(#slotpos) 736 inst.components.container.widgetslotpos = slotpos 737 inst.components.container.widgetpos = Vector3(0,180,0) 738 inst.components.container.side_align_tip = 160 739 inst.components.container.itemtestfn = itemtest 740 inst.components.container.canbeopened = false 741 inst.components.container.widgetbuttoninfo = widgetbuttoninfo 742local function onsave(inst, data) 743 if inst:HasTag("brand") then 744 data.brand = true 745 end 746 if inst:HasTag("zooroom") then 747 data.zooroom = true 748 end 749 if inst:HasTag("zoofence") then 750 data.zoofence = true 751 end 752 if inst:HasTag("zoobaby1") then 753 data.zoobaby1 = true 754 end 755 if inst:HasTag("zoobaby2") then 756 data.zoobaby2 = true 757 end 758 if inst:HasTag("zoobaby3") then 759 data.zoobaby3 = true 760 end 761 if inst:HasTag("zoobaby4") then 762 data.zoobaby4 = true 763 end 764 if inst:HasTag("zoobaby5") then 765 data.zoobaby5 = true 766 end 767 if inst:HasTag("followme") then 768 data.followme = true 769 end 770end 771local function onload(inst, data) 772 if data and data.brand then 773 inst.AnimState:SetBank("sign_home") 774 inst.AnimState:SetBuild("sign_home") 775 inst.AnimState:PlayAnimation("idle") 776 inst.Transform:SetScale(0.8, 0.8, 0.8) 777 inst.AnimState:SetMultColour(0/255,255/255,0/255,1) 778 inst:RemoveComponent("stackable") 779 inst:RemoveComponent("inventoryitem") 780 inst:RemoveComponent("edible") 781 inst:RemoveComponent("perishable") 782 inst:RemoveComponent("deployable") 783 inst:RemoveComponent("container") 784 inst:AddTag("brand") 785 local slotpos1 = { Vector3(0,-75,0)} 786 inst:AddComponent("container") 787 inst.components.container:SetNumSlots(#slotpos1) 788 inst.components.container.widgetslotpos = slotpos1 789 inst.components.container.widgetpos = Vector3(0,180,0) 790 inst.components.container.side_align_tip = 160 791 inst.components.container.acceptsstacks = false 792 inst.components.container.itemtestfn = function(inst, item, slot) 793 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 794 return true 795 end 796 return false 797 end 798 inst.components.container.widgetbuttoninfo = { 799 text = "Buy", 800 position = Vector3(0, -145, 0), 801 fn = function(inst) 802 if GetPlayer().components.inventory:Has("goldnugget", 30) then 803 if inst.components.container:Has("charcoal", 1) then 804 inst.components.container:ConsumeByName("charcoal", 1) 805 local zoobaby = SpawnPrefab("butter") 806 local pt1 = inst:GetPosition() 807 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 808 zoobaby.AnimState:SetBank("krampus") 809 zoobaby.AnimState:SetBuild("krampus_build") 810 zoobaby.AnimState:PlayAnimation("idle", true) 811 zoobaby.entity:AddSoundEmitter() 812 zoobaby.AnimState:Hide("SACK") 813 zoobaby.AnimState:Show("ARM") 814 zoobaby.Transform:SetScale(0.7,0.7,0.7) 815 zoobaby:AddComponent("locomotor") 816 zoobaby.components.locomotor.walkspeed = 3 817 zoobaby.components.locomotor.runspeed = 6 818 zoobaby:SetStateGraph("SGkrampus") 819 zoobaby:AddTag("zoobaby1") 820 local brain = require "brains/frogbrain" 821 zoobaby:SetBrain(brain) 822 zoobaby.Transform:SetFourFaced() 823 MakeCharacterPhysics(zoobaby, 15, .5) 824 zoobaby:AddComponent("knownlocations") 825 zoobaby:AddComponent("combat") 826 zoobaby:AddComponent("health") 827 zoobaby.components.health:SetMaxHealth(100) 828 zoobaby:RemoveComponent("stackable") 829 zoobaby:RemoveComponent("inventoryitem") 830 zoobaby:RemoveComponent("edible") 831 zoobaby:RemoveComponent("perishable") 832 zoobaby:RemoveComponent("deployable") 833 zoobaby:RemoveComponent("container") 834 local minimap = zoobaby.entity:AddMiniMapEntity() 835 minimap:SetIcon("monkey_barrel.png") 836 zoobaby:AddComponent("follower") 837 zoobaby.components.inspectable.getstatus = function(zoobaby) 838 if not zoobaby:HasTag("followme") then 839 local brain = require "brains/abigailbrain" 840 zoobaby:SetBrain(brain) 841 zoobaby:RestartBrain() 842 zoobaby.components.follower:SetLeader(GetPlayer()) 843 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 844 zoobaby:AddTag("followme") 845 else 846 local brain = require "brains/frogbrain" 847 zoobaby:SetBrain(brain) 848 zoobaby:RestartBrain() 849 zoobaby.components.follower:SetLeader(nil) 850 zoobaby.AnimState:SetBloomEffectHandle("") 851 zoobaby:RemoveTag("followme") 852 end 853 end 854 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 855 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 856 end ) 857 zoobaby:AddComponent("lootdropper") 858 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 859 zoobaby:AddTag("zoobaby") 860 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 861 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 862 end 863 if inst.components.container:Has("trunk_summer", 1) then 864 inst.components.container:ConsumeByName("trunk_summer", 1) 865 local zoobaby = SpawnPrefab("butter") 866 local pt1 = inst:GetPosition() 867 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 868 zoobaby.AnimState:SetBank("koalefant") 869 zoobaby.AnimState:SetBuild("koalefant_summer_build") 870 zoobaby.AnimState:PlayAnimation("idle_loop", true) 871 zoobaby.entity:AddSoundEmitter() 872 zoobaby.Transform:SetScale(0.5,0.5,0.5) 873 zoobaby:AddComponent("locomotor") 874 zoobaby.components.locomotor.walkspeed = 3 875 zoobaby.components.locomotor.runspeed = 6 876 zoobaby:SetStateGraph("SGkoalefant") 877 zoobaby:AddTag("zoobaby2") 878 local brain = require "brains/frogbrain" 879 zoobaby:SetBrain(brain) 880 zoobaby.Transform:SetFourFaced() 881 MakeCharacterPhysics(zoobaby, 15, .5) 882 zoobaby:AddComponent("knownlocations") 883 zoobaby:AddComponent("combat") 884 zoobaby:AddComponent("health") 885 zoobaby.components.health:SetMaxHealth(100) 886 zoobaby:RemoveComponent("stackable") 887 zoobaby:RemoveComponent("inventoryitem") 888 zoobaby:RemoveComponent("edible") 889 zoobaby:RemoveComponent("perishable") 890 zoobaby:RemoveComponent("deployable") 891 zoobaby:RemoveComponent("container") 892 local minimap = zoobaby.entity:AddMiniMapEntity() 893 minimap:SetIcon("monkey_barrel.png") 894 zoobaby:AddComponent("follower") 895 zoobaby.components.inspectable.getstatus = function(zoobaby) 896 if not zoobaby:HasTag("followme") then 897 local brain = require "brains/abigailbrain" 898 zoobaby:SetBrain(brain) 899 zoobaby:RestartBrain() 900 zoobaby.components.follower:SetLeader(GetPlayer()) 901 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 902 zoobaby:AddTag("followme") 903 else 904 local brain = require "brains/frogbrain" 905 zoobaby:SetBrain(brain) 906 zoobaby:RestartBrain() 907 zoobaby.components.follower:SetLeader(nil) 908 zoobaby.AnimState:SetBloomEffectHandle("") 909 zoobaby:RemoveTag("followme") 910 end 911 end 912 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 913 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 914 end ) 915 zoobaby:AddComponent("lootdropper") 916 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 917 zoobaby:AddTag("zoobaby") 918 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 919 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 920 end 921 if inst.components.container:Has("trunk_winter", 1) then 922 inst.components.container:ConsumeByName("trunk_winter", 1) 923 local zoobaby = SpawnPrefab("butter") 924 local pt1 = inst:GetPosition() 925 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 926 zoobaby.AnimState:SetBank("koalefant") 927 zoobaby.AnimState:SetBuild("koalefant_winter_build") 928 zoobaby.AnimState:PlayAnimation("idle_loop", true) 929 zoobaby.entity:AddSoundEmitter() 930 zoobaby.Transform:SetScale(0.5,0.5,0.5) 931 zoobaby:AddComponent("locomotor") 932 zoobaby.components.locomotor.walkspeed = 3 933 zoobaby.components.locomotor.runspeed = 6 934 zoobaby:SetStateGraph("SGkoalefant") 935 zoobaby:AddTag("zoobaby3") 936 local brain = require "brains/frogbrain" 937 zoobaby:SetBrain(brain) 938 zoobaby.Transform:SetFourFaced() 939 MakeCharacterPhysics(zoobaby, 15, .5) 940 zoobaby:AddComponent("knownlocations") 941 zoobaby:AddComponent("combat") 942 zoobaby:AddComponent("health") 943 zoobaby.components.health:SetMaxHealth(100) 944 zoobaby:RemoveComponent("stackable") 945 zoobaby:RemoveComponent("inventoryitem") 946 zoobaby:RemoveComponent("edible") 947 zoobaby:RemoveComponent("perishable") 948 zoobaby:RemoveComponent("deployable") 949 zoobaby:RemoveComponent("container") 950 local minimap = zoobaby.entity:AddMiniMapEntity() 951 minimap:SetIcon("monkey_barrel.png") 952 zoobaby:AddComponent("follower") 953 zoobaby.components.inspectable.getstatus = function(zoobaby) 954 if not zoobaby:HasTag("followme") then 955 local brain = require "brains/abigailbrain" 956 zoobaby:SetBrain(brain) 957 zoobaby:RestartBrain() 958 zoobaby.components.follower:SetLeader(GetPlayer()) 959 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 960 zoobaby:AddTag("followme") 961 else 962 local brain = require "brains/frogbrain" 963 zoobaby:SetBrain(brain) 964 zoobaby:RestartBrain() 965 zoobaby.components.follower:SetLeader(nil) 966 zoobaby.AnimState:SetBloomEffectHandle("") 967 zoobaby:RemoveTag("followme") 968 end 969 end 970 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 971 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 972 end ) 973 zoobaby:AddComponent("lootdropper") 974 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 975 zoobaby:AddTag("zoobaby") 976 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 977 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 978 end 979 if inst.components.container:Has("walrus_tusk", 1) then 980 inst.components.container:ConsumeByName("walrus_tusk", 1) 981 local zoobaby = SpawnPrefab("butter") 982 local pt1 = inst:GetPosition() 983 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 984 zoobaby.AnimState:SetBank("walrus") 985 zoobaby.AnimState:SetBuild("walrus_baby_build") 986 zoobaby.AnimState:PlayAnimation("idle_happy") 987 zoobaby.entity:AddSoundEmitter() 988 zoobaby.Transform:SetScale(0.8,0.8,0.8) 989 zoobaby:AddComponent("locomotor") 990 zoobaby.components.locomotor.walkspeed = 3 991 zoobaby.components.locomotor.runspeed = 6 992 zoobaby:SetStateGraph("SGwalrus") 993 zoobaby:AddTag("zoobaby4") 994 local brain = require "brains/frogbrain" 995 zoobaby:SetBrain(brain) 996 zoobaby.Transform:SetFourFaced() 997 MakeCharacterPhysics(zoobaby, 15, .5) 998 zoobaby:AddComponent("knownlocations") 999 zoobaby:AddComponent("combat") 1000 zoobaby:AddComponent("health") 1001 zoobaby.components.health:SetMaxHealth(100) 1002 zoobaby:RemoveComponent("stackable") 1003 zoobaby:RemoveComponent("inventoryitem") 1004 zoobaby:RemoveComponent("edible") 1005 zoobaby:RemoveComponent("perishable") 1006 zoobaby:RemoveComponent("deployable") 1007 zoobaby:RemoveComponent("container") 1008 local minimap = zoobaby.entity:AddMiniMapEntity() 1009 minimap:SetIcon("monkey_barrel.png") 1010 zoobaby:AddComponent("follower") 1011 zoobaby.components.inspectable.getstatus = function(zoobaby) 1012 if not zoobaby:HasTag("followme") then 1013 local brain = require "brains/abigailbrain" 1014 zoobaby:SetBrain(brain) 1015 zoobaby:RestartBrain() 1016 zoobaby.components.follower:SetLeader(GetPlayer()) 1017 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1018 zoobaby:AddTag("followme") 1019 else 1020 local brain = require "brains/frogbrain" 1021 zoobaby:SetBrain(brain) 1022 zoobaby:RestartBrain() 1023 zoobaby.components.follower:SetLeader(nil) 1024 zoobaby.AnimState:SetBloomEffectHandle("") 1025 zoobaby:RemoveTag("followme") 1026 end 1027 end 1028 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1029 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1030 end ) 1031 zoobaby:AddComponent("lootdropper") 1032 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1033 zoobaby:AddTag("zoobaby") 1034 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 1035 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 1036 end 1037 if inst.components.container:Has("cave_banana", 1) then 1038 inst.components.container:ConsumeByName("cave_banana", 1) 1039 local zoobaby = SpawnPrefab("butter") 1040 local pt1 = inst:GetPosition() 1041 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 1042 zoobaby.AnimState:SetBank("kiki") 1043 zoobaby.AnimState:SetBuild("kiki_basic") 1044 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1045 zoobaby.entity:AddSoundEmitter() 1046 zoobaby.soundtype = "" 1047 zoobaby.Transform:SetScale(1.2,1.2,1.2) 1048 zoobaby:AddComponent("locomotor") 1049 zoobaby.components.locomotor.walkspeed = 3 1050 zoobaby.components.locomotor.runspeed = 6 1051 zoobaby:SetStateGraph("SGmonkey") 1052 zoobaby:AddTag("zoobaby5") 1053 local brain = require "brains/frogbrain" 1054 zoobaby:SetBrain(brain) 1055 zoobaby.Transform:SetFourFaced() 1056 MakeCharacterPhysics(zoobaby, 15, .5) 1057 zoobaby:AddComponent("knownlocations") 1058 zoobaby:AddComponent("combat") 1059 zoobaby:AddComponent("health") 1060 zoobaby.components.health:SetMaxHealth(100) 1061 zoobaby:RemoveComponent("stackable") 1062 zoobaby:RemoveComponent("inventoryitem") 1063 zoobaby:RemoveComponent("edible") 1064 zoobaby:RemoveComponent("perishable") 1065 zoobaby:RemoveComponent("deployable") 1066 zoobaby:RemoveComponent("container") 1067 local minimap = zoobaby.entity:AddMiniMapEntity() 1068 minimap:SetIcon("monkey_barrel.png") 1069 zoobaby:AddComponent("follower") 1070 zoobaby.components.inspectable.getstatus = function(zoobaby) 1071 if not zoobaby:HasTag("followme") then 1072 local brain = require "brains/abigailbrain" 1073 zoobaby:SetBrain(brain) 1074 zoobaby:RestartBrain() 1075 zoobaby.components.follower:SetLeader(GetPlayer()) 1076 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1077 zoobaby:AddTag("followme") 1078 else 1079 local brain = require "brains/frogbrain" 1080 zoobaby:SetBrain(brain) 1081 zoobaby:RestartBrain() 1082 zoobaby.components.follower:SetLeader(nil) 1083 zoobaby.AnimState:SetBloomEffectHandle("") 1084 zoobaby:RemoveTag("followme") 1085 end 1086 end 1087 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1088 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1089 end ) 1090 zoobaby:AddComponent("lootdropper") 1091 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1092 zoobaby:AddTag("zoobaby") 1093 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 1094 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 1095 end 1096 end 1097 end } 1098 end 1099 if data and data.zooroom then 1100 inst.AnimState:SetBank("rabbithouse") 1101 inst.AnimState:SetBuild("rabbit_house") 1102 inst.AnimState:PlayAnimation("idle", true) 1103 inst.Transform:SetScale(0.4, 0.4, 0.4) 1104 inst:RemoveComponent("stackable") 1105 inst:RemoveComponent("inventoryitem") 1106 inst:RemoveComponent("edible") 1107 inst:RemoveComponent("perishable") 1108 inst:RemoveComponent("deployable") 1109 inst.components.container.canbeopened = true 1110 inst.entity:AddLight() 1111 inst.Light:SetFalloff(1) 1112 inst.Light:SetIntensity(.8) 1113 inst.Light:SetRadius(15) 1114 inst.Light:SetColour(180/255, 195/255, 50/255) 1115 inst.Light:Enable(true) 1116 inst:AddTag("zooroom") 1117 inst:DoPeriodicTask(180, function(inst) 1118 local target = FindEntity(inst, 9, function(guy) 1119 return guy:HasTag("zoobaby") 1120 end ) 1121 if target then 1122 local target1 = FindEntity(inst, 9, function(guy) 1123 return guy.prefab == "poop" 1124 end ) 1125 if not target1 then 1126 for k = 1,math.random(5,10) do 1127 local pt2 = inst:GetPosition() 1128 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 1129 end 1130 else 1131 for k = 1,math.random(1,3) do 1132 local pt2 = inst:GetPosition() 1133 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 1134 end 1135 end 1136 if inst.components.container:Has("carrot", 3) then 1137 inst.components.container:ConsumeByName("carrot", 3) 1138 if math.random()<0.1 then 1139 if target:HasTag("zoobaby1") then 1140 local zoobaby = SpawnPrefab("butter") 1141 local pt4 = target:GetPosition() 1142 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1143 zoobaby.AnimState:SetBank("krampus") 1144 zoobaby.AnimState:SetBuild("krampus_build") 1145 zoobaby.AnimState:PlayAnimation("idle", true) 1146 zoobaby.entity:AddSoundEmitter() 1147 zoobaby.AnimState:Hide("SACK") 1148 zoobaby.AnimState:Show("ARM") 1149 zoobaby.Transform:SetScale(0.7,0.7,0.7) 1150 zoobaby:AddComponent("locomotor") 1151 zoobaby.components.locomotor.walkspeed = 3 1152 zoobaby.components.locomotor.runspeed = 6 1153 zoobaby:SetStateGraph("SGkrampus") 1154 zoobaby:AddTag("zoobaby1") 1155 local brain = require "brains/frogbrain" 1156 zoobaby:SetBrain(brain) 1157 zoobaby.Transform:SetFourFaced() 1158 MakeCharacterPhysics(zoobaby, 15, .5) 1159 zoobaby:AddComponent("knownlocations") 1160 zoobaby:AddComponent("combat") 1161 zoobaby:AddComponent("health") 1162 zoobaby.components.health:SetMaxHealth(100) 1163 zoobaby:RemoveComponent("stackable") 1164 zoobaby:RemoveComponent("inventoryitem") 1165 zoobaby:RemoveComponent("edible") 1166 zoobaby:RemoveComponent("perishable") 1167 zoobaby:RemoveComponent("deployable") 1168 zoobaby:RemoveComponent("container") 1169 local minimap = zoobaby.entity:AddMiniMapEntity() 1170 minimap:SetIcon("monkey_barrel.png") 1171 zoobaby:AddComponent("follower") 1172 zoobaby.components.inspectable.getstatus = function(zoobaby) 1173 if not zoobaby:HasTag("followme") then 1174 local brain = require "brains/abigailbrain" 1175 zoobaby:SetBrain(brain) 1176 zoobaby:RestartBrain() 1177 zoobaby.components.follower:SetLeader(GetPlayer()) 1178 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1179 zoobaby:AddTag("followme") 1180 else 1181 local brain = require "brains/frogbrain" 1182 zoobaby:SetBrain(brain) 1183 zoobaby:RestartBrain() 1184 zoobaby.components.follower:SetLeader(nil) 1185 zoobaby.AnimState:SetBloomEffectHandle("") 1186 zoobaby:RemoveTag("followme") 1187 end 1188 end 1189 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1190 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1191 end ) 1192 zoobaby:AddComponent("lootdropper") 1193 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1194 zoobaby:AddTag("zoobaby") 1195 end 1196 if target:HasTag("zoobaby2") then 1197 local zoobaby = SpawnPrefab("butter") 1198 local pt4 = target:GetPosition() 1199 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1200 zoobaby.AnimState:SetBank("koalefant") 1201 zoobaby.AnimState:SetBuild("koalefant_summer_build") 1202 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1203 zoobaby.entity:AddSoundEmitter() 1204 zoobaby.Transform:SetScale(0.5,0.5,0.5) 1205 zoobaby:AddComponent("locomotor") 1206 zoobaby.components.locomotor.walkspeed = 3 1207 zoobaby.components.locomotor.runspeed = 6 1208 zoobaby:SetStateGraph("SGkoalefant") 1209 zoobaby:AddTag("zoobaby2") 1210 local brain = require "brains/frogbrain" 1211 zoobaby:SetBrain(brain) 1212 zoobaby.Transform:SetFourFaced() 1213 MakeCharacterPhysics(zoobaby, 15, .5) 1214 zoobaby:AddComponent("knownlocations") 1215 zoobaby:AddComponent("combat") 1216 zoobaby:AddComponent("health") 1217 zoobaby.components.health:SetMaxHealth(100) 1218 zoobaby:RemoveComponent("stackable") 1219 zoobaby:RemoveComponent("inventoryitem") 1220 zoobaby:RemoveComponent("edible") 1221 zoobaby:RemoveComponent("perishable") 1222 zoobaby:RemoveComponent("deployable") 1223 zoobaby:RemoveComponent("container") 1224 local minimap = zoobaby.entity:AddMiniMapEntity() 1225 minimap:SetIcon("monkey_barrel.png") 1226 zoobaby:AddComponent("follower") 1227 zoobaby.components.inspectable.getstatus = function(zoobaby) 1228 if not zoobaby:HasTag("followme") then 1229 local brain = require "brains/abigailbrain" 1230 zoobaby:SetBrain(brain) 1231 zoobaby:RestartBrain() 1232 zoobaby.components.follower:SetLeader(GetPlayer()) 1233 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1234 zoobaby:AddTag("followme") 1235 else 1236 local brain = require "brains/frogbrain" 1237 zoobaby:SetBrain(brain) 1238 zoobaby:RestartBrain() 1239 zoobaby.components.follower:SetLeader(nil) 1240 zoobaby.AnimState:SetBloomEffectHandle("") 1241 zoobaby:RemoveTag("followme") 1242 end 1243 end 1244 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1245 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1246 end ) 1247 zoobaby:AddComponent("lootdropper") 1248 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1249 zoobaby:AddTag("zoobaby") 1250 end 1251 if target:HasTag("zoobaby3") then 1252 local zoobaby = SpawnPrefab("butter") 1253 local pt4 = target:GetPosition() 1254 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1255 zoobaby.AnimState:SetBank("koalefant") 1256 zoobaby.AnimState:SetBuild("koalefant_winter_build") 1257 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1258 zoobaby.entity:AddSoundEmitter() 1259 zoobaby.Transform:SetScale(0.5,0.5,0.5) 1260 zoobaby:AddComponent("locomotor") 1261 zoobaby.components.locomotor.walkspeed = 3 1262 zoobaby.components.locomotor.runspeed = 6 1263 zoobaby:SetStateGraph("SGkoalefant") 1264 zoobaby:AddTag("zoobaby3") 1265 local brain = require "brains/frogbrain" 1266 zoobaby:SetBrain(brain) 1267 zoobaby.Transform:SetFourFaced() 1268 MakeCharacterPhysics(zoobaby, 15, .5) 1269 zoobaby:AddComponent("knownlocations") 1270 zoobaby:AddComponent("combat") 1271 zoobaby:AddComponent("health") 1272 zoobaby.components.health:SetMaxHealth(100) 1273 zoobaby:RemoveComponent("stackable") 1274 zoobaby:RemoveComponent("inventoryitem") 1275 zoobaby:RemoveComponent("edible") 1276 zoobaby:RemoveComponent("perishable") 1277 zoobaby:RemoveComponent("deployable") 1278 zoobaby:RemoveComponent("container") 1279 local minimap = zoobaby.entity:AddMiniMapEntity() 1280 minimap:SetIcon("monkey_barrel.png") 1281 zoobaby:AddComponent("follower") 1282 zoobaby.components.inspectable.getstatus = function(zoobaby) 1283 if not zoobaby:HasTag("followme") then 1284 local brain = require "brains/abigailbrain" 1285 zoobaby:SetBrain(brain) 1286 zoobaby:RestartBrain() 1287 zoobaby.components.follower:SetLeader(GetPlayer()) 1288 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1289 zoobaby:AddTag("followme") 1290 else 1291 local brain = require "brains/frogbrain" 1292 zoobaby:SetBrain(brain) 1293 zoobaby:RestartBrain() 1294 zoobaby.components.follower:SetLeader(nil) 1295 zoobaby.AnimState:SetBloomEffectHandle("") 1296 zoobaby:RemoveTag("followme") 1297 end 1298 end 1299 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1300 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1301 end ) 1302 zoobaby:AddComponent("lootdropper") 1303 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1304 zoobaby:AddTag("zoobaby") 1305 end 1306 if target:HasTag("zoobaby4") then 1307 local zoobaby = SpawnPrefab("butter") 1308 local pt4 = target:GetPosition() 1309 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1310 zoobaby.AnimState:SetBank("walrus") 1311 zoobaby.AnimState:SetBuild("walrus_baby_build") 1312 zoobaby.AnimState:PlayAnimation("idle_happy") 1313 zoobaby.entity:AddSoundEmitter() 1314 zoobaby.Transform:SetScale(0.8,0.8,0.8) 1315 zoobaby:AddComponent("locomotor") 1316 zoobaby.components.locomotor.walkspeed = 3 1317 zoobaby.components.locomotor.runspeed = 6 1318 zoobaby:SetStateGraph("SGwalrus") 1319 zoobaby:AddTag("zoobaby4") 1320 local brain = require "brains/frogbrain" 1321 zoobaby:SetBrain(brain) 1322 zoobaby.Transform:SetFourFaced() 1323 MakeCharacterPhysics(zoobaby, 15, .5) 1324 zoobaby:AddComponent("knownlocations") 1325 zoobaby:AddComponent("combat") 1326 zoobaby:AddComponent("health") 1327 zoobaby.components.health:SetMaxHealth(100) 1328 zoobaby:RemoveComponent("stackable") 1329 zoobaby:RemoveComponent("inventoryitem") 1330 zoobaby:RemoveComponent("edible") 1331 zoobaby:RemoveComponent("perishable") 1332 zoobaby:RemoveComponent("deployable") 1333 zoobaby:RemoveComponent("container") 1334 local minimap = zoobaby.entity:AddMiniMapEntity() 1335 minimap:SetIcon("monkey_barrel.png") 1336 zoobaby:AddComponent("follower") 1337 zoobaby.components.inspectable.getstatus = function(zoobaby) 1338 if not zoobaby:HasTag("followme") then 1339 local brain = require "brains/abigailbrain" 1340 zoobaby:SetBrain(brain) 1341 zoobaby:RestartBrain() 1342 zoobaby.components.follower:SetLeader(GetPlayer()) 1343 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1344 zoobaby:AddTag("followme") 1345 else 1346 local brain = require "brains/frogbrain" 1347 zoobaby:SetBrain(brain) 1348 zoobaby:RestartBrain() 1349 zoobaby.components.follower:SetLeader(nil) 1350 zoobaby.AnimState:SetBloomEffectHandle("") 1351 zoobaby:RemoveTag("followme") 1352 end 1353 end 1354 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1355 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1356 end ) 1357 zoobaby:AddComponent("lootdropper") 1358 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1359 zoobaby:AddTag("zoobaby") 1360 end 1361 if target:HasTag("zoobaby5") then 1362 local zoobaby = SpawnPrefab("butter") 1363 local pt4 = target:GetPosition() 1364 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1365 zoobaby.AnimState:SetBank("kiki") 1366 zoobaby.AnimState:SetBuild("kiki_basic") 1367 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1368 zoobaby.entity:AddSoundEmitter() 1369 zoobaby.soundtype = "" 1370 zoobaby.Transform:SetScale(1.2,1.2,1.2) 1371 zoobaby:AddComponent("locomotor") 1372 zoobaby.components.locomotor.walkspeed = 3 1373 zoobaby.components.locomotor.runspeed = 6 1374 zoobaby:SetStateGraph("SGmonkey") 1375 zoobaby:AddTag("zoobaby5") 1376 local brain = require "brains/frogbrain" 1377 zoobaby:SetBrain(brain) 1378 zoobaby.Transform:SetFourFaced() 1379 MakeCharacterPhysics(zoobaby, 15, .5) 1380 zoobaby:AddComponent("knownlocations") 1381 zoobaby:AddComponent("combat") 1382 zoobaby:AddComponent("health") 1383 zoobaby.components.health:SetMaxHealth(100) 1384 zoobaby:RemoveComponent("stackable") 1385 zoobaby:RemoveComponent("inventoryitem") 1386 zoobaby:RemoveComponent("edible") 1387 zoobaby:RemoveComponent("perishable") 1388 zoobaby:RemoveComponent("deployable") 1389 zoobaby:RemoveComponent("container") 1390 local minimap = zoobaby.entity:AddMiniMapEntity() 1391 minimap:SetIcon("monkey_barrel.png") 1392 zoobaby:AddComponent("follower") 1393 zoobaby.components.inspectable.getstatus = function(zoobaby) 1394 if not zoobaby:HasTag("followme") then 1395 local brain = require "brains/abigailbrain" 1396 zoobaby:SetBrain(brain) 1397 zoobaby:RestartBrain() 1398 zoobaby.components.follower:SetLeader(GetPlayer()) 1399 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1400 zoobaby:AddTag("followme") 1401 else 1402 local brain = require "brains/frogbrain" 1403 zoobaby:SetBrain(brain) 1404 zoobaby:RestartBrain() 1405 zoobaby.components.follower:SetLeader(nil) 1406 zoobaby.AnimState:SetBloomEffectHandle("") 1407 zoobaby:RemoveTag("followme") 1408 end 1409 end 1410 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1411 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1412 end ) 1413 zoobaby:AddComponent("lootdropper") 1414 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1415 zoobaby:AddTag("zoobaby") 1416 end 1417 end 1418 else 1419 target.components.health:Kill() 1420 end 1421 end 1422 end ) 1423 inst:AddComponent("workable") 1424 inst.components.workable:SetWorkAction(ACTIONS.HAMMER) 1425 inst.components.workable:SetWorkLeft(3) 1426 inst.components.workable:SetOnFinishCallback(function(inst) 1427 local pos = Vector3(inst.Transform:GetWorldPosition()) 1428 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) 1429 for k,v in pairs(ents) do 1430 if v:HasTag("zoofence") or v:HasTag("brand") then 1431 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 1432 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 1433 v:Remove() 1434 end 1435 end 1436 inst:Remove() 1437 end ) 1438 end 1439 if data and data.zoofence then 1440 inst.AnimState:SetBank("wall") 1441 inst.AnimState:SetBuild("wall_wood") 1442 inst.AnimState:PlayAnimation("1_2", false) 1443 MakeObstaclePhysics(inst, .5) 1444 inst:RemoveComponent("stackable") 1445 inst:RemoveComponent("inventoryitem") 1446 inst:RemoveComponent("edible") 1447 inst:RemoveComponent("perishable") 1448 inst:RemoveComponent("deployable") 1449 inst:RemoveComponent("container") 1450 inst:AddTag("zoofence") 1451 inst.components.inspectable.getstatus = function(inst) 1452 inst.Transform:SetScale(1, 0.1, 1) 1453 inst.Physics:SetActive(false) 1454 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 1455 inst:DoTaskInTime(5, function(inst) 1456 inst.Transform:SetScale(1, 1, 1) 1457 inst.Physics:SetActive(true) 1458 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 1459 end ) 1460 end 1461 end 1462 if data and data.zoobaby1 then 1463 inst.AnimState:SetBank("krampus") 1464 inst.AnimState:SetBuild("krampus_build") 1465 inst.AnimState:PlayAnimation("idle", true) 1466 inst.entity:AddSoundEmitter() 1467 inst.AnimState:Hide("SACK") 1468 inst.AnimState:Show("ARM") 1469 inst.Transform:SetScale(0.7,0.7,0.7) 1470 inst:AddComponent("locomotor") 1471 inst.components.locomotor.walkspeed = 3 1472 inst.components.locomotor.runspeed = 6 1473 inst:SetStateGraph("SGkrampus") 1474 inst:AddTag("zoobaby1") 1475 local brain = require "brains/frogbrain" 1476 inst:SetBrain(brain) 1477 inst.Transform:SetFourFaced() 1478 MakeCharacterPhysics(inst, 15, .5) 1479 inst:AddComponent("knownlocations") 1480 inst:AddComponent("combat") 1481 inst:AddComponent("health") 1482 inst.components.health:SetMaxHealth(100) 1483 inst:RemoveComponent("stackable") 1484 inst:RemoveComponent("inventoryitem") 1485 inst:RemoveComponent("edible") 1486 inst:RemoveComponent("perishable") 1487 inst:RemoveComponent("deployable") 1488 inst:RemoveComponent("container") 1489 local minimap = inst.entity:AddMiniMapEntity() 1490 minimap:SetIcon("monkey_barrel.png") 1491 inst:AddComponent("follower") 1492 inst.components.inspectable.getstatus = function(inst) 1493 if not inst:HasTag("followme") then 1494 local brain = require "brains/abigailbrain" 1495 inst:SetBrain(brain) 1496 inst:RestartBrain() 1497 inst.components.follower:SetLeader(GetPlayer()) 1498 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1499 inst:AddTag("followme") 1500 else 1501 local brain = require "brains/frogbrain" 1502 inst:SetBrain(brain) 1503 inst:RestartBrain() 1504 inst.components.follower:SetLeader(nil) 1505 inst.AnimState:SetBloomEffectHandle("") 1506 inst:RemoveTag("followme") 1507 end 1508 end 1509 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1510 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1511 end ) 1512 inst:AddComponent("lootdropper") 1513 inst.components.lootdropper:SetLoot({"smallmeat"}) 1514 inst:AddTag("zoobaby") 1515 end 1516 if data and data.zoobaby2 then 1517 inst.AnimState:SetBank("koalefant") 1518 inst.AnimState:SetBuild("koalefant_summer_build") 1519 inst.AnimState:PlayAnimation("idle_loop", true) 1520 inst.entity:AddSoundEmitter() 1521 inst.Transform:SetScale(0.5,0.5,0.5) 1522 inst:AddComponent("locomotor") 1523 inst.components.locomotor.walkspeed = 3 1524 inst.components.locomotor.runspeed = 6 1525 inst:SetStateGraph("SGkoalefant") 1526 inst:AddTag("zoobaby2") 1527 local brain = require "brains/frogbrain" 1528 inst:SetBrain(brain) 1529 inst.Transform:SetFourFaced() 1530 MakeCharacterPhysics(inst, 15, .5) 1531 inst:AddComponent("knownlocations") 1532 inst:AddComponent("combat") 1533 inst:AddComponent("health") 1534 inst.components.health:SetMaxHealth(100) 1535 inst:RemoveComponent("stackable") 1536 inst:RemoveComponent("inventoryitem") 1537 inst:RemoveComponent("edible") 1538 inst:RemoveComponent("perishable") 1539 inst:RemoveComponent("deployable") 1540 inst:RemoveComponent("container") 1541 local minimap = inst.entity:AddMiniMapEntity() 1542 minimap:SetIcon("monkey_barrel.png") 1543 inst:AddComponent("follower") 1544 inst.components.inspectable.getstatus = function(inst) 1545 if not inst:HasTag("followme") then 1546 local brain = require "brains/abigailbrain" 1547 inst:SetBrain(brain) 1548 inst:RestartBrain() 1549 inst.components.follower:SetLeader(GetPlayer()) 1550 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1551 inst:AddTag("followme") 1552 else 1553 local brain = require "brains/frogbrain" 1554 inst:SetBrain(brain) 1555 inst:RestartBrain() 1556 inst.components.follower:SetLeader(nil) 1557 inst.AnimState:SetBloomEffectHandle("") 1558 inst:RemoveTag("followme") 1559 end 1560 end 1561 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1562 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1563 end ) 1564 inst:AddComponent("lootdropper") 1565 inst.components.lootdropper:SetLoot({"smallmeat"}) 1566 inst:AddTag("zoobaby") 1567 end 1568 if data and data.zoobaby3 then 1569 inst.AnimState:SetBank("koalefant") 1570 inst.AnimState:SetBuild("koalefant_winter_build") 1571 inst.AnimState:PlayAnimation("idle_loop", true) 1572 inst.entity:AddSoundEmitter() 1573 inst.Transform:SetScale(0.5,0.5,0.5) 1574 inst:AddComponent("locomotor") 1575 inst.components.locomotor.walkspeed = 3 1576 inst.components.locomotor.runspeed = 6 1577 inst:SetStateGraph("SGkoalefant") 1578 inst:AddTag("zoobaby3") 1579 local brain = require "brains/frogbrain" 1580 inst:SetBrain(brain) 1581 inst.Transform:SetFourFaced() 1582 MakeCharacterPhysics(inst, 15, .5) 1583 inst:AddComponent("knownlocations") 1584 inst:AddComponent("combat") 1585 inst:AddComponent("health") 1586 inst.components.health:SetMaxHealth(100) 1587 inst:RemoveComponent("stackable") 1588 inst:RemoveComponent("inventoryitem") 1589 inst:RemoveComponent("edible") 1590 inst:RemoveComponent("perishable") 1591 inst:RemoveComponent("deployable") 1592 inst:RemoveComponent("container") 1593 local minimap = inst.entity:AddMiniMapEntity() 1594 minimap:SetIcon("monkey_barrel.png") 1595 inst:AddComponent("follower") 1596 inst.components.inspectable.getstatus = function(inst) 1597 if not inst:HasTag("followme") then 1598 local brain = require "brains/abigailbrain" 1599 inst:SetBrain(brain) 1600 inst:RestartBrain() 1601 inst.components.follower:SetLeader(GetPlayer()) 1602 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1603 inst:AddTag("followme") 1604 else 1605 local brain = require "brains/frogbrain" 1606 inst:SetBrain(brain) 1607 inst:RestartBrain() 1608 inst.components.follower:SetLeader(nil) 1609 inst.AnimState:SetBloomEffectHandle("") 1610 inst:RemoveTag("followme") 1611 end 1612 end 1613 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1614 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1615 end ) 1616 inst:AddComponent("lootdropper") 1617 inst.components.lootdropper:SetLoot({"smallmeat"}) 1618 inst:AddTag("zoobaby") 1619 end 1620 if data and data.zoobaby4 then 1621 inst.AnimState:SetBank("walrus") 1622 inst.AnimState:SetBuild("walrus_baby_build") 1623 inst.AnimState:PlayAnimation("idle_happy") 1624 inst.entity:AddSoundEmitter() 1625 inst.Transform:SetScale(0.8,0.8,0.8) 1626 inst:AddComponent("locomotor") 1627 inst.components.locomotor.walkspeed = 3 1628 inst.components.locomotor.runspeed = 6 1629 inst:SetStateGraph("SGwalrus") 1630 inst:AddTag("zoobaby4") 1631 local brain = require "brains/frogbrain" 1632 inst:SetBrain(brain) 1633 inst.Transform:SetFourFaced() 1634 MakeCharacterPhysics(inst, 15, .5) 1635 inst:AddComponent("knownlocations") 1636 inst:AddComponent("combat") 1637 inst:AddComponent("health") 1638 inst.components.health:SetMaxHealth(100) 1639 inst:RemoveComponent("stackable") 1640 inst:RemoveComponent("inventoryitem") 1641 inst:RemoveComponent("edible") 1642 inst:RemoveComponent("perishable") 1643 inst:RemoveComponent("deployable") 1644 inst:RemoveComponent("container") 1645 local minimap = inst.entity:AddMiniMapEntity() 1646 minimap:SetIcon("monkey_barrel.png") 1647 inst:AddComponent("follower") 1648 inst.components.inspectable.getstatus = function(inst) 1649 if not inst:HasTag("followme") then 1650 local brain = require "brains/abigailbrain" 1651 inst:SetBrain(brain) 1652 inst:RestartBrain() 1653 inst.components.follower:SetLeader(GetPlayer()) 1654 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1655 inst:AddTag("followme") 1656 else 1657 local brain = require "brains/frogbrain" 1658 inst:SetBrain(brain) 1659 inst:RestartBrain() 1660 inst.components.follower:SetLeader(nil) 1661 inst.AnimState:SetBloomEffectHandle("") 1662 inst:RemoveTag("followme") 1663 end 1664 end 1665 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1666 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1667 end ) 1668 inst:AddComponent("lootdropper") 1669 inst.components.lootdropper:SetLoot({"smallmeat"}) 1670 inst:AddTag("zoobaby") 1671 end 1672 if data and data.zoobaby5 then 1673 inst.AnimState:SetBank("kiki") 1674 inst.AnimState:SetBuild("kiki_basic") 1675 inst.AnimState:PlayAnimation("idle_loop", true) 1676 inst.entity:AddSoundEmitter() 1677 inst.soundtype = "" 1678 inst.Transform:SetScale(1.2,1.2,1.2) 1679 inst:AddComponent("locomotor") 1680 inst.components.locomotor.walkspeed = 3 1681 inst.components.locomotor.runspeed = 6 1682 inst:SetStateGraph("SGmonkey") 1683 inst:AddTag("zoobaby5") 1684 local brain = require "brains/frogbrain" 1685 inst:SetBrain(brain) 1686 inst.Transform:SetFourFaced() 1687 MakeCharacterPhysics(inst, 15, .5) 1688 inst:AddComponent("knownlocations") 1689 inst:AddComponent("combat") 1690 inst:AddComponent("health") 1691 inst.components.health:SetMaxHealth(100) 1692 inst:RemoveComponent("stackable") 1693 inst:RemoveComponent("inventoryitem") 1694 inst:RemoveComponent("edible") 1695 inst:RemoveComponent("perishable") 1696 inst:RemoveComponent("deployable") 1697 inst:RemoveComponent("container") 1698 local minimap = inst.entity:AddMiniMapEntity() 1699 minimap:SetIcon("monkey_barrel.png") 1700 inst:AddComponent("follower") 1701 inst.components.inspectable.getstatus = function(inst) 1702 if not inst:HasTag("followme") then 1703 local brain = require "brains/abigailbrain" 1704 inst:SetBrain(brain) 1705 inst:RestartBrain() 1706 inst.components.follower:SetLeader(GetPlayer()) 1707 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1708 inst:AddTag("followme") 1709 else 1710 local brain = require "brains/frogbrain" 1711 inst:SetBrain(brain) 1712 inst:RestartBrain() 1713 inst.components.follower:SetLeader(nil) 1714 inst.AnimState:SetBloomEffectHandle("") 1715 inst:RemoveTag("followme") 1716 end 1717 end 1718 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1719 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1720 end ) 1721 inst:AddComponent("lootdropper") 1722 inst.components.lootdropper:SetLoot({"smallmeat"}) 1723 inst:AddTag("zoobaby") 1724 end 1725 if data and data.followme then 1726 local brain = require "brains/abigailbrain" 1727 inst:SetBrain(brain) 1728 inst:RestartBrain() 1729 inst.components.follower:SetLeader(GetPlayer()) 1730 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1731 inst:AddTag("followme") 1732 end 1733end 1734 inst.OnSave = onsave 1735 inst.OnLoad = onload 1736 1737 即可在开阔的空地上,用黄油种动物园,在身上有30个黄金时,用鼠标左键点牌子,可打开格子,放入木炭点Buy按钮,可买一只小龙,花费30个黄金;放入夏象鼻点Buy按钮,可买小红象;放入冬象鼻点Buy按钮,可买小蓝象;放入海象牙点Buy按钮,可买小海象;放入香蕉点Buy按钮,可买猴子。鼠标左键点木栅栏,可开门,5秒后自动关门。鼠标左键点中间的胡萝卜房可打开格子,放入小动物爱吃的胡萝卜(每天消耗9个),当格子里的胡萝卜不足3个时,圈里的动物将陆续饿死。当动物园里有动物时,每天都能收到15-30个黄金的门票钱(放在牌子前面),动物会产便便,如果不及时清扫,门票钱将下降为正常的1/3。如果食物充足,小动物还有一定概率会繁殖,点胡萝卜房格子上方的Sell按钮,可卖掉圈舍中的动物,每只20个黄金。如果动物跑出圈舍,或想带领动物转场,就用鼠标左键点动物(手里不要拿武器),它会跟随你,再次用鼠标左键点动物,可以取消跟随。动物在小地图上显示为猴子的图标。不想要动物园时,用锤子砸掉胡萝卜房即可。黄油可以打蝴蝶获得,如果修改了“巨型超市”,也可花1-3个黄金购得

2025/04/23 · Bny

YN303-良种山羊(用闪电羊角种良种山羊,会生小羊,能跟随、产羊奶)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0三.良种山羊(用闪电羊角种良种山羊,会生小羊,能跟随、产羊奶) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/lightninggoathorn.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local function OnDeploy (inst, pt) 7 local goodgoat = SpawnPrefab("lightninggoathorn") 8 goodgoat.Transform:SetPosition(pt.x, pt.y, pt.z) 9 goodgoat.AnimState:SetBank("lightning_goat") 10 goodgoat.AnimState:SetBuild("lightning_goat_build") 11 goodgoat.AnimState:PlayAnimation("idle_loop", true) 12 goodgoat.Transform:SetFourFaced() 13 goodgoat.entity:AddSoundEmitter() 14 local shadow = goodgoat.entity:AddDynamicShadow() 15 shadow:SetSize(1.75,.75) 16 MakeCharacterPhysics(goodgoat, 100, 1) 17 goodgoat.entity:AddLight() 18 goodgoat.Light:Enable(false) 19 local minimap = goodgoat.entity:AddMiniMapEntity() 20 minimap:SetIcon( "toothtrap.png" ) 21 goodgoat:RemoveComponent("stackable") 22 goodgoat:RemoveComponent("inventoryitem") 23 goodgoat:RemoveComponent("deployable") 24 goodgoat:AddComponent("knownlocations") 25 goodgoat:AddComponent("leader") 26 goodgoat:AddComponent("follower") 27 goodgoat.components.follower:SetLeader(GetPlayer()) 28 goodgoat.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 29 goodgoat:AddTag("followme") 30 goodgoat:AddComponent("locomotor") 31 goodgoat.components.locomotor.walkspeed = 4 32 goodgoat.components.locomotor.runspeed = 8 33 goodgoat:SetStateGraph("SGlightninggoat") 34 local brain = require "brains/chesterbrain" 35 goodgoat:SetBrain(brain) 36 goodgoat:AddComponent("health") 37 goodgoat.components.health:SetMaxHealth(200) 38 goodgoat:AddComponent("combat") 39 goodgoat.components.combat.hiteffectsymbol = "lightning_goat_body" 40 goodgoat.components.combat:SetAttackPeriod(1) 41 goodgoat.components.combat:SetRange(1, 2) 42 goodgoat.components.combat:SetDefaultDamage(10) 43 goodgoat:AddComponent("lootdropper") 44 goodgoat.components.lootdropper:SetLoot({"meat","meat","meat","meat","meat","meat"}) 45 goodgoat:ListenForEvent("attacked", function(goodgoat, data) 46 if data.attacker ~= GetPlayer() then 47 goodgoat.components.combat:SetTarget(data.attacker) 48 goodgoat.components.combat:ShareTarget(data.attacker, 30, function(dude) return dude:HasTag("goodgoats") and not dude.components.health:IsDead() end, 10) 49 else 50 goodgoat.components.health:Kill() 51 end 52 end ) 53 goodgoat.components.inspectable.getstatus = function(goodgoat) 54 if not goodgoat:HasTag("followme") then 55 local brain = require "brains/chesterbrain" 56 goodgoat:SetBrain(brain) 57 goodgoat:RestartBrain() 58 goodgoat.components.follower:SetLeader(GetPlayer()) 59 goodgoat.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 60 goodgoat:AddTag("followme") 61 else 62 local brain = require "brains/frogbrain" 63 goodgoat:SetBrain(brain) 64 goodgoat:RestartBrain() 65 goodgoat.components.follower:SetLeader(nil) 66 goodgoat.AnimState:SetBloomEffectHandle("") 67 goodgoat:RemoveTag("followme") 68 end 69 end 70 goodgoat:DoPeriodicTask(math.random(180, 360), function(goodgoat) 71 SpawnPrefab("goatmilk").Transform:SetPosition(goodgoat.Transform:GetWorldPosition()) 72 end ) 73 goodgoat:ListenForEvent( "nighttime", function() 74 if math.random()<.3 then 75 local pt0 = goodgoat:GetPosition() 76 local smallgoat = SpawnPrefab("lightninggoathorn") 77 smallgoat.Transform:SetPosition(pt0.x, pt0.y, pt0.z) 78 smallgoat.AnimState:SetBank("lightning_goat") 79 smallgoat.AnimState:SetBuild("lightning_goat_build") 80 smallgoat.AnimState:PlayAnimation("idle_loop", true) 81 smallgoat.Transform:SetFourFaced() 82 smallgoat.Transform:SetScale(0.6, 0.6, 0.6) 83 smallgoat.entity:AddSoundEmitter() 84 local shadow = smallgoat.entity:AddDynamicShadow() 85 shadow:SetSize(1,.5) 86 MakeCharacterPhysics(smallgoat, 60, 0.6) 87 smallgoat.entity:AddLight() 88 smallgoat.Light:Enable(false) 89 local minimap = smallgoat.entity:AddMiniMapEntity() 90 minimap:SetIcon( "toothtrap.png" ) 91 smallgoat:RemoveComponent("stackable") 92 smallgoat:RemoveComponent("inventoryitem") 93 smallgoat:RemoveComponent("deployable") 94 smallgoat:AddComponent("knownlocations") 95 smallgoat:AddComponent("follower") 96 smallgoat:AddComponent("locomotor") 97 smallgoat.components.locomotor.walkspeed = 4 98 smallgoat.components.locomotor.runspeed = 8 99 smallgoat:SetStateGraph("SGlightninggoat") 100 smallgoat:AddComponent("health") 101 smallgoat.components.health:SetMaxHealth(100) 102 smallgoat:AddComponent("combat") 103 smallgoat.components.combat.hiteffectsymbol = "lightning_goat_body" 104 smallgoat.components.combat:SetAttackPeriod(1) 105 smallgoat.components.combat:SetRange(1, 2) 106 smallgoat.components.combat:SetDefaultDamage(5) 107 smallgoat:AddComponent("lootdropper") 108 smallgoat.components.lootdropper:SetLoot({"meat","meat","meat","lightninggoathorn"}) 109 smallgoat:ListenForEvent("attacked", function(smallgoat, data) 110 if data.attacker ~= GetPlayer() then 111 smallgoat.components.combat:SetTarget(data.attacker) 112 smallgoat.components.combat:ShareTarget(data.attacker, 30, function(dude) return dude:HasTag("goodgoats") and not dude.components.health:IsDead() end, 10) 113 else 114 smallgoat.components.health:Kill() 115 end 116 end ) 117 smallgoat:DoPeriodicTask(math.random(180, 360), function(smallgoat) 118 SpawnPrefab("poop").Transform:SetPosition(smallgoat.Transform:GetWorldPosition()) 119 end ) 120 smallgoat:DoTaskInTime(1, function(smallgoat) 121 local mama = FindEntity(smallgoat, 100, function(guy) 122 return guy:HasTag("goodgoats") and guy.components.leader and guy.components.health and not guy.components.health:IsDead() 123 end) 124 if mama then 125 local brain = require "brains/chesterbrain" 126 smallgoat:SetBrain(brain) 127 smallgoat:RestartBrain() 128 smallgoat.components.follower:SetLeader(mama) 129 else 130 local brain = require "brains/frogbrain" 131 smallgoat:SetBrain(brain) 132 smallgoat:RestartBrain() 133 smallgoat.components.follower:SetLeader(nil) 134 end 135 end ) 136 smallgoat.components.inspectable.getstatus = function(smallgoat) 137 local mama = FindEntity(smallgoat, 100, function(guy) 138 return guy:HasTag("goodgoats") and guy.components.leader and guy.components.health and not guy.components.health:IsDead() 139 end) 140 if mama then 141 local brain = require "brains/chesterbrain" 142 smallgoat:SetBrain(brain) 143 smallgoat:RestartBrain() 144 smallgoat.components.follower:SetLeader(mama) 145 else 146 local brain = require "brains/frogbrain" 147 smallgoat:SetBrain(brain) 148 smallgoat:RestartBrain() 149 smallgoat.components.follower:SetLeader(nil) 150 end 151 end 152 smallgoat:AddTag("smallgoats") 153 end 154 end , GetWorld()) 155 goodgoat:AddTag("goodgoats") 156 inst.components.stackable:Get():Remove() 157end 158 inst:AddComponent("deployable") 159 inst.components.deployable.ondeploy = OnDeploy 160local function onsave(inst, data) 161 if inst:HasTag("goodgoats") then 162 data.goodgoats = true 163 end 164 if inst:HasTag("followme") then 165 data.followme = true 166 end 167 if inst:HasTag("smallgoats") then 168 data.smallgoats = true 169 end 170end 171local function onload(inst, data) 172 if data and data.goodgoats then 173 inst.AnimState:SetBank("lightning_goat") 174 inst.AnimState:SetBuild("lightning_goat_build") 175 inst.AnimState:PlayAnimation("idle_loop", true) 176 inst.Transform:SetFourFaced() 177 inst.entity:AddSoundEmitter() 178 local shadow = inst.entity:AddDynamicShadow() 179 shadow:SetSize(1.75,.75) 180 MakeCharacterPhysics(inst, 100, 1) 181 inst.entity:AddLight() 182 inst.Light:Enable(false) 183 local minimap = inst.entity:AddMiniMapEntity() 184 minimap:SetIcon( "toothtrap.png" ) 185 inst:RemoveComponent("stackable") 186 inst:RemoveComponent("inventoryitem") 187 inst:RemoveComponent("deployable") 188 inst:AddComponent("knownlocations") 189 inst:AddComponent("leader") 190 inst:AddComponent("follower") 191 inst:AddComponent("locomotor") 192 inst.components.locomotor.walkspeed = 4 193 inst.components.locomotor.runspeed = 8 194 inst:SetStateGraph("SGlightninggoat") 195 local brain = require "brains/frogbrain" 196 inst:SetBrain(brain) 197 inst:AddComponent("health") 198 inst.components.health:SetMaxHealth(200) 199 inst:AddComponent("combat") 200 inst.components.combat.hiteffectsymbol = "lightning_goat_body" 201 inst.components.combat:SetAttackPeriod(1) 202 inst.components.combat:SetRange(1, 2) 203 inst.components.combat:SetDefaultDamage(10) 204 inst:AddComponent("lootdropper") 205 inst.components.lootdropper:SetLoot({"meat","meat","meat","meat","meat","meat"}) 206 inst:ListenForEvent("attacked", function(inst, data) 207 if data.attacker ~= GetPlayer() then 208 inst.components.combat:SetTarget(data.attacker) 209 inst.components.combat:ShareTarget(data.attacker, 30, function(dude) return dude:HasTag("goodgoats") and not dude.components.health:IsDead() end, 10) 210 else 211 inst.components.health:Kill() 212 end 213 end ) 214 inst.components.inspectable.getstatus = function(inst) 215 if not inst:HasTag("followme") then 216 local brain = require "brains/chesterbrain" 217 inst:SetBrain(brain) 218 inst:RestartBrain() 219 inst.components.follower:SetLeader(GetPlayer()) 220 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 221 inst:AddTag("followme") 222 else 223 local brain = require "brains/frogbrain" 224 inst:SetBrain(brain) 225 inst:RestartBrain() 226 inst.components.follower:SetLeader(nil) 227 inst.AnimState:SetBloomEffectHandle("") 228 inst:RemoveTag("followme") 229 end 230 end 231 inst:DoPeriodicTask(math.random(180, 360), function(inst) 232 SpawnPrefab("goatmilk").Transform:SetPosition(inst.Transform:GetWorldPosition()) 233 end ) 234 inst:ListenForEvent( "nighttime", function() 235 if math.random()<.3 then 236 local pt0 = inst:GetPosition() 237 local smallgoat = SpawnPrefab("lightninggoathorn") 238 smallgoat.Transform:SetPosition(pt0.x, pt0.y, pt0.z) 239 smallgoat.AnimState:SetBank("lightning_goat") 240 smallgoat.AnimState:SetBuild("lightning_goat_build") 241 smallgoat.AnimState:PlayAnimation("idle_loop", true) 242 smallgoat.Transform:SetFourFaced() 243 smallgoat.Transform:SetScale(0.6, 0.6, 0.6) 244 smallgoat.entity:AddSoundEmitter() 245 local shadow = smallgoat.entity:AddDynamicShadow() 246 shadow:SetSize(1,.5) 247 MakeCharacterPhysics(smallgoat, 60, 0.6) 248 smallgoat.entity:AddLight() 249 smallgoat.Light:Enable(false) 250 local minimap = smallgoat.entity:AddMiniMapEntity() 251 minimap:SetIcon( "toothtrap.png" ) 252 smallgoat:RemoveComponent("stackable") 253 smallgoat:RemoveComponent("inventoryitem") 254 smallgoat:RemoveComponent("deployable") 255 smallgoat:AddComponent("knownlocations") 256 smallgoat:AddComponent("follower") 257 smallgoat:AddComponent("locomotor") 258 smallgoat.components.locomotor.walkspeed = 4 259 smallgoat.components.locomotor.runspeed = 8 260 smallgoat:SetStateGraph("SGlightninggoat") 261 smallgoat:AddComponent("health") 262 smallgoat.components.health:SetMaxHealth(100) 263 smallgoat:AddComponent("combat") 264 smallgoat.components.combat.hiteffectsymbol = "lightning_goat_body" 265 smallgoat.components.combat:SetAttackPeriod(1) 266 smallgoat.components.combat:SetRange(1, 2) 267 smallgoat.components.combat:SetDefaultDamage(5) 268 smallgoat:AddComponent("lootdropper") 269 smallgoat.components.lootdropper:SetLoot({"meat","meat","meat","lightninggoathorn"}) 270 smallgoat:ListenForEvent("attacked", function(smallgoat, data) 271 if data.attacker ~= GetPlayer() then 272 smallgoat.components.combat:SetTarget(data.attacker) 273 smallgoat.components.combat:ShareTarget(data.attacker, 30, function(dude) return dude:HasTag("goodgoats") and not dude.components.health:IsDead() end, 10) 274 else 275 smallgoat.components.health:Kill() 276 end 277 end ) 278 smallgoat:DoPeriodicTask(math.random(180, 360), function(smallgoat) 279 SpawnPrefab("poop").Transform:SetPosition(smallgoat.Transform:GetWorldPosition()) 280 end ) 281 smallgoat:DoTaskInTime(1, function(smallgoat) 282 local mama = FindEntity(smallgoat, 100, function(guy) 283 return guy:HasTag("goodgoats") and guy.components.leader and guy.components.health and not guy.components.health:IsDead() 284 end) 285 if mama then 286 local brain = require "brains/chesterbrain" 287 smallgoat:SetBrain(brain) 288 smallgoat:RestartBrain() 289 smallgoat.components.follower:SetLeader(mama) 290 else 291 local brain = require "brains/frogbrain" 292 smallgoat:SetBrain(brain) 293 smallgoat:RestartBrain() 294 smallgoat.components.follower:SetLeader(nil) 295 end 296 end ) 297 smallgoat.components.inspectable.getstatus = function(smallgoat) 298 local mama = FindEntity(smallgoat, 100, function(guy) 299 return guy:HasTag("goodgoats") and guy.components.leader and guy.components.health and not guy.components.health:IsDead() 300 end) 301 if mama then 302 local brain = require "brains/chesterbrain" 303 smallgoat:SetBrain(brain) 304 smallgoat:RestartBrain() 305 smallgoat.components.follower:SetLeader(mama) 306 else 307 local brain = require "brains/frogbrain" 308 smallgoat:SetBrain(brain) 309 smallgoat:RestartBrain() 310 smallgoat.components.follower:SetLeader(nil) 311 end 312 end 313 smallgoat:AddTag("smallgoats") 314 end 315 end , GetWorld()) 316 inst:AddTag("goodgoats") 317 end 318 if data and data.followme then 319 local brain = require "brains/chesterbrain" 320 inst:SetBrain(brain) 321 inst:RestartBrain() 322 inst.components.follower:SetLeader(GetPlayer()) 323 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 324 inst:AddTag("followme") 325 end 326 if data and data.smallgoats then 327 inst.AnimState:SetBank("lightning_goat") 328 inst.AnimState:SetBuild("lightning_goat_build") 329 inst.AnimState:PlayAnimation("idle_loop", true) 330 inst.Transform:SetFourFaced() 331 inst.Transform:SetScale(0.6, 0.6, 0.6) 332 inst.entity:AddSoundEmitter() 333 local shadow = inst.entity:AddDynamicShadow() 334 shadow:SetSize(1,.5) 335 MakeCharacterPhysics(inst, 60, 0.6) 336 inst.entity:AddLight() 337 inst.Light:Enable(false) 338 local minimap = inst.entity:AddMiniMapEntity() 339 minimap:SetIcon( "toothtrap.png" ) 340 inst:RemoveComponent("stackable") 341 inst:RemoveComponent("inventoryitem") 342 inst:RemoveComponent("deployable") 343 inst:AddComponent("knownlocations") 344 inst:AddComponent("follower") 345 inst:AddComponent("locomotor") 346 inst.components.locomotor.walkspeed = 4 347 inst.components.locomotor.runspeed = 8 348 inst:SetStateGraph("SGlightninggoat") 349 inst:AddComponent("health") 350 inst.components.health:SetMaxHealth(100) 351 inst:AddComponent("combat") 352 inst.components.combat.hiteffectsymbol = "lightning_goat_body" 353 inst.components.combat:SetAttackPeriod(1) 354 inst.components.combat:SetRange(1, 2) 355 inst.components.combat:SetDefaultDamage(5) 356 inst:AddComponent("lootdropper") 357 inst.components.lootdropper:SetLoot({"meat","meat","meat","lightninggoathorn"}) 358 inst:ListenForEvent("attacked", function(inst, data) 359 if data.attacker ~= GetPlayer() then 360 inst.components.combat:SetTarget(data.attacker) 361 inst.components.combat:ShareTarget(data.attacker, 30, function(dude) return dude:HasTag("goodgoats") and not dude.components.health:IsDead() end, 10) 362 else 363 inst.components.health:Kill() 364 end 365 end ) 366 inst:DoPeriodicTask(math.random(180, 360), function(inst) 367 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 368 end ) 369 inst:DoTaskInTime(1, function(inst) 370 local mama = FindEntity(inst, 100, function(guy) 371 return guy:HasTag("goodgoats") and guy.components.leader and guy.components.health and not guy.components.health:IsDead() 372 end) 373 if mama then 374 local brain = require "brains/chesterbrain" 375 inst:SetBrain(brain) 376 inst:RestartBrain() 377 inst.components.follower:SetLeader(mama) 378 else 379 local brain = require "brains/frogbrain" 380 inst:SetBrain(brain) 381 inst:RestartBrain() 382 inst.components.follower:SetLeader(nil) 383 end 384 end ) 385 inst.components.inspectable.getstatus = function(inst) 386 local mama = FindEntity(inst, 100, function(guy) 387 return guy:HasTag("goodgoats") and guy.components.leader and guy.components.health and not guy.components.health:IsDead() 388 end) 389 if mama then 390 local brain = require "brains/chesterbrain" 391 inst:SetBrain(brain) 392 inst:RestartBrain() 393 inst.components.follower:SetLeader(mama) 394 else 395 local brain = require "brains/frogbrain" 396 inst:SetBrain(brain) 397 inst:RestartBrain() 398 inst.components.follower:SetLeader(nil) 399 end 400 end 401 inst:AddTag("smallgoats") 402 end 403end 404 inst.OnSave = onsave 405 inst.OnLoad = onload 406 407 即可用闪电羊角种良种山羊,鼠标左键点山羊(手里不要拿武器,以免误伤)可跟随,再次点击取消跟随。良种山羊每天可产1-2份羊奶,夜里还有一定概率生下小羊,杀掉良种山羊可得6块大肉。小羊只跟随大羊,如果你杀掉了小羊的妈妈,它会乱跑,这时带一只大羊,用鼠标左键点小羊,可让它认新的妈妈。小羊会产便便,不会长大,可作为你的肉食来源,屠宰后得到3块大肉和闪电羊角,其中闪电羊角可用于再种良种山羊,逐步壮大你的羊群。良种山羊在小地图上显示为犬牙陷阱图标。闪电羊角可打闪电羊获得,如修改了“巨型超市”,也可花1-3个黄金购得

2025/04/23 · Bny

YN304-商业采矿机(用晶体管种商业采矿机,20个黄金租用一次,收购采出的矿石,赔钱、赚钱天注定)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0四.商业采矿机(用晶体管种商业采矿机,20个黄金租用一次,收购采出的矿石,赔钱、赚钱天注定) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/transistor.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local function makeluckypit(inst) 7 local pt = inst:GetPosition() 8 local luckypit = SpawnPrefab("transistor") 9 luckypit.Transform:SetPosition(pt.x, pt.y, pt.z) 10 luckypit.AnimState:SetBank("coldfirepit") 11 luckypit.AnimState:SetBuild("coldfirepit") 12 luckypit.AnimState:PlayAnimation("idle",false) 13 luckypit.entity:AddSoundEmitter() 14 luckypit.Transform:SetScale(1.5,1.5,1.5) 15 luckypit:RemoveComponent("stackable") 16 luckypit:RemoveComponent("inventoryitem") 17 luckypit:RemoveComponent("deployable") 18 luckypit:AddComponent("workable") 19 luckypit.components.workable:SetWorkAction(ACTIONS.HAMMER) 20 luckypit.components.workable:SetWorkLeft(3) 21 luckypit.components.workable:SetOnFinishCallback(function(luckypit) 22 SpawnPrefab("collapse_big").Transform:SetPosition(luckypit.Transform:GetWorldPosition()) 23 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 24 luckypit:Remove() 25 end ) 26 luckypit:AddComponent("trader") 27 luckypit.components.trader:SetAcceptTest(function(luckypit, item) 28 if GetPlayer().components.inventory:Has("goldnugget", 20) then 29 if not luckypit:HasTag("domining") then 30 if item.prefab == "goldnugget" then 31 return true 32 end 33 end 34 end 35 if item.prefab == "rocks" or item.prefab == "nitre" or item.prefab == "flint" or item.prefab == "redgem" or item.prefab == "bluegem" or item.prefab == "purplegem" or item.prefab == "greengem" or item.prefab == "orangegem" or item.prefab == "yellowgem" or item.prefab == "thulecite" or item.prefab == "ice" then 36 return true 37 end 38 return false 39 end ) 40 luckypit.components.trader.onaccept = function(luckypit, giver, item) 41 if item.prefab == "goldnugget" then 42 giver.components.inventory:ConsumeByName("goldnugget", 19) 43 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 44 luckypit:AddTag("domining") 45 luckypit.task = luckypit:DoPeriodicTask(1, function() 46 local pt0 = luckypit:GetPosition() 47 luckypit.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 48 luckypit:DoTaskInTime(0.5, function() luckypit.AnimState:SetBloomEffectHandle("") end ) 49 SpawnPrefab("collapse_small").Transform:SetPosition(pt0.x, 1, pt0.z) 50 luckypit.SoundEmitter:PlaySound("dontstarve/wilson/rock_break") 51 GetPlayer().components.playercontroller:ShakeCamera(luckypit, "FULL", 0.7, 0.02, .5, 40) 52 local ores = {"rocks","nitre","flint","redgem","bluegem","purplegem","greengem","orangegem","yellowgem","thulecite","ice","goldnugget","ash"} 53 local ore = ores[math.random(#ores)] 54 local myore = SpawnPrefab(ore) 55 myore.Transform:SetPosition(pt0.x, 0, pt0.z) 56 myore.components.inventoryitem.canbepickedup = false 57 myore:AddComponent("complexprojectile") 58 myore.components.complexprojectile.yOffset = 2.5 59 myore.components.complexprojectile:Launch(Point(pt0.x+(math.random(10)-math.random(10)), 0, pt0.z+(math.random(10)-math.random(10)))) 60 myore.components.complexprojectile:SetOnHit(function() 61 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(myore.Transform:GetWorldPosition()) 62 myore:RemoveComponent("complexprojectile") 63 myore.components.inventoryitem.canbepickedup = true 64 end ) 65 end ) 66 luckypit:DoTaskInTime(math.random(10,60), function() 67 SpawnPrefab("collapse_big").Transform:SetPosition(luckypit.Transform:GetWorldPosition()) 68 luckypit.SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 69 if luckypit.task then luckypit.task:Cancel() luckypit.task = nil end 70 luckypit:RemoveTag("domining") 71 end ) 72 end 73 if item.prefab == "thulecite" then 74 for k = 1, 3 do 75 local goldnugget = SpawnPrefab("goldnugget") 76 giver.components.inventory:GiveItem(goldnugget) 77 end 78 end 79 if item.prefab == "rocks" or item.prefab == "nitre" or item.prefab == "flint" or item.prefab == "redgem" or item.prefab == "bluegem" or item.prefab == "purplegem" or item.prefab == "greengem" or item.prefab == "orangegem" or item.prefab == "yellowgem" or item.prefab == "ice" then 80 local goldnugget = SpawnPrefab("goldnugget") 81 giver.components.inventory:GiveItem(goldnugget) 82 end 83 end 84 luckypit:AddTag("luckypit") 85end 86local function OnDeploy (inst, pt) 87 makeluckypit(inst) 88 inst.components.stackable:Get():Remove() 89end 90 inst:AddComponent("deployable") 91 inst.components.deployable.ondeploy = OnDeploy 92local function onsave(inst, data) 93 if inst:HasTag("luckypit") then 94 data.luckypit = true 95 end 96end 97local function onload(inst, data) 98 if data and data.luckypit then 99 makeluckypit(inst) 100 inst:Remove() 101 end 102end 103 inst.OnSave = onsave 104 inst.OnLoad = onload 105 106 即可用晶体管种商业采矿机(拿着1个晶体管对地面点鼠标右键,如果拿着多个,则不会种出来),给它20个黄金(拿着黄金对采矿机点鼠标左键)可租用一次,采出的矿石数量不确定,还有一定概率采出灰。你可以将矿石留下自用,也可以卖给商业采矿机(拿着矿石对采矿机点鼠标左键),除铥矿石可卖3个黄金外,其余每个矿石可卖1个黄金,能否平衡你支付的租金,就要看天意了,开启矿业大亨的生涯吧。不想要商业采矿机了,用锤子砸掉即可。晶体管在精炼选项(画着白色宝石)下,用2个黄金、1个石砖制造

2025/04/23 · Bny

YN305-环保公司(用草种环保公司,将接收的垃圾搬到粉碎区,点铃粉碎后得黄金)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0五.环保公司(用草种环保公司,将接收的垃圾搬到粉碎区,点铃粉碎后得黄金) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/cutgrass.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local function makegrinder(inst) 7 local pt = inst:GetPosition() 8 local redmark = SpawnPrefab("cutgrass") 9 redmark.Transform:SetPosition(pt.x, pt.y, pt.z) 10 redmark.AnimState:SetBank("gridplacer") 11 redmark.AnimState:SetBuild("gridplacer") 12 redmark.AnimState:PlayAnimation("anim", true) 13 redmark.Transform:SetScale(1.5, 1.5, 1.5) 14 redmark.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround ) 15 redmark.AnimState:SetLayer( LAYER_BACKGROUND ) 16 redmark.AnimState:SetSortOrder( 3 ) 17 redmark.Transform:SetRotation( 45 ) 18 redmark.AnimState:SetMultColour(255/255,0/255,0/255,1) 19 redmark.AnimState:SetLightOverride(1) 20 redmark:AddTag("NOCLICK") 21 redmark:RemoveComponent("stackable") 22 redmark:RemoveComponent("edible") 23 redmark:RemoveComponent("tradable") 24 redmark:RemoveComponent("fuel") 25 redmark:RemoveComponent("burnable") 26 redmark:RemoveComponent("propagator") 27 redmark:RemoveComponent("repairer") 28 redmark:RemoveComponent("inventoryitem") 29 redmark:RemoveComponent("deployable") 30 redmark:RemoveTag("cattoy") 31 redmark:AddTag("redmark") 32 local yellowmark = SpawnPrefab("cutgrass") 33 yellowmark.Transform:SetPosition(pt.x-12.5, 0, pt.z+12.5) 34 yellowmark.AnimState:SetBank("gridplacer") 35 yellowmark.AnimState:SetBuild("gridplacer") 36 yellowmark.AnimState:PlayAnimation("anim", true) 37 yellowmark.Transform:SetScale(2, 2, 2) 38 yellowmark.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround ) 39 yellowmark.AnimState:SetLayer( LAYER_BACKGROUND ) 40 yellowmark.AnimState:SetSortOrder( 3 ) 41 yellowmark.Transform:SetRotation( 45 ) 42 yellowmark.AnimState:SetMultColour(255/255,255/255,0/255,1) 43 yellowmark.AnimState:SetLightOverride(1) 44 yellowmark:AddTag("NOCLICK") 45 yellowmark:RemoveComponent("stackable") 46 yellowmark:RemoveComponent("edible") 47 yellowmark:RemoveComponent("tradable") 48 yellowmark:RemoveComponent("fuel") 49 yellowmark:RemoveComponent("burnable") 50 yellowmark:RemoveComponent("propagator") 51 yellowmark:RemoveComponent("repairer") 52 yellowmark:RemoveComponent("inventoryitem") 53 yellowmark:RemoveComponent("deployable") 54 yellowmark:RemoveTag("cattoy") 55 yellowmark:ListenForEvent( "daytime", function() 56 for k = 1,math.random(6,12) do 57 local pt1 = yellowmark:GetPosition() 58 local trash = SpawnPrefab("cutgrass") 59 trash.Transform:SetPosition(pt1.x+(math.random(6)-math.random(6)), 0, pt1.z+(math.random(6)-math.random(6))) 60 trash.AnimState:SetBank("fertilizer") 61 trash.AnimState:SetBuild("fertilizer") 62 trash.AnimState:PlayAnimation("idle") 63 trash.Transform:SetScale(1.5, 1.5, 1.5) 64 trash.AnimState:SetMultColour(0/255,255/255,0/255,1) 65 trash.components.inventoryitem:ChangeImageName("fertilizer") 66 trash:RemoveComponent("stackable") 67 trash:RemoveComponent("edible") 68 trash:RemoveComponent("tradable") 69 trash:RemoveComponent("fuel") 70 trash:RemoveComponent("burnable") 71 trash:RemoveComponent("propagator") 72 trash:RemoveComponent("repairer") 73 trash:RemoveComponent("deployable") 74 trash:RemoveTag("cattoy") 75 trash:AddComponent("named") 76 trash.components.named:SetName("Refuse") 77 trash.flies = trash:SpawnChild("flies") 78 trash.components.inventoryitem:SetOnDroppedFn(function() trash.flies = trash:SpawnChild("flies") end ) 79 trash.components.inventoryitem:SetOnPickupFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end ) 80 trash.components.inventoryitem:SetOnPutInInventoryFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end ) 81 MakeSmallBurnable(trash) 82 MakeSmallPropagator(trash) 83 trash:AddTag("trash") 84 end 85 end , GetWorld() ) 86 yellowmark:ListenForEvent( "nighttime", function() 87 for k = 1,math.random(3,5) do 88 local pt1 = yellowmark:GetPosition() 89 local trash = SpawnPrefab("cutgrass") 90 trash.Transform:SetPosition(pt1.x+(math.random(6)-math.random(6)), 0, pt1.z+(math.random(6)-math.random(6))) 91 trash.AnimState:SetBank("fertilizer") 92 trash.AnimState:SetBuild("fertilizer") 93 trash.AnimState:PlayAnimation("idle") 94 trash.Transform:SetScale(1.5, 1.5, 1.5) 95 trash.AnimState:SetMultColour(0/255,255/255,0/255,1) 96 trash.components.inventoryitem:ChangeImageName("fertilizer") 97 trash:RemoveComponent("stackable") 98 trash:RemoveComponent("edible") 99 trash:RemoveComponent("tradable") 100 trash:RemoveComponent("fuel") 101 trash:RemoveComponent("burnable") 102 trash:RemoveComponent("propagator") 103 trash:RemoveComponent("repairer") 104 trash:RemoveComponent("deployable") 105 trash:RemoveTag("cattoy") 106 trash:AddComponent("named") 107 trash.components.named:SetName("Refuse") 108 trash.flies = trash:SpawnChild("flies") 109 trash.components.inventoryitem:SetOnDroppedFn(function() trash.flies = trash:SpawnChild("flies") end ) 110 trash.components.inventoryitem:SetOnPickupFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end ) 111 trash.components.inventoryitem:SetOnPutInInventoryFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end ) 112 MakeSmallBurnable(trash) 113 MakeSmallPropagator(trash) 114 trash:AddTag("trash") 115 end 116 end , GetWorld() ) 117 yellowmark:ListenForEvent( "dusktime", function() 118 for k = 1,math.random(5,7) do 119 local pt1 = yellowmark:GetPosition() 120 local trash = SpawnPrefab("cutgrass") 121 trash.Transform:SetPosition(pt1.x+(math.random(6)-math.random(6)), 0, pt1.z+(math.random(6)-math.random(6))) 122 trash.AnimState:SetBank("fertilizer") 123 trash.AnimState:SetBuild("fertilizer") 124 trash.AnimState:PlayAnimation("idle") 125 trash.Transform:SetScale(1.5, 1.5, 1.5) 126 trash.AnimState:SetMultColour(0/255,255/255,0/255,1) 127 trash.components.inventoryitem:ChangeImageName("fertilizer") 128 trash:RemoveComponent("stackable") 129 trash:RemoveComponent("edible") 130 trash:RemoveComponent("tradable") 131 trash:RemoveComponent("fuel") 132 trash:RemoveComponent("burnable") 133 trash:RemoveComponent("propagator") 134 trash:RemoveComponent("repairer") 135 trash:RemoveComponent("deployable") 136 trash:RemoveTag("cattoy") 137 trash:AddComponent("named") 138 trash.components.named:SetName("Refuse") 139 trash.flies = trash:SpawnChild("flies") 140 trash.components.inventoryitem:SetOnDroppedFn(function() trash.flies = trash:SpawnChild("flies") end ) 141 trash.components.inventoryitem:SetOnPickupFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end ) 142 trash.components.inventoryitem:SetOnPutInInventoryFn(function() if trash.flies then trash.flies:Remove() trash.flies = nil end end ) 143 MakeSmallBurnable(trash) 144 MakeSmallPropagator(trash) 145 trash:AddTag("trash") 146 end 147 end , GetWorld() ) 148 yellowmark:AddTag("yellowmark") 149 local footbell = SpawnPrefab("cutgrass") 150 footbell.Transform:SetPosition(pt.x-5, 0, pt.z+5) 151 footbell.AnimState:SetBank("bell") 152 footbell.AnimState:SetBuild("bell") 153 footbell.AnimState:PlayAnimation("idle") 154 footbell.AnimState:SetMultColour(255/255,255/255,0/255,1) 155 footbell.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 156 footbell:RemoveComponent("stackable") 157 footbell:RemoveComponent("edible") 158 footbell:RemoveComponent("tradable") 159 footbell:RemoveComponent("fuel") 160 footbell:RemoveComponent("burnable") 161 footbell:RemoveComponent("propagator") 162 footbell:RemoveComponent("repairer") 163 footbell:RemoveComponent("inventoryitem") 164 footbell:RemoveComponent("deployable") 165 footbell:RemoveTag("cattoy") 166 footbell:AddComponent("named") 167 footbell.components.named:SetName("Bell") 168 footbell:AddTag("footbell") 169 footbell:AddComponent("workable") 170 footbell.components.workable:SetWorkAction(ACTIONS.HAMMER) 171 footbell.components.workable:SetWorkLeft(3) 172 footbell.components.workable:SetOnFinishCallback(function() 173 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(footbell.Transform:GetWorldPosition()) 174 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 175 local pos2 = Vector3(footbell.Transform:GetWorldPosition()) 176 local ents2 = TheSim:FindEntities(pos2.x,pos2.y,pos2.z, 30) 177 for k,v in pairs(ents2) do 178 if v:HasTag("redmark") or v:HasTag("yellowmark") or v:HasTag("trash") or v:HasTag("footfoot") then 179 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 180 v:Remove() 181 end 182 end 183 footbell:Remove() 184 end ) 185 footbell.components.inspectable.getstatus = function() 186 GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") 187 local foot = SpawnPrefab("cutgrass") 188 foot.Transform:SetPosition(pt.x, 10, pt.z) 189 foot.AnimState:SetBank("foot") 190 foot.AnimState:SetBuild("foot_build") 191 foot.AnimState:PlayAnimation("idle") 192 foot.Transform:SetFourFaced() 193 foot.Transform:SetRotation( 270 ) 194 foot:RemoveComponent("stackable") 195 foot:RemoveComponent("edible") 196 foot:RemoveComponent("tradable") 197 foot:RemoveComponent("fuel") 198 foot:RemoveComponent("burnable") 199 foot:RemoveComponent("propagator") 200 foot:RemoveComponent("repairer") 201 foot:RemoveComponent("inventoryitem") 202 foot:RemoveComponent("deployable") 203 foot:RemoveTag("cattoy") 204 foot:AddTag("footfoot") 205 foot.falling = foot:DoPeriodicTask(.01, function() foot.Physics:SetMotorVelOverride(0,-55,0) end) 206 foot:DoTaskInTime(0.1, function() 207 if foot.falling then foot.falling:Cancel() foot.falling = nil end 208 GetPlayer().SoundEmitter:PlaySound("dontstarve_DLC001/creatures/glommer/foot_ground") 209 GetPlayer().components.playercontroller:ShakeCamera(foot, "FULL", 0.5, 0.05, 2, 40) 210 SpawnPrefab("collapse_big").Transform:SetPosition(pt.x, 0, pt.z) 211 local pos = Vector3(foot.Transform:GetWorldPosition()) 212 local ents = TheSim:FindEntities(pos.x,0,pos.z, 5) 213 for k,v in pairs(ents) do 214 if v:HasTag("trash") and v.components.inventoryitem and not v.components.inventoryitem:IsHeld() then 215 SpawnPrefab("goldnugget").Transform:SetPosition(v.Transform:GetWorldPosition()) 216 v:Remove() 217 end 218 if v:HasTag("player") then 219 v.AnimState:PlayAnimation("hit") 220 v.components.health:DoDelta(-5) 221 end 222 end 223 foot:DoTaskInTime(0.5, function() 224 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/stone_drop") 225 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(foot.Transform:GetWorldPosition()) 226 foot:Remove() 227 end ) 228 end ) 229 end 230end 231local function OnDeploy (inst, pt) 232 makegrinder(inst) 233 inst.components.stackable:Get():Remove() 234end 235 inst:AddComponent("deployable") 236 inst.components.deployable.ondeploy = OnDeploy 237local function onsave(inst, data) 238 if inst:HasTag("redmark") then 239 data.redmark = true 240 end 241 if inst:HasTag("yellowmark") then 242 data.yellowmark = true 243 end 244 if inst:HasTag("trash") then 245 data.trash = true 246 end 247 if inst:HasTag("footbell") then 248 data.footbell = true 249 end 250 if inst:HasTag("footfoot") then 251 data.footfoot = true 252 end 253end 254local function onload(inst, data) 255 if data and data.redmark then 256 makegrinder(inst) 257 inst:Remove() 258 end 259 if data and data.yellowmark then 260 inst:Remove() 261 end 262 if data and data.footbell then 263 inst:Remove() 264 end 265 if data and data.footfoot then 266 inst:Remove() 267 end 268 if data and data.trash then 269 inst.AnimState:SetBank("fertilizer") 270 inst.AnimState:SetBuild("fertilizer") 271 inst.AnimState:PlayAnimation("idle") 272 inst.Transform:SetScale(1.5, 1.5, 1.5) 273 inst.AnimState:SetMultColour(0/255,255/255,0/255,1) 274 inst.components.inventoryitem:ChangeImageName("fertilizer") 275 inst:RemoveComponent("stackable") 276 inst:RemoveComponent("edible") 277 inst:RemoveComponent("tradable") 278 inst:RemoveComponent("fuel") 279 inst:RemoveComponent("burnable") 280 inst:RemoveComponent("propagator") 281 inst:RemoveComponent("repairer") 282 inst:RemoveComponent("deployable") 283 inst:RemoveTag("cattoy") 284 inst:AddComponent("named") 285 inst.components.named:SetName("Refuse") 286 inst.flies = inst:SpawnChild("flies") 287 inst.components.inventoryitem:SetOnDroppedFn(function() inst.flies = inst:SpawnChild("flies") end ) 288 inst.components.inventoryitem:SetOnPickupFn(function() if inst.flies then inst.flies:Remove() inst.flies = nil end end ) 289 inst.components.inventoryitem:SetOnPutInInventoryFn(function() if inst.flies then inst.flies:Remove() inst.flies = nil end end ) 290 MakeSmallBurnable(inst) 291 MakeSmallPropagator(inst) 292 inst:AddTag("trash") 293 end 294end 295 inst.OnSave = onsave 296 inst.OnLoad = onload 297 298 即可在开阔的空地上,用草种环保公司(拿着1个草对地面点鼠标右键,如果拿着多个,则不会种出来),每天白天、傍晚、黑夜都会有垃圾被送到黄区,将它们搬到红区后,鼠标左键点地上的铃,可将垃圾粉碎,其中的贵金属(黄金)将留在地上,这就是环保公司的收入来源。粉碎垃圾时,不要站在红区附近,会被砸伤(减5点血)。黄区的垃圾如不及时清理,会越来越多,如果实在处理不过来,可以将垃圾烧掉,但那样就没有收入了。这是饥荒世界唯一一家环保公司,整块大陆的清洁就仰赖你了,承担起这肮脏而又崇高的事业吧。不想要环保公司了,用锤子砸掉铃即可

2025/04/23 · Bny

YN306-生鲜售卖机(用木板种生鲜售卖机,放入生鲜产品,每天清晨自动卖出换黄金)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0六.生鲜售卖机(用木板种生鲜售卖机,放入生鲜产品,每天清晨自动卖出换黄金) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/boards.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local function OnDeploy (inst, pt) 7 local vending = SpawnPrefab("boards") 8 vending.Transform:SetPosition(pt.x, pt.y, pt.z) 9 vending.AnimState:SetBank("icebox") 10 vending.AnimState:SetBuild("ice_box") 11 vending.AnimState:PlayAnimation("closed") 12 vending.Transform:SetScale(1.3, 1.3, 1.3) 13 vending.AnimState:SetMultColour(255/255,255/255,0/255,1) 14 vending:RemoveComponent("stackable") 15 vending:RemoveComponent("tradable") 16 vending:RemoveComponent("edible") 17 vending:RemoveComponent("inventoryitem") 18 vending:RemoveComponent("repairer") 19 vending:RemoveComponent("fuel") 20 vending:RemoveComponent("burnable") 21 vending:RemoveComponent("propagator") 22 vending:RemoveComponent("deployable") 23 vending.components.container.canbeopened = true 24 vending:DoPeriodicTask(2, function(vending) 25 vending.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 26 vending:DoTaskInTime(1, function() vending.AnimState:SetBloomEffectHandle("") end ) 27 end ) 28 vending:AddComponent("workable") 29 vending.components.workable:SetWorkAction(ACTIONS.HAMMER) 30 vending.components.workable:SetWorkLeft(3) 31 vending.components.workable:SetOnFinishCallback(function(vending) 32 SpawnPrefab("collapse_big").Transform:SetPosition(vending.Transform:GetWorldPosition()) 33 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 34 vending:Remove() 35 end ) 36 vending:ListenForEvent( "daytime", function() 37 local num_found = 0 38 for k,v in pairs(vending.components.container.slots) do 39 if v and v.prefab ~= "goldnugget" and v.prefab ~= "spoiled_food" then 40 num_found = num_found + v.components.stackable:StackSize() 41 v:Remove() 42 end 43 end 44 for k = 1, num_found do 45 local goldnugget = SpawnPrefab("goldnugget") 46 vending.components.container:GiveItem(goldnugget) 47 end 48 end, GetWorld()) 49 vending:AddTag("vendings") 50 inst.components.stackable:Get():Remove() 51end 52 inst:AddComponent("deployable") 53 inst.components.deployable.ondeploy = OnDeploy 54local function onsave(inst, data) 55 if inst:HasTag("vendings") then 56 data.vendings = true 57 end 58end 59local function onload(inst, data) 60 if data and data.vendings then 61 inst.AnimState:SetBank("icebox") 62 inst.AnimState:SetBuild("ice_box") 63 inst.AnimState:PlayAnimation("closed") 64 inst.Transform:SetScale(1.3, 1.3, 1.3) 65 inst.AnimState:SetMultColour(255/255,255/255,0/255,1) 66 inst:RemoveComponent("stackable") 67 inst:RemoveComponent("tradable") 68 inst:RemoveComponent("edible") 69 inst:RemoveComponent("inventoryitem") 70 inst:RemoveComponent("repairer") 71 inst:RemoveComponent("fuel") 72 inst:RemoveComponent("burnable") 73 inst:RemoveComponent("propagator") 74 inst:RemoveComponent("deployable") 75 inst.components.container.canbeopened = true 76 inst:DoPeriodicTask(2, function(inst) 77 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 78 inst:DoTaskInTime(1, function() inst.AnimState:SetBloomEffectHandle("") end ) 79 end ) 80 inst:AddComponent("workable") 81 inst.components.workable:SetWorkAction(ACTIONS.HAMMER) 82 inst.components.workable:SetWorkLeft(3) 83 inst.components.workable:SetOnFinishCallback(function(inst) 84 SpawnPrefab("collapse_big").Transform:SetPosition(inst.Transform:GetWorldPosition()) 85 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 86 inst:Remove() 87 end ) 88 inst:ListenForEvent( "daytime", function() 89 local num_found = 0 90 for k,v in pairs(inst.components.container.slots) do 91 if v and v.prefab ~= "goldnugget" and v.prefab ~= "spoiled_food" then 92 num_found = num_found + v.components.stackable:StackSize() 93 v:Remove() 94 end 95 end 96 for k = 1, num_found do 97 local goldnugget = SpawnPrefab("goldnugget") 98 inst.components.container:GiveItem(goldnugget) 99 end 100 end, GetWorld()) 101 inst:AddTag("vendings") 102 end 103end 104 inst.OnSave = onsave 105 inst.OnLoad = onload 106local slotpos = {} 107for y = 3, 0, -1 do 108 for x = 0, 2 do 109 table.insert(slotpos, Vector3(75*x-75*2+75, 75*y-75*2+75,0)) 110 end 111end 112 inst:AddComponent("container") 113 inst.components.container:SetNumSlots(#slotpos) 114 inst.components.container.widgetslotpos = slotpos 115 inst.components.container.widgetpos = Vector3(0,100,0) 116 inst.components.container.side_align_tip = 160 117 inst.components.container.canbeopened = false 118 inst.components.container.onopenfn = function(inst) inst.AnimState:PlayAnimation("open") GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") end 119 inst.components.container.onclosefn = function(inst) inst.AnimState:PlayAnimation("close") GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") end 120 inst.components.container.itemtestfn = function(inst, item, slot) 121 if item.prefab == "cave_banana" or item.prefab == "carrot" or item.prefab == "corn" or item.prefab == "pumpkin" or item.prefab == "eggplant" or item.prefab == "durian" or item.prefab == "pomegranate" or item.prefab == "dragonfruit" or item.prefab == "berries" or item.prefab == "cactus_meat" or item.prefab == "watermelon" or item.prefab == "acorn" or item.prefab == "meat" or item.prefab == "smallmeat" or item.prefab == "fish" or item.prefab == "eel" or item.prefab == "drumstick" or item.prefab == "bird_egg" or item.prefab == "froglegs" or item.prefab == "monstermeat" or item.prefab == "spoiled_food" or item.prefab == "butter" or item.prefab == "butterflywings" or item.prefab == "cutlichen" or item.prefab == "foliage" or item.prefab == "honey" or item.prefab == "lightbulb" or item.prefab == "red_cap" or item.prefab == "green_cap" or item.prefab == "blue_cap" or item.prefab == "petals" or item.prefab == "petals_evil" or item.prefab == "goatmilk" or item.prefab == "goldnugget" then 122 return true 123 end 124 return false 125 end 126 inst:AddTag("fridge") 127 128 即可用木板种生鲜售卖机,鼠标左键点售卖机,可打开格子,将蔬菜和肉类等生鲜产品放入格子中,每天清晨将全部卖出,每个售价1个黄金,结算的黄金在售卖机中领取。有了生鲜售卖机,不用发愁过剩的产品不好销售了。可以出售的生鲜产品包括香蕉、胡萝卜、玉米、南瓜、茄子、榴莲、石榴、火龙果、浆果、仙人掌肉、西瓜、橡果、大肉、小肉、鱼、鳗鱼、鸡腿、鸟蛋、蛙腿、疯肉、黄油、蝴蝶翅膀、苔藓、叶子、蜂蜜、荧光果、红蘑菇、绿蘑菇、蓝蘑菇、花瓣、噩梦花瓣。不想要生鲜售卖机了,用锤子砸掉即可。不要与“用木板种鱼人房”一同修改

2025/04/23 · Bny

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

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0七.炸弹客(用红色护身符种炸弹客,购买遥控炸弹,放在地上按键盘Delete键引爆) 3 4 1.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/player_common.lua文件,在inst:AddComponent("playeractionpicker")的下一行插入以下内容: 5 6TheInput:AddKeyUpHandler(KEY_DELETE, function() 7 GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") 8 inst:DoTaskInTime(0.1, function() 9 local pos = Vector3(inst.Transform:GetWorldPosition()) 10 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 100) 11 for k,v in pairs(ents) do 12 if v:HasTag("bomballright") and v.components.inventoryitem and not v.components.inventoryitem:IsHeld() then 13 local pos1 = Vector3(v.Transform:GetWorldPosition()) 14 local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 15) 15 for k,i in pairs(ents1) do 16 if i.components.combat and i.components.health and not i.components.health:IsDead() and not i:HasTag("player") then 17 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(i.Transform:GetWorldPosition()) 18 i.components.health:Kill() 19 end 20 if i.components.workable and i.components.workable.workleft > 0 and not i.components.inventoryitem then 21 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(i.Transform:GetWorldPosition()) 22 i.components.workable:Destroy(v) 23 end 24 end 25 GetPlayer().SoundEmitter:PlaySound("dontstarve_DLC001/creatures/glommer/foot_ground") 26 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 27 SpawnPrefab("explode_small").Transform:SetPosition(v.Transform:GetWorldPosition()) 28 SpawnPrefab("groundpoundring_fx").Transform:SetPosition(v.Transform:GetWorldPosition()) 29 GetClock():DoLightningLighting() 30 GetPlayer().components.playercontroller:ShakeCamera(v, "FULL", 0.7, 0.02, .5, 40) 31 v:Remove() 32 end 33 end 34 end ) 35end ) 36 37 38 2.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/amulet.lua文件,在inst.AnimState:PlayAnimation("redamulet")的下一行插入以下内容: 39 40local function makebomber(inst) 41 local pt = inst:GetPosition() 42 local bomber = SpawnPrefab("amulet") 43 bomber.Transform:SetPosition(pt.x, pt.y, pt.z) 44 bomber.AnimState:SetBank("wilson") 45 bomber.AnimState:SetBuild("wx78") 46 bomber.AnimState:OverrideSymbol("swap_hat", "hat_catcoon", "swap_hat") 47 bomber.AnimState:OverrideSymbol("swap_body", "swap_krampus_sack", "backpack") 48 bomber.AnimState:OverrideSymbol("swap_body", "swap_krampus_sack", "swap_body") 49 bomber.AnimState:Show("HAT") 50 bomber.AnimState:Show("HAT_HAIR") 51 bomber.AnimState:Hide("HAIR_NOHAT") 52 bomber.AnimState:Hide("HAIR") 53 bomber.AnimState:Hide("ARM_carry") 54 bomber.AnimState:Show("ARM_normal") 55 bomber.Transform:SetFourFaced() 56 bomber.AnimState:PlayAnimation("idle") 57 bomber:RemoveComponent("equippable") 58 bomber:RemoveComponent("inventoryitem") 59 bomber:RemoveComponent("finiteuses") 60 bomber:RemoveComponent("deployable") 61 MakeLargeBurnable(bomber) 62 MakeLargePropagator(bomber) 63 bomber:AddComponent("trader") 64 bomber.components.trader:SetAcceptTest(function(bomber, item) 65 if GetPlayer().components.inventory:Has("goldnugget", 10) then 66 if item.prefab == "goldnugget" then 67 return true 68 end 69 end 70 return false 71 end ) 72 bomber.components.trader.onaccept = function(bomber, giver, item) 73 GetPlayer().components.inventory:ConsumeByName("goldnugget", 9) 74 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 75 bomber.AnimState:PlayAnimation("give") 76 local bomb = SpawnPrefab("amulet") 77 bomb.AnimState:SetBank("bee_mine_maxwell") 78 bomb.AnimState:SetBuild("bee_mine_maxwell") 79 bomb.AnimState:PlayAnimation("idle") 80 bomb.Transform:SetScale(0.8, 0.8, 0.8) 81 bomb.AnimState:SetMultColour(255/255,255/255,0/255,1) 82 bomb.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 83 bomb:AddComponent("named") 84 bomb.components.named:SetName("Bomb") 85 local minimap = bomb.entity:AddMiniMapEntity() 86 minimap:SetIcon( "beemine.png" ) 87 bomb:RemoveComponent("equippable") 88 bomb:RemoveComponent("inventoryitem") 89 bomb:RemoveComponent("finiteuses") 90 bomb:RemoveComponent("deployable") 91 bomb:AddComponent("inventoryitem") 92 bomb.components.inventoryitem:ChangeImageName("beemine") 93 bomb.components.inventoryitem:SetOnDroppedFn(function() 94 bomb:AddTag("bomballright") 95 end ) 96 bomb.components.inventoryitem:SetOnPickupFn(function() 97 bomb:RemoveTag("bomballright") 98 end ) 99 bomb.components.inventoryitem:SetOnPutInInventoryFn(function() 100 bomb:RemoveTag("bomballright") 101 end ) 102 bomb:AddTag("bomb") 103 GetPlayer().components.inventory:GiveItem(bomb) 104 end 105 bomber:AddTag("bomber") 106 for k = 1, 11 do 107 local result_offset = FindValidPositionByFan(1 * 2 * PI, 2, 11, function(offset) 108 local x,y,z = (pt + offset):Get() 109 local ents = TheSim:FindEntities(x,y,z , 1) 110 return not next(ents) 111 end) 112 if result_offset then 113 local bombbye = SpawnPrefab("amulet") 114 bombbye.Transform:SetPosition((pt + result_offset):Get()) 115 bombbye.AnimState:SetBank("bee_mine_maxwell") 116 bombbye.AnimState:SetBuild("bee_mine_maxwell") 117 bombbye.AnimState:PlayAnimation("idle") 118 bombbye.Transform:SetScale(0.8, 0.8, 0.8) 119 bombbye.AnimState:SetMultColour(255/255,255/255,0/255,1) 120 bombbye.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 121 bombbye:RemoveComponent("equippable") 122 bombbye:RemoveComponent("inventoryitem") 123 bombbye:RemoveComponent("finiteuses") 124 bombbye:RemoveComponent("deployable") 125 MakeLargeBurnable(bombbye) 126 MakeLargePropagator(bombbye) 127 bombbye:AddTag("NOCLICK") 128 bombbye:AddTag("bombbye") 129 end 130 end 131end 132local function OnDeploy (inst, pt) 133 makebomber(inst) 134 inst:Remove() 135end 136 inst:AddComponent("deployable") 137 inst.components.deployable.ondeploy = OnDeploy 138local function onsave(inst, data) 139 if inst:HasTag("bomber") then 140 data.bomber = true 141 end 142 if inst:HasTag("bombbye") then 143 data.bombbye = true 144 end 145 if inst:HasTag("bomb") then 146 data.bomb = true 147 end 148 if inst:HasTag("bomballright") then 149 data.bomballright = true 150 end 151end 152local function onload(inst, data) 153 if data and data.bomber then 154 makebomber(inst) 155 inst:Remove() 156 end 157 if data and data.bombbye then 158 inst:Remove() 159 end 160 if data and data.bomb then 161 inst.AnimState:SetBank("bee_mine_maxwell") 162 inst.AnimState:SetBuild("bee_mine_maxwell") 163 inst.AnimState:PlayAnimation("idle") 164 inst.Transform:SetScale(0.8, 0.8, 0.8) 165 inst.AnimState:SetMultColour(255/255,255/255,0/255,1) 166 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 167 inst:AddComponent("named") 168 inst.components.named:SetName("Bomb") 169 local minimap = inst.entity:AddMiniMapEntity() 170 minimap:SetIcon( "beemine.png" ) 171 inst:RemoveComponent("equippable") 172 inst:RemoveComponent("inventoryitem") 173 inst:RemoveComponent("finiteuses") 174 inst:RemoveComponent("deployable") 175 inst:AddComponent("inventoryitem") 176 inst.components.inventoryitem:ChangeImageName("beemine") 177 inst.components.inventoryitem:SetOnDroppedFn(function() 178 inst:AddTag("bomballright") 179 end ) 180 inst.components.inventoryitem:SetOnPickupFn(function() 181 inst:RemoveTag("bomballright") 182 end ) 183 inst.components.inventoryitem:SetOnPutInInventoryFn(function() 184 inst:RemoveTag("bomballright") 185 end ) 186 inst:AddTag("bomb") 187 end 188 if data and data.bomballright then 189 inst:AddTag("bomballright") 190 end 191end 192 inst.OnSave = onsave 193 inst.OnLoad = onload 194 195 即可用红色护身符种炸弹客,给炸弹客10个黄金(拿着黄金对炸弹客点鼠标左键),可购买遥控炸弹,将炸弹放在地上,按键盘Delete键可遥控引爆,能炸死除主角外的任何生物,炸毁建筑、树木等。遥控炸弹在小地图上显示为炸弹图标,引爆时不要让同伴靠近。不想要炸弹客了,烧掉即可(拿着火炬对其点鼠标右键)。红色护身符在魔法选项(画着红骷髅)下,用3个黄金、2个噩梦燃料、1个红宝石制造

2025/04/23 · Bny

YN308-百变存钱罐(用鱼竿种百变存钱罐,每天获得3个黄金的零花钱,可变外型、防雷击、照明、补脑)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0八.百变存钱罐(用鱼竿种百变存钱罐,每天获得3个黄金的零花钱,可变外型、防雷击、照明、补脑) 3 4 用MT管理器打开游戏目录/assets/scripts/prefabs/fishingrod.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local function itemtest(inst, item, slot) 7 if item.prefab == "goldnugget" then 8 return true 9 end 10 return false 11end 12local slotpos = { Vector3(0,-75,0)} 13local widgetbuttoninfo = { 14 text = "Change", 15 position = Vector3(0, -15, 0), 16 fn = function(inst) 17 GetPlayer().SoundEmitter:PlaySound("dontstarve/characters/wx78/levelup") 18 inst:RemoveTag("doll_1") inst:RemoveTag("doll_2") inst:RemoveTag("doll_3") inst:RemoveTag("doll_4") inst:RemoveTag("doll_5") inst:RemoveTag("doll_6") inst:RemoveTag("doll_7") inst:RemoveTag("doll_8") inst:RemoveTag("doll_9") inst:RemoveTag("doll_10") 19 if math.random()<.08 then 20 inst:AddTag("doll_1") 21 inst.AnimState:SetBank("bearger") 22 inst.AnimState:SetBuild("bearger_build") 23 inst.AnimState:PlayAnimation("idle_loop") 24 inst.Transform:SetScale(0.2,0.2,0.2) 25 elseif math.random()<.16 then 26 inst:AddTag("doll_2") 27 inst.AnimState:SetBank("lightning_goat") 28 inst.AnimState:SetBuild("lightning_goat_build") 29 inst.AnimState:PlayAnimation("idle_loop") 30 inst.Transform:SetScale(0.6,0.6,0.6) 31 elseif math.random()<.24 then 32 inst:AddTag("doll_3") 33 inst.AnimState:SetBank("leif") 34 inst.AnimState:SetBuild("leif_build") 35 inst.AnimState:PlayAnimation("idle_loop") 36 inst.Transform:SetScale(0.35,0.35,0.35) 37 elseif math.random()<.32 then 38 inst:AddTag("doll_4") 39 inst.AnimState:SetBank("beefalo") 40 inst.AnimState:SetBuild("beefalo_build") 41 inst.AnimState:PlayAnimation("idle_loop") 42 inst.Transform:SetScale(0.5,0.5,0.5) 43 elseif math.random()<.4 then 44 inst:AddTag("doll_5") 45 inst.AnimState:SetBank("rook") 46 inst.AnimState:SetBuild("rook_build") 47 inst.AnimState:PlayAnimation("idle") 48 inst.Transform:SetScale(0.3,0.3,0.3) 49 elseif math.random()<.48 then 50 inst:AddTag("doll_6") 51 inst.AnimState:SetBank("deerclops") 52 inst.AnimState:SetBuild("deerclops_build") 53 inst.AnimState:PlayAnimation("idle_loop") 54 inst.Transform:SetScale(0.35,0.35,0.35) 55 elseif math.random()<.56 then 56 inst:AddTag("doll_7") 57 inst.AnimState:SetBank("rook") 58 inst.AnimState:SetBuild("rook_rhino") 59 inst.AnimState:PlayAnimation("idle") 60 inst.Transform:SetScale(0.3,0.3,0.3) 61 elseif math.random()<.64 then 62 inst:AddTag("doll_8") 63 inst.AnimState:SetBank("Pig_King") 64 inst.AnimState:SetBuild("Pig_King") 65 inst.AnimState:PlayAnimation("idle") 66 inst.Transform:SetScale(0.4,0.4,0.4) 67 elseif math.random()<.72 then 68 inst:AddTag("doll_9") 69 inst.AnimState:SetBank("goosemoose") 70 inst.AnimState:SetBuild("goosemoose_build") 71 inst.AnimState:PlayAnimation("idle") 72 inst.Transform:SetScale(0.3,0.3,0.3) 73 elseif math.random()<.95 then 74 inst:AddTag("doll_10") 75 inst.AnimState:SetBank("dragonfly") 76 inst.AnimState:SetBuild("dragonfly_build") 77 inst.AnimState:PlayAnimation("idle") 78 inst.Transform:SetScale(0.3,0.3,0.3) 79 else 80 inst.AnimState:SetBank("trinkets") 81 inst.AnimState:SetBuild("trinkets") 82 inst.AnimState:PlayAnimation(tostring(4)) 83 inst.Transform:SetScale(1.5,1.5,1.5) 84 end 85 end } 86local function OnDeploy (inst, pt) 87 local doll = SpawnPrefab("fishingrod") 88 doll.Transform:SetPosition(pt.x, pt.y, pt.z) 89 doll.AnimState:SetBank("trinkets") 90 doll.AnimState:SetBuild("trinkets") 91 doll.AnimState:PlayAnimation(tostring(4)) 92 doll.Transform:SetFourFaced() 93 doll.Transform:SetScale(1.5,1.5,1.5) 94 local light = doll.entity:AddLight() 95 light:SetFalloff(0.5) 96 light:SetIntensity(.8) 97 light:SetRadius(3.0) 98 light:SetColour(180/255, 195/255, 50/255) 99 light:Enable(true) 100 MakeObstaclePhysics(doll, 0.5) 101 doll:RemoveComponent("fishingrod") 102 doll:RemoveComponent("finiteuses") 103 doll:RemoveComponent("inventoryitem") 104 doll:RemoveComponent("equippable") 105 if doll.components.weapon then doll:RemoveComponent("weapon") end 106 doll:RemoveComponent("deployable") 107 doll.components.container.canbeopened = true 108 doll:AddComponent("named") 109 doll.components.named:SetName("Piggy bank") 110 doll:AddComponent("sanityaura") 111 doll.components.sanityaura.aura = TUNING.SANITYAURA_MED 112 doll:AddTag("lightningrod") 113 doll:ListenForEvent("lightningstrike", function() 114 doll.AnimState:SetBloomEffectHandle( "shaders/anim.ksh" ) 115 doll:DoTaskInTime(60, function() 116 doll.AnimState:SetBloomEffectHandle("") 117 end ) 118 end ) 119 doll:AddComponent("workable") 120 doll.components.workable:SetWorkAction(ACTIONS.HAMMER) 121 doll.components.workable:SetWorkLeft(3) 122 doll.components.workable:SetOnFinishCallback(function(doll) 123 doll.Light:Enable(false) 124 doll.components.container:DropEverything() 125 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(doll.Transform:GetWorldPosition()) 126 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 127 doll:Remove() 128 end ) 129 doll:ListenForEvent( "daytime", function() 130 for k = 1, 3 do 131 local goldnugget = SpawnPrefab("goldnugget") 132 doll.components.container:GiveItem(goldnugget) 133 end 134 end, GetWorld()) 135 doll:AddTag("scarytoprey") 136 doll:AddTag("dolls") 137 inst:Remove() 138end 139 inst:AddComponent("deployable") 140 inst.components.deployable.ondeploy = OnDeploy 141local function onsave(inst, data) 142 if inst:HasTag("dolls") then 143 data.dolls = true 144 end 145 if inst:HasTag("doll_1") then 146 data.doll_1 = true 147 end 148 if inst:HasTag("doll_2") then 149 data.doll_2 = true 150 end 151 if inst:HasTag("doll_3") then 152 data.doll_3 = true 153 end 154 if inst:HasTag("doll_4") then 155 data.doll_4 = true 156 end 157 if inst:HasTag("doll_5") then 158 data.doll_5 = true 159 end 160 if inst:HasTag("doll_6") then 161 data.doll_6 = true 162 end 163 if inst:HasTag("doll_7") then 164 data.doll_7 = true 165 end 166 if inst:HasTag("doll_8") then 167 data.doll_8 = true 168 end 169 if inst:HasTag("doll_9") then 170 data.doll_9 = true 171 end 172 if inst:HasTag("doll_10") then 173 data.doll_10 = true 174 end 175end 176local function onload(inst, data) 177 if data and data.dolls then 178 inst.AnimState:SetBank("trinkets") 179 inst.AnimState:SetBuild("trinkets") 180 inst.AnimState:PlayAnimation(tostring(4)) 181 inst.Transform:SetFourFaced() 182 inst.Transform:SetScale(1.5,1.5,1.5) 183 local light = inst.entity:AddLight() 184 light:SetFalloff(0.5) 185 light:SetIntensity(.8) 186 light:SetRadius(3.0) 187 light:SetColour(180/255, 195/255, 50/255) 188 light:Enable(true) 189 MakeObstaclePhysics(inst, 0.5) 190 inst:RemoveComponent("fishingrod") 191 inst:RemoveComponent("finiteuses") 192 inst:RemoveComponent("inventoryitem") 193 inst:RemoveComponent("equippable") 194 if inst.components.weapon then inst:RemoveComponent("weapon") end 195 inst:RemoveComponent("deployable") 196 inst.components.container.canbeopened = true 197 inst:AddComponent("named") 198 inst.components.named:SetName("Piggy bank") 199 inst:AddComponent("sanityaura") 200 inst.components.sanityaura.aura = TUNING.SANITYAURA_MED 201 inst:AddTag("lightningrod") 202 inst:ListenForEvent("lightningstrike", function() 203 inst.AnimState:SetBloomEffectHandle( "shaders/anim.ksh" ) 204 inst:DoTaskInTime(60, function() 205 inst.AnimState:SetBloomEffectHandle("") 206 end ) 207 end ) 208 inst:AddComponent("workable") 209 inst.components.workable:SetWorkAction(ACTIONS.HAMMER) 210 inst.components.workable:SetWorkLeft(3) 211 inst.components.workable:SetOnFinishCallback(function(inst) 212 inst.Light:Enable(false) 213 inst.components.container:DropEverything() 214 SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(inst.Transform:GetWorldPosition()) 215 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 216 inst:Remove() 217 end ) 218 inst:ListenForEvent( "daytime", function() 219 for k = 1, 3 do 220 local goldnugget = SpawnPrefab("goldnugget") 221 inst.components.container:GiveItem(goldnugget) 222 end 223 end, GetWorld()) 224 inst:AddTag("scarytoprey") 225 inst:AddTag("dolls") 226 end 227 if data and data.doll_1 then 228 inst:AddTag("doll_1") 229 inst.AnimState:SetBank("bearger") 230 inst.AnimState:SetBuild("bearger_build") 231 inst.AnimState:PlayAnimation("idle_loop") 232 inst.Transform:SetScale(0.2,0.2,0.2) 233 end 234 if data and data.doll_2 then 235 inst:AddTag("doll_2") 236 inst.AnimState:SetBank("lightning_goat") 237 inst.AnimState:SetBuild("lightning_goat_build") 238 inst.AnimState:PlayAnimation("idle_loop") 239 inst.Transform:SetScale(0.6,0.6,0.6) 240 end 241 if data and data.doll_3 then 242 inst:AddTag("doll_3") 243 inst.AnimState:SetBank("leif") 244 inst.AnimState:SetBuild("leif_build") 245 inst.AnimState:PlayAnimation("idle_loop") 246 inst.Transform:SetScale(0.35,0.35,0.35) 247 end 248 if data and data.doll_4 then 249 inst:AddTag("doll_4") 250 inst.AnimState:SetBank("beefalo") 251 inst.AnimState:SetBuild("beefalo_build") 252 inst.AnimState:PlayAnimation("idle_loop") 253 inst.Transform:SetScale(0.5,0.5,0.5) 254 end 255 if data and data.doll_5 then 256 inst:AddTag("doll_5") 257 inst.AnimState:SetBank("rook") 258 inst.AnimState:SetBuild("rook_build") 259 inst.AnimState:PlayAnimation("idle") 260 inst.Transform:SetScale(0.3,0.3,0.3) 261 end 262 if data and data.doll_6 then 263 inst:AddTag("doll_6") 264 inst.AnimState:SetBank("deerclops") 265 inst.AnimState:SetBuild("deerclops_build") 266 inst.AnimState:PlayAnimation("idle_loop") 267 inst.Transform:SetScale(0.35,0.35,0.35) 268 end 269 if data and data.doll_7 then 270 inst:AddTag("doll_7") 271 inst.AnimState:SetBank("rook") 272 inst.AnimState:SetBuild("rook_rhino") 273 inst.AnimState:PlayAnimation("idle") 274 inst.Transform:SetScale(0.3,0.3,0.3) 275 end 276 if data and data.doll_8 then 277 inst:AddTag("doll_8") 278 inst.AnimState:SetBank("Pig_King") 279 inst.AnimState:SetBuild("Pig_King") 280 inst.AnimState:PlayAnimation("idle") 281 inst.Transform:SetScale(0.4,0.4,0.4) 282 end 283 if data and data.doll_9 then 284 inst:AddTag("doll_9") 285 inst.AnimState:SetBank("goosemoose") 286 inst.AnimState:SetBuild("goosemoose_build") 287 inst.AnimState:PlayAnimation("idle") 288 inst.Transform:SetScale(0.3,0.3,0.3) 289 end 290 if data and data.doll_10 then 291 inst:AddTag("doll_10") 292 inst.AnimState:SetBank("dragonfly") 293 inst.AnimState:SetBuild("dragonfly_build") 294 inst.AnimState:PlayAnimation("idle") 295 inst.Transform:SetScale(0.3,0.3,0.3) 296 end 297end 298 inst.OnSave = onsave 299 inst.OnLoad = onload 300 inst:AddComponent("container") 301 inst.components.container:SetNumSlots(#slotpos) 302 inst.components.container.widgetslotpos = slotpos 303 inst.components.container.widgetpos = Vector3(0,150,0) 304 inst.components.container.side_align_tip = 160 305 inst.components.container.itemtestfn = itemtest 306 inst.components.container.widgetbuttoninfo = widgetbuttoninfo 307 inst.components.container.canbeopened = false 308 309 即可用鱼竿种百变存钱罐,鼠标左键点存钱罐可打开格子,每天将获得3个黄金的零花钱,在格子中拿取。点格子上方的“Change”按钮,可使存钱罐改换为巨鹿、猪王、熊等造型。百变存钱罐放在家中,可防雷击、照明,靠近会补脑,并且可以吓阻火鸡、兔子等小动物,让它们不敢偷吃你扔在地上的食物。不想要百变存钱罐了,用锤子砸掉即可,里面的黄金会掉在地上。鱼竿在生存选项(画着绳套)下,用2个树枝、2个蛛丝制造

2025/04/23 · Bny

YN309-度假营地(按键盘B键租赁度假营地,各种设施一应俱全,再按B键退房)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三0九.度假营地(按键盘B键租赁度假营地,各种设施一应俱全,再按B键退房) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/player_common.lua文件,在inst:AddComponent("playeractionpicker")的下一行插入以下内容: 5 6TheInput:AddKeyUpHandler(KEY_B, function() 7 if not inst:HasTag("campsite") then 8 if inst.components.inventory:Has("goldnugget", 50) then 9 inst.components.inventory:ConsumeByName("goldnugget", 50) 10 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 11 inst:AddTag("campsite") 12 local pt = inst:GetPosition() 13 local pt0 = Vector3(inst.Transform:GetWorldPosition()) 14 for k = 1, 50 do 15 local result_offset = FindValidPositionByFan(1 * 2 * PI, 8.5, 50, function(offset) 16 local x,y,z = (pt0 + offset):Get() 17 local ents = TheSim:FindEntities(x,y,z , 1) 18 return not next(ents) 19 end ) 20 if result_offset then 21 local wall = SpawnPrefab("wall_wood") 22 wall.Transform:SetScale(0.65,0.65,0.65) 23 MakeObstaclePhysics(wall, .25) 24 wall:RemoveComponent("workable") 25 wall.components.health:SetInvincible(true) 26 wall.persists = false 27 wall:AddTag("tempbuilding") 28 wall.Transform:SetPosition((pt0 + result_offset):Get()) 29 wall.components.inspectable.getstatus = function(wall) 30 wall.Transform:SetScale(0.65, 0.1, 0.65) 31 wall.Physics:SetActive(false) 32 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 33 wall:DoTaskInTime(5, function(wall) 34 wall.Transform:SetScale(0.65, 0.65, 0.65) 35 wall.Physics:SetActive(true) 36 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 37 end ) 38 end 39 end 40 end 41 local building1 = SpawnPrefab("tent") 42 building1.Transform:SetPosition(pt.x-4, 0, pt.z-4) 43 building1.AnimState:SetMultColour(255/255,105/255,0/255,1) 44 building1.persists = false 45 building1:AddTag("tempbuilding") 46 local building2 = SpawnPrefab("ancient_altar") 47 building2.Transform:SetPosition(pt.x-4+2.5, 0, pt.z-4-2.5) 48 building2.Transform:SetScale(0.45,0.45,0.45) 49 building2.persists = false 50 building2:AddTag("NOCLICK") 51 building2:AddTag("tempbuilding") 52 local building3 = SpawnPrefab("lightning_rod") 53 building3.Transform:SetPosition(pt.x-4-2.4, 0, pt.z-4+2.4) 54 building3.Transform:SetScale(0.7,0.7,0.7) 55 building3.persists = false 56 building3:AddTag("NOCLICK") 57 building3:AddTag("tempbuilding") 58 local building4 = SpawnPrefab("ruins_table") 59 building4.Transform:SetPosition(pt.x+3.3, 0, pt.z-3.3) 60 building4.persists = false 61 building4:AddTag("NOCLICK") 62 building4:AddTag("tempbuilding") 63 local building5 = SpawnPrefab("ruins_chair") 64 building5.Transform:SetPosition(pt.x+4.9, 0, pt.z-4.9) 65 building5.persists = false 66 building5:AddTag("NOCLICK") 67 building5:AddTag("tempbuilding") 68 local building6 = SpawnPrefab("cookpot") 69 building6.Transform:SetPosition(pt.x+4.3, 0, pt.z+4.3) 70 building6.Transform:SetScale(0.7,0.7,0.7) 71 building6.persists = false 72 building6:AddTag("tempbuilding") 73 local building7 = SpawnPrefab("icebox") 74 building7.Transform:SetPosition(pt.x+4.5-1.3, 0, pt.z+4.5+1.3) 75 building7.persists = false 76 building7:AddTag("tempbuilding") 77 for k = 1, 3 do 78 local foodnames = {"butterflymuffin","frogglebunwich","taffy","pumpkincookie","stuffedeggplant","fishsticks","honeynuggets","honeyham","dragonpie","kabobs","mandrakesoup","baconeggs","meatballs","bonestew","perogies","turkeydinner","ratatouille","jammypreserves","fruitmedley","fishtacos","waffles","unagi","flowersalad","icecream","watermelonicle","trailmix","hotchili","guacamole"} 79 local foodname = foodnames[math.random(#foodnames)] 80 local food = SpawnPrefab(foodname) 81 building7.components.container:GiveItem(food) 82 end 83 local building8 = SpawnPrefab("dragonflychest") 84 building8.Transform:SetPosition(pt.x+3.8+3, 0, pt.z-3.8+3) 85 building8.persists = false 86 building8:AddTag("tempbuilding") 87 local lantern = SpawnPrefab("lantern") 88 building8.components.container:GiveItem(lantern) 89 if not GetSeasonManager():IsSummer() then 90 local building9 = SpawnPrefab("firepit") 91 building9.Transform:SetPosition(pt.x, 0, pt.z) 92 building9:RemoveAllEventCallbacks() 93 building9:ListenForEvent("onextinguish", function(building9) 94 if building9.components.cooker then 95 building9:RemoveComponent("cooker") 96 end 97 if building9.components.fueled then 98 building9.components.fueled:InitializeFuelLevel(0) 99 end 100 end ) 101 building9:ListenForEvent("onignite", function(building9) 102 if not building9.components.cooker then 103 building9:AddComponent("cooker") 104 end 105 end ) 106 building9.persists = false 107 building9:AddTag("tempbuilding") 108 for k = 1, 10 do 109 local log = SpawnPrefab("log") 110 building8.components.container:GiveItem(log) 111 end 112 else 113 local building9 = SpawnPrefab("coldfirepit") 114 building9.Transform:SetPosition(pt.x, 0, pt.z) 115 building9.persists = false 116 building9:AddTag("tempbuilding") 117 for k = 1, 10 do 118 local nitre = SpawnPrefab("nitre") 119 building8.components.container:GiveItem(nitre) 120 end 121 end 122 local building10 = SpawnPrefab("firesuppressor") 123 building10.Transform:SetPosition(pt.x-4+3, 0, pt.z+4+3) 124 building10.Transform:SetScale(0.8,0.8,0.8) 125 building10.persists = false 126 building10:AddTag("tempbuilding") 127 local building11 = SpawnPrefab("eyeturret") 128 building11.Transform:SetPosition(pt.x-4+1, 0, pt.z+4+1) 129 building11.components.combat:SetAttackPeriod(0.5) 130 if building11.components.machine then building11:RemoveComponent("machine") end 131 building11.persists = false 132 building11:AddTag("tempbuilding") 133 local building12 = SpawnPrefab("pumpkin_lantern") 134 building12.Transform:SetPosition(pt.x-4-2, 0, pt.z+4-2) 135 building12.Transform:SetScale(1.5,1.5,1.5) 136 building12.components.inventoryitem.canbepickedup = false 137 building12.persists = false 138 building12:AddTag("NOCLICK") 139 building12:AddTag("tempbuilding") 140 end 141 else 142 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 143 inst:RemoveTag("campsite") 144 local pos = Vector3(inst.Transform:GetWorldPosition()) 145 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 3000) 146 for k,v in pairs(ents) do 147 if v:HasTag("tempbuilding") then 148 v:Remove() 149 end 150 end 151 end 152end ) 153 154 即可在身上有50个黄金时,在空旷的地方,按键盘B键租赁度假营地(身上黄金不足时无法租赁),再次按B键退房。度假营地外有围墙保护(鼠标左键点围墙可开门,5秒后自动关门),内有火堆、帐篷、锅、箱子、冰箱、南瓜灯等生活设施,还配有眼睛炮塔、灭火器、避雷针等安全设备,其中箱子里有火堆燃料(夏天为硝石,其余季节为木头),还提供一盏提灯供你外出使用,冰箱里有3份料理(品种随机),让你在野外也可以品尝新鲜美味。由于环保原因,度假营地为临时设施,存档退出后再读档,度假营地将消失,记得之前取出箱子中的私人物品哦

2025/04/23 · Bny

YN310-疯狂躲避球(用浣熊尾巴种躲避球场,在圈内60秒不被球打到,赢50个黄金)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三一0.疯狂躲避球(用浣熊尾巴种躲避球场,在圈内60秒不被球打到,赢50个黄金) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/coontail.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local function makecourt(inst) 7 local pt = inst:GetPosition() 8 local caddie = SpawnPrefab("coontail") 9 caddie.Transform:SetPosition(pt.x, pt.y, pt.z) 10 caddie.AnimState:SetBank("wilson") 11 caddie.AnimState:SetBuild("wes") 12 caddie.AnimState:OverrideSymbol("swap_hat", "hat_football", "swap_hat") 13 caddie.AnimState:OverrideSymbol("swap_body", "armor_sweatervest", "swap_body") 14 caddie.AnimState:Show("HAT") 15 caddie.AnimState:Show("HAT_HAIR") 16 caddie.AnimState:Hide("HAIR_NOHAT") 17 caddie.AnimState:Hide("HAIR") 18 caddie.AnimState:Hide("ARM_carry") 19 caddie.AnimState:Show("ARM_normal") 20 caddie.Transform:SetFourFaced() 21 caddie.AnimState:PlayAnimation("idle") 22 caddie:RemoveComponent("inventoryitem") 23 caddie:RemoveComponent("stackable") 24 caddie:RemoveComponent("deployable") 25 caddie:RemoveTag("cattoy") 26 caddie:AddComponent("workable") 27 caddie.components.workable:SetWorkAction(ACTIONS.HAMMER) 28 caddie.components.workable:SetWorkLeft(1) 29 caddie.components.workable:SetOnFinishCallback(function(caddie) 30 SpawnPrefab("collapse_big").Transform:SetPosition(caddie.Transform:GetWorldPosition()) 31 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 32 GetPlayer().SoundEmitter:KillSound("beavermusic") 33 local pos = Vector3(caddie.Transform:GetWorldPosition()) 34 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) 35 for k,v in pairs(ents) do 36 if v:HasTag("border") or v:HasTag("landmine") then 37 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 38 v:Remove() 39 end 40 end 41 caddie:Remove() 42 end ) 43 caddie:AddComponent("named") 44 caddie.components.named:SetName("Pitcher") 45 caddie:AddComponent("talker") 46 caddie:AddComponent("trader") 47 caddie.components.trader:SetAcceptTest(function(caddie, item) 48 if not caddie:HasTag("startgame") then 49 if GetPlayer().components.inventory:Has("goldnugget", 10) then 50 if item.prefab == "goldnugget" then 51 return true 52 end 53 end 54 end 55 return false 56 end ) 57 caddie.components.trader.onaccept = function(caddie, giver, item) 58 caddie:AddTag("startgame") 59 GetPlayer().components.inventory:ConsumeByName("goldnugget", 9) 60 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 61 caddie.components.talker:Say("Are you ready ?", 3, false) 62 GetPlayer().SoundEmitter:PlaySound("dontstarve/music/music_hoedown", "beavermusic") 63 for k = 1, 10 do 64 local landmine = SpawnPrefab("coontail") 65 landmine.Transform:SetPosition(pt.x+(math.random(7)-math.random(7)), 0, pt.z+(math.random(7)-math.random(7))) 66 landmine.AnimState:SetBank("bee_mine") 67 landmine.AnimState:SetBuild("bee_mine") 68 landmine.AnimState:PlayAnimation("idle") 69 landmine.Transform:SetScale(1.2, 1.2, 1.2) 70 landmine.AnimState:SetMultColour(255/255,105/255,0/255,1) 71 landmine.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 72 landmine:RemoveComponent("inventoryitem") 73 landmine:RemoveComponent("stackable") 74 landmine:RemoveComponent("deployable") 75 landmine:RemoveTag("cattoy") 76 landmine.persists = false 77 landmine:DoPeriodicTask(0.01, function() 78 local pos0 = Vector3(landmine.Transform:GetWorldPosition()) 79 local ents0 = TheSim:FindEntities(pos0.x,pos0.y,pos0.z, 1) 80 for k,v in pairs(ents0) do 81 if v and v:HasTag("player") and not v:HasTag("pain")then 82 v:AddTag("pain") 83 v.sg:GoToState("hit") 84 if v.components.health then v.components.health:DoDelta(-3) end 85 v:DoTaskInTime(0.5, function() v:RemoveTag("pain") end ) 86 end 87 end 88 end ) 89 landmine:AddTag("landmine") 90 end 91 caddie:DoTaskInTime(3, function() 92 caddie.components.talker:Say("Go !", 1, false) 93 GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") 94 caddie.task = caddie:DoPeriodicTask(0.4, function(caddie) 95 local target = FindEntity(caddie, 9, function(guy) 96 return guy:HasTag("player") 97 end ) 98 if target then 99 caddie.Transform:SetRotation(GetPlayer().Transform:GetRotation() - 180) 100 caddie.AnimState:PlayAnimation("give") 101 local dodgeball = SpawnPrefab("coontail") 102 dodgeball.AnimState:SetBank("bulb") 103 dodgeball.AnimState:SetBuild("bulb") 104 dodgeball.AnimState:PlayAnimation("idle") 105 dodgeball.Transform:SetPosition(pt.x, 0, pt.z) 106 dodgeball:RemoveComponent("inventoryitem") 107 dodgeball:RemoveComponent("stackable") 108 dodgeball:RemoveComponent("deployable") 109 dodgeball:RemoveTag("cattoy") 110 dodgeball.persists = false 111 dodgeball:AddComponent("complexprojectile") 112 dodgeball.components.complexprojectile.yOffset = 1 113 if math.random()<.5 then 114 local targetpos = target:GetPosition() 115 dodgeball.components.complexprojectile:Launch(targetpos) 116 else 117 dodgeball.components.complexprojectile:Launch(Point(pt.x+(math.random(9)-math.random(9)), 0, pt.z+(math.random(9)-math.random(9)))) 118 end 119 dodgeball.components.complexprojectile:SetOnHit(function() 120 SpawnPrefab("small_puff").Transform:SetPosition(dodgeball.Transform:GetWorldPosition()) 121 dodgeball:Remove() 122 end ) 123 dodgeball:DoPeriodicTask(0.01, function() 124 local pos = Vector3(dodgeball.Transform:GetWorldPosition()) 125 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 1) 126 for k,v in pairs(ents) do 127 if v and v:HasTag("player") then 128 v.sg:GoToState("hit") 129 if caddie.task then caddie.task:Cancel() caddie.task = nil end 130 if caddie.task2 then caddie.task2:Cancel() caddie.task2 = nil end 131 caddie.Transform:SetRotation( 0 ) 132 caddie.AnimState:PlayAnimation("idle_onemanband1_loop",true) 133 caddie:DoTaskInTime(2, function() caddie.AnimState:PlayAnimation("idle") end ) 134 caddie.components.talker:Say("Game over !", 3, false) 135 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo") 136 GetPlayer().SoundEmitter:KillSound("beavermusic") 137 SpawnPrefab("collapse_small").Transform:SetPosition(dodgeball.Transform:GetWorldPosition()) 138 dodgeball:Remove() 139 local pos1 = Vector3(caddie.Transform:GetWorldPosition()) 140 local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 10) 141 for k,v in pairs(ents1) do 142 if v:HasTag("landmine") then 143 v:Remove() 144 end 145 end 146 caddie:RemoveTag("startgame") 147 end 148 end 149 end ) 150 else 151 if caddie.task then caddie.task:Cancel() caddie.task = nil end 152 if caddie.task2 then caddie.task2:Cancel() caddie.task2 = nil end 153 caddie.Transform:SetRotation( 0 ) 154 caddie.AnimState:PlayAnimation("idle_onemanband1_loop",true) 155 caddie:DoTaskInTime(2, function() caddie.AnimState:PlayAnimation("idle") end ) 156 caddie.components.talker:Say("Game over !", 3, false) 157 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo") 158 GetPlayer().SoundEmitter:KillSound("beavermusic") 159 local pos1 = Vector3(caddie.Transform:GetWorldPosition()) 160 local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 10) 161 for k,v in pairs(ents1) do 162 if v:HasTag("landmine") then 163 v:Remove() 164 end 165 end 166 caddie:RemoveTag("startgame") 167 end 168 end ) 169 end ) 170 caddie.task2 = caddie:DoTaskInTime(63, function() 171 if caddie:HasTag("startgame") then 172 if caddie.task then caddie.task:Cancel() caddie.task = nil end 173 if caddie.task2 then caddie.task2:Cancel() caddie.task2 = nil end 174 caddie.Transform:SetRotation( 0 ) 175 caddie.AnimState:PlayAnimation("give") 176 caddie.components.talker:Say("You win !", 3, false) 177 GetPlayer().SoundEmitter:KillSound("beavermusic") 178 caddie:StartThread(function() 179 for k = 1, 10 do 180 GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold") 181 Sleep(0.15) 182 end 183 end ) 184 for k = 1, 50 do 185 local goldnugget = SpawnPrefab("goldnugget") 186 GetPlayer().components.inventory:GiveItem(goldnugget) 187 end 188 local pos1 = Vector3(caddie.Transform:GetWorldPosition()) 189 local ents1 = TheSim:FindEntities(pos1.x,pos1.y,pos1.z, 10) 190 for k,v in pairs(ents1) do 191 if v:HasTag("landmine") then 192 v:Remove() 193 end 194 end 195 caddie:RemoveTag("startgame") 196 end 197 end ) 198 end 199 caddie:AddTag("caddie") 200 for k = 1, 50 do 201 local result_offset = FindValidPositionByFan(1 * 2 * PI, 8.5, 50, function(offset) 202 local x,y,z = (pt + offset):Get() 203 local ents = TheSim:FindEntities(x,y,z , 1) 204 return not next(ents) 205 end) 206 if result_offset then 207 local border = SpawnPrefab("coontail") 208 border.Transform:SetPosition((pt + result_offset):Get()) 209 border.AnimState:SetBank("bulb") 210 border.AnimState:SetBuild("bulb") 211 border.AnimState:PlayAnimation("idle") 212 border.Transform:SetScale(1.2, 1.2, 1.2) 213 border.AnimState:SetMultColour(255/255,0/255,0/255,1) 214 border.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround ) 215 border.AnimState:SetLayer( LAYER_BACKGROUND ) 216 border.AnimState:SetSortOrder( 1 ) 217 border:RemoveComponent("inventoryitem") 218 border:RemoveComponent("stackable") 219 border:RemoveComponent("deployable") 220 border:RemoveTag("cattoy") 221 border:DoPeriodicTask(2, function(shopsign) 222 border.AnimState:SetMultColour(0/255,255/255,0/255,1) 223 border:DoTaskInTime(1, function() border.AnimState:SetMultColour(255/255,0/255,0/255,1) end ) 224 end ) 225 border:AddTag("NOCLICK") 226 border:AddTag("border") 227 end 228 end 229end 230local function OnDeploy (inst, pt) 231 makecourt(inst) 232 inst.components.stackable:Get():Remove() 233end 234 inst:AddComponent("deployable") 235 inst.components.deployable.ondeploy = OnDeploy 236local function onsave(inst, data) 237 if inst:HasTag("caddie") then 238 data.caddie = true 239 end 240 if inst:HasTag("border") then 241 data.border = true 242 end 243end 244local function onload(inst, data) 245 if data and data.caddie then 246 makecourt(inst) 247 inst:Remove() 248 end 249 if data and data.border then 250 inst:Remove() 251 end 252end 253 inst.OnSave = onsave 254 inst.OnLoad = onload 255 256 即可在空旷的地上,用浣熊尾巴种躲避球场(拿着1个浣熊尾巴对地面点鼠标右键,如果拿着多个,则不会种出来)。给投手10个黄金玩一次(拿着黄金对投手点鼠标左键),他会不断向你扔球,在不跑出圆圈边界、不被砸到的情况下,坚持60秒,就可赢得50个黄金的奖励。球场内会随机出现障碍物,碰到会被扎伤(减3点血),绕着点跑吧。不想要躲避球场了,用锤子砸投手即可

2025/04/23 · Bny

YN311-快速孵化高鸟蛋(游戏中1小时孵出小高鸟)

代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 1 2三一一.快速孵化高鸟蛋(游戏中1小时孵出小高鸟) 3 4 用MT管理器打开游戏目录/assets/DLC0002/scripts/tuning.lua文件,将SMALLBIRD_HATCH_TIME = total_day_time * 3, -- must be content for this amount of cumulative time to hatch替换为以下内容: 5 6SMALLBIRD_HATCH_TIME = seg_time*1, 7 8 即可在游戏中1小时孵出小高鸟

2025/04/23 · Bny