副本
创建副本 create
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
idx | number | 标记(每一类副本的唯一标记,方便查找:如个人副本用玩家id,组队用队伍id) |
script | string | 挂载脚本名(副本脚本中自定义的副本名字) |
name | string | 副本名 |
scene_id | number | 场景出生id |
scene_list | table | 场景列表 {1,2,3} |
life | number | 副本时长(秒) |
ext | string? | 拓展字符串 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本示例对象 |
- | - | - |
ret: 无
示例:
function isc_test_dg:close()
local dg = module.dg
edi.dg:close(dg)
LOGI("close ok")
end
副本是否关闭 is_closed
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
uuid | number | 副本唯一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:
名字 | 类型 | 说明、描述 |
---|---|---|
script | string | 副本脚本 |
idx | number | 唯一标记 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
ret | string | 结果信息 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
key | string | 数据key |
val | string | 数据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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
key | string | 数据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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
layer | number | 层级 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
is_open | boolean | 是否开启自动回收副本(默认副本没人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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
scene_id | number | 场景id |
axis_x | number | X轴 |
axis_y | number | Y轴 |
radius | number | 半径 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
scene_id | number | 场景id |
axis_x | number | X轴 |
axis_y | number | Y轴 |
radius | number | 半径 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
script | string | 脚本字符串标记 |
scene_id | number | 场景id |
life | number | 副本时长(秒) |
ext | string | 拓展数据 |
remark | string | 原因标记 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家 |
dg_uid | number | 副本唯一id |
remark | string | 来源 |
trans_pos | pos_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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
timer_key | string | 定时器标记 |
tick | number | 间隔触发时间(毫秒) |
count | number | 次数(-1表示不限制次数) |
callback_func | fun(dguid:number, | params:string) 回调函数 |
callback_data | string | 回调数据 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
timer_key | string | 定时器标记 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
dg | userdata | 副本对象 |
timer_key | string | 定时器标记 |
- | - | - |
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