跳到主要内容

副本

创建副本 create

  • args:
名字类型说明、描述
idxnumber标记(每一类副本的唯一标记,方便查找:如个人副本用玩家id,组队用队伍id)
scriptstring挂载脚本名(副本脚本中自定义的副本名字)
namestring副本名
scene_idnumber场景出生id
scene_listtable场景列表 {1,2,3}
lifenumber副本时长(秒)
extstring?拓展字符串
---
  • ret: userdata? 副本对象

  • 示例:

function isc_test_dg:create()
local player_uuid = edi.player:get_uuid(module.player)
local dg = edi.dg:create(player_uuid, "除魔挑战", "除魔挑战", 1026, {1026}, 120, "")
--LOGI("dg : " .. dg)
module.dg = dg
module.flag_id = player_uuid
module.script = edi.dg:get_script(dg)
module.uuid = edi.dg:get_uuid(dg)
end

关闭副本 close

  • args:
名字类型说明、描述
dguserdata副本示例对象
---
  • ret: 无

  • 示例:

function isc_test_dg:close()
local dg = module.dg
edi.dg:close(dg)
LOGI("close ok")
end

副本是否关闭 is_closed

  • args:
名字类型说明、描述
dguserdata副本对象
---
  • ret: boolean 副本是否已经关闭 true-关闭 false-未关闭

  • 示例:

function isc_test_dg:is_closed()
local dg = module.dg
local ret = edi.dg:is_closed(dg)
LOGI("ret: ".. type(ret))
end

查找副本 find

  • args:
名字类型说明、描述
uuidnumber副本唯一id
---
  • ret: userdata 副本对象

  • 示例:

function isc_test_dg:find()
local uuid = module.uuid
local dg = edi.dg:find(uuid)
if dg then
LOGI("find dg: ok")
else
LOGE("find dg: faild")
end
end

获取副本 get

  • args:
名字类型说明、描述
scriptstring副本脚本
idxnumber唯一标记
---
  • ret: userdata? 副本对象

  • 示例:

function isc_test_dg:get()
local flag_id = module.flag_id
local script = module.script
local dg = edi.dg:get(script, flag_id)
if dg then
LOGI("get dg: ok")
else
LOGE("get dg: faild")
end
end

获取副本的唯一ID get_uuid

  • args:
名字类型说明、描述
dguserdata副本对象
---
  • ret: number? 副本唯一ID

  • 示例:

function isc_test_dg:get_uuid()
local dg = module.dg
local uuid = edi.dg:get_uuid(dg)
LOGI("uuid " .. uuid)
end

获取副本的脚本 get_script

  • args:
名字类型说明、描述
dguserdata副本对象
---
  • ret: string? 副本脚本名

  • 示例:

function isc_test_dg:get_script()
local dg = module.dg
local script = edi.dg:get_script(dg)
LOGI("script " .. script)
end

设置战斗结果数据(如胜负信息) set_result

  • args:
名字类型说明、描述
dguserdata副本对象
retstring结果信息
---
  • ret: 无

  • 示例:

function isc_test_dg:set_result()
local dg = module.dg
edi.dg:set_result(dg, "win")
LOGI("set_result ok")
end

获取副本基础信息 get_base_info

  • args:
名字类型说明、描述
dguserdata副本对象
---
  • ret: dg_base_info? 副本基础信息

  • 示例:

function isc_test_dg:get_base_info()
local dg = module.dg
local info = edi.dg:get_base_info(dg)
LOGI("info uuid: " .. info.uuid)
LOGI("info name: " .. info.name)
LOGI("info remain_time: " .. info.remain_time)
LOGI("info result: " .. info.result)
LOGI("info is_finish: " .. type(info.is_finish))
LOGI("info flag_id: " .. info.creator_id)
end

设置副本lua数据 set_lua_ext

  • args:
名字类型说明、描述
dguserdata副本对象
keystring数据key
valstring数据val
---
  • ret: 无

  • 示例:

function isc_test_dg:set_lua_ext()
local dg = module.dg
local key = "baoxiang"
local val = "100"
edi.dg:set_lua_ext(dg, key, val)
LOGI("set_lua_ext ok")
end

获取副本lua数据 get_lua_ext

  • args:
名字类型说明、描述
dguserdata副本对象
keystring数据key
---
  • ret: string 数据val

  • 示例:

function isc_test_dg:get_lua_ext()
local dg = module.dg
local key = "baoxiang"
local val = edi.dg:get_lua_ext(dg, key)
LOGI("get_lua_ext val " .. val)
end

获取副本指定层的场景(超过则取副本最大层的场景) get_layer_scene

  • args:
名字类型说明、描述
dguserdata副本对象
layernumber层级
---
  • ret: userdata 场景

  • 示例:

function isc_test_dg:get_layer_scene()
local dg = module.dg
local scene = edi.dg:get_layer_scene(dg, 1)
if scene then
LOGI("get_layer_scene scene ok")
else
LOGE("get_layer_scene scene failed")
end
end

是否自动回收副本 set_auto_recycle

  • args:
名字类型说明、描述
dguserdata副本对象
is_openboolean是否开启自动回收副本(默认副本没人3分钟后自动回收),想常驻则设置false
---
  • ret: boolean true-成功 false-失败

  • 示例:

function isc_test_dg:set_auto_recycle()
local dg = module.dg
edi.dg:set_auto_recycle(dg, false)
LOGI("set_auto_recycle ok")
end

设置出生点 set_born_info

  • args:
名字类型说明、描述
dguserdata副本对象
scene_idnumber场景id
axis_xnumberX轴
axis_ynumberY轴
radiusnumber半径
---
  • ret: boolean true-修改成功 false-修改失败

  • 示例:

function isc_test_dg:set_born_info()
local dg = module.dg
edi.dg:set_born_info(dg, 1, 20, 20, 5)
LOGI("set_born_info ok")
end

获取初始点信息 get_born_info

  • args:
名字类型说明、描述
dguserdata副本对象
---
  • ret: dg_transfer_info | {} #出生点信息

  • 示例:

function isc_test_dg:get_born_info()
local dg = module.dg
local born = edi.dg:get_born_info(dg)
LOGI("born: scene_uuid " .. born.scene_uuid)
LOGI("born: scene_id " .. born.scene_id)
LOGI("born: x " .. born.x)
LOGI("born: y " .. born.y)
LOGI("born: radius " .. born.radius)
end

设置传出点 set_leave_info

  • args:
名字类型说明、描述
dguserdata副本对象
scene_idnumber场景id
axis_xnumberX轴
axis_ynumberY轴
radiusnumber半径
---
  • ret: boolean true-修改成功 false-修改失败

  • 示例:

function isc_test_dg:set_leave_info()
local dg = module.dg
edi.dg:set_leave_info(dg, 1, 20, 20, 5)
LOGI("set_leave_info ok")
end

获取离开点信息 get_leave_info

  • args:
名字类型说明、描述
dguserdata副本对象
---
  • ret: dg_transfer_info | {} #离开点信息

  • 示例:

function isc_test_dg:get_leave_info()
local dg = module.dg
local leave = edi.dg:get_leave_info(dg)
LOGI("leave: scene_uuid ".. leave.scene_uuid)
LOGI("leave: scene_id ".. leave.scene_id)
LOGI("leave: x ".. leave.x)
LOGI("leave: y ".. leave.y)
LOGI("leave: radius ".. leave.radius)
end

进入单人的副本(没有则直接创建新的) enter_solo

  • args:
名字类型说明、描述
playeruserdata玩家对象
scriptstring脚本字符串标记
scene_idnumber场景id
lifenumber副本时长(秒)
extstring拓展数据
remarkstring原因标记
---
  • ret: boolean true-进入成功 false-进入失败

  • 示例:

function isc_test_dg:enter_solo()
-- 创建并进入个人副本
local ret = edi.dg:enter_solo(module.player, "除魔挑战", 1026, 120, "拓展数据自定义", "来自测试用例")
LOGI("进入个人副本结果 ".. type(ret))
end

进入多人副本 enter_multi

  • args:
名字类型说明、描述
playeruserdata玩家
dg_uidnumber副本唯一id
remarkstring来源
trans_pospos_info?传送进入坐标 不填默认为副本出生点
---
  • ret: 无

  • 示例:

function isc_test_dg:enter_multi()
local flag_id = 1
-- 创建并进入多人副本
local dg = edi.dg:create(flag_id, "除魔挑战", "除魔挑战", 1026, {1026}, 120, "")
local uuid = edi.dg:get_uuid(dg)
local ret = edi.dg:enter_multi(module.player, uuid, "")
LOGI("进入多人副本结果 ".. type(ret))
end

设置定时器 add_timer

  • args:
名字类型说明、描述
dguserdata副本对象
timer_keystring定时器标记
ticknumber间隔触发时间(毫秒)
countnumber次数(-1表示不限制次数)
callback_funcfun(dguid:number,params:string) 回调函数
callback_datastring回调数据
---
  • ret: boolean 是否成功

  • 示例:

function isc_test_dg:add_timer()
local _callback = function(uuid, timer_key, data)
LOGI("data: " .. data)
end
local dg = module.dg
local timerId = "chumo" .. edi.dg:get_uuid(dg)
-- 每隔两秒后触发一次
edi.dg:add_timer(dg, timerId, 2000, -1, _callback, "test")
LOGI("add_timer ok")
end

销毁定时器 del_timer

  • args:
名字类型说明、描述
dguserdata副本对象
timer_keystring定时器标记
---
  • ret: 无

  • 示例:

function isc_test_dg:del_timer()
local dg = module.dg
local timerId = "chumo" .. edi.dg:get_uuid(dg)
-- 两秒后触发一次
edi.dg:del_timer(dg, timerId)
LOGI("del_timer ok")
end

是否有定时器 has_timer

  • args:
名字类型说明、描述
dguserdata副本对象
timer_keystring定时器标记
---
  • ret: boolean true-存在 false-不存在

  • 示例:

function isc_test_dg:has_timer()
local dg = module.dg
local timerId = "chumo" .. edi.dg:get_uuid(dg)
-- 两秒后触发一次
local ret = edi.dg:has_timer(dg, timerId)
LOGI("has: " .. type(ret))
end