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

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


 1
 2二六二.传送石(右键点装备的保温石,将主角传送到另一块保温石处)
 3
 4	MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/heatrock.lua文件,在inst:AddComponent("inspectable")下一行插入以下内容:
 5
 6local function canteleport(inst, caster)
 7	return true
 8end
 9local function teleport(inst)
10	local caster = inst.components.inventoryitem.owner
11	local range = 3000
12	local pos = Vector3(caster.Transform:GetWorldPosition())
13	local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
14	for k,v in pairs(ents) do
15		if v.prefab == "heatrock" and not v.components.inventoryitem:IsHeld() then
16			caster.Transform:SetPosition(v.Transform:GetWorldPosition())
17		end
18	end
19	return true
20end
21	inst:AddComponent("spellcaster")
22	inst.components.spellcaster:SetSpellFn(teleport)
23	inst.components.spellcaster:SetSpellTestFn(canteleport)
24	inst.components.spellcaster.canusefrominventory = false
25	inst.components.spellcaster.canuseonpoint = true
26	inst:AddComponent("equippable")
27	inst.components.equippable.equipslot = EQUIPSLOTS.HANDS
28
29	即可制造2块保温石,1块扔在要传到的地点(比如家、洞穴出口处等),另1块带在身上,无论走到地图何处,只要装备保温石对空地按鼠标右键,马上传送回扔在地上的保温石处。如果制造3块保温石,将2块扔在不同地点,这2点间将形成虫洞效果,装备保温石对空地按鼠标右键,会在这2点间来回传送