Skip to content

生物模块管理接口 Monster ​

具体函数名及描述如下:

序号函数名函数描述
1GetActorID(...)获取生物类型ID
2GetActorName(...)获取生物类型名称
3ReplaceActor(...)替换生物
4GetMonsterDefName(...)获取生物名称
5GetMonsterDefLevelExp(...)获取击杀掉落经验
6SetMonsterDefLevelExp(...)设置击杀掉落经验
7ChangeAI(...)切换AI行为树
8CanSee(...)怪物是否可见目标
9GetDropItemInfo(...)获取生物的掉落物信息
10SetTameTarget(...)使生物被指定对象驯服
11RandomActorID(...)随机获取生物类型ID
12GetTamedOwnerID(...)获取驯养主ID
13GetFacade(...)获取生物外观
14GetTags(...)获取生物标签组

GetActorID ​

  • 参数及类型:
  • 返回值及类型:
    • actorid:number / nil 生物defId
  • 该方法的其他说明: 获取生物类型ID
  • 具体使用案例如下:
lua
        local result = Monster:GetActorID(objId)

GetActorName ​

  • 参数及类型:
  • 返回值及类型:
    • name:string / nil 生物类型名称
  • 该方法的其他说明: 获取生物类型名称
  • 具体使用案例如下:
lua
    local actorName = objId and Monster:GetActorName(objId)

ReplaceActor ​

  • 参数及类型:
    • objidSrc:number 源对象ID
    • actorid:number / string 目标生物defId或资源id
    • replacehp:bool / nil 是否替换血量
  • 返回值及类型:
    • ret:number / nil 替换后的生物objid
  • 该方法的其他说明: 将源生物替换为目标类型生物,并同步队伍/图文信息/变量引用(可选同步血量比例)
  • 具体使用案例如下:
lua
    local newObjId = objId and Monster:ReplaceActor(objId, 3812)

GetMonsterDefName ​

  • 参数及类型:
  • 返回值及类型:
    • name:string / nil 生物类型名字
  • 该方法的其他说明: 获取生物名称
  • 具体使用案例如下:
lua
        local result = Monster:GetMonsterDefName(3400)

GetMonsterDefLevelExp ​

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取击杀生物的掉落经验
  • 具体使用案例如下:
lua
    local levelExp = Monster:GetMonsterDefLevelExp(3400)

SetMonsterDefLevelExp ​

  • 参数及类型:
  • 返回值及类型:
    • ret:bool是否成功
  • 该方法的其他说明: 设置击杀生物的掉落经验
  • 具体使用案例如下:
lua
    local result = Monster:SetMonsterDefLevelExp(3400, 100)

ChangeAI ​

  • 参数及类型:
  • 返回值及类型:
    • ret:bool是否成功
  • 该方法的其他说明: 切换生物AI行为树
  • 具体使用案例如下:
lua
        -- treeId行为树资源 ID。

        local result = Monster:ChangeAI(objId, treeId)

CanSee ​

  • 参数及类型:
    • objid:number 怪物对象ID
    • targetObjid:number 目标对象ID
  • 返回值及类型:
    • result:bool是否可见
  • 该方法的其他说明: 判断怪物是否能看见目标
  • 具体使用案例如下:
lua
    local isSuccess = objId and Monster:CanSee(objId, Player:GetHostUin())

GetDropItemInfo ​

  • 参数及类型:
  • 返回值及类型:
    • ret:table / nil 掉落物信息数组({itemId,num,odds})
  • 该方法的其他说明: 获取生物的掉落物信息列表(道具ID/数量/概率)
  • 具体使用案例如下:
lua
    local dropInfos = Monster:GetDropItemInfo(3400)

    if dropInfos then

        for i, v in ipairs(dropInfos) do

            print("掉落物信息:道具ID,数量,概率", v[1], v[2], v[3])

        end

    end

SetTameTarget ​

  • 参数及类型:
  • 返回值及类型:
    • ret:bool是否成功
  • 该方法的其他说明: 使生物被指定对象驯服
  • 具体使用案例如下:
lua
    -- 设置生物被房主驯服

    local result = objId and Monster:SetTameTarget(objId, Player:GetHostUin())

RandomActorID ​

  • 参数及类型: 无
  • 返回值及类型:
    • ret:number / nil 随机生物类型ID
  • 该方法的其他说明: 从可触发类型的生物定义中随机取一个生物类型id
  • 具体使用案例如下:
lua
    local actorTypeId = Monster:RandomActorID()

GetTamedOwnerID ​

  • 参数及类型:
  • 返回值及类型:
    • ownerId:number / nil 驯养主对象ID
  • 该方法的其他说明: 获取生物的驯养主对象ID
  • 具体使用案例如下:
lua
    local ownerID = objId and Monster:GetTamedOwnerID(objId)

GetFacade ​

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 根据生物类型id或预制ID生成外观名(用于UI/选择器显示,如果是prefab资源会带有子部件信息,选择器选择不带子部件信息)
  • 具体使用案例如下:
lua
    -- 官方默认生物示例

    local facade1 = Monster:GetFacade(3400)

    if facade1 == nil then

        print("facade1 is nil")

    end

    -- 自定义生物预制示例

    local facade2 = Monster:GetFacade("r1_7495945378073298954_22931")

    if facade2 == nil then

        print("facade2 is nil")

    end

GetTags ​

  • 参数及类型:
  • 返回值及类型:
    • ret:table / nil 标签组
  • 该方法的其他说明: 获取生物定义中的标签组
  • 具体使用案例如下:
lua
    local actorid = "r1_7569576687042842408_36547"

    local tags = Monster:GetTags(actorid)

    if tags then

        print("生物定义中的标签:", tags)

    end