npc
是否是npc is_npc
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
obj | userdata | 对象 |
- | - | - |
ret:
boolean
是否示例:
function isc_test_npc:is_npc()
edi.scene:transfer_id(module.player, 1, -1, -1)
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_npc | bit_player)
for _, object in pairs(objects) do
LOGI("isc test: " .. edi.object:get_name(object) .. " is_npc? " .. tostring(edi.npc:is_npc(object)))
end
end
获得npc配置id get_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
- | - | - |
ret:
number
配置id(npc_cs.xlsx nMetaId)示例:
function isc_test_npc:get_id()
edi.scene:transfer_id(module.player, 1, -1, -1)
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_npc)
for _, object in pairs(objects) do
local npc = edi.npc:cast(object)
LOGI("isc test: " .. edi.npc:get_id(npc))
end
end
获得npc唯一id get_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
- | - | - |
ret:
number
唯一id示例:
function isc_test_npc:get_uuid()
edi.scene:transfer_id(module.player, 1, -1, -1)
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_npc)
for _, object in pairs(objects) do
local npc = edi.npc:cast(object)
LOGI("isc test: " .. edi.npc:get_uuid(npc))
end
end
获得npc名字 get_name
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
- | - | - |
ret:
string
名字示例:
function isc_test_npc:get_name()
edi.scene:transfer_id(module.player, 1, -1, -1)
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_npc)
for _, object in pairs(objects) do
local npc = edi.npc:cast(object)
LOGI("isc test: " .. edi.npc:get_name(npc))
end
end
设置npc特效 set_effect
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
effect_id | number | 特效编号 |
- | - | - |
ret: 无
示例:
function isc_test_npc:set_effect()
edi.scene:transfer_id(module.player, 1, -1, -1)
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_npc)
for _, object in pairs(objects) do
local npc = edi.npc:cast(object)
-- todo: 纯特效绑定待开发
edi.npc:set_effect(npc, 999)
edi.object:refresh_appear(object)
LOGI("isc test: npc effect: " .. edi.npc:get_name(npc) .. " effect: " .. edi.npc:get_effect(npc))
break
end
end
获得npc特效 get_effect
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
- | - | - |
ret:
number
特效编号示例:
function isc_test_npc:get_effect()
-- see isc_test_npc:set_effect
end
根据配置id查找npc get_by_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
id | number | 配置id(npc_cs.xlsx nMetaId) |
- | - | - |
ret:
userdata
npc示例:
function isc_test_npc:get_by_id()
edi.scene:transfer_id(module.player, 1, -1, -1)
-- 找新人大使
local npc = edi.npc:get_by_id(201)
if npc then
LOGI("isc test: " .. edi.npc:get_name(npc))
end
end
根据唯一id查找npc get_by_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
uuid | number | 唯一id |
- | - | - |
ret:
userdata
npc示例:
function isc_test_npc:get_by_uuid()
edi.scene:transfer_id(module.player, 1, -1, -1)
-- 找新人大使
local npc = edi.npc:get_by_id(201)
if npc then
local uuid = edi.npc:get_uuid(npc)
local same_npc = edi.npc:get_by_uuid(uuid)
LOGI("isc test: " .. edi.npc:get_name(same_npc))
end
end
获得npc与玩家的距离(不在同一场景返回-1) get_distance
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
player | userdata | 玩家 |
- | - | - |
ret:
number
距离示例:
function isc_test_npc:get_distance()
edi.scene:transfer_id(module.player, 1, -1, -1)
-- 先找到新人大使
local npc = edi.npc:get_by_id(201)
if npc then
LOGI("isc test: " .. edi.npc:get_distance(npc, module.player))
end
end
获取墓碑怪npc倒计时时间戳 get_tomb_check_time
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
npc | userdata | npc |
- | - | - |
ret:
number
倒计时时间戳(ms)示例:
function isc_test_npc:get_tomb_check_time()
local npc = edi.npc:get_by_id(6000)
if npc then
local time = edi.npc:get_tomb_check_time(npc)
LOGI("墓碑怪npc倒计时时间戳: ".. time)
end
end