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

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


 1
 2二三四.生物传送机(探矿杖左键点生物,右键传送到任意地点)
 3
 4	MT管理器打开游戏目录/assets/scripts/prefabs/diviningrod.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
 5
 6local function onattack(inst, owner, target)
 7	SpawnPrefab("lightning_rod_fx").Transform:SetPosition(target.Transform:GetWorldPosition())
 8	target:AddTag("send")
 9end
10local function canteleport(inst)
11	return true
12end
13local function teleport(inst)
14	local player = GetPlayer()
15	local range = 3000
16	local pos = Vector3(player.Transform:GetWorldPosition())
17	local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
18	for k,v in pairs(ents) do
19		if v:HasTag("send") then
20			v.Transform:SetPosition(TheInput:GetWorldPosition():Get())
21			v:RemoveTag("send")
22		end
23	end
24end
25	inst:AddComponent("spellcaster")
26	inst.components.spellcaster:SetSpellFn(teleport)
27	inst.components.spellcaster:SetSpellTestFn(canteleport)
28	inst.components.spellcaster.canusefrominventory = false
29	inst.components.spellcaster.canuseonpoint = true
30	inst:AddComponent("weapon")
31	inst.components.weapon:SetDamage(0)
32	inst.components.weapon:SetRange(30, 35)
33	inst.components.weapon:SetOnAttack(onattack)
34	inst.components.weapon:SetProjectile("bishop_charge")
35
36	即可在装备探矿杖时,用鼠标左键点生物(几个都可以),无论走到地图何处,装备探矿杖用鼠标右键点地面,都可将选中的生物传送过来。生物传送机可让群体性动物落单,让不会相遇的动物碰面,调离守护某处的敌人等。探矿杖在科学选项(画着原子)下,用1个树枝、4个噩梦燃料、1个齿轮制造