查看“︁Lua接口/怪物相关”︁的源代码
来自天龙知识库
←
Lua接口/怪物相关
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
__NOTOC__ <div class="lua-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;"> [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] 查询、创建、删除怪物,读写怪物属性、AI 参数、编组队形与巡逻路径。怪物用对象编号(objId / monsterId)或脚本缓存索引定位。 == 查询怪物 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterCount|GetMonsterCount]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId</code> → 场景内怪物数量;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterObjID|GetMonsterObjID]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nIndex</code> → 指定索引怪物对象 ID;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterWorldX|GetMonsterWorldX]] / [[Lua接口/服务端/GetMonsterWorldZ|GetMonsterWorldZ]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterIndex</code> → 怪物 X / Z 坐标;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterHP|GetMonsterHP]] / [[Lua接口/服务端/GetMonsterMaxHP|GetMonsterMaxHP]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterIndex</code> → 当前 / 上限生命;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterCurEnemy|GetMonsterCurEnemy]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterId</code> → 当前仇恨目标对象编号;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterRespawnPos|GetMonsterRespawnPos]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 出生点 X、Z;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterIdByName|GetMonsterIdByName]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, name</code> → 首个名称前缀匹配的怪物对象 ID;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMonsterNamebyDataId|GetMonsterNamebyDataId]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">monsterDataId</code> → 怪物模板名称;无效模板返回空串。 |} 注意参数区分两种定位方式:[[Lua接口/服务端/GetMonsterWorldX|GetMonsterWorldX]]、[[Lua接口/服务端/GetMonsterHP|GetMonsterHP]] 用**脚本缓存索引(monsterIndex)**,[[Lua接口/服务端/GetMonsterCurEnemy|GetMonsterCurEnemy]]、[[Lua接口/服务端/GetMonsterRespawnPos|GetMonsterRespawnPos]] 用**对象编号(monsterId / selfId)**。[[Lua接口/服务端/GetMonsterRespawnPos|GetMonsterRespawnPos]] 返回两个值。 == 创建与删除 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnCreateMonster|LuaFnCreateMonster]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">SceneID, MonsterType, x, z, iAIType, iAIScript, ScriptID</code> → 对象编号;失败 -1。7 个参数。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnDeleteMonster|LuaFnDeleteMonster]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">SceneID, ObjID</code>;无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/CreatePetOnScene|CreatePetOnScene]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nPetDataID, x, z</code>;创建无主宠物;记录宠物审计。 |} [[Lua接口/服务端/LuaFnCreateMonster|LuaFnCreateMonster]] 需要 7 个参数(含 AI 类型、AI 脚本、脚本编号)。[[Lua接口/服务端/LuaFnDeleteMonster|LuaFnDeleteMonster]] 无返回值。 == 属性与 AI == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnSetMonsterExp|LuaFnSetMonsterExp]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, npcId, exp</code> → 固定返回 -1(不能据此判断失败)。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnDisableMonsterDropBox|LuaFnDisableMonsterDropBox]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, npcId</code> → 固定返回 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetNpcCamp|GetNpcCamp]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, npcId</code> → 当前阵营;部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetNpcCamp|SetNpcCamp]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, npcId, campId</code>;无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetNPCAIType|GetNPCAIType]] / [[Lua接口/服务端/SetNPCAIType|SetNPCAIType]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, npcId[, aiType]</code> → AI 类型;SetNPCAIType 固定返回 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetAIScriptID|GetAIScriptID]] / [[Lua接口/服务端/SetAIScriptID|SetAIScriptID]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId[, aiScriptId]</code> → 扩展 AI 脚本编号;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/NpcToIdle|NpcToIdle]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 返回值;失败 -1。 |} [[Lua接口/服务端/LuaFnSetMonsterExp|LuaFnSetMonsterExp]]、[[Lua接口/服务端/LuaFnDisableMonsterDropBox|LuaFnDisableMonsterDropBox]]、[[Lua接口/服务端/SetNPCAIType|SetNPCAIType]] 都**固定返回 -1**,是「无意义返回值」,不能用来判断是否成功。 == 怪物 AI 参数 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/MonsterAI_GetIntParamByIndex|MonsterAI_GetIntParamByIndex]] / [[Lua接口/服务端/MonsterAI_SetIntParamByIndex|MonsterAI_SetIntParamByIndex]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, nIndex[, nValue]</code> → 整数参数。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/MonsterAI_GetObjIDParamByIndex|MonsterAI_GetObjIDParamByIndex]] / [[Lua接口/服务端/MonsterAI_SetObjIDParamByIndex|MonsterAI_SetObjIDParamByIndex]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, nIndex[, nID]</code> → 对象编号参数。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/MonsterAI_GetBoolParamByIndex|MonsterAI_GetBoolParamByIndex]] / [[Lua接口/服务端/MonsterAI_SetBoolParamByIndex|MonsterAI_SetBoolParamByIndex]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, nIndex[, bFlag]</code> → 布尔参数(大于零为真)。 |} 这组是怪物 Lua AI 脚本内部的参数存取,Get 部分分支不返回值。 == 编组与队形 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AllocateMonsterGroup|AllocateMonsterGroup]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId</code> → 编组编号;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/ReleaseMonsterGroup|ReleaseMonsterGroup]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, groupId</code> → 返回值;失败 -1。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddGroupMember|AddGroupMember]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, groupId, monsterId, i, j</code> → 返回值;加入 6x3 队形位置。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddGroupLeader|AddGroupLeader]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, groupId, monsterId</code> → 返回值;首领固定占 [0][1]。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/RefixPosOfGroupMember|RefixPosOfGroupMember]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, groupId, leaderId</code> → 返回值;校正全部队员位置。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetIntervalDistOfGroupMember|SetIntervalDistOfGroupMember]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, groupId, interval</code> → 返回值;设置相邻位置距离。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetMonsterGroupID|SetMonsterGroupID]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, groupId</code> → 部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetPatrolId|GetPatrolId]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 巡逻路径编号;部分分支无返回值。 |} 编组队形是 6 列 3 行(6x3),[[Lua接口/服务端/AddGroupMember|AddGroupMember]] 的 i、j 是队形行列位置,首领固定占 [0][1]。 == 阵营与对白 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口 ! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetUnitCampID|GetUnitCampID]] / [[Lua接口/服务端/SetUnitCampID|SetUnitCampID]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, unitId[, campId]</code> → 脚本阵营或基础阵营。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/MonsterTalk|MonsterTalk]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterId, sceneName, msg</code> → 部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnNpcChat|LuaFnNpcChat]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterId, isSceneBroadcast, msg</code> → 部分分支无返回值。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/PaoPao|PaoPao]] / [[Lua接口/服务端/PaoPaoEx|PaoPaoEx]] | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, npcId[, paoPaoId]</code> → 气泡对白结果;失败 -1。 |} [[Lua接口/服务端/PaoPao|PaoPao]] 触发默认气泡,[[Lua接口/服务端/PaoPaoEx|PaoPaoEx]] 按指定气泡编号触发。 == 遍历并读取怪物 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local count = GetMonsterCount(sceneId) if type(count) == "number" and count ~= -1 then local objId = GetMonsterObjID(sceneId, 0) if type(objId) == "number" and objId ~= -1 then -- 取得首个怪物对象 ID end end</pre> 先取数量再按索引取对象 ID,两者都要排除 -1。 == 创建怪物 == <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local objId = LuaFnCreateMonster(sceneId, monsterType, posX, posZ, aiType, aiScript, scriptId) if type(objId) == "number" and objId ~= -1 then -- 怪物创建成功,objId 为新对象编号 end</pre> [[Lua接口/服务端/LuaFnCreateMonster|LuaFnCreateMonster]] 需要 7 个参数,成功返回对象编号、失败 -1。删除用 [[Lua接口/服务端/LuaFnDeleteMonster|LuaFnDeleteMonster]](无返回值)。 == 相关主题 == * [[Lua接口/角色信息|角色信息]] * [[Lua接口/属性读取与修改|属性读取与修改]] * [[Lua接口/等级与经验|等级与经验]] * [[Lua接口/货币相关|货币相关]] * [[Lua接口/物品查询|物品查询]] * [[Lua接口/物品发放与扣除|物品发放与扣除]] * [[Lua接口/背包空间|背包空间]] * [[Lua接口/装备操作|装备操作]] * [[Lua接口/任务状态|任务状态]] * [[Lua接口/任务变量|任务变量]] * [[Lua接口/NPC对话|NPC 对话]] * [[Lua接口/对话选项|对话选项]] * [[Lua接口/技能相关|技能相关]] * [[Lua接口/心法相关|心法相关]] * [[Lua接口/状态效果|状态效果]] * [[Lua接口/生活技能|生活技能]] * [[Lua接口/珍兽查询|珍兽查询]] * [[Lua接口/珍兽操作|珍兽操作]] * [[Lua接口/场景查询|场景查询]] * [[Lua接口/坐标与传送|坐标与传送]] * [[Lua接口/副本相关|副本相关]] * [[Lua接口/活动相关|活动相关]] * [[Lua接口/时间与计时|时间与计时]] * [[Lua接口/怪物相关|怪物相关]] * [[Lua接口/队伍相关|队伍相关]] * [[Lua接口/帮会相关|帮会相关]] * [[Lua接口/消息与提示|消息与提示]] * [[Lua接口/聊天与公告|聊天与公告]] [[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] <div style="margin-top:20px;padding-top:10px;border-top:1px solid #dbe3e6;color:#657078;font-size:12px;">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div> </div>
返回
Lua接口/怪物相关
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息