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 actorid = Monster:GetActorID(objid)

GetActorName

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

ReplaceActor

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

GetMonsterDefName

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

GetMonsterDefLevelExp

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

SetMonsterDefLevelExp

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

ChangeAI

  • 参数及类型:
  • 返回值及类型:
    • ret:bool是否成功
  • 该方法的其他说明: 切换生物AI行为树
  • 具体使用案例如下:
lua
local ret = Monster:ChangeAI(objid, treeid)

CanSee

  • 参数及类型:
    • objid:number 怪物对象ID
    • targetObjid:number 目标对象ID
  • 返回值及类型:
    • result:bool是否可见
  • 该方法的其他说明: 判断怪物是否能看见目标
  • 具体使用案例如下:
lua
    local isSuccess = 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
    --设置生物A被房主驯服

    local result = Monster:SetTameTarget(objIdA, Player:GetHostUin())

RandomActorID

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

GetTamedOwnerID

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

GetFacade

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

GetTags

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