Lua接口/场景查询:修订间差异
来自雪舞天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| (未显示同一用户的2个中间版本) | |||
| 第1行: | 第1行: | ||
__NOTOC__ | __NOTOC__ | ||
<div class="lua-reference | <div class="lua-reference"> | ||
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] | [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] | ||
| 第6行: | 第6行: | ||
== 基础信息 == | == 基础信息 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetSceneName|GetSceneName]] | |||
| <code>sceneId</code> → 场景名称;不存在返回空串。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetSceneType|LuaFnGetSceneType]] | |||
| <code>sceneId</code> → 场景类型(见 SceneInfo.ini 的 Type 字段)。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetSceneClientResID|LuaFnGetSceneClientResID]] | |||
| <code>sceneId</code> → 客户端资源编号;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetWorldID|LuaFnGetWorldID]] | |||
| <code>()</code> → 当前游戏世界编号(无参);失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/GetSceneName|GetSceneName]] 不存在时返回 | [[Lua接口/服务端/GetSceneName|GetSceneName]] 不存在时返回'''空串''',不是 -1;[[Lua接口/服务端/LuaFnGetWorldID|LuaFnGetWorldID]] 不接受参数。 | ||
== 安全等级 == | == 安全等级 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetSceneSafeLevel|LuaFnGetSceneSafeLevel]] | |||
| <code>sceneId</code> → 安全等级限制;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnSetSceneSafeLevel|LuaFnSetSceneSafeLevel]] | |||
| <code>sceneId, safeLevel</code>;无返回值。 | |||
|} | |} | ||
[[Lua接口/服务端/LuaFnSetSceneSafeLevel|LuaFnSetSceneSafeLevel]] 无返回值,需要确认生效应改读 [[Lua接口/服务端/LuaFnGetSceneSafeLevel|LuaFnGetSceneSafeLevel]] 回比。 | [[Lua接口/服务端/LuaFnSetSceneSafeLevel|LuaFnSetSceneSafeLevel]] 无返回值,需要确认生效应改读 [[Lua接口/服务端/LuaFnGetSceneSafeLevel|LuaFnGetSceneSafeLevel]] 回比。 | ||
== 天气 == | == 天气 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetSceneWeather|LuaFnGetSceneWeather]] | |||
| <code>sceneId</code> → 当前天气编号;未设置返回 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnSetSceneWeather|LuaFnSetSceneWeather]] | |||
| <code>sceneId, weather, leftTime</code>;无返回值。leftTime 为剩余毫秒。 | |||
|} | |} | ||
[[Lua接口/服务端/LuaFnSetSceneWeather|LuaFnSetSceneWeather]] 无返回值,第三个参数 leftTime 是持续时间(毫秒)。 | [[Lua接口/服务端/LuaFnSetSceneWeather|LuaFnSetSceneWeather]] 无返回值,第三个参数 leftTime 是持续时间(毫秒)。 | ||
== 场景属性 == | == 场景属性 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetSceneAttr_CanCreateRascalKiller|LuaFnGetSceneAttr_CanCreateRascalKiller]] | |||
| <code>sceneId</code> → 是否允许创建惩罚恶人 NPC;缺配置返回 0。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetSceneAttr_RandomMonsterDataID|LuaFnGetSceneAttr_RandomMonsterDataID]] | |||
| <code>sceneId</code> → 候选怪物中随机一个数据编号。 | |||
|} | |} | ||
[[Lua接口/服务端/LuaFnGetSceneAttr_CanCreateRascalKiller|LuaFnGetSceneAttr_CanCreateRascalKiller]] 缺少配置时返回 0,与失败 -1 不同。 | [[Lua接口/服务端/LuaFnGetSceneAttr_CanCreateRascalKiller|LuaFnGetSceneAttr_CanCreateRascalKiller]] 缺少配置时返回 0,与失败 -1 不同。 | ||
== 对象有效性 == | == 对象有效性 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnIsObjValid|LuaFnIsObjValid]] | |||
| <code>sceneId, objId</code> → 对象是否存在;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnIsCharacterLiving|LuaFnIsCharacterLiving]] | |||
| <code>sceneId, objId</code> → 对象是否存活;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnCheckCharacterState|LuaFnCheckCharacterState]] | |||
| <code>sceneId, objId, checkActiveState, checkAliveState</code> → 检查结果;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/LuaFnCheckCharacterState|LuaFnCheckCharacterState]] 需要 4 个参数,可按需分别检查激活状态与存活状态。 | [[Lua接口/服务端/LuaFnCheckCharacterState|LuaFnCheckCharacterState]] 需要 4 个参数,可按需分别检查激活状态与存活状态。 | ||
== 场景内对象遍历 == | == 场景内对象遍历 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetMonsterCount|GetMonsterCount]] | |||
| <code>sceneId</code> → 场景内怪物数量;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetMonsterObjID|GetMonsterObjID]] | |||
| <code>sceneId, nIndex</code> → 指定索引怪物的对象 ID;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetCopyScene_HumanCount|LuaFnGetCopyScene_HumanCount]] | |||
| <code>sceneId</code> → 场景内玩家数量;0 或 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetCopyScene_HumanObjId|LuaFnGetCopyScene_HumanObjId]] | |||
| <code>sceneId, uIndex</code> → 指定索引玩家的对象 ID;失败 -1。 | |||
|} | |} | ||
先取数量再按索引遍历对象 ID,索引从 0 开始。数量为 0 时不要进入遍历。 | 先取数量再按索引遍历对象 ID,索引从 0 开始。数量为 0 时不要进入遍历。 | ||
== 读取场景名称与类型 == | == 读取场景名称与类型 == | ||
<pre | <pre>local name = GetSceneName(sceneId) | ||
if type(name) == "string" and name ~= "" then | if type(name) == "string" and name ~= "" then | ||
local sceneType = LuaFnGetSceneType(sceneId) | local sceneType = LuaFnGetSceneType(sceneId) | ||
-- 取得场景名称与类型 | -- 取得场景名称与类型 | ||
end</pre> | end</pre> | ||
[[Lua接口/服务端/GetSceneName|GetSceneName]] 不存在返回空串,用 <code | [[Lua接口/服务端/GetSceneName|GetSceneName]] 不存在返回空串,用 <code>name ~= ""</code> 判断。 | ||
== 遍历场景怪物 == | == 遍历场景怪物 == | ||
<pre | <pre>local count = GetMonsterCount(sceneId) | ||
if type(count) == "number" and count ~= -1 then | if type(count) == "number" and count ~= -1 then | ||
local objId = GetMonsterObjID(sceneId, 0) | local objId = GetMonsterObjID(sceneId, 0) | ||
| 第146行: | 第146行: | ||
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | ||
</div> | </div> | ||
2026年10月26日 (一) 17:29的最新版本
查询场景的名称、类型、资源、安全等级、天气与场景内对象。sceneId 由当前回调提供,代表调用所在场景。
基础信息
| 接口 | 参数与返回 |
|---|---|
| GetSceneName | sceneId → 场景名称;不存在返回空串。
|
| LuaFnGetSceneType | sceneId → 场景类型(见 SceneInfo.ini 的 Type 字段)。
|
| LuaFnGetSceneClientResID | sceneId → 客户端资源编号;失败 -1。
|
| LuaFnGetWorldID | () → 当前游戏世界编号(无参);失败 -1。
|
GetSceneName 不存在时返回空串,不是 -1;LuaFnGetWorldID 不接受参数。
安全等级
| 接口 | 参数与返回 |
|---|---|
| LuaFnGetSceneSafeLevel | sceneId → 安全等级限制;失败 -1。
|
| LuaFnSetSceneSafeLevel | sceneId, safeLevel;无返回值。
|
LuaFnSetSceneSafeLevel 无返回值,需要确认生效应改读 LuaFnGetSceneSafeLevel 回比。
天气
| 接口 | 参数与返回 |
|---|---|
| LuaFnGetSceneWeather | sceneId → 当前天气编号;未设置返回 -1。
|
| LuaFnSetSceneWeather | sceneId, weather, leftTime;无返回值。leftTime 为剩余毫秒。
|
LuaFnSetSceneWeather 无返回值,第三个参数 leftTime 是持续时间(毫秒)。
场景属性
| 接口 | 参数与返回 |
|---|---|
| LuaFnGetSceneAttr_CanCreateRascalKiller | sceneId → 是否允许创建惩罚恶人 NPC;缺配置返回 0。
|
| LuaFnGetSceneAttr_RandomMonsterDataID | sceneId → 候选怪物中随机一个数据编号。
|
LuaFnGetSceneAttr_CanCreateRascalKiller 缺少配置时返回 0,与失败 -1 不同。
对象有效性
| 接口 | 参数与返回 |
|---|---|
| LuaFnIsObjValid | sceneId, objId → 对象是否存在;失败 -1。
|
| LuaFnIsCharacterLiving | sceneId, objId → 对象是否存活;失败 -1。
|
| LuaFnCheckCharacterState | sceneId, objId, checkActiveState, checkAliveState → 检查结果;失败 -1。
|
LuaFnCheckCharacterState 需要 4 个参数,可按需分别检查激活状态与存活状态。
场景内对象遍历
| 接口 | 参数与返回 |
|---|---|
| GetMonsterCount | sceneId → 场景内怪物数量;失败 -1。
|
| GetMonsterObjID | sceneId, nIndex → 指定索引怪物的对象 ID;失败 -1。
|
| LuaFnGetCopyScene_HumanCount | sceneId → 场景内玩家数量;0 或 -1。
|
| LuaFnGetCopyScene_HumanObjId | sceneId, uIndex → 指定索引玩家的对象 ID;失败 -1。
|
先取数量再按索引遍历对象 ID,索引从 0 开始。数量为 0 时不要进入遍历。
读取场景名称与类型
local name = GetSceneName(sceneId)
if type(name) == "string" and name ~= "" then
local sceneType = LuaFnGetSceneType(sceneId)
-- 取得场景名称与类型
end
GetSceneName 不存在返回空串,用 name ~= "" 判断。
遍历场景怪物
local count = GetMonsterCount(sceneId)
if type(count) == "number" and count ~= -1 then
local objId = GetMonsterObjID(sceneId, 0)
end
GetMonsterCount 失败返回 -1,先判类型再排除 -1 再遍历。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID