代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1
2二一0.无尽的任务(点路牌接任务,讨伐怪物赚赏金)
3
4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/homesign.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
5
6local function GetStatus(inst)
7 if not inst:HasTag("westart") then
8 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
9 inst:AddTag("westart")
10 inst.AnimState:SetMultColour(255/255,0/255,0/255,1)
11 local names = {"spiderqueen","deerclops","leif_sparse","minotaur","knight","bishop","rook","firehound"}
12 local name = names[math.random(#names)]
13 local bonuspoints = math.random(6)
14 local pt = inst:GetPosition()
15 local wanted = SpawnPrefab(name)
16 wanted.Transform:SetPosition(pt.x+(math.random(300)-math.random(300)), 0, pt.z+(math.random(300)-math.random(300)))
17 wanted.components.health:SetMaxHealth(1000 * bonuspoints)
18 wanted.components.health:DoDelta(1000 * bonuspoints)
19 wanted.AnimState:SetMultColour(255/255,0/255,0/255,1)
20 wanted.Transform:SetScale(1.5, 1.5, 1.5)
21 local minimap = wanted.entity:AddMiniMapEntity()
22 minimap:SetIcon( "lucy_axe.png" )
23 wanted:ListenForEvent("death", function()
24 inst:RemoveTag("westart")
25 inst.AnimState:SetMultColour(35/255,105/255,235/255,1)
26 for k = 1, 20*bonuspoints do
27 SpawnPrefab("goldnugget").Transform:SetPosition(GetPlayer().Transform:GetWorldPosition())
28 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold")
29 end
30 end )
31 inst:DoTaskInTime(180, function()
32 if not wanted.components.health:IsDead() then
33 SpawnPrefab("die_fx").Transform:SetPosition(wanted.Transform:GetWorldPosition())
34 SpawnPrefab("die_fx").Transform:SetPosition(GetPlayer().Transform:GetWorldPosition())
35 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
36 wanted:Remove()
37 inst:RemoveTag("westart")
38 inst.AnimState:SetMultColour(35/255,105/255,235/255,1)
39 end
40 end)
41 end
42end
43 inst.components.inspectable.getstatus = GetStatus
44 inst.AnimState:SetMultColour(35/255,105/255,235/255,1)
45
46 即可点路牌接任务,地图随机位置将出现一个被通缉的怪物,全身红色,小地图上显示为红色斧子图标,血量随机在1000-6000点,不由怪物品种决定(1只狗可能拥有6000的血量)。在3分钟内(游戏中6个小时)找到并杀死它,即讨伐成功,赏金会出现在主角身边,错过时间则任务失败(升起黑烟),被通缉的怪物将人间蒸发。赏金为20-120个黄金,杀死的怪物血量越高,赏金越高。怪物有可能出现在海上,如果没有修改过“地图全开”、“主角可渡海”,就只能望洋兴叹了。这是一个无尽的任务系统,如果同时修改了“巨型超市”,则可以用赏金购买造装备的材料及补血料理,从此开始赏金猎人的生涯吧