代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。

原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html



二一0.无尽的任务(点路牌接任务,讨伐怪物赚赏金)

	用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/homesign.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:

local function GetStatus(inst)
	if not inst:HasTag("westart") then
	   GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
	   inst:AddTag("westart")
	   inst.AnimState:SetMultColour(255/255,0/255,0/255,1)
	   local names = {"spiderqueen","deerclops","leif_sparse","minotaur","knight","bishop","rook","firehound"}
	   local name = names[math.random(#names)]
	   local bonuspoints = math.random(6)
	   local pt = inst:GetPosition()
	   local wanted = SpawnPrefab(name)
	   wanted.Transform:SetPosition(pt.x+(math.random(300)-math.random(300)), 0, pt.z+(math.random(300)-math.random(300)))
	   wanted.components.health:SetMaxHealth(1000 * bonuspoints)
	   wanted.components.health:DoDelta(1000 * bonuspoints)
	   wanted.AnimState:SetMultColour(255/255,0/255,0/255,1)
	   wanted.Transform:SetScale(1.5, 1.5, 1.5)
	   local minimap = wanted.entity:AddMiniMapEntity()
	   minimap:SetIcon( "lucy_axe.png" )
	   wanted:ListenForEvent("death", function()
		   inst:RemoveTag("westart")
		   inst.AnimState:SetMultColour(35/255,105/255,235/255,1)
		   for k = 1, 20*bonuspoints do
			   SpawnPrefab("goldnugget").Transform:SetPosition(GetPlayer().Transform:GetWorldPosition())
			   GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold")
		   end
	   end )
	   inst:DoTaskInTime(180, function()
		   if not wanted.components.health:IsDead() then
			  SpawnPrefab("die_fx").Transform:SetPosition(wanted.Transform:GetWorldPosition())
			  SpawnPrefab("die_fx").Transform:SetPosition(GetPlayer().Transform:GetWorldPosition())
			  GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
			  wanted:Remove()
			  inst:RemoveTag("westart")
			  inst.AnimState:SetMultColour(35/255,105/255,235/255,1)
		   end
	   end)
	end
end
	inst.components.inspectable.getstatus = GetStatus
	inst.AnimState:SetMultColour(35/255,105/255,235/255,1)

	即可点路牌接任务,地图随机位置将出现一个被通缉的怪物,全身红色,小地图上显示为红色斧子图标,血量随机在1000-6000点,不由怪物品种决定(1只狗可能拥有6000的血量)。在3分钟内(游戏中6个小时)找到并杀死它,即讨伐成功,赏金会出现在主角身边,错过时间则任务失败(升起黑烟),被通缉的怪物将人间蒸发。赏金为20-120个黄金,杀死的怪物血量越高,赏金越高。怪物有可能出现在海上,如果没有修改过“地图全开”、“主角可渡海”,就只能望洋兴叹了。这是一个无尽的任务系统,如果同时修改了“巨型超市”,则可以用赏金购买造装备的材料及补血料理,从此开始赏金猎人的生涯吧