场景
通过配置id(scene_cs.xlsx id)(副本场景,一个场景配置id可能对应多个场景对象) get_by_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
id | number | 配置id |
- | - | - |
ret:
table
场景列表示例:
function isc_test_scene:get_by_id()
local obj = edi.player:owner(module.player)
local scene_id = edi.object:get_scene_id(obj)
local scenes = edi.scene:get_by_id(scene_id)
for _, scene in pairs(scenes) do
LOGI("isc test: " .. edi.scene:get_name(scene))
end
end
通过配置id获得其中一个场景对象 get_one
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
id | number | 配置id |
- | - | - |
- ret:
userdata?
场景对象
通过唯一id获得场景 get_by_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
uid | number | 唯一id |
- | - | - |
ret:
userdata
场景示例:
function isc_test_scene:get_by_uuid()
local obj = edi.player:owner(module.player)
local scene_uuid = edi.object:get_scene_uuid(obj)
local scene = edi.scene:get_by_uuid(scene_uuid)
LOGI("isc test: " .. edi.scene:get_name(scene))
end
获得场景配置名(scene_cs.xlsx name) get_name
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
- | - | - |
ret:
string
名字示例:
function isc_test_scene:get_name()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
LOGI("isc test: " .. edi.scene:get_name(scene))
end
获得场景配置id get_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
- | - | - |
ret:
number
配置id(scene_cs.xlsx id)示例:
function isc_test_scene:get_id()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
LOGI("isc test: " .. edi.scene:get_id(scene))
end
获得场景唯一id get_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
- | - | - |
ret:
number
唯一id示例:
function isc_test_scene:get_uuid()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
LOGI("isc test: " .. edi.scene:get_uuid(scene))
end
是否是副本场景 is_dg
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
- | - | - |
ret:
boolean
是否示例:
function isc_test_scene:is_dg()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
LOGI("isc test: " .. tostring(edi.scene:is_dg(scene)))
end
副本唯一id get_dg_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景对象 |
- | - | - |
ret:
number
副本唯一id 未获取到副本时返回0示例:
function isc_test_scene:get_dg_uuid()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
LOGI("isc test: " .. edi.scene:get_dg_uuid(scene))
end
获得场景出生点 get_born_pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
- | - | - |
ret:
pos_info
出生点示例:
function isc_test_scene:get_born_pos()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_born_pos(scene)
LOGI("isc test: " .. pos.x .. ":" .. pos.y)
end
设置场景出生点 set_born_pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
x | number | x |
y | number | y |
- | - | - |
ret: 无
示例:
function isc_test_scene:set_born_pos()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local bak_pos = edi.scene:get_born_pos(scene)
edi.scene:set_born_pos(scene, bak_pos.x + 1, bak_pos.y + 1)
local pos = edi.scene:get_born_pos(scene)
LOGI("isc test: " .. pos.x .. ":" .. pos.y)
edi.scene:set_born_pos(scene, bak_pos.x, bak_pos.y)
end
随机一个坐标点 get_random_pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
obj | userdata | 对象(需要产生随机点的目标对象) |
- | - | - |
ret:
pos_info
坐标点示例:
function isc_test_scene:get_random_pos()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_random_pos(scene, obj)
LOGI("isc test: " .. pos.x .. ":" .. pos.y)
end
是否是非阻挡点(只检查了物理阻挡) is_empty_pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
x | number | x |
y | number | y |
- | - | - |
ret:
boolean
是否示例:
function isc_test_scene:is_empty_pos()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_random_pos(scene, obj)
LOGI("isc test: " .. tostring(edi.scene:is_empty_pos(scene, pos.x, pos.y)))
end
对指定对象是否是非阻挡点 is_object_empty_pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
obj | userdata | 对象 |
x | number | x |
y | number | y |
- | - | - |
ret:
boolean
是否示例:
function isc_test_scene:is_object_empty_pos()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_random_pos(scene, obj)
LOGI("isc test: " .. tostring(edi.scene:is_object_empty_pos(scene, obj, pos.x, pos.y)))
end
是否是安全区点 is_safe_pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
x | number | x |
y | number | y |
- | - | - |
ret:
boolean
是否示例:
function isc_test_scene:is_safe_pos()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_random_pos(scene, obj)
LOGI("isc test: " .. tostring(edi.scene:is_safe_pos(scene, pos.x, pos.y)))
end
跳转指定配置id场景(确认 scene_cs.xlsx scene_type 是静态场景,否则可能会是错误的传送) transfer_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 指定玩家 |
id | number | 目的场景id |
x | number | 目的坐标x |
y | number | 目的坐标y |
radius | number? | 随机范围,默认范围5,超过5则全图随机, 0:表示定点传送 |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:transfer_id()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local born_pos = edi.scene:get_born_pos(scene)
edi.scene:transfer_id(module.player, 2, born_pos.x, born_pos.y)
end
跳转指定唯一id场景(副本场景,一个场景配置id对应多个场景实例,也就是多个唯一id) transfer_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 指定玩家 |
uid | number | 目的场景唯一id |
x | number | 目的坐标x |
y | number | 目的坐标y |
radius | number? | 随机范围,默认范围5,超过5则全图随机, 0:表示定点传送 |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:transfer_uuid()
local scenes = edi.scene:get_by_id(1)
for _, scene in pairs(scenes) do
edi.scene:transfer_uuid(module.player, edi.scene:get_uuid(scene), -1, -1)
return
end
end
直接传送到指定npc位置(默认在npc 3格访问内) transfer2npc
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
npc | userdata | npc对象 |
- | - | - |
ret: 无
示例:
function isc_test_scene:transfer2npc()
local npc_id = 201
local npc = edi.npc:get_by_id(npc_id)
if npc then
edi.scene:transfer2npc(module.player, npc)
end
end
寻路到指定位置(这里只能针对非副本(镜像)地图) route2pos
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
scene_id | integer | 场景ID |
dest_x | integer | npc对象 |
dest_y | integer | npc对象 |
task_id | integer | |
- | - | - |
- ret: 无
寻路到指定npc位置(默认在npc 20格访问外则自动给传送) route2npc
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
npc | userdata | npc对象 |
task_id | integer | |
- | - | - |
ret: 无
示例:
function isc_test_scene:route2npc()
local task_id = 10001
local npc = util.get_task_npc(task_id)
if npc then
edi.scene:route2npc(module.player, npc, task_id)
end
end
移动到当前场景指定位置 move_to
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 指定玩家 |
x | number | 目的坐标x |
y | number | 目的坐标y |
radius | number | 随机范围,默认范围5,超过5则全图随机, 0:表示定点传送 |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:move_to()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_random_pos(scene, obj)
edi.scene:move_to(module.player, pos.x, pos.y)
end
场景内所有对象 get_all_objects
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
bits_filter | number | 过滤器 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_all_objects()
local bit_player = 1
local bit_monster = 1 << 1
local bit_npc = 1 << 2
local bit_pet = 1 << 3
local bit_scene_item = 1 << 4
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
-- 查找场景内的玩家和npc
local objects = edi.scene:get_all_objects(scene, bit_player | bit_npc, {min_level = 1})
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
local objects_count = edi.scene:get_all_objects(scene, bit_player | bit_npc, {meta_id = {1001}}, true)
LOGI("isc test count: " .. objects_count)
end
场景内所有玩家对象 get_all_players
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_all_players()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_all_players(scene)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
场景内所有怪物对象 get_all_monsters
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table|number
对象列表示例:
function isc_test_scene:get_all_monsters()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_all_monsters(scene)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
场景内所有npc对象 get_all_npcs
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_all_npcs()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_all_npcs(scene)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
场景内所有场景道具对象 get_all_scene_items
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_all_scene_items()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_all_scene_items(scene)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
场景内所有扩展对象(特效、传送点) get_all_exts
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
- ret:
table
对象列表
视野内对象 get_eye_objects
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
obj | userdata | 指定对象 |
bits_filter | number | 过滤器 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_eye_objects()
local bit_player = 1
local bit_monster = 1 << 1
local bit_npc = 1 << 2
local bit_pet = 1 << 3
local bit_scene_item = 1 << 4
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
-- 查找视野内的玩家和npc
local objects = edi.scene:get_eye_objects(obj, bit_player | bit_npc)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
local objects_count = edi.scene:get_eye_objects(obj, bit_player | bit_npc, nil, true)
LOGI("isc test count: " .. objects_count)
end
视野内所有玩家对象 get_eye_players
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
obj | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_eye_players()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_eye_players(obj)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
视野内所有怪物对象 get_eye_monsters
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
obj | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_eye_monsters()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_eye_monsters(obj)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.monster:get_name(object))
end
end
视野内所有npc对象 get_eye_npcs
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
obj | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_eye_npcs()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_eye_npcs(obj)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
视野内所有场景道具对象 get_eye_scene_items
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
obj | userdata | 场景 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_eye_scene_items()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local objects = edi.scene:get_eye_scene_items(obj)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object))
end
end
指定半径范围内对象 get_rect_objects
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
center | pos_info | 中心点 |
radius | number | 半径 |
bits_filter | number | 过滤器 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
- ret:
table
对象列表
指定半径范围内玩家对象 get_rect_players
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
center | pos_info | 中心点 |
radius | number | 半径 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
- ret:
table
对象列表
指定半径范围内怪物对象 get_rect_monsters
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
center | pos_info | 中心点 |
radius | number | 半径 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
- ret:
table
对象列表
指定半径范围内npc对象 get_rect_npcs
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
center | pos_info | 中心点 |
radius | number | 半径 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
- ret:
table
对象列表
指定半径范围内场景道具对象 get_rect_scene_items
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
center | pos_info | 中心点 |
radius | number | 半径 |
object_filter | object_filter? | 对象过滤器 |
only_count | boolean? | 是否是获取数量 |
- | - | - |
ret:
table
对象列表示例:
function isc_test_scene:get_rect_scene_items()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = {x = 50, y = 50}
local radius = 5
local num = edi.scene:get_rect_scene_items(scene, pos, radius, nil, true)
LOGI("num = ".. num)
num = edi.scene:get_rect_npcs(scene, pos, radius, nil, true)
LOGI("num = ".. num)
num = edi.scene:get_rect_monsters(scene, pos, radius, nil, true)
LOGI("num = ".. num)
num = edi.scene:get_rect_players(scene, pos, radius, nil, true)
LOGI("num = ".. num)
num = edi.scene:get_rect_objects(scene, pos, radius, nil, true)
LOGI("num = ".. num)
num = edi.scene:get_all_exts(scene, pos, radius, nil, true)
LOGI("num = ".. num)
end
广播给场景玩家 broadcast
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_scene:broadcast()
local scene = edi.player:get_scene(module.player)
edi.scene:broadcast(scene, 8, "场景的广播")
end
刷怪(x,y均传-1表示由系统随机刷怪点) summon_monster
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
monster_id | number | 怪物配置id |
x | number | x |
y | number | y |
- | - | - |
ret:
userdata?
怪物对象nil表示失败示例:
function isc_test_scene:summon_monster()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = edi.scene:get_random_pos(scene, obj)
edi.scene:summon_monster(scene, 1, pos.x, pos.y)
local sys_random_pos_mon = edi.scene:summon_monster(scene, 1, -1, -1)
if sys_random_pos_mon ~= nil then
local pos = edi.object:get_scene_pos(sys_random_pos_mon)
LOGI("isc test: system random pos monster's pos: " .. pos.x .. ":" .. pos.y)
end
end
刷npc summon_npc
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
npc_id | number | npc配置id |
x | number | x |
y | number | y |
- | - | - |
ret:
userdata?
npc对象nil表示失败示例:
function isc_test_scene:summon_npc()
local npc_id = 1001
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local pos = {x = 50, y = 50}
local bRet = edi.scene:summon_npc(scene, npc_id, pos.x , pos.y)
if bRet then
LOGI("isc_test_scene summon_npc")
edi.scene:del_npc(scene, npc_id)
end
end
删除npc del_npc
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
npc_id | number | npc id |
- | - | - |
- ret: 无
刷传送点 summon_transport
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
transport_id | number | 传送点配置id (scene_delivery_point.xlsx id) |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:summon_transport()
local transport_id = 1
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local bRet = edi.scene:summon_transport(scene, transport_id)
if bRet then
LOGI("isc_test_scene summon_transport")
end
end
添加自定义场景传送点 add_ext_transport
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
index_key | string | 标记 |
src_scene | userdata | 添加到那个场景 |
src_x | number | 传送点x |
src_y | number | 传送点y |
dst_scene_id | number | 传送到的目标场景id |
dst_x | number | 目标点x |
dst_y | number | 目标点y |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:add_ext_transport()
local index_key = "key_xxx"
local src_scene = 1001
local des_scene = 1002
local bRet = edi.scene:add_ext_transport(index_key, src_scene, 50, 50, des_scene, 50, 50)
if bRet then
LOGI("isc_test_scene add_ext_transport ")
end
local tabInfo = edi.scene:get_ext_transport(index_key)
if #tabInfo ~= 0 then
LOGI("isc_test_scene get_ext_transport end . desc scene metaid = "..tabInfo.dst_scene_id)
edi.scene:del_ext_transport(index_key)
local tabInfo1 = edi.scene:get_ext_transport(index_key)
if #tabInfo == 0 then
LOGI("isc_test_scene del_ext_transport ")
end
end
end
删除自定义场景传送点 del_ext_transport
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
index_key | string | 标记 |
- | - | - |
- ret: 无
获取自定义场景传送点 get_ext_transport
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
index_key | string | 标记 |
- | - | - |
- ret:
ext_transport
场景传送点
指定场景添加定时器 add_timer
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
index_key | string | 标记 |
utick | number | 间隔时间(毫秒) |
count | number | 重复次数 |
callback_func | function | 回调函数 |
callback_data | string | 回调数据 |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:add_timer()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local player_id = edi.player:get_uuid(module.player)
local _callback = function(uuid, timer_key, callback_params)
print("isc test:scene_timer_callback================================== ", uuid, callback_params)
local player = edi.player:get_by_uuid(callback_params)
edi.player:add_exp(player, 100)
end
local bRet = edi.scene:add_timer(scene, "scene_timer", 200, 200, _callback, tostring(player_id))
end
删除指定定时器 del_timer
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
index_key | string | 标记 |
- | - | - |
ret: 无
示例:
function isc_test_scene:del_timer()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
edi.scene:del_timer(scene, "scene_timer")
end
判断是否有指定定时器 has_timer
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景 |
index_key | string | 标记 |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:has_timer()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local bRet = edi.scene:has_timer(scene, "scene_timer")
end
获取场景内指定的一个npc对象 get_npc
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景对象 |
npc_id | number | npc配置id |
- | - | - |
ret:
userdata
对象实例示例:
function isc_test_scene:get_npc()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local npcid = 6000
local npc = edi.scene:get_npc(scene, npcid)
if npc then
local id = edi.npc:get_config_id(npc)
LOGI("isc_test_scene get_npc end . npc metaid = "..id)
end
end
创建一个场景范围特效(类似安全区光圈) create_range_effect
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景对象 |
center_pos | pos_info | 中心点坐标 |
radius | number | 半径 |
shape | number | 形状(0:方形,1:圆形) |
effect_id | number | 特效id |
- | - | - |
ret:
userdata
对象实例示例:
function isc_test_scene:create_range_effect()
local obj = edi.player:owner(module.player)
local scene = edi.object:get_scene(obj)
local center_pos = {x=25,y=25}
local bRet = edi.scene:create_range_effect(scene, center_pos, 5, 1,1001)
if bRet then
LOGI("创建一个场景范围特效")
end
end
场景中掉落物品 drop_item
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景对象 |
ownerid | number | 掉落物品拥有者ID |
itemid | number | 物品配置id |
itemnum | number | 物品数量 |
x | number | 掉落x坐标 |
y | number | 掉落y坐标 |
range | number | 掉落范围 |
- | - | - |
ret:
boolean
是否成功示例:
function isc_test_scene:drop_item()
local obj = edi.player:owner(module.player)
local owneruuid = edi.object:get_uuid(obj)
local scene = edi.object:get_scene(obj)
local item_id = 1001
local bRet = edi.scene:drop_item(scene, owneruuid, item_id, 1, 25, 25, 5)
if bRet then
LOGI("isc_test_scene drop_item 场景中掉落物品成功")
end
end