SL:GetMetaValue 详细介绍 所有参数
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-13 21:30:53 |
👁️ 阅读: 10
`SL:GetMetaValue` 是996引擎中用于获取各种游戏数据和系统信息的核心函数。根据浮生梦老师前端课程内容,该函数的参数格式如下:
```lua
-- 基本语法
local value = SL:GetMetaValue(key, param1, param2, ...)
```
**参数说明:**
- **key** (字符串):必须参数,指定要获取的数据类型
- **param1, param2...** (可选):根据key的不同,可能需要额外的标识参数
**常用key参数示例:**
1. **系统信息类:**
```lua
local screenW = SL:GetMetaValue("SCREEN_WIDTH") -- 屏幕宽度(像素)
local screenH = SL:GetMetaValue("SCREEN_HEIGHT") -- 屏幕高度(像素)
local heroID = SL:GetMetaValue("HERO_ID") -- 玩家自身ID
local isPC = SL:GetMetaValue("IS_PC_PLAY_MODE") -- 是否PC模式
local winMode = SL:GetMetaValue("WINPLAYMODE") -- 窗口模式
local petAlive = SL:GetMetaValue("PET_ALIVE") -- 宠物是否存活
```
2. **游戏数据类:**
```lua
-- 带参数的情况
local gameData = SL:GetMetaValue("GAME_DATA", "showFewHp") -- 获取游戏设置
local setting = SL:GetMetaValue("SETTING_ENABLED", 34) -- 获取设置项状态
local mapForbid = SL:GetMetaValue("MAP_FORBID_LEVEL_AND_JOB") -- 地图是否禁止显示等级职业
```
3. **角色/对象数据类:**
```lua
-- 需要对象ID作为参数
local actorData = SL:GetMetaValue("ACTOR_DATA", actorID) -- 获取角色数据
local actorName = SL:GetMetaValue("ACTOR_NAME", target) -- 获取角色名称
local actorLevel = SL:GetMetaValue("ACTOR_LEVEL", target) -- 获取角色等级
local ownerName = SL:GetMetaValue("ACTOR_OWNER_NAME", target) -- 获取拥有者名称
local posX = SL:GetMetaValue("ACTOR_POSITION_X", playerID) -- 获取X坐标
local posY = SL:GetMetaValue("ACTOR_POSITION_Y", playerID) -- 获取Y坐标
```
4. **设置/配置类:**
```lua
-- 拾取设置相关
local pickValue = SL:GetMetaValue("SETTING_PICK_VALUE", index) -- 获取拾取设置值
local groupValue = SL:GetMetaValue("SETTING_PICK_GROUP_VALUE", groupID) -- 获取组拾取设置
local canSet = SL:GetMetaValue("SETTING_IS_ITEM_PICK_CAN_SET", index) -- 是否可设置
-- 属性相关
local attValue = SL:GetMetaValue("ATT_BY_TYPE", 230) -- 获取属性值(230为属性类型)
```
5. **物品数据类:**
```lua
local itemName = SL:GetMetaValue("ITEM_NAME", itemIndex) -- 获取物品名称
```
**使用注意事项:**
1. 每个key都有特定的参数要求,不能混用
2. 有些key只需要一个参数,有些需要多个参数
3. 获取不到数据时通常返回nil或默认值
4. 参数类型必须正确,否则可能获取失败
**错误示例:**
```lua
-- 错误:SCREEN_WIDTH不需要额外参数
local width = SL:GetMetaValue("SCREEN_WIDTH", 123) -- 错误用法
-- 错误:ACTOR_DATA必须提供角色ID
local data = SL:GetMetaValue("ACTOR_DATA") -- 缺少必要参数
```
这个函数是前端开发中最常用的数据获取接口,正确理解每个key的参数要求是编写稳定功能的关键。
← 返回问答库