跳到主要内容

生物

是否是生物 is_creature

  • 玩家(player)、怪物(monster)、npc、宠物(pet)都是生物对象

  • args:

名字类型说明、描述
objuserdata对象
---
  • ret: boolean 是否

  • 示例:

function isc_test_creature:is_creature()
local obj = edi.player:owner(module.player)
LOGI("玩家是生物对象: " .. tostring(edi.creature:is_creature(obj)))
end

获取主人 get_master

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
---
  • ret: userdata object对象(转换失败为nil)

获取等级 get_level

  • 目前只提供了玩家、怪物的等级、其余默认为1

  • args:

名字类型说明、描述
creatureuserdata对象
---
  • ret: integer 等级(默认都是1级)

  • 示例:

function isc_test_creature:get_level()
local obj = edi.player:owner(module.player)
local creature = edi.creature:cast(obj)
LOGI("玩家: " .. edi.player:get_name(obj) .. " 当前等级是:" .. edi.creature:get_level(creature))
end

获取名字 get_name

  • 目前只提供了玩家、怪物、npc的等级、其余默认为''

  • args:

名字类型说明、描述
creatureuserdata对象
---
  • ret: string 名字

获得最大hp max_hp

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
---
  • ret: number 最大hp

  • 示例:

function isc_test_creature:max_hp()
local obj = edi.player:owner(module.player)
LOGI("玩家: " .. edi.player:get_name(obj) .. " 最大血量是:" .. edi.creature:max_hp(obj))
end

获得当前hp curr_hp

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
---
  • ret: number 当前hp

  • 示例:

function isc_test_creature:curr_hp()
local obj = edi.player:owner(module.player)
LOGI("玩家: " .. edi.player:get_name(obj) .. " 当前血量是:" .. edi.creature:curr_hp(obj))
end

获得指定属性值 get_attr

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
attr_idnumber属性id(attribute.xlsx表,对应attrDef.lua的AttrDef枚举, attr_id需1000以内)
---
  • ret: number 属性值

设置属性值 set_attr

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
attr_idnumber属性id(attribute.xlsx表,对应attrDef.lua的AttrDef枚举, attr_id需1000以内)
valnumber属性值
---
  • ret: boolean 是否设置成功

修改属性值 change_attr

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
attr_idnumber属性id(attribute.xlsx表,对应attrDef.lua的AttrDef枚举, attr_id需1000以内)
valnumber属性值
---
  • ret: boolean 是否修改成功

是否有指定id的buff has_buff

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
buff_idnumberbuff配置id (buff.xlsx id)
---
  • ret: boolean 是否

  • 示例:

function isc_test_creature:has_buff()
-- see isc_test_creature:add_buff
end

添加指定id的buff add_buff

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
buff_idnumberbuff配置id(buff.xlsx id)
life_msecsnumber时间(毫秒)
releaseruserdata释放者
---
  • ret: boolean 是否成功

  • 示例:

function isc_test_creature:add_buff()
local obj = edi.player:owner(module.player)
local creature = edi.creature:cast(obj)
-- 添加:狂暴之力-1级
edi.creature:add_buff(creature, 10000066, 20 * 1000, creature)

LOGI("玩家: " .. edi.player:get_name(obj) .. " 有狂暴之力buff: " .. tostring(edi.creature:has_buff(creature, 10000066)))
end

删除指定id的buff del_buff

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
buff_idnumberbuff配置id(buff.xlsx id)
---
  • ret: boolean 是否成功

  • 示例:

function isc_test_creature:del_buff()
local obj = edi.player:owner(module.player)
local creature = edi.creature:cast(obj)

-- 虚弱1级BUFF
edi.creature:add_buff(creature, 10000126, 5 * 1000, creature)
-- 迷魂BUFF1级
edi.creature:add_buff(creature, 10000135, 5 * 1000, creature)

LOGI("添加之后有: " .. tostring(edi.creature:has_buff(creature, 10000126)))
LOGI("添加之后有: " .. tostring(edi.creature:has_buff(creature, 10000135)))

edi.creature:del_buff(creature, 10000126)

LOGI("删除之后有: " .. tostring(edi.creature:has_buff(creature, 10000126)))
LOGI("删除之后有: " .. tostring(edi.creature:has_buff(creature, 10000135)))
end

删除指定类型的buff clear_buff

  • args:
名字类型说明、描述
creatureuserdata生物(player,monster,pet,npc)
buff_typenumberbuff配置type(buff.xlsx type)
---
  • ret: 无

  • 示例:

function isc_test_creature:clear_buff()
local obj = edi.player:owner(module.player)
local creature = edi.creature:cast(obj)

-- 虚弱1级BUFF
edi.creature:add_buff(creature, 10000126, 5 * 1000, creature)
-- 迷魂BUFF1级
edi.creature:add_buff(creature, 10000135, 5 * 1000, creature)
-- 狂暴之力-1级
edi.creature:add_buff(creature, 10000066, 5 * 1000, creature)

LOGI("添加之后有: " .. tostring(edi.creature:has_buff(creature, 10000126)))
LOGI("添加之后有: " .. tostring(edi.creature:has_buff(creature, 10000135)))
LOGI("添加之后有: " .. tostring(edi.creature:has_buff(creature, 10000066)))

edi.creature:clear_buff(creature, 10)

LOGI("清理之后有: " .. tostring(edi.creature:has_buff(creature, 10000126)))
LOGI("清理之后有: " .. tostring(edi.creature:has_buff(creature, 10000135)))
LOGI("清理之后有: " .. tostring(edi.creature:has_buff(creature, 10000066)))
end