代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1
2二九七.临时工市场(用噩梦花瓣种临时工市场,雇临时工帮你采摘、收获、砍树、开矿)
3
4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/petals_evil.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
5
6local function createworker(inst)
7 local pt = inst:GetPosition()
8 local shopsign = SpawnPrefab("petals_evil")
9 shopsign.Transform:SetPosition(pt.x, pt.y, pt.z)
10 shopsign.AnimState:SetBank("sign_home")
11 shopsign.AnimState:SetBuild("sign_home")
12 shopsign.AnimState:PlayAnimation("idle")
13 shopsign.Transform:SetScale(2, 2, 2)
14 shopsign:AddTag("shopsign")
15 shopsign:RemoveComponent("stackable")
16 shopsign:RemoveComponent("tradable")
17 shopsign:RemoveComponent("fuel")
18 shopsign:RemoveComponent("inventoryitem")
19 shopsign:RemoveComponent("edible")
20 shopsign:RemoveComponent("perishable")
21 shopsign:RemoveComponent("burnable")
22 shopsign:RemoveComponent("propagator")
23 shopsign:RemoveComponent("deployable")
24 MakeLargeBurnable(shopsign)
25 MakeLargePropagator(shopsign)
26 local light = shopsign.entity:AddLight()
27 light:SetFalloff(1)
28 light:SetIntensity(.8)
29 light:SetRadius(5)
30 light:SetColour(180/255, 195/255, 50/255)
31 light:Enable(true)
32 shopsign:DoPeriodicTask(6, function(shopsign)
33 shopsign.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
34 shopsign:DoTaskInTime(3, function() shopsign.AnimState:SetBloomEffectHandle("") end )
35 end )
36 shopsign.components.inspectable.getstatus = function(shopsign)
37 local pos = Vector3(shopsign.Transform:GetWorldPosition())
38 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 3000)
39 for k,v in pairs(ents) do
40 if v:HasTag("workerman") then
41 v:Remove()
42 end
43 end
44 local names = {"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}
45 local worker1 = SpawnPrefab("petals_evil")
46 worker1.Transform:SetPosition(pt.x+1+3, 0, pt.z+1-3)
47 worker1.AnimState:SetBank("wilson")
48 worker1.buildname = names[math.random(#names)]
49 worker1.AnimState:SetBuild(worker1.buildname)
50 worker1.Transform:SetFourFaced()
51 worker1.AnimState:OverrideSymbol("swap_hat", "hat_bee", "swap_hat")
52 worker1.AnimState:Show("HAT")
53 worker1.AnimState:Show("HAT_HAIR")
54 worker1.AnimState:Hide("HAIR_NOHAT")
55 worker1.AnimState:Hide("HAIR")
56 worker1.AnimState:Show("ARM_normal")
57 worker1.AnimState:Hide("ARM_carry")
58 worker1.AnimState:PlayAnimation("idle")
59 local minimap = worker1.entity:AddMiniMapEntity()
60 minimap:SetIcon( "mushroom_tree_med.png" )
61 local sound = worker1.entity:AddSoundEmitter()
62 local shadow = worker1.entity:AddDynamicShadow()
63 MakeCharacterPhysics(worker1, 75, .5)
64 shadow:SetSize( 1.3, .6 )
65 worker1:AddComponent("health")
66 worker1.components.health:SetMaxHealth(1000)
67 worker1.components.health:SetInvincible(true)
68 worker1.components.health.nofadeout = true
69 worker1:AddComponent("combat")
70 worker1:AddComponent("follower")
71 worker1:AddComponent("knownlocations")
72 worker1:AddComponent("locomotor")
73 worker1.components.locomotor.walkspeed = 5
74 worker1.components.locomotor.runspeed = 12
75 worker1:SetStateGraph("SGshadowwaxwell")
76 worker1:RemoveComponent("stackable")
77 worker1:RemoveComponent("tradable")
78 worker1:RemoveComponent("fuel")
79 worker1:RemoveComponent("inventoryitem")
80 worker1:RemoveComponent("edible")
81 worker1:RemoveComponent("perishable")
82 worker1:RemoveComponent("burnable")
83 worker1:RemoveComponent("propagator")
84 worker1:RemoveComponent("deployable")
85 MakeLargeBurnable(worker1)
86 MakeLargePropagator(worker1)
87 worker1:AddTag("workerman")
88 worker1:AddComponent("trader")
89 worker1.components.trader:SetAcceptTest(function(worker1, item)
90 if GetPlayer().components.inventory:Has("goldnugget", 20) then
91 if item.prefab == "goldnugget" then
92 return true
93 end
94 end
95 return false
96 end )
97 worker1.components.trader.onaccept = function(worker1, giver, item)
98 worker1:AddTag("myworker")
99 worker1:RemoveTag("workerman")
100 worker1:RemoveComponent("burnable")
101 worker1:RemoveComponent("propagator")
102 GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
103 worker1.task1 = worker1:DoPeriodicTask(0.5, function(worker1)
104 local target = FindEntity(worker1, 10, function(guy)
105 return guy.components.pickable and guy.components.pickable:CanBePicked() and guy.prefab ~= "flower" and guy.prefab ~= "red_mushroom" and guy.prefab ~= "green_mushroom" and guy.prefab ~= "blue_mushroom" and guy.prefab ~= "flint"
106 end )
107 if target then
108 worker1.components.locomotor:Stop()
109 worker1:SetBrain(nil)
110 worker1.components.follower:SetLeader(nil)
111 local pt1 = target:GetPosition()
112 worker1.components.locomotor:GoToPoint(pt1)
113 worker1.task2 = worker1:DoPeriodicTask(.25, function(worker1)
114 local target2 = FindEntity(worker1, 0.8, function(guy)
115 return guy.components.pickable and guy.components.pickable:CanBePicked() and guy.prefab ~= "flower" and guy.prefab ~= "red_mushroom" and guy.prefab ~= "green_mushroom" and guy.prefab ~= "blue_mushroom" and guy.prefab ~= "flint"
116 end )
117 if target2 then
118 worker1.AnimState:PlayAnimation("pickup")
119 target2.components.pickable:Pick(GetPlayer())
120 end
121 end )
122 else
123 worker1.components.follower:SetLeader(GetPlayer())
124 local brain = require "brains/chesterbrain"
125 worker1:SetBrain(brain)
126 worker1:RestartBrain()
127 if worker1.task2 then worker1.task2:Cancel() worker1.task2 = nil end
128 end
129 end )
130 end
131 worker1:ListenForEvent( "nighttime", function() worker1:Remove() end, GetWorld())
132 local worker2 = SpawnPrefab("petals_evil")
133 worker2.Transform:SetPosition(pt.x+1+1, 0, pt.z+1-1)
134 worker2.AnimState:SetBank("wilson")
135 worker2.buildname = names[math.random(#names)]
136 worker2.AnimState:SetBuild(worker2.buildname)
137 worker2.Transform:SetFourFaced()
138 worker2.AnimState:OverrideSymbol("swap_hat", "hat_straw", "swap_hat")
139 worker2.AnimState:Show("HAT")
140 worker2.AnimState:Show("HAT_HAIR")
141 worker2.AnimState:Hide("HAIR_NOHAT")
142 worker2.AnimState:Hide("HAIR")
143 worker2.AnimState:Show("ARM_normal")
144 worker2.AnimState:Hide("ARM_carry")
145 worker2.AnimState:PlayAnimation("idle")
146 local minimap = worker2.entity:AddMiniMapEntity()
147 minimap:SetIcon( "mushroom_tree_med.png" )
148 local sound = worker2.entity:AddSoundEmitter()
149 local shadow = worker2.entity:AddDynamicShadow()
150 MakeCharacterPhysics(worker2, 75, .5)
151 shadow:SetSize( 1.3, .6 )
152 worker2:AddComponent("health")
153 worker2.components.health:SetMaxHealth(1000)
154 worker2.components.health:SetInvincible(true)
155 worker2.components.health.nofadeout = true
156 worker2:AddComponent("combat")
157 worker2:AddComponent("follower")
158 worker2:AddComponent("knownlocations")
159 worker2:AddComponent("locomotor")
160 worker2.components.locomotor.walkspeed = 5
161 worker2.components.locomotor.runspeed = 12
162 worker2:SetStateGraph("SGshadowwaxwell")
163 worker2:RemoveComponent("stackable")
164 worker2:RemoveComponent("tradable")
165 worker2:RemoveComponent("fuel")
166 worker2:RemoveComponent("inventoryitem")
167 worker2:RemoveComponent("edible")
168 worker2:RemoveComponent("perishable")
169 worker2:RemoveComponent("burnable")
170 worker2:RemoveComponent("propagator")
171 worker2:RemoveComponent("deployable")
172 MakeLargeBurnable(worker2)
173 MakeLargePropagator(worker2)
174 worker2:AddTag("workerman")
175 worker2:AddComponent("trader")
176 worker2.components.trader:SetAcceptTest(function(worker2, item)
177 if GetPlayer().components.inventory:Has("goldnugget", 20) then
178 if item.prefab == "goldnugget" then
179 return true
180 end
181 end
182 return false
183 end )
184 worker2.components.trader.onaccept = function(worker2, giver, item)
185 worker2:AddTag("myworker")
186 worker2:RemoveTag("workerman")
187 worker2:RemoveComponent("burnable")
188 worker2:RemoveComponent("propagator")
189 GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
190 worker2.task1 = worker2:DoPeriodicTask(0.5, function(worker2)
191 local target = FindEntity(worker2, 10, function(guy)
192 return guy.components.crop and guy.components.crop.matured
193 end )
194 if target then
195 worker2.components.locomotor:Stop()
196 worker2:SetBrain(nil)
197 worker2.components.follower:SetLeader(nil)
198 local pt1 = target:GetPosition()
199 worker2.components.locomotor:GoToPoint(pt1)
200 worker2.task2 = worker2:DoPeriodicTask(.25, function(worker2)
201 local target2 = FindEntity(worker2, 0.8, function(guy)
202 return guy.components.crop and guy.components.crop.matured
203 end )
204 if target2 then
205 worker2.AnimState:PlayAnimation("pickup")
206 target2.components.crop:Harvest(GetPlayer())
207 end
208 local target3 = FindEntity(worker2, 0.8, function(guy)
209 return guy.components.grower and guy.components.grower:IsEmpty()
210 end )
211 if target3 then
212 target3.components.grower.cycles_left = target3.components.grower.max_cycles_left
213 end
214 end )
215 else
216 worker2.components.follower:SetLeader(GetPlayer())
217 local brain = require "brains/chesterbrain"
218 worker2:SetBrain(brain)
219 worker2:RestartBrain()
220 if worker2.task2 then worker2.task2:Cancel() worker2.task2 = nil end
221 if worker2.task3 then worker2.task3:Cancel() worker2.task3 = nil end
222 end
223 end )
224 end
225 worker2:ListenForEvent( "nighttime", function() worker2:Remove() end, GetWorld())
226 local worker3 = SpawnPrefab("petals_evil")
227 worker3.Transform:SetPosition(pt.x+1-1, 0, pt.z+1+1)
228 worker3.AnimState:SetBank("wilson")
229 worker3.buildname = names[math.random(#names)]
230 worker3.AnimState:SetBuild(worker3.buildname)
231 worker3.Transform:SetFourFaced()
232 worker3.AnimState:OverrideSymbol("swap_object", "swap_axe", "swap_axe")
233 worker3.AnimState:Show("ARM_carry")
234 worker3.AnimState:Hide("ARM_normal")
235 worker3.AnimState:PlayAnimation("idle")
236 local minimap = worker3.entity:AddMiniMapEntity()
237 minimap:SetIcon( "mushroom_tree_med.png" )
238 local sound = worker3.entity:AddSoundEmitter()
239 local shadow = worker3.entity:AddDynamicShadow()
240 MakeCharacterPhysics(worker3, 75, .5)
241 shadow:SetSize( 1.3, .6 )
242 worker3:AddComponent("health")
243 worker3.components.health:SetMaxHealth(1000)
244 worker3.components.health:SetInvincible(true)
245 worker3.components.health.nofadeout = true
246 worker3:AddComponent("combat")
247 worker3:AddComponent("follower")
248 worker3:AddComponent("knownlocations")
249 worker3:AddComponent("locomotor")
250 worker3.components.locomotor.walkspeed = 5
251 worker3.components.locomotor.runspeed = 12
252 worker3:SetStateGraph("SGshadowwaxwell")
253 worker3:RemoveComponent("stackable")
254 worker3:RemoveComponent("tradable")
255 worker3:RemoveComponent("fuel")
256 worker3:RemoveComponent("inventoryitem")
257 worker3:RemoveComponent("edible")
258 worker3:RemoveComponent("perishable")
259 worker3:RemoveComponent("burnable")
260 worker3:RemoveComponent("propagator")
261 worker3:RemoveComponent("deployable")
262 MakeLargeBurnable(worker3)
263 MakeLargePropagator(worker3)
264 worker3:AddTag("workerman")
265 worker3:AddComponent("trader")
266 worker3.components.trader:SetAcceptTest(function(worker3, item)
267 if GetPlayer().components.inventory:Has("goldnugget", 20) then
268 if item.prefab == "goldnugget" then
269 return true
270 end
271 end
272 return false
273 end )
274 worker3.components.trader.onaccept = function(worker3, giver, item)
275 worker3:AddTag("myworker")
276 worker3:RemoveTag("workerman")
277 worker3:RemoveComponent("burnable")
278 worker3:RemoveComponent("propagator")
279 GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
280 worker3.task1 = worker3:DoPeriodicTask(0.5, function(worker3)
281 local target = FindEntity(worker3, 15, function(guy)
282 return guy:HasTag("tree") and guy.components.workable and guy.components.workable.workleft > 0
283 end )
284 if target then
285 worker3.components.locomotor:Stop()
286 worker3:SetBrain(nil)
287 worker3.components.follower:SetLeader(nil)
288 local pt1 = target:GetPosition()
289 worker3.components.locomotor:GoToPoint(pt1)
290 worker3.task2 = worker3:DoPeriodicTask(.25, function(worker3)
291 local target2 = FindEntity(worker3, 2, function(guy)
292 return guy:HasTag("tree") and guy.components.workable and guy.components.workable.workleft > 0
293 end )
294 if target2 then
295 worker3.AnimState:PlayAnimation("pickup")
296 target2.components.workable:Destroy(worker3)
297 end
298 end )
299 else
300 worker3.components.follower:SetLeader(GetPlayer())
301 local brain = require "brains/chesterbrain"
302 worker3:SetBrain(brain)
303 worker3:RestartBrain()
304 if worker3.task2 then worker3.task2:Cancel() worker3.task2 = nil end
305 end
306 end )
307 end
308 worker3:ListenForEvent( "nighttime", function() worker3:Remove() end, GetWorld())
309 local worker4 = SpawnPrefab("petals_evil")
310 worker4.Transform:SetPosition(pt.x+1-3, 0, pt.z+1+3)
311 worker4.AnimState:SetBank("wilson")
312 worker4.buildname = names[math.random(#names)]
313 worker4.AnimState:SetBuild(worker4.buildname)
314 worker4.Transform:SetFourFaced()
315 worker4.AnimState:OverrideSymbol("swap_hat", "hat_miner", "swap_hat")
316 worker4.AnimState:Show("HAT")
317 worker4.AnimState:Show("HAT_HAIR")
318 worker4.AnimState:Hide("HAIR_NOHAT")
319 worker4.AnimState:Hide("HAIR")
320 worker4.AnimState:OverrideSymbol("swap_object", "swap_pickaxe", "swap_pickaxe")
321 worker4.AnimState:Show("ARM_carry")
322 worker4.AnimState:Hide("ARM_normal")
323 worker4.AnimState:PlayAnimation("idle")
324 local minimap = worker4.entity:AddMiniMapEntity()
325 minimap:SetIcon( "mushroom_tree_med.png" )
326 local sound = worker4.entity:AddSoundEmitter()
327 local shadow = worker4.entity:AddDynamicShadow()
328 MakeCharacterPhysics(worker4, 75, .5)
329 shadow:SetSize( 1.3, .6 )
330 worker4:AddComponent("health")
331 worker4.components.health:SetMaxHealth(1000)
332 worker4.components.health:SetInvincible(true)
333 worker4.components.health.nofadeout = true
334 worker4:AddComponent("combat")
335 worker4:AddComponent("follower")
336 worker4:AddComponent("knownlocations")
337 worker4:AddComponent("locomotor")
338 worker4.components.locomotor.walkspeed = 5
339 worker4.components.locomotor.runspeed = 12
340 worker4:SetStateGraph("SGshadowwaxwell")
341 worker4:RemoveComponent("stackable")
342 worker4:RemoveComponent("tradable")
343 worker4:RemoveComponent("fuel")
344 worker4:RemoveComponent("inventoryitem")
345 worker4:RemoveComponent("edible")
346 worker4:RemoveComponent("perishable")
347 worker4:RemoveComponent("burnable")
348 worker4:RemoveComponent("propagator")
349 worker4:RemoveComponent("deployable")
350 MakeLargeBurnable(worker4)
351 MakeLargePropagator(worker4)
352 worker4:AddTag("workerman")
353 worker4:AddComponent("trader")
354 worker4.components.trader:SetAcceptTest(function(worker4, item)
355 if GetPlayer().components.inventory:Has("goldnugget", 20) then
356 if item.prefab == "goldnugget" then
357 return true
358 end
359 end
360 return false
361 end )
362 worker4.components.trader.onaccept = function(worker4, giver, item)
363 worker4:AddTag("myworker")
364 worker4:RemoveTag("workerman")
365 worker4:RemoveComponent("burnable")
366 worker4:RemoveComponent("propagator")
367 GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
368 worker4.task1 = worker4:DoPeriodicTask(0.5, function(worker4)
369 local target = FindEntity(worker4, 15, function(guy)
370 return guy.prefab == "rock1" or guy.prefab == "rock2" or guy.prefab == "rock_flintless" or guy.prefab == "rock_flintless_med" or guy.prefab == "rock_flintless_low" or guy.prefab == "rock_ice"
371 end )
372 if target then
373 worker4.components.locomotor:Stop()
374 worker4:SetBrain(nil)
375 worker4.components.follower:SetLeader(nil)
376 local pt1 = target:GetPosition()
377 worker4.components.locomotor:GoToPoint(pt1)
378 worker4.task2 = worker4:DoPeriodicTask(.25, function(worker4)
379 local target2 = FindEntity(worker4, 2, function(guy)
380 return guy.prefab == "rock1" or guy.prefab == "rock2" or guy.prefab == "rock_flintless" or guy.prefab == "rock_flintless_med" or guy.prefab == "rock_flintless_low" or guy.prefab == "rock_ice"
381 end )
382 if target2 then
383 worker4.AnimState:PlayAnimation("pickup")
384 target2.components.workable:Destroy(worker4)
385 end
386 end )
387 else
388 worker4.components.follower:SetLeader(GetPlayer())
389 local brain = require "brains/chesterbrain"
390 worker4:SetBrain(brain)
391 worker4:RestartBrain()
392 if worker4.task2 then worker4.task2:Cancel() worker4.task2 = nil end
393 end
394 end )
395 end
396 worker4:ListenForEvent( "nighttime", function() worker4:Remove() end, GetWorld())
397 end
398 local shopsign1 = SpawnPrefab("petals_evil")
399 shopsign1.Transform:SetPosition(pt.x+2+3, 0, pt.z+2-3)
400 shopsign1.AnimState:SetBank("sign_home")
401 shopsign1.AnimState:SetBuild("sign_home")
402 shopsign1.AnimState:PlayAnimation("idle")
403 shopsign1.Transform:SetScale(0.5, 0.5, 0.5)
404 shopsign1:RemoveComponent("stackable")
405 shopsign1:RemoveComponent("tradable")
406 shopsign1:RemoveComponent("fuel")
407 shopsign1:RemoveComponent("inventoryitem")
408 shopsign1:RemoveComponent("edible")
409 shopsign1:RemoveComponent("perishable")
410 shopsign1:RemoveComponent("burnable")
411 shopsign1:RemoveComponent("propagator")
412 shopsign1:RemoveComponent("deployable")
413 MakeLargeBurnable(shopsign1)
414 MakeLargePropagator(shopsign1)
415 shopsign1:AddTag("goodbye")
416 local shopsign2 = SpawnPrefab("petals_evil")
417 shopsign2.Transform:SetPosition(pt.x+2+1, 0, pt.z+2-1)
418 shopsign2.AnimState:SetBank("sign_home")
419 shopsign2.AnimState:SetBuild("sign_home")
420 shopsign2.AnimState:PlayAnimation("idle")
421 shopsign2.Transform:SetScale(0.5, 0.5, 0.5)
422 shopsign2:RemoveComponent("stackable")
423 shopsign2:RemoveComponent("tradable")
424 shopsign2:RemoveComponent("fuel")
425 shopsign2:RemoveComponent("inventoryitem")
426 shopsign2:RemoveComponent("edible")
427 shopsign2:RemoveComponent("perishable")
428 shopsign2:RemoveComponent("burnable")
429 shopsign2:RemoveComponent("propagator")
430 shopsign2:RemoveComponent("deployable")
431 MakeLargeBurnable(shopsign2)
432 MakeLargePropagator(shopsign2)
433 shopsign2:AddTag("goodbye")
434 local shopsign3 = SpawnPrefab("petals_evil")
435 shopsign3.Transform:SetPosition(pt.x+2-1, 0, pt.z+2+1)
436 shopsign3.AnimState:SetBank("sign_home")
437 shopsign3.AnimState:SetBuild("sign_home")
438 shopsign3.AnimState:PlayAnimation("idle")
439 shopsign3.Transform:SetScale(0.5, 0.5, 0.5)
440 shopsign3:RemoveComponent("stackable")
441 shopsign3:RemoveComponent("tradable")
442 shopsign3:RemoveComponent("fuel")
443 shopsign3:RemoveComponent("inventoryitem")
444 shopsign3:RemoveComponent("edible")
445 shopsign3:RemoveComponent("perishable")
446 shopsign3:RemoveComponent("burnable")
447 shopsign3:RemoveComponent("propagator")
448 shopsign3:RemoveComponent("deployable")
449 MakeLargeBurnable(shopsign3)
450 MakeLargePropagator(shopsign3)
451 shopsign3:AddTag("goodbye")
452 local shopsign4 = SpawnPrefab("petals_evil")
453 shopsign4.Transform:SetPosition(pt.x+2-3, 0, pt.z+2+3)
454 shopsign4.AnimState:SetBank("sign_home")
455 shopsign4.AnimState:SetBuild("sign_home")
456 shopsign4.AnimState:PlayAnimation("idle")
457 shopsign4.Transform:SetScale(0.5, 0.5, 0.5)
458 shopsign4:RemoveComponent("stackable")
459 shopsign4:RemoveComponent("tradable")
460 shopsign4:RemoveComponent("fuel")
461 shopsign4:RemoveComponent("inventoryitem")
462 shopsign4:RemoveComponent("edible")
463 shopsign4:RemoveComponent("perishable")
464 shopsign4:RemoveComponent("burnable")
465 shopsign4:RemoveComponent("propagator")
466 shopsign4:RemoveComponent("deployable")
467 MakeLargeBurnable(shopsign4)
468 MakeLargePropagator(shopsign4)
469 shopsign4:AddTag("goodbye")
470end
471local function OnDeploy (inst, pt)
472 createworker(inst)
473 inst.components.stackable:Get():Remove()
474end
475 inst:AddComponent("deployable")
476 inst.components.deployable.ondeploy = OnDeploy
477local function onsave(inst, data)
478 if inst:HasTag("shopsign") then
479 data.shopsign = true
480 end
481 if inst:HasTag("workerman") then
482 data.workerman = true
483 end
484 if inst:HasTag("myworker") then
485 data.myworker = true
486 end
487 if inst:HasTag("goodbye") then
488 data.goodbye = true
489 end
490end
491local function onload(inst, data)
492 if data and data.shopsign then
493 createworker(inst)
494 inst:Remove()
495 end
496 if data and data.workerman then
497 inst:Remove()
498 end
499 if data and data.myworker then
500 inst:Remove()
501 end
502 if data and data.goodbye then
503 inst:Remove()
504 end
505end
506 inst.OnSave = onsave
507 inst.OnLoad = onload
508
509 即可用噩梦花瓣种临时工市场(拿着1个噩梦花瓣对地面点鼠标右键,如果拿着多个噩梦花瓣,则不会种出来),鼠标左键点击大招牌,会有4种临时工来应聘,从左到右分别是采摘工(采摘植物)、农民(收获农田并施肥)、伐木工(砍树)、矿工(开矿),想雇佣什么工种,就拿着黄金对他点鼠标左键,每人每天20个黄金。再次点大招牌,可以换不同的应聘人员供你选择。雇佣临时工后,他会跟随你,把他带到工作场所,会自动开始干活,干完后继续跟随。可打开小地图查询临时工的位置,显示为红色蘑菇树的图标。临时工会在每天黑夜来临时下班,想让你花费的工资更值得,就尽可能早点雇佣他们。如果想提早解雇临时工,就存档退出再读档,他们就被遣散了。不想要临时工市场时,烧掉即可