跳到主要内容

传送点功能

配置

传送点配置路径:dev\config\scene\scene_delivery_point.xlsx

场景id跳转点左上角坐标跳转点右下角坐标跳转特效id目标场景id目标坐标x目标坐标y

主要包含以上参数,当玩家进入配置的传送区域,会自动传送至指定场景的指定位置

传送点效果展示

传送点效果

配置数据涉及表

  • scene_delivery_point.xlsx表,路径:dev\config\scene\scene_delivery_point.xlsx

传送点配置

刷传送点

接口 summon_transport(scene, transport_id)参数含义: 场景对象, 传送点配置id (scene_delivery_point.xlsx id)

测试样例


local function _summon_transport(player)
local transport_id = 9--新增的传送点配置样例
local obj = edi.player:owner(player)
local scene = edi.object:get_scene(obj) --获取玩家当前场景
local ret = edi.scene:summon_transport(scene, transport_id) --刷传送点
if ret then
LOGI("summon_transport")
end
end

edi.event:reg_gm("test:_summon_transport", _summon_transport)

添加自定义场景传送点

接口 add_ext_transport(index_key, src_scene, src_x, src_y, dst_scene_id, dst_x, dst_y)参数含义: 标记, 传送入口场景id, 传送点x, 传送点y, 目标场景id, 目标点x, 目标点y

删除自定义场景传送点

接口 del_ext_transport(index_key) 参数含义:标记

获取自定义场景传送点

接口 get_ext_transport(index_key) 参数含义:标记

测试样例


local const_def = include('define.const_def')

local function _create_ext_transport()
local index_key = "key_ext_transport::test"
local src_scene = edi.scene:get_one(1)--比奇场景配置id

local src_pos = {
{x = 327, y = 267},
{x = 326, y = 267},
{x = 327, y = 266},
{x = 327, y = 266},
}
local des_scene = 10 --盟重场景配置id
local des_pos = {x = 330, y = 330}

for i = 1, #src_pos do
edi.scene:add_ext_transport(index_key .. tostring(i), src_scene, src_pos[i].x, src_pos[i].y, des_scene, des_pos.x, des_pos.y)
end

edi.general:broadcast_notice_map(src_scene, const_def.NOTICE_TYPE.ChatBox, "【比奇】(327,267)处传送至【盟重】(330,330)处配置数据")
end

local function _del_ext_transport()
local index_key = "key_ext_transport::test"

for i = 1, 4 do
local re_key = index_key .. tostring(i)
local tabInfo = edi.scene:get_ext_transport(re_key)
if tabInfo ~= nil then
local src_scene = edi.scene:get_by_uuid(tabInfo.src_scene_uuid)
if src_scene then
local src_name = edi.scene:get_name(src_scene)
local des_cfg = edi.general:read_xlsx("scene_cs", tabInfo.dst_scene_id)
local des_name = des_cfg.name
LOGI("获取传送点配置信息:"
..src_name.."("..tostring(tabInfo.src_x)..","..tostring(tabInfo.src_y)..") -> "
..des_name.."("..tostring(tabInfo.dst_x)..","..tostring(tabInfo.dst_x)..")")
end
edi.scene:del_ext_transport(re_key)

local tabInfo1 = edi.scene:get_ext_transport(re_key)
if tabInfo1 == nil then
LOGI("[删除成功] 比奇(327,267)处传送至盟重(330,330)处配置数据删除成功")
end
end
end
end

edi.event:reg_gm("test:_create_ext_transport", _create_ext_transport)
edi.event:reg_gm("test:_del_ext_transport", _del_ext_transport)