首页 欢迎 欢迎来到迷你世界!迷你世界是一个多人联机的3D创意平台,拥有着低门槛、高上限的工具,让不同能力的创作者都能把自己的奇思妙想构建、编辑并分享出来。我们相信大家能在迷你世界里创作出精彩的作品,把幻想变成现实。 在迷你世界中,创作一个属于自己的游戏有很多种方式,除了可视化的触发器之外,迷你世界原版的开发框架可以使用Lua脚本语言进行开发编辑。该类方法针对有一定编程基础的小伙伴,可以对自己的自定义生物、方块、UI、玩法等内容的逻辑进行开发,有着更高的自由度,阅读性,版本控制,可以更好的制作游戏, 我们也提供了完善的API接口给大家使用。建议在Windows PC平台上进行开发,以获得最好的体验。 简单入门 进入3.0地图后,点击右上角图标即可创建一个世界节点的脚本 脚本图标 脚本图标 代码功能非常强大,几乎能控制游戏的任何方面。举几个例子: 1、如何在聊天框打印:你好!迷你世界!(使用前请先将原有编辑器的代码全部删除哦!) local Script = {} -- 组件启动时调用 function Script:OnStart() Chat:SendSystemMsg("你好,迷你世界!") end return Script 代码解读: 是不是很简单,把这段代码贴到脚本中试试吧! 还可以把里面的汉字换成其他的试试 如果想要输出很多句,那就多粘贴几行 2、在坐标:10,8,10的位置刷出一只野萌宝怪物 local Script = {} -- 组件启动时调用 function Script:OnStart() GameObject:CreatePrefab(ObjType.Mob, 3102, 10,8,10) end return Script 代码解读: 野萌宝是游戏中常见的怪物,但是由地图随机刷出的,这一句脚本指令就可以让野萌宝按照指定坐标点刷出了 把代码粘贴到脚本编辑区试试吧,如果不怕危险的话,还可以多刷出一些出来,当然坐标也是可以修改的 代码运行 在使用脚本编辑器之前,你要掌握一些Lua基础知识。每个地图的脚本会在主机端运行,对游戏世界里的各种事件做出反应,并且更新游戏的状态。 游戏状态每隔50毫秒更新一次,这个时间间隔叫做1tick。在每一tick内,游戏会按以下步骤运行: 应用来自玩家设备的更新 应用来自脚本的更新 更新游戏的物理状态 把状态同步给所有脚本,并安排脚本下一次更新 把更新后的状态发送给所有玩家设备 Events 事件 每当引擎发生更改时,事件就会分派到脚本中。可以使用 TriggerEvent 监听这些事件。要监听事件,请使用传入的处理程序作为参数来调用它。 比如一个简单的玩法点草成金:“每当点草块时,把它变成钛合金”,要实现这个玩法需要: ①首先监听事件任意玩家点击; ②事件触发后判断被点击的方块是否为草块; ③如果是,就在被点击的位置创建钛合金块。 像这样,监听事件、进行判断、执行操作是进行玩法创作的基本形式。“监听事件”可以在下面事件列表里查询,“进行判断”可以根据需要自行处理,“执行操作”一般就要用到各种接口了。 每个接口相当于一个小功能,调用之后可以进行各种操作,组合起来就可以实现各种玩法。比如上面例子里,“在被点击的位置创建钛合金块”,我们需要“在指定位置创建指定方块”的功能,通过查询方块管理接口,可以找到: 替换指定坐标处为某方块: result=Block:ReplaceBlock( blockid , x , y , z ,face, color) result=Block:ReplaceBlock(452 , 0, 7 , 0 ) result:true成功 false失败 true blockid:要设置的方块id x,y,z:要设置的坐标 face:方块朝向 color:方块的颜色 452, 0,7,0 可不填 可不填 替换某位置的方块接口 替换(0,0)高度7的位置生成一个钛合金 也就是说,只要调用这个接口,传入钛合金块id和被点击的坐标,就可以把指定坐标的方块设置为钛合金块。 那么如何完成①首先监听事件任意玩家点击;获取“被点击的位置”呢?通过查询方块事件列表: Player.ClickBlock:玩家点击方块时触发 eventobjid:点击方块的玩家迷你号 blockid:被点击的方块id x,y,z:被点击的方块坐标 可以看到,“玩家点击方块”这个事件参数共有{eventobjid,blockid,x,y,z}五个值,其中x、y、z就是我们需要的坐标值,另外还需要blockid来判断被点击的方块是否为石头。迷你里注册事件监听的脚本代码为: ScriptSupportEvent:registerEvent([=[事件名]=],函数名) 比如这里我们需要监听事件“玩家点击方块”,那么就需要将 TriggerEvent.PlayerClickBlock 派发到 self.Player_Click (函数名是任意的): self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.Player_Click) --TriggerEvent.PlayerClickBlock是官方提供的事件监听,可以在wiki中查看更多的事件 --self.Player_Click 是自定义的一个函数名,可以改成其他你喜欢的 然后在组件启用的时候添加监听 -- 组件启动时调用 function Script:OnStart() -- 添加玩家移动事件监听 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.Player_Click) end 接着完成②事件触发后判断被点击的方块是否为草块; **③如果是,就在被点击的位置创建钛合金块。**在定义点击的时候进行判断,如果符合则执行对应效果 -- 定义事件触发时的动作 function Script:Player_Click(event) -- 玩家点击方块时,判断点的是否是草块 if event.blockid == 100 then local success = Block:ReplaceBlock(452, event.x, event.y, event.z) -- Block:ReplaceBlock是官方提供的放置方块方法,可以在wiki中查看更多的方法 -- local success 用来接收Block:ReplaceBlock运行后的结果,可以用来做是否成功放置的判断 -- event.x是上面的官方事件产生的事件参数,可以通过Player_Click(event)中的event.x来获取事件中的x,event.blockid获取事件中的方块类型。event可以叫其他任意名字,例如Player_Click(aaa),获取的时候就是aaa.x。 end end 最后是完整的代码,下面的脚本将会在玩家进入游戏后,监听玩家是否点击草块,如果点击草块则会把草块替换成钛合金(452)。 -- 官方定义的函数,不能修改变动 local Script = {} -- 组件启动时调用 function Script:OnStart() -- 添加玩家点击事件监听 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.Player_Click) --TriggerEvent.PlayerClickBlock是官方提供的事件监听,可以在wiki中查看更多的事件 --self.Player_Click 是自定义的一个函数名,可以改成其他你喜欢的 end -- 定义事件触发时的动作 function Script:Player_Click(event) -- 玩家点击方块时,判断点的是否是草块 if event.blockid == 100 then local success = Block:ReplaceBlock(452, event.x, event.y, event.z) -- Block:ReplaceBlock是官方提供的放置方块方法,可以在wiki中查看更多的方法 -- local success 用来接收Block:ReplaceBlock运行后的结果,可以用来做是否成功放置的判断 end end -- 官方定义的函数,不能修改变动 return Script 完整教程视频 迷你世界常用类介绍 World 世界 world对象是整个迷你世界 API的入口点。它具有设置世界基础玩法、规则的作用。 Block 方块 block可让你修改世界地形。迷你世界的世界地形由一个个方块构建而成。你可以使用Block:PlaceBlock()在指定的世界坐标位置放置一个指定的方块。 Player 玩家 Player 是 迷你世界 世界中具有特殊类型的实体,玩家具有特殊的属性。可以使用 TriggerEvent.GameAnyPlayerEnterGame 捕获玩家进入游戏的事件,或使用 TriggerEvent.GameAnyPlayerLeaveGame 检测玩家离开游戏。 Actor 对象 迷你世界世界中的游戏对象,实体具有模型、变换、物理组件,还有其他的一些常见组件,如粒子特效、运动器、音效等。可以在脚本中调用 GameObject:CreatePrefab()来创建实体。还可以通过调用实体对象身上的 GameObject:Destroy() 来销毁该实体。 组件编辑 进入对象或者世界编辑后,我们可以看到它们身上都挂载了许多组件。这些组件可以控制对象的外观、属性、物理特性、行为逻辑等等,给“舞台”上的“演员”赋予了生命。 官方提供了一些封装好的组件,我们可以通过组件面板直接更改对象的属性。也可以卸载掉一些不需要使用的组件。 如果官方组件不能满足需求,我们也可以通过添加触发器组件/脚本组件来制作新的组件。(对于高手来说,通过把同类型的逻辑封装成组件,可以让我们的代码更加精简易于管理。)如果不了解触发器可以查看 触发器文档 例如:我们制作一个掉落物组件,来设置不同的生物被击败后,掉落不同的物品。 local Script = {} --属性定义 Script.propertys = { varNum = { type = Mini.Number, --定义了一个数值类型的参数 default = 2,--默认值 displayName = "掉落物数值", }, varItem = { type = Mini.Item,-- --定义了一个道具类型的参数 default = 11668,-- 默认值 displayName = "掉落物道具",-- 属性别名 }, } -- 组件启动时调用 function Script:OnStart() -- 监听个体事件 当此对象被击败时触发 self:AddEvent(ObjectEvent.ObjectDie, self.OnObjectDie) -- ObjectEvent.ObjectDie为官方事件,可以在wiki的事件库中查看更多事件 -- self.OnObjectDie 为下方自定义的一个函数 end function Script:OnObjectDie(event) -- 定义此生物死亡时的动作 GameObject:CreatePrefab(ObjType.DropItem, self.varItem, event.x,event.y+1,event.z, self.varNum) -- 预制体类型:ObjType.DropItem 为掉落物,可以在wiki中查看其他类型 -- 掉落物类型:self.varItem从属性面板读取创建的道具类型 -- 事件中的位置: event.x,event.y+1,event.z, event.y+1让创建的高度必死亡的高一格 -- 掉落物数量:self.varNum从属性面板读取创建的掉落物数量 end return Script 完整视频教程 所有自定义的组件,除了在编辑对象时使用之外,还可以在资源背包里统一编辑管理。(此处编辑组件,会影响所有调用了这个组件的对象) 继续学习 接下来你可以继续学习组件的使用,或Lua语言的基础语法,也可以阅读详细的迷你世界API接口,期待你做出精彩的作品。 MOD、组件介绍 1. 什么是MOD MOD(模组)就像是给游戏准备的 “超级补丁”。想象一下,你有一个自己很喜欢的玩具(游戏),但是玩了一段时间后,觉得它还可以有一些新玩法或者新样子。MOD(模组)就是能帮你实现这个想法的东西。 在迷你世界里面,你可以通过模组给游戏添加各种各样的新东西,比如新的物品、方块、生物、地形等,让你有更多的素材去建造和探索。 你还能改变游戏的玩法规则,像把生存模式变得更难或更简单,另外还可以提升游戏的画面效果,让游戏里的世界看起来更漂亮、更真实,比如有更好的光影效果、更精美的材质等。甚至还能为你提供一些实用的工具和功能,比如方便的背包整理、地图导航、物品合成提示等。 多个模组还可以整合到一个地图里,融合成一个定制化的冒险世界。 那MOD是如何通过编辑器制作的呢? 2. 编辑器搭建一个“舞台” 游戏世界是一个舞台,可以把编辑器想象成一个搭建舞台(游戏世界)的工具。 首先,这个舞台有一个很大的空间,这个空间可能有各种各样的天气、时间变化、以及不同的灯光效果等,这个称为**“环境”**。 在这个空间里,你可以放置各种各样的东西,比如角色(像游戏里的英雄、怪物)、道具(武器、药品)、建筑(城堡、房屋)等。这些东西都被称为 游戏**“对象”**。例如,你要制作一个简单的冒险游戏,你可以先在这个 “舞台” 上放置一个代表玩家角色的游戏对象,再放置一些代表敌人的游戏对象,以及一些地牢、城堡、灯笼等作为场景装饰。 **“UI界面”**就像是游戏世界里的一个特殊区域,这个区域是专门为玩家和游戏进行交互而设立的。可以把它看作是一个操作控制台,上面有各种按钮、滑块、输入框等,就像我们生活中电器的遥控器一样。 上述所说的环境、对象、UI界面,对应在迷你世界里是这样的。 3. 组件是演员的技能和装备 每个游戏对象就像一个演员,它们有自己的 “技能” 和 “装备”,这些被称为 “组件”。 比如,对于玩家角色这个游戏对象,它可能有一个物理组件,开启了 “碰撞事件”,这就好比演员有了触觉,能够感知自己什么时候碰到了其他东西。如果玩家角色碰到了敌人,就可以通过这个组件来检测到碰撞,然后触发战斗场景。 通过模型组件,我们可以更改演员的外观以及物品的材质贴图。另外,游戏对象还可以有 触发器组件,这就像是演员的大脑,能够让它按照你编写的规则来行动,比如让玩家角色在按下某个按键时跳跃或者攻击。 4. 触发器、Lua是演员的表演指导 触发器、Lua是工具中非常重要的部分,它就像是给游戏对象(演员)的表演指导。例如,你写了一个逻辑,告诉玩家角色,当按下键盘上的 “W” 键时,就向前移动。这个逻辑会被附加到玩家角色这个游戏对象的 “自定义组件” 上。 而且逻辑还可以控制游戏对象之间的交互。比如,你可以写一个脚本,当玩家角色碰到一个金币道具(另一个游戏对象)时,就把金币的数量加 1,同时让金币消失。这样,通过逻辑,游戏中的各种游戏对象就能够按照你想要的方式进行互动,让游戏变得更加有趣。 5. 世界编辑 点击玩法,我们可以对世界进行基本设定。包括对时间、天气、天空盒、滤镜、音乐音效、生物生成规则、开局设定、重生规则、界面等等基本设置。 另外在资源背包里,仍有一部分内容也属于这个世界的运转规则和资源,我们导入或编辑之后,可以使用触发器或者组件来调用他们。 其中配方和熔炼属于迷你世界冒险里面的特有规则,配方是工作台或者秘银锅等的合成配方配置,而熔炼则是配置冶炼台的可燃烧材料、冶炼材料和熔炼产出。 6. 组件编辑 进入对象或者世界编辑后,我们可以看到它们身上都挂载了许多组件。这些组件可以控制对象的外观、属性、物理特性、行为逻辑等等,给“舞台”上的“演员”赋予了生命。 官方提供了一些封装好的组件,我们可以通过组件面板直接更改对象的属性。也可以卸载掉一些不需要使用的组件。 如果官方组件不能满足需求,我们也可以通过添加触发器组件/脚本组件来制作新的组件。(对于高手来说,通过把同类型的逻辑封装成组件,可以让我们的代码更加精简易于管理。)如果不了解触发器可以查看 触发器文档 例如:我们制作一个掉落物组件,来设置不同的生物被击败后,掉落不同的物品。 local Script = {} --属性定义 Script.propertys = { varNum = { type = Mini.Number, --定义了一个数值类型的参数 default = 2,--默认值 displayName = "掉落物数值", }, varItem = { type = Mini.Item,-- --定义了一个道具类型的参数 default = 11668,-- 默认值 displayName = "掉落物道具",-- 属性别名 }, } -- 组件启动时调用 function Script:OnStart() -- 监听个体事件 当此对象被击败时触发 self:AddEvent(ObjectEvent.ObjectDie, self.OnObjectDie) -- ObjectEvent.ObjectDie为官方事件,可以在wiki的事件库中查看更多事件 -- self.OnObjectDie 为下方自定义的一个函数 end function Script:OnObjectDie(event) -- 定义此生物死亡时的动作 GameObject:CreatePrefab(ObjType.DropItem, self.varItem, event.x,event.y+1,event.z, self.varNum) -- 预制体类型:ObjType.DropItem 为掉落物,可以在wiki中查看其他类型 -- 掉落物类型:self.varItem从属性面板读取创建的道具类型 -- 事件中的位置: event.x,event.y+1,event.z, event.y+1让创建的高度必死亡的高一格 -- 掉落物数量:self.varNum从属性面板读取创建的掉落物数量 end return Script 完整视频教程 所有自定义的组件,除了在编辑对象时使用之外,还可以在资源背包里统一编辑管理。(此处编辑组件,会影响所有调用了这个组件的对象) 接下来,你可以继续学习Lua语言的基础语法,也可以阅读详细的迷你世界API接口。 什么是Lua编程 以下部分内容引用自: https://www.runoob.com/lua/ lua语言简介 概述 Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 特点 轻量级、可扩展,等等 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。 其它特性: 支持面向过程(procedure-oriented)编程和函数式编程(functional programming); 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象; 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持; 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。 应用场景: 游戏开发 独立应用脚本 Web 应用脚本 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench 安全系统,如入侵检测系统 注意: 以下的案例,为了方便演示,都使用Chat:sendSystemMsg接口,把需要查看的信息都输出在游戏的聊天框内! 复制代码到游戏中,可以在聊天框看到反馈。 Lua基本语法 注释 单行注释符: -- -- 这里的内容就不会执行了 注释 多行注释: --[[ 被包含的区域都不会执行 --]] 标识符 什么是标识符: 1. Lua 标示符用于定义一个变量,函数获取其他用户定义的项。 2. 标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。 3. 最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。 4. Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。 5. 因此在 Lua 中 Miniworld 与 miniworld 是两个不同的标示符 标识符 正确写法: mini world abc mini_world a_123 mini521 _mini c mi5ni2 MiNi 关键词 以下列出了 Lua 的保留关键字。保留关键字不能作为常量或变量或其他用户自定义标示符: and break do else elseif end false for function if in local nil not or repeat return then true until while goto 全局变量 在默认情况下,变量总是认为是全局的。 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil(空值)。 Chat:sendSystemMsg(b , 0) --未声明的变量b,不会报错,但把b的值打印出来是nil的 ------------------ b=10 Chat:sendSystemMsg(b , 0) --声明的变量b,b的值打印出来是10 ------------------ --如果你想删除一个全局变量,只需要将变量赋值为nil。 b = nil Chat:sendSystemMsg(b , 0) --这样变量b就好像从没被使用过一样。换句话说, 当且仅当一个变量不等于nil时,这个变量即存在。 Lua数据类型 数据名称 用法描述 nil 表示一个无效值(在条件表达式中相当于false) boolean 布尔值,包含两个值:false和true number 实数,表示双精度类型的实浮点数,也可以是整数 string 字符串,由一对单引号或双引号来表示 table Lua的一种数据结构,可用来创建不同的数据类型,如:数组、字典等 function 由 C 或 Lua 编写的函数 userdata 表示任意存储在变量中的C数据结构 thread 表示执行的独立线路,用于执行协同程序 Lua的变量 变量概述 什么是变量? 变量在使用前,必须在代码中进行声明,即创建该变量。 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 a = 5 -- 全局变量 local b = 5 -- 局部变量 -------------- function joke() -- 定义函数 c = 5 -- 全局变量 local d = 6 -- 局部变量 end -------------- joke() Chat:sendSystemMsg(c,0) --> 5 Chat:sendSystemMsg(d,0) --> nil do local a = 6 -- 局部变量 b = 6 -- 对局部变量重新赋值 Chat:sendSystemMsg(a,0); --> 6 Chat:sendSystemMsg(b,0); --> 6 end print(a,b) --> 5 6 赋值语句 赋值是改变一个变量的值和改变表域的最基本的方法。 a = "hello" .. "world" --多个变量同时赋值,变量列表和值列表各元素用逗号分开,赋值语句右边的值会依次赋给左边变量。 a, b = 10, 2*x --遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值: x, y = y, x a[i], a[j] = a[j], a[i] 注意 当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略: 变量个数 > 值的个数, 按变量个数补足nil 变量个数 < 值的个数, 多余的值会被忽略 a, b, c = 0, 1 Chat:sendSystemMsg(a,0) --> 0 Chat:sendSystemMsg(b,0) --> 1 Chat:sendSystemMsg(c,0) --> nil a, b, c = 0, 1 a, b = a+1, b+1, b+2 Chat:sendSystemMsg(a,0) --> 1 Chat:sendSystemMsg(b,0) --> 2 a, b, c = 0 Chat:sendSystemMsg(a,0) --> 0 Chat:sendSystemMsg(b,0) --> nil Chat:sendSystemMsg(c,0) --> nil --最后一个例子是一个常见的错误情况,注意:如果要对多个变量赋值必须依次对每个变量赋值。 a, b = f() --多值赋值经常用来交换变量,或将函数调用返回给变量 --f()返回两个值,第一个赋给a,第二个赋给b。 --应该尽可能的使用局部变量,有两个好处: --1. 避免命名冲突。 --2. 访问局部变量的速度比全局变量更快。 索引 对 table 的索引使用方括号 []。Lua 也提供了 . 操作。 t[i] t.i -- 当索引为字符串类型时的一种简化写法 gettable_event(t,i) -- 采用索引访问本质上是一个类似这样的函数调用 site = {} site["key"] = "www.mini1.com" Chat:sendSystemMsg(site["key"],0) --例子 Chat:sendSystemMsg(site.key , 0) Lua的循环语句 序号 控制语句 描述 1 while循环 在条件为 true 时,让程序重复地执行某些语句。执行语句前会先检查条件是否为 true。 2 for循环 重复执行指定语句,重复次数可在 for 语句中控制。 3 repeat...until 重复执行循环,直到 指定的条件为真时为止 4 循环嵌套 可以在循环内嵌套一个或多个循环语句(while do ... end;for ... do ... end;repeat ... until;) 序号 控制语句 描述 1 break语句 退出当前循环或语句,并开始脚本执行紧接着的语句。 2 goto语句 将程序的控制点转移到一个标签处。 while循环 --案例: --以下代码实例在聊天框循环输出a的值 a = 0 while( a < 5 ) --当a<5的时候才会执行do里面的内容 do Chat:sendSystemMsg( a, 0) --输出a的值到聊天框 a = a+1 --每次循环a都会自身+1 end --输出结果为: -- 0 -- 1 -- 2 -- 3 -- 4 for循环 数值for循环: for var=a , b , c do <执行体> end var 从 a 变化到 b,每次变化以 c 为步长递增var,并执行一次 "执行体"。c 是可选的,如果不指定,默认为1。 --案例: --简单的for循环,可以在聊天框输出i的值: for i = 1 , 5 , 1 do Chat:sendSystemMsg( i, 0) end --输出结果为: -- 1 -- 2 -- 3 -- 4 -- 5 泛型for循环: 泛型 for 循环通过一个迭代器函数来遍历所有值,类似 java 中的 foreach 语句。 --实例: --聊天框打印数组a的所有值 a = {"one", "two", "three"} for i, v in ipairs(a) do Chat:sendSystemMsg( v, 0) end --i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。 repeat...until循环 概述: Lua 编程语言中 repeat...until 循环语句不同于 for 和 while循环,for 和 while 循环的条件语句在当前循环执行开始时判断,而 repeat...until 循环的条件语句在当前循环结束后判断。 --实例: --以下代码在聊天框输出a的值 a = 0 --[ 执行循环 --] repeat Chat:sendSystemMsg( a, 0) a = a + 1 until( a > 5 ) --循环直到a>5 --输出结果为: -- 0 -- 1 -- 2 -- 3 -- 4 -- 5 循环嵌套 概述 Lua 编程语言中允许循环中嵌入循环。我们还可以使用不同的循环类型来嵌套,如 for 循环体中嵌套 while 循环。 --案例: --以下代码在聊天框输出i和j的值 for i = 1 , 2 , 1 do for j = 1, 2 , 1 do Chat:sendSystemMsg( i, 0) Chat:sendSystemMsg( j, 0) end end end --输出结果为: -- 1 -- 1 -- 1 -- 2 -- 2 -- 1 -- 2 -- 2 break语句 break语句 Lua 编程语言 break 语句插入在循环体中,用于退出当前循环或语句,并开始脚本执行紧接着的语句。 如果你使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句。 --以下实例执行 while 循环,在变量 a 小于 20 时输出 a 的值,并在 a 大于 15 时终止执行循环: --[ 定义变量 --] a = 10 --[ while 循环 --] while( a < 20 ) do Chat:sendSystemMsg( a, 0) a=a+1 if( a > 15) then --[ 使用 break 语句终止循环 --] break end end --输出结果为: -- 10 -- 11 -- 12 -- 13 -- 14 -- 15 goto 语句 goto语句 Lua 语言中的 goto 语句允许将控制流程无条件地转到被标记的语句处。 local a = 1 ::start:: Chat:sendSystemMsg("goto的位置",0) a = a+1 if a < 3 then goto start -- a 小于 3 的时候跳转到标签 start end --输出的结果: -- goto的位置 -- goto的位置 流程控制语句(条件语句) 概述 Lua 编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为 true 时执行指定程序代码,在条件为 false 时执行其他指定代码。 控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,true和非nil为真。 要注意的是Lua中 0 为 true: --[ 0 为 true ] if(0) then Chat:sendSystemMsg("0 为 true", 0) end 序号 语句 描述 1 if语句 if 语句 由一个布尔表达式作为条件判断,其后紧跟其他语句组成。 2 if...else语句 if 语句 可以与 else 语句搭配使用, 在 if 条件表达式为 false 时执行 else 语句代码。 3 if 嵌套语句 你可以在if 或 else if中使用一个或多个 if 或 else if 语句 。。 if语句 if语句 Lua if 语句 由一个布尔表达式作为条件判断,其后紧跟其他语句组成。 --以下实例用于判断变量 a 的值是否小于 20: --[ 定义变量 --] a = 10; --[ 使用 if 语句 --] if( a < 20 ) then --[ if 条件为 true 时打印以下信息 --] Chat:sendSystemMsg("a 小于 20" , 0); end Chat:sendSystemMsg( "a的值为:"..a.."", 0); --输出的结果为: --a小于20 --a的值为:10 if...else语句 if...else语句 Lua的if 语句可以与 else 语句搭配使用, 在 if 条件表达式为 false 时执行 else 语句代码块。 --以下实例用于判断变量 a 的值: a = 100; --[ 检查条件 --] if( a < 20 ) then --[ if 条件为 true 时执行该语句块 --] Chat:sendSystemMsg("a 小于 20",0 ) else --[ if 条件为 false 时执行该语句块 --] Chat:sendSystemMsg("a 大于 20",0 ) end Chat:sendSystemMsg("a的值为 :"..a.."", 0) --输出的结果为: --a 大于 20 --a的值为:100 if...elseif...else 语句 Lua的if 语句可以与 elseif...else 语句搭配使用, 在 if 条件表达式为 false 时执行 elseif...else 语句代码块,用于检测多个条件语句。 --以下实例对变量 a 的值进行判断: --[ 定义变量 --] a = 100 --[ 检查布尔条件 --] if( a == 10 ) then --[ 如果条件为 true 打印以下信息 --] Chat:sendSystemMsg("a 的值为 10" ,0) elseif( a == 20 ) then --[ if else if 条件为 true 时打印以下信息 --] Chat:sendSystemMsg("a 的值为 20" ,0) elseif( a == 30 ) then --[ if else if condition 条件为 true 时打印以下信息 --] Chat:sendSystemMsg("a 的值为 30" ,0) else --[ 以上条件语句没有一个为 true 时打印以下信息 --] Chat:sendSystemMsg("没有匹配 a 的值" ,0) end Chat:sendSystemMsg("a 的值为 :".. a .."", 0) if嵌套语句 if嵌套语句 Lua 的if 语句允许嵌套, 这就意味着你可以在一个 if 或 else if 语句中插入其他的 if 或 else if 语句。 --以下实例用于判断变量 a 和 b 的值,并输出在聊天框: --[ 定义变量 --] a = 100; b = 200; --[ 检查条件 --] if( a == 100 ) then --[ if 条件为 true 时执行以下 if 条件判断 --] if( b == 200 ) then --[ if 条件为 true 时执行该语句块 --] Chat:sendSystemMsg("a 的值为 100 ,b 的值为 200" ); end end Chat:sendSystemMsg("a 的值为 :" .. a.."", 0); Chat:sendSystemMsg("b 的值为 :".. b .."", 0 ); Lua函数 什么是函数 在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。 Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。 Lua 函数主要有两种用途: 完成指定的任务,这种情况下函数作为调用语句使用; 计算并返回值,这种情况下函数作为赋值语句的表达式使用。 函数定义 Lua 编程语言函数定义格式如下: optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end 代码解析: optional_function_scope: 该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字 local。 function_name: 指定函数名称。 argument1, argument2, argument3..., argumentn: 函数参数,多个参数以逗号隔开,函数也可以不带参数。 function_body: 函数体,函数中需要执行的代码语句块。 result_params_comma_separated: 函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开。 案例1: 以下实例定义了函数 max(),参数为 num1, num2,用于比较两值的大小,并返回最大值: --[[ 函数返回两个值的最大值 --]] function max(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end -- 调用函数 Chat:sendSystemMsg("两值比较最大值为:"..max(10,4).."",0) Chat:sendSystemMsg("两值比较最大值为:"..max(5,6).."",0) 案例2: Lua 中我们可以将函数作为参数传递给函数,如下实例: myprint = function(param) Chat:sendSystemMsg("param的值:" ..param.. "",0) end function add(num1,num2,functionPrint) result = num1 + num2 -- 调用传递的函数参数 functionPrint(result) end myprint(10) -- myprint 函数作为参数传递 add(2,5,myprint) 多返回值 Lua函数可以返回多个结果值,比如string.find,其返回匹配串"开始和结束的下标"(如果不存在匹配串返回nil)。 案例: Lua函数中,在return后列出要返回的值的列表即可返回多值,如: function maximum (a) local mi = 1 -- 最大值索引 local m = a[mi] -- 最大值 for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end print(maximum({8,10,23,12,5})) --由于Chat:sendSystemMsg输出机制只能输出一个值,只能用print打印来看输出的返回值 可变参数 Lua函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用三点 ... 表示函数有可变的参数。 案例1:拼接 -- 上段代码由于Chat:sendSystemMsg只能输出1个值,所以无法输出函数的两个返回值 -- 我们可以用可变参数来做拼接功能 function dump_args(...) local buffer = '' local size = select('#', ...) for idx = 1, select('#', ...) do local arg = select(idx, ...) local ends = idx==size and "" or ", " buffer = buffer..tostring(arg)..ends end return buffer end function maximum (a) local mi = 1 -- 最大值索引 local m = a[mi] -- 最大值 for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end Chat:sendSystemMsg(dump_args(maximum({8,10,23,12,5})),0) --这样调用可变参数dump_args,就可以打印出多个函数返回值了 案例2:求平均值 function average(...) result = 0 local arg={...} --> arg 为一个表,局部变量 for i,v in ipairs(arg) do result = result + v end Chat:sendSystemMsg("总共传入 " .. #arg .. " 个数",0) return result/#arg end Chat:sendSystemMsg("平均值为" ..average(10,5,3,4,5,6).. " ",0) 案例3:求平均值 ---我们也可以通过 select("#",...) 来获取可变参数的数量: function average(...) result = 0 local arg={...} for i,v in ipairs(arg) do result = result + v end print("总共传入 " .. select("#",...) .. " 个数") return result/select("#",...) end Chat:sendSystemMsg("平均值为"..average(10,5,3,4,5,6).." ",0) Lua运算符 运算符释义: 运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型: 算术运算符 关系运算符 逻辑运算符 其他运算符 算数运算符 下表列出了Lua语言中的常用算数运算符,设定 A 的值为10,B 的值为 20: 操作符 描述 实例 |加法| A + B 输出结果 30 |减法| A - B 输出结果 -10 |乘法| A * B 输出结果 200 / |除法| B / A w输出结果 2 % |取余| B % A 输出结果 0 ^ |乘幂| A^2 输出结果 100 |负号| -A 输出结果 -10 案例: 我们可以通过以下实例来更加透彻的理解算术运算符的应用: a = 21 b = 10 c = a + b print("Line 1 - c 的值为 ", c ) c = a - b print("Line 2 - c 的值为 ", c ) c = a * b print("Line 3 - c 的值为 ", c ) c = a / b print("Line 4 - c 的值为 ", c ) c = a % b print("Line 5 - c 的值为 ", c ) c = a^2 print("Line 6 - c 的值为 ", c ) c = -a print("Line 7 - c 的值为 ", c ) --打印结果为: --Line 1 - c 的值为 31 --Line 2 - c 的值为 11 --Line 3 - c 的值为 210 --Line 4 - c 的值为 2.1 --Line 5 - c 的值为 1 --Line 6 - c 的值为 441 --Line 7 - c 的值为 -21 关系运算符 下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20: 操作符 描述 实例 == 等于,检测两个值是否相等,相等返回 true,否则返回 false (A == B) 为 false。 ~= 不等于,检测两个值是否相等,相等返回 false,否则返回 true (A ~= B) 为 true。 |大于,如果左边的值大于右边的值,返回 true,否则返回 false| (A > B) 为 false。 < |小于,如果左边的值大于右边的值,返回 false,否则返回 true| (A < B) 为 true。 = |大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false| (A >= B) 返回 false。 <= |小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false| (A <= B) 返回 true。 案例: 我们可以通过以下实例来更加透彻的理解关系运算符的应用: a = 21 b = 10 if( a == b ) then print("Line 1 - a 等于 b" ) else print("Line 1 - a 不等于 b" ) end if( a ~= b ) then print("Line 2 - a 不等于 b" ) else print("Line 2 - a 等于 b" ) end if ( a < b ) then print("Line 3 - a 小于 b" ) else print("Line 3 - a 大于等于 b" ) end if ( a > b ) then print("Line 4 - a 大于 b" ) else print("Line 5 - a 小于等于 b" ) end -- 修改 a 和 b 的值 a = 5 b = 20 if ( a <= b ) then print("Line 5 - a 小于等于 b" ) end if ( b >= a ) then print("Line 6 - b 大于等于 a" ) end --执行结果为: --Line 1 - a 不等于 b --Line 2 - a 不等于 b --Line 3 - a 大于等于 b --Line 4 - a 大于 b --Line 5 - a 小于等于 b --Line 6 - b 大于等于 a 逻辑运算符 操作符 描述 实例 and 逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。 (A and B) 为 false。 or 逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。 (A or B) 为 true。 not 逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。 not(A and B) 为 true。 案例: 我们可以通过以下实例来更加透彻的理解逻辑运算符的应用: a = true b = true if ( a and b ) then print("a and b - 条件为 true" ) end if ( a or b ) then print("a or b - 条件为 true" ) end print("---------分割线---------" ) -- 修改 a 和 b 的值 a = false b = true if ( a and b ) then print("a and b - 条件为 true" ) else print("a and b - 条件为 false" ) end if ( not( a and b) ) then print("not( a and b) - 条件为 true" ) else print("not( a and b) - 条件为 false" ) end --以上程序执行结果为: --a and b - 条件为 true --a or b - 条件为 true --a and b - 条件为 false --not( a and b) - 条件为 true 其他运算符 下表列出了 Lua 语言中的连接运算符与计算表或字符串长度的运算符: 操作符 描述 实例 .. 连接两个字符串 a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。 # 一元运算符,返回字符串或表的长度。 #"Hello" 返回 5 案例: 我们可以通过以下实例来更加透彻的理解连接运算符与计算表或字符串长度的运算符的应用: a = "Hello " b = "MiniWorld" print("连接字符串 a 和 b ", a..b ) print("b 字符串长度 ",#b ) print("字符串 Test 长度 ",#"Test" ) print("迷你世界网址长度 ",#"https://www.mini1.cn/" ) --以上程序执行结果为: --连接字符串 a 和 b Hello MiniWorld --b 字符串长度 5 --字符串 Test 长度 4 --迷你世界网址长度 21 运算符优先级 从高到低的顺序: ^ not - (unary) * / + - .. < > <= >= ~= == and or 除了 ^ 和 .. 外所有的二元运算符都是左连接的。 a+i < b/2+1 <--> (a+i) < ((b/2)+1) 5+x^2*8 <--> 5+((x^2)*8) a < y and y <= z <--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z <--> x^(y^z) 案例: 我们可以通过以下实例来更加透彻的了解 Lua 语言运算符的优先级: a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d;-- ( 30 * 15 ) / 5 print("(a + b) * c / d 运算值为 :",e ) e = ((a + b) * c) / d; -- (30 * 15 ) / 5 print("((a + b) * c) / d 运算值为 :",e ) e = (a + b) * (c / d);-- (30) * (15/5) print("(a + b) * (c / d) 运算值为 :",e ) e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d 运算值为 :",e ) --以上程序执行结果为: --(a + b) * c / d 运算值为 : 90.0 --((a + b) * c) / d 运算值为 : 90.0 --(a + b) * (c / d) 运算值为 : 90.0 --a + (b * c) / d 运算值为 : 50.0 Lua字符串 概述: 字符串或串(String)是由数字、字母、下划线组成的一串字符。Lua 语言中字符串可以使用以下三种方式来表示: 单引号间的一串字符。 双引号间的一串字符。 [[和]]间的一串字符。 案例: string1 = "Lua" print("\"字符串 1 是\"",string1) string2 = 'https://www.mini1.cn/' print("字符串 2 是",string2) string3 = [["Lua 教程"]] print("字符串 3 是",string3) --以上代码执行输出结果为: --"字符串 1 是" Lua --字符串 2 是 https://www.mini1.cn/ --字符串 3 是 "Lua 教程" 转义字符用于表示不能直接显示的字符,比如后退键,回车键,等。如在字符串转换双引号可以使用 " \ ""。 转译字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表(HT) (跳到下一个TAB位置) 009 \v 垂直制表(VT) 011 |代表一个反斜线字符''' 092 ' 代表一个单引号(撇号)字符 039 " 代表一个双引号字符 034 \0 空字符(NULL) 000 \ddd 1到3位八进制数所代表的任意字符 三位八进制 \xhh 1到2位十六进制所代表的任意字符 二位十六进制 字符串操作 Lua 提供了很多的方法来支持字符串的操作: 序号 方法 & 用途 1 string.upper(argument): 字符串全部转为大写字母。 2 string.lower(argument): 字符串全部转为小写字母。 3 string.gsub(mainString,findString,replaceString,num) 在字符串中替换。 mainString 为要操作的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换),如: string.gsub("aaaa","a","z",3) zzza 3 4 string.find (str, substr, [init, [end]]) 在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil。 string.find("Hello Lua user", "Lua", 1) 7 9 5 string.reverse(arg) 字符串反转 string.reverse("Lua") auL 6 string.format(...) 返回一个类似printf的格式化字符串 string.format("the value is:%d",4) the value is:4 7 string.char(arg) 和 string.byte(arg[,int]) char 将整型数字转成字符并连接, byte转换字符为整数值(可以指定某个字符,默认第一个字符)。 string.char(97,98,99,100) abcd string.byte("ABCD",4) 68 > string.byte("ABCD") 65 8 string.len(arg) 计算字符串长度。 string.len("abc") 3 9 string.rep(string, n) 返回字符串string的n个拷贝 string.rep("abcd",2) abcdabcd 10 .. 链接两个字符串 print("www.mini1.".."cn") www.mini1.cn 11 string.gmatch(str, pattern) 返回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil。 for word in string.gmatch("Hello Lua user", "%a+") do print(word) end Hello Lua Lua 12 string.match(str, pattern, init) string.match()只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1。 在成功配对时, 函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil。 string.match("I have 2 questions for you.", "%d+ %a+") 2 questions string.format("%d, %q", string.match("I have 2 questions for you.", "(%d+) (%a+)")) 2, "questions" 字符串大小写转换 以下实例演示了如何对字符串大小写进行转换: 案例: string1 = "Lua"; print(string.upper(string1)) print(string.lower(string1)) --以上代码执行结果为: --LUA --lua 字符串查找与反转 以下实例演示了如何对字符串进行查找与反转操作: 案例: string = "Lua Tutorial" -- 查找字符串 print(string.find(string,"Tutorial")) reversedString = string.reverse(string) print("新字符串为",reversedString) --以上代码执行结果为: --5 12 --新字符串为 lairotuT auL 字符串格式化 Lua 提供了 string.format() 函数来生成具有特定格式的字符串, 函数的第一个参数是格式 ,之后是对应格式中每个代号的各种数据。 由于格式字符串的存在, 使得产生的长字符串可读性大大提高了。这个函数的格式很像 C 语言中的 printf()。 以下实例演示了如何对字符串进行格式化操作: 格式字符串可能包含以下的转义码: %c - 接受一个数字, 并将其转化为ASCII码表中对应的字符 %d, %i - 接受一个数字并将其转化为有符号的整数格式 %o - 接受一个数字并将其转化为八进制数格式 %u - 接受一个数字并将其转化为无符号整数格式 %x - 接受一个数字并将其转化为十六进制数格式, 使用小写字母 %X - 接受一个数字并将其转化为十六进制数格式, 使用大写字母 %e - 接受一个数字并将其转化为科学记数法格式, 使用小写字母e %E - 接受一个数字并将其转化为科学记数法格式, 使用大写字母E %f - 接受一个数字并将其转化为浮点数格式 %g(%G) - 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式 %q - 接受一个字符串并将其转化为可安全被Lua编译器读入的格式 %s - 接受一个字符串并按照给定的参数格式化该字符串 为进一步细化格式, 可以在%号后添加参数. 参数将以如下的顺序读入: (1) 符号: 一个+号表示其后的数字转义符将让正数显示正号. 默认情况下只有负数显示符号. (2) 占位符: 一个0, 在后面指定了字串宽度时占位用. 不填时的默认占位符是空格. (3) 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐. (4) 宽度数值 (5) 小数位数/字串裁切: 在宽度数值后增加的小数部分n, 若后接f(浮点数转义符,如%6.3f)则设定该浮点数的小数只保留n位, 若后接s(字符串转义符, 如%5.3s)则设定该字符串只显示前n位. 案例: string1 = "Lua" string2 = "Tutorial" number1 = 10 number2 = 20 -- 基本字符串格式化 print(string.format("基本格式化 %s %s",string1,string2)) -- 日期格式化 date = 2; month = 1; year = 2020 print(string.format("日期格式化 %02d/%02d/%03d", date, month, year)) -- 十进制格式化 print(string.format("%.4f",1/3)) --以上代码执行结果为: --基本格式化 Lua Tutorial --日期格式化 02/01/2020 --0.3333 其他案例: string.format("%c", 83) -- 输出S string.format("%+d", 17.0) -- 输出+17 string.format("%05d", 17) -- 输出00017 string.format("%o", 17) -- 输出21 string.format("%u", 3.14) -- 输出3 string.format("%x", 13) -- 输出d string.format("%X", 13) -- 输出D string.format("%e", 1000) -- 输出1.000000e+03 string.format("%E", 1000) -- 输出1.000000E+03 string.format("%6.3f", 13) -- 输出13.000 string.format("%q", "One\nTwo") -- 输出"One\ --   Two" string.format("%s", "monkey") -- 输出monkey string.format("%10s", "monkey") -- 输出 monkey string.format("%5.3s", "monkey") -- 输出 mon 字符与整数相互转换 案例: -- 字符转换 -- 转换第一个字符 print(string.byte("Lua")) -- 转换第三个字符 print(string.byte("Lua",3)) -- 转换末尾第一个字符 print(string.byte("Lua",-1)) -- 第二个字符 print(string.byte("Lua",2)) -- 转换末尾第二个字符 print(string.byte("Lua",-2)) -- 整数 ASCII 码转换为字符 print(string.char(97)) --以上代码执行结果为: --76 --97 --97 --117 --117 --a 其他常用函数 以下实例演示了其他字符串操作,如计算字符串长度,字符串连接,字符串复制等: string1 = "www." string2 = "mini1" string3 = ".cn" -- 使用 .. 进行字符串连接 print("连接字符串",string1..string2..string3) -- 字符串长度 print("字符串长度 ",string.len(string2)) -- 字符串复制 2 次 repeatedString = string.rep(string2,2) print(repeatedString) --以上代码执行结果为: --连接字符串 www.mini1.cn --字符串长度 6 --mini1mini1 匹配模式 Lua 中的匹配模式直接用常规的字符串来描述。它用于模式匹配函数 string.find, string.gmatch, string.gsub, string.match。你还可以在模式串中使用字符类。 字符类指可以匹配一个特定字符集合内任何字符的模式项。比如,字符类 %d 匹配任意数字。所以你可以使用模式串 %d%d/%d%d/%d%d%d%d 搜索 dd/mm/yyyy 格式的日期: s = "Deadline is 30/05/1999, firm" date = "%d%d/%d%d/%d%d%d%d" print(string.sub(s, string.find(s, date))) --> 30/05/1999 下面的表列出了Lua支持的所有字符类: 单个字符(除 ^$()%.[]*+-? 外): 与该字符自身配对 .(点): 与任何字符配对 %a: 与任何字母配对 %c: 与任何控制符配对(例如\n) %d: 与任何数字配对 %l: 与任何小写字母配对 %p: 与任何标点(punctuation)配对 %s: 与空白字符配对 %u: 与任何大写字母配对 %w: 与任何字母/数字配对 %x: 与任何十六进制数配对 %z: 与任何代表0的字符配对 %x(此处x是非字母非数字字符): 与字符x配对. 主要用来处理表达式中有功能的字符(^$()%.[]*+-?)的配对问题, 例如%%与%配对 [数个字符类]: 与任何[]中包含的字符类配对. 例如[%w_]与任何字母/数字, 或下划线符号(_)配对 [^数个字符类]: 与任何不包含在[]中的字符类配对. 例如[^%s]与任何非空白字符配对 当上述的字符类用大写书写时, 表示与非此字符类的任何字符配对. 例如, %S表示与任何非空白字符配对.例如,'%A'非字母的字符: > print(string.gsub("hello, up-down!", "%A", ".")) hello..up.down. 4 数字4不是字符串结果的一部分,他是gsub返回的第二个结果,代表发生替换的次数。 在模式匹配中有一些特殊字符,他们有特殊的意义,Lua中的特殊字符如下: ( ) . % + - * ? [ ^ $ '%' 用作特殊字符的转义字符,因此 '%.' 匹配点;'%%' 匹配字符 '%'。转义字符 '%'不仅可以用来转义特殊字符,还可以用于所有的非字母的字符。 模式条目可以是: 单个字符类匹配该类别中任意单个字符; 单个字符类跟一个 '*', 将匹配零或多个该类的字符。 这个条目总是匹配尽可能长的串; 单个字符类跟一个 '+', 将匹配一或更多个该类的字符。 这个条目总是匹配尽可能长的串; 单个字符类跟一个 '-', 将匹配零或更多个该类的字符。 和 '*' 不同, 这个条目总是匹配尽可能短的串; 单个字符类跟一个 '?', 将匹配零或一个该类的字符。 只要有可能,它会匹配一个; %n, 这里的 n 可以从 1 到 9; 这个条目匹配一个等于 n 号捕获物(后面有描述)的子串。 %bxy, 这里的 x 和 y 是两个明确的字符; 这个条目匹配以 x 开始 y 结束, 且其中 x 和 y 保持 平衡 的字符串。 意思是,如果从左到右读这个字符串,对每次读到一个 x 就 +1 ,读到一个 y 就 -1, 最终结束处的那个 y 是第一个记数到 0 的 y。 举个例子,条目 %b() 可以匹配到括号平衡的表达式。 %f[set], 指 边境模式; 这个条目会匹配到一个位于 set 内某个字符之前的一个空串, 且这个位置的前一个字符不属于 set 。 集合 set 的含义如前面所述。 匹配出的那个空串之开始和结束点的计算就看成该处有个字符 '\0' 一样。 案例: 将阿拉伯数字转换为语文汉字数字: ``` lua local function NumToCN(num) local size = #tostring(num) local CN = "" local StrCN = {"一","二","三","四","五","六","七","八","九"} for i = 1 , size do CN = CN .. StrCN[tonumber(string.sub(tostring(num), i , i))] end return CN end print(NumToCN(56665)) ``` Lua数组 概述: 数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。 Lua 数组的索引键值可以使用整数表示,数组的大小不是固定的。 一维数组: 一维数组是最简单的数组,其逻辑结构是线性表。一维数组可以用for循环出数组中的元素,如下实例: array = {"Lua", "Tutorial"} for i= 0, 2 do print(array[i]) end --以上代码执行输出结果为: --nil --Lua --Tutorial 正如你所看到的,我们可以使用整数索引来访问数组元素,如果知道的索引没有值则返回nil。 在 Lua 索引值是以 1 为起始,但你也可以指定 0 开始。 除此外我们还可以以负数为数组索引值: array = {} for i= -2, 2 do array[i] = i *2 end for i = -2,2 do print(array[i]) end --以上代码执行输出结果为: -- -4 -- -2 -- 0 -- 2 -- 4 多维数组: 多维数组即数组中包含数组或一维数组的索引键对应一个数组。 以下是一个三行三列的阵列多维数组: -- 初始化数组 array = {} for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j end end -- 访问数组 for i=1,3 do for j=1,3 do print(array[i][j]) end end --以上代码执行输出结果为: --1 --2 --3 --2 --4 --6 --3 --6 --9 不同索引键的三行三列阵列多维数组: -- 初始化数组 array = {} maxRows = 3 maxColumns = 3 for row=1,maxRows do for col=1,maxColumns do array[row*maxColumns +col] = row*col end end -- 访问数组 for row=1,maxRows do for col=1,maxColumns do print(array[row*maxColumns +col]) end end --以上代码执行输出结果为: --1 --2 --3 --2 --4 --6 --3 --6 --9 Lua table(表) 概述: table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。 Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.format表示使用"format"来索引table string。 table(表)的构造: 构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组: -- 初始化表 mytable = {} -- 指定值 mytable[1]= "Lua" -- 移除引用 mytable = nil -- lua 垃圾回收会释放内存 当我们为 table a 并设置元素,然后将 a 赋值给 b,则 a 与 b 都指向同一个内存。如果 a 设置为 nil ,则 b 同样能访问 table 的元素。如果没有指定的变量指向a,Lua的垃圾回收机制会清理相对应的内存。 以下实例演示了以上的描述情况: -- 简单的 table mytable = {} print("mytable 的类型是 ",type(mytable)) mytable[1]= "Lua" mytable["wow"] = "修改前" print("mytable 索引为 1 的元素是 ", mytable[1]) print("mytable 索引为 wow 的元素是 ", mytable["wow"]) -- alternatetable和mytable的是指同一个 table alternatetable = mytable print("alternatetable 索引为 1 的元素是 ", alternatetable[1]) print("mytable 索引为 wow 的元素是 ", alternatetable["wow"]) alternatetable["wow"] = "修改后" print("mytable 索引为 wow 的元素是 ", mytable["wow"]) -- 释放变量 alternatetable = nil print("alternatetable 是 ", alternatetable) -- mytable 仍然可以访问 print("mytable 索引为 wow 的元素是 ", mytable["wow"]) mytable = nil print("mytable 是 ", mytable) 以上代码执行结果为: mytable 的类型是 table mytable 索引为 1 的元素是 Lua mytable 索引为 wow 的元素是 修改前 alternatetable 索引为 1 的元素是 Lua mytable 索引为 wow 的元素是 修改前 mytable 索引为 wow 的元素是 修改后 alternatetable 是 nil mytable 索引为 wow 的元素是 修改后 mytable 是 nil Table操作: 序号 方法 & 用途 1 table.concat (table [, sep [, start [, end]]]): concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。 2 table.insert (table, [pos,] value): 在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾. 3 table.maxn (table) 指定table中所有正数key值中最大的key值. 如果不存在key值为正数的元素, 则返回0。(Lua5.2之后该方法已经不存在了,本文使用了自定义函数实现) 4 table.remove (table [, pos]) 返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起。 5 table.sort (table [, comp]) 对给定的table进行升序排序。 接下来我们来看下这几个方法的实例。 Table连接: 我们可以使用 concat() 输出一个列表中元素连接成的字符串: ```lua fruits = {"banana","orange","apple"} -- 返回 table 连接后的字符串 print("连接后的字符串 ",table.concat(fruits)) -- 指定连接字符 print("连接后的字符串 ",table.concat(fruits,", ")) -- 指定索引来连接 table print("连接后的字符串 ",table.concat(fruits,", ", 2,3)) --执行以上代码输出结果为: --连接后的字符串 bananaorangeapple --连接后的字符串 banana, orange, apple --连接后的字符串 orange, apple

插入和移除:

以下实例演示了 table 的插入和移除操作: ```lua fruits = {"banana","orange","apple"} -- 在末尾插入 table.insert(fruits,"mango") print("索引为 4 的元素为 ",fruits[4]) -- 在索引为 2 的键处插入 table.insert(fruits,2,"grapes") print("索引为 2 的元素为 ",fruits[2]) print("最后一个元素为 ",fruits[5]) table.remove(fruits) print("移除后最后一个元素为 ",fruits[5]) --执行以上代码输出结果为: --索引为 4 的元素为 mango --索引为 2 的元素为 grapes --最后一个元素为 mango --移除后最后一个元素为 nil Table 排序: 以下实例演示了 sort() 方法的使用,用于对 Table 进行排序: fruits = {"banana","orange","apple","grapes"} print("排序前") for k,v in ipairs(fruits) do print(k,v) end table.sort(fruits) print("排序后") for k,v in ipairs(fruits) do print(k,v) end --执行以上代码输出结果为: --排序前 --1 banana --2 orange --3 apple --4 grapes --排序后 --1 apple --2 banana --3 grapes --4 orange Table 最大值: table.maxn 在 Lua5.2 之后该方法已经不存在了,我们定义了 table_maxn 方法来实现。 以下实例演示了如何获取 table 中的最大值: function table_maxn(t) local mn=nil; for k, v in pairs(t) do if(mn==nil) then mn=v end if mn < v then mn = v end end return mn end tbl = {[1] = 2, [2] = 6, [3] = 34, [26] =5} print("tbl 最大值:", table_maxn(tbl)) print("tbl 长度 ", #tbl) --执行以上代码输出结果为: --tbl 最大值: 34 --tbl 长度 3 注意: 当我们获取 table 的长度的时候无论是使用 # 还是 table.getn 其都会在索引中断的地方停止计数,而导致无法正确取得 table 的长度。 可以使用以下方法来代替: function table_leng(t) local leng=0 for k, v in pairs(t) do leng=leng+1 end return leng; end 组件说明 组件 进入对象或者世界编辑后,我们可以看到它们身上都挂载了许多组件。这些组件可以控制对象的外观、属性、物理特性、行为逻辑等等,给“舞台”上的“演员”赋予了生命。 官方提供了一些封装好的组件,我们可以通过组件面板直接更改对象的属性。也可以卸载掉一些不需要使用的组件。 如果官方组件不能满足需求,我们也可以通过添加触发器组件/脚本组件来制作新的组件。(对于高手来说,通过把同类型的逻辑封装成组件,可以让我们的代码更加精简易于管理。)如果不了解触发器可以查看 触发器文档 例如:我们制作一个掉落物组件,来设置不同的生物被击败后,掉落不同的物品。 local Script = {} --属性定义 Script.propertys = { varNum = { type = Mini.Number, --定义了一个数值类型的参数 default = 2,--默认值 displayName = "掉落物数值", }, varItem = { type = Mini.Item,-- --定义了一个道具类型的参数 default = 11668,-- 默认值 displayName = "掉落物道具",-- 属性别名 }, } -- 组件启动时调用 function Script:OnStart() -- 监听个体事件 当此对象被击败时触发 self:AddEvent(ObjectEvent.ObjectDie, self.OnObjectDie) -- ObjectEvent.ObjectDie为官方事件,可以在wiki的事件库中查看更多事件 -- self.OnObjectDie 为下方自定义的一个函数 end function Script:OnObjectDie(event) -- 定义此生物死亡时的动作 GameObject:CreatePrefab(ObjType.DropItem, self.varItem, event.x,event.y+1,event.z, self.varNum) -- 预制体类型:ObjType.DropItem 为掉落物,可以在wiki中查看其他类型 -- 掉落物类型:self.varItem从属性面板读取创建的道具类型 -- 事件中的位置: event.x,event.y+1,event.z, event.y+1让创建的高度必死亡的高一格 -- 掉落物数量:self.varNum从属性面板读取创建的掉落物数量 end return Script 完整视频教程 所有自定义的组件,除了在编辑对象时使用之外,还可以在资源背包里统一编辑管理。(此处编辑组件,会影响所有调用了这个组件的对象) 概述 组件依附在对象的逻辑片段,不可直接运行,需要挂载到对象上才能生效,一种组件在同一个对象上只能挂载一个。2.0的脚本功能就等同挂载在世界或者ui对象上的组件。 组件的属性 示例 注意:在这里定义的属性数据会自动保存, 更多类型参考 属性说明 local Script = {} Script.propertys = { -- 完整定义一个变量数字,属性字段为num num = { type = Mini.Number, -- 属性类型 default = 100, -- 默认值 displayName = "数字", -- 属性别名 permission = CmpProPermission.Private -- 最大值等 其他属性说明配置参考属性说明 }, --大部分属性类型支持简单定义, 比如: age = 8, str = "你好!", bool = true, color = Mini.Color(255, 0, 0, 255), -- 红色 } function Script:OnStart() -- 组件属性的读写示例 -- 修改属性值 self.num = 88 --这里 num 属性声明了 permission = CmpProPermission.Private 表示该属性是私有的,其他组件是无法读写的。组件的属性默认是 Public 公开的。 -- 获取属性变量 if self.num then self.size = self.num + 1 end end return Script 组件的数据存储 local Script = {} Script.propertys = { -- 完整定义一个变量数字,属性字段为num num = { type = Mini.Number, -- 属性类型 default = 100, -- 默认值 displayName = "数字", -- 属性别名 }, age = { type = Mini.Number, -- 属性类型 default = 100, -- 默认值 displayName = "数字", -- 属性别名 isSave = false -- 表示不自动存数据,每次进游戏或者出了区块重新加载都是默认值 }, } function Script:OnStart() -- 组件存数据除了全局kv,变量等变量库的方式,还有组件属性本身也是会自动落地,只有声明了isSave = false 不保存默认都会存 -- 没有特殊情况尽量用属性存,不要用全局变量存,这样就不需要自行维护对象是否删除。 -- 数据不希望别人能修改可以设置属性为私有,或者只读 end return Script ::: 组件的生命周期函数 示例 更多参考 组件函数 local Script = {} -- 组件启动时调用 function Script:OnStart() --在这个函数初始化,监听事件等 -- 监听触发器事件 玩家点击方块事件 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) end function Script:OnPlayerClickBlock(event) print("玩家点击方块") end --定义了OnTick 则会有驱动。不需要时候尽量不定义tick,提高效率, --定时逻辑可使用定时器代替 function Script:OnTick(dt) end -- 当组件删除 function Script:OnDestroy() end return Script 组件函数访问权限配置 示例 注意: 组件函数默认是私有函数,开放给其他组件调用时候需要额外配置,否则访问不到 local Script = {} -- 定义组件表 --属性 Script.propertys = { -- 完整定义一个变量数字,属性字段为num num = { type = Mini.Number, -- 属性类型 default = 100, -- 默认值 displayName = "数字", -- 属性别名 -- 最大值等 其他属性说明配置参考属性说明 }, --大部分属性类型支持简单定义, 比如: age = 8, str = "你好!", bool = true, color = Mini.Color(255, 0, 0, 255), -- 红色 } -- 需要开放给别的组件访问的函数需要配置(配置后触发器也能访问) Script.openFnArgs = { -- 函数开放配置示例 Add = { returnType = Mini.Number, -- 返回值(不填则为无返回值) displayName = "函数别名", -- 触发器上显示的别名(不填缺省则显示函数名Add) params = {Mini.Number, Mini.Number},-- 参数列表类型(不填则为无参数) }, -- 只想支持其他脚本组件访问,不需要支持触发器的简单写法可以直接配置 -- Add = true, } -- 函数定义示例 function Script:Add(a, b) if a and b then return a + b end end -- 组件启动时调用 function Script:OnStart() -- 调用自己定义的函数示例, ps:调用本组件的函数不需要任何配置 local result = self:Add(1, 2) print("result", result) end return Script -- 返回组件定义的表 组件的相互操作 示例 -- 组件A local Script = {} -- 定义组件表 -- 需要开放给别的组件访问的函数需要配置(配置后触发器也能访问) Script.openFnArgs = { -- 函数开放配置示例 Add = { returnType = Mini.Number, -- 返回值(不填则为无返回值) displayName = "函数别名", -- 触发器上显示的别名(不填缺省则显示函数名Add) params = {Mini.Number, Mini.Number},-- 参数列表类型(不填则为无参数) }, -- 只想支持其他脚本组件访问,不需要支持触发器的简单写法可以直接配置 -- Add = true, } -- 函数定义示例 function Script:Add(a, b) if a and b then return a + b end end -- 组件启动时调用 function Script:OnStart() -- 调用自己定义的函数示例, ps:调用本组件的函数不需要任何配置 local result = self:Add(1, 2) print("result", result) end return Script -- 返回组件定义的表 -- 组件B local Script = {} -- 定义组件表 -- 组件启动时调用 function Script:OnStart() -- 同对象下操作 -- 获取对象上组件A local cmpA = self:GetComponent("组件id") --组件id需要通过迷你世界脚本编辑器顶部选择【ID库】——【组件】插入 -- 调用组件A的函数 local result = cmpA:Add(1, 2) print("result", result) -- 跨对象操作 -- 获取一般对象 local obj = GameObject:FindObject("对象id") -- 世界对象的获取方式 local world = GetWorld() -- 获取对象上组件A local cmpA = world:GetComponent("组件id") --组件id需要通过迷你世界脚本编辑器顶部选择【ID库】——【组件】插入 if cmpA then -- 调用组件A的函数 local result = cmpA:Add(1, 2) print("result", result) --获取cmpA组件的age属性 local age = cmpA.age --设置cmpA的age属性值为123 ,官方和开发者的操作都是一样的 cmpA.age = 123 end end return Script -- 返回组件定义的表 组件使用简单示例 组件互相操作 组件的相互操作 示例 -- 组件A local Script = {} -- 定义组件表 -- 需要开放给别的组件访问的函数需要配置(配置后触发器也能访问) Script.openFnArgs = { -- 函数开放配置示例 Add = { returnType = Mini.Number, -- 返回值(不填则为无返回值) displayName = "函数别名", -- 触发器上显示的别名(不填缺省则显示函数名Add) params = {Mini.Number, Mini.Number},-- 参数列表类型(不填则为无参数) }, -- 只想支持其他脚本组件访问,不需要支持触发器的简单写法可以直接配置 -- Add = true, } -- 函数定义示例 function Script:Add(a, b) if a and b then return a + b end end -- 组件启动时调用 function Script:OnStart() -- 调用自己定义的函数示例, ps:调用本组件的函数不需要任何配置 local result = self:Add(1, 2) print("result", result) end return Script -- 返回组件定义的表 -- 组件B local Script = {} -- 定义组件表 -- 组件启动时调用 function Script:OnStart() -- 同对象下操作 -- 获取对象上组件A local cmpA = self:GetComponent("组件id") --组件id需要通过迷你世界脚本编辑器顶部选择【ID库】——【组件】插入 -- 调用组件A的函数 local result = cmpA:Add(1, 2) print("result", result) -- 跨对象操作 -- 获取一般对象 local obj = GameObject:FindObject("对象id") -- 世界对象的获取方式 local world = GetWorld() -- 获取对象上组件A local cmpA = world:GetComponent("组件id") --组件id需要通过迷你世界脚本编辑器顶部选择【ID库】——【组件】插入 if cmpA then -- 调用组件A的函数 local result = cmpA:Add(1, 2) print("result", result) --获取cmpA组件的age属性 local age = cmpA.age --设置cmpA的age属性值为123 ,官方和开发者的操作都是一样的 cmpA.age = 123 end end return Script -- 返回组件定义的表 组件使用简单示例 组件函数 组件上的API函数名及描述如下: 序号 函数名 函数描述 1 GetGameObject(...) 获取该组件挂载的对象实例 2 GetGameObjectId(...) 获取组件挂载的对象实例id 3 IsValid(...) 获取组件是否有效 4 AddComponent(...) 在组件所在的对象上添加指定组件 5 RemoveComponent(...) 删除在组件所在的对象上的指定组件 6 GetComponent(...) 获取组件所在对象上的指定组件 7 PushCustomEvent(...) 发送自定义消息(异步) 8 PushCustomEventSync(...) 发送自定义消息(同步) 9 AddCustomEvent(...) 监听自定义消息(广播) 10 RemoveCustomEvent(...) 移除自定义事件监听 11 AddTriggerEvent(...) 添加触发事件 12 RemoveTriggerEvent(...) 移除触发事件监听 13 PushEvent(...) 发送对象事件(异步) 14 PushEventSync(...) 发送对象事件(同步) 15 AddEvent(...) 监听对象事件 16 RemoveEvent(...) 移除对象的事件监听 17 DoTaskInTime(...) 启动定时器在指定时间执行任务 18 DoPeriodicTask(...) 启动定时器周期性执行任务 19 ClearAllTask(...) 清除所有定时器任务 20 SetEventIsEnable(...) 设置是否启用事件 21 ThreadWork(...) 启动新协程 22 ThreadWait(...) 线程等待 23 PushCloudServerMsg(...) 发送云服广播消息(异步) 24 AddCloudSeverEvent(...) 添加云服消息监听(异步) 25 RemoveCloudSeverEvent(...) 移除云服消息监听(异步) GetGameObject 参数及类型: 无 返回值及类型: ret:GameObject 挂载对象 该方法的主要作用: 获取该组件挂载的对象实例 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 该组件挂载的对象实例 local object = self:GetGameObject() -- 可以使用 object 直接操作对象 -- 例如:给对象打上标签 object:AddTag("这是恐龙类型") end return Script GetGameObjectId 参数及类型: 无 返回值及类型: ret:GameObject 挂载对象 该方法的主要作用: 获取组件挂载的对象实例id 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 该组件挂载的对象实例 --ui 获取的是ui的工程id, 方块获取的是方块的类型id, 其他类型获取的是对象的实例id local id = self:GetGameObjectId() end return Script IsValid 参数及类型: 无 返回值及类型: ret:boolean 是否有效 该方法的主要作用: 获取组件是否有效 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() local isValid = self:IsValid() if isValid then print("组件有效") else print("组件无效") end -- 操作缓存的其他组件的,需要先判断组件是否有效,避免相关组件被销毁后,操作无效 if self.otherCmp and self.otherCmp:IsValid() then self.otherCmp:DoSomething() end end return Script AddComponent 参数及类型: string 组件id 返回值及类型: ret:component 组件对象 该方法的主要作用:在组件所在的对象上添加指定组件(对象已经存在相同id组件的则添加不上) 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 获取组件 local cmp = self:AddComponent("组件id") if cmp then print("组件添加成功") cmp:DoSomething() else print("组件添加失败") end end return Script RemoveComponent 参数及类型: string 组件id 返回值及类型: ret: 无 该方法的主要作用:删除在组件所在的对象上的指定组件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 删除组件 self:RemoveComponent("组件id") end return Script GetComponent 参数及类型: string 组件id 返回值及类型: ret:component 组件对象 该方法的主要作用:获取组件所在对象上的指定组件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 添加组件 local cmp = self:GetComponent("组件id") if cmp then print("获取到组件") cmp:DoSomething() else print("获取组件失败") end end return Script PushCustomEvent 参数及类型: string 消息id 多个基本数据类型 消息内容 返回值及类型: ret: 无 该方法的主要作用:发送自定义消息(异步) 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 消息id, 3个参数:"消息参数1", 100, true self:PushCustomEvent("消息id", "消息参数1", 100, true) -- 自定义消息id 使用触发器的广播id 则触发器也能收到消息, -- 参数类型需要跟触发器广播的定义对应上 end return Script PushCustomEventSync 参数及类型: string 消息id 多个基本数据类型 消息内容 返回值及类型: ret: 无 该方法的主要作用:发送自定义消息(同步) 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 消息id, 3个参数:"消息参数1", 100, true self:PushCustomEventSync("消息id", "消息参数1", 100, true) -- 自定义消息id 使用触发器的广播id 则触发器也能收到消息, --参数类型需要跟触发器广播的定义对应上 end return Script AddCustomEvent 参数及类型: string 消息id function 回调函数 返回值及类型: ret: 无 该方法的主要作用:监听自定义消息(广播) 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 第一种写法 -- 自定义消息id 使用触发器的广播id 则触发器发送的消息会触发回调函数 self:AddCustomEvent("消息id", self.OnCustomEvent) -- 第二种写法 self:AddCustomEvent("消息id", function(cmp,eventId, param1, param2, param3) print("收到自定义消息", eventId, param1, param2, param3) end) end function Script:OnCustomEvent(eventId, param1, param2, param3) -- 假如广播发了3个参数, 1,2,3 -- 则param1, param2, param3 的值分别为 1, 2, 3 print("收到自定义消息", eventId, param1, param2, param3) end return Script RemoveCustomEvent 参数及类型: string 消息id 返回值及类型: ret: 无 该方法的主要作用:移除自定义事件监听 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 删除组件中监听的自定义消息(删除该组件全部 "消息id" 的监听) self:RemoveCustomEvent("消息id") end return Script AddTriggerEvent 参数及类型: string 事件类型 function 回调函数 number|string 过滤参数1(可不传) 使用请参考触发器事件参数过滤 number|string 过滤参数2(可不传) 返回值及类型: ret: 无 该方法的主要作用:添加触发事件(该函数只在ui跟世界类型组件有效)可以监听的事件列表参考触发器事件管理 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 添加点击方块事件 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) --监听玩家进入区域事件 -- self:AddTriggerEvent(TriggerEvent.PlayerAreaIn, self.OnPlayerAreaIn,4297367315) --监听玩家点击界面id事件 -- self:AddTriggerEvent(TriggerEvent.UIButtonClick, self.OnBtnClick, "7589854082086094858-57016_1") --仅UI组件可用 end function Script:OnPlayerClickBlock(event) -- event.blockid 事件中的方块类型 -- event.x 事件中的x坐标 -- event.y 事件中的y坐标 -- event.z 事件中的z坐标 print("玩家点击方块") end return Script RemoveTriggerEvent 参数及类型: string 事件类型 返回值及类型: ret: 无 该方法的主要作用:移除触发事件监听 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 删除组件中监听点击方块事件 self:RemoveTriggerEvent(TriggerEvent.PlayerClickBlock) end return Script PushEvent 参数及类型: string 自定义事件类型 多个基本数据类型 事件内容 返回值及类型: ret: 无 该方法的主要作用:发送对象事件(异步), 只有同个对象上监听的组件才能收到事件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 自定义事件类型, 3个参数:"参数1", 100, true self:PushEvent("自定义事件类型1", "参数1", 100, true) end return Script PushEventSync 参数及类型: string 自定义事件类型 多个基本数据类型 消息内容 返回值及类型: ret: 无 该方法的主要作用:发送对象事件(同步), 只有同个对象上监听的组件才能收到事件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 自定义事件类型, 3个参数:"参数1", 100, true self:PushEventSync("自定义事件类型1", "参数1", 100, true) end return Script AddEvent 参数及类型: string 事件类型 function 回调函数 number 事件触发的优先级(可不传) number|string 事件过滤参数1(可不传) number|string 事件过滤参数2(可不传) 返回值及类型: ret: 无 该方法的主要作用:监听对象事件(可以监听自定义的,也能监听官方内置对象事件)可以监听的事件列表参考组件事件管理 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 监听此对象收到伤害事件 self:AddEvent(ObjectEvent.ObjectBeHurt, self.OnObjectBeHurt) -- 监听对象自定义事件 self:AddEvent("自定义事件类型1", self.OnEvent) --添加监听事件并且只按Q触发事件 -- self:AddEvent(ObjectEvent.PlayerInputKeyDown, self.OnInputKey, nil, KeyCode.Q) --添加监听血量变化事件 -- self:AddEvent(ObjectEvent.ObjectChangeAttr, self.OnChangeAttr, nil, RoleAttr.CurHp) end function Script:OnObjectBeHurt(event) print("此对象(玩家/生物)受到伤害") end function Script:OnEvent(event) print("收到自定义事件") end return Script RemoveEvent 参数及类型: string 事件类型 返回值及类型: ret: 无 该方法的主要作用:移除对象的事件监听 具体使用案例如下: local Script = {} function Script:OnStart() self:RemoveEvent(ObjectEvent.ObjectBeHurt) end return Script DoTaskInTime 参数及类型: function 回调函数 number 时间间隔(秒) 返回值及类型: ret: 无 该方法的主要作用:启动定时器在指定时间执行任务 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 10秒后执行回调函数 local task = self:DoTaskInTime(self.OnTime, 10) --task:Pause() -- 暂停定时器 --task:Resume() -- 恢复定时器 --task:Cancel() -- 取消定时器 end function Script:OnTime() print("10秒后执行") end return Script DoPeriodicTask 参数及类型: function 回调函数 number 间隔时间(秒) number 延迟开始第一次执行时间(默认0) number 执行次数(默认无限次) 返回值及类型: ret: 无 该方法的主要作用:启动定时器周期性执行任务 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 每10秒执行一次 local task = self:DoPeriodicTask(self.OnTask, 10) --task:Pause() -- 暂停定时器 --task:Resume() -- 恢复定时器 --task:Cancel() -- 取消定时器 end function Script:OnTask() print("10秒执行一次") end return Script ClearAllTask 参数及类型: 无 返回值及类型: ret: 无 该方法的主要作用:清除所有定时器任务 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 清除所有定时器任务 self:ClearAllTask() end return Script SetEventIsEnable 参数及类型: function 事件回调函数 boolean 是否启用 返回值及类型: ret: 无 该方法的主要作用:设置是否启用事件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) -- 暂时不需要触发事件的,可以设置事件不会被触发, 也可以通过删除事件屏蔽 self:SetEventIsEnable(self.OnPlayerClickBlock, false) end function Script:OnPlayerClickBlock(event) print("玩家点击方块") end return Script ThreadWork 参数及类型: function 协程执行函数 返回值及类型: ret: 无 该方法的主要作用:启动新协程 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 启动线程 self:ThreadWork(function() print("线程启动") end) end return Script ThreadWait 参数及类型: number 等待时间(默认一帧) 返回值及类型: ret: 无 该方法的主要作用:启动新协程 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 等待1秒 self:ThreadWait(1) end return Script PushCloudServerMsg 参数及类型: string 自定义事件类型 多个基本数据类型 事件内容 返回值及类型: ret: 无 该方法的主要作用:发送云服广播消息(异步), 只有同个对象上监听的组件才能收到事件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 发送自定义消息 id为 自定义事件类型, 3个参数:"参数1", 100, true self:PushCloudServerMsg("消息类型", "参数1", 100, true) end return Script AddCloudSeverEvent 参数及类型: string 事件类型 function 回调函数 返回值及类型: ret: 无 该方法的主要作用:接收云服事件 可以监听的事件列表参考组件事件管理 具体使用案例如下: local Script = {} function Script:OnStart() self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) self:AddCloudSeverEvent("cloudmsg", self.OnCloudMsgEvent) end function Script:OnPlayerClickBlock(event) self:PushCloudServerMsg("cloudmsg", 999, "this is a cloud message") end function Script:OnCloudMsgEvent(event) --输出到调试窗口日志 local customEventParams = event.CustomEventParams or {} print("收到云服广播 ", customEventParams[1],customEventParams[2]) end return Script RemoveCloudSeverEvent 参数及类型: string 消息id 返回值及类型: ret: 无 该方法的主要作用:移除云服消息监听 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 删除组件中监听的自定义消息(删除该组件全部 "消息id" 的监听) self:RemoveCloudSeverEvent("消息id") end return Script 组件属性 序号 属性名 属性描述 1 Mini.Number 数值 2 Mini.String 字符串 3 Mini.Bool 布尔值 4 Mini.Color 颜色 5 Mini.Vec3 位置 6 Mini.MobType 生物类型 7 Mini.Block 方块类型 8 Mini.Item 道具类型 9 Mini.Effect 特效类型 10 Mini.Picture 图片 11 Mini.Buff 状态 12 Mini.Sound 音效 13 Mini.Model 外观 以下是类型特殊详细说明: Mini.Number 参数及类型: number:number数值 属性配置举例: { type = Mini.Number,-- 类型 default = 100,-- 默认值 displayName = "数字",-- 属性别名 sort = 1, -- 属性排序 minValue = -1000, -- 最小值 maxValue = 1000,-- 最大值 format = "%.0f米", -- 单位,可不填 %.0f 整数, %.1f 一位小数 style = ComponentUIStyle.NumberSlider,--属性控件样式滑动条 -- tips = "这是一个脚本组件的数值属性变量", -- stride =1, --步长 }, 数值属性style样式介绍 样式枚举 说明 效果图例 ComponentUIStyle.NumberSlider 滑动条 滑动条 ComponentUIStyle.NumberButton 按钮 按钮 ComponentUIStyle.NumberOnlyInput 输入框 输入框 Mini.String 参数及类型: string:string字符串 属性配置举例: { type = Mini.String,-- 类型 default = "您好!",-- 默认值 displayName = "字符串",-- 属性别名 sort = 1, -- 属性排序 multiLine = false, -- 是否多行 maxLength = 10, -- 最多10个字符 -- tips = "属性作用提示", }, Mini.Bool 参数及类型: bool:boolean布尔值 属性配置举例: { type = Mini.Bool,-- 类型 default = true,-- 默认值 displayName = "布尔值",-- 属性别名 sort = 1, -- 属性排序 -- tips = "属性作用提示", }, Mini.Color 参数及类型: color: number,string 16进制颜色值或字符串 属性配置举例: { type = Mini.Color,-- 类型 default = 0xFFFFFF,-- 默认值 displayName = "颜色",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Vec3 参数及类型: vec3:table三维坐标xyz 属性配置举例: { type = Mini.Vec3,-- 类型 default = Mini.Vec3(0, 0, 0),-- 默认值 displayName = "位置", -- displayNames = {"yaw", "pitch", "roll"},-- 单个字段别名,不填写默认为X,Y,Z sort = 1, -- format = "%.2f",-- %.0f 整数, %.1f 一位小数 -- minValue = -10000,-- 最小值, 也可配置 {-10000, -20000, -30000} -- maxValue = 10000,-- 最大值, 也可配置 {10000, 20000, 30000} -- tips = "属性作用提示", }, Mini.MobType 参数及类型: mobtype: number,string 官方生物类型id或prefab预制id 属性配置举例: { type = Mini.MobType,-- 类型 default = 3400,-- 默认值 displayName = "生物类型",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Block 参数及类型: block: number,string 官方方块类型id或prefab预制id 属性配置举例: { type = Mini.Block,-- 类型 default = 100,-- 默认值 displayName = "方块类型",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Item 参数及类型: item: number,string 官方道具类型id或prefab预制id 属性配置举例: { type = Mini.Item,-- 类型 default = 11668,-- 默认值 displayName = "道具",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Effect 参数及类型: effect: number 官方特效类型id 属性配置举例: { type = Mini.Effect,-- 类型 default = 1051,-- 默认值 displayName = "特效",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Picture 参数及类型: picture:string图片id 属性配置举例: { type = Mini.Picture,-- 类型 default = "0_10001",-- 默认值 displayName = "图片",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Buff 参数及类型: buff: number string 官方状态类型id或prefab预制id 属性配置举例: { type = Mini.Buff,-- 类型 default = 6002,-- 默认值 displayName = "状态",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Sound 参数及类型: sound:number string 官方音效类型id或prefab预制id 属性配置举例: { type = Mini.Sound,-- 类型 default = 10713,-- 默认值 displayName = "boss出场音效",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, Mini.Model 参数及类型: model:string模型id 属性配置举例: { type = Mini.Model,-- 类型 default = "mob_3510",-- 默认值 displayName = "模型",-- 属性别名 sort = 1, -- tips = "属性作用提示", }, 触发器事件管理 添加监听函数调用方式参考:组件函数 注意:事件中参数如果是nil,则可以用 CurEventParam 来替代获取,字段名如下: CurEventParam.EventTargetPos 事件中的位置 CurEventParam.EventBuff 事件中的状态效果 CurEventParam.EventTargetEffect 事件中的特效 CurEventParam.EventTargetBlock 事件中的方块类型 CurEventParam.EventShortCutIdx 事件中的快捷栏 CurEventParam.EquipItemPos 事件中的装备栏 CurEventParam.EventElementID 事件中的元件 CurEventParam.EventUIID 事件中的界面 CurEventParam.EventString 事件中的字符串 CurEventParam.SelectUIID 当前编辑的界面 CurEventParam.EventAreaid 事件中的区域 CurEventParam.Hurtlv 事件中伤害值 CurEventParam.TriggerByPlayer 触发事件的玩家 CurEventParam.EventTargetPlayer 事件中的目标玩家 CurEventParam.TriggerByCreature 触发事件的生物 CurEventParam.EventTargetCreature 事件中的目标生物 CurEventParam.Actorid 触发事件的生物类型 CurEventParam.targetactorid 事件中的目标生物类型 CurEventParam.EventTargetItemID 事件中的道具类型 CurEventParam.TriggerByMissile 触发事件的投射物 CurEventParam.EventTargetDropItem 事件中的掉落物 CurEventParam.Itemnum 事件中的道具数量 CurEventParam.eventworldid 事件中的星球 事件参数添加参数过滤 注意:部分高频率事件可以添加过滤参数用以提高执行效率,特别是云服房间。添加过滤之后将提高帧率。如果第三个参数传 nil 或者 "",则不会进行过滤。 self:AddTriggerEvent(TriggerEvent.PlayerAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.PlayerAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.MobAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.MobAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.MissileAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.MissileAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.DropItemAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.DropItemAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.DropItemAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.EntityAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.EntityAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.EntityAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.AreaObjAreaIn, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.AreaObjAreaOut, eventfunc,areaid) -- 自主修改 eventfunc 和 areaid self:AddTriggerEvent(TriggerEvent.MobChangeAttr, eventfunc, RoleAttr.CurHp) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerChangeAttr, eventfunc, RoleAttr.CurHp) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.MinitimerChange, eventfunc, timerid) -- 自主修改 eventfunc 和 计时器ID self:AddTriggerEvent(TriggerEvent.PlayerGunAction, eventfunc, GunState.Entry,GunAction.Equip) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.MobAttrStateChange, eventfunc, Ability.Walking) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerAttrStateChange, eventfunc, Ability.Walking) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerMotionStateChange, eventfunc, RoleMotion.Walk) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerMotionStateChangeEnd, eventfunc, RoleMotion.Walk) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerInputKeyDown, eventfunc, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerInputKeyOnPress, eventfunc, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerInputKeyUp, eventfunc, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.PlayerInputKeyClick, eventfunc, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddTriggerEvent(TriggerEvent.UIShow, eventfunc, uiid) -- 自主修改 eventfunc 和 uiid(界面ID) self:AddTriggerEvent(TriggerEvent.UIHide, eventfunc, uiid) -- 自主修改 eventfunc 和 uiid(界面ID) self:AddTriggerEvent(TriggerEvent.UIButtonClick, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIButtonTouchBegin, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIButtonTouchEnd, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIButtonLongPress, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UILostFocus, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UISpineComplete, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIGLoader3DTouchBegin, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIGLoader3DTouchEnd, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIGLoader3DTouchClick, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIGLoader3DLongPress, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UISpineComplete, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIScrollPaneTouchBegin, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIScrollPaneTouchEnd, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) self:AddTriggerEvent(TriggerEvent.UIScrollPaneScrollEnd, eventfunc, elementid) -- 自主修改 eventfunc 和 elementid(元件ID) 简单示例: --这个脚本的作用是当玩家点击草块时,把草块变成钛合金 -- 官方定义的函数,不能修改变动 local Script = {} -- 组件启动时调用 function Script:OnStart() -- 玩家点击方块事件 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.Player_Click) --AddTriggerEvent(TriggerEvent.PlayerClickBlock是官方提供的事件监听,可以在wiki中查看更多的事件 --self.Player_Click 是自定义的一个函数名,可以改成其他你喜欢的 end -- 定义事件触发时的动作 function Script:Player_Click(event) local param = event.CurEventParam -- 玩家点击方块时,判断点的是否是草块 if event.blockid == 100 then local success = Block:ReplaceBlock(452, event.x, event.y, event.z) -- Block:ReplaceBlock是官方提供的放置方块方法,可以在wiki中查看更多的方法 -- local success 用来接收Block:ReplaceBlock运行后的结果,可以用来做是否成功放置的判断 end end -- 官方定义的函数,不能修改变动 return Script 游戏 序号 事件名 事件名描述 0 TriggerEvent.GroupWeatherChanged 当地形组的天气改变 1 TriggerEvent.GameStart 游戏创建 2 TriggerEvent.GameHour 游戏时间 3 TriggerEvent.MinitimerChange 任意计时器改变 4 TriggerEvent.CraftEnd 配方合成完毕 5 TriggerEvent.TimelineStart 当 剧情动画 开始 6 TriggerEvent.TimelineStop 当 剧情动画 结束 7 TriggerEvent.FurnaceBegin 当 熔炼 开始 8 TriggerEvent.FurnaceEnd 当 熔炼 结束 triggerevent-groupweatherchanged 事件描述: 当地形组的天气改变 事件名: TriggerEvent.GroupWeatherChanged 事件传参: 参数名 说明 weathergroupid 事件中的天气组 triggerevent-gamestart 事件描述: 游戏创建 事件名: TriggerEvent.GameStart 事件传参: 无 triggerevent-gamehour 事件描述: 游戏时间 事件名: TriggerEvent.GameHour 事件传参: 参数名 说明 hour 小时 triggerevent-minitimerchange 事件描述: 任意计时器改变 事件名: TriggerEvent.MinitimerChange 事件传参: 参数名 说明 timerid 计时器ID timername 计时器名称 timertime 计时器时间 triggerevent-craftend 事件描述: 配方合成完毕 事件名: TriggerEvent.CraftEnd 事件传参: 参数名 说明 craftid 事件中的配方ID itemid 事件中的道具类型 itemnum 事件中的道具数量 actorid 触发事件的生物类型(玩家对象没有此参数) eventobjid 触发事件的对象(第一个放入道具的对象) x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-timelinestart 事件描述: 当 剧情动画 开始 事件名: TriggerEvent.TimelineStart 事件传参: 参数名 说明 customdata 动画ID defaultvalue 开始时间 second 结束时间 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-timelinestop 事件描述: 当 剧情动画 结束 事件名: TriggerEvent.TimelineStop 事件传参: 参数名 说明 customdata 动画ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-furnacebegin 事件描述: 当 熔炼 开始 事件名: TriggerEvent.FurnaceBegin 事件传参: 参数名 说明 furanceid 事件中的熔炼ID x 事件中位置X y 事件中位置Y z 事件中位置Z triggerevent-furnaceend 事件描述: 当 熔炼 结束 事件名: TriggerEvent.FurnaceEnd 事件传参: 参数名 说明 furanceid 事件中的熔炼ID x 事件中位置X y 事件中位置Y z 事件中位置Z 玩家 序号 事件名 事件名描述 0 TriggerEvent.PlayerRevive 玩家复活 1 TriggerEvent.PlayerMoveOneBlockSize 玩家移动 2 TriggerEvent.PlayerSelectShortcut 玩家选中快捷栏 3 TriggerEvent.PlayerInvateFriend 玩家邀请好友 4 TriggerEvent.GameAnyPlayerEnterGame 当 玩家 进入游戏 5 TriggerEvent.GameAnyPlayerLeaveGame 当 玩家 离开游戏 6 TriggerEvent.GameAnyPlayerVictory 当 玩家 游戏胜利 7 TriggerEvent.GameAnyPlayerDefeat 当 玩家 游戏失败 8 TriggerEvent.PlayerClickBlock 当 玩家 点击任意方块 9 TriggerEvent.PlayerClickPlayer 当 玩家 点击任意玩家 10 TriggerEvent.PlayerClickMob 当 玩家 点击任意生物 11 TriggerEvent.PlayerClickProjectile 当 玩家 点击任意投掷物 12 TriggerEvent.PlayerClickDropItem 当 玩家 点击任意掉落物 13 TriggerEvent.PlayerClickEntity 当 玩家 点击任意实体 14 TriggerEvent.PlayerInputKeyClick 当 任意玩家 点击 按键 15 TriggerEvent.PlayerInputKeyDown 当 任意玩家 按下 按键 16 TriggerEvent.PlayerInputKeyUp 当 任意玩家 抬起 按键 17 TriggerEvent.PlayerInputKeyOnPress 当 任意玩家 长按 按键 18 TriggerEvent.PlayerNewInputContent 玩家发送聊天信息 19 TriggerEvent.PlayerGunAction 当玩家持枪状态改变时 20 TriggerEvent.PlayerMotionStateChange 当 玩家进入运动状态 21 TriggerEvent.PlayerMotionStateChangeEnd 当 玩家离开运动状态 22 TriggerEvent.PlayerAddItem 当 玩家 获得道具 23 TriggerEvent.PlayerUseItem 当 玩家 开始使用道具 24 TriggerEvent.PlayerChargeItemBegin 当 玩家 开始蓄力道具 25 TriggerEvent.PlayerConsumeItem 当 玩家 消耗道具 26 TriggerEvent.PlayerPickUpItem 当 玩家 拾取道具 27 TriggerEvent.PlayerDiscardItem 当 玩家 丢弃道具 28 TriggerEvent.PlayerChargeItemEnd 当 玩家 结束蓄力道具 29 TriggerEvent.PlayerShortcutChange 当 玩家的 快捷栏 发生改变 30 TriggerEvent.PlayerShortcutAddItem 当 玩家的 快捷栏 放入道具 31 TriggerEvent.PlayerShortcutRemItem 当 玩家的 快捷栏 取出道具 32 TriggerEvent.PlayerBackPackChange 当 玩家的 背包栏 发生改变 33 TriggerEvent.PlayerBackPackAddItem 当 玩家的 背包栏 放入道具 34 TriggerEvent.PlayerBackPackRemItem 当 玩家的 背包栏 取出道具 35 TriggerEvent.PlayerEquipChange 当 玩家的 装备栏 发生改变 36 TriggerEvent.PlayerEquipAddItem 当 玩家的 装备栏 放入道具 37 TriggerEvent.PlayerEquipRemItem 当 玩家的 装备栏 取出道具 38 TriggerEvent.PlayerEquipOn 当 玩家 穿上 装备 39 TriggerEvent.PlayerEquipOff 当 玩家 脱下 装备 40 TriggerEvent.PlayerOpenInnerView 当 任意玩家 打开 游戏 内部页面 界面 41 TriggerEvent.PlayerCloseInnerView 当 任意玩家 关闭 游戏 内部页面 界面 triggerevent-playerrevive 事件描述: 玩家复活 事件名: TriggerEvent.PlayerRevive 事件传参: 参数名 说明 defaultvalue 复活方式 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playermoveoneblocksize 事件描述: 玩家移动 事件名: TriggerEvent.PlayerMoveOneBlockSize 事件传参: 参数名 说明 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerselectshortcut 事件描述: 玩家选中快捷栏 事件名: TriggerEvent.PlayerSelectShortcut 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerinvatefriend 事件描述: 玩家邀请好友 事件名: TriggerEvent.PlayerInvateFriend 事件传参: 参数名 说明 eventobjid 触发事件的玩家 x,y,z 事件中的位置 toobjid 事件中的目标对象 eventworldid 事件中的星球 triggerevent-gameanyplayerentergame 事件描述: 当 玩家 进入游戏 事件名: TriggerEvent.GameAnyPlayerEnterGame 事件传参: 参数名 说明 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-gameanyplayerleavegame 事件描述: 当 玩家 离开游戏 事件名: TriggerEvent.GameAnyPlayerLeaveGame 事件传参: 参数名 说明 eventobjid 触发事件的玩家 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z triggerevent-gameanyplayervictory 事件描述: 当 玩家 游戏胜利 事件名: TriggerEvent.GameAnyPlayerVictory 事件传参: 参数名 说明 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-gameanyplayerdefeat 事件描述: 当 玩家 游戏失败 事件名: TriggerEvent.GameAnyPlayerDefeat 事件传参: 参数名 说明 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerclickblock 事件描述: 当 玩家 点击任意方块 事件名: TriggerEvent.PlayerClickBlock 事件传参: 参数名 说明 blockid 事件中的方块类型 eventobjid 触发事件的玩家 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z triggerevent-playerclickplayer 事件描述: 当 玩家 点击任意玩家 事件名: TriggerEvent.PlayerClickPlayer 事件传参: 参数名 说明 eventobjid 触发事件的玩家 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerclickmob 事件描述: 当 玩家 点击任意生物 事件名: TriggerEvent.PlayerClickMob 事件传参: 参数名 说明 eventobjid 触发事件的玩家 toobjid 事件中的目标生物 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerclickprojectile 事件描述: 当 玩家 点击任意投掷物 事件名: TriggerEvent.PlayerClickProjectile 事件传参: 参数名 说明 eventobjid 触发事件的玩家 toobjid 事件中的目标投掷物 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerclickdropitem 事件描述: 当 玩家 点击任意掉落物 事件名: TriggerEvent.PlayerClickDropItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 toobjid 事件中的目标掉落物 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerclickentity 事件描述: 当 玩家 点击任意实体 事件名: TriggerEvent.PlayerClickEntity 事件传参: 参数名 说明 eventobjid 触发事件的玩家 toobjid 事件中的目标实体 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerinputkeyclick 事件描述: 当 任意玩家 点击 按键 事件名: TriggerEvent.PlayerInputKeyClick 事件传参: 参数名 说明 vkey 事件中的按键 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerinputkeydown 事件描述: 当 任意玩家 按下 按键 事件名: TriggerEvent.PlayerInputKeyDown 事件传参: 参数名 说明 vkey 事件中的按键 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerinputkeyup 事件描述: 当 任意玩家 抬起 按键 事件名: TriggerEvent.PlayerInputKeyUp 事件传参: 参数名 说明 vkey 事件中的按键 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerinputkeyonpress 事件描述: 当 任意玩家 长按 按键 事件名: TriggerEvent.PlayerInputKeyOnPress 事件传参: 参数名 说明 vkey 事件中的按键 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playernewinputcontent 事件描述: 玩家发送聊天信息 事件名: TriggerEvent.PlayerNewInputContent 事件传参: 参数名 说明 content 事件中的字符串 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playergunaction 事件描述: 当玩家持枪状态改变时 事件名: TriggerEvent.PlayerGunAction 事件传参: 参数名 说明 gunAction 枪械动作 gunState 枪械状态 x 事件中位置X y 事件中位置Y z 事件中位置Z eventobjid 触发事件的玩家 eventworldid 事件中的星球 triggerevent-playermotionstatechange 事件描述: 当 玩家进入运动状态 事件名: TriggerEvent.PlayerMotionStateChange 事件传参: 参数名 说明 playermotion 玩家行为动作 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playermotionstatechangeend 事件描述: 当 玩家离开运动状态 事件名: TriggerEvent.PlayerMotionStateChangeEnd 事件传参: 参数名 说明 playermotion 玩家行为动作 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playeradditem 事件描述: 当 玩家 获得道具 事件名: TriggerEvent.PlayerAddItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playeruseitem 事件描述: 当 玩家 开始使用道具 事件名: TriggerEvent.PlayerUseItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerchargeitembegin 事件描述: 当 玩家 开始蓄力道具 事件名: TriggerEvent.PlayerChargeItemBegin 事件传参: 参数名 说明 defaultvalue 进度值 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerconsumeitem 事件描述: 当 玩家 消耗道具 事件名: TriggerEvent.PlayerConsumeItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerpickupitem 事件描述: 当 玩家 拾取道具 事件名: TriggerEvent.PlayerPickUpItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerdiscarditem 事件描述: 当 玩家 丢弃道具 事件名: TriggerEvent.PlayerDiscardItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerchargeitemend 事件描述: 当 玩家 结束蓄力道具 事件名: TriggerEvent.PlayerChargeItemEnd 事件传参: 参数名 说明 defaultvalue 进度值 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playershortcutchange 事件描述: 当 玩家的 快捷栏 发生改变 事件名: TriggerEvent.PlayerShortcutChange 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量(小于0是减少) x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playershortcutadditem 事件描述: 当 玩家的 快捷栏 放入道具 事件名: TriggerEvent.PlayerShortcutAddItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playershortcutremitem 事件描述: 当 玩家的 快捷栏 取出道具 事件名: TriggerEvent.PlayerShortcutRemItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerbackpackchange 事件描述: 当 玩家的 背包栏 发生改变 事件名: TriggerEvent.PlayerBackPackChange 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerbackpackadditem 事件描述: 当 玩家的 背包栏 放入道具 事件名: TriggerEvent.PlayerBackPackAddItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerbackpackremitem 事件描述: 当 玩家的 背包栏 取出道具 事件名: TriggerEvent.PlayerBackPackRemItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerequipchange 事件描述: 当 玩家的 装备栏 发生改变 事件名: TriggerEvent.PlayerEquipChange 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerequipadditem 事件描述: 当 玩家的 装备栏 放入道具 事件名: TriggerEvent.PlayerEquipAddItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerequipremitem 事件描述: 当 玩家的 装备栏 取出道具 事件名: TriggerEvent.PlayerEquipRemItem 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerequipon 事件描述: 当 玩家 穿上 装备 事件名: TriggerEvent.PlayerEquipOn 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerequipoff 事件描述: 当 玩家 脱下 装备 事件名: TriggerEvent.PlayerEquipOff 事件传参: 参数名 说明 eventobjid 触发事件的玩家 itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playeropeninnerview 事件描述: 当 任意玩家 打开 游戏 内部页面 界面 事件名: TriggerEvent.PlayerOpenInnerView 事件传参: 参数名 说明 CustomUI 事件中的界面(InnerPopUpview枚举值) eventobjid 触发事件的玩家 x,y,z 事件中的位置 eventworldid 事件中的星球 triggerevent-playercloseinnerview 事件描述: 当 任意玩家 关闭 游戏 内部页面 界面 事件名: TriggerEvent.PlayerCloseInnerView 事件传参: 参数名 说明 CustomUI 事件中的界面(InnerPopUpview枚举值) eventobjid 触发事件的玩家 x,y,z 事件中的位置 eventworldid 事件中的星球 方块 序号 事件名 事件名描述 0 TriggerEvent.BlockAdd 方块被创建 1 TriggerEvent.BlockRemove 当 方块 被被破坏 2 TriggerEvent.BlockDigBegin 当 方块 被被挖掘 3 TriggerEvent.BlockDigEnd 当 方块 被被挖掘完毕 4 TriggerEvent.BlockDigCancel 当 方块 被被挖掘中断 5 TriggerEvent.BlockTrigger 当 方块 开关状态 发生改变 6 TriggerEvent.BlockChangeColor 当 方块 颜色 发生改变 8|TriggerEvent.BlockContainerChange|当 储存容器 内 发生改变 9|TriggerEvent.BlockContainerPutIn|当 储存容器 内 放入道具 10|TriggerEvent.BlockContainerTakeOut|当 储存容器 内 取出道具 triggerevent-blockadd 事件描述: 方块被创建 事件名: TriggerEvent.BlockAdd 事件传参: 参数名 说明 blockid 事件中的方块类型 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z defaultvalue 方块data数据 triggerevent-blockremove 事件描述: 当 方块 被被破坏 事件名: TriggerEvent.BlockRemove 事件传参: 参数名 说明 blockid 事件中的方块类型 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z defaultvalue 方块data数据 triggerevent-blockdigbegin 事件描述: 当 方块 被被挖掘 事件名: TriggerEvent.BlockDigBegin 事件传参: 参数名 说明 blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z actorid 触发事件的生物类型(玩家没有此参数) triggerevent-blockdigend 事件描述: 当 方块 被被挖掘完毕 事件名: TriggerEvent.BlockDigEnd 事件传参: 参数名 说明 blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z actorid 触发事件的生物类型(玩家没有此参数) triggerevent-blockdigcancel 事件描述: 当 方块 被被挖掘中断 事件名: TriggerEvent.BlockDigCancel 事件传参: 参数名 说明 blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z actorid 触发事件的生物类型(玩家没有此参数) triggerevent-blocktrigger 事件描述: 当 方块 开关状态 发生改变 事件名: TriggerEvent.BlockTrigger 事件传参: 参数名 说明 blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z triggerevent-blockchangecolor 事件描述: 当 方块 颜色 发生改变 事件名: TriggerEvent.BlockChangeColor 事件传参: 参数名 说明 actorid 触发事件的生物类型(玩家没有此参数) blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z triggerevent-blockcontainerchange 事件描述: 当 储存容器 内 发生改变 事件名: TriggerEvent.BlockContainerChange 事件传参: 参数名 说明 blockid 事件中的方块类型 eventworldid 事件中的星球 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z triggerevent-blockcontainerputin 事件描述: 当 储存容器 内 放入道具 事件名: TriggerEvent.BlockContainerPutIn 事件传参: 参数名 说明 blockid 事件中的方块类型 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-blockcontainertakeout 事件描述: 当 储存容器 内 取出道具 事件名: TriggerEvent.BlockContainerTakeOut 事件传参: 参数名 说明 blockid 事件中的方块类型 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 界面 序号 事件名 事件名描述 0 TriggerEvent.UILostFocus 玩家在界面输入字符串 1 TriggerEvent.UISpineComplete 当前界面的 元件 动画装载器播放完毕 2 TriggerEvent.UIShow 当前界面被打开 3 TriggerEvent.UIHide 当前界面被关闭 4 TriggerEvent.UIButtonClick 当前界面的元件被点击 5 TriggerEvent.UIButtonTouchBegin 当前界面的元件被按下 6 TriggerEvent.UIButtonTouchEnd 当前界面的元件被抬起 7 TriggerEvent.UIButtonLongPress 当前界面的元件被长按 8 TriggerEvent.UIGLoader3DTouchClick 当前界面的元件被点击 9 TriggerEvent.UIGLoader3DTouchBegin 当前界面的元件被按下 10 TriggerEvent.UIGLoader3DTouchEnd 当前界面的元件被抬起 11 TriggerEvent.UIGLoader3DLongPress 当前界面的元件被长按 12 TriggerEvent.UIScrollPaneTouchBegin 当前界面的触摸滑动开始%2 13 TriggerEvent.UIScrollPaneTouchEnd 当前界面的触摸滑动结束%2 14 TriggerEvent.UIScrollPaneScrollEnd 当前界面的惯性滑动结束%2 triggerevent-uilostfocus 事件描述: 玩家在界面输入字符串 事件名: TriggerEvent.UILostFocus 事件传参: 参数名 说明 CustomUI 事件中的界面 content 事件中的字符串 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uispinecomplete 事件描述: 当前界面的 元件 动画装载器播放完毕 事件名: TriggerEvent.UISpineComplete 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uishow 事件描述: 当前界面被打开 事件名: TriggerEvent.UIShow 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uihide 事件描述: 当前界面被关闭 事件名: TriggerEvent.UIHide 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uibuttonclick 事件描述: 当前界面的元件被点击 事件名: TriggerEvent.UIButtonClick 事件传参: 参数名 说明 CustomUI 事件中的界面 content 事件中的字符串 customdata 自定义字符串数据 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uibuttontouchbegin 事件描述: 当前界面的元件被按下 事件名: TriggerEvent.UIButtonTouchBegin 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uibuttontouchend 事件描述: 当前界面的元件被抬起 事件名: TriggerEvent.UIButtonTouchEnd 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uibuttonlongpress 事件描述: 当前界面的元件被长按 事件名: TriggerEvent.UIButtonLongPress 事件传参: 参数名 说明 CustomUI 事件中的界面 content 事件中的字符串 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uigloader3dtouchclick 事件描述: 当前界面的元件被点击 事件名: TriggerEvent.UIGLoader3DTouchClick 事件传参: 参数名 说明 CustomUI 事件中的界面 content 事件中的字符串 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uigloader3dtouchbegin 事件描述: 当前界面的元件被按下 事件名: TriggerEvent.UIGLoader3DTouchBegin 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uigloader3dtouchend 事件描述: 当前界面的元件被抬起 事件名: TriggerEvent.UIGLoader3DTouchEnd 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uigloader3dlongpress 事件描述: 当前界面的元件被长按 事件名: TriggerEvent.UIGLoader3DLongPress 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uiscrollpanetouchbegin 事件描述: 当前界面的触摸滑动开始%2 事件名: TriggerEvent.UIScrollPaneTouchBegin 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uiscrollpanetouchend 事件描述: 当前界面的触摸滑动结束%2 事件名: TriggerEvent.UIScrollPaneTouchEnd 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-uiscrollpanescrollend 事件描述: 当前界面的惯性滑动结束%2 事件名: TriggerEvent.UIScrollPaneScrollEnd 事件传参: 参数名 说明 CustomUI 事件中的界面 uielement 事件中的元件 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 特效 序号 事件名 事件名描述 0 TriggerEvent.ParticlePosOnCreate 当 特效 创建在任意位置 1 TriggerEvent.ParticleObjectOnCreate 当 特效 创建在任意对象 2 TriggerEvent.ParticlePlayerOnCreate 当 特效 创建在任意玩家 3 TriggerEvent.ParticleMobOnCreate 当 特效 创建在任意生物 4 TriggerEvent.ParticleProjectileOnCreate 当 特效 创建在任意投掷物 5 TriggerEvent.ParticleItemOnCreate 当 特效 创建在任意掉落物 6 TriggerEvent.ParticleEntityOnCreate 当 特效 创建在任意实体 triggerevent-particleposoncreate 事件描述: 当 特效 创建在任意位置 事件名: TriggerEvent.ParticlePosOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-particleobjectoncreate 事件描述: 当 特效 创建在实体 事件名: TriggerEvent.ParticleObjectOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 eventobjid 触发事件的实体 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-particleplayeroncreate 事件描述: 当 特效 创建在任意玩家 事件名: TriggerEvent.ParticlePlayerOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 eventobjid 触发事件的玩家 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-particlemoboncreate 事件描述: 当 特效 创建在任意生物 事件名: TriggerEvent.ParticleMobOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 eventobjid 触发事件的生物 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-particleprojectileoncreate 事件描述: 当 特效 创建在任意投掷物 事件名: TriggerEvent.ParticleProjectileOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 eventobjid 触发事件的投掷物 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-particleitemoncreate 事件描述: 当 特效 创建在任意掉落物 事件名: TriggerEvent.ParticleItemOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 eventobjid 触发事件的掉落物 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-particleentityoncreate 事件描述: 当 特效 创建在任意实体 事件名: TriggerEvent.ParticleEntityOnCreate 事件传参: 参数名 说明 effectid 事件中的特效 eventobjid 触发事件的实体 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 开发者 序号 事件名 事件名描述 0 TriggerEvent.DeveloperBuyItem 任意玩家购买或提取开发者商店道具 triggerevent-developerbuyitem 事件描述: 任意玩家购买或提取开发者商店道具 事件名: TriggerEvent.DeveloperBuyItem 事件传参: 参数名 说明 itemid 事件中的道具类型 itemnum 事件中的道具数量 customdata 道具预制id(不是则没有) eventobjid 触发事件的对象 x,y,z 事件中的位置 eventworldid 事件中的星球 对象 序号 事件名 事件名描述 0 TriggerEvent.PlayerCollideToPlayer 当 任意玩家和任意玩家 碰撞开始 1 TriggerEvent.PlayerCollideToMob 当 任意玩家和任意生物 碰撞开始 2 TriggerEvent.PlayerCollideToMissile 当 任意玩家和任意投掷物 碰撞开始 3 TriggerEvent.PlayerCollideToDropItem 当 任意玩家和任意掉落物 碰撞开始 4 TriggerEvent.PlayerCollideToEntity 当 任意玩家和任意实体 碰撞开始 5 TriggerEvent.PlayerCollideToAreaObj 当 任意玩家和任意区域 碰撞开始 6 TriggerEvent.MobCollideToPlayer 当 任意生物和任意玩家 碰撞开始 7 TriggerEvent.MobCollideToMob 当 任意生物和任意生物 碰撞开始 8 TriggerEvent.MobCollideToMissile 当 任意生物和任意投掷物 碰撞开始 9 TriggerEvent.MobCollideToDropItem 当 任意生物和任意掉落物 碰撞开始 10 TriggerEvent.MobCollideToEntity 当 任意生物和任意实体 碰撞开始 11 TriggerEvent.MobCollideToAreaObj 当 任意生物和任意区域 碰撞开始 12 TriggerEvent.MissileCollideToPlayer 当 任意投掷物和任意玩家 碰撞开始 13 TriggerEvent.MissileCollideToMob 当 任意投掷物和任意生物 碰撞开始 14 TriggerEvent.MissileCollideToMissile 当 任意投掷物和任意投掷物 碰撞开始 15 TriggerEvent.MissileCollideToDropItem 当 任意投掷物和任意掉落物 碰撞开始 16 TriggerEvent.MissileCollideToEntity 当 任意投掷物和任意实体 碰撞开始 17 TriggerEvent.MissileCollideToAreaObj 当 任意投掷物和任意区域 碰撞开始 18 TriggerEvent.DropItemCollideToPlayer 当 任意掉落物和任意玩家 碰撞开始 19 TriggerEvent.DropItemCollideToMob 当 任意掉落物和任意生物 碰撞开始 20 TriggerEvent.DropItemCollideToMissile 当 任意掉落物和任意投掷物 碰撞开始 21 TriggerEvent.DropItemCollideToDropItem 当 任意掉落物和任意掉落物 碰撞开始 22 TriggerEvent.DropItemCollideToEntity 当 任意掉落物和任意实体 碰撞开始 23 TriggerEvent.DropItemCollideToAreaObj 当 任意掉落物和任意区域 碰撞开始 24 TriggerEvent.EntityCollideToPlayer 当 任意实体和任意玩家 碰撞开始 25 TriggerEvent.EntityCollideToMob 当 任意实体和任意生物 碰撞开始 26 TriggerEvent.EntityCollideToMissile 当 任意实体和任意投掷物 碰撞开始 27 TriggerEvent.EntityCollideToDropItem 当 任意实体和任意掉落物 碰撞开始 28 TriggerEvent.EntityCollideToEntity 当 任意实体和任意实体 碰撞开始 29 TriggerEvent.EntityCollideToAreaObj 当 任意实体和任意区域 碰撞开始 30 TriggerEvent.AreaObjCollideToPlayer 当 任意区域和任意玩家 碰撞开始 31 TriggerEvent.AreaObjCollideToMob 当 任意区域和任意生物 碰撞开始 32 TriggerEvent.AreaObjCollideToMissile 当 任意区域和任意投掷物 碰撞开始 33 TriggerEvent.AreaObjCollideToDropItem 当 任意区域和任意掉落物 碰撞开始 34 TriggerEvent.AreaObjCollideToEntity 当 任意区域和任意实体 碰撞开始 35 TriggerEvent.AreaObjCollideToAreaObj 当 任意区域和任意区域 碰撞开始 36 TriggerEvent.PlayerAreaIn 当 任意玩家 进入 区域 37 TriggerEvent.PlayerAreaOut 当 任意玩家 离开 区域 38 TriggerEvent.MobAreaIn 当 任意生物 进入 区域 39 TriggerEvent.MobAreaOut 当 任意生物 离开 区域 40 TriggerEvent.MissileAreaIn 当 任意投掷物 进入 区域 41 TriggerEvent.MissileAreaOut 当 任意投掷物 离开 区域 42 TriggerEvent.DropItemAreaIn 当 任意掉落物 进入 区域 43 TriggerEvent.DropItemAreaOut 当 任意掉落物 离开 区域 44 TriggerEvent.EntityAreaIn 当 任意实体 进入 区域 45 TriggerEvent.EntityAreaOut 当 任意实体 离开 区域 46 TriggerEvent.AreaObjAreaIn 当 任意区域 进入 区域 47 TriggerEvent.AreaObjAreaOut 当 任意区域 离开 区域 48 TriggerEvent.MobCreate 当 任意生物 被创建 49 TriggerEvent.EntityCreate 当 任意实体 被创建 50 TriggerEvent.AreaObjCreate 当 任意区域 被创建 triggerevent-playercollidetoplayer 事件描述: 当 任意玩家和任意玩家 碰撞开始 事件名: TriggerEvent.PlayerCollideToPlayer 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playercollidetomob 事件描述: 当 任意玩家和任意生物 碰撞开始 事件名: TriggerEvent.PlayerCollideToMob 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playercollidetomissile 事件描述: 当 任意玩家和任意投掷物 碰撞开始 事件名: TriggerEvent.PlayerCollideToMissile 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playercollidetodropitem 事件描述: 当 任意玩家和任意掉落物 碰撞开始 事件名: TriggerEvent.PlayerCollideToDropItem 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playercollidetoentity 事件描述: 当 任意玩家和任意实体 碰撞开始 事件名: TriggerEvent.PlayerCollideToEntity 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playercollidetoareaobj 事件描述: 当 任意玩家和任意区域 碰撞开始 事件名: TriggerEvent.PlayerCollideToAreaObj 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcollidetoplayer 事件描述: 当 任意生物和任意玩家 碰撞开始 事件名: TriggerEvent.MobCollideToPlayer 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcollidetomob 事件描述: 当 任意生物和任意生物 碰撞开始 事件名: TriggerEvent.MobCollideToMob 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcollidetomissile 事件描述: 当 任意生物和任意投掷物 碰撞开始 事件名: TriggerEvent.MobCollideToMissile 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcollidetodropitem 事件描述: 当 任意生物和任意掉落物 碰撞开始 事件名: TriggerEvent.MobCollideToDropItem 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcollidetoentity 事件描述: 当 任意生物和任意实体 碰撞开始 事件名: TriggerEvent.MobCollideToEntity 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcollidetoareaobj 事件描述: 当 任意生物和任意区域 碰撞开始 事件名: TriggerEvent.MobCollideToAreaObj 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missilecollidetoplayer 事件描述: 当 任意投掷物和任意玩家 碰撞开始 事件名: TriggerEvent.MissileCollideToPlayer 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missilecollidetomob 事件描述: 当 任意投掷物和任意生物 碰撞开始 事件名: TriggerEvent.MissileCollideToMob 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missilecollidetomissile 事件描述: 当 任意投掷物和任意投掷物 碰撞开始 事件名: TriggerEvent.MissileCollideToMissile 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missilecollidetodropitem 事件描述: 当 任意投掷物和任意掉落物 碰撞开始 事件名: TriggerEvent.MissileCollideToDropItem 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missilecollidetoentity 事件描述: 当 任意投掷物和任意实体 碰撞开始 事件名: TriggerEvent.MissileCollideToEntity 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missilecollidetoareaobj 事件描述: 当 任意投掷物和任意区域 碰撞开始 事件名: TriggerEvent.MissileCollideToAreaObj 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemcollidetoplayer 事件描述: 当 任意掉落物和任意玩家 碰撞开始 事件名: TriggerEvent.DropItemCollideToPlayer 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemcollidetomob 事件描述: 当 任意掉落物和任意生物 碰撞开始 事件名: TriggerEvent.DropItemCollideToMob 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemcollidetomissile 事件描述: 当 任意掉落物和任意投掷物 碰撞开始 事件名: TriggerEvent.DropItemCollideToMissile 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemcollidetodropitem 事件描述: 当 任意掉落物和任意掉落物 碰撞开始 事件名: TriggerEvent.DropItemCollideToDropItem 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemcollidetoentity 事件描述: 当 任意掉落物和任意实体 碰撞开始 事件名: TriggerEvent.DropItemCollideToEntity 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemcollidetoareaobj 事件描述: 当 任意掉落物和任意区域 碰撞开始 事件名: TriggerEvent.DropItemCollideToAreaObj 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycollidetoplayer 事件描述: 当 任意实体和任意玩家 碰撞开始 事件名: TriggerEvent.EntityCollideToPlayer 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycollidetomob 事件描述: 当 任意实体和任意生物 碰撞开始 事件名: TriggerEvent.EntityCollideToMob 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycollidetomissile 事件描述: 当 任意实体和任意投掷物 碰撞开始 事件名: TriggerEvent.EntityCollideToMissile 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycollidetodropitem 事件描述: 当 任意实体和任意掉落物 碰撞开始 事件名: TriggerEvent.EntityCollideToDropItem 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycollidetoentity 事件描述: 当 任意实体和任意实体 碰撞开始 事件名: TriggerEvent.EntityCollideToEntity 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycollidetoareaobj 事件描述: 当 任意实体和任意区域 碰撞开始 事件名: TriggerEvent.EntityCollideToAreaObj 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcollidetoplayer 事件描述: 当 任意区域和任意玩家 碰撞开始 事件名: TriggerEvent.AreaObjCollideToPlayer 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcollidetomob 事件描述: 当 任意区域和任意生物 碰撞开始 事件名: TriggerEvent.AreaObjCollideToMob 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcollidetomissile 事件描述: 当 任意区域和任意投掷物 碰撞开始 事件名: TriggerEvent.AreaObjCollideToMissile 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcollidetodropitem 事件描述: 当 任意区域和任意掉落物 碰撞开始 事件名: TriggerEvent.AreaObjCollideToDropItem 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcollidetoentity 事件描述: 当 任意区域和任意实体 碰撞开始 事件名: TriggerEvent.AreaObjCollideToEntity 说明: 当前 C++ 碰撞派发会排除任一方为实体的情况,此事件不会触发。 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcollidetoareaobj 事件描述: 当 任意区域和任意区域 碰撞开始 事件名: TriggerEvent.AreaObjCollideToAreaObj 事件传参: 参数名 说明 EventObjType 事件中的对象类型 ToolObjType 事件中的目标对象类型 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerareain 事件描述: 当 任意玩家 进入 区域 事件名: TriggerEvent.PlayerAreaIn 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerareaout 事件描述: 当 任意玩家 离开 区域 事件名: TriggerEvent.PlayerAreaOut 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobareain 事件描述: 当 任意生物 进入 区域 事件名: TriggerEvent.MobAreaIn 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobareaout 事件描述: 当 任意生物 离开 区域 事件名: TriggerEvent.MobAreaOut 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missileareain 事件描述: 当 任意投掷物 进入 区域 事件名: TriggerEvent.MissileAreaIn 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-missileareaout 事件描述: 当 任意投掷物 离开 区域 事件名: TriggerEvent.MissileAreaOut 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 helperobjid itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemareain 事件描述: 当 任意掉落物 进入 区域 事件名: TriggerEvent.DropItemAreaIn 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-dropitemareaout 事件描述: 当 任意掉落物 离开 区域 事件名: TriggerEvent.DropItemAreaOut 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entityareain 事件描述: 当 任意实体 进入 区域 事件名: TriggerEvent.EntityAreaIn 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entityareaout 事件描述: 当 任意实体 离开 区域 事件名: TriggerEvent.EntityAreaOut 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjareain 事件描述: 当 任意区域 进入 区域 事件名: TriggerEvent.AreaObjAreaIn 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjareaout 事件描述: 当 任意区域 离开 区域 事件名: TriggerEvent.AreaObjAreaOut 事件传参: 参数名 说明 areaid 事件中的区域ID eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobcreate 事件描述: 当 任意生物 被创建 事件名: TriggerEvent.MobCreate 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-entitycreate 事件描述: 当 任意实体 被创建 事件名: TriggerEvent.EntityCreate 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-areaobjcreate 事件描述: 当 任意区域 被创建 事件名: TriggerEvent.AreaObjCreate 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 角色 序号 事件名 事件名描述 0 TriggerEvent.PlayerBeHurt 当 任意玩家 受到伤害 1 TriggerEvent.PlayerDie 当 任意玩家 被击败 2 TriggerEvent.MobBeHurt 当 任意生物 受到伤害 3 TriggerEvent.MobDie 当 任意生物 被击败 4 TriggerEvent.PlayerAttack 当 任意玩家 开始攻击 5 TriggerEvent.PlayerAttackHit 当 任意玩家 攻击命中 6 TriggerEvent.PlayerDefeatActor 当 任意玩家 击败目标 7 TriggerEvent.PlayerDamageActor 当 任意玩家 造成伤害 8 TriggerEvent.MobAttack 当 任意生物 开始攻击 9 TriggerEvent.MobAttackHit 当 任意生物 攻击命中 10 TriggerEvent.MobBeat 当 任意生物 击败目标 11 TriggerEvent.MobDamage 当 任意生物 造成伤害 12 TriggerEvent.PlayerAddBuff 当 任意玩家 获得 状态 13 TriggerEvent.PlayerRemoveBuff 当 任意玩家 失去 状态 14 TriggerEvent.MobAddBuff 当 任意生物 获得 状态 15 TriggerEvent.MobRemoveBuff 当 任意生物 失去 状态 16 TriggerEvent.PlayerChangeAttr 当 任意玩家 的属性改变 17 TriggerEvent.MobChangeAttr 当 任意生物 的属性改变 18 TriggerEvent.ActorPickupActor 当角色举起角色 19 TriggerEvent.PlayerModelChange 当 任意玩家 的主模型改变 20 TriggerEvent.MobModelChange 当 任意生物 的主模型改变 21 TriggerEvent.PlayerAttrStateChange 当 任意玩家权限发生改变 22 TriggerEvent.MobAttrStateChange 当 任意生物权限发生改变 23 TriggerEvent.PlayerMountActor 当任意玩家 骑乘坐骑/载具 24 TriggerEvent.MobMountActor 当任意生物 骑乘坐骑/载具 25 TriggerEvent.PlayerDismountActor 当 任意玩家 取消骑乘 26 TriggerEvent.MobDismountActor 当 任意生物 取消骑乘 triggerevent-playerbehurt 事件描述: 当 任意玩家 受到伤害 事件名: TriggerEvent.PlayerBeHurt 事件传参: 参数名 说明 eventobjid 触发事件的对象 hurtlv 事件中的伤害值 toobjid 事件中的目标对象 hurttype 伤害类型(只有跌落伤害) x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerdie 事件描述: 当 任意玩家 被击败 事件名: TriggerEvent.PlayerDie 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobbehurt 事件描述: 当 任意生物 受到伤害 事件名: TriggerEvent.MobBeHurt 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 hurtlv 事件中的伤害值 toobjid 事件中的目标对象 hurttype 伤害类型(目前只有跌落伤害) x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobdie 事件描述: 当 任意生物 被击败 事件名: TriggerEvent.MobDie 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 helperobjid 发射者(目标对象是投掷物才有值) x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerattack 事件描述: 当 任意玩家 开始攻击 事件名: TriggerEvent.PlayerAttack 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerattackhit 事件描述: 当 任意玩家 攻击命中 事件名: TriggerEvent.PlayerAttackHit 事件传参: 参数名 说明 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerdefeatactor 事件描述: 当 任意玩家 击败目标 事件名: TriggerEvent.PlayerDefeatActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerdamageactor 事件描述: 当 任意玩家 造成伤害 事件名: TriggerEvent.PlayerDamageActor 事件传参: 参数名 说明 defaultvalue 值包含1头部伤害+值包含2触发器伤害 eventobjid 触发事件的对象 hurtlv 事件中的伤害值 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobattack 事件描述: 当 任意生物 开始攻击 事件名: TriggerEvent.MobAttack 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型(生物对象才有值) x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobattackhit 事件描述: 当 任意生物 攻击命中 事件名: TriggerEvent.MobAttackHit 事件传参: 参数名 说明 actorid 触发事件的生物类型 defaultvalue 是否攻击头部(值等于1) eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobbeat 事件描述: 当 任意生物 击败目标 事件名: TriggerEvent.MobBeat 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobdamage 事件描述: 当 任意生物 造成伤害 事件名: TriggerEvent.MobDamage 事件传参: 参数名 说明 actorid 触发事件的生物类型 defaultvalue 是否头部伤害(值等于1) eventobjid 触发事件的对象 hurtlv 事件中的伤害值 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playeraddbuff 事件描述: 当 任意玩家 获得 状态 事件名: TriggerEvent.PlayerAddBuff 事件传参: 参数名 说明 buff 事件中的状态效果 buffid 事件中的状态效果ID bufflvl 事件中的状态效果等级 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerremovebuff 事件描述: 当 任意玩家 失去 状态 事件名: TriggerEvent.PlayerRemoveBuff 事件传参: 参数名 说明 buff 事件中的状态效果 buffid 事件中的状态效果ID bufflvl 事件中的状态效果等级 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobaddbuff 事件描述: 当 任意生物 获得 状态 事件名: TriggerEvent.MobAddBuff 事件传参: 参数名 说明 actorid 触发事件的生物类型 buff 事件中的状态效果 buffid 事件中的状态效果ID bufflvl 事件中的状态效果等级 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobremovebuff 事件描述: 当 任意生物 失去 状态 事件名: TriggerEvent.MobRemoveBuff 事件传参: 参数名 说明 actorid 触发事件的生物类型 buff 事件中的状态效果 buffid 事件中的状态效果ID bufflvl 事件中的状态效果等级 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerchangeattr 事件描述: 当 任意玩家 的属性改变 事件名: TriggerEvent.PlayerChangeAttr 事件传参: 参数名 说明 defaultvalue 改变的属性值 playerattr 玩家属性 playerattrval 玩家属性值 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobchangeattr 事件描述: 当 任意生物 的属性改变 事件名: TriggerEvent.MobChangeAttr 事件传参: 参数名 说明 actorid 触发事件的生物类型 actorattr 生物属性 actorattrval 生物属性值 defaultvalue 改变的属性值 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-actorpickupactor 事件描述: 当角色举起角色 事件名: TriggerEvent.ActorPickupActor 事件传参: 参数名 说明 pickupType 举起或放下类型(RolePickupType) eventobjid 触发事件的对象 toobjid 事件中的目标对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playermodelchange 事件描述: 当 任意玩家 的主模型改变 事件名: TriggerEvent.PlayerModelChange 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobmodelchange 事件描述: 当 任意生物 的主模型改变 事件名: TriggerEvent.MobModelChange 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerattrstatechange 事件描述: 当 任意玩家权限发生改变 事件名: TriggerEvent.PlayerAttrStateChange 事件传参: 参数名 说明 attstateType 权限类型 attstateValue 权限开关(boll) eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobattrstatechange 事件描述: 当 任意生物权限发生改变 事件名: TriggerEvent.MobAttrStateChange 事件传参: 参数名 说明 attstateType 权限类型 attstateValue 权限开关(boll) eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playermountactor 事件描述: 当任意玩家 骑乘坐骑/载具 事件名: TriggerEvent.PlayerMountActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobmountactor 事件描述: 当任意生物 骑乘坐骑/载具 事件名: TriggerEvent.MobMountActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-playerdismountactor 事件描述: 当 任意玩家 取消骑乘 事件名: TriggerEvent.PlayerDismountActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-mobdismountactor 事件描述: 当 任意生物 取消骑乘 事件名: TriggerEvent.MobDismountActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 toobjid 事件中的目标对象 targetactorid 事件中的目标生物类型 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 投掷物 序号 事件名 事件名描述 0 TriggerEvent.MissileCreate 投掷物创建 1 TriggerEvent.ProjectileHitBlock 当 投掷物 击中 任意方块 2 TriggerEvent.ProjectileHitPlayer 当 投掷物 击中 任意玩家 3 TriggerEvent.ProjectileHitMob 当 投掷物 击中 任意生物 4 TriggerEvent.ProjectileHitProj 当 投掷物 击中 任意投掷物 5 TriggerEvent.ProjectileHitItem 当 投掷物 击中 任意掉落物 6 TriggerEvent.ProjectileHitEntity 当 投掷物 击中 任意实体 triggerevent-missilecreate 事件描述: 投掷物创建 事件名: TriggerEvent.MissileCreate 事件传参: 参数名 说明 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z actorid 触发事件的生物类型 eventobjid 触发事件的对象 helperobjid toobjid 事件中的目标对象 eventworldid 事件中的星球 triggerevent-projectilehitblock 事件描述: 当 投掷物 击中 任意方块 事件名: TriggerEvent.ProjectileHitBlock 事件传参: 参数名 说明 blockid 事件中的方块类型 defaultvalue 被命中对象类型(内部用于事件分流) itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z helperobjid 发射投掷物的对象 actorid 发射投掷物的生物类型 eventobjid 被命中的对象 eventworldid 事件中的星球 triggerevent-projectilehitplayer 事件描述: 当 投掷物 击中 任意玩家 事件名: TriggerEvent.ProjectileHitPlayer 事件传参: 参数名 说明 defaultvalue 被命中对象类型(内部用于事件分流) eventobjid 被命中的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 命中的投掷物对象 x 事件中位置X y 事件中位置Y z 事件中位置Z helperobjid 发射投掷物的对象 actorid 发射投掷物的生物类型 eventworldid 事件中的星球 triggerevent-projectilehitmob 事件描述: 当 投掷物 击中 任意生物 事件名: TriggerEvent.ProjectileHitMob 事件传参: 参数名 说明 defaultvalue 被命中对象类型(内部用于事件分流) eventobjid 被命中的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 命中的投掷物对象 x 事件中位置X y 事件中位置Y z 事件中位置Z helperobjid 发射投掷物的对象 targetactorid 事件中的目标生物类型 actorid 发射投掷物的生物类型 eventworldid 事件中的星球 triggerevent-projectilehitproj 事件描述: 当 投掷物 击中 任意投掷物 事件名: TriggerEvent.ProjectileHitProj 事件传参: 参数名 说明 defaultvalue 被命中对象类型(内部用于事件分流) eventobjid 被命中的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 命中的投掷物对象 x 事件中位置X y 事件中位置Y z 事件中位置Z helperobjid 发射投掷物的对象 actorid 发射投掷物的生物类型 eventworldid 事件中的星球 triggerevent-projectilehititem 事件描述: 当 投掷物 击中 任意掉落物 事件名: TriggerEvent.ProjectileHitItem 事件传参: 参数名 说明 defaultvalue 被命中对象类型(内部用于事件分流) eventobjid 被命中的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 命中的投掷物对象 x 事件中位置X y 事件中位置Y z 事件中位置Z helperobjid 发射投掷物的对象 actorid 发射投掷物的生物类型 eventworldid 事件中的星球 triggerevent-projectilehitentity 事件描述: 当 投掷物 击中 任意实体 事件名: TriggerEvent.ProjectileHitEntity 事件传参: 参数名 说明 defaultvalue 被命中对象类型(内部用于事件分流) eventobjid 被命中的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 toobjid 命中的投掷物对象 x 事件中位置X y 事件中位置Y z 事件中位置Z helperobjid 发射投掷物的对象 actorid 发射投掷物的生物类型 eventworldid 事件中的星球 掉落物 序号 事件名 事件名描述 0 TriggerEvent.ItemCreate 当掉落物创建 2|TriggerEvent.ItemDisappear|当 掉落物 消失 triggerevent-itemcreate 事件描述: 当掉落物创建 事件名: TriggerEvent.ItemCreate 事件传参: 参数名 说明 defaultvalue 道具创建方式 eventobjid 触发事件的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 triggerevent-itemdisappear 事件描述: 当 掉落物 消失 事件名: TriggerEvent.ItemDisappear 事件传参: 参数名 说明 eventobjid 触发事件的对象 itemid 事件中的道具类型 itemnum 事件中的道具数量 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 组件事件管理 添加监听函数调用方式参考:组件函数 注意:事件中参数如果是nil,则可以用 CurEventParam 来替代获取,字段名如下: CurEventParam.EventTargetPos 事件中的位置 CurEventParam.EventBuff 事件中的状态效果 CurEventParam.EventTargetEffect 事件中的特效 CurEventParam.EventTargetBlock 事件中的方块类型 CurEventParam.EventShortCutIdx 事件中的快捷栏 CurEventParam.EquipItemPos 事件中的装备栏 CurEventParam.EventElementID 事件中的元件 CurEventParam.EventUIID 事件中的界面 CurEventParam.EventString 事件中的字符串 CurEventParam.SelectUIID 当前编辑的界面 CurEventParam.EventAreaid 事件中的区域 CurEventParam.Hurtlv 事件中伤害值 CurEventParam.TriggerByPlayer 触发事件的玩家 CurEventParam.EventTargetPlayer 事件中的目标玩家 CurEventParam.TriggerByCreature 触发事件的生物 CurEventParam.EventTargetCreature 事件中的目标生物 CurEventParam.Actorid 触发事件的生物类型 CurEventParam.targetactorid 事件中的目标生物类型 CurEventParam.EventTargetItemID 事件中的道具类型 CurEventParam.TriggerByMissile 触发事件的投射物 CurEventParam.EventTargetDropItem 事件中的掉落物 CurEventParam.Itemnum 事件中的道具数量 CurEventParam.eventworldid 事件中的星球 事件参数添加参数过滤 注意:部分高频率事件可以添加过滤参数用以提高执行效率,特别是云服房间。添加过滤之后将提高帧率。如果第三个参数传 nil 或者 "",则不会进行过滤。 self:AddEvent(ObjectEvent.PlayerInputKeyDown, eventfunc, nil, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.PlayerInputKeyClick, eventfunc, nil, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.PlayerInputKeyOnPress, eventfunc, nil, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.PlayerInputKeyUp, eventfunc, nil, KeyCode.Q) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.ObjectMotionStateChange, eventfunc, nil, RoleMotion.Walk) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.ObjectMotionStateChangeEnd, eventfunc, nil, RoleMotion.Walk) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.ObjectChangeAttr, eventfunc, nil, RoleAttr.CurHp) -- 自主修改 eventfunc 和 过滤枚举 self:AddEvent(ObjectEvent.ObjectAttrStateChange, eventfunc, nil, Ability.Walking) -- 自主修改 eventfunc 和 过滤枚举 简单示例: --这个脚本的作用是当玩家点击草块时,把草块变成钛合金 -- 官方定义的函数,不能修改变动 local Script = {} -- 组件启动时调用 function Script:OnStart() -- 玩家点击方块事件 self:AddEvent(ObjectEvent.PlayerClickBlock, self.Player_Click) --AddEvent(ObjectEvent.PlayerClickBlock是官方提供的事件监听,可以在wiki中查看更多的事件 --self.Player_Click 是自定义的一个函数名,可以改成其他你喜欢的 end -- 定义事件触发时的动作 function Script:Player_Click(event) local param = event.CurEventParam -- 玩家点击方块时,判断点的是否是草块 if event.blockid == 100 then local success = Block:ReplaceBlock(452, event.x, event.y, event.z) -- Block:ReplaceBlock是官方提供的放置方块方法,可以在wiki中查看更多的方法 -- local success 用来接收Block:ReplaceBlock运行后的结果,可以用来做是否成功放置的判断 end end -- 官方定义的函数,不能修改变动 return Script 玩家 序号 事件名 事件名描述 0 ObjectEvent.PlayerEnterGame 当 此玩家 进入游戏 1 ObjectEvent.PlayerLeaveGame 当 此玩家 离开游戏 2 ObjectEvent.PlayerVictory 当 此玩家 游戏胜利 3 ObjectEvent.PlayerDefeat 当 此玩家 游戏失败 4 ObjectEvent.PlayerClickBlock 当 此玩家 点击任意方块 5 ObjectEvent.PlayerClickPlayer 当 此玩家 点击任意玩家 6 ObjectEvent.PlayerClickMob 当 此玩家 点击任意生物 7 ObjectEvent.PlayerClickProjectile 当 此玩家 点击任意投掷物 8 ObjectEvent.PlayerClickDropItem 当 此玩家 点击任意掉落物 9 ObjectEvent.PlayerClickEntity 当 此玩家 点击任意实体 10 ObjectEvent.PlayerInputKeyClick 当 此玩家 点击 按键 11 ObjectEvent.PlayerInputKeyDown 当 此玩家 按下 按键 12 ObjectEvent.PlayerInputKeyUp 当 此玩家 抬起 按键 13 ObjectEvent.PlayerInputKeyOnPress 当 此玩家 长按 按键 14 ObjectEvent.PlayerNewInputContent 此玩家发送聊天信息 15 ObjectEvent.ObjectMotionStateChange 当 此玩家进入运动状态 16 ObjectEvent.ObjectMotionStateChangeEnd 当 此玩家离开运动状态 17 ObjectEvent.PlayerAddItem 当 此玩家获得道具 18 ObjectEvent.PlayerUseItem 当 此玩家开始使用道具 19 ObjectEvent.PlayerChargeItemBegin 当 此玩家开始蓄力道具 20 ObjectEvent.PlayerConsumeItem 当 此玩家消耗道具 21 ObjectEvent.PlayerPickUpItem 当 此玩家拾取道具 22 ObjectEvent.PlayerChargeItemEnd 当 此玩家结束蓄力道具 23 ObjectEvent.PlayerShortcutChange 当 此玩家 快捷栏的 发生改变 24 ObjectEvent.PlayerShortcutAddItem 当 此玩家 快捷栏的 放入道具 25 ObjectEvent.PlayerShortcutRemItem 当 此玩家 快捷栏的 取出道具 26 ObjectEvent.PlayerBackPackChange 当 此玩家 背包栏的 发生改变 27 ObjectEvent.PlayerBackPackAddItem 当 此玩家 背包栏的 放入道具 28 ObjectEvent.PlayerBackPackRemItem 当 此玩家 背包栏的 取出道具 29 ObjectEvent.PlayerEquipChange 当 此玩家 装备栏的 发生改变 30 ObjectEvent.PlayerEquipAddItem 当 此玩家 装备栏的 放入道具 31 ObjectEvent.PlayerEquipRemItem 当 此玩家 装备栏的 取出道具 32 ObjectEvent.PlayerEquipOn 当 此玩家 穿上 装备 33 ObjectEvent.PlayerEquipOff 当 此玩家 脱下 装备 34 ObjectEvent.PlayerRevive 此玩家复活 35 ObjectEvent.PlayerMoveOneBlockSize 此玩家移动 36 ObjectEvent.PlayerInvateFriend 此玩家邀请好友 37 ObjectEvent.PlayerSelectShortcut 此玩家选中快捷栏 objectevent-playerentergame 事件描述: 当 此玩家 进入游戏 事件名: ObjectEvent.PlayerEnterGame 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerleavegame 事件描述: 当 此玩家 离开游戏 事件名: ObjectEvent.PlayerLeaveGame 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中的星球 objectevent-playervictory 事件描述: 当 此玩家 游戏胜利 事件名: ObjectEvent.PlayerVictory 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerdefeat 事件描述: 当 此玩家 游戏失败 事件名: ObjectEvent.PlayerDefeat 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerclickblock 事件描述: 当 此玩家 点击任意方块 事件名: ObjectEvent.PlayerClickBlock 事件传参: 参数名 说明 blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 x 事件中位置X y 事件中位置Y z 事件中位置Z objectevent-playerclickplayer 事件描述: 当 此玩家 点击任意玩家 事件名: ObjectEvent.PlayerClickPlayer 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-playerclickmob 事件描述: 当 此玩家 点击任意生物 事件名: ObjectEvent.PlayerClickMob 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-playerclickprojectile 事件描述: 当 此玩家 点击任意投掷物 事件名: ObjectEvent.PlayerClickProjectile 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-playerclickdropitem 事件描述: 当 此玩家 点击任意掉落物 事件名: ObjectEvent.PlayerClickDropItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-playerclickentity 事件描述: 当 此玩家 点击任意实体 事件名: ObjectEvent.PlayerClickEntity 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-playerinputkeyclick 事件描述: 当 此玩家 点击 按键 事件名: ObjectEvent.PlayerInputKeyClick 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z vkey 事件中的按键 eventworldid 事件中星球 objectevent-playerinputkeydown 事件描述: 当 此玩家 按下 按键 事件名: ObjectEvent.PlayerInputKeyDown 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z vkey 事件中的按键 eventworldid 事件中星球 objectevent-playerinputkeyup 事件描述: 当 此玩家 抬起 按键 事件名: ObjectEvent.PlayerInputKeyUp 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z vkey 事件中的按键 eventworldid 事件中星球 objectevent-playerinputkeyonpress 事件描述: 当 此玩家 长按 按键 事件名: ObjectEvent.PlayerInputKeyOnPress 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z vkey 事件中的按键 eventworldid 事件中星球 objectevent-playernewinputcontent 事件描述: 此玩家发送聊天信息 事件名: ObjectEvent.PlayerNewInputContent 事件传参: 参数名 说明 content 事件中的字符串 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-objectmotionstatechange 事件描述: 当 此玩家进入运动状态 事件名: ObjectEvent.ObjectMotionStateChange 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z playermotion 玩家行为动作 eventworldid 事件中星球 objectevent-objectmotionstatechangeend 事件描述: 当 此玩家离开运动状态 事件名: ObjectEvent.ObjectMotionStateChangeEnd 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z playermotion 玩家行为动作 eventworldid 事件中星球 objectevent-playeradditem 事件描述: 当 此玩家获得道具 事件名: ObjectEvent.PlayerAddItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playeruseitem 事件描述: 当 此玩家开始使用道具 事件名: ObjectEvent.PlayerUseItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerchargeitembegin 事件描述: 当 此玩家开始蓄力道具 事件名: ObjectEvent.PlayerChargeItemBegin 事件传参: 参数名 说明 defaultvalue 自定义数值数据 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerconsumeitem 事件描述: 当 此玩家消耗道具 事件名: ObjectEvent.PlayerConsumeItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerpickupitem 事件描述: 当 此玩家拾取道具 事件名: ObjectEvent.PlayerPickUpItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-playerchargeitemend 事件描述: 当 此玩家结束蓄力道具 事件名: ObjectEvent.PlayerChargeItemEnd 事件传参: 参数名 说明 defaultvalue 自定义数值数据 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playershortcutchange 事件描述: 当 此玩家 快捷栏的 发生改变 事件名: ObjectEvent.PlayerShortcutChange 事件传参: 参数名 说明 ShortCutIdx 事件中的快捷栏 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playershortcutadditem 事件描述: 当 此玩家 快捷栏的 放入道具 事件名: ObjectEvent.PlayerShortcutAddItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playershortcutremitem 事件描述: 当 此玩家 快捷栏的 取出道具 事件名: ObjectEvent.PlayerShortcutRemItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerbackpackchange 事件描述: 当 此玩家 背包栏的 发生改变 事件名: ObjectEvent.PlayerBackPackChange 事件传参: 参数名 说明 ShortCutIdx 事件中的快捷栏 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerbackpackadditem 事件描述: 当 此玩家 背包栏的 放入道具 事件名: ObjectEvent.PlayerBackPackAddItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerbackpackremitem 事件描述: 当 此玩家 背包栏的 取出道具 事件名: ObjectEvent.PlayerBackPackRemItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerequipchange 事件描述: 当 此玩家 装备栏的 发生改变 事件名: ObjectEvent.PlayerEquipChange 事件传参: 参数名 说明 ShortCutIdx 事件中的快捷栏 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerequipadditem 事件描述: 当 此玩家 装备栏的 放入道具 事件名: ObjectEvent.PlayerEquipAddItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerequipremitem 事件描述: 当 此玩家 装备栏的 取出道具 事件名: ObjectEvent.PlayerEquipRemItem 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerequipon 事件描述: 当 此玩家 穿上 装备 事件名: ObjectEvent.PlayerEquipOn 事件传参: 参数名 说明 ShortCutIdx 事件中的快捷栏 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerequipoff 事件描述: 当 此玩家 脱下 装备 事件名: ObjectEvent.PlayerEquipOff 事件传参: 参数名 说明 ShortCutIdx 事件中的快捷栏 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 objectevent-playerrevive 事件描述: 此玩家复活 事件名: ObjectEvent.PlayerRevive 事件传参: 参数名 说明 defaultvalue 自定义数值数据 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playermoveoneblocksize 事件描述: 此玩家移动 事件名: ObjectEvent.PlayerMoveOneBlockSize 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-playerinvatefriend 事件描述: 此玩家邀请好友 事件名: ObjectEvent.PlayerInvateFriend 事件传参: 参数名 说明 eventobjid 触发事件的对象 x,y,z 事件中的位置 toobjid 事件中的目标对象 eventworldid 事件中的星球 objectevent-playerselectshortcut 事件描述: 此玩家选中快捷栏 事件名: ObjectEvent.PlayerSelectShortcut 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z itemid 事件中的道具类型 itemix 事件中的格子ID itemnum 事件中的道具数量 eventworldid 事件中星球 方块 序号 事件名 事件名描述 0 ObjectEvent.BlockAdd 此类方块被创建 1 ObjectEvent.BlockClicked 当此类方块被被点击 2 ObjectEvent.BlockRemove 当此类方块被被破坏 3 ObjectEvent.BlockDigBegin 当此类方块被被挖掘 4 ObjectEvent.BlockDigEnd 当此类方块被被挖掘完毕 5 ObjectEvent.BlockDigCancel 当此类方块被被挖掘中断 6 ObjectEvent.OnInteract 当此类方块开关状态发生改变 7 ObjectEvent.BlockChangeColor 当此类方块颜色发生改变 8 ObjectEvent.BlockChangeDir 当此类方块方向发生改变 9 ObjectEvent.BlockContainerChange 当 储存容器 内 发生改变 10 ObjectEvent.BlockContainerPutIn 当 储存容器 内 放入道具 11 ObjectEvent.BlockContainerTakeOut 当 储存容器 内 取出道具 objectevent-blockadd 事件描述: 此类方块被创建 事件名: ObjectEvent.BlockAdd 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 eventworldid 事件中的星球 objectevent-blockclicked 事件描述: 当此类方块被被点击 事件名: ObjectEvent.BlockClicked 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 actorid 触发事件的生物类型 eventworldid 事件中的星球 objectevent-blockremove 事件描述: 当此类方块被被破坏 事件名: ObjectEvent.BlockRemove 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 actorid 触发事件的生物类型 eventworldid 事件中的星球 objectevent-blockdigbegin 事件描述: 当此类方块被被挖掘 事件名: ObjectEvent.BlockDigBegin 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 actorid 触发事件的生物类型 eventworldid 事件中的星球 objectevent-blockdigend 事件描述: 当此类方块被被挖掘完毕 事件名: ObjectEvent.BlockDigEnd 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 actorid 触发事件的生物类型 eventworldid 事件中的星球 objectevent-blockdigcancel 事件描述: 当此类方块被被挖掘中断 事件名: ObjectEvent.BlockDigCancel 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventobjid 触发事件的对象 actorid 触发事件的生物类型 eventworldid 事件中的星球 objectevent-oninteract 事件描述: 当此类方块开关状态发生改变 事件名: ObjectEvent.OnInteract 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventworldid 事件中的星球 objectevent-blockchangecolor 事件描述: 当此类方块颜色发生改变 事件名: ObjectEvent.BlockChangeColor 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventworldid 事件中的星球 objectevent-blockchangedir 事件描述: 当此类方块方向发生改变 事件名: ObjectEvent.BlockChangeDir 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 eventworldid 事件中的星球 objectevent-blockcontainerchange 事件描述: 当 储存容器 内 发生改变 事件名: ObjectEvent.BlockContainerChange 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 itemid 事件中的道具类型 eventworldid 事件中的星球 objectevent-blockcontainerputin 事件描述: 当 储存容器 内 放入道具 事件名: ObjectEvent.BlockContainerPutIn 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 itemid 事件中的道具类型 eventworldid 事件中的星球 objectevent-blockcontainertakeout 事件描述: 当 储存容器 内 取出道具 事件名: ObjectEvent.BlockContainerTakeOut 事件传参: 参数名 说明 x,y,z 事件中的位置 blockid 事件中的方块类型 itemid 事件中的道具类型 eventworldid 事件中的星球 对象 序号 事件名 事件名描述 0 ObjectEvent.OnPropertyChange 当对象的当前组件属性发生改变 1 ObjectEvent.ObjectPlayAnim 当此对象播放动画时 objectevent-onpropertychange 事件描述: 当对象的当前组件属性发生改变 事件名: ObjectEvent.OnPropertyChange 事件传参: 无 objectevent-objectplayanim 事件描述: 当此对象播放动画时 事件名: ObjectEvent.ObjectPlayAnim 事件传参: 参数名 说明 eventobjid 触发事件的对象 actorid 触发事件的生物类型 x,y,z 事件中的位置 | 事件中的动作 eventworldid | 事件中的星球 角色 序号 事件名 事件名描述 0 ObjectEvent.ObjectCollideByPlayer 当 此角色和任意玩家 碰撞开始 1 ObjectEvent.ObjectCollideByMob 当 此角色和任意生物 碰撞开始 2 ObjectEvent.ObjectCollideByMissile 当 此角色和任意投掷物 碰撞开始 3 ObjectEvent.ObjectCollideByDropItem 当 此角色和任意掉落物 碰撞开始 4 ObjectEvent.ObjectCollideByEntity 当 此角色和任意实体 碰撞开始 5 ObjectEvent.ObjectCollideByAreaObj 当 此角色和任意区域 碰撞开始 6 ObjectEvent.ObjectBeClick 此角色被玩家点击 7 ObjectEvent.ObjectBeHurt 当 此角色 受到伤害 8 ObjectEvent.ObjectDie 当 此角色 被击败 9 ObjectEvent.ObjectAttack 当 此角色开始攻击 10 ObjectEvent.ObjectAttackHit 当 此角色攻击命中 11 ObjectEvent.ObjectDefeat 当 此角色击败目标 12 ObjectEvent.ObjectDamage 当 此角色造成伤害 13 ObjectEvent.ObjectAddBuff 当 此角色获得 状态 14 ObjectEvent.ObjectRemoveBuff 当 此角色失去 状态 15 ObjectEvent.ObjectAttrStateChange 当此角色权限改变 16 ObjectEvent.ObjectChangeAttr 当此角色属性改变 17 ObjectEvent.ObjectMountActor 此角色骑乘 18 ObjectEvent.ObjectDismountActor 此角色取消骑乘 objectevent-objectcollidebyplayer 事件描述: 当 此角色和任意玩家 碰撞开始 事件名: ObjectEvent.ObjectCollideByPlayer 事件传参: 参数名 说明 EventObjType ToolObjType actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectcollidebymob 事件描述: 当 此角色和任意生物 碰撞开始 事件名: ObjectEvent.ObjectCollideByMob 事件传参: 参数名 说明 EventObjType ToolObjType actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectcollidebymissile 事件描述: 当 此角色和任意投掷物 碰撞开始 事件名: ObjectEvent.ObjectCollideByMissile 事件传参: 参数名 说明 EventObjType ToolObjType actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectcollidebydropitem 事件描述: 当 此角色和任意掉落物 碰撞开始 事件名: ObjectEvent.ObjectCollideByDropItem 事件传参: 参数名 说明 EventObjType ToolObjType actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectcollidebyentity 事件描述: 当 此角色和任意实体 碰撞开始 事件名: ObjectEvent.ObjectCollideByEntity 事件传参: 参数名 说明 EventObjType ToolObjType actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectcollidebyareaobj 事件描述: 当 此角色和任意区域 碰撞开始 事件名: ObjectEvent.ObjectCollideByAreaObj 事件传参: 参数名 说明 EventObjType ToolObjType actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectbeclick 事件描述: 此角色被玩家点击 事件名: ObjectEvent.ObjectBeClick 事件传参: 参数名 说明 actorid 触发事件的生物类型 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectbehurt 事件描述: 当 此角色 受到伤害 事件名: ObjectEvent.ObjectBeHurt 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z hurtlv 事件中的伤害值 hurttype 伤害类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectdie 事件描述: 当 此角色 被击败 事件名: ObjectEvent.ObjectDie 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-objectattack 事件描述: 当 此角色开始攻击 事件名: ObjectEvent.ObjectAttack 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-objectattackhit 事件描述: 当 此角色攻击命中 事件名: ObjectEvent.ObjectAttackHit 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectdefeat 事件描述: 当 此角色击败目标 事件名: ObjectEvent.ObjectDefeat 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectdamage 事件描述: 当 此角色造成伤害 事件名: ObjectEvent.ObjectDamage 事件传参: 参数名 说明 defaultvalue 自定义数值数据 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z hurtlv 事件中的伤害值 targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectaddbuff 事件描述: 当 此角色获得 状态 事件名: ObjectEvent.ObjectAddBuff 事件传参: 参数名 说明 buff buffid 事件中的状态效果 bufflvl eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-objectremovebuff 事件描述: 当 此角色失去 状态 事件名: ObjectEvent.ObjectRemoveBuff 事件传参: 参数名 说明 buff buffid 事件中的状态效果 bufflvl eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-objectattrstatechange 事件描述: 当此角色权限改变 事件名: ObjectEvent.ObjectAttrStateChange 事件传参: 参数名 说明 attstateType attstateValue eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z eventworldid 事件中星球 objectevent-objectchangeattr 事件描述: 当此角色属性改变 事件名: ObjectEvent.ObjectChangeAttr 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z playerattr 玩家属性 playerattrval 玩家属性值 eventworldid 事件中星球 objectevent-objectmountactor 事件描述: 此角色骑乘 事件名: ObjectEvent.ObjectMountActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 objectevent-objectdismountactor 事件描述: 此角色取消骑乘 事件名: ObjectEvent.ObjectDismountActor 事件传参: 参数名 说明 eventobjid 触发事件的对象 x 事件中位置X y 事件中位置Y z 事件中位置Z targetactorid 事件中的目标生物类型 toobjid 事件中的目标对象 eventworldid 事件中星球 对象模块管理接口 GameObject 具体函数名及描述如下: 序号 函数名 函数描述 1 FindObject(...) 根据ID查找游戏对象 2 FindUIObject(...) 获取UI对象 3 FindBlockObject(...) 查找方块类别对象 4 CreatePrefabInst(...) 使用预制ID创建对象 5 CreatePrefab(...) 创建对象列表 6 Destroy(...) 删除对象 7 GetObjectPrefab(...) 获取对象预制ID FindObject 参数及类型: id:number / string 游戏对象唯一标识 返回值及类型: obj:object游戏对象;未找到返回nil 该方法的其他说明: 根据ID查找游戏对象 具体使用案例如下: local uiObj = GameObject:FindObject("7482986899365911542-22886") if uiObj then print("找到ui界面对象") end local hostUin = Player:GetHostUin() local player = GameObject:FindObject(hostUin) if player then print("找到玩家对象") end FindUIObject 参数及类型: id:number / string UI对象唯一标识 返回值及类型: obj:objectUI游戏对象;未找到返回nil 该方法的其他说明: 根据ID查找UI游戏对象 具体使用案例如下: local obj = GameObject:FindUIObject(id) FindBlockObject 参数及类型: id:number / string 方块类型ID 返回值及类型: obj:object方块类别对象;未找到返回nil 该方法的其他说明: 根据方块类型ID查找方块类别对象 具体使用案例如下: -- 方块对象接口只能查找到编辑过的方块或是自定义的方块 --获取方块类型对象(场景中至少有个方块才能获取到) local blockObj = GameObject:FindBlockObject("r0_7495946400275515402_23048") if blockObj then print("找到方块对象") end CreatePrefabInst 参数及类型: prefabId:string 预制体ID worldId:number 星球ID(可选) x:number X坐标 y:number Y坐标 z:number Z坐标 trigger:boolean 是否触发事件(可选) 返回值及类型: obj:object创建的游戏对象;失败返回nil 该方法的其他说明: 在指定世界坐标使用预制体ID创建单个对象,可通过GetId()获取objId 具体使用案例如下: -- 创建场景中对象类型预制 local obj = GameObject:CreatePrefabInst("r1_7482990429829028854_22890", WorldId, 10,8,10) if obj then local hpCmp = obj:GetComponent("HP") -- 获取血量组件 if hpCmp then hpCmp.hp = 120 -- 设置血量 end print("创建预制成功") end CreatePrefab 参数及类型: objectType:number 对象类型(ObjType)ObjType prefabId:number / string 类型ID或预制ID x:number X坐标 y:number Y坐标 z:number Z坐标 num:number 数量(可选) trigger:boolean 是否触发事件(可选) worldId:number 星球ID(可选) 返回值及类型: objids:table 创建对象列表(安全对象);失败返回nil 该方法的其他说明: 在指定位置按类型与预制ID创建多个对象,返回对象列表,可用GetId()获取每个对象的objId 具体使用案例如下: -- 创建游戏内预设的生物2只 local objs = GameObject:CreatePrefab(ObjType.Mob, 3400, 10,8,10, 2, true, WorldId) if objs and #objs > 0 then -- obj.transform:SetPosition(10,8,10) -- 设置位置, 等同上面创的位置参数操作 for _, obj in ipairs(objs) do local objid = obj:GetId() -- 获取对象的objid local hpCmp = obj:GetComponent("HP") -- 获取血量组件 if hpCmp then hpCmp.hp = 120 -- 设置血量 end end print("创建游戏内生物成功") end -- 创建自定义生物 1只 local customObjs = GameObject:CreatePrefab(ObjType.Mob, "r1_7482990429829028854_22890", 10,8,13, 1, true, WorldId) if customObjs and #customObjs > 0 then print("创建自定义生物成功") end Destroy 参数及类型: objId:number / string 对象ID 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 销毁指定ID的游戏对象(玩家、方块、世界、UI对象不可删除) 具体使用案例如下: local objid = nil local obj = GameObject:CreatePrefabInst("r1_7482990429829028854_22890", nil, 10,8,10) --创建一个生物 if obj then -- 删除对象 objid = obj:GetId() GameObject:Destroy(objid) -- obj:Destroy() 对象的也可以直接调用Destroy删除 end GetObjectPrefab 参数及类型: objId:number 对象ID 返回值及类型: id:number / string 预制ID num:number 对象类型(多返回值);失败返回nil 该方法的其他说明: 获取对象的预制ID及对象类型(掉落物、投掷物、生物等可用) 具体使用案例如下: local id,num = GameObject:GetObjectPrefab(objId) 角色模块管理接口 Actor 具体函数名及描述如下: 序号 函数名 函数描述 1 GetItemId(...) 获取掉落物类型ID 2 GetDropItemNum(...) 获取掉落物品数量 3 SetTeam(...) 设置角色队伍 4 GetTeam(...) 获取角色队伍 5 AddHp(...) 增加角色当前生命值 6 GetMaxHP(...) 获取最大生命值 7 ShowNickName(...) 设置昵称显示 8 SetNickName(...) 设置角色昵称 9 GetNickName(...) 获取角色昵称 10 GetObjWorldId(...) 获取角色所在星球ID 11 IsPlayer(...) 检查对象是否为玩家 12 PlaySoundEffectById(...) 播放音效 13 StopSoundEffectById(...) 停止音效 14 PauseSoundEffectById(...) 暂停/恢复音效 15 RotateFaceToActor(...) 生物朝向目标 16 GetMotion(...) 获取对象移动速度 17 SetBeHurtTarget(...) 设置仇恨目标 18 GetActorFacade(...) 获取角色外观 19 CompareMainModel(...) 比较主模型外观 20 PlayBodyParticleById(...) 播放粒子特效 21 StopBodyEffectById(...) 停止粒子特效 22 SetBodyParticleTransform(...) 设置粒子特效变换 23 Jump(...) 对象跳跃 24 GetRidingActorObjId(...) 获取骑乘生物ID 25 GetFaceDirection(...) 获取对象朝向 26 TryMoveToActor(...) 对象移动到目标 27 SetFaceDirection(...) 设置对象朝向 28 KillSelf(...) 击败对象 29 SetAttr(...) 设置角色属性 30 IncreasesAttr(...) 增加角色属性值 31 GetAttr(...) 获取角色属性值 32 SetActorPermissions(...) 设置对象权限 33 GetActorPermissions(...) 获取对象权限 34 SetFaceYaw(...) 设置面向角度 35 GetFaceYaw(...) 获取面向角度 36 SetFacePitch(...) 设置仰望角度 37 GetFacePitch(...) 获取仰望角度 38 SetPosition(...) 设置角色位置 39 GetPosition(...) 获取对象位置 40 ChangeCustomModel(...) 改变对象外观 41 RecoverinitialModel(...) 恢复对象外观 42 ActorHurt(...) 对象造成伤害 43 SetImmuneType(...) 设置免疫伤害类型 44 ChangActorMoveType(...) 改变移动方式 45 GetActorMovementMode(...) 获取移动模式 46 GetBoundSzie(...) 获取模型大小 47 RandomFacadeID(...) 随机外观ID 48 GetObjType(...) 获取对象类型 49 TryMoveToPos(...) 移动对象到位置(寻路) 50 AppendSpeed(...) 附加速度 51 FindNearestBlock(...) 查找最近方块 52 GetEyeHeight(...) 获取角色眼睛高度 53 ClearActorWithId(...) 清除指定类型生物 54 IsExist(...) 对象是否存在 55 PlayAnim(...) 对象播放动作 56 PlayHandAnim(...) 对象手持播放动作 57 MountActor(...) 角色骑乘 58 DisMountActor(...) 角色取消骑乘 59 PickupActor(...) 角色举起角色 60 TryPickupActorForward(...) 尝试抓取前方对象 61 DropActor(...) 尝试投掷角色 62 EscapePickup(...) 尝试逃脱抓举 63 SetBtreeVarValue(...) 设置行为树变量 64 GetBtreeVarValue(...) 获取行为树变量 65 GetDropItemInstanceId(...) 获取掉落物实例ID 66 SetAblePick(...) 设置掉落物可拾取 67 GetEntityFacade(...) 获取实体类型外观 68 PickupItem(...) 角色拾取物品 69 GetPickupObjID(...) 获取举起行为中的角色ID 70 HasTags(...) 对象是否有标签 71 GetTags(...) 获取对象标签列表 72 AddTags(...) 添加标签 73 RemoveTags(...) 删除标签 74 ClearTags(...) 清空所有标签 75 PlayAnimByObj(...) 对象播放对象动作 GetItemId 参数及类型: objid:number 掉落物对象ID 返回值及类型: id:number 掉落物类型ID(失败返回nil) 该方法的其他说明: 根据掉落物对象ID获取对应的物品类型ID 具体使用案例如下: local itemId = Actor:GetItemId(objId) GetDropItemNum 参数及类型: objid:number 掉落物对象ID 返回值及类型: num:number 掉落物品数量 该方法的其他说明: 根据掉落物对象ID获取该掉落物的物品数量 具体使用案例如下: local num = Actor:GetDropItemNum(objId) SetTeam 参数及类型: objid:number 角色对象ID teamid:number 队伍ID(AbsoluteCampType)AbsoluteCampType bResetAttr:boolean 是否重置属性(仅玩家有效,默认false) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定角色的队伍ID,可指定是否重置属性(仅对玩家有效) 具体使用案例如下: -- 设置玩家为3队 local result = Actor:SetTeam(Player:GetHostUin(), AbsoluteCampType.Team3) GetTeam 参数及类型: objid:number 角色对象ID 返回值及类型: id:number 队伍ID(失败返回nil) 该方法的其他说明: 根据角色对象ID获取该角色所属的队伍ID 具体使用案例如下: local team = Actor:GetTeam(Player:GetHostUin()) AddHp 参数及类型: objid:number 角色对象ID hp:number 血量值(hp>0增加血量,hp<0减少血量) 返回值及类型: bool:boolean 是否操作成功 该方法的其他说明: 增加或减少指定角色的当前生命值,正数增加,负数减少 具体使用案例如下: local bool = Actor:AddHp(objid, hp) GetMaxHP 参数及类型: objid:number 角色对象ID 返回值及类型: num:number 最大生命值(失败返回nil) 该方法的其他说明: 获取指定角色的最大生命值,包括所有属性加成 具体使用案例如下: local num = Actor:GetMaxHP(objid) ShowNickName 参数及类型: objid:number 角色对象ID bshow:boolean 是否显示昵称 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定角色对象的昵称显示状态 具体使用案例如下: -- 显示昵称 local result = Actor:ShowNickName(Player:GetHostUin(), true) -- 隐藏昵称 local result2 = Actor:ShowNickName(Player:GetHostUin(), false) SetNickName 参数及类型: objid:number 角色对象ID nickname:string 昵称 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定角色的昵称,会自动过滤敏感词 具体使用案例如下: local result = Actor:SetNickName(Player:GetHostUin(), "昵称123") GetNickName 参数及类型: objid:number 角色对象ID 返回值及类型: name:string 角色昵称(失败返回nil) 该方法的其他说明: 根据角色对象ID获取该角色的昵称,支持玩家和生物 具体使用案例如下: -- 获取玩家昵称 local nickname = Actor:GetNickName(Player:GetHostUin()) GetObjWorldId 参数及类型: objid:number 角色对象ID 返回值及类型: id:number 星球ID(失败返回-1) 该方法的其他说明: 获取指定角色当前所在的星球ID 具体使用案例如下: local worldId = Actor:GetObjWorldId(Player:GetHostUin()) IsPlayer 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否为玩家 该方法的其他说明: 检测指定对象ID是否为玩家对象 具体使用案例如下: local isPlayer = Actor:IsPlayer(objId) PlaySoundEffectById 参数及类型: objid:number 角色对象ID soundId:number 声音ID volume:number 音量(0-100,实际会转换为0-1) pitch:number 音调(默认1.0) isLoop:boolean 是否循环播放(默认false) 返回值及类型: bool:boolean 是否播放成功 该方法的其他说明: 在指定角色对象身上通过声音ID播放音效,支持设置音量、音调和循环播放 具体使用案例如下: -- 对象上播放3d音效10379, 音量100, 音调1, 不循环 local result = Actor:PlaySoundEffectById(Player:GetHostUin(), 10379, 100, 1, false) StopSoundEffectById 参数及类型: objid:number 角色对象ID soundId:number 声音ID 返回值及类型: bool:boolean 是否停止成功 该方法的其他说明: 停止指定角色对象身上正在播放的音效 具体使用案例如下: -- 停止播放3d音效10379 local result = Actor:StopSoundEffectById(Player:GetHostUin(), 10379) PauseSoundEffectById 参数及类型: objid:number 角色对象ID soundId:number 声音ID(-1表示暂停所有音效) pause:boolean true暂停/false恢复 返回值及类型: bool:boolean 是否操作成功 该方法的其他说明: 暂停或恢复指定角色对象身上正在播放的音效,支持暂停所有音效(soundId=-1) 具体使用案例如下: --暂停播放3d音效10379 local result = Actor:PauseSoundEffectById(Player:GetHostUin(), 10379, true) RotateFaceToActor 参数及类型: objid:number 生物对象ID targetid:number 目标生物对象ID 返回值及类型: bool:boolean 是否旋转成功 该方法的其他说明: 使指定生物对象旋转朝向目标生物对象 具体使用案例如下: local result = Actor:RotateFaceToActor(objId, Player:GetHostUin()) GetMotion 参数及类型: objid:number 对象ID 返回值及类型: x:number 运动速度X y:number 运动速度Y z:number 运动速度Z(未移动时速度为0) 该方法的其他说明: 获取指定对象当前的移动速度,返回三个轴向的速度分量 具体使用案例如下: local x, y, z = Actor:GetMotion(objId) SetBeHurtTarget 参数及类型: objid:number 生物对象ID targetid:number 目标生物对象ID 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定生物对象的仇恨目标,用于AI战斗系统 具体使用案例如下: local result = Actor:SetBeHurtTarget(objId, Player:GetHostUin()) GetActorFacade 参数及类型: objid:number 对象ID bhasequip:boolean 是否包含装备(默认false,仅玩家有效) 返回值及类型: facade:string 对象外观描述信息(失败返回nil) 该方法的其他说明: 获取指定对象的外观描述信息,可设置是否包含装备信息(仅玩家有效,需要确保对象在场景中存在) 具体使用案例如下: local facade = Actor:GetActorFacade(Player:GetHostUin()) --不带装备信息 local facade2 = Actor:GetActorFacade(Player:GetHostUin(),true) --附带装备信息目前只有使用avatar模型的玩家可以生效 CompareMainModel 参数及类型: facade1:string 外观类型1 facade2:string 外观类型2 返回值及类型: bool:boolean 是否相等(参数错误返回false) 该方法的其他说明: 比较两个主模型外观是否相等,通过外观描述信息进行对比 具体使用案例如下: local bool = Actor:CompareMainModel(facade1, facade2) PlayBodyParticleById 参数及类型: objid:number 生物对象ID particleId:number / string / table 粒子特效ID或ID数组 ptme:number 时长(单位:秒) offset:table 偏移(默认{x=0,y=0,z=0}) rot:table 旋转(默认{x=0,y=0,z=0}) scale:table 缩放(默认{x=1,y=1,z=1}) 返回值及类型: bool:boolean 是否播放成功 该方法的其他说明: 在指定对象身上播放粒子特效,支持设置偏移、旋转和缩放,可批量播放多个特效 具体使用案例如下: -- 对象上播放特效,特效id为1005,播放时间10秒,特效偏移y 2个方块位置,特效y旋转45,特效缩放为2倍 local result = Actor:PlayBodyParticleById(Player:GetHostUin(), 1005, 10, {x = 0, y = 2, z = 0}, {x = 0, y = 45, z = 0}, {x = 2, y = 2, z = 2}) StopBodyEffectById 参数及类型: objid:number 生物对象ID particleId:number / string / table 粒子特效ID或ID数组 返回值及类型: bool:boolean 是否停止成功 该方法的其他说明: 停止指定对象身上正在播放的粒子特效,支持单个或批量停止 具体使用案例如下: local result = Actor:StopBodyEffectById(Player:GetHostUin(), 1005) SetBodyParticleTransform 参数及类型: objid:number 生物对象ID particleId:number / string / table 粒子特效ID或ID数组 offset:table 偏移(默认{x=0,y=0,z=0}) rot:table 旋转(默认{x=0,y=0,z=0}) scale:table 缩放(默认{x=1,y=1,z=1}) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定对象身上粒子特效的变换参数,包括偏移、旋转和缩放,支持批量设置 具体使用案例如下: -- 修改对象上播放的特效,特效id为1005,播放时间10秒,特效偏移y 2个方块位置,特效y旋转45,特效缩放为2倍 local result = Actor:SetBodyParticleTransform(Player:GetHostUin(), 1005, {x = 0, y = 2, z = 0}, {x = 0, y = 45, z = 0}, {x = 2, y = 2, z = 2}) Jump 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否跳跃成功 该方法的其他说明: 使指定玩家或生物对象执行一次跳跃动作 具体使用案例如下: local result = Actor:Jump(objId) GetRidingActorObjId 参数及类型: objid:number 角色对象ID 返回值及类型: id:number 生物对象ID(失败返回0) 该方法的其他说明: 获取指定角色对象正在骑乘的生物对象ID 具体使用案例如下: local ridingObjId = Actor:GetRidingActorObjId(Player:GetHostUin()) GetFaceDirection 参数及类型: objid:number 对象ID 返回值及类型: pos:table 轴向上的方向向量{x=number,y=number,z=number}(失败返回nil) 该方法的其他说明: 获取指定对象当前的朝向方向,返回三个轴向的方向向量 具体使用案例如下: local face = Actor:GetFaceDirection(objId) TryMoveToActor 参数及类型: objid:number 执行动作的对象ID targetObjid:number 目标对象ID speed:number 移动速度 返回值及类型: bool:boolean 是否移动成功 该方法的其他说明: 使指定对象向目标对象移动,可设置移动速度(注意:刚创建的对象需要加个等待时间) 具体使用案例如下: local objs = World:SpawnCreature(x + 5, y + 1, z, 3400, 1, true, WorldId) local objId = objs[1] self:ThreadWait(0.2) -- 创建嘟嘟鸟往房主走 local result = Actor:TryMoveToActor(objId, Player:GetHostUin(), 5) SetFaceDirection 参数及类型: objid:number 对象ID x:number 轴向方向X y:number 轴向方向Y z:number 轴向方向Z 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定对象的朝向方向,通过三个轴向的方向向量控制 具体使用案例如下: local result = Actor:SetFaceDirection(objId, 0, 90, 0) KillSelf 参数及类型: objid:number 生物对象ID 返回值及类型: bool:boolean 是否击败成功 该方法的其他说明: 击败指定生物对象,使其死亡 具体使用案例如下: local result = Actor:KillSelf(objId) SetAttr 参数及类型: objid:number 角色对象ID atttype:number 属性类型枚举(RoleAttr)RoleAttr val:number 属性值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定角色对象的属性值,支持多种属性类型(血量、速度、体力等),属性改变会触发事件 具体使用案例如下: -- 设置攻击力300 local result = Actor:SetAttr(objId, RoleAttr.Atk, 300) IncreasesAttr 参数及类型: objid:number 角色对象ID atttype:number 属性类型枚举(RoleAttr)RoleAttr val:number 增加值 返回值及类型: bool:boolean 是否增加成功 该方法的其他说明: 增加指定角色对象的属性值,在原有属性值基础上增加指定数值 具体使用案例如下: local bool = Actor:IncreasesAttr(objid, atttype, val) GetAttr 参数及类型: objid:number 角色对象ID atttype:number 属性类型枚举(RoleAttr)RoleAttr 返回值及类型: num:number 属性值(失败返回nil) 该方法的其他说明: 获取指定角色对象的属性值,支持多种属性类型(血量、速度、体力等) 具体使用案例如下: -- 获取最大血量 local maxHp = Actor:GetAttr(objId, RoleAttr.MaxHp) SetActorPermissions 参数及类型: objid:number 对象ID ability:number 行为枚举(Ability)Ability switch:boolean 是否开启 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定对象的行为权限,控制对象的各种能力开关(推荐接口) 具体使用案例如下: local result = Actor:SetActorPermissions(objId, Ability.EnableBeattacked, true) GetActorPermissions 参数及类型: objid:number 对象ID ability:number 行为枚举(Ability)Ability 返回值及类型: bool:boolean 权限开关状态 该方法的其他说明: 获取指定对象的行为权限状态,查询对象的各种能力开关(推荐接口) 具体使用案例如下: local state = Actor:GetActorPermissions(objId, Ability.Attack) SetFaceYaw 参数及类型: objid:number 生物对象ID yaw:number 面朝角度 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定生物对象的水平朝向角度(偏航角) 具体使用案例如下: local result = Actor:SetFaceYaw(objId, 90) GetFaceYaw 参数及类型: objid:number 生物对象ID 返回值及类型: num:number 面朝角度(失败返回nil) 该方法的其他说明: 获取指定生物对象的水平朝向角度(偏航角) 具体使用案例如下: local yaw = Actor:GetFaceYaw(objId) SetFacePitch 参数及类型: objid:number 生物对象ID pitch:number 仰望角度 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定生物对象的垂直仰望角度(俯仰角) 具体使用案例如下: local pitch = Actor:GetFacePitch(Player:GetHostUin()) GetFacePitch 参数及类型: objid:number 生物对象ID 返回值及类型: num:number 仰望角度(失败返回nil) 该方法的其他说明: 获取指定生物对象的垂直仰望角度(俯仰角) 具体使用案例如下: local num = Actor:GetFacePitch(objid) SetPosition 参数及类型: objid:number 角色对象ID x:number 目标X坐标 y:number 目标Y坐标 z:number 目标Z坐标 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定角色对象的位置坐标,支持玩家和生物,坐标会自动转换为内部单位 具体使用案例如下: local result = Actor:SetPosition(objId, x, y, z) GetPosition 参数及类型: objid:number 对象ID 返回值及类型: x:number 目标X坐标 y:number 目标Y坐标 z:number 目标Z坐标(失败返回nil) 该方法的其他说明: 获取指定对象的位置坐标,返回三个轴向的坐标值,坐标会自动转换为外部单位 具体使用案例如下: local x, y, z = Actor:GetPosition(objId) ChangeCustomModel 参数及类型: objid:number 对象ID modleName:string 对象外观描述 返回值及类型: bool:boolean 是否改变成功 该方法的其他说明: 改变指定对象的外观模型,支持多种模型类型(道具、生物、方块、实体等) 具体使用案例如下: -- 改变玩家外观为萤火虫 local result = Actor:ChangeCustomModel(Player:GetHostUin(), "mob_3419") RecoverinitialModel 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否恢复成功 该方法的其他说明: 恢复指定对象到初始外观模型,清除自定义外观设置 具体使用案例如下: local result = Actor:RecoverinitialModel(Player:GetHostUin()) ActorHurt 参数及类型: objid:number 攻击者对象ID targetid:number 目标对象ID damage:number 伤害值 attacktype:number 伤害类型枚举(HurtType)HurtType ignoreResist:boolean 忽略伤害抵抗 ignoreTriggerEvent:boolean 忽略触发伤害事件 返回值及类型: bool:boolean 是否造成伤害成功 该方法的其他说明: 使指定对象对目标对象造成伤害,支持设置伤害类型、是否忽略伤害抵抗和触发事件 具体使用案例如下: -- 玩家对生物造成近战伤害10点 local result = Actor:ActorHurt(Player:GetHostUin(), objId, 10, HurtType.Melee) SetImmuneType 参数及类型: objid:number 对象ID immunetype:number 伤害类型枚举(HurtType,-1表示免疫所有伤害)HurtType isadd:boolean 是否开启免疫 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定对象对特定伤害类型的免疫状态,支持设置无敌状态(immunetype=-1) 具体使用案例如下: -- 设置免疫爆炸伤害 local result = Actor:SetImmuneType(objId, HurtType.Bomb, true) -- 设置免疫所有伤害 Actor:SetImmuneType(objId, HurtType.All, true) ChangActorMoveType 参数及类型: objid:number 对象ID moveMode:number 移动模式枚举(MoveType)MoveType 返回值及类型: bool:boolean 是否改变成功(角色没有对应能力时返回失败) 该方法的其他说明: 改变指定对象的移动方式,支持行走、游泳、飞行等模式,如果角色没有对应能力则返回失败 具体使用案例如下: local result = Actor:ChangActorMoveType(Player:GetHostUin(), MoveType.Flying) GetActorMovementMode 参数及类型: objid:number 对象ID 返回值及类型: num:number 移动模式枚举(MoveType)(失败返回nil) 该方法的其他说明: 获取指定角色对象当前的移动模式 具体使用案例如下: local moveType = Actor:GetActorMovementMode(Player:GetHostUin()) GetBoundSzie 参数及类型: objid:number 角色对象ID 返回值及类型: vec:table 模型大小{x=长,y=高,z=宽}(失败返回nil) 该方法的其他说明: 获取指定角色对象的模型边界大小,返回长、高、宽三个维度的尺寸 具体使用案例如下: local size = Actor:GetBoundSzie(objId) RandomFacadeID 参数及类型: 无 返回值及类型: id:string 随机外观ID(失败返回nil) 该方法的其他说明: 从外观列表中随机获取一个外观ID字符串,包括生物、角色、装扮等类型 具体使用案例如下: local facadeID = Actor:RandomFacadeID() GetObjType 参数及类型: objid:number 对象ID 返回值及类型: itype:number 对象类型枚举(ObjType)(失败返回nil) 该方法的其他说明: 获取指定对象的类型,判断对象是玩家、生物还是其他类型 具体使用案例如下: local objType = Actor:GetObjType(objId) TryMoveToPos 参数及类型: objid:number 角色对象ID x:number 目标X坐标 y:number 目标Y坐标 z:number 目标Z坐标 cancontrol:boolean 是否能控制(默认true) bshowtip:boolean 是否显示提示(默认false) 返回值及类型: bool:boolean 是否移动成功 该方法的其他说明: 尝试移动指定角色对象到目标位置,使用寻路算法,支持设置是否可控制和是否显示提示 具体使用案例如下: local result = Actor:TryMoveToPos(objId, x + 10, y + 1, z, false, false) AppendSpeed 参数及类型: objid:number 对象ID vx:number 轴向速度X vy:number 轴向速度Y vz:number 轴向速度Z 返回值及类型: bool:boolean 是否附加成功 该方法的其他说明: 给指定对象附加一个速度,在三个轴向上叠加速度分量 具体使用案例如下: -- 给对象增加个x轴20,y轴10,z轴0的移动速度 local result = Actor:AppendSpeed(objId, 20, 10, 0) FindNearestBlock 参数及类型: objid:number 对象ID blockid:number / string 查找的方块类型ID blockRange:number 查找范围(传1表示1格方块距离) 返回值及类型: x:number 方块坐标X y:number 方块坐标Y z:number 方块坐标Z(失败返回nil) 该方法的其他说明: 在指定对象附近查找某个类型方块的最近位置,返回方块坐标 具体使用案例如下: local x, y, z = Actor:FindNearestBlock(objid, blockid, blockRange) GetEyeHeight 参数及类型: objid:number 角色对象ID 返回值及类型: num:number 眼睛高度(失败返回nil) 该方法的其他说明: 获取指定角色对象的眼睛高度,用于视线计算 具体使用案例如下: local height = Actor:GetEyeHeight(objId) ClearActorWithId 参数及类型: actorid:number / string 生物类型ID bkill:boolean 是否杀死生物(默认false,影响是否产生掉落物) worldId:number 星球ID(默认当前主机所在星球) 返回值及类型: bool:boolean 是否清除成功 该方法的其他说明: 清除指定类型的所有生物,可设置是否杀死生物(影响是否产生掉落物)和指定星球 具体使用案例如下: local result = Actor:ClearActorWithId(3400, false, WorldId) local count = 0 for _, objId in ipairs(objs) do local obj = GameObject:FindObject(objId) if obj then count = count + 1 end end IsExist 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否存在 该方法的其他说明: 检测指定对象是否存在且存活 具体使用案例如下: local isExist = Actor:IsExist(objId) PlayAnim 参数及类型: objid:number 对象ID animid:number / string 动作ID speed:number 播放速度 loop:number / boolean 播放模式(AnimMode)或是否循环AnimMode 返回值及类型: bool:boolean 是否播放成功 该方法的其他说明: 在指定对象身上播放动作,支持设置播放速度和循环模式,播放成功会触发事件 具体使用案例如下: local result = Actor:PlayAnim(objId, 100100, 1, AnimMode.Default) PlayHandAnim 参数及类型: objid:number 对象ID animid:number / string 动作ID speed:number 播放速度 loop:number / boolean 播放模式(AnimMode)或是否循环AnimMode 返回值及类型: bool:boolean 是否播放成功 该方法的其他说明: 在指定对象的手部播放动作,支持设置播放速度和循环模式 具体使用案例如下: local result = Actor:PlayHandAnim(objId, 100100, 1, AnimMode.Once) MountActor 参数及类型: objid:number 对象ID rideobjid:number 被骑乘对象ID isContrl:boolean 是否控制 isCloseAI:boolean 是否关闭AI 返回值及类型: bool:boolean 是否骑乘成功 该方法的其他说明: 使指定角色对象骑乘到目标对象上,支持设置是否控制和是否关闭AI 具体使用案例如下: local result = Actor:MountActor(Player:GetHostUin(), objId, true, true) DisMountActor 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否取消成功 该方法的其他说明: 使指定角色对象取消当前骑乘状态 具体使用案例如下: local result = Actor:DisMountActor(Player:GetHostUin()) PickupActor 参数及类型: objidA:number:对象objidA,objidB:number:对象objidB 返回值及类型: bool:boolean 是否举起成功 该方法的其他说明: 使角色A尝试举起角色B 具体使用案例如下: -- local result = Actor:PickupActor(uin, objId) -- Actor:EscapePickup(objId) --取消抓举 --偏移量方块距离 local offset = { x = 0, y = 1, z = 0, } --偏移量 local rotate = { x = 0, y = 0, z = 0, } local result = Actor:PickupActor(uin,objId,100502,100113,offset,rotate) TryPickupActorForward 参数及类型: objid:number 角色对象ID distance:number 抓取距离 返回值及类型: bool:boolean 是否抓取成功 该方法的其他说明: 尝试抓取指定角色前方指定距离内的对象,失败时会播放尝试举起动作 具体使用案例如下: local result = Actor:TryPickupActorForward(Player:GetHostUin(), 30) DropActor 参数及类型: objid:number 投掷动作对象ID dir:table 投掷方向{x=number,y=number,z=number} isThrow:boolean 是否投掷 speed:number 投掷速度 hasInertance:boolean 是否有惯性 返回值及类型: bool:boolean 是否投掷成功 该方法的其他说明: 尝试投掷指定角色对象,支持设置投掷方向、速度、是否投掷和是否有惯性 具体使用案例如下: local result = Actor:DropActor(Player:GetHostUin(), {x = 1, y = 2, z = 0}, true, 500, true) EscapePickup 参数及类型: objid:number 被抓举的对象ID 返回值及类型: bool:boolean 是否逃脱成功 该方法的其他说明: 使指定被抓举的对象尝试逃脱抓举状态 具体使用案例如下: self:ThreadWait(0.1) local result = Actor:EscapePickup(objId) SetBtreeVarValue 参数及类型: objid:number 生物对象ID varid:string 变量ID val:any变量值 返回值及类型: bool:boolean 是否设置成功(组数据无法设置) 该方法的其他说明: 设置指定生物对象行为树的变量值,组数据无法设置 具体使用案例如下: local result = Actor:SetBtreeVarValue(objId, "7321982627776387751_26396", 1) GetBtreeVarValue 参数及类型: objid:number 生物对象ID varid:string 变量ID 返回值及类型: val:any变量值(失败返回nil,组数据无法获取) 该方法的其他说明: 获取指定生物对象行为树的变量值,组数据无法获取 具体使用案例如下: local result = Actor:GetBtreeVarValue(objId, "7321982627776387751_26396") GetDropItemInstanceId 参数及类型: objid:number 掉落物对象ID 返回值及类型: id:string 道具实例ID(失败返回nil) 该方法的其他说明: 根据掉落物对象ID获取对应的道具实例ID 具体使用案例如下: local id = Actor:GetDropItemInstanceId(objid) SetAblePick 参数及类型: objid:number 掉落物对象ID able:boolean 是否可以拾取 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定掉落物对象是否可以被拾取 具体使用案例如下: local result = Actor:SetAblePick(objId, false) GetEntityFacade 参数及类型: prefab:string 实体类型名称 返回值及类型: facade:string 外观描述信息(失败返回nil) 该方法的其他说明: 根据实体类型名称获取对应的外观描述信息,支持官方模板实体和自定义实体 具体使用案例如下: --传入自定义实体prefabid local result = Actor:GetEntityFacade("s_7509852525127419914_23098") PickupItem 参数及类型: objid:number 角色对象ID itemobjid:number 掉落物或投掷物对象ID bforcepickup:boolean 是否强制拾取(默认false) 返回值及类型: num:number 拾取数量(失败返回0) 该方法的其他说明: 使指定角色对象拾取地上的掉落物或投掷物,支持强制拾取 具体使用案例如下: local result = Actor:PickupItem(Player:GetHostUin(), objId) if result then print("拾取掉落物成功 数量 = " ,result) end GetPickupObjID 参数及类型: objid:number 角色对象ID roleType:number 角色类型(1=举起者CARRYING, 2=被举起者CARRIED) 返回值及类型: id:number 角色对象ID(失败返回0) 该方法的其他说明: 获取指定角色举起的角色对象ID或被举起的角色对象ID 具体使用案例如下: local id = Actor:GetPickupObjID(objid, roleType) HasTags 参数及类型: objid:number 对象ID tags:string / table 标签或标签数组 mathcmode:number 匹配方式(MatchMode)MatchMode bexactmatch:boolean 每条标签是否精确匹配 返回值及类型: bool:boolean 是否具有标签 该方法的其他说明: 检测指定对象是否具有指定标签,支持部分匹配方式和精确匹配 具体使用案例如下: local result = Actor:HasTags(uin, {"A.B.C", "A.D.E", "F.G.H" },MatchMode.All,true) local result2 = Actor:HasTags(uin, {"A.B.C", "D.E", "S.T.D" },MatchMode.All,false) local result3 = Actor:HasTags(uin, {"A.B.C","B.C", },MatchMode.Any,false) local result4 = Actor:HasTags(uin, { "G.H" },MatchMode.Any,false) GetTags 参数及类型: objid:number 对象ID 返回值及类型: tags:table 标签数组(失败返回nil) 该方法的其他说明: 获取指定对象的所有标签列表 具体使用案例如下: local tags = Actor:GetTags(uin) if tags then print("玩家定义中的标签:", tags) end AddTags 参数及类型: objid:number 对象ID tags:string / table 标签或标签数组(数值字母下划线组合) icount:number 引用计数(默认1) 返回值及类型: bool:boolean 是否添加成功 该方法的其他说明: 为指定对象添加标签,支持批量添加,标签由数值、字母和下划线组合,支持引用计数 具体使用案例如下: local tags = { "A.B.C", "A.D.E", "F.G.H" } local result = Actor:AddTags(uin, tags, 1) if result then print("添加标签成功", result) end RemoveTags 参数及类型: objid:number 对象ID tags:string / table 标签或标签数组 icount:number 引用计数(默认0,传0全部删除) 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 从指定对象删除标签,支持批量删除,引用计数为0时全部删除 具体使用案例如下: local bool = Actor:RemoveTags(objid, tags, icount) ClearTags 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否清空成功 该方法的其他说明: 清空指定对象的所有标签 具体使用案例如下: local result = Actor:ClearTags(uin) PlayAnimByObj 参数及类型: objidA:number 对象ID A objidB:number 对象ID B breplay:boolean 是否重新播放(默认false) 返回值及类型: bool:boolean 是否播放成功(仅玩家、生物、实体生效) 该方法的其他说明: 使对象A播放对象B的动作,仅玩家、生物和实体生效,模型外观最好一致 具体使用案例如下: local ret = Actor:PlayAnim(uin, "100101", 1, AnimMode.Loop) -- 玩家播放奔跑动画 if ret then self:ThreadWait(0.2) -- 如果objId对应的模型如果没有动画 就播放不成功 跟随播放的生物最好不要动 可能会被其他状态打断 ret = Actor:PlayAnimByObj(objId , uin ,true) -- 重新播放 end 玩家模块管理接口 Player 具体函数名及描述如下: 序号 函数名 函数描述 1 GetHostUin(...) 获取房主Uin 2 SetGameResults(...) 设置对局结果 3 SetGameWin(...) 设置玩家胜利 4 GetCurToolID(...) 获取手持道具ID 5 GetShotcutIndex(...) 获取当前快捷栏索引(索引从1开始) 6 SetShotcutIndex(...) 设置当前快捷栏索引 7 SetSkillCD(...) 设置技能CD 8 ReviveToPos(...) 玩家在指定位置复活 9 SetRevivePoint(...) 设置玩家复活点 10 NotifyGameInfo2Self(...) 显示飘窗文字 11 RotateCamera(...) 旋转摄像机角度 12 ShakeCamera(...) 抖动镜头 13 StopShakeCamera(...) 停止抖动镜头 14 RotateCameraToActor(...) 旋转摄像机朝向目标 15 ChangeViewMode(...) 切换视角模式 16 IsEquipByResID(...) 是否装备指定装备 17 IsHandWeaponSpellEnhancementActive(...) 手持武器铭刻法术强化方向激活状态 18 GetAimPos(...) 获取准心位置 19 GetAimDir(...) 获取准心方向 20 GetRayOriginPos(...) 获取射线起点位置 21 PlayMusic(...) 播放背景音乐2D 22 StopMusic(...) 停止背景音乐2D 23 PauseMusic(...) 暂停/恢复背景音乐 24 OpenUIView(...) 打开UI界面 25 HideUIView(...) 隐藏UI界面 26 GetClientInfo(...) 获取客机类型 27 GetNickname(...) 获取玩家昵称 28 OpenDevGoodsBuyDialog(...) 打开开发者商品购买弹框 29 OpenDevGoodsBuyDetailedDialog(...) 打开开发者商品详情页 30 OpenDevStore(...) 打开开发者商店 31 OpenDevStoreTab(...) 打开开发者商店二级分类 32 OpenDevGoodsPage(...) 打开开发者商店一级页面 33 GetMiniCurrency(...) 获取迷你币数量 34 GetPlayerCostStatic(...) 获取玩家消费统计 35 StandReportEvent(...) 上报埋点事件 36 ClearMotion(...) 清空运动趋势 37 SetMobileVibrate(...) 手机震动 38 GetScreenSpacePos(...) 获取屏幕坐标 39 GetScreenSpacePosV2(...) 获取屏幕坐标V2 40 SendFriendApply(...) 发送好友申请 41 SetCameraPosTransformTo(...) 摄像机移动到位置 42 SetCameraRotTransformTo(...) 摄像机旋转到角度 43 SetCameraFovTransformTo(...) 摄像机FOV到值 44 SetCameraPosTransformBy(...) 摄像机按偏移移动 45 SetCameraRotTransformBy(...) 摄像机相对旋转 46 SetCameraFovTransformBy(...) 摄像机按偏移调整视野 47 SetCameraAttrState(...) 设置摄像机属性开关 48 SetCameraRotMode(...) 设置摄像机旋转模式 49 SetCameraMountObj(...) 摄像机挂载对象 50 SetCameraMountPos(...) 摄像机挂载位置 51 ResetCameraAttr(...) 重置摄像机 52 OpenBoxByPos(...) 打开箱子 53 GetFirstInviter(...) 获取首次邀请人 54 HasFriend(...) 是否好友 55 GetMiniVipLevel(...) 获取VIP等级 56 ChangPlayerMoveType(...) 切换移动方式 57 PlayAdvertising(...) 播放广告 58 OpenInnerView(...) 打开/关闭游戏内弹窗 59 SetItemAttAction(...) 设置道具能力开关 60 ForceOpenBoxUI(...) 强制打开箱子UI 61 ItemSkillCDEnter(...) 道具技能进入冷却 62 ItemSkillCDDone(...) 道具技能结束冷却 63 SetGunActionState(...) 设置枪械动作开关 64 GetViewMode(...) 获取视角模式 65 GetRevivePoint(...) 获取复活点 66 GetRentCloudServerOwner(...) 获取云房间房主 67 RemovePlayer(...) 将玩家移出本局 68 GetFriendList(...) 获取好友列表 69 SetSettingEnable(...) 设置游戏开关 70 SetSettingAbility(...) 设置游戏设置权限 71 RotateMainModel(...) 旋转玩家模型 72 EnterGunState(...) 进入枪械状态 73 LevelGunState(...) 离开枪械状态 GetHostUin 参数及类型: 无 返回值及类型: ret:number / nil 玩家Uin 该方法的其他说明: 获取房主Uin(云服/房间服环境优先走房主Uin) 具体使用案例如下: local uin = Player:GetHostUin() SetGameResults 参数及类型: objid:number 玩家Uin result:number 游戏结果(TeamResults)TeamResults 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置玩家的对局结果 具体使用案例如下: local result = Player:SetGameResults(Player:GetHostUin(), TeamResults.Win) SetGameWin 参数及类型: objid:number 玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 结束游戏并将指定玩家设为胜者(会触发游戏结算) 具体使用案例如下: local result = Player:SetGameWin(Player:GetHostUin()) GetCurToolID 参数及类型: objid:number 玩家Uin 返回值及类型: ret:number / string / nil 道具ID 该方法的其他说明: 获取玩家当前手持道具ID 具体使用案例如下: local toolID = Player:GetCurToolID(Player:GetHostUin()) GetShotcutIndex 参数及类型: objid:number 玩家Uin 返回值及类型: ret:number / nil 索引值 该方法的其他说明: 获取玩家当前选中快捷栏索引(索引从1开始) 具体使用案例如下: local index = Player:GetShotcutIndex(Player:GetHostUin()) SetShotcutIndex 参数及类型: objid:number 玩家Uin index:number 快捷栏索引(1~8) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置玩家当前选中快捷栏索引(1~8) 具体使用案例如下: local result = Player:SetShotcutIndex(Player:GetHostUin(), 2) SetSkillCD 参数及类型: objid:number 玩家Uin itemid:number / string 道具类型或资源id cd:number 冷却时间 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置道具技能冷却时间 具体使用案例如下: local result = Player:SetSkillCD(Player:GetHostUin(), 12005, 10) ReviveToPos 参数及类型: objid:number 玩家Uin x:number / table 方块坐标x或坐标表{x=方块坐标x,y=方块坐标y,z=方块坐标z,worldId=星球ID} y:number / nil 方块坐标y z:number / nil 方块坐标z worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 使玩家在指定方块坐标位置复活(支持传入坐标表) 具体使用案例如下: local result = Player:ReviveToPos(Player:GetHostUin(), x, y, z) SetRevivePoint 参数及类型: objid:number 玩家Uin x:number / table 方块坐标x或坐标表{x=方块坐标x,y=方块坐标y,z=方块坐标z,worldId=星球ID} y:number / nil 方块坐标y z:number / nil 方块坐标z worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置玩家复活点(方块坐标) 具体使用案例如下: local result = Player:SetRevivePoint(Player:GetHostUin(), x, y, z) NotifyGameInfo2Self 参数及类型: objid:number 玩家Uin info:string 文本内容 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 对玩家显示飘窗文字 具体使用案例如下: local result = Player:NotifyGameInfo2Self(Player:GetHostUin(), "飘窗提示") RotateCamera 参数及类型: objid:number 玩家Uin yaw:number 视角偏航角 pitch:number 视角俯仰角 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 旋转玩家摄像机角度(支持平滑/修正Yaw) 具体使用案例如下: local result = Player:RotateCamera(Player:GetHostUin(), 45, 0) ShakeCamera 参数及类型: objid:number 玩家Uin duration:number 持续时间 power:number 强度(1~1000) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 抖动玩家镜头 具体使用案例如下: local result = Player:ShakeCamera(Player:GetHostUin(), 1, 20) StopShakeCamera 参数及类型: objid:number 玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 停止抖动玩家镜头 具体使用案例如下: local result = Player:StopShakeCamera(Player:GetHostUin()) RotateCameraToActor 参数及类型: objid:number 玩家Uin targetid:number 目标对象objid 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 将玩家摄像机朝向指定目标对象 具体使用案例如下: local result = Player:RotateCameraToActor(Player:GetHostUin(), objId) ChangeViewMode 参数及类型: objid:number 玩家Uin viewmode:number 视角枚举(ViewPortType)ViewPortType islock:bool是否锁定 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 切换玩家视角模式 具体使用案例如下: local result = Player:ChangeViewMode(Player:GetHostUin(), ViewPortType.Main, false) IsEquipByResID 参数及类型: objid:number 玩家Uin itemid:number / string 道具类型或资源id 返回值及类型: ret:boolean 是否已装备 该方法的其他说明: 判断玩家是否装备了指定装备(支持资源id或道具类型) 具体使用案例如下: local result = Player:IsEquipByResID(Player:GetHostUin(), 12202) IsHandWeaponSpellEnhancementActive 参数及类型: uin:number 玩家Uin enhanceIndex:number 强化方向索引(1-8) 返回值及类型: ret:boolean 是否激活 该方法的其他说明: 判断玩家当前手持武器的铭刻法术强化方向是否激活 具体使用案例如下: local ret = Player:IsHandWeaponSpellEnhancementActive(uin, enhanceIndex) GetAimPos 参数及类型: objid:number 玩家Uin 返回值及类型: x:number / nil 坐标x y:number / nil 坐标y z:number / nil 坐标z 该方法的其他说明: 获取玩家准心射线命中点位置 具体使用案例如下: local x, y, z = Player:GetAimPos(Player:GetHostUin()) GetAimDir 参数及类型: objid:number 玩家Uin 返回值及类型: dir:table / nil 单位方向向量{x=单位方向x,y=单位方向y,z=单位方向z} 该方法的其他说明: 获取玩家准心方向单位向量 具体使用案例如下: local dir = Player:GetAimDir(objid) GetRayOriginPos 参数及类型: objid:number 玩家Uin 返回值及类型: x:number / nil 坐标x y:number / nil 坐标y z:number / nil 坐标z 该方法的其他说明: 获取玩家射线检测起点位置 具体使用案例如下: local x,y,z = Player:GetRayOriginPos(objid) PlayMusic 参数及类型: objid:number 玩家Uin musicId:string 声音ID volume:number 音量 pitch:number 音调 isLoop:bool是否循环 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 对玩家播放2D背景音乐 具体使用案例如下: local result = Player:PlayMusic(Player:GetHostUin(), 10002, 100, 1, false) StopMusic 参数及类型: objid:number 玩家Uin musicId:string 声音ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 停止玩家播放的2D背景音乐 具体使用案例如下: local result = Player:StopMusic(Player:GetHostUin(), 10002) PauseMusic 参数及类型: objid:number 玩家Uin musicId:string 声音ID pause:booltrue暂停/false恢复 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 暂停或恢复玩家播放的背景音乐 具体使用案例如下: local result = Player:PauseMusic(Player:GetHostUin(), 10002, true) OpenUIView 参数及类型: objid:number 玩家Uin uiname:number 自定义UIID effectid:number / nil 动作ID(可缺省) time:number / nil 动画时间(可缺省) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开一个自定义UI界面(可选播放动作与动画时间) 具体使用案例如下: local result = Player:OpenUIView(Player:GetHostUin(), "7482986899365911542-22886") HideUIView 参数及类型: objid:number 玩家Uin uiname:number 自定义UIID effectid:number / nil 动作ID(可缺省) time:number / nil 动画时间(可缺省) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 隐藏一个自定义UI界面(可选播放动作与动画时间) 具体使用案例如下: local result = Player:HideUIView(Player:GetHostUin(), "7482986899365911542-22886") GetClientInfo 参数及类型: uin:number / nil 玩家Uin(兼容参数,当前未使用) 返回值及类型: ret:number 设备类型(DeviceType:1 PC 2 Android 3 iOS) 该方法的其他说明: 获取当前客户端设备类型 具体使用案例如下: local ret = Player:GetClientInfo(uin) GetNickname 参数及类型: objid:number 玩家Uin 返回值及类型: name:string / nil 玩家昵称 该方法的其他说明: 获取玩家昵称 具体使用案例如下: local name = Player:GetNickname(objid) OpenDevGoodsBuyDialog 参数及类型: objid:number 玩家Uin devGoodsId:number 商品ID customDesc:string 自定义商品描述 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开开发者商店商品购买弹框(开发者账号和自定义按钮点击事件可用) 具体使用案例如下: local ret = Player:OpenDevGoodsBuyDialog(objid, devGoodsId, customDesc) OpenDevGoodsBuyDetailedDialog 参数及类型: objid:number 玩家Uin devGoodsId:number 商品ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开开发者商店商品详情页(仅开发者可用) 具体使用案例如下: local ret = Player:OpenDevGoodsBuyDetailedDialog(objid, devGoodsId) OpenDevStore 参数及类型: objid:number 玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开开发者商店(仅开发者可用) 具体使用案例如下: local ret = Player:OpenDevStore(objid) OpenDevStoreTab 参数及类型: objid:number 玩家Uin page:string 分类页码 name:string 分类名称 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开开发者商品二级分类页(仅开发者可用) 具体使用案例如下: local ret = Player:OpenDevStoreTab(objid, page, name) OpenDevGoodsPage 参数及类型: playerid:number 玩家Uin pagetype:number 页面枚举值(MiniShopPage)MiniShopPage pagetitle:string 页面标题 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开开发者商店页一级页面(仅开发者可用) 具体使用案例如下: local ret = Player:OpenDevGoodsPage(playerid, pagetype, pagetitle) GetMiniCurrency 参数及类型: objid:number 玩家Uin itype:number 币种类型(MiniCurrency)MiniCurrency 返回值及类型: num:number 数量 该方法的其他说明: 获取本地玩家迷你币数量(阻塞等待函数) 具体使用案例如下: -- 获取玩家迷你币数量 local result = Player:GetMiniCurrency(playerUin, MiniCurrency.MiniCoin) print("迷你币数量",result) GetPlayerCostStatic 参数及类型: call_back:function内部回调(缺省参数) playerid:number 玩家Uin tbegin:number 开始时间 tend:number 结束时间 costtype:number 查询类型(MiniCurrency)MiniCurrency 返回值及类型: icount:number 消费数量(-1表示失败) 该方法的其他说明: 获取玩家消费统计(有5s冷却限制,频繁调用可能失败) 具体使用案例如下: -- 获取玩家24小时内消耗的迷你币 local result = Player:GetPlayerCostStatic(Player:GetHostUin(), os.time() - 24 * 60 * 60, os.time(), MiniCurrency.MiniCoin) StandReportEvent 参数及类型: playerid:number 玩家Uin eventstr:string 事件名称 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 上报玩家自定义埋点事件 具体使用案例如下: local result = Player:StandReportEvent(Player:GetHostUin(), "自动测试上报") ClearMotion 参数及类型: uin:number 玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 清空玩家运动趋势(配合“禁止移动”使用) 具体使用案例如下: local result = Player:ClearMotion(Player:GetHostUin()) SetMobileVibrate 参数及类型: playerid:number 玩家Uin time:number 震动时长(ms) amplitude:number 震动强度(1~255) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 触发玩家手机震动 具体使用案例如下: local result = Player:SetMobileVibrate(Player:GetHostUin(), 1, 20) GetScreenSpacePos 参数及类型: playerid:number 玩家Uin x:number 坐标x(cm) y:number 坐标y(cm) z:number 坐标z(cm) 返回值及类型: retX:number:x坐标 retY:number:y坐标 该方法的其他说明: 根据玩家Uin与3D坐标计算屏幕2D坐标(需要注意这里的X、Y、Z需要将方块坐标*100后来使用,例如原方块坐标为(1 ,7 ,1),则需要传入(100,700,100),之后版本会新增接口替代该接口。) 具体使用案例如下: local screenX, screenY = Player:GetScreenSpacePos(Player:GetHostUin(), x, y, z) GetScreenSpacePosV2 参数及类型: playerid:number 玩家Uin x:number 方块坐标x y:number 方块坐标y z:number 方块坐标z 返回值及类型: retX:number:x坐标 retY:number:y坐标 该方法的其他说明: 根据玩家Uin与方块坐标计算屏幕2D坐标(不能高频调用) 具体使用案例如下: local retX = Player:GetScreenSpacePosV2(playerid, x, y, z) SendFriendApply 参数及类型: playerid:number 玩家Uin uin2:number 目标玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 向指定玩家发送好友申请 具体使用案例如下: local result = Player:SendFriendApply(Player:GetHostUin(), friendUin) SetCameraPosTransformTo 参数及类型: playerid:number 玩家Uin vec:table 位置坐标(单位:方块) animid:number 缓动枚举(Easing)Easing time:number 动画时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 让玩家摄像机插值移动到指定位置 具体使用案例如下: local result = Player:SetCameraPosTransformTo(Player:GetHostUin(), {x = 0, y = 100, z = 0}, Easing.ExpoIn, 0.2) SetCameraRotTransformTo 参数及类型: playerid:number 玩家Uin vec:table 角度坐标 animid:number 缓动枚举(Easing)Easing time:number 动画时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 让玩家摄像机插值旋转到指定角度 具体使用案例如下: local result = Player:SetCameraRotTransformTo(Player:GetHostUin(), {x = 0, y = 45, z = 0}, Easing.Linear, 1) SetCameraFovTransformTo 参数及类型: playerid:number 玩家Uin fov:number FOV值 animid:number 缓动枚举(Easing)Easing time:number 动画时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 让玩家摄像机插值调整到指定FOV 具体使用案例如下: local result = Player:SetCameraFovTransformTo(Player:GetHostUin(), 60, Easing.Linear, 1) SetCameraPosTransformBy 参数及类型: playerid:number 玩家Uin vec:table 相对当前位置的偏移量 animid:number 缓动枚举(Easing)Easing time:number 动画时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在当前相机位置基础上再移动一段距离,镜头会平滑跟过去;传入的是相对偏移,不是地图上的目标点坐标。 具体使用案例如下: local result = Player:SetCameraPosTransformBy(Player:GetHostUin(), {x = 0, y = 0, z = 100}, Easing.Linear, 1) SetCameraRotTransformBy 参数及类型: playerid:number 玩家Uin vec:table 相对角度 animid:number 缓动枚举(Easing)Easing time:number 动画时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 让玩家摄像机按相对角度进行插值旋转 具体使用案例如下: -- 摄像机线性旋转,时间1秒 local result = Player:SetCameraRotTransformBy(Player:GetHostUin(), {x = 0, y = 100, z = 0}, Easing.Linear, 1) SetCameraFovTransformBy 参数及类型: playerid:number 玩家Uin fov:number 相对当前FOV的增减量(非目标FOV) animid:number 缓动枚举(Easing)Easing time:number 动画时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在当前视野(FOV)基础上再增减一段,平滑过渡;传入的是相对变化量,不是要设成的最终FOV。 具体使用案例如下: local result = Player:SetCameraFovTransformBy(Player:GetHostUin(), 45, Easing.Linear, 1) SetCameraAttrState 参数及类型: playerid:number 玩家Uin attr:number 摄像机属性(CameraModel)CameraModel enable:bool是否启用 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置玩家摄像机属性开关 具体使用案例如下: local result = Player:SetCameraAttrState(Player:GetHostUin(), CameraModel.MoveFollow, true) SetCameraRotMode 参数及类型: playerid:number 玩家Uin attr:number 摄像机旋转模式(CameraRotate)CameraRotate 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置玩家摄像机旋转模式 具体使用案例如下: local result = Player:SetCameraRotMode(Player:GetHostUin(), CameraRotate.AllDir) SetCameraMountObj 参数及类型: playerid:number 玩家Uin objid:number 挂载对象ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 将玩家摄像机挂载到指定对象 具体使用案例如下: local result = Player:SetCameraMountObj(Player:GetHostUin(), playerUin) SetCameraMountPos 参数及类型: playerid:number 玩家Uin pos:table 挂载位置坐标 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 将玩家摄像机挂载到指定位置 具体使用案例如下: local result = Player:SetCameraMountPos(Player:GetHostUin(), {x = x, y = y, z = z}) ResetCameraAttr 参数及类型: playerid:number 玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 重置玩家摄像机到默认状态 具体使用案例如下: local result = Player:ResetCameraAttr(Player:GetHostUin()) OpenBoxByPos 参数及类型: objid:number 玩家Uin x:number / table 方块x坐标或坐标table y:number / nil 方块y坐标 z:number / nil 方块z坐标 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 打开指定坐标处的箱子 具体使用案例如下: local result = Player:OpenBoxByPos(Player:GetHostUin(), x, y, z) GetFirstInviter 参数及类型: call_back:function内部回调(缺省参数) objid:number 被邀请玩家Uin 返回值及类型: uin:number / nil 邀请人玩家Uin(失败时回调错误码number) 该方法的其他说明: 获取玩家首次邀请人(阻塞接口,触发请求间隔10s) 具体使用案例如下: local inviterUin = Player:GetFirstInviter(Player:GetHostUin()) HasFriend 参数及类型: playerid:number 玩家Uin friendid:number 目标玩家Uin 返回值及类型: ret:boolean 是否成功上报 该方法的其他说明: 判断目标玩家是否为好友(阻塞接口) 具体使用案例如下: local result = Player:HasFriend(Player:GetHostUin(), "123456") GetMiniVipLevel 参数及类型: playerid:number 玩家Uin 返回值及类型: ret:boolean 是否成功上报 该方法的其他说明: 获取玩家VIP等级 具体使用案例如下: local level = Player:GetMiniVipLevel(Player:GetHostUin()) ChangPlayerMoveType 参数及类型: uin:number 玩家Uin moveType:number 移动方式枚举(MoveType)MoveType 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 改变玩家移动方式 具体使用案例如下: local result = Player:ChangPlayerMoveType(Player:GetHostUin(), MoveType.Flying) PlayAdvertising 参数及类型: objid:number 玩家Uin adname:string 广告名称 返回值及类型: code:number 执行结果(ErrorCode)ErrorCode objid:number 玩家Uin adname:string 广告名称 该方法的其他说明: 触发器播放广告接口 具体使用案例如下: local code,uin,adname = Player:PlayAdvertising(Player:GetHostUin(),'测试广告') if code == ErrorCode.OK then print("广告播放成功") else print("广告播放失败") end OpenInnerView 参数及类型: uin:number 玩家Uin iview:number 弹窗类型枚举(InnerPopUpview)InnerPopUpview bopen:bool是否打开 data:any / nil 弹窗附加数据(如储物箱需传入位置) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 控制玩家侧游戏内弹窗显示与隐藏 具体使用案例如下: local result = Player:OpenInnerView(Player:GetHostUin(), InnerPopUpview.InviteFriend, true) local result2 = Player:OpenInnerView(Player:GetHostUin(),InnerPopUpview.StorageBox, true,{x=0,y = 7,z = 0}) -- 打开坐标(0 7 0)位置的储物箱 SetItemAttAction 参数及类型: objid:number 玩家Uin itemid:number / string 道具ID或资源ID atttype:number 能力枚举(ItemAbility)ItemAbility switch:bool是否开启 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置玩家道具能力开关(如是否可掉落,是否可丢弃) 具体使用案例如下: local result = Player:SetItemAttAction(Player:GetHostUin(), 10025, ItemAbility.Drop, true) ForceOpenBoxUI 参数及类型: objid:number 玩家Uin itemid:number 枚举(WorkStage)Stage 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 强制打开指定箱子/工作台UI 具体使用案例如下: local result = Player:ForceOpenBoxUI(Player:GetHostUin(), WorkStage.Repair) ItemSkillCDEnter 参数及类型: objid:number 玩家Uin itemid:number / string 道具ID或资源ID cd:number / nil 冷却时长 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 让指定道具技能进入冷却(可指定CD时长) 具体使用案例如下: local result = Player:ItemSkillCDEnter(Player:GetHostUin(), 12005) ItemSkillCDDone 参数及类型: objid:number 玩家Uin itemid:number / string 道具ID或资源ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 结束指定道具技能冷却 具体使用案例如下: local result = Player:ItemSkillCDDone(Player:GetHostUin(), 12005) SetGunActionState 参数及类型: objid:number 玩家Uin action:number 枪械动作枚举(GunActionBan)GunActionBan switch:bool是否开启 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 开关玩家枪械相关能力(开火、开镜等,具体项见枚举 GunActionBan) 具体使用案例如下: local result = Player:SetGunActionState(Player:GetHostUin(), GunActionBan.AimFire, true) GetViewMode 参数及类型: uin:number 玩家Uin 返回值及类型: ret:number / nil 视角模式(ViewPortType) 该方法的其他说明: 查询玩家当前视角模式 具体使用案例如下: local ret = Player:GetViewMode(uin) GetRevivePoint 参数及类型: uin:number 玩家Uin worldId:number / nil 星球ID 返回值及类型: x:number / nil 方块x y:number / nil 方块y z:number / nil 方块z worldId:number / nil 复活点所在星球ID 该方法的其他说明: 获取玩家复活点的方块坐标 具体使用案例如下: local x,y,z,worldId = Player:GetRevivePoint(uin, worldId) GetRentCloudServerOwner 参数及类型: 无 返回值及类型: uin:number / nil 房主玩家Uin 该方法的其他说明: 在租赁云房间中取当前房间房主是谁(仅租赁云服生效) 具体使用案例如下: local uin = Player:GetRentCloudServerOwner() RemovePlayer 参数及类型: objid:number 玩家Uin 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 让玩家输掉本局并离开当前对局。 具体使用案例如下: local ret = Player:RemovePlayer(objid) GetFriendList 参数及类型: uin:number 玩家Uin index:number 起始索引 size:number 获取数量 返回值及类型: totalnum:number 好友总人数 friendlist:table 好友列表{..,{name = string,uin = number,headframe = string,live = bool},...},...} 该方法的其他说明: 分页取好友,把总人数和这一页好友信息回给主机。 具体使用案例如下: -- 获取玩家好友列表,从第1个好友开始,总共20个好友信息 local maxnum,infos = Player:GetFriendList(playerUin,1,20) print("好友最大好友数量",maxnum) print("好友信息列表",infos) if infos then for i = 1, #infos, 1 do print("好友昵称",infos[i].name) print("好友UIn",infos[i].uin) print("好友头像",infos[i].headframe) print("是否在线",infos[i].live) end SetSettingEnable 参数及类型: playerid:number 玩家Uin itype:number 设置项(GameSetting)GameSetting enable:bool是否开启 返回值及类型: ret:boolean 是否生效 该方法的其他说明: 改游戏里某项开关(如开镜、镜头抖、自动跳等),并立刻生效到当前局。 具体使用案例如下: -- 设置玩家相机抖动关闭 local result = Player:SetSettingEnable(playerUin, GameSetting.CameraShake,false) SetSettingAbility 参数及类型: playerid:number 玩家Uin itype:number 设置项(GameSetting)GameSetting enable:bool是否允许修改 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 允许或禁止玩家在设置界面里改某一项。 具体使用案例如下: -- 设置玩家相机抖动按钮不可点击 local result = Player:SetSettingAbility(playerUin, GameSetting.CameraShake,false) RotateMainModel 参数及类型: uin:number 玩家Uin yaw:number 水平角 pitch:number 俯仰角 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 转动本机玩家模型的朝向,角度会自动限制在合法范围。 具体使用案例如下: -- 旋转玩家主模型,此接口摄像机也会旋转 local yaw = 90 -- 限制范围0~360 local pitch = 15 -- 限制范围-88 ~ 88 local result = Player:RotateMainModel(playerUin, yaw,pitch) print("旋转玩家主模型",result) EnterGunState 参数及类型: objid:number 玩家Uin state:number 枪械状态(GunActionState)GunActionState 返回值及类型: bool:boolean 是否设置成功 该方法的主要作用: 进入枪械状态 具体使用案例如下: local bool = Player:EnterGunState(objid, state) LevelGunState 参数及类型: objid:number 玩家Uin state:number 枪械状态(GunActionState)GunActionState 返回值及类型: bool:boolean 是否设置成功 该方法的主要作用: 离开枪械状态 具体使用案例如下: local bool = Player:LevelGunState(objid, state) 生物模块管理接口 Monster 具体函数名及描述如下: 序号 函数名 函数描述 1 GetActorID(...) 获取生物类型ID 2 GetActorName(...) 获取生物类型名称 3 ReplaceActor(...) 替换生物 4 GetMonsterDefName(...) 获取生物名称 5 GetMonsterDefLevelExp(...) 获取击杀掉落经验 6 SetMonsterDefLevelExp(...) 设置击杀掉落经验 7 ChangeAI(...) 切换AI行为树 8 CanSee(...) 怪物是否可见目标 9 GetDropItemInfo(...) 获取生物的掉落物信息 10 SetTameTarget(...) 使生物被指定对象驯服 11 RandomActorID(...) 随机获取生物类型ID 12 GetTamedOwnerID(...) 获取驯养主ID 13 GetFacade(...) 获取生物外观 14 GetTags(...) 获取生物标签组 GetActorID 参数及类型: objid:number 生物objid 返回值及类型: actorid:number / nil 生物defId 该方法的其他说明: 获取生物类型ID 具体使用案例如下: local actorid = Monster:GetActorID(objid) GetActorName 参数及类型: objid:number 生物objid 返回值及类型: name:string / nil 生物类型名称 该方法的其他说明: 获取生物类型名称 具体使用案例如下: local actorName = Monster:GetActorName(objId) ReplaceActor 参数及类型: objidSrc:number 源对象ID actorid:number / string 目标生物defId或资源id replacehp:bool / nil 是否替换血量 返回值及类型: ret:number / nil 替换后的生物objid 该方法的其他说明: 将源生物替换为目标类型生物,并同步队伍/图文信息/变量引用(可选同步血量比例) 具体使用案例如下: local newObjId = Monster:ReplaceActor(objId, 3812) GetMonsterDefName 参数及类型: actorid:number / string 生物类型ID或生物预制ID 返回值及类型: name:string / nil 生物类型名字 该方法的其他说明: 获取生物名称 具体使用案例如下: local name = Monster:GetMonsterDefName(actorid) GetMonsterDefLevelExp 参数及类型: actorid:number / string 生物类型id或生物预制ID 返回值及类型: exp:number / nil 掉落经验 该方法的其他说明: 获取击杀生物的掉落经验 具体使用案例如下: local levelExp = Monster:GetMonsterDefLevelExp(3400) SetMonsterDefLevelExp 参数及类型: actorid:number / string 生物类型id或生物预制ID levelExp:number 掉落经验 返回值及类型: ret:bool是否成功 该方法的其他说明: 设置击杀生物的掉落经验 具体使用案例如下: local result = Monster:SetMonsterDefLevelExp(3400, 100) ChangeAI 参数及类型: objid:number 生物objid treeid:string 行为树ID 返回值及类型: ret:bool是否成功 该方法的其他说明: 切换生物AI行为树 具体使用案例如下: local ret = Monster:ChangeAI(objid, treeid) CanSee 参数及类型: objid:number 怪物对象ID targetObjid:number 目标对象ID 返回值及类型: result:bool是否可见 该方法的其他说明: 判断怪物是否能看见目标 具体使用案例如下: local isSuccess = Monster:CanSee(objId, Player:GetHostUin()) GetDropItemInfo 参数及类型: actorid:number / string 生物类型id或生物预制ID 返回值及类型: ret:table / nil 掉落物信息数组({itemId,num,odds}) 该方法的其他说明: 获取生物的掉落物信息列表(道具ID/数量/概率) 具体使用案例如下: 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 参数及类型: objidA:number 生物对象ID objidB:number 玩家对象ID 返回值及类型: ret:bool是否成功 该方法的其他说明: 使生物被指定对象驯服 具体使用案例如下: --设置生物A被房主驯服 local result = Monster:SetTameTarget(objIdA, Player:GetHostUin()) RandomActorID 参数及类型: 无 返回值及类型: ret:number / nil 随机生物类型ID 该方法的其他说明: 从可触发类型的生物定义中随机取一个生物类型id 具体使用案例如下: local actorTypeId = Monster:RandomActorID() GetTamedOwnerID 参数及类型: objid:number 生物对象ID 返回值及类型: ownerId:number / nil 驯养主对象ID 该方法的其他说明: 获取生物的驯养主对象ID 具体使用案例如下: local ownerID = Monster:GetTamedOwnerID(objId) GetFacade 参数及类型: monsterid:number / string 生物类型id或生物预制ID 返回值及类型: model:string / nil 外观名 该方法的其他说明: 根据生物类型id或预制ID生成外观名(用于UI/选择器显示,如果是prefab资源会带有子部件信息,选择器选择不带子部件信息) 具体使用案例如下: local model = Monster:GetFacade(monsterid) GetTags 参数及类型: actorid:number / string 生物类型id或生物预制ID 返回值及类型: ret:table / nil 标签组 该方法的其他说明: 获取生物定义中的标签组 具体使用案例如下: local ret = Monster:GetTags(actorid) 方块模块管理接口 Block 具体函数名及描述如下: 序号 函数名 函数描述 1 IsSolidBlock(...) 判断是否为固体方块 2 IsLiquidBlock(...) 判断是否为液体方块 3 IsAirBlock(...) 判断是否为空气方块 4 GetBlockID(...) 获取方块类型ID 5 DestroyBlock(...) 摧毁方块 6 PlaceBlock(...) 放置方块 7 ReplaceBlock(...) 替换方块 8 SetBlockData(...) 设置方块数据 9 GetBlockData(...) 获取方块数据 10 GetBlockDir(...) 获取方块朝向 11 PlayAnim(...) 播放方块动作 12 SetBlockSettingAttState(...) 设置方块属性状态 13 GetBlockSettingAttState(...) 获取方块属性状态 14 GetBlockSwitchStatus(...) 获取功能方块开关状态 15 SetBlockSwitchStatus(...) 设置功能方块开关状态 16 GetBlockPowerStatus(...) 获取方块通电状态 17 RandomBlockID(...) 随机获取方块ID 18 GetBlockDefName(...) 获取方块名称 19 GetBlockDefDesc(...) 获取方块描述 20 ReplaceBluePrint(...) 放置蓝图 21 PlayCrackEffect(...) 播放方块裂纹特效 22 PlayDestroyEffect(...) 播放方块损毁特效 23 GetBlockDropItemType(...) 获取方块掉落物信息 24 GetBlockDropExp(...) 获取方块采集经验 25 SetBlockColor(...) 设置方块颜色 26 SetBlockDir(...) 设置方块方向 27 GetFacade(...) 获取方块类型外观 28 SetBlockTextureColor(...) 设置方块纹理颜色 IsSolidBlock 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否为固体方块 该方法的其他说明: 判断指定位置的方块是否为固体方块 具体使用案例如下: local isSolidBlock = Block:IsSolidBlock(x, y, z, WorldId) IsLiquidBlock 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否为液体方块 该方法的其他说明: 判断指定位置的方块是否为液体方块 具体使用案例如下: local isLiquidBlock = Block:IsLiquidBlock(x, y, z, WorldId) IsAirBlock 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否为空气方块 该方法的其他说明: 判断指定位置的方块是否为空气方块 具体使用案例如下: local isAirBlock = Block:IsAirBlock(x, y, z, WorldId) GetBlockID 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: id:number 方块类型ID 该方法的其他说明: 获取指定位置的方块类型ID 具体使用案例如下: local blockID = Block:GetBlockID(x, y, z, WorldId) DestroyBlock 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 dropitem:boolean 是否掉落物品(默认false) worldId:number 星球id(默认当前主机所在星球) btrigger:boolean 是否触发全局事件(默认true) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 摧毁指定位置的方块 具体使用案例如下: -- 删除方块,没有掉落物 local success = Block:DestroyBlock(x, y, z, false, WorldId) PlaceBlock 参数及类型: blockid:number / string 方块类型ID x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 face:number 朝向(默认0) color:number / string 十六进制颜色值(0XFFFFFF 颜色方块类型才生效,默认-1) worldId:number 星球id(默认当前主机所在星球) btrigger:boolean 是否触发全局事件(默认true) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 在指定位置放置方块(支持颜色方块) 具体使用案例如下: -- 摆放方块,376 是方块ID,x, y, z 是位置,FaceDir.PosX 是方向,0XFFFFFF 是颜色 local success2 = Block:PlaceBlock(376, x, y, z, FaceDir.PosX, nil, WorldId) -- 创建颜色方块 local success = Block:PlaceBlock(605, x + 1, y, z, FaceDir.PosX, 0XFFFFFF, WorldId) ReplaceBlock 参数及类型: blockid:number / string 方块类型ID x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 face:number 朝向(默认0) color:number / string 十六进制颜色值(0XFFFFFF 颜色方块类型才生效,默认-1) worldId:number 星球id(默认当前主机所在星球) btrigger:boolean 是否触发全局事件(默认true) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 替换指定位置的方块(支持颜色方块) 具体使用案例如下: local success = Block:ReplaceBlock(105, x, y, z, nil, nil, WorldId) SetBlockData 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 data:number 方块数据 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置指定位置方块的data数据(更新当前位置方块) 具体使用案例如下: local bool = Block:SetBlockData(x, y, z, data, worldId) GetBlockData 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: num:number 方块data数据值 该方法的其他说明: 获取指定位置方块的data数据 具体使用案例如下: local blockData = Block:GetBlockData(x, y, z, WorldId) GetBlockDir 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: num:number 方块朝向(FaceDir枚举) 该方法的其他说明: 获取指定位置方块的朝向 具体使用案例如下: local blockDir = Block:GetBlockDir(x, y, z, WorldId) PlayAnim 参数及类型: pos:table 位置坐标{x=x,y=y,z=z} animid:number / string 动作ID speed:number 播放速度(默认1) loop:number 循环模式(AnimMode枚举)AnimMode worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 播放指定位置方块的动作动画 具体使用案例如下: local success = Block:PlayAnim({x = x, y = y, z = z}, 100100, 1, AnimMode.Default, WorldId) SetBlockSettingAttState 参数及类型: blockid:number / string 方块类型ID atttype:number 属性枚举(BlockLimits)BlockLimits switch:boolean 是否开启 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置方块类型的属性状态(全局设置) 具体使用案例如下: -- 设置爆炸抗性打开 local success = Block:SetBlockSettingAttState(100, BlockAttr.ExplodeResistance, true, WorldId) GetBlockSettingAttState 参数及类型: blockid:number / string 方块类型ID atttype:number 属性枚举(BlockLimits)BlockLimits worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否开启 该方法的其他说明: 获取方块类型的属性状态(全局设置) 具体使用案例如下: local state = Block:GetBlockSettingAttState(100, BlockAttr.ExplodeResistance, WorldId) GetBlockSwitchStatus 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否开启 该方法的其他说明: 获取指定位置功能方块的开关状态 具体使用案例如下: local status = Block:GetBlockSwitchStatus(x, y, z, WorldId) SetBlockSwitchStatus 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 isactive:boolean 是否开启 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置指定位置功能方块的开关状态 具体使用案例如下: local bool = Block:SetBlockSwitchStatus(x, y, z, isactive, worldId) GetBlockPowerStatus 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否通电 该方法的其他说明: 获取指定位置方块的通电状态 具体使用案例如下: local status = Block:GetBlockPowerStatus(x, y, z, WorldId) RandomBlockID 参数及类型: 无参数 返回值及类型: id:number 随机的方块类型ID 该方法的其他说明: 在资源库里随机获取一个方块类型ID 具体使用案例如下: local blockID = Block:RandomBlockID() GetBlockDefName 参数及类型: blockid:number / string 方块类型ID 返回值及类型: name:string 方块名称 该方法的其他说明: 获取方块类型的名称 具体使用案例如下: local blockDefName = Block:GetBlockDefName(100) GetBlockDefDesc 参数及类型: blockid:number / string 方块类型ID 返回值及类型: value:string 方块描述 该方法的其他说明: 获取方块类型的描述 具体使用案例如下: local blockDefDesc = Block:GetBlockDefDesc(100) ReplaceBluePrint 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 blueprint:string 蓝图资源ID angle:number 旋转角度 mirror:boolean 是否镜像 placeMode:boolean 是否蓝图区域全部覆盖 worldId:number 星球id(默认当前星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 在指定位置放置蓝图 具体使用案例如下: local success = Block:ReplaceBluePrint(x, y, z, [=[1,bp6666_1679897969_0_]=], 90, false, true) PlayCrackEffect 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 process:number 进度(-1~10) worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 播放指定位置方块的裂纹特效 具体使用案例如下: local process = 10 local success = Block:PlayCrackEffect(x, y, z,process, WorldId) PlayDestroyEffect 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 播放指定位置方块的损毁特效 具体使用案例如下: local success = Block:PlayDestroyEffect(x, y, z, WorldId) GetBlockDropItemType 参数及类型: blockid:number / string 方块ID itype:number 类型(1手持敲方块,2手持道具正确,3手持道具不正确) 返回值及类型: obj:table 掉落道具信息{itemid,itemnum,odds} 道具ID、数量、概率 该方法的其他说明: 获取方块掉落物信息 具体使用案例如下: -- 1手持敲方块,2手持道具正确,3手持道具不正确 local tb = Block:GetBlockDropItemType(100,1) if tb then print("获取方块掉落物品类型", tb[1]) print("获取方块掉落物品数量", tb[2]) print("获取方块掉落物品概率", tb[3]) end GetBlockDropExp 参数及类型: blockid:number / string 方块ID 返回值及类型: num:number 经验值 该方法的其他说明: 获取方块的采集经验值 具体使用案例如下: local exp = Block:GetBlockDropExp(100,1) SetBlockColor 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 color:number 颜色值 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置指定位置方块的颜色(仅支持颜色方块) 具体使用案例如下: local success = Block:SetBlockColor(x, y, z, 0XFF0000, WorldId) SetBlockDir 参数及类型: x:number 位置X坐标 y:number 位置Y坐标 z:number 位置Z坐标 dir:number 方向值(FaceDir枚举)FaceDir worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置指定位置方块的方向 具体使用案例如下: local success = Block:SetBlockDir(x, y, z, FaceDir.PosZ, WorldId) -- self:ThreadWait(1) GetFacade 参数及类型: blockid:number / string 方块类型ID或方块预制ID 返回值及类型: value:string 方块类型外观 该方法的其他说明: 获取方块类型的外观 具体使用案例如下: -- 官方默认方块示例 local facade1 = Block:GetFacade(100) if facade1 == nil then print("facade1 is nil") end -- 自定义方块示例 local facade2 = Block:GetFacade('r0_7495946400275515402_23048') if facade2 == nil then print("facade2 is nil") end SetBlockTextureColor 参数及类型: blockid:number 方块ID color:number:颜色值(0:还原默认颜色) alpha:number 混合比例(0-100) slotindex:number 材质槽索引(默认1) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置方块纹理颜色(仅支持草块、土块、树叶、花草等方块,其它方块暂不支持;设置后不会存档;玩法转编辑后需要重进地图才可还原) 具体使用案例如下: local bool = Block:SetBlockTextureColor(blockid, color, alpha, slotindex) 背包模块管理接口 Backpack 具体函数名及描述如下: 序号 函数名 函数描述 1 SetGridItem(...) 设置背包格道具 2 RemoveGridItem(...) 移除背包格道具 3 RemoveGridItemByItemID(...) 通过道具ID移除背包道具 4 ClearPack(...) 清空背包栏 5 ClearAllPack(...) 清空全部背包 6 MoveGridItem(...) 移动背包道具 7 SwapGridItem(...) 交换背包道具 8 EnoughSpaceForItem(...) 检查背包空间是否足够 9 CalcSpaceNumForItem(...) 计算背包剩余空间 10 HasItemByBackpackBar(...) 检测背包是否持有道具 11 GetItemNumByBackpackBar(...) 获取背包栏道具数量 12 GetItemNum(...) 获取背包道具数量 13 GetGridItemID(...) 获取背包格道具ID 14 GetGridItemName(...) 获取背包格道具名称 15 AddItem(...) 添加道具到背包 16 DiscardItem(...) 丢弃背包格道具 17 DiscardItemByID(...) 通过道具ID丢弃道具 18 ActEquipUpByResID(...) 穿上装备 19 ActEquipOffByEquipID(...) 脱下装备 20 ActDestructEquip(...) 销毁装备 21 CreateItem(...) 创建道具到背包 22 PlayShortCutIxParticle(...) 手持道具播放粒子特效 23 StopShortCutIxEffect(...) 手持道具停止特效 24 PlayShortCutItemParticle(...) 手持指定道具播放粒子特效 25 StopShortCutItemEffect(...) 手持指定道具停止特效 26 GetGridInfos(...) 批量获取背包格信息 27 LoadGridInfos(...) 加载背包和快捷栏格子信息数据 28 DecodeGridInfo(...) 解析格子信息 29 EncodeTableGridInfo(...) 打包格子信息 30 SetGridsLock(...) 设置背包格锁定状态 31 ClearGrids(...) 批量清理背包格 32 SetBackPackNum(...) 设置背包数量 33 GetAllBackPackInstanceIds(...) 获取背包所有道具实例ID 34 CreateItemInstInBackpack(...) 创建道具实例到背包 35 CreateGunInBackpack(...) 创建枪械到背包 36 GetInstIdByGridIndex(...) 根据背包索引获取道具实例ID 37 GetGunInstIdInBackpack(...) 获取背包所有枪械实例ID 38 IsLock(...) 获取背包格是否锁定 39 GetGridAttr(...) 获取背包格属性 40 SetGridAttr(...) 设置背包格属性 SetGridItem 参数及类型: playerid:number 玩家ID gridid:number 格子ID itemid:number / string 道具类型 num:number 道具数量(默认1) durability:number 耐久值(默认1) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置背包指定格子中的道具(对应UGC3.0版本) 具体使用案例如下: local playerid = Player:GetHostUin() -- 设置快捷栏第一个格子为100,数量为3 local result = Backpack:SetGridItem(playerid, BackpackBeginIndex.Shortcut, 100, 3) RemoveGridItem 参数及类型: playerid:number 玩家ID gridid:number 格子ID num:number 道具数量(默认全部移除) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 移除背包格内一定数量道具 具体使用案例如下: local playerid = Player:GetHostUin() -- 移除快捷栏第一个格内1个道具 local result = Backpack:RemoveGridItem(playerid, BackpackBeginIndex.Shortcut, 1) RemoveGridItemByItemID 参数及类型: playerid:number 玩家ID itemid:number / string 道具类型 num:number 道具数量 返回值及类型: num:number 移除数量(num and num> 0 成功) 该方法的其他说明: 移除背包内一定数量道具,通过道具ID移除,默认全部移除 具体使用案例如下: local playerid = Player:GetHostUin() -- 移除背包内 5个草块 local result = Backpack:RemoveGridItemByItemID(playerid, 100, 5) -- 移除背包内 全部草块 local resul2t = Backpack:RemoveGridItemByItemID(playerid, 100) ClearPack 参数及类型: playerid:number 玩家ID bartype:number 快捷栏枚举(BackpackType)BackpackType 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 清空指定背包栏中的所有道具 具体使用案例如下: local playerid = Player:GetHostUin() -- 清除快捷栏全部道具 Backpack:ClearPack(playerid, BackpackType.Shortcut) ClearAllPack 参数及类型: playerid:number 玩家ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 清空玩家所有背包栏中的道具(包含背包栏、快捷栏、装备栏) 具体使用案例如下: local result = Backpack:ClearAllPack(Player:GetHostUin()) MoveGridItem 参数及类型: playerid:number 玩家ID gridsrc:number 源格子ID griddst:number 目标格子ID num:number 道具数量(默认全部) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 将指定格子的道具移动到目标格子,默认全部转移 具体使用案例如下: -- 移动快捷栏第一个格子到第二个格子 local result = Backpack:MoveGridItem(playerid, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 1) SwapGridItem 参数及类型: playerid:number 玩家ID gridsrc:number 源格子ID griddst:number 目标格子ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 交换两个背包格子中的道具位置 具体使用案例如下: local playerid = Player:GetHostUin() -- 交换快捷栏第一个格子和第二个格子 local result = Backpack:SwapGridItem(playerid, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 1) EnoughSpaceForItem 参数及类型: playerid:number 玩家ID itemid:number / string 道具类型 num:number 道具数量(默认1) 返回值及类型: bool:boolean 是否有足够空间 该方法的其他说明: 检查背包(包含背包栏、快捷栏)是否有足够的空间存放指定数量的道具 具体使用案例如下: local playerid = Player:GetHostUin() local result = Backpack:EnoughSpaceForItem(playerid, 12005, 1) CalcSpaceNumForItem 参数及类型: playerid:number 玩家ID itemid:number / string 道具类型 返回值及类型: num:number 可以存放的数量 该方法的其他说明: 计算背包(包含背包栏、快捷栏)能存放指定道具的剩余总数量 具体使用案例如下: local playerid = Player:GetHostUin() local spaceNum = Backpack:CalcSpaceNumForItem(playerid, 12005) HasItemByBackpackBar 参数及类型: playerid:number 玩家ID bartype:number 快捷栏枚举(BackpackType)BackpackType itemid:number / string 道具类型 返回值及类型: bool:boolean 是否持有 id:number 道具所在格子ID(如果持有) 该方法的其他说明: 检测指定背包栏中是否持有指定道具 具体使用案例如下: -- 快捷栏是否有草块 local result = Backpack:HasItemByBackpackBar(playerid, BackpackType.Shortcut, 100) GetItemNumByBackpackBar 参数及类型: playerid:number 玩家ID bartype:number 快捷栏枚举(BackpackType)BackpackType itemid:number / string 道具类型 返回值及类型: num:number 道具总数量 ids:table 装有道具的格子ID数组 该方法的其他说明: 获取指定背包栏中指定道具的总数量,并返回装有该道具的格子ID数组 具体使用案例如下: local itemNum, grids = Backpack:GetItemNumByBackpackBar(playerid, BackpackType.Shortcut, 100) GetItemNum 参数及类型: playerid:number 玩家ID itemid:number / string 道具类型 isAddEquip:boolean 是否包含装备栏(默认True) 返回值及类型: num:number 道具总数量 ids:table 装有道具的格子ID数组 该方法的其他说明: 获取背包中指定道具的总数量,并返回装有该道具的格子ID数组(可选择是否包含装备栏) 具体使用案例如下: -- 获取道具的数量,包含装备栏 local itemNum = Backpack:GetItemNum(playerid, 12202) -- 获取道具的数量,不包含装备栏 local itemNum2 = Backpack:GetItemNum(playerid, 12202, false) GetGridItemID 参数及类型: playerid:number 玩家ID gridid:number 格子ID (BackpackBeginIndex.Shortcut + 0 是快捷栏第一个格子)BackpackBeginIndex 返回值及类型: itemid:number / string 道具类型 num:number 道具数量(无道具时数量为0,itemid为0) 该方法的其他说明: 获取指定背包格子中的道具ID和数量 具体使用案例如下: local playerid = Player:GetHostUin() local gridItemID = Backpack:GetGridItemID(playerid, BackpackBeginIndex.Shortcut) GetGridItemName 参数及类型: playerid:number 玩家ID gridid:number 格子ID 返回值及类型: name:string 道具名称 该方法的其他说明: 获取指定背包格子中道具的名称 具体使用案例如下: -- 获取快捷栏第一个格子物品名称 local gridItemName = Backpack:GetGridItemName(playerid, BackpackBeginIndex.Shortcut) AddItem 参数及类型: playerid:number 玩家ID itemid:number / string 道具类型 num:number 道具数量 prioritytype:number 优先存放位置(1优先快捷栏,2优先背包栏,默认1) 返回值及类型: num:number 成功添加的数量 该方法的其他说明: 向玩家背包添加指定数量的道具(可指定优先存放位置) 具体使用案例如下: local playerid = Player:GetHostUin() -- 创建物品,只添加能放入的数量 local successNum = Backpack:AddItem(playerid, 100, 10) DiscardItem 参数及类型: playerid:number 玩家ID gridid:number 格子ID num:number 道具数量 ablePick:boolean 是否允许拾取 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 丢弃指定背包格子中的道具,可设置是否允许拾取 具体使用案例如下: local bool = Backpack:DiscardItem(playerid, gridid, num, ablePick) DiscardItemByID 参数及类型: playerid:number 玩家ID itemid:number / string 道具ID itemnum:number 道具数量 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 通过道具ID丢弃背包中指定数量的道具 具体使用案例如下: local playerid = Player:GetHostUin() local result = Backpack:DiscardItemByID(playerid, 12005) local result2 = Backpack:DiscardItemByID(playerid, "r2_7485931052202679286_22924") ActEquipUpByResID 参数及类型: playerid:number 玩家ID itemid:number / string 道具类型 frompos:number 格子ID(可不传,如果不为nil则必须和itemid一致) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 让玩家穿上指定装备(自动从背包或快捷栏查找并装备) 具体使用案例如下: local playerid = Player:GetHostUin() local result = Backpack:ActEquipUpByResID(playerid, 12202) ActEquipOffByEquipID 参数及类型: playerid:number 玩家ID grid:number 装备栏ID(EquipStartIndex + EquipSlotType.Head是装备栏第一个格子,EquipSlotType.Weapon无效)EquipSlotType togrid:number 目标格子ID(可不传,如果不为nil则必须是空格子) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 让玩家脱下指定装备栏中的装备(可指定移动到目标格子,否则自动寻找空格子或丢弃) 具体使用案例如下: local playerid = Player:GetHostUin() -- 卸下装备的皮胸甲 -- 头盔1(BackpackBeginIndex.Equip),胸甲2,护腿3,靴子4,披风5 local result = Backpack:ActEquipOffByEquipID(playerid, BackpackBeginIndex.Equip + 1) ActDestructEquip 参数及类型: playerid:number 玩家ID grid:number 装备栏ID(EquipStartIndex + EquipSlotType.Head是装备栏第一个格子,EquipSlotType.Weapon无效)EquipSlotType 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 销毁指定装备栏中的装备 具体使用案例如下: -- 销毁装备栏的皮胸甲 local result = Backpack:ActDestructEquip(playerid, BackpackBeginIndex.Equip + 1) CreateItem 参数及类型: objid:number 玩家ID itemid:number / string 道具类型 itemnum:number 道具数量 ipos:number 优先存放的位置 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 创建指定数量的道具到玩家背包(可指定优先存放位置,背包满时生成掉落物) 具体使用案例如下: local playerid = Player:GetHostUin() -- 创建物品,默认放快捷栏跟背包栏(放不下会掉落在地上) Backpack:CreateItem(playerid, 100, 3) -- 创建物品,默认放快捷栏(快捷栏放不下会掉落在地上) Backpack:CreateItem(playerid, 100, 2, BackpackType.Shortcut) -- 创建皮胸甲,直接装备上,装备不上会掉落 Backpack:CreateItem(playerid, 12202, 1, BackpackType.Equip) PlayShortCutIxParticle 参数及类型: playerid:number 玩家ID effectids:number / string / table 特效ID或特效名称或ID数组 offset:table 偏移向量{x,y,z} rot:table 旋转向量{x,y,z} scale:table 缩放向量{x,y,z} 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 在玩家手持道具上播放粒子特效(可设置偏移、旋转和缩放) 具体使用案例如下: local playerid = Player:GetHostUin() -- 播放手持特效, 偏移量(0, 1, 0), 不旋转, 缩放(2, 2, 2) local result = Backpack:PlayShortCutIxParticle(playerid, 1011, {x = 0, y = 1, z = 0}, nil, {x = 2, y = 2, z = 2}) StopShortCutIxEffect 参数及类型: playerid:number 玩家ID effectids:number / string / table 特效ID或特效名称或ID数组 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 停止玩家手持道具上播放的特效 具体使用案例如下: local playerid = Player:GetHostUin() local result = Backpack:StopShortCutIxEffect(playerid, 1011) PlayShortCutItemParticle 参数及类型: playerid:number 玩家ID itemid:number 道具类型 effectids:number / string / table 特效ID或特效名称或ID数组 offset:table 偏移向量{x,y,z} rot:table 旋转向量{x,y,z} scale:table 缩放向量{x,y,z} 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 在玩家手持指定道具时播放粒子特效(可设置偏移、旋转和缩放) 具体使用案例如下: local playerid = Player:GetHostUin() -- 播放手持能量剑时候播放特效1011, 不偏移量, 不旋转, 不缩放 local result = Backpack:PlayShortCutItemParticle(playerid, 12005, 1011) StopShortCutItemEffect 参数及类型: playerid:number 玩家ID itemid:number 道具类型 effectids:number / string / table 特效ID或特效名称或ID数组 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 停止玩家手持指定类型道具时播放的特效 具体使用案例如下: local playerid = Player:GetHostUin() -- 停止手持能量剑时候播放特效1011 local result = Backpack:StopShortCutItemEffect(playerid, 12005, 1011) GetGridInfos 参数及类型: playerid:number 玩家ID begingridId:number 开始格子ID endgridId:number 结束格子ID 返回值及类型: value:string 格子信息字符串(nil表示失败,否则成功) 该方法的其他说明: 批量获取背包和快捷栏连续格子的信息数据(需要连续格子否则返回nil) 具体使用案例如下: local result = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29); LoadGridInfos 参数及类型: playerid:number 玩家ID gridinfo:string 格子信息字符串(由GetGridInfos返回) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 加载背包和快捷栏格子信息数据(需要相应格子没有道具否则会加载失败) 具体使用案例如下: local sGridInfos = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29); if sGridInfos then local result = Backpack:LoadGridInfos(Player:GetHostUin(),sGridInfos); return result end DecodeGridInfo 参数及类型: str:string GetGridInfos打包字符串 返回值及类型: obj:table 解析后的数组(数组元素包含index格子ID、info格子详细信息、itemid物品ID、num数量,nil表示解析失败) 该方法的其他说明: 解析格子信息数据(将GetGridInfos返回的字符串解析为表格) 具体使用案例如下: local sGridInfos = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29); if sGridInfos then local result = Backpack:DecodeGridInfo(sGridInfos); return result end EncodeTableGridInfo 参数及类型: infos:table DecodeGridInfo解析后的数据 返回值及类型: value:string 打包后的字符串(nil表示打包失败,否则成功) 该方法的其他说明: 将解析的格子信息数据打包为字符串 具体使用案例如下: local sGridInfos = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29); if sGridInfos then local infos = Backpack:DecodeGridInfo(sGridInfos); local result = Backpack:EncodeTableGridInfo(infos); return result end SetGridsLock 参数及类型: playerid:number 玩家ID begingridId:number 开始格子ID endgridId:number 结束格子ID lock:boolean 是否锁定(true锁定,false解锁) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置背包和快捷栏连续格子的锁定状态(需要连续格子否则返回失败) 具体使用案例如下: local result = Backpack:SetGridsLock(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29,true); ClearGrids 参数及类型: playerid:number 玩家ID begingridId:number 开始格子ID endgridId:number 结束格子ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 批量清理背包连续格子的数据(需要连续格子否则返回失败) 具体使用案例如下: local result = Backpack:ClearGrids(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29); return result SetBackPackNum 参数及类型: playerid:number 玩家ID num:number 背包格子数量(范围0-100) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置玩家背包的格子数量(范围0-100) 具体使用案例如下: local result = Backpack:SetBackPackNum(Player:GetHostUin(),33); return result GetAllBackPackInstanceIds 参数及类型: playerid:number 玩家ID bartype:number 快捷栏枚举(BackpackType)BackpackType 返回值及类型: ids:table 道具实例ID数组 该方法的其他说明: 获取指定背包栏中所有道具实例的ID列表 具体使用案例如下: local ids = Backpack:GetAllBackPackInstanceIds(playerid, bartype) CreateItemInstInBackpack 参数及类型: playerid:number 玩家Uin itemid:number / string 道具ID gridIndex:number / nil 格子索引(nil表示自动选择) 返回值及类型: id:string 道具实例ID 该方法的其他说明: 在玩家的背包内创建一个道具实例(格子未锁定才能创建) 具体使用案例如下: local itemid = 12005 local gridIndex = 2 local instId = Backpack:CreateItemInstInBackpack(playerid, itemid, gridIndex) if instId then print("创建物品实例", instId) end CreateGunInBackpack 参数及类型: playerid:number 玩家Uin itemid:number / string 道具ID gridIndex:number / nil 格子索引(nil表示自动选择) 返回值及类型: id:string 道具实例ID 该方法的其他说明: 在玩家的背包内创建一把实例化的枪械(格子未锁定才能创建) 具体使用案例如下: local id = Backpack:CreateGunInBackpack(playerid, itemid, gridIndex) GetInstIdByGridIndex 参数及类型: playerid:number 玩家Uin gridIndex:number 背包索引 返回值及类型: id:string 道具实例ID 该方法的其他说明: 根据背包索引获取道具实例ID(格子未锁定才能获取) 具体使用案例如下: local id = Backpack:GetInstIdByGridIndex(playerid, gridIndex) GetGunInstIdInBackpack 参数及类型: playerid:number 玩家Uin 返回值及类型: ids:table 枪械实例ID数组 该方法的其他说明: 获取背包中所有实例化的枪械ID列表(仅返回未锁定格子的枪械) 具体使用案例如下: local ids = Backpack:GetGunInstIdInBackpack(playerid) IsLock 参数及类型: playerid:number 玩家Uin gridIndex:number 格子索引 返回值及类型: bool:boolean 是否锁定(参数错误返回true) 该方法的其他说明: 获取背包格子是否锁定(1.48+版本,参数错误返回true) 具体使用案例如下: local bool = Backpack:IsLock(playerid, gridIndex) GetGridAttr 参数及类型: playerid:number 玩家ID gridid:number 格子ID attr:number 属性枚举(GridAttr)GridAttr 返回值及类型: num:number 属性值 该方法的其他说明: 获取背包格子的指定属性值(支持道具数量、耐久度、韧性) 具体使用案例如下: local ret = Backpack:SetGridAttr(playerid, gridid,GridAttr.ItemNum,2) print("设置格子道具数量", ret) --如果数量超过最大堆叠数 则取最大堆叠数 local num1 = Backpack:SetGridAttr(playerid, gridid,GridAttr.Durable,100) print("设置格子耐久度", num1) --最大耐久为0,设置值直接返回false -- local num2 = Backpack:SetGridAttr(playerid, gridid,GridAttr.Toughness) -- print("设置格子韧性", num2) --最大韧性为0,设置值直接返回false return ret and num1 end function BackpackTask:GetGridAttr() local playerid = Player:GetHostUin() local gridid = 2 --Backpack:GetGridAttr local num = Backpack:GetGridAttr(playerid, gridid,GridAttr.ItemNum) print("获取格子属性", num) SetGridAttr 参数及类型: playerid:number 玩家ID gridid:number 格子ID attr:number 属性枚举(GridAttr)GridAttr value:number 属性值 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 设置背包格子的指定属性值(支持道具数量、耐久度、韧性,会自动限制在有效范围内) 具体使用案例如下: local bool = Backpack:SetGridAttr(playerid, gridid, attr, value) 界面模块管理接口 CustomUI 具体函数名及描述如下: 序号 函数名 函数描述 1 SetText(...) 设置文本元件内容 2 SetTexture(...) 设置元件图案纹理 3 SetSize(...) 设置元件大小 4 SetFontSize(...) 设置文本元件字体大小 5 SetColor(...) 设置元件颜色 6 ShowElement(...) 显示元件 7 HideElement(...) 隐藏元件 8 RotateElement(...) 旋转元件 9 SetAlpha(...) 设置透明度 10 SetState(...) 设置界面状态 11 SetPosition(...) 设置元件位置 12 SetScale(...) 设置元件缩放 13 GetItemIcon(...) 获取道具图标 14 GetMonsterObjIcon(...) 获取生物图标(对象) 15 GetMonsterIcon(...) 获取生物图标(类型) 16 GetStatusIcon(...) 获取状态图标 17 GetBlockIcon(...) 获取方块图标 18 GetRoleIcon(...) 获取角色图标 19 GetRoleHeadIcon(...) 获取角色头像图标 20 GetShortcutIcon(...) 获取快捷栏图标 21 SmoothMoveTo(...) 元件平滑移动到指定位置 22 SmoothMoveBy(...) 元件平滑移动相对距离 23 SmoothScaleTo(...) 元件平滑缩放到指定尺寸 24 SmoothScaleBy(...) 元件平滑改变相对宽高 25 SmoothScaleByEx(...) 元件平滑缩放(扩展) 26 SmoothRotateTo(...) 元件平滑旋转到指定角度 27 SmoothRotateBy(...) 元件平滑旋转相对角度 28 PlayElementAnim(...) 播放元件动画 29 StopAnim(...) 停止元件动画 30 SetLoaderModel(...) 设置装载器模型 31 SetLoaderModelScale(...) 设置装载器模型缩放 32 SetLoaderModelDir(...) 设置装载器模型方向 33 SetLoaderModelPosition(...) 设置装载器模型位置 34 SetLoaderModelAct(...) 设置装载器模型动画 35 TurnSliderToPos(...) 滑动列表跳转到位置 36 SetSliderDir(...) 设置滑动列表滑动方式 37 SetSliderBarImg(...) 设置滑动条图案 38 SetRelationPosition(...) 设置元件相对位置 39 SetRelationSize(...) 设置元件相对大小 40 CreateElement(...) 动态创建元件 41 CloneElement(...) 克隆元件 42 ChangeParent(...) 修改元件父元件 43 SetProgressBarValue(...) 设置进度条值 44 GetProgressBarValue(...) 获取进度条值 45 SetProgressBarResId(...) 设置进度条纹理 46 SmoothChangeProgress(...) 进度条文本平滑变化 47 SetSpineAnimID(...) 设置Spine动画ID 48 SmoothIncreaseProgress(...) 进度条文本平滑变化(增减) 49 SetFloatDamageTxt(...) 设置浮动伤害文本 50 GetScreenSize(...) 获取屏幕分辨率 51 DeleteElement(...) 删除UI元件 52 SetBeaconBandPos(...) 设置信标位置 53 SetBeaconObjId(...) 设置信标对象 54 SetBeaconOffset(...) 设置信标偏移 55 SetBeaconClampType(...) 设置信标限制范围 56 SetBeaconRadius(...) 设置信标半径 57 SetBeaconMargin(...) 设置信标矩形范围 SetText 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID text:string 文本内容 animid:number 动画ID(可选) time:number 动画时长(可选) mode:number 播放模式(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定文本元件的内容,可选带动画效果(打字机等) 具体使用案例如下: local isSuccess = CustomUI:SetText(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_2", "测试文本") SetTexture 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID url:string 图案纹理ID 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件的图案纹理(使用纹理资源ID) 具体使用案例如下: local isSuccess = CustomUI:SetTexture(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_3", "0_10103") SetSize 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID width:number 元件宽度 height:number 元件高度 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件的尺寸(宽高) 具体使用案例如下: local isSuccess = CustomUI:SetSize(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_3", 200, 100) SetFontSize 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID size:number 字体大小 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定文本元件的字体大小 具体使用案例如下: local isSuccess = CustomUI:SetFontSize(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_2", 20) SetColor 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID color:number 颜色值(0xFFFFFF) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件的颜色 具体使用案例如下: local isSuccess = CustomUI:SetColor(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", "0xf44336") ShowElement 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID effectid:number 动画ID(可选) time:number 动画时长(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 显示指定元件,可选播放显示动画 具体使用案例如下: local isSuccess = CustomUI:ShowElement(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1") HideElement 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID effectid:number 动画ID(可选) time:number 动画时长(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 隐藏指定元件,可选播放隐藏动画 具体使用案例如下: local isSuccess = CustomUI:HideElement(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1") RotateElement 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID rotate:number 旋转角度 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件的旋转角度 具体使用案例如下: local isSuccess = CustomUI:RotateElement(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 45) SetAlpha 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID alpha:number 透明度(0~100) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件的透明度 具体使用案例如下: local isSuccess = CustomUI:SetAlpha(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 0.5) SetState 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID pageIndex:string 状态ID easeType:number 缓动类型(Easing)(可选)Easing time:number 过渡时长(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置界面状态,可指定缓动类型与过渡时长 具体使用案例如下: local isSuccess = CustomUI:SetState(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886-状态2", Easing.Linear, 1) SetPosition 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID x:number X坐标值 y:number Y坐标值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件在界面上的坐标位置 具体使用案例如下: local isSuccess = CustomUI:SetPosition(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 600, 200) SetScale 参数及类型: objid:number 玩家/对象ID uiid:string 界面ID elementid:string 元件ID x:number X缩放 y:number Y缩放 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定元件的缩放比例 具体使用案例如下: local isSuccess = CustomUI:SetScale(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 2, 2) GetItemIcon 参数及类型: itemid:number / string 道具类型ID/预制ID 返回值及类型: icon:string 道具图标标识;失败返回"" 该方法的其他说明: 根据道具类型ID/预制ID获取道具图标 具体使用案例如下: local icon = CustomUI:GetItemIcon(12004) if icon and icon ~= "" then print("获取图标成功") end GetMonsterObjIcon 参数及类型: objid:number 对象ID 返回值及类型: icon:string 生物图标标识;无效返回"" 该方法的其他说明: 根据生物对象ID获取对应的生物图标标识字符串 具体使用案例如下: local obj = GameObject:CreatePrefabInst("r1_7482990429829028854_22890", nil, 10,8,10) if obj then local icon = CustomUI:GetMonsterObjIcon(obj:GetId()) if icon and icon ~= "" then print("获取怪物图标成功") end end GetMonsterIcon 参数及类型: actorid:number / string 生物类型ID/预制ID 返回值及类型: icon:string 生物图标标识;无效返回"" 该方法的其他说明: 根据生物类型ID/预制ID生成生物图标标识字符串 具体使用案例如下: local icon = CustomUI:GetMonsterIcon(3400) if icon and icon ~= "" then print("获取怪物图标成功") end GetStatusIcon 参数及类型: buffid:number / string 状态ID/预制ID 返回值及类型: icon:string 状态图标标识;无效返回""或nil 该方法的其他说明: 根据状态ID/预制ID获取状态图标标识字符串 具体使用案例如下: local icon = CustomUI:GetStatusIcon(4001) if icon and icon ~= "" then print("获取状态图标成功") end GetBlockIcon 参数及类型: blockid:number / string 方块类型ID/预制ID 返回值及类型: icon:string 方块图标标识;无效返回"" 该方法的其他说明: 根据方块类型ID/预制ID生成方块图标标识字符串 具体使用案例如下: local icon = CustomUI:GetBlockIcon(200) if icon and icon ~= "" then print("获取方块图标成功") end GetRoleIcon 参数及类型: playerid:number 玩家ID 返回值及类型: icon:string 角色图标标识;失败返回nil 该方法的其他说明: 获取玩家当前角色的图标标识字符串 具体使用案例如下: local icon = CustomUI:GetRoleIcon(Player:GetHostUin()) if icon and icon ~= "" then print("获取角色图标成功") end GetRoleHeadIcon 参数及类型: playerid:number 玩家ID 返回值及类型: icon:string 头像图标标识 该方法的其他说明: 根据玩家ID生成默认头像图标标识字符串 具体使用案例如下: local icon = CustomUI:GetRoleHeadIcon(Player:GetHostUin()) if icon and icon ~= "" then print("获取角色头像成功") end GetShortcutIcon 参数及类型: playerid:number 玩家ID ix:number 快捷栏索引(1-8) 返回值及类型: icon:string 道具图标标识;失败返回nil 该方法的其他说明: 获取玩家快捷栏指定格子的道具图标标识字符串 具体使用案例如下: local icon = CustomUI:GetShortcutIcon(Player:GetHostUin(), 1) SmoothMoveTo 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) x:number X坐标(可选) y:number Y坐标(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内平滑移动到绝对坐标位置 具体使用案例如下: local isSuccess = CustomUI:SmoothMoveTo(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_4", 1, 200, 300) SmoothMoveBy 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) x:number X方向距离 y:number Y方向距离 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内按相对距离平滑移动 具体使用案例如下: local isSuccess = CustomUI:SmoothMoveBy(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 1, 100, 100) SmoothScaleTo 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) w:number 宽度(可选) h:number 高度(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内平滑改变到指定宽度和高度 具体使用案例如下: local isSuccess = CustomUI:SmoothScaleTo(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 1, 100, 200) SmoothScaleBy 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) w:number 宽度增量 h:number 高度增量 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内按相对增量平滑改变宽度和高度 具体使用案例如下: local isSuccess = CustomUI:SmoothScaleBy(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 1, 30, 20) SmoothScaleByEx 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) x:number X缩放值 y:number Y缩放值 delayTime:number 延迟时间(可选) easeType:number 缓动枚举(Easing,可选)Easing 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内平滑改变相对缩放大小(子节点也会改变大小)<1.47+> 具体使用案例如下: local isSuccess = CustomUI:SmoothScaleByEx(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1",5, 3, 3) SmoothRotateTo 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) angle:number 角度值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内平滑旋转到指定角度 具体使用案例如下: local isSuccess = CustomUI:SmoothRotateTo(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 1, 45) SmoothRotateBy 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 执行时间(需大于0) angle:number 角度增量 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让元件在指定时间内按相对角度平滑旋转 具体使用案例如下: local isSuccess = CustomUI:SmoothRotateBy(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 1, 20) PlayElementAnim 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID animid:number 动画ID time:number 单次执行时间(需大于0) mode:number 播放模式(AnimMode)AnimMode easetype:number 缓动类型(Easing,可选)Easing delaytime:number 延迟播放时间(可选) endvalue:number / table 动画结束值(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 播放元件动画(动效/缓动/延迟等参数按配置生效) 具体使用案例如下: local isSuccess = CustomUI:PlayElementAnim(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 30007, 1, ViedoPlayMode.Once) StopAnim 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID itype:number 停止类型(0全部/1指定元件) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 停止元件动画(可停止全部动效或指定元件动效) 具体使用案例如下: local isSuccess = CustomUI:StopAnim(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_1", 0) SetLoaderModel 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID modleName:string 模型名称(如ItemInstance_xxx/avator_xxx等)stance 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置装载器元件显示的模型(支持按约定格式解析模型来源) 具体使用案例如下: local isSuccess = CustomUI:SetLoaderModel(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_5", "mob_3419") SetLoaderModelScale 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID modlescale:number 缩放大小 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置装载器元件模型缩放大小 具体使用案例如下: local isSuccess = CustomUI:SetLoaderModelScale(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_5", 1.5) SetLoaderModelDir 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID yaw:number 水平角度(角度制) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置装载器元件模型的水平旋转角度 具体使用案例如下: local isSuccess = CustomUI:SetLoaderModelDir(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_5", 90) SetLoaderModelPosition 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID x:number x坐标 y:number y坐标 z:number z坐标 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置装载器元件模型的位置坐标 具体使用案例如下: local isSuccess = CustomUI:SetLoaderModelPosition(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_5", 100, 200, 300) SetLoaderModelAct 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID animid:number / string 动画ID playmode:number 播放模式(AnimMode)AnimMode speed:number 播放速度(0~1) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置装载器元件模型播放的动画 具体使用案例如下: local isSuccess = CustomUI:SetLoaderModelAct(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_5", "100100", AnimMode.Default,1) TurnSliderToPos 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID x:number X坐标值 y:number Y坐标值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让滑动列表跳转到指定坐标位置 具体使用案例如下: local isSuccess = CustomUI:TurnSliderToPos(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_6",0, 50) SetSliderDir 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID dir:number 滑动方式(0仅左右/1仅上下/2自由滑动) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置滑动列表的滑动方向限制 具体使用案例如下: local isSuccess = CustomUI:SetSliderDir(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_6", 1) SetSliderBarImg 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID url:string 图片资源ID/链接 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置滑动条/滑动列表滑块的图案资源 具体使用案例如下: local isSuccess = CustomUI:SetSliderBarImg(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_6", 10100) SetRelationPosition 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID v:number 水平偏移枚举(HorizontalOffset)HorizontalOffset xOffset:number X偏移值 xUnits:number 单位枚举(PixelUnits)PixelUnits h:number 垂直偏移枚举(VerticalOffset)VerticalOffset yOffset:number Y偏移值 yUnits:number 单位枚举(PixelUnits)PixelUnits 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置元件相对锚点/单位的偏移位置 具体使用案例如下: local isSuccess = CustomUI:SetRelationPosition(Player:GetHostUin(), "7482986899365911542-22886", "7482986899365911542-22886_1", HorizontalOffset.Left, 10, PixelUnits.Percentage, VerticalOffset.Top, 10, PixelUnits.Percentage) SetRelationSize 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID width:number 宽度值 widthUnits:number 单位枚举(PixelUnits)PixelUnits height:number 高度值 heightUnits:number 单位枚举(PixelUnits)PixelUnits 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置元件相对单位的宽高大小 具体使用案例如下: local isSuccess = CustomUI:SetRelationSize(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_7", 100, PixelUnits.Percentage, 100, PixelUnits.Percentage) CreateElement 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementType:number 元件类型枚举(ElementType)ElementType 返回值及类型: elementid:string 新建元件ID;失败返回nil/false 该方法的其他说明: 动态创建元件并返回新元件ID,创建元件的子节点用 A.B 操作。 具体使用案例如下: local id = CustomUI:CreateElement(Player:GetHostUin(), "7482986899365911542-22886",ElementType.Texture) if id ~= nil then print("创建元件成功") end CloneElement 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 被克隆元件ID 返回值及类型: elementid:string 克隆元件ID;失败返回nil/false 该方法的其他说明: 克隆指定元件,并返回克隆后的新元件ID 具体使用案例如下: local id = CustomUI:CloneElement(Player:GetHostUin(), "7482986899365911542-22886", "7482986899365911542-22886_7") if id ~= nil then print("克隆元件成功") end ChangeParent 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID parentElementid:string 父元件ID 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 修改元件的父元件(调整层级结构) 具体使用案例如下: local isSuccess = CustomUI:ChangeParent(Player:GetHostUin(), "7482986899365911542-22886", "7482986899365911542-22886_7", "7482986899365911542-22886_1") if isSuccess then print("改变父节点成功") end SetProgressBarValue 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID itype:number 类型枚举(ProgressVal)ProgressVal value:number 设定值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置进度条元件的数值(最小/最大/当前等,按类型枚举生效) 具体使用案例如下: local isSuccess = CustomUI:SetProgressBarValue(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_7", ProgressVal.Current, 100) GetProgressBarValue 参数及类型: reportid:number 上报ID playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID 返回值及类型: bool:boolean 是否上报成功 该方法的其他说明: 获取进度条元件的最小值/最大值/当前值,并通过reportid上报给主机 具体使用案例如下: local min,max,value = CustomUI:GetProgressBarValue(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_7") SetProgressBarResId 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID itype:number 类型枚举(ProgressImg)ProgressImg url:string 图片资源ID 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置进度条元件的纹理资源(背景/进度等,按类型枚举生效) 具体使用案例如下: local isSuccess = CustomUI:SetProgressBarResId(Player:GetHostUin(), "7482986899365911542-22886", "7482986899365911542-22886_7", ProgressImg.Background, 10100) SmoothChangeProgress 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID bval:number 开始值 eval:number 结束值 time:number 执行时间 返回值及类型: bool:boolean 是否触发成功(无显式返回值时为nil) 该方法的其他说明: 让进度条文本在指定时间内从起始值平滑变化到结束值 具体使用案例如下: local bool = CustomUI:SmoothChangeProgress(playerid, uiid, elementid, bval, eval, time) SetSpineAnimID 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID animid:number 内置动画ID animindex:number 动画序列 playmode:number 播放模式(ViedoPlayMode)ViedoPlayMode 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置动画元件的动画ID/序列/播放模式 具体使用案例如下: local isSuccess = CustomUI:SetSpineAnimID(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_4", 10052, 1, ViedoPlayMode.Repeat) SmoothIncreaseProgress 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID time:number 时长 ptype:number 类型(1增加/2减小/3变化至) value:number 变化值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 让进度条文本在指定时间内按类型平滑变化(增加/减少/变化至) 具体使用案例如下: local isSuccess = CustomUI:SmoothIncreaseProgress(Player:GetHostUin(), "7482986899365911542-22886","7482986899365911542-22886_7", 3, 1, 50) SetFloatDamageTxt 参数及类型: playerid:number 玩家ID elementid:string 元件ID objid:number 对象ID text:string 文本 color:number 颜色(可选) offsetx:number X偏移(可选) offsety:number Y偏移(可选) movex:number 移动X(可选) movey:number 移动Y(可选) showtime:number 显示时长(可选) movex2:number 移动X2(可选) movey2:number 移动Y2(可选) showtime2:number 显示时长2(可选) 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 在对象屏幕坐标附近显示浮动伤害文本,并按参数播放移动/渐隐效果 具体使用案例如下: local bool = CustomUI:SetFloatDamageTxt(playerid, elementid, objid, text, color, offsetx, offsety, movex, movey, showtime, movex2, movey2, showtime2) GetScreenSize 参数及类型: playerid:number 玩家ID 返回值及类型: Width:number 屏幕宽度 Height:number 屏幕高度 该方法的其他说明: 获取客机屏幕分辨率 具体使用案例如下: local width, height = CustomUI:GetScreenSize(Player:GetHostUin()) DeleteElement 参数及类型: playerid:number 玩家ID uiid:string 界面ID elementid:string 元件ID 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 删除UI元件 具体使用案例如下: local bool = CustomUI:DeleteElement(playerid, uiid, elementid) SetBeaconBandPos 参数及类型: playerid:number 玩家ID elementid:string 元件ID bandPosX:number x坐标 bandPosY:number y坐标 bandPosZ:number z坐标 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置信标绑定位置坐标 具体使用案例如下: local bool = CustomUI:SetBeaconBandPos(playerid, elementid, bandPosX, bandPosY, bandPosZ) SetBeaconObjId 参数及类型: playerid:number 玩家ID elementid:string 元件ID objId:number 对象ID 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置信标绑定的对象ID 具体使用案例如下: local bool = CustomUI:SetBeaconObjId(playerid, elementid, objId) SetBeaconOffset 参数及类型: playerid:number 玩家ID elementid:string 元件ID offsetX:number x偏移 offsetY:number y偏移 offsetZ:number z偏移 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置信标偏移量 具体使用案例如下: local bool = CustomUI:SetBeaconOffset(playerid, elementid, offsetX, offsetY, offsetZ) SetBeaconClampType 参数及类型: playerid:number 玩家ID elementid:string 元件ID clampRange:number 限制类型 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置信标限制范围类型 具体使用案例如下: local bool = CustomUI:SetBeaconClampType(playerid, elementid, clampType) SetBeaconRadius 参数及类型: playerid:number 玩家ID elementid:string 元件ID radius:number 半径 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置信标显示半径 具体使用案例如下: local bool = CustomUI:SetBeaconRadius(playerid, elementid, radius) SetBeaconMargin 参数及类型: playerid:number 玩家ID elementid:string 元件ID horizontalMargin:number 水平边距 verticalMargin:number 垂直边距 uiid:string 界面ID 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置信标矩形限制范围 具体使用案例如下: local bool = CustomUI:SetBeaconMargin(playerid, elementid, horizontalMargin, verticalMargin) 图文信息模块管理接口 Graphics 具体函数名及描述如下: 序号 函数名 函数描述 1 MakeGraphicsText(...) 创建文字板信息 2 MakeflotageText(...) 创建漂浮文字信息 3 MakeGraphicsProgress(...) 创建进度条信息 4 MakeGraphicsArrowToPos(...) 生成指向位置的箭头数据 5 MakeGraphicsLineToPos(...) 生成指向位置的线数据 6 MakeGraphicsNavPathToPos(...) 生成寻路引导线数据 7 MakeGraphicsSurfaceToPos(...) 生成指向位置的面数据 8 MakeGraphicsArrowToActor(...) 生成指向对象的箭头数据 9 MakeGraphicsLineToActor(...) 生成指向对象的线数据 10 MakeGraphicsSurfaceToActor(...) 生成指向对象的面数据 11 MakeGraphicsImage(...) 生成图片信息 12 CreateGraphicsTxtByPos(...) 在位置上创建图文 13 CreateGraphicsTxtByActor(...) 在生物身上创建文字板 14 CreateflotageTextByPos(...) 在位置上创建漂浮文字 15 CreateflotageTextByActor(...) 在生物身上创建漂浮文字 16 CreateGraphicsProgressByPos(...) 在位置上创建进度条 17 CreateGraphicsProgressByActor(...) 在生物身上创建进度条 18 RemoveGraphicsByPos(...) 删除位置上的图文 19 RemoveGraphicsByObjID(...) 删除生物的图文 20 UpdateGraphicsTextById(...) 更新文字板内容 21 UpdateGraphicsProgressById(...) 更新进度条进度 22 CreateGraphicsArrowByActorToPos(...) 生物指向位置箭头 23 CreateGraphicsArrowByActorToActor(...) 生物指向生物箭头 24 CreateGraphicsArrowByPosToPos(...) 位置指向位置箭头 25 CreateGraphicsArrowByPosToActor(...) 位置指向生物箭头 26 CreateGraphicsLineByActorToPos(...) 生物到位置线 27 CreateGraphicsNavPathByActorToPos(...) 生物到位置寻路引导线 28 CreateGraphicsLineByActorToActor(...) 生物到生物线 29 CreateGraphicsLineByPosToPos(...) 位置到位置线 30 CreateGraphicsLineByPosToActor(...) 位置到生物线 31 CreateGraphicsSurfaceByActorToPos(...) 生物到位置面 32 CreateGraphicsSurfaceByActorToActor(...) 生物到生物面 33 CreateGraphicsSurfaceByPosToPos(...) 位置到位置面 34 CreateGraphicsSurfaceByPosToActor(...) 位置到生物面 35 ReplaceAllGraphics(...) 迁移所有图文到目标对象 36 CreateGraphicsImageByPos(...) 在位置上创建图像 37 CreateGraphicsImageByActor(...) 在生物上创建图像 38 GetInnerGraphicsOffset(...) 获取内嵌图文偏移高度 39 CreateBrushByPos(...) 在位置上创建笔刷 40 RemoveGraphicsByGraphicsID(...) 按ID删除图文 MakeGraphicsText 参数及类型: title:string 文本内容 font:number 字体大小 apha:number 不透明度 itype:number 文字板ID autoWrap:number 是否自动换行(默认1) 返回值及类型: obj:table 文字板信息表;失败返回nil 该方法的其他说明: 创建文字板图文信息数据(供创建接口使用) 具体使用案例如下: local data = Graphics:MakeGraphicsText([=[123]=], 16, 0, 1, true) MakeflotageText 参数及类型: title:string 文本内容 font:number 字体大小 itype:number 漂浮文字ID 返回值及类型: obj:table 漂浮文字信息表;失败返回nil 该方法的其他说明: 创建漂浮文字图文信息数据(供创建接口使用) 具体使用案例如下: local data = Graphics:MakeflotageText([=[123]=], 16, 1) MakeGraphicsProgress 参数及类型: v1:number 当前值 v2:number 最大值 color:number / string 颜色值(0xFFFFFF) itype:number 进度条ID 返回值及类型: obj:table 进度条信息表;失败返回nil 该方法的其他说明: 创建进度条图文信息数据(供创建接口使用) 具体使用案例如下: local data = Graphics:MakeGraphicsProgress(100, 100, [=[0xf44336]=], 1) MakeGraphicsArrowToPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z size:number 缩放值(可选) color:number / string 颜色值(0xFFFFFF) itype:number 箭头ID 返回值及类型: obj:table 箭头信息表;失败返回nil 该方法的其他说明: 生成指向位置的箭头图文信息数据(供创建接口使用) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local data = Graphics:MakeGraphicsArrowToPos(x + 10, y, z, 1, [=[0xf44336]=], 1) MakeGraphicsLineToPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z size:number 缩放值(可选) color:number / string 颜色值(0xFFFFFF) itype:number 线ID 返回值及类型: obj:table 线信息表;失败返回nil 该方法的其他说明: 生成指向位置的线图文信息数据(供创建接口使用) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local data = Graphics:MakeGraphicsLineToPos(x + 10, y, z, 1, [=[0xf44336]=], 1) MakeGraphicsNavPathToPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z itype:number 线ID 返回值及类型: obj:table 寻路线信息表 该方法的其他说明: 生成指向位置的寻路引导线图文信息数据(供创建接口使用) 具体使用案例如下: local obj = Graphics:MakeGraphicsNavPathToPos(x, y, z, itype, tCanSeePlayers) MakeGraphicsSurfaceToPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z size:number 缩放值(可选) color:number / string 颜色值(0xFFFFFF) itype:number 面ID 返回值及类型: obj:table 面信息表;失败返回nil 该方法的其他说明: 生成指向位置的面图文信息数据(供创建接口使用) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local data = Graphics:MakeGraphicsSurfaceToPos(x + 10, y, z, 1, [=[0xf44336]=], 1) MakeGraphicsArrowToActor 参数及类型: objid:number 对象ID size:number 缩放值(可选) color:number / string 颜色值(0xFFFFFF) itype:number 箭头ID 返回值及类型: obj:table 箭头信息表;失败返回nil 该方法的其他说明: 生成指向对象的箭头图文信息数据(供创建接口使用) 具体使用案例如下: local data = Graphics:MakeGraphicsArrowToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1) MakeGraphicsLineToActor 参数及类型: objid:number:对象数据,size:number:缩放值,color:number:颜色值(0xFFFFFF),itype:number:线ID 返回值及类型: info:table 线信息内容 该方法的主要作用: 生成指向对象的线数据 具体使用案例如下: local data = Graphics:MakeGraphicsLineToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1) MakeGraphicsSurfaceToActor 参数及类型: objid:number:对象数据,size:number:缩放值,color:number:颜色值(0xFFFFFF),itype:number:面ID 返回值及类型: info:table 面信息内容 该方法的主要作用: 生成指向对象的面数据 具体使用案例如下: local data = Graphics:MakeGraphicsSurfaceToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1) MakeGraphicsImage 参数及类型: imgid:string 图片资源ID scale:number 缩放值(可选) apha:number 透明度(0~100,可选) itype:number 图片ID 返回值及类型: obj:table 图片信息表;参数无效返回nil 该方法的其他说明: 生成图片图文信息数据(供创建接口使用) 具体使用案例如下: local data = Graphics:MakeGraphicsImage([=[0_10004]=], 1, 100, 1) CreateGraphicsTxtByPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z graphicInfo:table 图文信息(MakeGraphicsText等)GraphicsT x2:number X偏移(可选) y2:number Y偏移(可选) worldId:number 星球ID(可选) 返回值及类型: id:number 图文实例ID;失败返回nil 该方法的其他说明: 在指定位置创建图文信息(文字板等) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 1 local data = Graphics:CreateGraphicsTxtByPos(x, y, z, Graphics:MakeGraphicsText([=[123 test]=], 16, 0, 1, true), 0 , 100, WorldId) CreateGraphicsTxtByActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offest:number 方向偏移距离 x2:number X偏移(可选) y2:number Y偏移(可选) 返回值及类型: id:number 图文实例ID;失败返回nil 该方法的其他说明: 在生物身上创建文字板图文 具体使用案例如下: local data = Graphics:CreateGraphicsTxtByActor(Player:GetHostUin(), Graphics:MakeGraphicsText([=[123 test]=], 16, 0, 1, true), {x = 0, y = 1, z = 0}, 20) CreateflotageTextByPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z info:table 图文信息(MakeflotageText) x2:number X偏移(可选) y2:number Y偏移(可选) worldId:number 星球ID(可选) 返回值及类型: id:number 图文实例ID;失败返回nil 该方法的其他说明: 在指定位置创建漂浮文字 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local data = Graphics:CreateflotageTextByPos(x, y, z, Graphics:MakeflotageText([=[123 floatage text 111]=], 16, 1), WorldId) CreateflotageTextByActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offest:number 方向偏移距离 x2:number X偏移(可选) y2:number Y偏移(可选) 返回值及类型: id:number 图文实例ID;失败返回nil 该方法的其他说明: 在生物身上创建漂浮文字 具体使用案例如下: local data = Graphics:CreateflotageTextByActor(Player:GetHostUin(), Graphics:MakeflotageText([=[123 floatage text 222]=], 16, 1), {x = 0, y = 1, z = 0}, 100) CreateGraphicsProgressByPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z info:table 图文信息(MakeGraphicsProgress)Graphics x2:number X偏移(可选) y2:number Y偏移(可选) worldId:number 星球ID(可选) 返回值及类型: id:number 图文实例ID;失败返回nil 该方法的其他说明: 在指定位置创建进度条 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local data = Graphics:CreateGraphicsProgressByPos(x, y, z, Graphics:MakeGraphicsProgress(100, 101, [=[0xf44336]=], 1), WorldId) CreateGraphicsProgressByActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offest:number 方向偏移距离 x2:number X偏移(可选) y2:number Y偏移(可选) 返回值及类型: id:number 图文实例ID;失败返回nil 该方法的其他说明: 在生物身上创建进度条 具体使用案例如下: local data = Graphics:CreateGraphicsProgressByActor(Player:GetHostUin(), Graphics:MakeGraphicsProgress(99, 100, [=[0xf44336]=], 1), {x = 0, y = 1, z = 0}, 100) RemoveGraphicsByPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z itype:number 图文实例ID graphType:number 图文类型枚举(Graphics)Graphics worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 删除指定位置上指定类型与ID的图文信息 具体使用案例如下: self:ThreadWait(1) local result = Graphics:RemoveGraphicsByPos(x, y, z, 11, GraphicsType.Progress, WorldId) RemoveGraphicsByObjID 参数及类型: objid:number 对象ID itype:number 图文实例ID graphType:number 图文类型枚举(Graphics)Graphics 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 删除指定生物上指定类型与ID的图文信息 具体使用案例如下: self:ThreadWait(1) local result = Graphics:RemoveGraphicsByObjID(Player:GetHostUin(), 11, GraphicsType.Progress) UpdateGraphicsTextById 参数及类型: graphid:number 图文实例ID title:string 文本内容 fontsize:number 字体大小 apha:number 不透明度 isync:boolean 是否同步到客机(可选) 返回值及类型: bool:boolean 是否更新成功 该方法的其他说明: 按实例ID更新文字板图文的内容(字体、透明度等) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 2 local txtgraphis1 = Graphics:CreateGraphicsTxtByPos(x, y, z, Graphics:MakeGraphicsText([=[创建的文本]=], 16, 0, 1, true), 0 , 100, WorldId) local txtgraphis2 = Graphics:CreateGraphicsTxtByPos(x+1, y, z, Graphics:MakeGraphicsText([=[创建的文本]=], 16, 0, 1, true), 0 , 100, WorldId) if txtgraphis1 and txtgraphis2 then self:ThreadWait(1) -- 图文信息更新 一般用于间隔一段时间同步 Graphics:UpdateGraphicsTextById(txtgraphis1, "更新的文本1",20,0.5,false) -- 更新文本内容 字体 透明度 Graphics:UpdateGraphicsTextById(txtgraphis2, "更新的文本2",20,0.5,true) -- 更新文本内容 字体 透明度 (最后一次传入true会同步到其他客户端) end local txtgraphis3 = Graphics:CreateGraphicsTxtByPos(x+3, y, z, Graphics:MakeGraphicsText("动态文本",16, 0, 1, true), 0 , 100, WorldId) if txtgraphis3 then local extendparam = {1,2,3} -- 脚本添加自动刷新图文信息功能 local function getvalues(extendparam) --参数信息是添加监听时传入的参数 return tostring(math.random(1, 9999)) end Listen:AddGraphicsListenParam(txtgraphis3,{getvalues},extendparam) -- 添加自动刷新函数 extparam 扩展参数会传递到刷新函数里面 end UpdateGraphicsProgressById 参数及类型: graphid:number 图文实例ID val1:number 当前值 val2:number 最大值 isync:boolean 是否同步到客机(可选) 返回值及类型: bool:boolean 是否更新成功 该方法的其他说明: 按实例ID更新进度条图文的当前值/最大值 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 1 local prograhics1 = Graphics:CreateGraphicsProgressByPos(x, y, z, Graphics:MakeGraphicsProgress(90, 100, [=[0xf44336]=], 1), WorldId) local prograhics3 = Graphics:CreateGraphicsProgressByPos(x + 4, y, z, Graphics:MakeGraphicsProgress(89, 100, [=[0xf44336]=], 1), WorldId) if prograhics1 and prograhics3 then self:ThreadWait(1) Graphics:UpdateGraphicsProgressById(prograhics1, 10,200,false) -- 更新进度条的最小值和最大值 Graphics:UpdateGraphicsProgressById(prograhics3, 30,40,true) -- 更新进度条的最小值和最大值 (最后一次传入true会同步到其他客户端) end local prograhics2 = Graphics:CreateGraphicsProgressByPos(x-4, y, z, Graphics:MakeGraphicsProgress(10, 20, [=[0xf40000]=], 1, true), WorldId) if prograhics2 then local extendparam = {1,2,3} -- 脚本添加自动刷新图文信息功能 local function getvalues() return math.random(1, 20), math.random(20, 40) -- 最小值 最大值 end Listen:AddGraphicsListenParam(prograhics2,{getvalues},extendparam) -- 添加自动刷新函数 extparam 扩展参数会传递到刷新函数里面 end CreateGraphicsArrowByActorToPos 参数及类型: objid:number 对象ID info:table 图文信息(MakeGraphicsArrowToPos等)Graphics dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建从生物指向位置的箭头 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local isSuccess = Graphics:CreateGraphicsArrowByActorToPos(Player:GetHostUin(), Graphics:MakeGraphicsArrowToPos(x + 10, y, z, 1, [=[0xf44336]=], 1), {x = 0, y = 1, z = 0}, 20) CreateGraphicsArrowByActorToActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建从生物指向生物的箭头 具体使用案例如下: local isSuccess = Graphics:CreateGraphicsArrowByActorToActor(Player:GetHostUin(), Graphics:MakeGraphicsArrowToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1), {x = 0, y = 1, z = 0}, 20) CreateGraphicsArrowByPosToPos 参数及类型: pos:table 位置坐标{x,y,z} info:table 图文信息 worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建从位置指向位置的箭头 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 3 local isSuccess = Graphics:CreateGraphicsArrowByPosToPos({x = x, y = y, z = z}, Graphics:MakeGraphicsArrowToPos(x + 10, y, z, 1, [=[0xf44336]=], 1), WorldId) CreateGraphicsArrowByPosToActor 参数及类型: pos:table 位置坐标{x,y,z} info:table 图文信息 worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建从位置指向生物的箭头 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 3 local isSuccess = Graphics:CreateGraphicsArrowByPosToActor({x = x, y = y, z = z}, Graphics:MakeGraphicsArrowToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1), WorldId) CreateGraphicsLineByActorToPos 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建生物到位置的线 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local isSuccess = Graphics:CreateGraphicsLineByActorToPos(Player:GetHostUin(), Graphics:MakeGraphicsLineToPos(x + 10, y, z, 1, [=[0xf44336]=], 1), {x = 0, y = 1, z = 0}, 20) CreateGraphicsNavPathByActorToPos 参数及类型: objid:number 对象ID info:table 图文信息(含pos、id、tCanSeePlayers等)Player dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建生物到位置的寻路引导线 具体使用案例如下: local bool = Graphics:CreateGraphicsNavPathByActorToPos(objid, info, dir, offset) CreateGraphicsLineByActorToActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建生物到生物的线 具体使用案例如下: local isSuccess = Graphics:CreateGraphicsLineByActorToActor(Player:GetHostUin(), Graphics:MakeGraphicsLineToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1), {x = 0, y = 1, z = 0}, 500) CreateGraphicsLineByPosToPos 参数及类型: pos:table 位置坐标{x,y,z} info:table 图文信息 worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建位置到位置的线 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 3 local isSuccess = Graphics:CreateGraphicsLineByPosToPos({x = x, y = y, z = z}, Graphics:MakeGraphicsLineToPos(x + 10, y, z, 1, [=[0xf44336]=], 1), WorldId) CreateGraphicsLineByPosToActor 参数及类型: pos:table 位置坐标{x,y,z} info:table 图文信息 worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建位置到生物的线 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) x = x + 3 local isSuccess = Graphics:CreateGraphicsLineByPosToActor({x = x, y = y, z = z}, Graphics:MakeGraphicsLineToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1), WorldId) CreateGraphicsSurfaceByActorToPos 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建生物到位置的面 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local isSuccess = Graphics:CreateGraphicsSurfaceByActorToPos(Player:GetHostUin(), Graphics:MakeGraphicsSurfaceToPos(x + 10, y, z, 1, [=[0xf44336]=], 1), {x = 0, y = 1, z = 0}, 20) CreateGraphicsSurfaceByActorToActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offset:number 方向偏移距离 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建生物到生物的面 具体使用案例如下: local isSuccess = Graphics:CreateGraphicsSurfaceByActorToActor(Player:GetHostUin(), Graphics:MakeGraphicsSurfaceToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1), {x = -1, y = 0, z = 0}, 500) CreateGraphicsSurfaceByPosToPos 参数及类型: pos:table 位置坐标{x,y,z} info:table 图文信息 worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建位置到位置的面 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 3 local isSuccess = Graphics:CreateGraphicsSurfaceByPosToPos({x = x, y = y, z = z}, Graphics:MakeGraphicsSurfaceToPos(x + 10, y, z, 1, [=[0xf44336]=], 1), WorldId) CreateGraphicsSurfaceByPosToActor 参数及类型: pos:table 位置坐标{x,y,z} info:table 图文信息 worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 创建位置到生物的面 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 3 local isSuccess = Graphics:CreateGraphicsSurfaceByPosToActor({x = x, y = y, z = z}, Graphics:MakeGraphicsSurfaceToActor(Player:GetHostUin(), 1, [=[0xf44336]=], 1), WorldId) ReplaceAllGraphics 参数及类型: srcObjid:number 源对象ID desObjid:number 目标对象ID 返回值及类型: bool:boolean 是否迁移成功 该方法的其他说明: 将源对象上的所有图文信息迁移到目标对象 具体使用案例如下: local objs = GameObject:CreatePrefab(ObjType.Mob, 3400, x + 1,y,z, 1) -- 创建两个游戏内生物 if objs and #objs > 0 then objid2 = objs[1]:GetId() result = Graphics:ReplaceAllGraphics(objid1,objid2) print("result", result) end CreateGraphicsImageByPos 参数及类型: x:number 方块X y:number 方块Y z:number 方块Z info:table 图文信息(MakeGraphicsImage)Graphics x2:number X偏移(可选) y2:number Y偏移(可选) worldId:number 星球ID(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 在指定位置创建图像图文 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 3 local isSuccess = Graphics:CreateGraphicsImageByPos(x, y, z, Graphics:MakeGraphicsImage([=[0_10004]=], 1, 100, 1), WorldId) CreateGraphicsImageByActor 参数及类型: objid:number 对象ID info:table 图文信息 dir:table 方向{x,y,z} offest:number 方向偏移距离 x2:number X偏移(可选) y2:number Y偏移(可选) 返回值及类型: bool:boolean 是否创建成功 该方法的其他说明: 在生物上创建图像图文 具体使用案例如下: local isSuccess = Graphics:CreateGraphicsImageByActor(Player:GetHostUin(), Graphics:MakeGraphicsImage([=[0_10004]=], 1, 100, 1), {x = 0, y = 1, z = 0}, 200) GetInnerGraphicsOffset 参数及类型: tuin:number 玩家Uin itype:number 类型(PlayerNameType)PlayerNameType callback:function回调函数(参数为高度值) 返回值及类型: 无返回值(结果通过callback回调) 该方法的其他说明: 获取玩家昵称/称号的偏移高度并通过回调返回(玩家脚本调用) 具体使用案例如下: Graphics:GetInnerGraphicsOffset(Player:GetHostUin(), PlayerNameType.Nick, function (height) if height == 0 then print("未展示") else print("高度", height) end end) CreateBrushByPos 参数及类型: pos:table 位置坐标{x,y,z} dim:table 尺寸{x,y,z} color:number / string 颜色值(0xFFFFFF) showuin:number 显示玩家Uin(0全部) itype:number 类别ID worldId:number 星球ID(可选) 返回值及类型: id:number 笔刷实例ID;失败返回false 该方法的其他说明: 在指定位置创建笔刷区域图文<1.54+> 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local pos = {x = x, y = y, z = z} local dim = {x = 3, y = 3, z = 3} local itype = 11 -- 在玩家位置创建一个3x3x3的方块预览 local graphicsid = Graphics:CreateBrushByPos( pos, dim, 0xFF00ff, Player:GetHostUin(), itype) RemoveGraphicsByGraphicsID 参数及类型: objid:number 图文实例ID 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 按图文实例ID删除图文信息 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) y = y + 2 local graphicsid = Graphics:CreateGraphicsTxtByPos(x, y, z, Graphics:MakeGraphicsText([=[123 test]=], 16, 0, 1, true), 0 , 100, WorldId) self:ThreadWait(2) local result = Graphics:RemoveGraphicsByGraphicsID(graphicsid) 区域模块管理接口 Area 具体函数名及描述如下: 序号 函数名 函数描述 1 CreateAreaPrefab(...) 创建区域对象 2 GetAreaUuidByObjId(...) 通过区域对象ID获取区域uuid 3 CreateAreaRectByRange(...) 创建矩形区域 4 DestroyArea(...) 销毁区域 5 GetAreaCenter(...) 获取区域中间点 6 GetAreaRectLength(...) 获取区域各边长 7 GetAreaRectRange(...) 获取区域范围 8 GetRandomPos(...) 随机区域内位置 9 ObjInArea(...) 检测对象是否在区域内 10 BlockInArea(...) 检测区域内是否有某个方块 11 PosInArea(...) 位置是否在区域内 12 GetAreaPlayers(...) 获取区域中的所有玩家 13 GetAreaCreatures(...) 获取区域中的所有生物 14 ClearAllBlock(...) 清空区域内全部方块 15 CloneAreaBlock(...) 复制区域内方块到另一个区域 16 ReplaceAreaBlock(...) 替换方块类型为新的方块类型 17 GetAllObjsInAreaRange(...) 获取区域范围内全部对象 18 GetAllPlayersInAreaRange(...) 获取区域范围内全部玩家 19 GetAllCreaturesInAreaRange(...) 获取区域范围内全部生物 20 FillBlockAreaRange(...) 用方块填充区域范围 21 ClearAllBlockAreaRange(...) 清空区域范围内方块 22 DestroyAllBlock(...) 破坏区域内的方块 23 CloneAreaRange(...) 复制区域范围内方块到另一个区域 24 ReplaceAreaRangeBlock(...) 替换区域范围方块 25 GetRandomAirPos(...) 获取一个区域内随机空气方块 26 GetAreaBlockTypes(...) 获取区域内的方块类型 27 GetBlockNum(...) 获取区域内的方块数量 28 CheckRangeCanPlace(...) 检查指定范围内是否可以放置方块 29 GetRelativeActors(...) 获取区域中指定玩家关系的角色 CreateAreaPrefab 参数及类型: pos:table 区域底部中心位置 size:table 区域大小 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: obj:table 区域对象 id:number 区域对象ID 该方法的其他说明: 创建区域预制体对象,设置区域大小和位置,返回区域对象和对象ID 具体使用案例如下: -- 在玩家位置下方上创建一个20*20*20 尺寸的区域对象, 玩家在整个区域包围盒底面正中心 local area = Area:CreateAreaPrefab({x = x, y = y, z = z}, {x = 21, y = 21, z = 21}, WorldId) --区域对象也是对象,可以挂载组件等 if area then local areaId = area:GetId() -- 获取区域对象的id -- area:AddComponent("组件id") end local startPos, endPos = Area:GetAreaRectRange(area:GetId()) GetAreaUuidByObjId 参数及类型: objId:number 区域对象ID 返回值及类型: id:number 区域uuid 该方法的其他说明: 根据区域对象ID获取对应的区域唯一标识符(uuid) 具体使用案例如下: local id = Area:GetAreaUuidByObjId(objId) CreateAreaRectByRange 参数及类型: posBeg:table 区域起始坐标 posEnd:table 区域结束坐标 btmp:boolean 是否是临时区域 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: id:number 区域ID 该方法的其他说明: 根据起始和结束坐标创建矩形区域,通过范围定义区域边界 具体使用案例如下: -- 以玩家为底面中心位置 创建一个矩形区域,指定起始点和终点 local startPos = {x = x - 10, y = y , z = z - 10} local endPos = {x = x + 10, y = y + 20, z = z + 10} local areaId = Area:CreateAreaRectByRange(startPos, endPos, false, WorldId) DestroyArea 参数及类型: areaid:number 区域ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 销毁指定ID的区域,释放区域资源 具体使用案例如下: -- 销毁区域 local result = Area:DestroyArea(areaId) GetAreaCenter 参数及类型: areaid:number 区域ID 返回值及类型: pos:table 区域中心位置 该方法的其他说明: 获取指定区域的中心点坐标位置 具体使用案例如下: -- 获取区域中心点 local centerPos = Area:GetAreaCenter(areaId) GetAreaRectLength 参数及类型: areaid:number 区域ID 返回值及类型: lenx:number x轴向长度 leny:number y轴向长度 lenz:number z轴向长度 该方法的其他说明: 获取指定区域在三个轴向上的长度尺寸 具体使用案例如下: -- 获取矩形区域的长度 local lengthX, lengthY, lengthZ = Area:GetAreaRectLength(areaId) GetAreaRectRange 参数及类型: areaid:number 区域ID 返回值及类型: posBeg:table 区域起始坐标 posEnd:table 区域结束坐标 worldId:number 星球id 该方法的其他说明: 获取指定区域的边界范围,返回起始坐标、结束坐标和所在星球ID 具体使用案例如下: -- 获取矩形区域的范围 local startPos, endPos = Area:GetAreaRectRange(areaId) GetRandomPos 参数及类型: areaid:number 区域ID 返回值及类型: pos:table 随机坐标 该方法的其他说明: 在指定区域内随机获取一个坐标位置 具体使用案例如下: -- 获取区域内随机位置 local pos = Area:GetRandomPos(areaId) ObjInArea 参数及类型: areaid:number 区域ID objid:number 对象ID 返回值及类型: bool:boolean 是否在区域内 该方法的其他说明: 检测指定对象是否位于指定区域内 具体使用案例如下: -- 检查对象是否在区域内 local result = Area:ObjInArea(areaId, Player:GetHostUin()) BlockInArea 参数及类型: areaid:number 区域ID blockid:number / string 方块类型ID 返回值及类型: bool:boolean 是否在区域内 该方法的其他说明: 检测指定区域内是否存在指定类型的方块 具体使用案例如下: -- 检查指定位置的方块是否在区域内 local isInArea = Area:BlockInArea(areaId, 200) PosInArea 参数及类型: areaid:number 区域唯一ID pos:table 位置(x|y|z) worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否在区域内 该方法的其他说明: 检测指定位置坐标是否位于指定区域内 具体使用案例如下: -- 检查位置是否在区域内 local result = Area:PosInArea(areaId, {x = x, y = y, z = z}, WorldId) GetAreaPlayers 参数及类型: areaid:number 区域唯一ID 返回值及类型: objids:table 玩家ID组 该方法的其他说明: 获取指定区域内的所有玩家对象ID列表 具体使用案例如下: -- 获取区域内所有玩家 local players = Area:GetAreaPlayers(areaId) GetAreaCreatures 参数及类型: areaid:number 区域唯一ID 返回值及类型: objids:table 生物ID组 该方法的其他说明: 获取指定区域内的所有生物对象ID列表,注意当帧创建的生物无法获取 具体使用案例如下: -- 获取区域内的所有生物 local creatures = Area:GetAreaCreatures(areaId) ClearAllBlock 参数及类型: areaid:number 区域唯一ID blockid:number / string 方块类型ID num:number 最大清除数量 btriggerevent:boolean 是否触发事件(默认false) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 清空指定区域内的所有方块,可指定方块类型和最大清除数量,支持触发事件 具体使用案例如下: -- 清除区域内的所有201方块 local result = Area:ClearAllBlock(areaId, 201) CloneAreaBlock 参数及类型: areaid:number 区域唯一ID pos:table 目标起始位置 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 将指定区域内的方块复制到目标位置的另一个区域 具体使用案例如下: -- 克隆区域内的方块 local isSuccess = Area:CloneAreaBlock(areaId, {x = x + 10, y = y, z = z - 10}) ReplaceAreaBlock 参数及类型: areaid:number 区域唯一ID srcblockid:number / string 区域内的方块类型 destblockid:number / string 替换的方块类型 face:number 方块朝向 color:string / number 颜色 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 将区域内指定类型的方块替换为新的方块类型,支持设置朝向和颜色 具体使用案例如下: -- 替换区域内的方块, 200 替换为 203 local result = Area:ReplaceAreaBlock(areaId, 200, 203) -- 将方块ID为1的替换为2 GetAllObjsInAreaRange 参数及类型: posbeg:table 起始位置 posend:table 末点位置 objtype:number 对象类型(ObjType)ObjType worldId:number 星球id(默认当前主机所在星球) 返回值及类型: objids:table 对象ID组 该方法的其他说明: 获取指定位置范围内指定类型的所有对象ID列表 具体使用案例如下: -- 获取区域中的全部玩家 local posBeg, posEnd = Area:GetAreaRectRange(areaId) local objects = Area:GetAllObjsInAreaRange(posBeg, posEnd, ObjType.Player, WorldId) GetAllPlayersInAreaRange 参数及类型: posbeg:table 起始位置 posend:table 末点位置 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: objids:table 对象ID组 该方法的其他说明: 获取指定位置范围内的所有玩家对象ID列表 具体使用案例如下: local posBeg, posEnd = Area:GetAreaRectRange(areaId) local players = Area:GetAllPlayersInAreaRange(posBeg, posEnd, WorldId) GetAllCreaturesInAreaRange 参数及类型: posbeg:table 起始位置 posend:table 末点位置 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: objids:table 对象ID组 该方法的其他说明: 获取指定位置范围内的所有生物对象ID列表 具体使用案例如下: local posBeg, posEnd = Area:GetAreaRectRange(areaId) local creatures = Area:GetAllCreaturesInAreaRange(posBeg, posEnd, WorldId) FillBlockAreaRange 参数及类型: posbeg:table 起始位置 posend:table 末点位置 blockid:number / string 方块类型 face:number 朝向 color:string / number 颜色 switch:boolean 是否开启 filltype:number 填充类型(AreaFillType)AreaFillType worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 用指定方块填充位置范围,支持设置朝向、颜色和填充类型,分帧处理当前帧无法操作填充的方块 具体使用案例如下: local startPos = {x = x + 5, y = y, z = z} local endPos = {x = x + 6, y = y + 2, z = z + 1} -- 填充区域内的方块 local result = Area:FillBlockAreaRange(startPos, endPos, 105, nil, nil, nil,nil, WorldId) ClearAllBlockAreaRange 参数及类型: posbeg:table 起始位置 posend:table 末点位置 blockid:number / string 方块类型 btriggerevent:boolean 是否触发事件 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 清空指定位置范围内的方块,可指定方块类型和是否触发事件 具体使用案例如下: local posBeg, posEnd = Area:GetAreaRectRange(areaId) local result = Area:ClearAllBlockAreaRange(posBeg, posEnd, 205, nil, WorldId) DestroyAllBlock 参数及类型: areaid:number 区域ID blockid:string / number 方块ID或资产ID n:number 销毁数量(不填或者0则全部销毁) candrop:boolean 是否掉落物品 btriggerevent:boolean 是否触发事件 返回值及类型: bool:boolean 操作是否成功 该方法的其他说明: 破坏指定区域内的方块,可指定方块类型、销毁数量、是否掉落物品和是否触发事件 具体使用案例如下: -- 销毁区域内的所有105方块 local result = Area:DestroyAllBlock(areaId, 105) CloneAreaRange 参数及类型: posbeg:table 起始位置 posend:table 末点位置 deststartpos:table 目标起始位置 itype:number 操作类型 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 操作是否成功 该方法的其他说明: 将指定位置范围内的方块复制到目标位置的另一个区域,支持指定操作类型 具体使用案例如下: local stPos = {x = x - 10, y = y, z = z - 10} local ePos = {x = x + 10, y = y + 10, z = z + 10} -- 克隆区域范围 local isSuccess = Area:CloneAreaRange(stPos, ePos, {x = x + 10, y = y, z = z - 10}, nil, WorldId) ReplaceAreaRangeBlock 参数及类型: posbeg:table 起始位置 posend:table 末点位置 srcblockid:number / string 方块类型 destblockid:number / string 目标方块类型 face:number 朝向 inair:boolean 是否包括空气方块 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 操作是否成功 该方法的其他说明: 将指定位置范围内的源方块类型替换为目标方块类型,支持设置朝向和是否包括空气方块 具体使用案例如下: -- 替换区域范围内的方块 local posBeg, posEnd = Area:GetAreaRectRange(areaId) local result = Area:ReplaceAreaRangeBlock(posBeg, posEnd, 202, 205, nil, nil, WorldId) GetRandomAirPos 参数及类型: posbeg:table 区域起始位置 posend:table 区域结束位置 worldId:number 星球id(默认当前主机所在星球) 返回值及类型: pos:table 随机空气位置(x,y,z) 该方法的其他说明: 在指定位置范围内随机获取一个空气方块的坐标位置 具体使用案例如下: -- 获取区域内随机空气位置 local posBeg, posEnd = Area:GetAreaRectRange(areaId) local pos = Area:GetRandomAirPos(posBeg, posEnd, WorldId) GetAreaBlockTypes 参数及类型: areaid:number 区域ID 返回值及类型: ids:table 方块类型ID组 该方法的其他说明: 获取指定区域内所有不同的方块类型ID列表 具体使用案例如下: -- 获取区域内所有方块类型 local blockTypes = Area:GetAreaBlockTypes(areaId) GetBlockNum 参数及类型: areaid:number 区域ID blockid:string / number 方块ID 返回值及类型: num:number 方块数量 该方法的其他说明: 统计指定区域内指定类型方块的数量 具体使用案例如下: -- 获取区域内方块数量 local blockNum = Area:GetBlockNum(areaId, 202) CheckRangeCanPlace 参数及类型: posbeg:table 区域起始位置 posend:table 区域结束位置 blockid:string / number 方块ID worldId:number 星球id(默认当前主机所在星球) 返回值及类型: bool:boolean 是否可以放置方块 该方法的其他说明: 检查指定位置范围内是否可以放置指定类型的方块 具体使用案例如下: local startPos = {x = x + 5, y = y, z = z} local endPos = {x = x + 6, y = y + 2, z = z + 1} -- 检查范围是否可以放置 local result = Area:CheckRangeCanPlace(startPos, endPos, 105, WorldId) GetRelativeActors 参数及类型: posbeg:table 区域起始位置 posend:table 区域结束位置 uin:number 玩家ID relativing:number 关系类型(RelativeCampType)RelativeCampType actortype:number 角色(ObjType)ObjType worldId:number 星球id(默认当前主机所在星球) 返回值及类型: num:number 数量 ids:table ID数组 该方法的其他说明: 获取指定位置范围内与指定玩家具有特定关系的角色对象,返回数量和ID列表 具体使用案例如下: local posBeg, posEnd = Area:GetAreaRectRange(areaId) local num, objs = Area:GetRelativeActors(posBeg, posEnd, Player:GetHostUin(), RelativeCampType.Friendly, ObjType.Mob, WorldId) 容器模块管理接口 WorldContainer 具体函数名及描述如下: 序号 函数名 函数描述 1 CheckStorage(...) 检测储物箱 2 ClearStorageBox(...) 清空储物箱 3 CheckStorageEmptyGrid(...) 检测储物箱空位 4 SetStorageItem(...) 设置储物箱格子道具 5 GetStorageItem(...) 获取储物箱格子道具 6 AddStorageItem(...) 储物箱添加道具 7 RemoveStorageItemByID(...) 储物箱按类型移除道具 8 RemoveStorageItemByIndex(...) 储物箱按格子移除道具 9 AddItemToContainer(...) 储物箱添加道具(大箱) 10 RemoveContainerItemByID(...) 移除储物箱中一定数量道具 11 ClearContainer(...) 清空容器 12 AddWorldStorageItems(...) 批量添加储物箱道具 13 GetStorageItemInstanceId(...) 获取储物箱道具实例ID 14 GetAllStorageItemInstanceIds(...) 获取储物箱全部道具实例ID 15 SwapContainerItem(...) 交换容器与背包道具 16 GetGridAttr(...) 获取格子属性 CheckStorage 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean,resIdOrBlockId:number|nil:是否为储物箱及方块标识(否仅返回false) 该方法的其他说明: 检测指定坐标是否为储物箱或 MOD 容器;是则返回方块资源ID或配置ID 具体使用案例如下: local isStorage = WorldContainer:CheckStorage(x, y, z, WorldId) ClearStorageBox 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否清空成功 该方法的其他说明: 清空指定坐标储物箱内所有物品 具体使用案例如下: local success = WorldContainer:ClearStorageBox(x, y, z, WorldId) CheckStorageEmptyGrid 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z itemid:number / string 道具类型ID或资源ID worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否有可用格子 该方法的其他说明: 检测储物箱是否还有空位或可叠加存放指定道具 具体使用案例如下: local isEmpty = WorldContainer:CheckStorageEmptyGrid(x, y, z, 100, WorldId) SetStorageItem 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z offset:number 格子索引(从1开始) itemid:number / string 道具类型ID或资源ID num:number 数量 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 按格子索引直接设置储物箱内道具与数量 具体使用案例如下: local success = WorldContainer:SetStorageItem(x, y, z, 3, 12500, 10, WorldId) GetStorageItem 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z offset:number 格子索引(从1开始) worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:itemid:number|string|nil,num:number|nil:道具ID与数量(失败返回nil) 该方法的其他说明: 读取储物箱指定格子的道具ID与数量 具体使用案例如下: local itemId, num = WorldContainer:GetStorageItem(x, y, z, 1, WorldId) AddStorageItem 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z itemid:number / string 道具类型ID或资源ID num:number 数量 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / boolean / nil 实际添加数量(锁定商品返回false,失败返回nil) 该方法的其他说明: 向储物箱按堆叠规则添加道具,返回实际加入的数量 具体使用案例如下: local addNum = WorldContainer:AddStorageItem(x, y, z, 12507, 10, WorldId) RemoveStorageItemByID 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z itemid:number / string 道具类型ID或资源ID num:number / nil 移除数量 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否执行成功 该方法的其他说明: 从储物箱中按道具类型移除指定数量(num 缺省或极大时表示尽量清空该类型) 具体使用案例如下: local isSuccess = WorldContainer:RemoveStorageItemByID(x, y, z, 12507, 3, WorldId) RemoveStorageItemByIndex 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z offset:number 格子索引(从1开始) num:number / nil 移除数量 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否移除成功 该方法的其他说明: 从储物箱指定格子移除一定数量道具 具体使用案例如下: local isSuccess = WorldContainer:RemoveStorageItemByIndex(x, y, z, 1, 5, WorldId) AddItemToContainer 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z itemid:number / string 道具类型ID或资源ID num:number 数量 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / boolean 实际添加数量(失败返回false) 该方法的其他说明: 向储物箱添加道具;成功返回本次实际加入数量 具体使用案例如下: local addNum = WorldContainer:AddItemToContainer(x, y, z, 12500, 10, WorldId) RemoveContainerItemByID 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z itemid:number / string 道具类型ID或资源ID num:number 数量 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否移除成功 该方法的其他说明: 移除储物箱中一定数量道具 具体使用案例如下: local isSuccess = WorldContainer:RemoveContainerItemByID(x, y, z, 12500, 5, WorldId) ClearContainer 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否清空成功 该方法的其他说明: 清空指定坐标上通用容器内所有物品 具体使用案例如下: local success = WorldContainer:ClearContainer(x, y, z, WorldId) AddWorldStorageItems 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z itemids:table 道具列表({itemId,itemNum}...) worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number 累计成功添加数量 该方法的其他说明: 批量向储物箱添加多组道具(每项含 itemId、itemNum),返回累计成功添加的总数量 具体使用案例如下: local addNum = WorldContainer:AddWorldStorageItems(x, y, z, {{itemId = 12541, itemNum = 10}}, WorldId) GetStorageItemInstanceId 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z offset:number 格子索引(从1开始) worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:string / nil 实例ID(无则返回nil) 该方法的其他说明: 读取储物箱某格道具的实例ID字符串(仅当格子含实例数据时有效) 具体使用案例如下: local ret = WorldContainer:GetStorageItemInstanceId(x, y, z, offset, worldId) GetAllStorageItemInstanceIds 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:table / nil 实例ID字符串数组(失败返回nil) 该方法的其他说明: 枚举储物箱内所有带实例ID的格子,收集实例ID列表(仅含通过接口创建的实例道具) 具体使用案例如下: local ret = WorldContainer:GetAllStorageItemInstanceIds(x, y, z, worldId) SwapContainerItem 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z grid:number 容器格子索引(从1开始,熔炉为约定槽位) uin:number 玩家objid grid2:number 背包格子索引(从1开始) 返回值及类型: ret:boolean / nil 是否成功(坐标无方块等可能返回nil) 该方法的其他说明: 在玩家背包与指定坐标的储物箱或熔炉之间移动或交换道具 具体使用案例如下: local ret = WorldContainer:SwapContainerItem(x, y, z, 1,uin, BackpackBeginIndex.Shortcut) GetGridAttr 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z gridid:number:格子ID,attr:number:属性枚举(GridAttr) worldId:number 星球id(默认当前主机所在星球) 返回值及类型: ret:number 属性值 该方法的其他说明: 获取格子属性 具体使用案例如下: local num = WorldContainer:GetGridAttr(x, y, z, 1, GridAttr.ItemNum) 资源模块管理接口 Mod 具体函数名及描述如下: 序号 函数名 函数描述 1 GetCfgIdByAssetId(...) 通过资源id获取defid GetCfgIdByAssetId 参数及类型: assetId:string 资源id 返回值及类型: cfgId:number defid 该方法的主要作用: 通过资源id获取defid 具体使用案例如下: local cfgId = Mod:GetCfgIdByAssetId(assetId) 计时器模块管理接口 Timer 注意:【计时器组】变量使用说明参考: 【计时器组】变量如何使用 具体函数名及描述如下: 序号 函数名 函数描述 1 IsExist(...) 计时器是否存在 2 CreateTimer(...) 创建计时器 3 DeleteTimer(...) 删除计时器 4 StartBackwardTimer(...) 开始倒计时 5 StartForwardTimer(...) 开始正向计时 6 PauseTimer(...) 暂停计时器 7 ResumeTimer(...) 恢复计时器 8 StopTimer(...) 停止计时器 9 ChangeTimerTime(...) 设置计时器时间 10 GetTimerTime(...) 获取计时器时间 11 ShowTimerWnd(...) 显示计时器窗口 12 HideTimerWnd(...) 隐藏计时器窗口 IsExist 参数及类型: id:number 计时器ID 返回值及类型: ret:boolean 是否存在 该方法的其他说明: 判断计时器ID是否存在 具体使用案例如下: local isExist = Timer:IsExist(timerId) CreateTimer 参数及类型: name:string 计时器名称 返回值及类型: timerid:number / nil 计时器ID 该方法的其他说明: 创建一个计时器并返回ID 具体使用案例如下: local timerId = Timer:CreateTimer("计时器") DeleteTimer 参数及类型: id:number 计时器ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 删除一个计时器 具体使用案例如下: local success = Timer:DeleteTimer(timerId) StartBackwardTimer 参数及类型: id:number 计时器ID interval:number 起始秒数 repeated:bool / nil 是否循环 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 启动倒计时(从 interval 开始往下走) 具体使用案例如下: local success = Timer:StartBackwardTimer(timerId, 20, false) StartForwardTimer 参数及类型: id:number 计时器ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 启动正向计时(从0往上走) 具体使用案例如下: local success = Timer:StartForwardTimer(timerId) PauseTimer 参数及类型: id:number 计时器ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 暂停一个正在运行的计时器 具体使用案例如下: local success = Timer:PauseTimer(timerId) ResumeTimer 参数及类型: id:number 计时器ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 恢复一个已暂停的计时器 具体使用案例如下: local success = Timer:ResumeTimer(timerId) StopTimer 参数及类型: id:number 计时器ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 停止一个正在运行的计时器 具体使用案例如下: local success = Timer:StopTimer(timerId) ChangeTimerTime 参数及类型: id:number 计时器ID curtime:number 当前秒数 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 把计时器当前时间改成指定秒数 具体使用案例如下: local success = Timer:ChangeTimerTime(timerId, 60) GetTimerTime 参数及类型: id:number 计时器ID 返回值及类型: runtime:number / nil 当前秒数 该方法的其他说明: 获取计时器当前时间(正向/倒计时都适用) 具体使用案例如下: local time = Timer:GetTimerTime(timerId) ShowTimerWnd 参数及类型: playerids:number / table 玩家Uin或Uin数组 timerid:number 计时器ID title:string / nil 标题 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 给指定玩家显示计时器窗口(已显示则替换) 具体使用案例如下: local success = Timer:ShowTimerWnd(Player:GetHostUin(), timerId, "计时器标题") HideTimerWnd 参数及类型: playerids:number / table 玩家Uin或Uin数组 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 隐藏指定玩家的计时器窗口 具体使用案例如下: local success = Timer:HideTimerWnd(Player:GetHostUin()) 状态模块管理接口 Buff 具体函数名及描述如下: 序号 函数名 函数描述 1 AddBuff(...) 附加效果 2 RemoveBuff(...) 移除效果 3 ClearAllBuff(...) 清除所有效果 4 ClearAllBadBuff(...) 清除所有负面效果 5 ClearAllGoodBuff(...) 清除所有有益效果 6 HasBuff(...) 判断是否有效果 7 GetBuffList(...) 获取效果列表 8 GetBuffNumByBuffid(...) 获取效果数量 9 GetBuffLeftTime(...) 获取效果剩余时间 10 GetBuffDefName(...) 获取效果名称 11 GetBuffDefDesc(...) 获取效果描述 12 ReplaceBuff(...) 替换效果 AddBuff 参数及类型: objid:number 对象ID buffid:number / string 效果ID customticks:number 效果持续时间(-1表示默认配置,0表示无限) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 给对象附加指定效果 具体使用案例如下: Buff:AddBuff(playerId,4001, 20) RemoveBuff 参数及类型: objid:number 对象ID buffid:number / string 效果ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 给对象移除指定效果 具体使用案例如下: local isRemoveSuccess = Buff:RemoveBuff(playerId, "r5_7483041204932402166_23045") ClearAllBuff 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 给对象清除所有效果 具体使用案例如下: local isSuccess = Buff:ClearAllBuff(playerId) ClearAllBadBuff 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 为对象清除所有负面效果 具体使用案例如下: local isSuccess = Buff:ClearAllBadBuff(playerId) ClearAllGoodBuff 参数及类型: objid:number 对象ID 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 为对象清除所有有益效果 具体使用案例如下: local isSuccess = Buff:ClearAllGoodBuff(playerId) HasBuff 参数及类型: objid:number 对象ID buffid:number / string 效果ID 返回值及类型: bool:boolean 是否有该效果 该方法的其他说明: 判断对象身上是否有指定效果 具体使用案例如下: local isHasBuff = Buff:HasBuff(playerId, 4001) GetBuffList 参数及类型: objid:number 对象ID 返回值及类型: num:number 效果数量 ids:table 效果ID数组 该方法的其他说明: 获取对象身上所有效果的列表 具体使用案例如下: local num,arr = Buff:GetBuffList(playerId) print("num = ",num) print("arr = ",arr) GetBuffNumByBuffid 参数及类型: objid:number 对象ID buffid:number / string 效果ID 返回值及类型: num:number 效果数量 该方法的其他说明: 获取对象身上指定效果的数量 具体使用案例如下: local num = Buff:GetBuffNumByBuffid(playerId,4001) print("num = ",num) GetBuffLeftTime 参数及类型: objid:number 对象ID buffid:number / string 效果ID 返回值及类型: num:number 剩余时间(秒,0表示永久) 该方法的其他说明: 获取对象身上指定效果的剩余时间 具体使用案例如下: local time = Buff:GetBuffLeftTime(playerId, 4001) GetBuffDefName 参数及类型: buffid:number / string 效果ID 返回值及类型: name:string 效果名称 该方法的其他说明: 获取状态效果的名称 具体使用案例如下: local name = Buff:GetBuffDefName(4001) GetBuffDefDesc 参数及类型: buffid:number / string 效果ID 返回值及类型: value:string 状态效果描述 该方法的其他说明: 获取状态效果的描述 具体使用案例如下: local desc = Buff:GetBuffDefDesc(4001) ReplaceBuff 参数及类型: objid:number 对象ID buffsrc:number / string 源状态ID buffdst:number / string 目标状态ID customticks:number 持续时间(默认-1) 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 将对象身上的源状态替换为目标状态(保持数量一致) 具体使用案例如下: local isSuccess = Buff:ReplaceBuff(playerId, 4001, "r5_7483041204932402166_23045", 10) 消息模块管理接口 Chat 具体函数名及描述如下: 序号 函数名 函数描述 1 SendSystemMsg(...) 发送系统消息 SendSystemMsg 参数及类型: content:string 消息 playerID:number 玩家ID 0表示发给所有玩家 返回值及类型: ret:boolean 成功(true) 该方法的主要作用: 发送系统消息 具体使用案例如下: Chat:SendSystemMsg("系统消息") 普通变量数据管理接口 Data 具体函数名及描述如下: 序号 函数名 函数描述 1 SetValue(...) 设置变量值 2 GetValue(...) 获取变量值 3 IncreasesValue(...) 数值变量增加值 SetValue 参数及类型: varId:string 变量ID playerId:number 玩家ID(全局变量传nil) value:any设置的值 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置指定变量的值(支持全局变量或玩家变量) 具体使用案例如下: local result = Data:SetValue(varId, nil, 100) if result then print("设置数据成功") else print("设置数据失败") end GetValue 参数及类型: varId:string 变量ID playerId:number 玩家ID(全局变量传nil) 返回值及类型: value:any变量值;失败或无值返回nil 该方法的其他说明: 获取指定变量的值(支持全局变量或玩家变量) 具体使用案例如下: local value = Data:GetValue(varId) local valuePlayer = Data:GetValue(playerVarId, Player:GetHostUin()) IncreasesValue 参数及类型: varId:string 变量ID playerId:number 玩家ID(全局变量传nil) value:number 增加的量 返回值及类型: num:number 增加后的值;参数错误返回nil 该方法的其他说明: 对数值变量增加指定增量 具体使用案例如下: local isSuccess = Data:IncreasesValue(varId, nil, 1) 数组变量数据管理接口 Array 具体函数名及描述如下: 序号 函数名 函数描述 1 SetValue(...) 设置数组值 2 InsertValue(...) 插入数组值 3 ReplaceValue(...) 替换数组值 4 GetValue(...) 获取数组值 5 GetIndexByValue(...) 获取值对应的索引位置 6 RemoveByValue(...) 删除数组值 7 Remove(...) 删除数组值 8 Clear(...) 清空数组 9 Sort(...) 数组排序 10 GetSize(...) 获取数组长度 11 GetAllValue(...) 获取数组所有数据 12 GetMax(...) 获取数组最大值 13 GetMin(...) 获取数组最小值 14 RandomValue(...) 获取数组随机值 15 HasValue(...) 数组是否有值 16 HasValueByNo(...) 数组索引是否有值 17 InsertValues(...) 数组合并插入 18 RemoveByValues(...) 删除数组中相同值 19 GetCountByValue(...) 获取值出现次数 20 IncreasesValue(...) 增加数组值 SetValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any具体值 index:number 索引 返回值及类型: bool:boolean 是否设置成功 该方法的其他说明: 设置数组指定索引位置的值,索引值不允许大于数组当前大小 具体使用案例如下: -- 将数值组的索引1位置的值设置为44 Data.Array:SetValue(arrayId, nil, 44, 1) InsertValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any具体值 index:number 索引(可选,为空则添加到末尾) 返回值及类型: bool:boolean 是否插入成功 该方法的其他说明: 在数组指定索引位置插入数据,如果索引为空则添加到数组末尾 具体使用案例如下: -- 末尾插入数字5 Data.Array:InsertValue(arrayId, nil, 5) -- 在索引1位置插入数字4 Data.Array:InsertValue(arrayId, nil, 4, 1) ReplaceValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any新值 oldValue:any旧值 返回值及类型: bool:boolean 是否替换成功 该方法的其他说明: 在数组中查找并替换指定旧值为新值 具体使用案例如下: -- 将数值组的全部5替换为55 Data.Array:ReplaceValue(arrayId, nil, 55, 5) GetValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) index:number 索引 返回值及类型: value:any数组值(失败返回nil) 该方法的其他说明: 获取数组指定索引位置的值 具体使用案例如下: local value = Data.Array:GetValue(arrayId, nil, 1) GetIndexByValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any具体值 返回值及类型: num:number 索引位置(失败返回nil) 该方法的其他说明: 在数组中查找指定值的索引位置,如果有多个则返回第一个 具体使用案例如下: local indexByValue = Data.Array:GetIndexByValue(arrayId, nil, 5) RemoveByValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any具体值 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 删除数组中所有匹配指定值的元素 具体使用案例如下: Data.Array:RemoveByValue(arrayId, nil, 55) Remove 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) index:number 索引 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 删除数组指定索引位置的值 具体使用案例如下: local isSuccess = Data.Array:Remove(arrayId, nil, 1) Clear 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) 返回值及类型: bool:boolean 是否清空成功 该方法的其他说明: 清空数组中的所有数据 具体使用案例如下: Data.Array:Clear(arrayId) Sort 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) isUp:number 排序方式(SortType)SortType 返回值及类型: bool:boolean 是否排序成功 该方法的其他说明: 对数组进行排序,支持升序和降序 具体使用案例如下: -- 将数值组arrayId按升序排序 local isSuccess = Data.Array:Sort(arrayId, nil, SortType.Up) GetSize 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) 返回值及类型: num:number 数组元素数量(失败返回0) 该方法的其他说明: 获取数组的元素数量 具体使用案例如下: local num = Data.Array:GetSize(varId, playerId) GetAllValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) 返回值及类型: values:table 数组所有值(失败返回空表{}) 该方法的其他说明: 获取数组中的所有元素,返回完整的数组数据 具体使用案例如下: local allValues = Data.Array:GetAllValue(arrayId) local allValues2 = Data.Array:GetAllValue(arrayPlayerId, Player:GetHostUin()) GetMax 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) 返回值及类型: num:number 最大值(失败返回nil) 该方法的其他说明: 获取数组中的最大值,仅适用于数值类型数组 具体使用案例如下: local max = Data.Array:GetMax(arrayId) GetMin 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) 返回值及类型: num:number 最小值(失败返回nil) 该方法的其他说明: 获取数组中的最小值,仅适用于数值类型数组,其它类型的数组返回nil 具体使用案例如下: local min = Data.Array:GetMin(arrayId) RandomValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) 返回值及类型: value:any随机元素值(失败返回nil) 该方法的其他说明: 从数组中随机获取一个数值 具体使用案例如下: local randomValue = Data.Array:RandomValue(arrayId) HasValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any具体值 返回值及类型: bool:boolean 是否包含该值 该方法的其他说明: 检测数组中是否包含指定值 具体使用案例如下: local hasValue = Data.Array:HasValue(arrayId, nil, 5) HasValueByNo 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) ix:number 索引 返回值及类型: bool:boolean 该索引位置是否有值 该方法的其他说明: 检测数组指定索引位置是否有值 具体使用案例如下: local hasValueByNo = Data.Array:HasValueByNo(arrayId, nil, 1) InsertValues 参数及类型: varId1:string 目标数组ID playerId1:number 目标数组玩家uin(全局数组传nil) index:number 插入索引(可选,为空则添加到末尾) varId2:string 源数组ID playerId2:number 源数组玩家uin(全局数组传nil) 返回值及类型: bool:boolean 是否插入成功 该方法的其他说明: 将源数组的所有元素插入到目标数组的指定索引位置,如果索引为空则添加到末尾 具体使用案例如下: local size = Data.Array:GetSize(arrayId) RemoveByValues 参数及类型: varId1:string 目标数组ID playerId1:number 目标数组玩家uin(全局数组传nil) varId2:string 源数组ID playerId2:number 源数组玩家uin(全局数组传nil) 返回值及类型: bool:boolean 是否删除成功 该方法的其他说明: 根据目标数组的值删除源数组中出现的相同值 具体使用案例如下: -- 将玩家私有变量组arrayPlayerId的全部值从数值组arrayId中删除 Data.Array:RemoveByValues(arrayId, nil, arrayPlayerId, Player:GetHostUin()) GetCountByValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:any具体值 返回值及类型: num:number 值出现的次数(失败返回0) 该方法的其他说明: 统计数组中指定值出现的次数 具体使用案例如下: local countByValue = Data.Array:GetCountByValue(arrayId, nil, 5) IncreasesValue 参数及类型: varId:string 数组ID playerId:number 玩家uin(全局数组传nil) value:number 增加值 index:number 索引 返回值及类型: bool:boolean 是否增加成功 该方法的其他说明: 将数组指定索引位置的数值增加指定值,仅适用于数值类型数组,其它类型的数组返回false 具体使用案例如下: -- 将数值组的索引1位置的值增加10 local isSuccess = Data.Array:IncreasesValue(arrayId, nil, 10, 1) 二维表变量数据管理接口 Table 具体函数名及描述如下: 序号 函数名 函数描述 1 UpdateAllValue(...) 更新整张表 2 Clear(...) 清空表格 3 InsertValue(...) 在末尾插入一行数据 4 InsertValueByRow(...) 在指定行插入一行数据 5 GetValue(...) 获取表格数据 6 GetAllValue(...) 获取整张表 7 SetValue(...) 设置单元格或整行数据 8 RemoveRow(...) 删除行 9 GetValuesByCol(...) 获取指定列的所有行数据 10 GetRows(...) 获取行数 11 GetCols(...) 获取列数 12 GetColIndex(...) 获取列索引 13 GetRowIndex(...) 查找行号 14 GetRowIndexs(...) 查找全部行号 15 GetTableColKeys(...) 获取列名列表 UpdateAllValue 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) value:table 新表数据 返回值及类型: ret:boolean / nil 是否成功 该方法的其他说明: 更新整张表 具体使用案例如下: local ret = Data.Table:UpdateAllValue(varId, playerId, value) Clear 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 清空表格 具体使用案例如下: local isSuccess = Data.Table:Clear(varId) if isSuccess then print("清除表格成功") end local isSuccessPlayer = Data.Table:Clear(playerVarId, Player:GetHostUin()) if isSuccessPlayer then print("清除玩家表格成功") end InsertValue 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) ...:any列值依次传入(中间不可传 nil) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在表末尾追加一行,各列按参数从左到右依次填入不可传nil 具体使用案例如下: -- 传参规则(变量id , 玩家uin(全局传nil), 第一列填充数据, 第二列填充数据, 第三列填充数据,...) local isSuccess = Data.Table:InsertValue(varId, nil, 2, "aa", false) if isSuccess then print("插入表格值成功") end -- 传参规则(变量id , 玩家uin(全局传nil), 第一列填充数据, 第二列填充数据, 第三列填充数据,...) local isSuccessPlayer = Data.Table:InsertValue(playerVarId, Player:GetHostUin(), 2, "aaa", false) if isSuccessPlayer then print("插入玩家表格值成功") end InsertValueByRow 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) value:table 列值 row:number / nil 插入位置(nil 表示插到末尾) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在指定行号插入一行;列可用数字下标或列名做 key,如{[1] = xx,...} or {[key] = xx,...}。(列值不能传空表,至少要有一列数据) 具体使用案例如下: local data = { [1] = 2, -- 第一列填充的数据 [2] = "sss3", -- 第二列填充的数据 [3] = false, -- 第三列填充的数据 -- [4] = {x = 1,y = 7,z = 1}, -- 第四列填充的数据 -- 。。。。。 根据实际变量的列类型填充 } local isSuccess = Data.Table:InsertValueByRow(varId, nil, data, 1) -- 在第一行插入一行数据 if isSuccess then print("按行插入表格值成功") end local data2 = { [1] = 2, -- 第一列填充的数据 [2] = "sssa", -- 第二列填充的数据 [3] = false, -- 第三列填充的数据 -- [4] = {x = 1,y = 7,z = 1}, -- 第四列填充的数据 -- 。。。。。 根据实际变量的列类型填充 } local isSuccessPlayer = Data.Table:InsertValueByRow(playerVarId, Player:GetHostUin(), data2) -- 在最后一行插入一行数据 if isSuccessPlayer then print("按行插入玩家表格值成功") end GetValue 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) row:number 行号 col:number / string / nil 列号或列名(可省略) 返回值及类型: value:any / nil 单元格值或整行表 该方法的其他说明: 获取表格数据,不写 col 时返回整行(表)。 具体使用案例如下: local value = Data.Table:GetValue(varId, nil, 2, 2) if value then print("获取表格值", value) end local playerValue = Data.Table:GetValue(playerVarId, Player:GetHostUin(), 2, 1) if playerValue then print("获取玩家表格值", playerValue) end GetAllValue 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) 返回值及类型: value:table / nil 整张表数据 该方法的其他说明: 获取整张表数据 具体使用案例如下: -- 获取后的数据格式是 -- { -- {10, "RRR", 0},-- 第一行 -- {9, "sss", 0}, -- 第二行 -- {0, "fff", 0}, -- 第三行 -- } local allValues = Data.Table:GetAllValue(varId) if allValues then print("获取表格所有值", allValues) end local playerAllValues = Data.Table:GetAllValue(playerVarId, Player:GetHostUin()) if playerAllValues then print("获取玩家表格所有值", playerAllValues) end SetValue 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) row:number / table 行号或行号数组 col:number / string / nil 列号或列名(可省略) value:any新值或整行表 返回值及类型: ret:boolean / nil 是否成功 该方法的其他说明: 设置单元格或整行数据,不写 col 时可以把 value 当成整行一次性写入 具体使用案例如下: local ret = Data.Table:SetValue(varId, playerId, row, col, value) RemoveRow 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) row:number / table 行号或行号列表 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 按行号删除一行或多行数据 具体使用案例如下: local isSuccess = Data.Table:RemoveRow(varId, nil, 1) -- 移除第一行 if isSuccess then print("移除表格行成功") end local isSuccessPlayer = Data.Table:RemoveRow(playerVarId, Player:GetHostUin(), {2, 4}) -- 移除第二行和第四行 if isSuccessPlayer then print("移除玩家表格行成功") end GetValuesByCol 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) col:number / string 列号或列名 返回值及类型: ret:table / nil 该列所有行数据 该方法的其他说明: 获取指定列所有行的数据 具体使用案例如下: local values = Data.Table:GetValuesByCol(varId, nil, 1) if values then print("获取表格列值", values) end local playerValues = Data.Table:GetValuesByCol(playerVarId, Player:GetHostUin(), 2) if playerValues then print("获取玩家表格列值", playerValues) end GetRows 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) 返回值及类型: ret:number / nil 行数 该方法的其他说明: 获取当前表有多少行 具体使用案例如下: local rows = Data.Table:GetRows(varId) if rows then print("获取表格行数",rows) end local size = Data.Table:GetRows(playerVarId, Player:GetHostUin()) if size then print("获取玩家表格行数",size) end GetCols 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) 返回值及类型: ret:number / nil 列数 该方法的其他说明: 获取当前表有多少列 具体使用案例如下: local cols = Data.Table:GetCols(varId) if cols then print("获取表格列数",cols) end local num = Data.Table:GetCols(playerVarId, Player:GetHostUin()) if num then print("获取玩家表格列数",num) end GetColIndex 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) key:any列名或列 key 返回值及类型: ret:number / nil 列索引 该方法的其他说明: 根据列名或 key 查列号是第几列 具体使用案例如下: local colIndex = Data.Table:GetColIndex(varId, nil, "名称") if colIndex then print("获取表格列索引", colIndex) end local playerColIndex = Data.Table:GetColIndex(playerVarId, Player:GetHostUin(), "分数") if playerColIndex then print("获取玩家表格列索引", playerColIndex) end GetRowIndex 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) col:number / string 列号或列名 value:any要匹配的值 cmp:function / nil 比较函数(可为nil,function(a,value) return a == value end),默认判断值相等ction 返回值及类型: ret:number / nil 行号 该方法的其他说明: 在某一列里找第一个和 value 匹配的行号(默认同 ==,可自写比较函数) 具体使用案例如下: local rowIndex = Data.Table:GetRowIndex(varId, nil, 2, "sss") if rowIndex then print("获取表格行索引", rowIndex) end local playerRowIndex = Data.Table:GetRowIndex(playerVarId, Player:GetHostUin(), 3, true) if playerRowIndex then print("获取玩家表格行索引", playerRowIndex) end GetRowIndexs 参数及类型: varId:string 表ID playerId:number / nil 玩家Uin(全局表传nil) col:number / string 列号或列名 value:any要匹配的值 cmp:function / nil 比较函数(可为nil,function(a,value) return a == value end),默认判断值相等ction 返回值及类型: ret:table / nil 行号列表 该方法的其他说明: 在某一列里找出所有和 value 匹配的行号 具体使用案例如下: local rowIndexs = Data.Table:GetRowIndexs(varId, nil, 2, "sss") if rowIndexs then for key, value in pairs(rowIndexs) do print("获取表格行索引", value ) end end local playerRowIndexs = Data.Table:GetRowIndexs(playerVarId, Player:GetHostUin(), 3, false) if playerRowIndexs then for key, value in pairs(playerRowIndexs) do print("获取玩家表格行索引", value ) end end GetTableColKeys 参数及类型: varId:string 表ID 返回值及类型: ret:table / nil 列名列表,失败为 nil 该方法的其他说明: 获取整张表的列名列表 具体使用案例如下: local colKeys = Data.Table:GetTableColKeys(varId) 一维表变量数据管理接口 Map 具体函数名及描述如下: 序号 函数名 函数描述 1 SetValueAndCallBack(...) 回调设置KV数据 2 SetValueAndBlock(...) 阻塞设置KV数据 3 RemoveValueAndCallBack(...) 回调删除KV数据 4 RemoveValueAndBlock(...) 阻塞删除KV数据 5 UpdateValueAndCallback(...) 回调更新KV数据 6 GetValueAndCallBack(...) 回调获取KV数据 7 GetValueAndBlock(...) 阻塞获取KV数据 8 GetIndexValueAndCallback(...) 回调获取排行榜指定名次 9 GetIndexValueAndBlock(...) 阻塞获取排行榜指定名次 10 GetNumValuesAndCallback(...) 回调获取排行榜前N条 11 GetRangeValuesAndCallback(...) 回调获取排行榜分数区间 12 SetRankValueAndBlock(...) 阻塞设置排行榜分数 13 ClearData(...) 清空表数据 14 IncreasesRankValueAndBlock(...) 阻塞增加排行榜分数 15 IncreasesRankValueAndCallback(...) 回调增加排行榜分数 16 GetRangeIndexsAndCallback(...) 回调获取排行榜名次区间 SetValueAndCallBack 参数及类型: varId:string 变量表或排行榜ID playerId:number 玩家Uin key:string / number 键(数字会转字符串) value:string / number / boolean 值 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步设置KV并在完成后回调(键经校验;失败会走保护回调) 具体使用案例如下: local code1 = nil local function GlobalKVCallback(code,key,value) Chat:SendChat(table.concat({"SetValueAndCallBack code = ",tostring(code), "key = ",tostring(key), "value = ",value or ""}, " ")) if value and type(value) == "string" then --自定义table需要自己序列化结构 反序列化需要自己处理 value = json.decode(value) or value end print("code", code , "key", key, "value", value) if code == ErrorCode.OK then print("设置成功") end code1 = code end --不支持自定义table需要自己序列化结构 local globalvalue = json.encode({score = 100, name = Actor:GetNickName(uin) or "noname" }) local result = Data.Map:SetValueAndCallBack(GlobalKV, nil, "GlobalKV_Key1", globalvalue, GlobalKVCallback) print("result", result and "调用成功" or "调用失败") local code2 = nil local function GlobalRankCallback(code,key,value) Chat:SendChat(table.concat({"SetValueAndCallBack code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value)}, " ")) print("code", code , "key", key, "value", value) if code == ErrorCode.OK then print("设置成功") end code2 = code end local result2 = Data.Map:SetValueAndCallBack(GlobalRank, nil, "GlobalRank_Key1", 100, GlobalRankCallback) and result print("result", result2 and "调用成功" or "调用失败") local code3 = nil local function UserKVCallback(code,key,value) Chat:SendChat(table.concat({"SetValueAndCallBack code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value)}, " ")) if value and type(value) == "string" then value = json.decode(value) or value end print("code", code , "key", key, "value", value) if code == ErrorCode.OK then print("设置成功") end code3 = code end --不支持自定义table需要自己序列化结构 反序列化需要自己处理 local uservalue = json.encode({score = 100, name = Actor:GetNickName(uin) or "noname" }) local result3 = Data.Map:SetValueAndCallBack(UserKV, uin, "UserKV_Key1", uservalue, UserKVCallback) and result print("result", result3 and "调用成功" or "调用失败") self:ThreadWait(0.2) SetValueAndBlock 参数及类型: call_back:function内部结果回调 varId:string / userdata 变量表或临时Map playerId:number 玩家Uin key:string / number 键 value:string / number / boolean 值 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 同步路径设置KV 具体使用案例如下: --不支持自定义table需要自己序列化结构 local globalvalue = json.encode({score = 200, name = Actor:GetNickName(uin) }) local code1 , curkey1 , curvalue1 = Data.Map:SetValueAndBlock(GlobalKV, nil, "GlobalKV_Key2", globalvalue) print("code ", code1, "key ", curkey1, "value ", curvalue1) Chat:SendChat(table.concat({"SetValueAndBlock code = ",tostring(code1), "key = ",tostring(curkey1), "value = ",tostring(curvalue1)}, " ")) if code1 == ErrorCode.OK then print("设置成功") end local code2 , curkey2 , curvalue2 = Data.Map:SetValueAndBlock(GlobalRank, nil, "GlobalRank_Key2", 200) print("code ", code2, "key ", curkey2, "value ", curvalue2) Chat:SendChat(table.concat({"SetValueAndBlock code = ",tostring(code2), "key = ",tostring(curkey2), "value = ", tostring(curvalue2)}, " ")) if code2 == ErrorCode.OK then print("设置成功") end --不支持自定义table需要自己序列化结构 local uservalue = json.encode({score = 200, name = Actor:GetNickName(uin) }) local code3 , curkey3 , curvalue3 = Data.Map:SetValueAndBlock(UserKV, uin, "UserKV_Key2", uservalue) print("code ", code3, "key ", curkey3, "value ", curvalue3) Chat:SendChat(table.concat({"SetValueAndBlock code = ",tostring(code3), "key = ",tostring(curkey3), "value = ", tostring(curvalue3) }, " ")) if code3 == ErrorCode.OK then print("设置成功") end RemoveValueAndCallBack 参数及类型: varId:string / userdata 变量表或临时Map playerId:number 玩家Uin key:string / number 键 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步删除指定键并在完成后回调 具体使用案例如下: local code1 = nil local function GlobalKVCallback(code,key) Chat:SendChat(table.concat({"RemoveValueAndCallBack code = ",tostring(code), "key = ",tostring(key)}, " ")) print("code", code , "key", key) if code == ErrorCode.OK then print("设置成功") end code1 = code end local result = Data.Map:RemoveValueAndCallBack(GlobalKV, nil, "GlobalKV_Key1", GlobalKVCallback) if result then print("调用成功") end local code2 = nil local function GlobalRankCallback(code,key) Chat:SendChat(table.concat({"RemoveValueAndCallBack code = ",tostring(code), "key = ",tostring(key)}, " ")) print("code", code , "key", key) if code == ErrorCode.OK then print("设置成功") end code2 = code end local result2 = Data.Map:RemoveValueAndCallBack(GlobalRank, nil, "GlobalRank_Key1", GlobalRankCallback) local code3 = nil local function UserKVCallback(code,key) Chat:SendChat(table.concat({"RemoveValueAndCallBack code = ",tostring(code), "key = ",tostring(key)}, " ")) print("code", code , "key", key) if code == ErrorCode.OK then print("设置成功") end code3 = code end local result3 = Data.Map:RemoveValueAndCallBack(UserKV, uin, "UserKV_Key1", UserKVCallback) RemoveValueAndBlock 参数及类型: call_back:function内部结果回调 varId:string / userdata 变量表或临时Map playerId:number 玩家Uin key:string / number 键 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 同步路径删除指定键 具体使用案例如下: local code1 , curkey1 = Data.Map:RemoveValueAndBlock(GlobalKV, nil, "GlobalKV_Key2") Chat:SendChat(table.concat({"RemoveValueAndBlock code = ",tostring(code1), "key = ",tostring(curkey1)}, " ")) print("code ", code1, "key ", curkey1) if code1 == 0 then print("设置成功") end local code2 , curkey2 = Data.Map:RemoveValueAndBlock(GlobalRank, nil, "GlobalRank_Key2") Chat:SendChat(table.concat({"RemoveValueAndBlock code = ",tostring(code2), "key = ",tostring(curkey2)}, " ")) print("code ", code2, "key ", curkey2) if code2 == 0 then print("设置成功") end local code3 , curkey3 = Data.Map:RemoveValueAndBlock(UserKV, uin, "UserKV_Key2") Chat:SendChat(table.concat({"RemoveValueAndBlock code = ",tostring(code3), "key = ",tostring(curkey3)}, " ")) print("code ", code3, "key ", curkey3) if code3 == 0 then print("设置成功") end UpdateValueAndCallback 参数及类型: varId:string 变量表ID playerId:number 玩家Uin key:string / number 键 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步触发KV值更新逻辑(全局云KV可用;由底层在回调中带回新值) 具体使用案例如下: local function GlobalKVCallback(code,key,value) Chat:SendChat(table.concat({"UpdateValueAndCallback code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value)}, " ")) value = json.decode(value) or value print("code", code , "key", key, "value", value) if code == ErrorCode.KV_UPDATE_SET then -- 需要返回更新设置的最终值 value = value or {} value.updatevalue = 999 return json.encode(value) -- 需要返回更新设置的最终值 并且序列化结构 elseif code == ErrorCode.KV_UPDATE_GET then print("获取到的当前最新的值:", value) elseif code == ErrorCode.OK then print("更新完成") else print("更新失败") end end local result = Data.Map:UpdateValueAndCallback(GlobalKV, nil, "GlobalKV_Key2", GlobalKVCallback) if result then print("调用成功") else print("调用失败") end GetValueAndCallBack 参数及类型: varId:string / userdata 变量表或临时Map playerId:number 玩家Uin key:string / number 键 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步读取某键的值并在回调中返回 具体使用案例如下: local function GlobalKVCallback(code,key,value) Chat:SendChat(table.concat({"GetValueAndCallBack code = ",tostring(code), "key = ",tostring(key), "value = ", tostring(value)}, " ")) value = json.decode(value) or value print("code", code , "key", key, "value", value) if code == ErrorCode.OK then print("获取成功") v1 = value elseif code == ErrorCode.KV_OP_NO_VAL then print("数据不存在") else print("获取失败") end end local result = Data.Map:GetValueAndCallBack(GlobalKV, nil, "GlobalKV_Key1", GlobalKVCallback) local function GlobalRankCallback(code,key,value,index,ascending,extendinfo) Chat:SendChat(table.concat({"GetValueAndCallBack code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value), "index", index, "ascending", tostring(ascending), "extendinfo",tostring(extendinfo) or "" }, " ")) print("code", code , "key", key, "value", value, "index", index, "ascending", ascending, "extendinfo", extendinfo) -- 获取排行榜数据 不一定有value之后的参数 注意判断 if code == ErrorCode.OK then print("获取成功") v2 = value elseif code == ErrorCode.KV_OP_NO_VAL then print("数据不存在") else print("获取失败") end end local result2 = Data.Map:GetValueAndCallBack(GlobalRank, nil, "GlobalRank_Key1", GlobalRankCallback) local function UserKVCallback(code,key,value) Chat:SendChat(table.concat({"GetValueAndCallBack code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value)}, " ")) value = json.decode(value) or value print("code", code , "key", key, "value", value) if code == ErrorCode.OK then print("获取成功") v3 = value elseif code == ErrorCode.KV_OP_NO_VAL then print("数据不存在") else print("获取失败") end end local result3 = Data.Map:GetValueAndCallBack(UserKV, uin, "UserKV_Key1", UserKVCallback) GetValueAndBlock 参数及类型: call_back:function内部结果回调 varId:string / userdata 变量表或临时Map playerId:number 玩家Uin key:string / number 键 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 同步路径读取某键 具体使用案例如下: local code1 , curkey1 , curvalue1 = Data.Map:GetValueAndBlock(GlobalKV, nil, "GlobalKV_Key2") print("code", code1 , "key", curkey1, "value", curvalue1) Chat:SendChat(table.concat({"GetValueAndBlock code = ",tostring(code1), "key = ",tostring(curkey1), "value = ",tostring(curvalue1)}, " ")) curvalue1 = json.decode(curvalue1) or curvalue1 if code1 == ErrorCode.OK then print("获取成功") elseif code1 == ErrorCode.KV_OP_NO_VAL then print("数据不存在") else print("获取失败") end local code2 , curkey2 , curvalue2,index,ascending,extendinfo = Data.Map:GetValueAndBlock(GlobalRank, nil, "GlobalRank_Key2") Chat:SendChat(table.concat({"GetValueAndBlock code = ",tostring(code2), "key = ",tostring(curkey2), "value = ",tostring(curvalue2), "index =", tostring(index), "ascending =", tostring(ascending), "extendinfo =", tostring(extendinfo) or "" }, " ")) curvalue2 = json.decode(curvalue2) or curvalue2 extendinfo = json.decode(extendinfo) or extendinfo -- 获取排行榜数据 不一定有value之后的参数 注意判断 if code2 == ErrorCode.OK then print("code", code2 , "key", curkey2, "value", curvalue2, "index", index, "ascending", ascending, "extendinfo", extendinfo) elseif code2 == ErrorCode.KV_OP_NO_VAL then print("数据不存在") else print("获取失败") end local code3 , curkey3 , curvalue3 = Data.Map:GetValueAndBlock(UserKV, uin, "UserKV_Key2") Chat:SendChat(table.concat({"GetValueAndBlock code = ",tostring(code3), "key = ",tostring(curkey3), "value = ",tostring(curvalue3)}, " ")) curvalue3 = json.decode(curvalue3) or curvalue3 if code3 == ErrorCode.OK then print("code", code3 , "key", curkey3, "value", curvalue3) elseif code3 == ErrorCode.KV_OP_NO_VAL then print("数据不存在") else print("获取失败") end GetIndexValueAndCallback 参数及类型: varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin index:number 名次索引 ascending:bool是否升序 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步按排名索引取排行榜项(升序/降序) 具体使用案例如下: local function GlobalRankCallback(code,key,value,index,ascending,extendinfo) Chat:SendChat(table.concat({"GetIndexValueAndCallback code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value), "index =", tostring(index), "ascending =", tostring(ascending), "extendinfo =", json.encode(extendinfo) or tostring(extendinfo)}, " ")) print("code", code , "key", key, "value", value, "index", index, "ascending", ascending, "extendinfo", extendinfo) if code == ErrorCode.OK then print("获取成功") else --获取失败 参数向前移动 print("获取失败") end end --获取降序排列的第一个数据 local result = Data.Map:GetIndexValueAndCallback(GlobalRank, nil, 1,false, GlobalRankCallback) if result then print("调用成功") end GetIndexValueAndBlock 参数及类型: call_back:function内部结果回调 varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin index:number 名次索引 ascending:bool是否升序 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 同步路径按排名索引取排行榜项 具体使用案例如下: --获取升序排列的第一个数据 local code1 , curkey1 , curvalue1,index,ascending,extendinfo = Data.Map:GetIndexValueAndBlock(GlobalRank, nil, 1,true) Chat:SendChat(table.concat({"GetIndexValueAndBlock code = ",tostring(code1), "key = ",tostring(curkey1), "value = ",tostring(curvalue1), "index =", tostring(index), "ascending =", tostring(ascending), "extendinfo =", json.encode(extendinfo) or tostring(extendinfo)}, " ")) print("code", code1 , "key", curkey1, "value", curvalue1, "index", index, "ascending", ascending, "extendinfo", extendinfo) if code1 == ErrorCode.OK then print("获取成功") else --获取失败 参数向前移动 print("获取失败") end GetNumValuesAndCallback 参数及类型: varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin num:number 条数 ascending:bool是否升序 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步取排行榜前N条 具体使用案例如下: local function GlobalRankCallback(code,num,ascending,datas) Chat:SendChat(table.concat({"GetNumValuesAndCallback code = ",tostring(code), "num =", tostring(num), "ascending =", tostring(ascending), "datas =", json.encode(datas) or tostring(datas)}, " ")) print("code", code , "num", num, "ascending", ascending, datas) if code == ErrorCode.OK then for i = 1, #datas do print("key", datas[i].k, "value", datas[i].v , "extendinfo", datas[i].info and json.encode(datas[i].info) or "" ) end print("获取成功") else print("获取失败") end end --获取降序排列的前20个数据 local result = Data.Map:GetNumValuesAndCallback(GlobalRank, nil,20,false,GlobalRankCallback) GetRangeValuesAndCallback 参数及类型: varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin min:number 最小分数 max:number 最大分数 ascending:bool是否升序 pagesize:number 单页条数 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步按分数区间分页拉取排行榜数据 具体使用案例如下: local function GlobalRankCallback(code,min,max,ascending,datas) Chat:SendChat(table.concat({"GetRangeValuesAndCallback code = ",tostring(code), "min =", tostring(min), "max =", tostring(max), "ascending =", tostring(ascending), "datas =", json.encode(datas) or tostring(datas)}, " ")) print("code", code , "min", min, "max", max, "ascending", ascending, datas) if code == ErrorCode.OK then for i = 1, #datas do print("key", datas[i].k, "value", datas[i].v , "extendinfo", datas[i].info and json.encode(datas[i].info) or "" ) end print("获取成功") else print("获取失败") end end --获取排行榜中降序排列值为1-1000名之间的数据,每次最大返回50条 local result = Data.Map:GetRangeValuesAndCallback(GlobalRank, nil,1,1000,true,50,GlobalRankCallback) SetRankValueAndBlock 参数及类型: call_back:function内部结果回调 varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin key:string / number 键 value:number 分数 extendvalue:string / number / boolean / nil 扩展信息(仅更新不删,删请用Remove接口) 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 同步路径写入排行榜分数与扩展字段 具体使用案例如下: local uin = Player:GetHostUin() local extendinfo = { uin = uin, name = Actor:GetNickName(uin), icon = CustomUI:GetRoleIcon(uin), } -- extendinfo 如果不需要更新内容,可以传nil , 如果需要更新内容,则传入完整的信息 extendinfo = json.encode(extendinfo) -- 自定义table需要自己序列化结构 local code,key,curvalue = Data.Map:SetRankValueAndBlock(GlobalRank, nil, "GlobalRank_Key3", 200, extendinfo) Chat:SendChat(table.concat({"SetRankValueAndBlock code = ",tostring(code), "key = ",tostring(key), "curvalue = ",json.encode(curvalue) or tostring(curvalue)}, " ")) print("code", code, "key", key, "curvalue", curvalue) if code == ErrorCode.OK then print("调用成功") end ClearData 参数及类型: varId:string / userdata 变量表或临时Map playerId:number 玩家Uin 返回值及类型: ret:bool / nil 是否成功 该方法的其他说明: 清空整张KV表或排行榜数据 具体使用案例如下: local result = Data.Map:ClearData(GlobalKV, nil) Chat:SendChat(table.concat({"ClearData result = ",tostring(result)}, " ")) if result then print("清理成功") end result = Data.Map:ClearData(GlobalRank, nil) and result Chat:SendChat(table.concat({"ClearData result = ",tostring(result)}, " ")) if result then print("清理成功") end result = Data.Map:ClearData(UserKV, uin) and result Chat:SendChat(table.concat({"ClearData result = ",tostring(result)}, " ")) if result then print("清理成功") end IncreasesRankValueAndBlock 参数及类型: call_back:function内部结果回调 varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin key:string / number 键 value:number 增量 extendvalue:string / number / boolean / nil 扩展信息 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 同步路径对排行榜分数做增量累加 具体使用案例如下: local extendinfo = { uin = uin, name = Actor:GetNickName(uin), icon = CustomUI:GetRoleIcon(uin), } -- extendinfo 如果不需要更新内容,可以传nil , 如果需要更新内容,则传入完整的信息 extendinfo = json.encode(extendinfo) -- 自定义table需要自己序列化结构 --全局排行榜 GlobalRank_Key1 的key 增加值 ,extendinfo可不传,传入则更新extendinfo local code,key = Data.Map:IncreasesRankValueAndBlock(GlobalRank, nil, "GlobalRank_Key2", 2, extendinfo) print("key", key) Chat:SendChat(table.concat({"IncreasesRankValueAndBlock code = ",tostring(code), "key = ",tostring(key)}, " ")) if code == ErrorCode.OK then print("增加成功",key) else print("增加失败",key) -- 找不到对应的key也会失败 end IncreasesRankValueAndCallback 参数及类型: varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin key:string / number 键 value:number 增量 extendvalue:string / number / boolean / nil 扩展信息 call_back:function完成回调 返回值及类型: ret:bool是否已投递处理 该方法的其他说明: 异步对排行榜分数做增量累加 具体使用案例如下: local result = true local function GlobalRankCallback(code,key) Chat:SendChat(table.concat({"IncreasesRankValueAndCallback code = ",tostring(code), "key = ",tostring(key)}, " ")) print("code", code , "key", key) if code == ErrorCode.OK then print("增加成功") else print("增加失败") end end local extendinfo = { uin = uin, name = Actor:GetNickName(uin), icon = CustomUI:GetRoleIcon(uin), } -- extendinfo 如果不需要更新内容,可以传nil , 如果需要更新内容,则传入完整的信息 extendinfo = json.encode(extendinfo) -- 自定义table需要自己序列化结构 --全局排行榜 GlobalRank_Key1 的key 增加值 ,extendinfo可不传,传入则更新extendinfo result = Data.Map:IncreasesRankValueAndCallback(GlobalRank, nil, "GlobalRank_Key1", 2, extendinfo, GlobalRankCallback) and result print("result", result and "调用成功" or "调用失败") GetRangeIndexsAndCallback 参数及类型: varId:string / userdata 排行榜变量或临时Map playerId:number 玩家Uin min:number 最前名次 max:number 最后名次 ascending:bool是否升序 callback:function完成回调 返回值及类型: ret:bool是否成功发起调用 该方法的其他说明: 异步按名次区间拉取排行榜数据 具体使用案例如下: local function GlobalRankCallback(code,min,max,ascending,datas) Chat:SendChat(table.concat({"GetRangeIndexsAndCallback code = ",tostring(code), "min =", tostring(min), "max =", tostring(max), "ascending =", tostring(ascending), "datas =", json.encode(datas) or tostring(datas)}, " ")) print("code", code , "min", min, "max", max, "ascending", ascending, datas) if code == ErrorCode.OK then for i = 1, #datas do print("key", datas[i].k, "value", datas[i].v , "extendinfo", datas[i].info and json.encode(datas[i].info) or "" ) end print("获取成功") else print("获取失败") end end --获取排行榜中降序排名为1-3名之间的数据,每次最大返回50条 local result = Data.Map:GetRangeIndexsAndCallback(GlobalRank, nil,1,3,true,GlobalRankCallback) 世界模块管理接口 World 具体函数名及描述如下: 序号 函数名 函数描述 1 StopParticleOnPos(...) 停止指定位置的粒子特效 2 SetParticleTransform(...) 设置粒子变换 3 PlayParticle(...) 播放粒子特效 4 GetLightByPos(...) 获取光照强度 5 SpawnCreature(...) 生成生物 6 DespawnActor(...) 移除生物 7 GetPlayerTotal(...) 获取玩家数量 8 GetAllPlayers(...) 获取全部玩家对象ID列表 9 GetSpawnPoint(...) 获取世界默认出生点 10 FindCanSpawnMobPosList(...) 查找附近可刷怪位置列表 11 FindNearestPlayerByPos(...) 获取离指定位置最近的玩家 12 PlaySoundEffectOnPos(...) 播放音效 13 StopSoundEffectOnPos(...) 停止指定位置上的音效 14 PauseSoundEffectOnPos(...) 暂停/恢复音效 15 IsDaytime(...) 是否白天 16 SetHours(...) 设置时间(小时) 17 GetHours(...) 获取时间(小时) 18 GetDay(...) 获取天数 19 SetGravity(...) 设置重力 20 AddGravity(...) 增加重力 21 GetGravity(...) 获取重力 22 IsChunkLoaded(...) 区块是否加载 23 CanMobSpawnOnPosXZ(...) 获取可刷怪的Y坐标 24 GetHostWorldId(...) 获取主机星球ID 25 SpawnProjectile(...) 生成投掷物 26 SpawnProjectileByDir(...) 按方向生成投掷物 27 GetBiomeType(...) 获取地形类型 28 GetBiomeGroup(...) 获取地形组类型 29 FindEcosystem(...) 查找地形位置 30 PixelMapAddMarker(...) 地图增加标记 31 PixelMapRefreshMarker(...) 地图刷新标记 32 PixelMapDelMarker(...) 地图删除标记 33 PixelMapAddTexture(...) 增加地图纹理标签 34 PixelMapRefreshTexture(...) 刷新地图纹理标签 35 PixelMapDelTexture(...) 地图删除纹理标签 36 SetSkyBoxColorAnim(...) 设置天空盒颜色(动效) 37 SetTimeVanishingSpeed(...) 设置时间流逝速度 38 SetSkyBoxTemplate(...) 设置天空盒模板 39 SetSkyBoxMaps(...) 设置天空盒贴图 40 SetSkyBoxColor(...) 设置天空盒颜色 41 SetSkyBoxAttr(...) 设置天空盒属性 42 SetSkyBoxAttrWithNoTime(...) 设置天空盒属性(不带时间) 43 SetSkyBoxFilter(...) 设置天空盒滤镜 44 SetSkyBoxSwitch(...) 设置天空盒开关 45 SetSkyBoxMapsAnim(...) 设置天空盒贴图(动效) 46 SetSkyBoxFilterAnim(...) 设置天空盒滤镜(动效) 47 GetLocalDate(...) 获取本地时间字段 48 GetLocalDateString(...) 获取本地时间字符串 49 GetServerDate(...) 获取服务器时间字段 50 GetDateFromTime(...) 时间戳转时间字段 51 GetDirRayDetection(...) 方向射线检测 52 GetRayLength(...) 计算射线长度 53 GetRayBlock(...) 射线命中方块 54 CalcDirectionByYawDirection(...) 局部方向转世界方向(向量) 55 CalcDirectionByYawAngle(...) 局部方向转世界方向(角度) 56 CalcDirectionByCoord(...) 坐标转表 57 CalcDirectionByAngle(...) 角度转方向向量 58 RandomParticleEffectID(...) 随机特效ID 59 RandomSoundID(...) 随机音效ID 60 CalcDistance(...) 计算两点距离 61 SetGroupWeather(...) 设置天气组天气 62 RandomWeatherID(...) 随机天气ID 63 GetGroupWeather(...) 获取天气组天气 64 SetSpawnPoint(...) 设置出生点 65 CalcDirectionByPos2Pos(...) 两点单位方向 66 SetWorldCreateMobRule(...) 设置世界生物生成规则 67 GetWorldCreateMobRule(...) 获取生物生成密度 68 SetMobSpawnDensity(...) 69 SetPlantGrowRate(...) 设置农作物生长倍率 70 SetInnerViewEnable(...) 设置内置界面启用 71 SetMidJoin(...) 设置中途加入开关 72 GetGameMode(...) 获取游戏模式 73 SetLightByPos(...) 设置方块光照 StopParticleOnPos 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z particleId:number / string 特效ID或路径 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 停止指定位置的粒子特效(支持传特效ID或路径) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local result = World:StopParticleOnPos(x, y, z, 1001, WorldId) SetParticleTransform 参数及类型: pos:table 位置(米) particleIdArg:number / string / table 特效ID/路径或数组 offset:table / nil 偏移(米) rot:table / nil 旋转 scale:table / nil 缩放 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 调整指定位置的粒子特效偏移/旋转/缩放(支持单个或多个特效) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) -- 设置效果缩放2倍 local result = World:SetParticleTransform({x = x, y = y, z = z}, 1001, nil, nil, {x = 2, y = 2, z = 2}, WorldId) PlayParticle 参数及类型: pos:table 位置(米) particleIdArg:number / string / table 特效ID/路径或数组 ptimeArg:number / nil 持续秒数 offset:table / nil 偏移(米) rot:table / nil 旋转 scale:table / nil 缩放 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在指定位置播放粒子特效(支持单个或多个特效) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local result = World:PlayParticle({x = x, y = y, z = z}, 1001, 2, WorldId) GetLightByPos 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z worldId:number / nil 星球ID 返回值及类型: lv:number 光照强度(0~16),失败为-1 该方法的其他说明: 获取指定位置的光照强度 具体使用案例如下: local light = World:GetLightByPos(x, y, z, WorldId) print("获取光照强度 ", light) SpawnCreature 参数及类型: x:number 坐标x y:number 坐标y z:number 坐标z mobid:number / string 生物类型 num:number / nil 数量 trigger:bool / nil 是否触发事件 worldId:number / nil 星球ID 返回值及类型: objs:table / nil 生成的生物ID数组 该方法的其他说明: 在指定位置生成生物(怪物/NPC/动物等) 具体使用案例如下: local x1, y1, z1 = Actor:GetPosition(Player:GetHostUin()) local creatures = World:SpawnCreature(x1 + 5, y1 + 1, z1, 3400, 1, true, WorldId) DespawnActor 参数及类型: objid:number 对象objID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 移除一个生物,如果是骑乘的生物则会先把骑乘关系处理掉再移除生物。(玩家不允许移除) 具体使用案例如下: local result = World:DespawnActor(creatureId) GetPlayerTotal 参数及类型: alive:number / nil 玩家状态(0阵亡 1存活 -1全部) 返回值及类型: ret:number 玩家数量,失败为-1 该方法的其他说明: 获取当前玩家数量(可按存活/死亡筛选) 具体使用案例如下: local total = World:GetPlayerTotal() GetAllPlayers 参数及类型: alive:number / nil 玩家状态(0阵亡 1存活 -1全部) 返回值及类型: list:table / nil 玩家objid数组 该方法的其他说明: 获取当前地图中全部玩家对象ID列表(可按存活/死亡筛选) 具体使用案例如下: local players = World:GetAllPlayers() GetSpawnPoint 参数及类型: worldId:number / nil 星球ID(nil或-1表示当前星球) 返回值及类型: x:number 坐标x y:number 坐标y z:number 坐标z 该方法的其他说明: 取当前地图/世界配置的默认出生点 具体使用案例如下: local x, y, z = World:GetSpawnPoint() FindCanSpawnMobPosList 参数及类型: centerX:number 中心x centerY:number 中心y centerZ:number 中心z radius:number 半径 includeCenterPos:bool / nil 是否包含中心点 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: posList:table / nil 位置列表 该方法的其他说明: 获取指定中心点周围,以设置的半径为范围的「可刷怪」位置列表,可选是否把中心点也算进结果里 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local posList = World:FindCanSpawnMobPosList(x, y, z, 10, true, WorldId) if posList then for i, v in ipairs(posList) do print("可以创建生物位置", v.x, v.y, v.z) end end FindNearestPlayerByPos 参数及类型: posX:number x posY:number y posZ:number z worldId:number / nil 星球ID(默认当前主机星球) 返回值及类型: objid:number / nil 玩家ID 该方法的其他说明: 以指定位置为中心、在半径范围内查找玩家,返回最近的玩家ID 具体使用案例如下: local playerId = World:FindNearestPlayerByPos(x, y, z, WorldId) PlaySoundEffectOnPos 参数及类型: pos:table 位置 soundId:number 音效ID volume:number 音量(0~100) pitch:number / nil 音调 isLoop:bool是否循环 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在指定位置播放音效(可设置音量/音调/是否循环) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local result = World:PlaySoundEffectOnPos({x = x, y = y, z = z}, 10946, 100, 1, false, WorldId) StopSoundEffectOnPos 参数及类型: pos:table 位置 soundId:number 音效ID(-1表示全部) worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 停止指定位置上的音效(传 -1 表示停止该位置所有音效) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local result = World:StopSoundEffectOnPos({x = x, y = y, z = z}, 10946, WorldId) PauseSoundEffectOnPos 参数及类型: pos:table 位置 soundId:number 音效ID(-1表示全部) pause:boolean true暂停 false恢复 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 暂停或恢复指定位置的音效(传 -1 表示该位置所有音效) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local result = World:PauseSoundEffectOnPos({x = x, y = y, z = z}, 10946, true, WorldId) IsDaytime 参数及类型: 无 返回值及类型: ret:boolean 是否白天 该方法的其他说明: 当前是否为白天 具体使用案例如下: local isDaytime = World:IsDaytime() SetHours 参数及类型: time:number 小时(0~24) 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 把世界时间设置到某个小时(0~24) 具体使用案例如下: local result = World:SetHours(2) GetHours 参数及类型: 无 返回值及类型: curHour:number / nil 小时 该方法的其他说明: 获取当前世界时间(小时) 具体使用案例如下: local hours = World:GetHours() GetDay 参数及类型: 无 返回值及类型: ret:number / nil 天数 该方法的其他说明: 获取当前世界过了多少天 具体使用案例如下: local day = World:GetDay() SetGravity 参数及类型: value:number 重力值 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 设置当前星球的重力倍数(目前只支持当前星球) 具体使用案例如下: local result = World:SetGravity(12) AddGravity 参数及类型: value:number 增加量 返回值及类型: ret:boolean 是否成功 该方法的其他说明: 在当前重力基础上增加一个值 具体使用案例如下: local ret = World:AddGravity(value, worldId) GetGravity 参数及类型: worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: value:number / nil 重力值 该方法的其他说明: 获取当前星球重力值 具体使用案例如下: local gravity = World:GetGravity() IsChunkLoaded 参数及类型: x:number x坐标 z:number z坐标 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否已加载 该方法的其他说明: 判断某个区块是否已加载 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local worldId = World:GetHostWorldId() local result = World:IsChunkLoaded(x, z, worldId) CanMobSpawnOnPosXZ 参数及类型: x:number x y:number y z:number z worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: posy:number 查到的可刷怪落脚 Y(-1 表示未找到) 该方法的其他说明: 在指定的 x、z 处从高度 y 向上查找,得到第一个可落脚刷怪的高度,找不到合适位置返回 -1。 具体使用案例如下: local canSpawnY = World:CanMobSpawnOnPosXZ(x,y, z, WorldId) if canSpawnY and canSpawnY > 0 then print("可以创建生物位置", x, canSpawnY, z) end GetHostWorldId 参数及类型: 无 返回值及类型: worldId:number 星球ID 该方法的其他说明: 获取主机所在星球ID 具体使用案例如下: local worldId = World:GetHostWorldId() print("获取主机世界id ", worldId) SpawnProjectile 参数及类型: objid:number / nil 发射者objid itemid:number / string 道具ID或资源ID x:number 起点x y:number 起点y z:number 起点z dstx:number 目标x dsty:number 目标y dstz:number 目标z speed:number / nil 速度 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: objid:number / nil 投掷物objid 该方法的其他说明: 在起点生成一个投掷物并朝目标点飞行(可指定速度) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) -- 生成石箭往x+20,y+5,z方向射出, 速度10 local projectile = World:SpawnProjectile(Player:GetHostUin(), 12051, x, y, z, x + 20, y + 5, z, 10, WorldId) SpawnProjectileByDir 参数及类型: objid:number 发射者objid itemid:number / string 道具类型/资源ID x|y|z:number 生成位置坐标 dirx|diry|dirz:number 飞行方向分量 speed:number 速度 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / nil 投掷物ID(失败返回nil) 该方法的其他说明: 在指定位置生成投掷物,按指定方向飞行(可指定速度) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local projectile = World:SpawnProjectileByDir(Player:GetHostUin(), 12051, x, y, z, 20, 5, 20, 10, WorldId) GetBiomeType 参数及类型: posX|posZ:number 位置坐标 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / nil 地形类型(BiomeType) 该方法的其他说明: 获取指定位置的地形类型;取不到返回 nil 具体使用案例如下: local biomeType = World:GetBiomeType(x, y, WorldId) if biomeType == BiomeType.GrassLand then print("草原") elseif biomeType == BiomeType.Forest then print("森林") end GetBiomeGroup 参数及类型: posX|posZ:number 位置坐标 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / nil 地形组类型(WeatherGroup) 该方法的其他说明: 获取指定位置的地形组类型;取不到返回 nil 具体使用案例如下: local group = World:GetBiomeGroup(x, z, WorldId) FindEcosystem 参数及类型: x|y|z:number 查找起点位置坐标 biomeType:number 地形类型(BiomeType)BiomeType radius:number / nil 查找半径 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: retX|retY|retZ:number / nil 找到的地形位置坐标(失败返回nil) 该方法的其他说明: 从起点附近搜索指定地形类型,找到则返回目标坐标,找不到返回 nil,radius是 (2radius + 1) ^ 2个chunk, radius = 4就需要遍历81个chunk,8116*16个方块 具体使用案例如下: local x,y,z = World:FindEcosystem(centerX, centerY, centerZ, BiomeType.GrassLand, 50) if x and y and z then print("找到草原", x, y, z) end PixelMapAddMarker 参数及类型: uin:number 玩家ID id:string 标记ID params:table 标记参数 worldid:number / nil 星球ID 返回值及类型: ret:boolean 是否添加成功 该方法的其他说明: 在地图上添加一个开发者标记点(查看下案例,了解params结构) 具体使用案例如下: -- 参数说明 local x, y, z = Actor:GetPosition(Player:GetHostUin()) local params = { posX = x,--(必填) posZ = z,--(必填) -- name ="测试名", --名字 iconName = "0_10074", --图片路径(必填) -- zoomMin = 0, --最小scale倍率 -- zoomMax = 100, --最大scale倍率 -- isTrace = false, --是否追踪 -- isRadarTrace = false, --雷达上是否追踪 -- appearInBlockFog = true, -- -- isCanUI = false, --是否能点击 -- desc = "", --描述 -- level = 4, --UI层级 } local result = World:PixelMapAddMarker(Player:GetHostUin(), "markId_123", params) PixelMapRefreshMarker 参数及类型: uin:number 玩家ID id:string 标记ID params:table 标记参数(提供改变的参数即可) worldid:number / nil 星球ID 返回值及类型: ret:boolean 是否刷新成功 该方法的其他说明: 刷新地图上的开发者标记点(params 只需提供要变更的字段) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local params = { posX = x, posZ = z, -- name = defaultCustomMarkerConfig[1].name, 名字 iconName = "0_10103", --图片ID -- zoomMin = 0, 最小scale倍率 -- zoomMax = 100, 最大scale倍率 -- isTrace = false, 是否追踪 -- isRadarTrace = false, 雷达上是否追踪 -- appearInBlockFog = true, -- isCanUI = false, 是否能点击 -- desc = "", 描述 -- level = 4, UI层级 } local result = World:PixelMapRefreshMarker(Player:GetHostUin(), "markId_123", params) PixelMapDelMarker 参数及类型: uin:number 玩家ID id:string 标记ID worldid:number / nil 星球ID 返回值及类型: ret:boolean 是否删除成功 该方法的其他说明: 删除地图上的开发者标记点 具体使用案例如下: local result = World:PixelMapDelMarker(Player:GetHostUin(), "markId_123") PixelMapAddTexture 参数及类型: uin:number 玩家ID id:string 纹理ID params:table 纹理参数 worldid:number / nil 星球ID 返回值及类型: ret:boolean 是否添加成功 该方法的其他说明: 在地图纹理节点上叠加一张纹理(可用于背景/遮罩/自定义装饰) 具体使用案例如下: --开发者添加纹理到地图纹理节点,可以修饰原本的地图纹理(比如加背景,遮罩,自定义地图纹理) local x, y, z = Actor:GetPosition(Player:GetHostUin()) local params = { filePath = "0_10103", --图片id width = 100, --宽度 height = 100, --高度 posX = x, --在地图上的方块位置 posZ = z, --在地图上的方块位置 level = 11, --层级 官方地图纹理层级为10 pivotX = 0, --x轴锚点 pivotY = 0, --z轴锚点 alpha = 1, --透明度 scale = 1, --缩放 rotation = 0, --旋转 colorR = 255, --颜色 colorG = 255, --颜色 colorB = 255, --颜色 } local result = World:PixelMapAddTexture(Player:GetHostUin(), "textureId_1", params) PixelMapRefreshTexture 参数及类型: uin:number 玩家ID id:string 纹理ID params:table 纹理参数(提供改变的参数即可) worldid:number / nil 星球ID 返回值及类型: ret:boolean 是否刷新成功 该方法的其他说明: 刷新地图上的开发者纹理标签(params 只需提供要变更的字段) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local params = { filePath = "0_10104", --图片id width = 100, --宽度 height = 100, --高度 posX = x, --在地图上的方块位置 posZ = z, --在地图上的方块位置 level = 11, --层级 官方地图纹理层级为10 pivotX = 0, --x轴锚点 pivotY = 0, --z轴锚点 alpha = 1, --透明度 scale = 1, --缩放 rotation = 0, --旋转 colorR = 255, --颜色 colorG = 255, --颜色 colorB = 255, --颜色 } local result = World:PixelMapRefreshTexture(Player:GetHostUin(), "textureId_1", params) PixelMapDelTexture 参数及类型: uin:number 玩家ID id:string 纹理ID worldid:number / nil 星球ID 返回值及类型: ret:boolean 是否删除成功 该方法的其他说明: 删除地图上的开发者纹理标签 具体使用案例如下: local result = World:PixelMapDelTexture(Player:GetHostUin(), "textureId_1") SetSkyBoxColorAnim 参数及类型: playerid:number 玩家ID itype:number 颜色属性枚举(SkyboxColor)SkyboxColor color:string 16进制颜色值(如0xffffff) animId:number 动画枚举(Easing)Easing animTime:number 动画时间 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 给指定玩家设置天空盒颜色参数(带动画过渡) 具体使用案例如下: local result = World:SetSkyBoxColorAnim(Player:GetHostUin(), SkyboxColor.Moon, [=[0xffe082]=], Easing.Linear, 1) SetTimeVanishingSpeed 参数及类型: speed:number 时间流逝速度 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒时间流逝速度 具体使用案例如下: local result = World:SetTimeVanishingSpeed(20) SetSkyBoxTemplate 参数及类型: value:number / string 模板值 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒模板(官方模板填数值,自定义模板填ID) 具体使用案例如下: local result = World:SetSkyBoxTemplate(7) SetSkyBoxMaps 参数及类型: itype:number 贴图类型(SkyboxMap)SkyboxMap url:string 图片链接 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒贴图 具体使用案例如下: local result = World:SetSkyBoxMaps(SkyboxMap.Sky, [=[0_30011]=]) SetSkyBoxColor 参数及类型: time:number 游戏时间(小时) itype:number 颜色属性枚举(SkyboxColor)SkyboxColor color:string 16进制颜色值(如0xffffff) worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒在指定时间点的颜色参数 具体使用案例如下: local result = World:SetSkyBoxColor(SkyboxTime.Current, SkyboxColor.Top, [=[0x1e88e5]=]) SetSkyBoxAttr 参数及类型: time:number 游戏时间(小时) itype:number 参数类型(SkyboxAttr)SkyboxAttr value:number 参数值(0~100) worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒在指定时间点的属性参数 具体使用案例如下: local result = World:SetSkyBoxAttr(SkyboxTime.Current, SkyboxAttr.SunScale, 20) SetSkyBoxAttrWithNoTime 参数及类型: itype:number 参数类型(SkyboxAttrNoTime)SkyboxAttrNoTime value:number 参数值(0~100) worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒属性参数(不带时间维度,直接作用于当前配置) 具体使用案例如下: local ret = World:SetSkyBoxAttrWithNoTime(itype, value, worldId) SetSkyBoxFilter 参数及类型: playerid:number 玩家ID itype:number 参数类型(SkyboxFilter)SkyboxFilter value:number / string 参数值(0~100)或16进制颜色值(如0xffffff) worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 给指定玩家设置天空盒滤镜参数(数值或颜色) 具体使用案例如下: local result = World:SetSkyBoxFilter(Player:GetHostUin(), SkyboxFilter.Contrast, 50) SetSkyBoxSwitch 参数及类型: time:number 游戏时间(小时) itype:number 参数类型(SkyboxSwitch)SkyboxSwitch value:number 开关值(0/1) worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置天空盒属性开关 具体使用案例如下: local result = World:SetSkyBoxSwitch(SkyboxTime.Current, SkyboxSwitch.Fogenable, true) SetSkyBoxMapsAnim 参数及类型: playerid:number 玩家ID itype:number 贴图类型(SkyboxMap)SkyboxMap url:string 图片链接 animId:number 动画枚举(Easing)Easing animTime:number 动画时间 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 给指定玩家设置天空盒贴图(带动画过渡) 具体使用案例如下: local result = World:SetSkyBoxMapsAnim(Player:GetHostUin(), SkyboxMap.Sky, [=[0_30005]=], Easing.BackOut, 1) SetSkyBoxFilterAnim 参数及类型: playerid:number 玩家ID itype:number 参数类型(SkyboxFilter)SkyboxFilter value:number / string 参数值(0~100)或颜色值 animId:number 动画枚举(Easing)Easing animTime:number 动画时间 worldId:number / nil 星球ID 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 给指定玩家设置天空盒滤镜参数(带动画过渡) 具体使用案例如下: local result = World:SetSkyBoxFilterAnim(Player:GetHostUin(), SkyboxFilter.Color, [=[0xffee58]=], Easing.Linear, 1) GetLocalDate 参数及类型: enum:number 枚举值(EventDate) 返回值及类型: ret:number 时间值 该方法的其他说明: 获取本地设备时间的指定字段 具体使用案例如下: local date = World:GetLocalDate(EventDate.Day) GetLocalDateString 参数及类型: 无 返回值及类型: ret:string 时间字符串 该方法的其他说明: 获取完整本地设备时间字符串 具体使用案例如下: local dateString = World:GetLocalDateString() GetServerDate 参数及类型: enum:number 枚举值(EventDate) 返回值及类型: ret:number 时间值(取不到返回0) 该方法的其他说明: 获取服务器时间的指定字段(云服模式下会回退到本地时间) 具体使用案例如下: local date = World:GetServerDate() GetDateFromTime 参数及类型: time:number 时间戳 enum:number 枚举值(EventDate)EventDate 返回值及类型: ret:number 时间值(入参非法返回0) 该方法的其他说明: 把时间戳拆出指定字段(年/月/日/时/分/秒等) 具体使用案例如下: local date = World:GetDateFromTime(os.time(), EventDate.Day) GetDirRayDetection 参数及类型: posbegin:table 起点{x=0,y=0,z=0} dir:table 方向向量{x=0,y=0,z=0} maxlen:number 最大检测距离 picktype:number 检测类型(RayDetectType)RayDetectType worldId:number / nil 星球ID ignoreObjs:table / nil 忽略对象ID数组 ignorePrefabs:table / nil 忽略方块/生物类型数组 返回值及类型: ret:number|nil,vec:table|nil:命中ID与命中位置{x=0,y=0,z=0}(未命中返回nil) 该方法的其他说明: 从起点沿方向做射线检测,返回命中的对象/方块及命中位置 具体使用案例如下: local ray = Player:GetAimDir(uin) local x,y,z = Player:GetRayOriginPos(uin) local id = World:GetDirRayDetection({x=x, y=y, z=z}, {x= ray.x, y= ray.y, z= ray.z}, 10, RayDetectType.Block, WorldId) GetRayLength 参数及类型: srcx|srcy|srcz:number 起点坐标 dstx|dsty|dstz:number 终点坐标 distance:number 最大检测距离 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / nil 射线长度(失败返回nil) 该方法的其他说明: 从起点到终点方向做射线检测,计算射线在遇到方块前的长度 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local length = World:GetRayLength(x, y, z, x, y + 20, z, 100, WorldId) GetRayBlock 参数及类型: srcx|srcy|srcz:number 起点坐标 face:number 方向/面 distance:number 最大检测距离 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / string / nil 方块ID(可能返回自定义资源ID;未命中返回nil) 该方法的其他说明: 从起点沿指定面/方向做射线检测,返回命中的方块ID(未命中返回nil) 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local block = World:GetRayBlock(x, y, z, FaceDir.NegY, 100, WorldId) CalcDirectionByYawDirection 参数及类型: objid:number 对象ID vx|vy|vz:number 局部方向分量 返回值及类型: ret:table|nil:世界方向向量{x: number, y: number, z: number}(失败返回nil) 该方法的其他说明: 把局部坐标方向转换为世界方向(忽略视角仰角) 具体使用案例如下: local direction = World:CalcDirectionByYawDirection(Player:GetHostUin(), 100, 100, 100) CalcDirectionByYawAngle 参数及类型: objid:number 对象ID yaw:number 水平角(度制) pitch:number 俯仰角(度制) 返回值及类型: ret:table / nil 世界方向向量{x,y,z}(失败返回nil) 该方法的其他说明: 把局部球坐标方向转换为世界方向(忽略视角仰角) 具体使用案例如下: local direction = World:CalcDirectionByYawAngle(Player:GetHostUin(), 30, 45) CalcDirectionByCoord 参数及类型: x:number 坐标分量x y:number 坐标分量y z:number 坐标分量z 返回值及类型: ret:table:方向向量{x: number, y: number, z: number} 该方法的其他说明: 不做任何数学换算,只是把三个坐标放进一张表里 具体使用案例如下: local direction = World:CalcDirectionByCoord(10 ,20, 30) CalcDirectionByAngle 参数及类型: yaw:number 水平角(度制) pitch:number 俯仰角(度制) 返回值及类型: ret:table|nil:方向向量{x: number, y: number, z: number}(入参非法返回nil) 该方法的其他说明: 把水平角和俯仰角转换为方向向量 具体使用案例如下: local direction = World:CalcDirectionByAngle(45, 45) RandomParticleEffectID 参数及类型: 无 返回值及类型: ret:number / nil 特效ID(取不到返回nil) 该方法的其他说明: 从粒子特效表中随机返回一个可触发的特效ID 具体使用案例如下: local id = World:RandomParticleEffectID() RandomSoundID 参数及类型: 无 返回值及类型: ret:number / nil 音效ID(取不到返回nil) 该方法的其他说明: 从音效表中随机返回一个音效ID 具体使用案例如下: local id = World:RandomSoundID() CalcDistance 参数及类型: posSrc:table:源坐标{x: number, y: number, z: number} posDst:table:目标坐标{x: number, y: number, z: number} 返回值及类型: ret:number / nil 两点距离(入参非法返回nil) 该方法的其他说明: 计算两个三维坐标之间的直线距离 具体使用案例如下: local distance = World:CalcDistance({x = 0, y = 0, z = 0}, {x = 10, y = 0, z = 0}) SetGroupWeather 参数及类型: groupid:number 天气组ID(WeatherGroup)WeatherGroup weatherid:number 天气ID(GroupWeatherType)GroupWeatherType worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置某个天气组的天气状态 具体使用案例如下: local result = World:SetGroupWeather(WeatherGroup.Common, GroupWeatherType.Shine) RandomWeatherID 参数及类型: 无 返回值及类型: ret:number / nil 天气ID(取不到返回nil) 该方法的其他说明: 从可用天气列表中随机一个天气ID 具体使用案例如下: local id = World:RandomWeatherID() GetGroupWeather 参数及类型: groupid:number 天气组ID(WeatherGroup)WeatherGroup worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:number / nil 天气值(入参非法返回nil) 该方法的其他说明: 获取指定天气组当前的天气值 具体使用案例如下: local weather = World:GetGroupWeather(WeatherGroup.Common) SetSpawnPoint 参数及类型: x|y|z:number 方块坐标 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置世界默认出生点坐标 具体使用案例如下: local x, y, z = Actor:GetPosition(Player:GetHostUin()) local result = World:SetSpawnPoint(x, y, z) CalcDirectionByPos2Pos 参数及类型: pos1:table 位置1{x=number,y=number,z=number} pos2:table 位置2{x=number,y=number,z=number} 返回值及类型: ret:table / nil 单位方向{x,y,z}(入参非法返回nil) 该方法的其他说明: 计算从位置1指向位置2的单位方向向量 具体使用案例如下: local ret = World:CalcDirectionByPos2Pos(pos1, pos2) SetWorldCreateMobRule 参数及类型: cfgs:table 生物规则配置 worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置世界生物生成规则,地图没有这个地形会设置失败(不保存,退出游戏后失效) 具体使用案例如下: local cfgs = { -- 草原 [BiomeType.GrassLand] = { { id = 3400, -- 生物id,嘟嘟鸟 weight = 100 -- 权重 }, { id = 3401, -- 生物id weight = 100 -- 权重 }, }, [BiomeType.Forest] = {--迷拉星森林 { id = 3400, weight = 50 } } } local result = World:SetWorldCreateMobRule(cfgs) GetWorldCreateMobRule 参数及类型: biometype:number 地形类型(BiomeType), biometype < 0 返回全部, biometype > 0 返回指定地形BiomeType worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:table / nil biometype < 0 时返回 {[biomeId]={{id, weight}}}, biometype > 0 时返回 {{id, weight}} 该方法的其他说明: 获取生物生成密度(不保存,退出游戏后失效) 具体使用案例如下: local ret = World:GetWorldCreateMobRule(biometype, worldId) SetMobSpawnDensity 参数及类型: mobType:number density:number worldId:number|nil 返回值及类型: ret:boolean 该方法的主要作用: 具体使用案例如下: local result = World:SetMobSpawnDensity(MobType.Passive, 100) -- 设置动物密度 SetPlantGrowRate 参数及类型: rate:number 时间倍率(>0) worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置农作物生长时间倍率(在原时间上乘以系数;不保存,退出游戏后失效) 具体使用案例如下: local result = World:SetPlantGrowRate(0.5) -- 设置生长速度为原来的0.5倍 SetInnerViewEnable 参数及类型: iview:number 弹窗类型枚举(InnerPopUpview)InnerPopUpview bopen:boolean 启用(true)/禁用(false) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置某类内置界面是否禁用 具体使用案例如下: -- 一般和Player:OpenInnerView 接口配合使用 local ret = World:SetInnerViewEnable(InnerPopUpview.CollectMaps,false) if ret then print("设置成功") end SetMidJoin 参数及类型: enable:boolean 是否允许中途加入 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置是否允许中途加入 具体使用案例如下: local ret = World:SetMidJoin(true) if ret then print("设置成功") end GetGameMode 参数及类型: 无 返回值及类型: ret:number / nil 游戏模式(WorldType) 该方法的其他说明: 获取当前游戏模式 具体使用案例如下: local curmode = World:GetGameMode() if curmode and curmode == WorldType.GamemakerRun then print("当前地图是玩法模式") elseif curmode and curmode == WorldType.Single then print("当前地图是冒险模式") end SetLightByPos 参数及类型: x:number 位置x y:number 位置y z:number 位置z value:number 光照强度(0~15) worldId:number / nil 星球ID(默认当前主机所在星球) 返回值及类型: ret:boolean 是否设置成功 该方法的其他说明: 设置指定位置的方块光照强度<1.50+> 具体使用案例如下: local result = World:SetLightByPos(x, y, z, 10, WorldId) print("设置光照强度 10 ", result) 道具模块管理接口 Item 具体函数名及描述如下: 序号 函数名 函数描述 1 GetItemName(...) 获取道具名称 2 RandomItemID(...) 随机获取道具ID 3 RandomProjectileID(...) 随机获取投掷物ID 4 GetAttr(...) 获取道具属性 5 GetItemDesc(...) 获取道具描述 6 GetCustomGunAttr(...) 获取自定义枪械属性 7 GetCraftIDNum(...) 获取道具配方数量 8 GetCraftMaterialAndNum(...) 获取道具配方材料与数量 9 GetFacade(...) 获取道具类型外观 10 CreateItemInstInWorld(...) 在位置上创建道具掉落物 11 CreateGunInWorld(...) 在位置上创建枪械掉落物 12 GetEquipItemGridID(...) 获取装备道具装备栏网格id 13 ModifyGunAttribute(...) 修改枪械道具实例的属性 14 GetGunAttribute(...) 获取枪械道具实例的属性 15 GetGunPrefabAttribute(...) 获取枪预制的属性 16 GetItemIdByInstanceId(...) 根据道具实例ID获取道具ID 17 AddSubModelPart(...) 给道具实例添加一个模型子部件 18 DeleteSubModelPart(...) 删除一个道具实例的模型子部件 19 ReplaceSubModelPart(...) 修改一个道具实例的模型子部件 20 SetStringCustomData(...) 设置道具实例的自定义数据string 21 SetBoolCustomData(...) 设置道具实例的自定义数据bool 22 SetNumberCustomData(...) 设置道具实例的自定义数据number 23 SetObjCustomData(...) 设置道具实例的自定义数据Object 24 SetArrayCustomData(...) 设置道具实例的自定义数据Array 25 GetStringCustomData(...) 获取道具实例的自定义数据string 26 GetBoolCustomData(...) 获取道具实例的自定义数据bool 27 GetNumberCustomData(...) 获取道具实例的自定义数据number 28 GetObjCustomData(...) 获取道具实例的自定义数据Object 29 GetArrayCustomData(...) 获取道具实例的自定义数据Array 30 GetItemInstFacade(...) 获取具有道具实例ID的道具外观 31 GetGridAttr(...) 获取掉落物或者投掷物的格子属性 32 GetTags(...) 获取道具定义中的标签组 GetItemName 参数及类型: itemid:number / string 道具ID 返回值及类型: name:string 道具名称 该方法的其他说明: 获取道具名称 具体使用案例如下: local itemName = Item:GetItemName(12005) if itemName then print("获取物品名称", itemName) end RandomItemID 参数及类型: 无 返回值及类型: num:number 道具ID 该方法的其他说明: 在资源库里随机获取一个道具ID 具体使用案例如下: local itemID = Item:RandomItemID() if itemID then print("随机生成的物品ID", itemID) end RandomProjectileID 参数及类型: 无 返回值及类型: num:number 道具ID 该方法的其他说明: 在资源库里随机获取一个投掷物ID 具体使用案例如下: local projectileID = Item:RandomProjectileID() if projectileID then print("随机生成的投射物ID", projectileID) end GetAttr 参数及类型: itemid:number / string 道具ID attr:number 属性类型枚举(ItemAttr)ItemAttr 返回值及类型: num:number 属性值 该方法的其他说明: 获取道具属性 具体使用案例如下: local itemid = 'r0_7495946400275515402_23048' --自定义道具 local stackmax = Item:GetAttr(itemid, ItemAttr.Stackmax) if stackmax then print("获取堆叠最大数量", stackmax) end GetItemDesc 参数及类型: itemid:number / string 道具ID 返回值及类型: name:string 道具描述 该方法的其他说明: 获取道具描述 具体使用案例如下: local itemDesc = Item:GetItemDesc(12005) if itemDesc then print("获取物品描述", itemDesc) end GetCustomGunAttr 参数及类型: itemid:number / string 道具ID attrname:string 属性名(GunAttr)GunAttr 返回值及类型: obj:any属性值 该方法的其他说明: 获取自定义枪械的属性(仅自定义枪械有效) 具体使用案例如下: local obj = Item:GetCustomGunAttr(itemid, attrname) GetCraftIDNum 参数及类型: itemid:number / string 道具ID 返回值及类型: num:number 配方数量 该方法的其他说明: 获取道具配方的数量 具体使用案例如下: --能够合成木板的数量 local craftIDNum = Item:GetCraftIDNum(206) if craftIDNum then print("获取物品可合成的配方数量", craftIDNum) end GetCraftMaterialAndNum 参数及类型: itemid:number / string 道具ID 返回值及类型: obj:table 原料信息{{itemid num}} 该方法的其他说明: 获取道具的配方材料和数量 具体使用案例如下: local resultid = 206 --获取制作物品的材料和数量 local num = Item:GetCraftIDNum(resultid) if num then for i = 1, num do local tab = Item:GetCraftMaterialAndNum(resultid,i) if tab then print("获取制作物品的材料和数量", tab) for k,v in pairs(tab) do print("材料索引", k, "材料ID", v[1], "数量", v[2]) end end end end GetFacade 参数及类型: itemid:number / string 道具类型ID或道具预制ID 返回值及类型: name:string 道具类型外观 该方法的其他说明: 获取道具类型外观 具体使用案例如下: -- 官方默认道具示例 local facade1 = Item:GetFacade(12002) if facade1 == nil then print("facade1 is nil") end -- 自定义道具示例 local facade2 = Item:GetFacade('r2_7495945919239178250_23010') if facade2 == nil then print("facade2 is nil") end CreateItemInstInWorld 参数及类型: itemid:number / string 道具ID pos:table 掉落物位置{x,y,z} worldId:number 星球ID(默认当前主机所在星球) 返回值及类型: id:number / nil 对象ID 该方法的其他说明: 在位置上创建道具实例的掉落物 具体使用案例如下: local id = Item:CreateItemInstInWorld(itemid, pos, worldId) CreateGunInWorld 参数及类型: itemid:number / string 道具ID pos:table 掉落物位置{x,y,z} worldId:number 星球ID(默认当前主机所在星球) 返回值及类型: id:number / nil 对象ID 该方法的其他说明: 在位置上创建枪械道具实例的掉落物 具体使用案例如下: local id = Item:CreateGunInWorld(itemid, pos, worldId) GetEquipItemGridID 参数及类型: itemid:number / string 装备道具ID 返回值及类型: num:number 装备栏位置 BackpackBeginIndex.Equip + (EquipSlotType) 该方法的其他说明: 根据装备道具ID计算其对应的装备栏网格索引 具体使用案例如下: -- 官方默认道具示例 local grid = Item:GetEquipItemGridID(12201) if grid == (EquipSlotType.Head + BackpackBeginIndex.Equip ) then print("皮头盔的装备栏是 8000") end ModifyGunAttribute 参数及类型: instId:string 道具实例id key:string 属性的枚举(GunAttr)GunAttr value:number / string / bool 值 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 通过道具实例id修改枪械属性(key 指定);value 类型需与该属性枚举匹配 具体使用案例如下: local bool = Item:ModifyGunAttribute(instId, key, value) GetGunAttribute 参数及类型: instId:string 道具实例id key:string 属性的枚举(GunAttr)GunAttr 返回值及类型: value:number / string / bool / nil 值 该方法的其他说明: 读取枪械道具实例属性(key 指定) 具体使用案例如下: local value = Item:GetGunAttribute(instId, key) GetGunPrefabAttribute 参数及类型: instId:string 道具实例id key:string 属性的枚举(GunAttr)GunAttr 返回值及类型: value:number / string / bool / nil 值 该方法的其他说明: 读取枪预制属性(key 指定) 具体使用案例如下: local value = Item:GetGunPrefabAttribute(instId, key) GetItemIdByInstanceId 参数及类型: instId:string 道具实例id 返回值及类型: itemId:number / string / nil 道具id 该方法的其他说明: 根据道具实例id获取道具ID;若存在自定义资源则使用自定义资源ID,否则使用原道具id 具体使用案例如下: local itemId = Item:GetItemIdByInstanceId(instId) AddSubModelPart 参数及类型: instId:string 道具实例id partName:string 子部件名字 boneName:string 挂点 modelStr:string 模型 offset:table 位置偏移 rot:table 旋转 scale:table 缩放 返回值及类型: partName:string / nil 部件名字 该方法的其他说明: 给道具实例添加模型子部件;返回最终的部件名字;若界面依赖实例模型,需约0.5秒等待同步后再刷新 具体使用案例如下: local ret = Item:AddSubModelPart(instId, "gun1", "muzzle", "newModel_11000005", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}, {x = 1, y = 1, z = 1}) if ret then print("添加子部件成功",ret) end DeleteSubModelPart 参数及类型: instId:string 道具实例id partName:string 子部件名字 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 删除道具实例的指定模型子部件 具体使用案例如下: local bool = Item:DeleteSubModelPart(instId, partName) ReplaceSubModelPart 参数及类型: instId:string 道具实例id partName:string 子部件名字 boneName:string 挂点 modelStr:string 模型 offset:table 位置偏移 rot:table 旋转 scale:table 缩放 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 修改/替换道具实例的指定模型子部件(通过子部件名、挂点等信息) 具体使用案例如下: local bool = Item:ReplaceSubModelPart(instId, partName, boneName, modelStr, offset, rot, scale) SetStringCustomData 参数及类型: instId:string 道具实例id key:string 键 value:string 值 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 写入/覆盖道具实例自定义字符串字段 具体使用案例如下: local bool = Item:SetStringCustomData(instId, key, value) SetBoolCustomData 参数及类型: instId:string 道具实例id key:string 键 value:bool值 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 写入/覆盖道具实例自定义布尔字段 具体使用案例如下: local bool = Item:SetBoolCustomData(instId, key, value) SetNumberCustomData 参数及类型: instId:string 道具实例id key:string 键 value:number 值 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 写入/覆盖道具实例自定义数值字段 具体使用案例如下: local bool = Item:SetNumberCustomData(instId, key, value) SetObjCustomData 参数及类型: instId:string 道具实例id key:string 键 value:table 值 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 写入/覆盖道具实例自定义对象字段(会被序列化保存) 具体使用案例如下: local bool = Item:SetObjCustomData(instId, key, value) SetArrayCustomData 参数及类型: instId:string 道具实例id key:string 键 value:table 数组 返回值及类型: bool:boolean 是否成功 该方法的其他说明: 写入/覆盖道具实例自定义数组字段(会被序列化保存) 具体使用案例如下: local bool = Item:SetArrayCustomData(instId, key, value) GetStringCustomData 参数及类型: instId:string 道具实例id key:string 键 返回值及类型: value:string / nil 值 该方法的其他说明: 读取道具实例自定义字符串字段 具体使用案例如下: local value = Item:GetStringCustomData(instId, key) GetBoolCustomData 参数及类型: instId:string 道具实例id key:string 键 返回值及类型: value:bool / nil 值 该方法的其他说明: 读取道具实例自定义布尔字段 具体使用案例如下: local value = Item:GetBoolCustomData(instId, key) GetNumberCustomData 参数及类型: instId:string 道具实例id key:string 键 返回值及类型: value:number / nil 值 该方法的其他说明: 读取道具实例自定义数值字段 具体使用案例如下: local value = Item:GetNumberCustomData(instId, key) GetObjCustomData 参数及类型: instId:string 道具实例id key:string 键 返回值及类型: value:table / nil 值 该方法的其他说明: 读取道具实例自定义对象字段 具体使用案例如下: local value = Item:GetObjCustomData(instId, key) GetArrayCustomData 参数及类型: instId:string 道具实例id key:string 键 返回值及类型: value:table / nil 值 该方法的其他说明: 读取道具实例自定义数组字段 具体使用案例如下: local value = Item:GetArrayCustomData(instId, key) GetItemInstFacade 参数及类型: instId:string 道具实例ID 返回值及类型: name:string / nil 道具实例外观 该方法的其他说明: 根据道具实例id生成道具外观名 具体使用案例如下: local facade = Item:GetItemInstFacade(instId) if facade then print("获取物品实例外观", facade) end GetGridAttr 参数及类型: objid:number 对象ID attr:number 属性枚举(GridAttr)GridAttr 返回值及类型: num:number / nil 属性值 该方法的其他说明: 读取掉落物/投掷物的指定格子属性 具体使用案例如下: local num = Item:GetGridAttr(objId,GridAttr.ItemNum) print("获取格子属性", num) GetTags 参数及类型: itemid:number / string 道具定义ID或道具预制ID 返回值及类型: obj:table / nil 标签组 该方法的其他说明: 根据道具定义ID或道具预制ID获取标签组 具体使用案例如下: local itemid = "r2_7569576541013954344_36524" --自定义道具 local tags = Item:GetTags(itemid) if tags then print("道具定义中的标签:", tags) end 剧情动画模块管理接口 Timeline 具体函数名及描述如下: 序号 函数名 函数描述 1 PlayForAll(...) 对所有玩家播放Timeline 2 PlayForPlayer(...) 对指定玩家播放Timeline 3 Pause(...) 暂停指定玩家的Timeline播放 4 Resume(...) 恢复指定玩家的Timeline播放 5 SkipForPlayer(...) 跳过指定玩家当前正在播放的Timeline 6 GetPlayerState(...) 获取玩家Timeline播放状态 7 IsAllFinished(...) 检查所有玩家是否都已播放完成指定Timeline PlayForAll 参数及类型: timelineId:string Timeline 资源id refKind:number 播放参考 0使用默认/1指定位置与旋转/2指定玩家 anchorPos:table 锚点位置cm(kind=1/2) anchorYaw:number 锚点朝向度(kind=1/2) 返回值及类型: code:number 返回(参考系错位为负 TIMELINE_PLAY_REJECT_*,否则 0) 该方法的主要作用: 对所有玩家播放Timeline 具体使用案例如下: local code = Timeline:PlayForAll(timelineId, refKind, anchorPos, anchorYaw) PlayForPlayer 参数及类型: uin:number 玩家UIN timelineId:string Timeline 资源id reverse:boolean 是否反向播放 playToEnd:boolean 是否播放到结尾 refKind:number 播放参考 0使用默认/1指定位置与旋转/2指定玩家 anchorPos:table 锚点位置cm(kind=1/2) anchorYaw:number 锚点朝向度(kind=1/2) 返回值及类型: code:number 返回(参考系错位为负 TIMELINE_PLAY_REJECT_*,否则 0) 该方法的主要作用: 对指定玩家播放Timeline 具体使用案例如下: local code = Timeline:PlayForPlayer(uin, timelineId, reverse, playToEnd, refKind, anchorPos, anchorYaw) Pause 参数及类型: uin:number 玩家UIN timelineId:string Timeline 资源id 返回值及类型: code:boolean 成功(true) 该方法的主要作用: 暂停指定玩家的Timeline播放 具体使用案例如下: local code = Timeline:Pause(uin, timelineId) Resume 参数及类型: uin:number 玩家UIN timelineId:string Timeline 资源id 返回值及类型: code:boolean 成功(true) 该方法的主要作用: 恢复指定玩家的Timeline播放 具体使用案例如下: local code = Timeline:Resume(uin, timelineId) SkipForPlayer 参数及类型: uin:number 玩家UIN 返回值及类型: code:boolean 成功(true) 该方法的主要作用: 跳过指定玩家当前正在播放的Timeline 具体使用案例如下: local code = Timeline:SkipForPlayer(uin) GetPlayerState 参数及类型: uin:number 玩家UIN timelineId:string Timeline 资源id 返回值及类型: state:number 播放状态(0空闲 1播放中 2暂停) 该方法的主要作用: 获取玩家Timeline播放状态 具体使用案例如下: local state = Timeline:GetPlayerState(uin, timelineId) IsAllFinished 参数及类型: timelineId:string Timeline 资源 id 返回值及类型: code:boolean 全部完成(true) 该方法的主要作用: 检查所有玩家是否都已播放完成指定Timeline 具体使用案例如下: local code = Timeline:IsAllFinished(timelineId) 全局函数 具体函数名及描述如下: 序号 函数名 函数描述 1 json.decode(...) json格式字符串转换table数据 2 json.encode(...) table数据转换json格式字符串 3 GetWorld() 获取当前世界对象 4 print(...) 打印信息 5 printError(...) 打印错误信息 6 Class(...) 定义类 7 Instance(...) 创建类实例 8 GetInst() 获取类单例 json.decode 参数及类型: data:stringjson字符串 返回值及类型: ret:table解码后的table 该方法的主要作用: 解码json字符串 local tab = json.decode('{"a":1,"b":2}') json.encode 参数及类型: data:tabletable数据 返回值及类型: ret:stringjson格式字符串 该方法的主要作用: 编码table数据 local jsonstr = json.encode({a=1,b=2}) GetWorld 参数及类型: 无 返回值及类型: ret:table世界对象 该方法的主要作用: 获取当前世界对象 local world = GetWorld() print 参数及类型: ...:number 或者 string 或者 boolean: 只能传这三种类型数据的不定参数 返回值及类型: 无 该方法的主要作用: 打印信息 print("hello ",1,true) printError 参数及类型: ...:number 或者 string 或者 boolean: 只能传这三种类型数据的不定参数 返回值及类型: 无 该方法的主要作用: 打印错误信息 printError("hello ",1,true) Class 参数及类型: classname:string类名 super:string table 父类名 或者 父类原表 issingle:boolean是否单例 返回值及类型: ret:table对象定义 该方法的主要作用: 定义类对象 具体使用案例如下: local classdef = Class("Abc", {}, true) Instance 参数及类型: classname:string类名 返回值及类型: ret:table对象实例 该方法的主要作用: 创建类实例 local instance = Instance("Abc") if not instance then printError("创建实例失败 请检查类定义issingle 参数是否是false") end GetInst 参数及类型: classname:string类名 返回值及类型: ret:table对象实例 该方法的主要作用: 获取类单例 local instance = GetInst("Abc") if not instance then printError("获取单例失败 请检查类定义 issingle 参数是否是false") end 内置枚举库 可在代码里直接调用无需新建对象,调用形式如下: local errorCode = ErrorCode.OK local worldType = WorldType.OWTYPE_GAMEMAKER Lua原生数据及其他全局数据的用法描述如下 lua_type 数据名称 用法描述 nil 表示一个无效值(在条件表达式中相当于false) boolean 布尔值,包含两个值:false和true number 实数,表示双精度类型的实浮点数,也可以是整数 string 字符串,由一对单引号或双引号来表示 table Lua的一种数据结构,可用来创建不同的数据类型,如:数组、字典等 function 由 C 或 Lua 编写的函数 游戏模式 名称 用法描述 WorldType.Single 单人模式 WorldType.Create 多人创造模式 WorldType.Extremity 极限模式 WorldType.CreateToRungame 由创造模式转的生存 WorldType.Gamemaker 自制玩法的编辑模式 WorldType.GamemakerRun 自制玩法的运行模式 WorldType.Freemode 冒险模式之自由模式 WorldType.Record 录像模式 生物类型 名称 用法描述 MobType.Hostile 怪物 MobType.Passive 动物 MobType.Rare 稀有动物 MobType.Water 水生物 MobType.Fly 飞行生物 MobType.Trixenie 三栖生物 游戏地形 名称 用法描述 TerrainType.Flat 平坦地形 TerrainType.Normal 随机地形 自定义视角编辑状态 名称 用法描述 CameraEditState.Null 空 CameraEditState.Edit 编辑 CameraEditState.Test 测试 装备部位类型 名称 用法描述 EquipSlotType.Head 头 EquipSlotType.Breast 身体 EquipSlotType.Legging 腿 EquipSlotType.Shoe 脚 EquipSlotType.Pifeng 披风 EquipSlotType.Weapon 武器 EquipSlotType.Custom1 自定义装备位1 EquipSlotType.Custom2 自定义装备位2 EquipSlotType.Custom3 自定义装备位3 EquipSlotType.MaxSlots 最大装备栏(用于判断有效性) 游戏战斗结果 名称 用法描述 TeamResults.None 胜负未定 TeamResults.Win 胜利 TeamResults.Lose 失败 TeamResults.Dogfall 平局 玩家背包类型 名称 用法描述 BackpackType.Shortcut 快捷栏 BackpackType.Inventory 存储栏 BackpackType.Equip 装备栏 BackpackType.Extend 扩展背包 背包起始索引 名称 用法描述 BackpackBeginIndex.Shortcut 快捷栏 BackpackBeginIndex.Inventory 存储栏 BackpackBeginIndex.Equip 装备栏 BackpackBeginIndex.ExtBackpack 扩展背包 朝向 名称 用法描述 FaceDir.None 未指定 FaceDir.NegX x反方向, 西 FaceDir.PosX x正方向, 东 FaceDir.NegZ z反方向, 南 FaceDir.PosZ z正方向, 北 FaceDir.NegY y反方向, 下 FaceDir.PosY y正方向, 上 朝向类型 名称 用法描述 FaceType.Yaw 面朝方向 FaceType.Pitch 面仰角 生物属性枚举 名称 用法描述 CreatureAttr.MaxHp 最大生命值 CreatureAttr.CurHp 当前生命值 CreatureAttr.HpRecover 生命恢复 CreatureAttr.MaxHunger 最大饥饿值 CreatureAttr.CurHunger 当前饥饿值 CreatureAttr.CurOxygen 当前氧气值 CreatureAttr.WalkSpeed 移动速度 CreatureAttr.SwinSpeed 游泳速度 CreatureAttr.JumpPower 跳跃力 CreatureAttr.Dodge 闪避率 CreatureAttr.AtkMelee 近战攻击 CreatureAttr.AtkRemote 远程攻击 CreatureAttr.DefMelee 近战防御 CreatureAttr.DefRemote 远程防御 CreatureAttr.Dimension 模型大小 CreatureAttr.Level 等级 CreatureAttr.DefChaos 混乱防御 CreatureAttr.PackSize 背包空间 CreatureAttr.ViewDistance 视野距离 CreatureAttr.BodyLerpSpeed 转身速度 CreatureAttr.AtkPhysical 物理攻击 CreatureAttr.AtkMagic 元素攻击 CreatureAttr.DefPhysical 物理防御 CreatureAttr.DefMagic 元素防御 CreatureAttr.ExtraHp 临时生命值 CreatureAttr.Toughness 韧性值 CreatureAttr.FlySpeed 飞行速度 CreatureAttr.ViewDis 视野范围 CreatureAttr.AttackDis 攻击距离 CreatureAttr.Atk 攻击力 CreatureAttr.EnableMove 可移动 CreatureAttr.EnableAttack 可攻击 CreatureAttr.EnableBeattacked 可被攻击 CreatureAttr.EnableBekilled 可被杀死 CreatureAttr.EnablePickup 可拾取道具 CreatureAttr.EnableDeathdropitem 死亡掉落 生物/玩家 名称 用法描述 RoleAttr.MaxHp 最大生命值 RoleAttr.CurHp 当前生命值 RoleAttr.HpRecover 生命恢复 RoleAttr.MaxHunger 饥饿度 RoleAttr.CurHunger 饥饿度 RoleAttr.CurOxygen 当前氧气值 RoleAttr.WalkSpeed 移动速度 RoleAttr.RunSpeed 奔跑速度 RoleAttr.SwinSpeed 游泳速度 RoleAttr.JumpPower 跳跃力 RoleAttr.Gravity 重力值 RoleAttr.PunchArmor 近战防御 RoleAttr.RangeArmor 远程防御 RoleAttr.LevelExp 星星经验 RoleAttr.StarNum 星星数量 RoleAttr.CurStrength 当前体力值 RoleAttr.MaxStrength 当前最大体力值 RoleAttr.FlySpeed 飞行速度 RoleAttr.AttackDis 攻击距离 RoleAttr.ViewDis 视野距离 RoleAttr.Atk 攻击力 道具设置枚举 名称 用法描述 ItemAbility.Throw 道具不可丢弃 ItemAbility.Drop 道具不可掉落 生物行为枚举 名称 用法描述 CreatureMotion.Idle 空闲 CreatureMotion.Standby 待机 CreatureMotion.Stroll 闲逛 CreatureMotion.AtkMelee 近战攻击 CreatureMotion.AtkRemote 远程攻击 CreatureMotion.Follow 跟随 CreatureMotion.Swim 游泳 CreatureMotion.RunAway 逃跑 CreatureMotion.SelfBomb 自爆 CreatureMotion.Beattracted 被吸引 CreatureMotion.Copulation 交配 玩家行为枚举 名称 用法描述 PlayerMotion.Static 静止 PlayerMotion.Walk 行走 PlayerMotion.Run 奔跑 PlayerMotion.Jump 跳跃 PlayerMotion.JumpTwice 二段跳 PlayerMotion.Sneak 潜行 PlayerMotion.FallGround 落地 PlayerMotion.Swim 游泳 角色行为枚举 名称 用法描述 RoleMotion.Stand 站立 RoleMotion.Walk 行走 RoleMotion.Run 奔跑 RoleMotion.Jump 跳跃 RoleMotion.Sneak 潜行 RoleMotion.FallGround 落地 RoleMotion.Swim 游泳 伤害类型枚举 名称 用法描述 HurtType.All 所有伤害(只设置免疫伤害接口有效) HurtType.Melee 近战伤害 attack_punch HurtType.Remote 远程伤害 attack_range HurtType.Bomb 爆炸伤害 attack_explode HurtType.Burning 燃烧伤害 attack_fire HurtType.Toxin 毒素伤害 attack_poison HurtType.Wither 凋零伤害 attack_wither HurtType.Flash 电元素伤害 attack_flash HurtType.Sun 日晒 attack_sun HurtType.Fall 跌落伤害 attack_falling HurtType.Anvil 被砸中伤害 attack_anvil HurtType.Cactus 仙人掌伤害 attack_cactus HurtType.Asphyxia 窒息伤害 attack_wall HurtType.Drown 溺水伤害 attack_drown HurtType.Suffocate 水下生物在空气中窒息伤害 attack_suffocate HurtType.Antiinjury 反伤 attack_antiinjury HurtType.Laser 被激光伤害 attack_block_laser HurtType.Ice 冰元素伤害 attack_flash HurtType.Fixed 固定伤害 attack_fixed 队伍属性枚举 名称 用法描述 TeamAttr.PlayerNum 玩家数量 TeamAttr.Score 分数 方块属性枚举 名称 用法描述 BlockAttr.ExplodeResistance 爆炸抗性 BlockAttr.Hardness 硬度 BlockAttr.Glissade 滑行惯性 BlockAttr.BurningSpeed 燃烧速度 BlockAttr.BurningProbability 燃烧几率 BlockAttr.Lightness 亮度 方块权限 名称 用法描述 BlockLimits.EnableDestroyed 可破坏 BlockLimits.EnableBeoperated 可操作 BlockLimits.EnableBepushed 可被推动 BlockLimits.EnableDropItem 可掉落道具 BlockLimits.BepushedDropItem 被推动掉落 方块状态 名称 用法描述 BlockStatus.Active 活跃(被激活) BlockStatus.Inactive 不活跃(未被激活) 天气状态枚举,局部天气 名称 用法描述 GroupWeatherType.ShineAndRain 晴雨交替 GroupWeatherType.Shine 晴天 GroupWeatherType.Rain 雨天 GroupWeatherType.Thunder 雷暴 GroupWeatherType.Bad 恶劣天气 GroupWeatherType.Snow 雪天 GroupWeatherType.Sandduststorm 沙尘暴 GroupWeatherType.Tempest 暴风雨 GroupWeatherType.Blizzard 暴风雪 GroupWeatherType.MeteorShower 流星雨 GroupWeatherType.Aurora 极光天 GroupWeatherType.VoidFog 虚空浓雾 地形组枚举值 名称 用法描述 WeatherGroup.Global 全局对象 WeatherGroup.Common 常见组 WeatherGroup.Ocean 海洋组 WeatherGroup.Desert 沙漠组 WeatherGroup.Frigidzone 普通寒带组 WeatherGroup.Coldzone 高峰寒带组 WeatherGroup.Volcano 火山组 WeatherGroup.Nunja 湿地组 WeatherGroup.Plain 平坦组 WeatherGroup.AirIsland 空岛组 视口方向 名称 用法描述 ViewPortType.Main 主视角 ViewPortType.Back 背视角 ViewPortType.Front 正视角 ViewPortType.Back2 背视角2 ViewPortType.Top 俯视角 ViewPortType.Custom 自定义视角 变量类型 名称 用法描述 VarType.Pos 位置 VarType.Areains 区域 VarType.Number 数值 VarType.String 字符串 VarType.Boolean 布尔值 VarType.Player 玩家 VarType.PlayerGroup 玩家组 VarType.BlockType 方块类型 VarType.ItemType 道具类型 VarType.Creature 生物 VarType.CreatureType 生物类型 VarType.CreatureGroup 生物组 VarType.Timer 定时器 VarType.EffectType 特效类型 VarType.PosGroup 位置组 VarType.AreaGroup 区域组 VarType.NumberGroup 数值组 VarType.StringGroup 字符串组 VarType.BooleanGroup 布尔值组 VarType.BlockTypeGroup 方块类型组 VarType.ItemTypeGroup 道具类型组 VarType.CreatureTypeGroup 生物类型组 VarType.TimerGroup 计时器组 VarType.EffectTypeGroup 特效类型组 VarType.SortedData 有序列表 VarType.ListData 无需列表 VarType.Map kv map表 VarType.Table 二维表 VarType.Blueprint 蓝图 VarType.Object 对象 VarType.ObjectGroup 对象组 VarType.Projectile 投射物 VarType.ProjectileGroup 投射物组 VarType.DropItem 掉落物 VarType.DropItemGroup 掉落物组 VarType.Element 元件 VarType.ElementGroup 元件组 VarType.Texture 纹理 VarType.TextureGroup 纹理组 VarType.Role 角色 VarType.RoleGroup 角色组 VarType.BuffType buff类型 VarType.BuffTypeGroup buff类型组 VarType.Sound 声音 VarType.SoundGroup 声音组 VarType.Model 模型 VarType.ModelGroup 模型组 VarType.Entity 实体 VarType.EntityGroup 实体组 VarType.EntityType 实体类型 VarType.EntityTypeGroup 实体类型组 强制打开工作台枚举 名称 用法描述 WorkeStage.Craft 工具箱 WorkeStage.Repair 修理台 WorkeStage.Enchant 附魔台 图文信息枚举 名称 用法描述 GraphicsType.Hornbook 文字板 GraphicsType.Suspendbook 漂浮文字 GraphicsType.Progress 进度条 GraphicsType.ArrowPos 箭头 指向位置 GraphicsType.ArrowActor 箭头 指向生物 GraphicsType.LinePos 线 指向位置 GraphicsType.LineActor 线 指向生物 GraphicsType.SurfacePos 面 指向界面 GraphicsType.SurfaceActor 面 指向生物 GraphicsType.Image 图片 GraphicsType.NavPathPos 寻路引导线 指向位置 GraphicsType.Brush 笔刷 GraphicsType.Bubble 气泡 排序方式 名称 用法描述 SortType.Up 升序, SortType.Down 降序, 移动方式 名称 用法描述 MoveType.Walking 行走, MoveType.Flying 飞行, MoveType.Swimming 游泳, MoveType.Auto 自动调整 显示板视频播放模式 名称 用法描述 ViedoPlayMode.Repeat 循环播放 ViedoPlayMode.Once 单次播放 时间值枚举 名称 用法描述 EventDate.Year 年 EventDate.Month 月 EventDate.Day 日 EventDate.Hour 时 EventDate.Minute 分 EventDate.Second 秒 EventDate.Timestamp 时间戳 EventDate.Dayofweek 星期几 道具属性 名称 用法描述 ItemAttr.Attack 攻击力 ItemAttr.Stackmax 叠加数 ItemAttr.ShortDefense 近战防御 ItemAttr.LongDefense 远程防御 ItemAttr.ExplodeDefense 爆炸防御 ItemAttr.FireDefense 燃烧防御 ItemAttr.PoisonDefense 毒素防御 ItemAttr.WitherDefense 混乱防御 ItemAttr.Duration 耐久度 ItemAttr.FireInterval 射击间隔 ItemAttr.Magazines 弹夹量 ItemAttr.Quality 品质 ItemAttr.ItemType 道具类型 掉落物掉落方式 名称 用法描述 DropMode.DiscardItem 丢弃道具 DropMode.DestroyBox 箱子被破坏掉落 DropMode.DefeatMob 生物被击败掉落 DropMode.DestroyBlock 方块被破坏掉落 DropMode.SpawnItem 触发器创建 DropMode.ChangePlayMode 掉落物对象转玩法创建 动作播放方式 名称 用法描述 AnimMode.Loop 循环播放 AnimMode.Once 播放一次 AnimMode.OnceStop 播放一次完毕,停在末尾 AnimMode.Default 表格默认值播放 线性变换 名称 用法描述 Easing.None 无动画 Easing.Linear 直线变换 Easing.QuadIn 平方曲线1渐入 Easing.QuadOut 平方曲线2渐出 Easing.QuadInOut 平方曲线3进出 Easing.ExpoIn 指数曲线1渐入 Easing.ExpoOut 指数曲线2渐出 Easing.ExpoInOut 指数曲线3进出 Easing.CircIn 圆曲线1渐入 Easing.CircOut 圆曲线2渐出 Easing.CircInOut 圆曲线3进出 Easing.ElasticIn 弹簧曲线1渐入 Easing.ElasticOut 弹簧曲线2渐出 Easing.ElasticInOut 弹簧曲线3进出 Easing.BackIn 回退曲线1渐入 Easing.BackOut 回退曲线2渐出 Easing.BackInOut 回退曲线3进出 Easing.BounceIn 弹跳曲线1渐入 Easing.BounceOut 弹跳曲线1渐出 Easing.BounceInOut 弹跳曲线1进出 天空盒贴图 名称 用法描述 SkyboxMap.Sky 天空贴图 SkyboxMap.Sun 太阳贴图 SkyboxMap.Moon 月亮贴图 天空盒颜色 名称 用法描述 SkyboxColor.Top 天空顶部颜色 SkyboxColor.Middle 天空腰部颜色 SkyboxColor.Bottom 天空底部颜色 SkyboxColor.Light 天空光照颜色 SkyboxColor.Env 环境光颜色 SkyboxColor.Sun 太阳颜色 SkyboxColor.Moon 月亮颜色 SkyboxColor.Cloud 云颜色 SkyboxColor.Fog 雾颜色 SkyboxColor.Water 水颜色 SkyboxColor.DirectionalLight 太阳光颜色 SkyboxColor.AmbientLight 环境光颜色 天空盒参数 名称 用法描述 SkyboxAttr.SunScale 太阳大小 SkyboxAttr.MoonScale 月亮大小 SkyboxAttr.StarDensity 星星密度 SkyboxAttr.CloudSpeed 云的运动速度 SkyboxAttr.CloudDensity 云的密度 SkyboxAttr.CloudHigh 云的高度 SkyboxAttr.FogreMinDis 雾的最近距离 SkyboxAttr.FogreMaxDis 雾的最远距离 SkyboxAttr.Template 模板 SkyboxAttr.WaterTransparency 水透明度 SkyboxAttr.WaterMirrorness 水镜面度 SkyboxAttr.WindStrength 风速 SkyboxAttr.DirectionalLightIntensity 太阳光强度 SkyboxAttr.AmbientLightIntensity 环境光强度 天空盒参数 名称 用法描述 SkyboxAttrNoTime.Metallic 整体金属度 SkyboxAttrNoTime.Roughness 整体粗糙度 天空盒环境粒子参数 名称 用法描述 SkyboxParticle.Strength 强度 SkyboxParticle.Range 范围 SkyboxParticle.Speed 速度 SkyboxParticle.Randomness 运动不规则度 天空盒滤镜参数 名称 用法描述 SkyboxFilter.Contrast 对比度 SkyboxFilter.Saturation 饱和度 SkyboxFilter.Flood 泛光强度(Bloom强度) SkyboxFilter.Exposure 曝光强度 SkyboxFilter.Volumelight 体积光强度 SkyboxFilter.Gamma 伽马强度 SkyboxFilter.Dof 景深强度-暂时没用到 SkyboxFilter.Color 滤镜颜色 SkyboxFilter.Lut 色彩校正 SkyboxFilter.Template 滤镜模板 SkyboxFilter.Bloomthreshold Bloom阀值 天空盒开关 名称 用法描述 SkyboxSwitch.Fogenable 雾开关 摄像机属性 名称 用法描述 CameraModel.MoveFollow 跟随角色移动 CameraModel.RotateFollow 跟随角色旋转 CameraModel.Autoindent 阻挡后自动缩进 CameraModel.RelativeRotate 相对人物旋转 CameraModel.RoleTranslucent 角色半透 摄像机旋转模式 名称 用法描述 CameraRotate.AllDir 全方向 CameraRotate.OnlyYaw 仅左右 CameraRotate.OnlyPitch 仅上下 CameraRotate.NoTurn 无法转动 绝对阵营 名称 用法描述 AbsoluteCampType.Noteam 无队伍 AbsoluteCampType.Team1 队伍1 AbsoluteCampType.Team2 队伍2 AbsoluteCampType.Team3 队伍3 AbsoluteCampType.Team4 队伍4 AbsoluteCampType.Team5 队伍5 AbsoluteCampType.Team6 队伍6 AbsoluteCampType.TeamNpc1 绝对阵营-npc队伍1 AbsoluteCampType.TeamNpc2 绝对阵营-npc队伍2 AbsoluteCampType.TeamNpc3 绝对阵营-npc队伍3 AbsoluteCampType.Enemy 中立敌对 AbsoluteCampType.Passive 中立被动 相对阵营 名称 用法描述 RelativeCampType.Friendly 友方 RelativeCampType.Enemy 敌方 RelativeCampType.Neutral 中立 RelativeCampType.Any 任意 游戏内弹窗界面类型 名称 用法描述 InnerPopUpview.CollectMaps 收藏地图界面 InnerPopUpview.EvaluateMaps 评价地图界面 InnerPopUpview.InviteFriend 邀请好友界面 InnerPopUpview.StorageBox 储物箱界面 InnerPopUpview.ItemTips 道具提示界面 InnerPopUpview.BuffStatus 状态界面 InnerPopUpview.Specialty 特长界面 InnerPopUpview.ItemProcessing 道具加工界面 InnerPopUpview.BackPackTask 背包任务界面 InnerPopUpview.BackPackEra 背包科技界面 InnerPopUpview.BackPackRole 背包角色界面 InnerPopUpview.AnimView 动作列表界面 InnerPopUpview.MiniMap 小地图界面 InnerPopUpview.MiniShop 官方商城界面 InnerPopUpview.AdventureHandBook ,冒险手册界面 货币类型 名称 用法描述 MiniCurrency.MiniBean 迷你豆 MiniCurrency.MiniCoin 迷你币 MiniCurrency.MiniPoint 迷你点 开发者商店页面类型 名称 用法描述 MiniShopPage.Item 道具购买 MiniShopPage.Skin 皮肤 MiniShopPage.Convert 兑换 MiniShopPage.Welfare 福利 MiniShopPage.MiniVip 大会员 MiniShopPage.WareHouse 打开仓库 MiniShopPage.CustomCoin 打开自定义货币界面 像素单位 名称 用法描述 PixelUnits.Percentage 百分比 PixelUnits.Value 绝对值 水平偏移 名称 用法描述 HorizontalOffset.Left 居左 HorizontalOffset.Centered 居中 HorizontalOffset.Right 居右 垂直偏移 名称 用法描述 VerticalOffset.Top 居上 VerticalOffset.Centered 居中 VerticalOffset.Bottom 居下 元件类型 名称 用法描述 ElementType.Texture 图片 ElementType.Button 按钮 ElementType.Text 文本 ElementType.InputText 输入框 ElementType.Loader3D 3d装载器 ElementType.SlidingContainer 滑动容器 插件类型 名称 用法描述 CustomModType.Block 方块插件 预制 CustomModType.Monster 生物插件 CustomModType.Item 道具插件 CustomModType.Recipe 配方插件 CustomModType.Furnace 熔炼插件 CustomModType.Status 状态插件 CustomModType.Biome 地形插件 CustomModType.Actor 实体 CustomModType.UI UI CustomModType.Rule 世界规则 天气类型 名称 用法描述 WeatherType.None 无天气 WeatherType.Sunshine 晴天 WeatherType.Rain 雨天 WeatherType.Sandstorm 沙尘暴 WeatherType.Snow 雪天 WeatherType.UnderWater 暴雨 WeatherType.Volcano 火山 WeatherType.Custom 自定义 按键枚举 名称 用法描述 KeyCode.A 按键A KeyCode.D 按键D KeyCode.W 按键W KeyCode.K 按键K KeyCode.I 按键I KeyCode.J 按键J KeyCode.L 按键L KeyCode.N 按键N KeyCode.Q 按键Q KeyCode.E 按键E KeyCode.U 按键U KeyCode.V 按键V KeyCode.F 按键F KeyCode.Z 按键Z KeyCode.Y 按键Y KeyCode.X 按键X KeyCode.G 按键G KeyCode.T 按键T KeyCode.B 按键B KeyCode.R 按键R KeyCode.P 按键P KeyCode.O 按键O KeyCode.C 按键C KeyCode.S 按键S KeyCode.M 按键M KeyCode.H 按键H KeyCode.Space 按键空格 KeyCode.Shift 按键Shift KeyCode.Number0 按键0 KeyCode.Number1 按键1 KeyCode.Number2 按键2 KeyCode.Number3 按键3 KeyCode.Number4 按键4 KeyCode.Number5 按键5 KeyCode.Number6 按键6 KeyCode.Number7 按键7 KeyCode.Number8 按键8 KeyCode.Number9 按键9 KeyCode.LeftButton 鼠标左键 KeyCode.RightButton 鼠标右键 KeyCode.Ctrl 按键Ctrl KeyCode.Alt 按键Alt KeyCode.Up 按键Up KeyCode.Down 按键Down KeyCode.Left 按键Left KeyCode.Right 按键Right 进度图案 名称 用法描述 ProgressImg.Background 进度背景 ProgressImg.Progress 进度值 射线检测返回类型 名称 用法描述 RayDetectType.Block 方块类型 RayDetectType.Player 玩家 RayDetectType.Actor 生物 RayDetectType.ActorType 生物类型 RayDetectType.LiquidBlock 液体方块类型 获取玩家内部控件高度 名称 用法描述 PlayerBodyUIHight.Nick 昵称 PlayerBodyUIHight.Title 称号 PlayerBodyUIHight.EffEct 头部动效 PlayerBodyUIHight.HpBar 血条 UI滑动方向 名称 用法描述 UIScollDir.Horizontal 水平滑动 UIScollDir.Vertical 垂直滑动 UIScollDir.Both 自由滑动 角度朝向 名称 用法描述 TurnFaceDir.Yaw 水平朝向 TurnFaceDir.Pitch 垂直朝向 进度值类型 名称 用法描述 ProgressVal.Min 最小值 ProgressVal.Max 最大值 ProgressVal.Current 当前值 ProgressVal.CurAndMax 当前值和最大值 天空盒时间 名称 用法描述 SkyboxTime.Current 当前时间 SkyboxTime.Time0 天空盒0点 SkyboxTime.Time4 天空盒4点 SkyboxTime.Time6 天空盒6点 SkyboxTime.Time8 天空盒8点 SkyboxTime.Time12 天空盒12点 SkyboxTime.Time16 天空盒16点 SkyboxTime.Time18 天空盒18点 SkyboxTime.Time20 天空盒20点 SkyboxTime.TimeAll 所有时间段 枪械状态 名称 用法描述 GunState.Entry 进入 GunState.Exit 离开 枪械触发事件类型 名称 用法描述 GunAction.Equip 举枪 GunAction.Idle 腰射待机 GunAction.Fire 腰射开火 GunAction.Load 腰射手动上膛 GunAction.Run 持枪冲刺 GunAction.Aim 瞄准待机 GunAction.AimFire 瞄准开火 GunAction.AimLoad 瞄准手动上膛 GunAction.Reload 腰射换弹 GunAction.ReloadEmpty 腰射空仓换弹 GunAction.Inspect 检视 枪械禁用状态类型 名称 用法描述 GunActionBan.Equip 举枪 GunActionBan.Fire 腰射开火 GunActionBan.Load 腰射手动上膛 GunActionBan.Run 持枪冲刺 GunActionBan.Aim 瞄准待机 GunActionBan.AimFire 瞄准开火 GunActionBan.AimLoad 瞄准手动上膛 GunActionBan.Reload 腰射换弹 GunActionBan.ReloadEmpty 腰射空仓换弹 GunActionBan.Inspect 检视 枪械状态 名称 用法描述 GunActionState.Fire 腰射开火 GunActionState.Aim 瞄准待机 GunActionState.Reload 腰射空仓换弹 GunActionState.Inspect 检视 动作总开关 名称 用法描述 Ability.Movement 移动能力总开关 Ability.Walking 行走 Ability.Flying 飞行 Ability.Swimming 游泳 Ability.Sneaking 潜行 Ability.Sprinting 疾跑 Ability.Jumping 跳跃 Ability.Cube 方块能力总开关 Ability.Interaction 交互方块 Ability.Place 摆放方块 Ability.Break 破坏方块 Ability.Item 道具能力总开关 Ability.Use 使用道具 Ability.Pick 拾取道具 Ability.Drop 丢弃道具 Ability.Attack 普通攻击 Ability.CanBePickup 可被举起 Ability.CanUseItemWhenBePickup 被举起时可否使用道具 Ability.EnableBeattacked 可受伤 Ability.EnableBekilled 可被杀死 Ability.EnableDeathdropitem 杀死有掉落物 Ability.EnableSwitchShortcut 可切换快捷栏 Ability.EnableRotatingCamera 可旋转摄像机 Ability.EnableInputRotate 玩家输入旋转(玩家生效) 输出日志等级 名称 用法描述 LogLevel.Print 普通输出 LogLevel.Warn 警告输出 LogLevel.Error 错误输出 错误码 名称 用法描述 ErrorCode.OK 成功 ErrorCode.FAILED 失败 ErrorCode.KV_UPDATE_GET 表安全更新拉取的返回码 ErrorCode.KV_UPDATE_SET 表安全更新设置的返回码 ErrorCode.KV_OP_CD_LMT 表设置CD超限 ErrorCode.KV_OP_QPM_LMT 表设置QPS/QPM超限 ErrorCode.KV_OP_NO_VAL 获取key不存在 ErrorCode.KV_OP_INVALID_VAL 获取key类型不匹配 举起动作类型 名称 用法描述 PickupActionType.Pickup 拾取 PickupActionType.Drop 放下 PickupActionType.Throw 投掷 PickupActionType.Unbind 解绑 区域填充类型 名称 用法描述 AreaFillType.Delete 删除 AreaFillType.Destroy 摧毁 玩家内置UI类型 名称 用法描述 PlayerNameType.Nick 昵称 PlayerNameType.Title 称号 PlayerNameType.EffEct 头部特效 开火类型 名称 用法描述 GunFireType.Auto 全自动 GunFireType.SemiAuto 半自动 GunFireType.Manual 手动 伤害类型 名称 用法描述 GunDamageType.Physics 物理伤害 GunDamageType.Fire 燃烧伤害 GunDamageType.Poison 毒素伤害 GunDamageType.Ice 冰冻伤害 散布形状 名称 用法描述 GunSpreadType.RightUp 右上 GunSpreadType.Circle 圆 GunSpreadType.NoRightDown 无右下 枪械属性 名称 用法描述 GunAttr.BaseDamage 基础伤害 GunAttr.RepelDistance 击退距离 GunAttr.BulletShrapnel 弹片数量 GunAttr.BulletConsume 消耗子弹数 GunAttr.Penetration 穿透率 GunAttr.HeadDamage 头部倍率 GunAttr.BodyDamage 躯干倍率 GunAttr.MaxAmmo 弹容量 GunAttr.Rpm 射速(每分钟子弹数) GunAttr.ReloadPhase2Time 换弹行为时间 GunAttr.ReloadPhase2TimeEmpty 空仓换弹行为时间 GunAttr.GunLevel 枪械等级 历史遗留的字段,对于游戏本体只用于显示角标 GunAttr.AdsXFunction 瞄准镜准星功能 GunAttr.AdsXScale 瞄准镜准星底图缩放值 GunAttr.ScopeXPic 瞄准镜准星贴图 GunAttr.AdsOffsetX 瞄准偏移值 GunAttr.AdsOffsetY 瞄准偏移值 GunAttr.AdsOffsetZ 瞄准偏移值 GunAttr.FireType 开火类型 GunAttr.DamageType 伤害类型 GunAttr.TouReduce 削刃值 GunAttr.HittedCameraAngle 被击中抬头反馈 GunAttr.Range 射程 GunAttr.DecayStart 衰减起始距离 GunAttr.DecayFinish 衰减结束距离 GunAttr.DecayMin 衰减最小值 GunAttr.DecayLiquid 液体衰减系数 GunAttr.HipSpreadMin 腰射散布最小值 GunAttr.HipSpreadStep 腰射散布步长 GunAttr.HipSpreadMax 腰射散布最大值 GunAttr.HipSpreadType 腰射散布类型 GunAttr.AdsSpreadMin 瞄准散布最小值 GunAttr.AdsSpreadStep 瞄准散布步长 GunAttr.AdsSpreadMax 瞄准散布最大值 GunAttr.AdsSpreadType 瞄准散布类型 GunAttr.MoveSpreadBonus 移动散布倍率 GunAttr.RunSpreadBonus 疾跑散布倍率 GunAttr.ShiftSpreadBonus 潜行散布倍率 GunAttr.ShiftMoveSpreadBonus 潜行移动散布倍率 GunAttr.JumpSpreadBonus 跳跃散布倍率 GunAttr.SpreadStepSpeed 每发增加速度 GunAttr.SpreadResetSpeed 重置速度 GunAttr.SpreadBonusResetSpeed 重置速度 GunAttr.EquipTime 切换枪械行为时间 GunAttr.AdsSwitchTime 瞄准时间 GunAttr.ScopeMagnification 瞄准倍率 GunAttr.ControlValue 操控速度(仅取值) GunAttr.HipAccValue 腰射射击精度(仅取值) GunAttr.RecoilValue 后坐力控制(仅取值) GunAttr.BaseDamageBonus 基础伤害倍率 GunAttr.ReloadTimeBonus 换弹时间倍率 GunAttr.RecoilBonus 后坐力倍率 GunAttr.RecoilPitchBonus 垂直后坐力倍率 GunAttr.RecoilYawBonus 水平后坐力倍率 GunAttr.SpreadBonus 散布倍率 GunAttr.SpreadHipBonus 腰射散布倍率 GunAttr.SpreadAdsBonus 瞄准散布倍率 GunAttr.HipMoveSpeedBonus 腰射移动速度倍率 GunAttr.AdsMoveSpeedBonus 瞄准移动速度倍率 GunAttr.AdsSwitchTimeBonus 瞄准时间倍率 GunAttr.RpmBonus 射速倍率 GunAttr.RangeBonus 射程倍率 GunAttr.BulletId 子弹ID(仅获取预制属性) 怪物刷新地形枚举 名称 用法描述 BiomeType.Sea 迷拉星浅海 BiomeType.GrassLand 迷拉星草原 BiomeType.Desert 迷拉星沙漠 BiomeType.Forest 迷拉星森林 BiomeType.Cliff 迷拉星峭壁 BiomeType.Swamp 迷拉星沼泽 BiomeType.ConiferousForest 迷拉星针叶林 BiomeType.Jungle 迷拉星丛林 BiomeType.IceSheet 迷拉星冰原 BiomeType.FrozenSea 迷拉星冻洋 BiomeType.FrozenRiver 迷拉星冻河 BiomeType.RedSoil 迷拉星红土 BiomeType.RedSoilShore 迷拉星红土海岸 BiomeType.DesertHills 迷拉星沙漠山丘 BiomeType.ForestHills 迷拉星森林山丘 BiomeType.ConiferousForestHills 迷拉星针叶林山丘 BiomeType.IceMountains 迷拉星冰山 BiomeType.JungleHills 迷拉星丛林山丘 BiomeType.River 迷拉星河流 BiomeType.Beach 迷拉星沙滩 BiomeType.CliffEdge 迷拉星峭壁边缘 BiomeType.Earthcore 烈焰星熔岩之地 BiomeType.Airland 迷拉星空岛 BiomeType.Basin 迷拉星盆地 BiomeType.BasinEdge 迷拉星盆地边缘 BiomeType.BasinBamboo 迷拉星竹林盆地 BiomeType.BasinPeach 迷拉星桃树盆地 BiomeType.EyedStarGround 萌眼星地表 BiomeType.EyedStarGroundHills 萌眼星山丘 BiomeType.EyedStarGroundPlain 萌眼星祭坛平原 BiomeType.EyedStarGroundMountain 萌眼星高山 BiomeType.EyedStarGroundHills2 萌眼星山丘2 BiomeType.EyedStarAirlands 萌眼星空岛 BiomeType.EyedStarAirlandsSub1 萌眼星子空岛1 BiomeType.EyedStarAirlandsSub2 萌眼星子空岛2 BiomeType.EyedStarAirlandsSub3 萌眼星子空岛3 BiomeType.EyedStarAirlandsSub4 萌眼星子空岛4 BiomeType.EyedStarAirlandsEdge 萌眼星空岛边缘 BiomeType.RainForest 迷拉星雨林 BiomeType.AirlandGround 迷拉星空岛地上 BiomeType.AirlandAir 迷拉星空岛空中 BiomeType.Volcano 迷拉星火山主峰 BiomeType.VolcanoPlain 迷拉星火山平原 BiomeType.VolcanoMountain 迷拉星火山山脉 BiomeType.VolcanoRiver 迷拉星火山岩浆河 BiomeType.VolcanoCore 迷拉星火山口 BiomeType.DesertOasis 迷拉星沙漠绿洲 BiomeType.DesertLake 迷拉星沙漠湖泊 BiomeType.DeepSea 迷拉星深海 BiomeType.IslandShoreDesert 迷拉星荒岛海岸 BiomeType.IslandLandDesert 迷拉星荒岛岛心 BiomeType.IslandShoreRedsoil 迷拉星红土岛海岸 BiomeType.IslandLandRedsoil 迷拉星红土岛心 BiomeType.IslandShoreReef 迷拉星珊瑚岛海岸 BiomeType.IslandLandReef 迷拉星珊瑚岛岛心 BiomeType.IceSheetConiferousForest 迷拉星覆雪针叶林 BiomeType.IceSheetHighestPeak 迷拉星雪山主峰 BiomeType.IceSheetSecondPeak 迷拉星雪山副峰 BiomeType.IceSheetMountain 迷拉星雪山山脉 BiomeType.IceSheetMountainSide 迷拉星雪山中部 BiomeType.IceSheetPeakPlain 迷拉星雪山底部 BiomeType.IceSheetSecondMountainSide 迷拉星雪山副峰中部 BiomeType.IceSheetFrizebLake 迷拉星雪山冻湖 BiomeType.Canyon 迷拉星峡谷 BiomeType.CanyonEage 迷拉星峡谷边缘 BiomeType.GrassLandArid 迷拉星干旱草原 BiomeType.GrassLandDandelion 迷拉星草原蒲公英花海 BiomeType.GrassLandRapeseed 迷拉星草原油菜花海 BiomeType.ForestLavender 迷拉星森林薰衣草花海 BiomeType.ForestFoxtail 迷拉星森林狗尾草海 BiomeType.ForestChrysanth 迷拉星森林菊花花海 BiomeType.BasinRice 迷拉星盆地稻田 BiomeType.SwampRiverSide 迷拉星沼泽河畔 BiomeType.AirlandShine 迷拉星粉蝶花空岛 BiomeType.CliffPlum 迷拉星三角梅峭壁 BiomeType.IslandLandTulip 迷拉星郁金香岛心 BiomeType.IslandShoreTulip 迷拉星郁金香海岸 BiomeType.City 迷拉星末日城镇 BiomeType.DesertPopulusEuphratica 迷拉星沙漠胡杨林 BiomeType.JungleBlueJacaranda 迷拉星丛林蓝花楹树林 BiomeType.CliffMaple 迷拉星峭壁枫叶林 BiomeType.CliffGinkgo 迷拉星峭壁银杏林 BiomeType.PlainsLake 迷拉星草原湖泊 BiomeType.BasinLake 迷拉星盆地湖泊 BiomeType.ForestLake 迷拉星森林湖泊 BiomeType.ConiferousForestLake 迷拉星针叶林湖泊 BiomeType.RainForestLake 迷拉星雨林湖泊 BiomeType.AirShipPlain 铁穹平原 BiomeType.AirShipFleet 铁穹舰队 BiomeType.MushroomPlain 荧菇平原(内层) BiomeType.StarLakeLake 星辉湖泊(内层子biome) BiomeType.MushroomForest 菇林(内层子biome) BiomeType.StarForest 星之森林(中层) BiomeType.StarForestEdge 碎岛边境(星影森林边缘子地形) BiomeType.CrystalIsland 晶簇浮岛(外层,环形轨道分布的特色浮岛) BiomeType.ShatteredIsles 破碎离岛(外层主地形,离散散布的小浮岛群;原 BIOME_BRIDGE 改名) BiomeType.MushroomHills 荧菇丘陵(内层子地形) BiomeType.MushroomPlainEdge 荧菇平原边缘(内层最外环) BiomeType.CloverStream 四叶草溪(内层子地形) BiomeType.RuneRelic 符光遗迹(内层 patch 子地形) BiomeType.StarForestHills 星影森林丘陵(中层 patch) BiomeType.DarkWoods 昏暗树林(中层 patch) BiomeType.CatDogVillage 猫狗村(中层 patch) BiomeType.CorruptededRuins 腐化遗岛(外层 Boss 区域,环形轨道上的特殊大浮岛) BiomeType.MushroomVillage 蘑菇村(内层 patch) BiomeType.Void 星尘之境虚空(纯空壳:不建块/不刷植被/动物/矿) ItemId 名称 用法描述 GridAttr.ItemNum 道具数量 GridAttr.Durable 耐久度 GridAttr.Toughness 韧性 视野距离 名称 用法描述 VDistanceRange.Near 近 VDistanceRange.Middle 中 VDistanceRange.Far 远 VDistanceRange.Further 更远 VDistanceRange.Farthest 最远 皮肤数据类型 名称 用法描述 MiniShopData.Skin 皮肤 MiniShopData.Avt 所有AVT MiniShopData.Mount 所有坐骑 MiniShopData.AllMountLevel 所有解锁等级的坐骑 标签匹配方式 名称 用法描述 MatchMode.All 全部匹配 MatchMode.Any 部分匹配 名称 用法描述 AvtPart.Body 身体 AvtPart.Head 头部 AvtPart.Face 脸 AvtPart.FaceOrnament 脸装饰 AvtPart.Jacket 夹克 AvtPart.HandOrnament 手装饰 AvtPart.Trousers 裤子 AvtPart.Shoe 鞋子 AvtPart.BackOrnament 背装饰 AvtPart.Footprint 脚印 AvtPart.Skin 皮肤 AvtPart.RightHand 右手特效 AvtPart.RightShoe 右脚特效 AvtPart.HeadEffect 头部特效 AvtPart.FaceEffect 脸特效 AvtPart.WholeBodyEffect 全身特效 AvtPart.HandEffect 手特效 AvtPart.TrailingEffect 拖尾特效 AvtPart.BgEffect 背景特效 AvtPart.WingEffect 翅膀特效 AvtPart.EquipHead 装备头部 AvtPart.EquipBreast 装备胸部 AvtPart.EquipLegging 装备腿部 AvtPart.EquipShoe 装备鞋子 AvtPart.EquipPifeng 装备披风 AvtPart.EquipWeapon 装备武器 AvtPart.EquipCustom1 装备扩展1 AvtPart.EquipCustom2 装备扩展2 AvtPart.EquipCustom3 装备扩展3 AvtPart.Max 最大值 元件属性 名称 用法描述 ElementAttr.Name 名称 ElementAttr.Color 颜色 ElementAttr.Text 文本 ElementAttr.Transparency 透明度 ElementAttr.Angle 角度 ElementAttr.Visibility 显示/隐藏状态 ElementAttr.Position 位置 ElementAttr.Size 尺寸 ElementAttr.ScrollPosition 滚动容器位置 ElementAttr.GlobalPos 绝对位置 界面属性 名称 用法描述 UIAttr.Name 名称 UIAttr.Visibility 显示/隐藏状态 游戏设置类型 名称 用法描述 GameSetting.ScopeMode 准星模式 GameSetting.CameraShake 镜头晃动 GameSetting.AutoJump 自动跳跃 GameSetting.FixedMap 固定小地图 小地图图标类型 名称 用法描述 MiniMapMarkType.DevMark 使用接口创建的图标 MiniMapMarkType.Player 玩家图标 自定义UI信标映射类型 名称 用法描述 BeaconMapType.Position 位置 BeaconMapType.Object 对象 自定义UI信标限制类型 名称 用法描述 BeaconClampType.None 无限制 BeaconClampType.Circle 圆形限制 BeaconClampType.Rectangle 矩形限制 区域复制类型 名称 用法描述 AreaCloneType.IncludeAir 复制(含空气) AreaCloneType.ExcludeAir 复制(不含空气) AreaCloneType.IncludeAirAndMove 移动(含空气) AreaCloneType.ExcludeAirAndMove 移动(不含空气) 角色举起类型 名称 用法描述 RolePickupType.Carrying 举起者 RolePickupType.Carried 被举起者 对象类型 名称 用法描述 ObjType.Entity 实体 ObjType.Mob 生物 ObjType.Player 玩家 ObjType.World 世界 ObjType.Block 方块 ObjType.UI UI编辑界面 ObjType.Area 区域 ObjType.Projectile 投掷物对象 ObjType.Pos 位置 ObjType.DropItem 掉落物 组件属性访问权限 名称 用法描述 CmpProPermission.Public 公开 CmpProPermission.Private 私有 CmpProPermission.Read 只读 组件属性预制面板显示控制 名称 用法描述 CmpUIPermission.Hide 隐藏 CmpUIPermission.Show 显示 设备类型 名称 用法描述 DeviceType.PC PC端 DeviceType.Android 安卓 DeviceType.IOS 苹果 DeviceType.Other 其他 开发者常见问题 在查阅开发者学院中的脚本API时,若有任何问题或建议,欢迎通过问卷进行反馈!【点我填写问卷】 1. 常用快捷键: 撤销-Undo(Ctrl+Z) 剪切-Cut(Ctrl+X) 复制-Copy(Ctrl+C) 粘贴-Paste(Ctrl+V) 插入ID-Insertld(Ctrl +I) 查找-Find(Ctrl+F) 全选-SelectAll(Ctrl+A) 批量注释/取消注释-Notes (Ctrl+/) 2. 如何等待1秒后继续执行? threadpool:wait(1) 3. 如何打印错误日志到调试面板 print 参数及类型: ...:number 、 string 、 boolean、数组、kv 返回值及类型: 无 该方法的主要作用: 打印信息 print("hello ",1,true) printError 参数及类型: ...:number 、 string 、 boolean、数组、kv 返回值及类型: 无 该方法的主要作用: 打印错误信息 printError("hello ",1,true) 4. Block中的data在什么地方使用 data使用有具体需求,此处不建议开发者使用。开发者尽可能使用已封装过的没有data的新接口。 5.Event 需要更详细的用法及参数解释 Event即为开发者事件,是指玩家在游戏内进行了某些操作后触发的对应事件。比如玩家点击了某个方块, 这时就会触发玩家的点击方块事件,即名为"Player.ClickBlock"的事件,开发者只要注册监听该事件就能进行点击方块后的对应操作。 注册监听事件的方法如下:ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], function(event_args) ... end)。 而开发者事件在进行回调时会传回来一些对应的参数,每个开发者事件对应的参数可参考wiki中的事件系统部分。 6.appendSpeed 接口中的x,y,z参数信息 该接口的参数x,y,z表示设定一个移动距离,需要传入整数。 案例:假设把Z设定为5,当执行一次该接口后,那么objid就会向+z轴移动5格的距离 写法:appendSpeed(objid,0,0,5) 7.World 类中可否提供一个获取有所有 Actor 的方法,或者历遍其的方法 (非 World:getActorsByBox) 由于游戏机制及效率考虑的原因,此功能不给予提供。但我们会提供触发器生物库的ActorId表 8. 播放UI动效时,如何指定不同的动效 https://dev-wiki.mini1.cn/ugc-wiki/apis/customui.html#playelementanim -- 显示动效 10001 渐显 10002 放大显示 10003 缩小显示 -- 隐藏动效 20001 渐隐 20002 放大隐藏 20003 缩小隐藏 -- 循环动效 30001 颤抖 30002 跳动 30003 心跳 30004 摇摆 30005 旋转 30006 翻转 30007 顺时针扫描 30008 逆时针扫描 30009 闪烁 -- 文字动效 40001 打字机 9.界面中的克隆元件接口如何使用 克隆体id获取方法: 1、克隆体的id为母体id#clone1、2、3。 例如“7517482985765730755-134493_3#clone2” 2、如果克隆带子元件的元件时,其子元件会被一同克隆,此时如果想要获取子元件的id,可以用以下两种方式: ? a. 直接在子元件id+#clone1、#clone2,每克隆一次+1,例如"7517482985765730755-134493_3#clone2" ? b. 用克隆体父元件id.老子元件id,例如"7517482985765730755-134493_1#clone1.7517482985765730755-134493_3" 详细示例: 首先如图我们制作一个层级关系的示例: image-20250619143457633 界面中的id如下表格所示 元件 id image-20250619143104727 7517482985765730755-134493_1 image-20250619143145092 7517482985765730755-134493_2 image-20250619143159727 7517482985765730755-134493_3 image-20250619143213415 7517482985765730755-134493_4 image-20250619143222280 7517482985765730755-134493_5 我们编写了一段代码,用来克隆元件,然后将克隆出来的子元件隐藏 local Script = {} --属性定义 Script.propertys = { } -- 需要开放给别的组件访问的函数需要配置 Script.openFnArgs = { } -- 组件启动时调用 function Script:OnStart() -- 监听UI按钮点击事件(元件id) self:AddTriggerEvent(TriggerEvent.UIButtonTouchEnd, self.OnUIButtonTouchEnd) --输出点击按钮的id self:AddTriggerEvent(TriggerEvent.UIButtonClick, self.OnUICloneButtonClick, "7517482985765730755-134493_4") --点击克隆按钮 self:AddTriggerEvent(TriggerEvent.UIButtonClick, self.OnUIHideButtonClick, "7517482985765730755-134493_5") --点击隐藏克隆出来的按钮 end function Script:OnUIButtonTouchEnd(event) --点击任意按钮时,输出点击按钮的id local id = event.uielement print("任意按钮被点击开始") print('点击了'..id) print("任意按钮被点击结束") end function Script:OnUIHideButtonClick(event) --第一种获取克隆体的子元件的方法,直接在原元件id+#clone1、#clone2,每克隆一次+1,例如"7517482985765730755-134493_3#clone2" --local isSuccess = CustomUI:HideElement(Player:GetHostUin(),"7517482985765730755-134493", "7517482985765730755-134493_3#clone1") --第二种获取克隆体的子元件的方法,用克隆体父元件id.老子元件id,例如"7517482985765730755-134493_1#clone1.7517482985765730755-134493_3" local isSuccess = CustomUI:HideElement(Player:GetHostUin(),"7517482985765730755-134493", "7517482985765730755-134493_1#clone1.7517482985765730755-134493_3") if isSuccess == true then print("隐藏成功") end end function Script:OnUICloneButtonClick(event) --点击克隆按钮时,克隆元件,然后移动元件的位置 local id = CustomUI:CloneElement(Player:GetHostUin(), "7517482985765730755-134493", "7517482985765730755-134493_1") local isSuccess = CustomUI:SetPosition(Player:GetHostUin(),"7517482985765730755-134493" ,id, 600, 200) if id ~= nil then print("克隆元件成功") print("克隆体的id:"..id) --克隆体的id为原元件id+#clone1,例如“7517482985765730755-134493_1#clone1” end end return Script 示例视频 10.【计时器组】变量如何使用 在触发器中新建【计时器】变量 在触发器中新建【计时器组】变量 在合适的时机将【计时器】添加到【计时器组】中,然后启动。参考触发器: image-20250903153840392 全局函数 具体函数名及描述如下: 序号 函数名 函数描述 1 json.decode(...) json格式字符串转换table数据 2 json.encode(...) table数据转换json格式字符串 3 GetWorld() 获取当前世界对象 4 print(...) 打印信息 5 printError(...) 打印错误信息 6 Class(...) 定义类 7 Instance(...) 创建类实例 8 GetInst() 获取类单例 json.decode 参数及类型: data:stringjson字符串 返回值及类型: ret:table解码后的table 该方法的主要作用: 解码json字符串 local tab = json.decode('{"a":1,"b":2}') json.encode 参数及类型: data:tabletable数据 返回值及类型: ret:stringjson格式字符串 该方法的主要作用: 编码table数据 local jsonstr = json.encode({a=1,b=2}) GetWorld 参数及类型: 无 返回值及类型: ret:table世界对象 该方法的主要作用: 获取当前世界对象 local world = GetWorld() print 参数及类型: ...:number 或者 string 或者 boolean: 只能传这三种类型数据的不定参数 返回值及类型: 无 该方法的主要作用: 打印信息 print("hello ",1,true) printError 参数及类型: ...:number 或者 string 或者 boolean: 只能传这三种类型数据的不定参数 返回值及类型: 无 该方法的主要作用: 打印错误信息 printError("hello ",1,true) Class 参数及类型: classname:string类名 super:string table 父类名 或者 父类原表 issingle:boolean是否单例 返回值及类型: ret:table对象定义 该方法的主要作用: 定义类对象 具体使用案例如下: local classdef = Class("Abc", {}, true) Instance 参数及类型: classname:string类名 返回值及类型: ret:table对象实例 该方法的主要作用: 创建类实例 local instance = Instance("Abc") if not instance then printError("创建实例失败 请检查类定义issingle 参数是否是false") end GetInst 参数及类型: classname:string类名 返回值及类型: ret:table对象实例 该方法的主要作用: 获取类单例 local instance = GetInst("Abc") if not instance then printError("获取单例失败 请检查类定义 issingle 参数是否是false") end 触发器脚本交互 脚本发送广播消息 步骤如下: 1.触发器组件中新建广播消息,并添加广播事件对应的执行逻辑。 2.脚本中发送广播消息,广播消息名选择广播ID即可。 动图演示:脚本使用步骤 脚本代码如下: local Script = {} function Script:OnStart() -- 监听触发器事件 玩家点击方块事件 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) end function Script:OnPlayerClickBlock(event) self:PushCustomEvent("具体广播ID",2,3) -- 需要选择具体广播ID替换 end return Script 脚本监听广播消息 步骤如下: 1.触发器组件中新建广播消息,并添加发送广播消息的事件。 2.脚本OnStart中添加监听广播消息,并实现广播消息对应的处理逻辑。 动图演示:脚本使用步骤 脚本代码如下: local Script = {} function Script:OnStart() self:AddCustomEvent("具体广播ID", self.OnCustomEvent) --具体广播ID需要选择替换 end function Script:OnCustomEvent(event, arg1,arg2) Chat:SendSystemMsg("消息名 : " .. event.eventType) Chat:SendSystemMsg("参数1 : " .. tostring(arg1)) Chat:SendSystemMsg("参数2 : " .. tostring(arg2)) end return Script 脚本调用触发器自定义函数 步骤如下: 1.触发器组件中新建自定义函数,并实现函数功能。 2.脚本中获取触发器组件,然后选择自定义函数,传入参数。 3.转玩法执行触发事件查看效果。 动图演示:脚本使用步骤 脚本代码如下: local Script = {} function Script:OnStart() -- 监听触发器事件 玩家点击方块事件 self:AddTriggerEvent(TriggerEvent.PlayerClickBlock, self.OnPlayerClickBlock) end function Script:OnPlayerClickBlock(event) -- 获取当前脚本对象 如果查找的触发器组件和当前脚本组件挂载到同一个物体上,则可以直接获取组件 local obj = self -- 获取当前世界对象 如果查找的触发器组件挂载到世界对象上,当前脚本组件不是挂载世界对象上,则需要获取世界对象 -- obj = GetWorld() -- 获取当前物体 如果查找的触发器组件挂载非世界对象上,则需要获取物体 -- obj = GameObject:FindObject("7482986899365911542-22886") --获取UI对象 --获取obj对象的触发器组件· local cmp = obj:GetComponent("具体组件ID") --需要选择具体组件替换 if cmp then -- 调用触发器组件的自定义函数 传入参数2和3 local ret = cmp:具体自定义函数名(2,3) --需要选择自定函数替换 -- 发送系统消息 将ret转换为字符串并发送 Chat:SendSystemMsg(tostring(ret)) end end return Script 触发器调用脚本开放函数 步骤如下: 1.脚本中新建自定义函数,并实现函数功能。 2.在脚本openFnArgs配置中声明需要开放外部调用的函数 3.触发器组件中选择脚本,然后选择自定义函数,传入参数。 动图演示:脚本使用步骤 脚本代码如下: local Script = {} Script.openFnArgs = { Add = { returnType = Mini.Number, -- 返回值(不填则为无返回值) displayName = "脚本加法", -- 代码块上显示的别名(不填缺省则显示函数名) params = {Mini.Number, Mini.Number},-- 参数列表类型(不填则为无参数) }, SpawnMob = { displayName = "生物生成", -- 代码块上显示的别名(不填缺省则显示函数名) params = {Mini.Vec3, Mini.MobType,Mini.Number},-- 参数列表类型 参考组件属性说明 }, } -- 返回两个数值相加 function Script:Add(a, b) if a and b then return a + b end end -- 生成生物 传入位置 生物对象 数量 function Script:SpawnMob(pos, monstertype,num) if pos and monstertype and num and num > 0 then local objs = GameObject:CreatePrefab(ObjType.Mob, monstertype, pos.x, pos.y, pos.z,num) if objs and #objs > 0 then for i, objid in ipairs(objs) do Chat:SendSystemMsg(string.format("序号 : %d 对象ID : %d ",i,objid) ) end end end end return Script 对象介绍 概述 对象是组件逻辑的载体, 对象上可以挂载多个组件。目前对象类型有:世界、ui、方块、玩家、生物、实体、投掷物、区域、位置、掉落物 注意:不同对象类型上的组件限制不一样 世界对象/ui对象: 可以使用触发器事件,其他对象只能使用个体对象事件 方块对象:方块上的组件只能使用位置去操作方块,方块并没有每个方块都独立实例化,一个类别只实例一个 ui对象:每个ui工程只有一个实例,每个玩家没有独立实例界面,组件上需要根据玩家去操作 道具目前不支持挂组件,只能使用各种自定义效果 对象的API函数(注意:不是所有对象类型都有全部接口) 序号 函数名 函数描述 1 GetId(...) 获取游戏对象id 2 GetObjType(...) 获取对象类型 3 IsValid(...) 判断对象是否有效 4 AddComponent(...) 在对象上添加指定组件 5 RemoveComponent(...) 删除对象上的指定组件 6 GetComponent(...) 获取对象上的指定组件 7 Destroy(...) 销毁对象 GetId 参数及类型: 无 返回值及类型: ret:string 对象id 该方法的主要作用: 获取该对象实例id 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 该组件挂载的对象实例 local object = self:GetGameObject() if object then local id = object:GetId() print("id", id) end end return Script GetObjType 参数及类型: 无 返回值及类型: ret: ObjType 对象类型枚举 该方法的主要作用:获取对象类型 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 该组件挂载的对象实例 local object = self:GetGameObject() if object then local objType = object:GetObjType() print("objType", objType) end end return Script IsValid 参数及类型: 无 返回值及类型: ret:boolean 是否有效 该方法的主要作用: 获取对象是否有效 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 获取对象 local object = GameObject:FindObject("对象id") -- 判断对象是否有效 if object and object:IsValid() then -- do something end end return Script AddComponent 参数及类型: string 组件id 返回值及类型: ret:component 组件对象 该方法的主要作用:对象上添加组件(对象已经存在相同id组件的则添加不上返回空) 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 获取世界对象 local world = GetWorld() if world then -- 添加组件 local cmp = object:AddComponent("组件id") if cmp then print("组件添加成功") -- do something end end end return Script RemoveComponent 参数及类型: string 组件id 返回值及类型: ret: 无 该方法的主要作用:删除对象上的指定组件 具体使用案例如下: local Script = {} -- 组件启动时调用 function Script:OnStart() -- 获取世界对象 local object = GameObject:GetWorld() if object then -- 删除组件 object:RemoveComponent("组件id") end end return Script GetComponent 参数及类型: string 组件id 返回值及类型: ret: component 组件对象 该方法的主要作用:获取对象上的指定组件 具体使用案例如下: local Script = {} function Script:OnStart() -- 获取世界对象 local object = GameObject:GetWorld() if object then -- 获取组件 local cmp = object:GetComponent("组件id") if cmp then print("组件获取成功") -- do something end end end return Script Destroy (注意:世界/ui/方块这3种对象类型没有这个接口) 参数及类型: boolean 是否杀死, 只有生物有效, 默认flase 返回值及类型: ret: 无 该方法的主要作用:销毁对象 具体使用案例如下: local Script = {} function Script:OnStart() --删除其他对象 local object = GameObject:FindObject("生物id") if object then object:Destroy(true) end -- 删除挂载的对象 local object = self:GetGameObject() if object then object:Destroy() end end return Script kv&排行榜介绍 注意: !!!3.0中kv和排行榜仅支持Data.Map 接口,不再支持2.0的CloudSever接口调用,千万不要混合使用,会造成数据丢失。 !!!3.0中kv和排行榜仅支持Data.Map 接口,不再支持2.0的CloudSever接口调用,千万不要混合使用,会造成数据丢失。 !!!3.0中kv和排行榜仅支持Data.Map 接口,不再支持2.0的CloudSever接口调用,千万不要混合使用,会造成数据丢失。 排行榜、K/V数据介绍 排行榜和K/V数据存储功能将为开发者开发具有网络化、功能更加丰富的地图提供更有力的保障。开发者不仅可以对玩家个人数据,还可以对地图维度的全局数据(如战力排行榜,竞速时间排行榜等)进行管理、保存、使用。 K/V数据 为一般普通的数据存储,其如同一张表,而表里面可以存任何类型的数据,并且可以存储多个不同关键字(Key)的表。 存储中的每个值(value)都由一个独特的键(key)索引,可以往里面添加任意值。一个key只能对应一个value,value类型可以是数值,可以是字符串,也可以是json字符串等。例如玩家相关数据可如下所示存取: 键 (KEY) 值 (VALUE) level 50 attr { "flowers": 100, "level": 6, "vip": 3,"played_count": 13, "label": "超神"} coin 78000 通过相同的数据集名称和键(key),就可以针对数据进行存/取操作。 排行榜数据 为有序数据集合,其数据存储的类型为数值类型,系统会按照数值自动进行排序,故我们把它简称为排行榜数据,其可以存储多个维度的数据进行自动排序。 排行榜可以实现地图排名前1000位玩家的数据,实现全图排行榜功能 排行榜默认排序方式为(升序)从小到大,使用get数据时,正数代表升序,负数代表降序 排行榜只能存正整数,存入的小数会进行取整数部分 排行榜基本格式如下: 键(KEY)(玩家迷你号) 值 (VALUE) 10000 5 1000085 10 10000354 12 数据保存的有效期 地图审核通过且状态属于有效中,其所存储的数据即处于有效中。 地图取消上传,数据将会继续保留30天,如果30天内未重新上传,数据将会彻底清除,无法恢复。 地图开发者主动调取删除接口,或者地图删除,则数据将会彻底清除,无法恢复。 注意:在联机或单机情况下,该功能只能实现当前地图,当前房间数据的临时存储,房间关闭后数据就会丢失。 验证数据存储的正确性,必须在**云服环境下(确保在云服房间内)**才可正确的获取到所存储的数据,在单机或者联机下将无法获取到云服下的全部数据。 如何开启K/V存储和排行榜 开发者可以在开发者工具->触发器->变量库->全局变量中,通过选择排行榜或者表来进行存储两种类型的数据。如图所示: 针对排行榜及表进行存取操作,开发者可在Lua中选择需要执行的操作动作,具体的操作动作,如下图所示: 序号 函数名 函数描述 1 SetValueAndCallBack(...) 回调设置kv、排行榜数据 2 SetValueAndBlock(...) 阻塞设置kv、排行榜数据 3 RemoveValueAndCallBack(...) 回调删除指定key的数据 4 RemoveValueAndBlock(...) 阻塞删除指定key的数据 5 UpdateValueAndCallback(...) 更新指定key的数据 6 GetValueAndCallBack(...) 回调获取kv、排行榜数据 7 GetValueAndBlock(...) 阻塞获取kv、排行榜数据 8 GetIndexValueAndCallback(...) 获取排行榜指定排名索引的值 9 GetIndexValueAndBlock(...) 获取排行榜指定排名索引的值 10 GetNumValuesAndCallback(...) 获取排行榜指定前num个值 11 GetRangeValuesAndCallback(...) 获取排行榜值为min~max区间的所有值 12 SetRankValueAndBlock(...) 阻塞设置排行榜的值 13 ClearData(...) 清空kv表/排行榜 存储限制 系统为保障存/取数据过程顺利,会对数据存储设定一些限制,以便给与玩家最好的体验。如果超过设定的限制,玩家数据将会存在丢失的风险。 每个游戏内的请求服务器的上限,系统会根据同时在线的玩家数量来动态调配,允许一定数量的数据存/取请求(更多的玩家意味有更高的配额更多的数据),具体的如下表: 请求类型 函数 每分钟请求上限 备注 设置 SetValueAndCallBack(...) SetValueAndBlock(...) RemoveValueAndCallBack(...) RemoveValueAndBlock(...) UpdateValueAndCallback(...) 30 + numPlayers × 10 每分钟该函数允许被请求的次数,超过上限将会被限制请求 获取 GetValueAndCallBack(...) GetValueAndBlock(...) 30 + numPlayers × 10 所有列出的函数共享此限制 每分钟这些函数被请求的次数之和不能超过上限,否则请求将会被限制 有序数据集(排行榜) GetIndexValueAndBlock(...) GetNumValuesAndCallback(...) GetRangeValuesAndCallback(...) ClearData(...) 5 + numPlayers × 2 所有列出的函数共享此限制 每分钟这些函数被请求的次数之和不能超过上限,否则请求将会被限制 数据长度限制 除了请求频率,数据存储同时也会限制每个条目可使用的数据量。其中键(key)、名称和数据都需要在一定的字符长度内,存储的数据量也有限制。具体的限制,如下表: 组成 最大字符数 备注 l键(key) 50 键(key)建议控制在50字符以内 名称 50 名称建议控制在50字符以内 数据 2,000,000 数据建议控制在2,000,000字符以内 由于键、名称是字符串,因此可以使用 string.len() 检查它们的长度。数据也保存为数据存储中的字符串,不管其初始类型如何,我们都可以使用 Lua 数据转换为序列化 JSON 表的 JSONEncode() 函数检查数据的大小。 全局KV数据并发读写 **全局KV数据并发读写,主要保证了多个玩家同时对一个KEY进行读写操作时的唯一性,确保读写成功,并且获取最新值。 ****应用场景 包括但不仅限于宗门系统,拍卖行系统,抢购系统等,开发者可根据自己的业务需要,选择使用。** 普通的[SetValueAndBlock] 和[SetValueAndCallBack] 接口已经满足KV数据的绝大多数存取需求,但是当需要实现全服共同宗门系统(全局属性,例如总人数和贡献值等)、全服共同拍卖行(售卖物品的剩余数量)等大型跨游戏房间功能的时候,容易出现数据的彼此覆盖,没法保证全局唯一性。 为保证全局唯一性,我们特意设计了全新的UpdateValueAndCallback(...)接口。使用该接口,开发者仅需自己处理一个回调函数,在函数中处理自己的数据的逻辑。接口底层会自动重试,直至数据修改成功。 注意:此接口只在云服有效,不要单机或联机测试这个接口! 注意:**此**接口只在云服有效,不要单机或联机测试这个接口!! 注意:**此**接口只在云服有效,不要单机或联机测试这个接口!!! 若遇到冲突、失败的情况,接口会自动回传最新的数据值,并调用开发者的回调函数,按照开发者自己设定的逻辑进行更新数据,确保了数据不出错,不会被其他玩家覆盖。 callback函数示例说明 UpdateValueAndCallback(...) 参数及类型: varId:stringkv表变量ID playerId:number玩家uin key:string键值(数值会转换成字符串) value:string,number,boolean具体值 返回值及类型: ret:bool是否成功 (全局云KV变量可用) 该方法的主要作用: 安全更新表中某个key下的值,并发存取数据,确保Key下的值唯一性 具体使用案例如下: -- ret只有0和2两种值 -- callback至少会调用两次,首次调用ret必然为0,用于设置数值 -- 第2次或第2次以上调用callback时,如果设置失败会再次调用callback,此时ret为0;如果设置成功则ret为ErrorCode.OK,不会再次设置 local function GlobalKVCallback(code,key,value) Chat:SendChat(table.concat({"UpdateValueAndCallback code = ",tostring(code), "key = ",tostring(key), "value = ",tostring(value)}, " ")) value = json.decode(value) or value print("code", code , "key", key, "value", value) if code == ErrorCode.KV_UPDATE_SET then -- 需要返回更新设置的最终值 value = value or {} value.updatevalue = 999 return json.encode(value) -- 需要返回更新设置的最终值 并且序列化结构 elseif code == ErrorCode.KV_UPDATE_GET then print("获取到的当前最新的值:", value) elseif code == ErrorCode.OK then print("更新完成") else print("更新失败") end end local result = Data.Map:UpdateValueAndCallback(GlobalKV, nil, "GlobalKV_Key2", GlobalKVCallback) if result then print("调用成功") else print("调用失败") end 普通KV存储 VS 全局KV数据并发读写 普通KV存储set操作时,执行速度更快一些。直接保存key对应的数据,只会有写入时的每分钟请求次数限制。但是在多服同时对同一个KEY进行写数据的时候容易造成数据不一致。 全局KV数据并发读写(UpdateValueAndCallback(...))执行更慢,因为修改之前会读取最新的值,然后尝试写入。因此该接口同时受到读取和写入的每分钟请求次数限制。另外,它第一次操作某个key时,因为数据不存在会返回空值,此时依然是在callback里面处理,并提交首次有效数据给底层。 注意事项 1.UpdateValueAndCallback(...)接口无需事先设置key对应的数据,因为数据都在callback里面提交,从无到有的第一次数据也是这里提交。这样才能避免同时对同一个KEY的数据操作时,彼此冲突覆盖问题; 2.非必要慎用UpdateValueAndCallback(...)接口,性能降低。只有业务场景,必须要对同一个key的数据进行写操作时,保证唯一性、正确性的场景和功能时,才推荐使用该接口; 3.使用UpdateValueAndCallback(...)修改过的数据,请勿使用普通SetValueAndBlock接口去设置新值,因为会直接覆盖掉原来数据,没法保证唯一、正确性,而且有可能导致其它问题; 4.对同一个key,**禁止混用****普通SetValueAndBlock和UpdateValueAndCallback(...)去存数据**; 5.此接口只在云服有效,不要单机或联机测试这个接口; 6.每个key只能设置一个回调,设置后不能随意修改; 7.Update接口操作的数据,其set操作只能在callback里面,并采用返回最新value进行修改,千万别基于自己调用get拿到的数据进行操作,容易导致数据覆盖,出错。 最佳实践 **Q:****执行set操作,出现请求失败** **A:**1、避免出现服务器CD限制,相同key的set操作需要间隔>=6s,避免同一秒多次set相同key的情况,导致数据没有保存成功。 2、避免无变化的数据,仍不停去执行set操作。给需要保存的数据设置needSave之类的布尔值标签,数据变化了设置为true,定时保存中根据needSave为true时候发送set请求保存,否则没必要发送到服务器。 3、避免绑定玩家行走、碰撞等高频行为而触发实时读写操作,否则一个玩家有可能一秒内触发数百个数据读写请求。 4、避免触发每分钟请求数QPM限制。 5、妥善处理set或get返回失败的情况,可以创建请求失败列,合理安排时机重试几次,一旦成功就从失败列表移除。 **Q:****一个游戏可以设置多个排行榜** **A:**1、一个游戏可以包括多个维度的排行榜,如:得分排行榜,击杀Boss次数排行榜,速度排行榜,时长排行榜,技能点数排行榜等。 2、如果游戏里有多个排行榜,每个榜的刷新时间要错开。 **Q:****排行榜最多可以设置多少位排名?** **A:**1、单个排行榜最多可存储1万名。 2、建议排行榜展示名次最好不要超过TOP 30,最多展示前100名。展示的名次越多,参与排行的人数越多,越影响性能,导致响应变慢;设计的时候需要做合理的取舍。 **Q:****如何合理的进行set,get操作?** **A:**1、避免零值(或初始值)参与排行榜,会出现所有玩家都进行set操作了一次。 2、避免低于排行榜最后一名的数据也set操作。假设你的排行榜展示前50名,如果第50名已经有100分了,那么对于分数低于100分的玩家就无需添加到排行榜里面去。 3、参与排行的数值,比如经验,等级,杀怪数量等,这几个数值可以序列化成json字符串保存在一个kv中,避免多次拉取数据的情况。 4、假设某游戏有经验,等级,杀怪数3个排行榜,那么可以一个玩家一个json保存在kv表里面,key为玩家uin,value为json: {"exp": 888999,"lvl": 7,"kmonster": 39} 5、区分游戏商店购买、任务、成就等模块的配置和需要持久化的状态数据。 **Q:****配置文件建议不设置到数据储存中** A: 通用配置可以放脚本或另外一个全局表里,没有必要存储在kv表里。 "FindMaHongJun_5":{"questName":"FindMaHongJun_5","questProg":0,"questProgAll":1,"questSta":"no"} 这种可以简化,假设TaskID:10086表示该任务,那么 "10086":[0,1,0] 数组第1个元素表示questProg,第2个元素表示questProgAll,第三个元素表示questSta。 排行榜案例 参考2.0文档 https://dev-wiki.mini1.cn/wiki/673b36153ffc6baf0859d33a 二维表介绍 介绍 二维表变量是将数据以表格的形式存储的新变量类型,使用非常简单。大家在制作RPG、塔防等需要大量配置的游戏时,再也不用新建多个数组,直接通过二维表就能快捷的实现。 二维表支持全局变量和玩家变量,其中玩家的二维表可以在服务器上保存数据,在新建变量时选择云变量即可。 image-20250424102940313 表格编辑 在你第一次新建二维表变量时,需要先定义二维表的列字段。点击查看/编辑,进入二维表编辑页面。 image-20250424103250911 模板导出 当前版本只支持csv表格导入,通过excel可以使用公式填充更高效快捷的编辑数据,之后会开放表格编辑工具。 你可以点击导出示例,来查看官方支持的数据类型。 image-20250424103322663 表格编辑 首先使用excel或wps打开导出的文档。我们可以看到如下的模板。 image-20250424103359323 第一行为字段的备注,主要用来说明字段的用途,避免混淆字段。备注填写后在调试或查看时,可以更快速的判断字段的用途。备注非必要字段,可为空。 image-20250424103433981 第二行为列名,用于在编辑和逻辑调用时区分不同的字段。该字段为必填项且不可重复。 image-20250424103457659 第三行为列的类型,我们会根据不同的类型,将下方填写的值解析成不同的数据类型。方便在逻辑中更好的运用。以下是当前版本支持的数据类型。注意数据类型为必填项,且必须和官方的定义完全一致,否则无法识别。 参数类型 类型名 参考填写值 数值 number 1 三维坐标 position 0|7|0 字符串 string 迷你世界你好 布尔值 bool 0 方块类型 block 100 道具类型 item 101 生物类型 actorid 3400 特效类型 effectid 1000 玩家 player 1000077763 对象实例 objid 154467589 图案 image 8_400415944_1642835210 颜色 color #91b8b8 第四行之后的数据为实际数据,可以在编辑模式下设置默认值,在运行中实时增删改查。那我们如何查找游戏中的各种id呢?可以打开脚本编辑器或触发器,选中对应的参数类型,然后在选择器中找到想要的参数,接着点击ctrl+c或复制按钮,即可复制id。最后将对应id在excel中填写。 image-20250424103520105 image-20250424103541130 表格导入 当你在excel中配置好需要的数据类型后,就可以打开点击导入,选择你刚刚编辑好的表格了。 image-20250424103549201 二维表常见问题 Q:我可以在运行时动态扩充列吗 A:不可以,必须在编辑模式下定义好所有的列数据类型。 Q:导入后提示”超过2000行“ A:目前单个表格最多只支持2000行数据。 Q:导入提示”未能识别某列的列类型“ A:支持的数据类型为上方表格限定范围,请检查是否与官方给定的一致。 Q:导入提示”列名不允许重复,请重新输入“ A:列名需要保持唯一,否则在触发器中无法区分不同的字段,请修改表格后重试。 Q:导出后提示”缺少列名“ A:列名不允许为空,请修改表格后重试。 Q:导出后提示”第x列中数据与数据类型不符,已自动置空“ A:数据类型和下方的值需要对应,如果填写的值无法按数据类型解析,会将该值重置为空值。 Q:行数据可以为空吗 A:可以的,如果设置为空,在读取时也会返回空值。建议在读写时用触发器的空值判断后再进行操作。 image-20250424103601291 Q:运行过程中提示我”数据超过上限,请联系开发者“ A:单个玩家的二维表变量和其他云变量的存储总量受64K的限制 Q:为什么我的数据表都是正确的,但是提示”数据与类型不符“ A:这个是一个bug,等待下个版本修复。 逻辑操作(lua接口参考二维表变量数据管理接口 Table | 迷你世界UGC3.0脚本Wiki) 动作:在(二维表↓)添加一行数据()()()() 说明: 在表的末尾插入数据,选择要操作的二维表后,后方会自动根据表格解析出数据类型。 原始表格: image-20250424103613195 触发器: image-20250424104140023 运行结果: image-20250424104149951 动作:在(二维表↓)中第()行插入数据()()()() 说明: 新增一行并插入到对应的行数中,原有行数的行往后移。 原始表格: image-20250424103619530 触发器: image-20250424104205024 运行结果: image-20250424104213404 动作:替换(二维表↓)中列名为()行为()行数据为(任意值) 说明: 在二维表中修改某列数据值,可以指定修改要修改的行数,支持传入数组后修改多行的数据。 原始表格: image-20250424103619530 触发器: image-20250424104224342 运行结果: image-20250424104233827 动作:更新(二维表↓)中列名为()数据(=)(任意值)的行:第()列数据为(任意值) 说明: 在表格中查找列中对应数据的行,如果查找到后可以修改其他列的数据为另一个值。例如我们想把分数是0分的人的名称修改为“零分的人”.我们要查找“分数"列等于0分的行,我们找到了第三行,这时候可以修改第三行的”名称“数据为“零分的人”。 原始表格: image-20250424103619530 触发器: image-20250424104243480 运行结果: image-20250424104251460 动作:删除(二维表↓)中第()行数据 说明: 将某一行删除,下方的行往上移。 原始表格: image-20250424103619530 触发器: image-20250424104300725 运行结果: image-20250424104308628 动作:清空(二维表↓) 说明: 清空二维表的所有数据,请谨慎操作。 原始表格: image-20250424103619530 触发器: image-20250424104317943 运行结果: image-20250424104324775 取值,返回不同类型值:查询(二维表↓)中第()列()行数据 说明: 获取对应数据对应行数的值,切换列类型后该积木的数据类型会实时变化。 原始表格: image-20250424103619530 触发器: image-20250424104840238 运行结果: image-20250424104848020 取值,返回不同类型数组:查询(二维表↓)中第()列数据 说明: 获取指定列的数据,返回的是对应数据类型的数组 原始表格: image-20250424103619530 触发器: image-20250424104856784 运行结果: image-20250424104904182 取值,返回数值:查询(二维表↓)总行数 说明 获取表格的总行数。 原始表格: image-20250424103619530 触发器: image-20250424104914096 运行结果: image-20250424104921209 取值,返回数值:查询(二维表↓)中第()列中 值为()的行数 说明: 查询表格中某列数据中对应值的行,如果有多行只返回第一行。 原始表格: image-20250424103619530 触发器: image-20250424104931554 运行结果: image-20250424110303186 取值,返回数值组:查询(二维表↓)中第()列中 值为()的行数组 说明: 查询表格中某列数据中对应值的行的数值组。 原始表格: image-20250424103619530 触发器: image-20250424105117418 运行结果: image-20250424105125613 数据调试 在运行过程中点击调试后,可以点击对应的二维表,查看当前二维表的值。 查看的同时可以将运行结果导出到电脑中,之后在编辑模式下直接导入使用。 image-20250424105139081 image-20250424105148104 image-20250424105154455 道具实例介绍 什么是道具实例 道具实例是存在于格子上的道具数据,它是从道具模板创建的。每个道具实例都有自己的属性,这些属性可以在游戏中被修改或更新。 目前暂时只有模型组件和枪械组件支持道具实例的相关功能。使用创建道具实例的接口来创建,道具实例会带有模型组件相关属性;使用创建枪械道具实例的接口来创建,道具实例会带有模型组件和枪械组件的相关属性。 使用道具实例功能,可以制作出枪械修改等玩法。 创建道具实例 序号 函数名 函数描述 1 CreateItemInstInBackpack(...) 在玩家的背包内创建一个道具实例 2 CreateGunInBackpack(...) 在玩家的背包内创建一把实例化的枪械 3 CreateItemInstInWorld(...) 在位置上创建道具实例的掉落物 4 CreateGunInWorld(...) 在位置上创建枪械道具实例的掉落物 获取道具实例或ID 序号 函数名 函数描述 1 GetDropItemInstanceId(...) 根据掉落物objid获取道具实例id 2 GetItemIdByInstanceId(...) 根据道具实例ID获取道具ID 3 GetResIdByInstanceId(...) 根据道具实例ID获取预制ID 4 GetAllBackPackInstanceIds(...) 获取指定背包中所有道具实例 5 GetInstIdByGridIndex(...) 根据背包索引获取道具实例id 6 GetGunInstIdInBackpack(...) 获取背包所有实例化的枪械 7 GetAllStorageItemInstanceIds(...) 获取储物箱里所有的道具实例(只取通过接口创建的道具实例) 8 GetStorageItemInstanceId(...) 获取储物箱内指定格子的道具实例ID 获取和修改道具实例属性 序号 函数名 函数描述 1 ModifyGunAttribute(...) 修改枪械道具实例的属性 2 GetGunAttribute(...) 获取枪械道具实例的属性 3 GetGunPrefabAttribute(...) 获取枪预制的属性 4 AddSubModelPart(...) 给道具实例添加一个模型子部件 5 DeleteSubModelPart(...) 删除一个道具实例的模型子部件 6 ReplaceSubModelPart(...) 修改一个道具实例的模型子部件 7 SetStringCustomData(...) 设置道具实例的自定义数据string 8 SetBoolCustomData(...) 设置道具实例的自定义数据bool 9 SetNumberCustomData(...) 设置道具实例的自定义数据number 10 SetObjCustomData(...) 设置道具实例的自定义数据Object 11 SetArrayCustomData(...) 设置道具实例的自定义数据Array 12 GetStringCustomData(...) 获取道具实例的自定义数据string 13 GetBoolCustomData(...) 获取道具实例的自定义数据bool 14 GetNumberCustomData(...) 获取道具实例的自定义数据number 15 GetObjCustomData(...) 获取道具实例的自定义数据Object 16 GetArrayCustomData(...) 获取道具实例的自定义数据Array 在界面模型装载器上显示道具实例的模型 SetLoaderModel 参数及类型: playerid:number玩家ID uiid:string界面ID elementid:string元件ID modleName:string模型名称 返回值及类型: ret:bool是否成功 该方法的主要作用: 设置装载器的模型(调用道具实例的模型:模型名称填ItemInstance_道具实例id) 具体使用案例如下: local isSuccess = CustomUI:SetLoaderModel(Player:GetHostUin(),"7482986899365911542-22886","7482986899365911542-22886_5", "ItemInstance_15864891562") 注意 格子数据同步问题:道具实例的数据是存在于背包格子上的,修改了格子数据后,会按照一定的时间间隔同步。如果修改格子数据后立刻通知客机刷新界面,则会出现客机还没收到同步数据就刷新的情况,会导致客机显示模型没变化。解决办法是修改格子数据后等待一小会,例如0.5秒,再通知客机刷新界面。 环境(天空盒)模块 Wiki —— 迷你世界 关于本文档:本 Wiki 介绍《迷你世界》中「环境」模块(即游戏里决定整个世界天空与氛围的系统,底层也叫"天空盒")。本文用"功能 + 效果描述"说明每一项,不需要懂代码即可理解使用。 一、什么是「环境」 「环境」是迷你世界里决定整个世界视觉氛围的总开关。它不只是头顶那张天空图,而是一整套配置,涵盖: 天空的颜色与渐变 太阳、月亮、星空 云、雾、风 水面的颜色与质感 整个世界的光照明暗 1.1 环境 vs 滤镜(容易混淆,重要区分) 这是两套独立、但经常一起调的系统: 系统 改的是什么 类比 环境 世界里的真实景物:天空、光、云雾水 重新布置一个真实场景 滤镜 镜头/画面的成像效果:对比、饱和、色调 给相机镜头加一层滤镜 简单判断:玩家说的是"世界里有什么"→ 改环境;说的是"画面看起来怎样"→ 改滤镜。两者可以叠加使用。 二、环境模板(一键套用的预设) 2.1 模板是什么 环境以模板为单位。每个模板都是一整套调好的预设氛围,选中即整体套用,玩家不用逐项手调。 游戏内置 27 个模板槽位(含 1 个"空模板 = 不启用环境",其余 26 个为可用预设)。 切换模板 = 把整个世界的天空、光照、云雾水一次性换成那套预设。 这是最快达到目标氛围的方式——想要某种感觉,先看有没有现成模板。 2.2 模板清单 编号 名称 风格氛围 缩略图 0 空模板 不启用环境 空模板 1 经典 通用写实白天 经典 2 卡通风格 卡通可爱明快 卡通风格 3 自然过渡 自然写实柔和 自然过渡 4 梦幻粉 梦幻粉色唯美 梦幻粉 5 冰雪蓝 冰雪寒冷冷调 冰雪蓝 6 烈焰红 炽热红色危险 烈焰红 7 废土黄 废土荒凉末世 废土黄 8 科幻灰 科幻赛博冷调 科幻灰 9 毒雾绿 毒雾诡异绿色 毒雾绿 10 水墨 水墨国风黑白 水墨 11 青山绿水 水墨国风青绿 青山绿水 12 森林 森林绿意自然 森林 13 沙漠 沙漠干旱暖黄 沙漠 14 冰原 冰原寒冷冷白 冰原 15 沼泽 沼泽阴湿暗绿 沼泽 16 火山 火山炽热红黑 火山 17 雨林 雨林湿润浓绿 雨林 18 丛林 丛林茂密绿 丛林 19 针叶林 针叶林冷绿高纬 针叶林 20 高山 高山高远冷蓝 高山 21 海洋 海洋蔚蓝开阔 海洋 22 空岛 空岛天空悬浮 空岛 23 盆地 盆地低地柔和 盆地 24 草原 草原开阔绿黄 草原 25 热带草原 热带温暖黄绿 热带草原 26 发光空岛 发光奇幻绚丽 发光空岛 三、环境的可调属性(精细调整时用) 模板是"一键套用",但每个模板内部还有很多可单独微调的属性。下面按类别说明每一项是什么、改了有什么效果。 3.1 ? 核心机制:一天有 8 个时间段 环境不是一套固定画面,而是按一天里的不同时刻分别存了多套配置,时间推进时自动平滑过渡。所以同一个模板,正午和午夜可以完全不一样。 时间段 大致时刻 感受 午夜 0 点 深夜、最暗 黎明前 4 点 将亮未亮 日出 6 点 天边泛光 清晨 8 点 明亮清新 正午 12 点 最亮 下午 16 点 偏暖 黄昏 18 点 日落、橙红 夜晚 20 点 入夜、繁星 关键:调颜色或参数时要想清楚作用于哪个时间段(或选"全天")。比如玩家说"傍晚再暖一点",就只调黄昏段;说"整体调暗",就改全部时间段。下面 3.2~3.10 的属性,每个时间段都可以独立设置。 3.2 天空颜色 天空的渐变主要由顶部、腰部、底部三段颜色决定,这是营造氛围最直接的三个颜色。 设置项 效果 天空顶部颜色 头顶正上方的天色 天空腰部颜色 天空中段的过渡色 天空底部颜色 接近地平线的天色 天空光照颜色 天空整体散发的光的颜色(偏冷/偏暖) 环境光颜色 笼罩全场景的环境光颜色 3.3 光照(明暗) 控制世界整体的亮度和光的颜色,直接决定"白天黑夜""刺眼还是柔和"。 设置项 效果 太阳光强度 主光(平行光)的强弱,决定刺眼或柔和 太阳光颜色 主光的颜色 环境光强度 阴影处、背光面的整体亮度 环境光颜色 补光的颜色 3.4 太阳与月亮 设置项 效果 太阳颜色 太阳本体的颜色 太阳大小 天上太阳的视觉大小 月亮颜色 月亮本体的颜色 月亮大小 天上月亮的视觉大小 3.5 星空 设置项 效果 星星密度 夜空中星星的多少 白天一般没有星星(密度接近 0),夜晚调高才会出现繁星。 3.6 雾 雾是营造"朦胧 / 神秘 / 压抑"氛围的关键。 设置项 效果 雾开关 是否启用雾 雾颜色 雾的颜色(如白雾、紫色毒雾) 雾起始距离 离玩家多远开始有雾 雾结束距离 多远之外完全被雾遮住 起始距离越近、结束距离越近,雾越浓。玩家说"雾浓一点"就把这两个距离都拉近。 3.7 云 设置项 效果 云移动速度 云飘动的快慢 云密度 云的多少/厚度 云高度 云层的高低 云颜色 云的颜色(如晚霞红云、乌云) 3.8 水面 设置项 效果 水面开关 水面的总开关,可整体开启或关闭水面(开/关两态) 水颜色 水的颜色与浑浊感 水透明度 能不能看清水底 水镜面度 水面反射的强弱(越高越像镜子) 说明:水面可通过开关整体开启/关闭;而「反射强度(水镜面度)」只能调节数值大小,没有独立的开关。 3.9 风 设置项 效果 风速 影响植被、粒子等的摆动幅度 3.10 整体材质(不分时间段) 这两项作用于整个世界的物体表面质感,全天统一,不随时间变化。 设置项 效果 整体金属度 物体表面的金属感强弱 整体粗糙度 物体表面的反光是否锐利(越低越亮面,越高越哑光) 四、自定义天空贴图 除了用预设模板,环境还支持替换天空贴图,做出完全自定义的天空。游戏内置了 43 张预设贴图资源供玩家直接选用,也可以上传自己的图片。 可替换的贴图分三类: 贴图层 作用 游戏内置预设数量 天空贴图 整片天空的图案 19 张 太阳贴图 太阳的样式 5 张 月亮贴图 月亮的样式 5 张 4.1 天空贴图预设(19 张) ID 名称 描述 0_30000 默认 默认天空盒 0_30001 天空1 粉绿渐变(左上绿色到右下粉红色的四色渐变,色块感强) 0_30002 天空2 粉紫渐变(粉色到淡紫色的柔和渐变,右上角有白色光晕) 0_30003 天空3 彩虹渐变(紫粉黄蓝多色流动渐变,梦幻感强) 0_30004 天空4 粉蓝渐变(上粉下蓝的双色渐变,清新柔和) 0_30005 天空5 深空紫(深紫色背景,中央有明亮的紫色光点,神秘感) 0_30006 天空6 银河系(黑色背景,白色星系盘面,写实风格的侧视银河) 0_30007 天空7 紫色星云(紫色调的星云云团,带有星点,梦幻太空感) 0_30008 天空8 绿黄星云(绿色和黄色交织的星云,色彩浓烈,科幻感强) 0_30009 天空9 紫红云海(深紫红色云层,底部有剪影山峰,暗黑奇幻风) 0_30010 天空10 深蓝星空(深蓝黑色夜空,右侧有淡蓝色星云带,宁静深邃) 0_30011 天空11 粉紫星空(粉紫渐变背景,散布白色星点,浪漫梦幻) 0_30012 天空12 紫蓝星云(深紫到蓝色的星云渐变,中央有明亮光带,科幻感强) 0_30013 全景天空1 蓝天白云(写实风格,蓝天+层叠白云,明亮清新) 0_30014 全景天空2 绿色极光(深色天空,绿色极光带,科幻神秘感) 0_30015 全景天空3 水墨山水(黑白水墨风格,层叠山峦剪影,中国风意境) 0_30016 全景天空4 青绿山水(青绿色调的山峦,古典山水画风格) 0_30017 全景天空5 蓝天白云2(深蓝天空,底部白云层,清爽明快) 0_30018 全景天空6 云海日出(云层上方视角,阳光穿透云层,壮丽感) 4.2 太阳贴图预设(5 张) ID 名称 描述 0_30101 太阳1 黄色太阳(金黄色球体,表面有纹理细节,明亮温暖) 0_30102 太阳2 橙红太阳(橙红色球体,表面颗粒感强,炽热感) 0_30103 太阳3 日环(黑色背景,橙色光环,中心暗黑,日食效果) 0_30104 太阳4 黑洞(黑色球体,周围白色吸积盘,科幻感强) 0_30105 太阳5 白色恒星(白色发光球体,光晕柔和,高亮度) 4.3 月亮贴图预设(5 张) ID 名称 描述 0_30201 月亮1 写实月球(灰白色月球表面,环形山清晰可见,写实风格) 0_30202 月亮2 血月(深红色月球,神秘诡异氛围) 0_30203 月亮3 蓝色月环(深蓝色球体,外围蓝色光环,科幻感) 0_30204 月亮4 新月(黑色背景,白色弯月+蓝色光晕,宁静梦幻) 0_30205 月亮5 星芒月(白色十字星芒光效,中心明亮,魔幻感强) 4.4 LUT 色彩风格预设(14 张) 这 14 张是滤镜用的 LUT(色彩查找表),不是天空贴图,但也在同一资源表里。玩家在 §五滤镜模板或单独调 LUT 时会用到。 ID 名称 描述 0_30301 冷色调 画面偏蓝绿冷色,营造冷峻、科技或冬季氛围 0_30302 暖色调 画面偏橙黄暖色,营造温暖、怀旧或日落氛围 0_30303 卡通 色彩饱和度高,对比强烈,卡通动画风格 0_30304 夜视 绿色单色调,模拟夜视仪效果 0_30305 反转 颜色反转(负片效果),诡异超现实感 0_30306 电影感 低饱和度+高对比度,电影胶片质感 0_30307 海岛 蓝绿色调为主,清爽海洋度假氛围 0_30308 回忆 泛黄褪色效果,怀旧复古感 0_30309 明艳 高饱和度+高亮度,鲜艳明快 0_30310 青橙 青色阴影+橙色高光,电影调色常用对比色 0_30311 清新 淡雅柔和色调,小清新风格 0_30312 日系 柔和淡雅+轻微过曝,日系摄影风格 0_30313 日系过曝 日系风格+明显过曝,梦幻柔光感 0_30314 郁金香 粉紫色调为主,浪漫柔美氛围(推测以郁金香花色命名) 说明:这 14 个 LUT 对应 §5.1 滤镜模板清单里编号 10~18 那些"套用 XX LUT"的模板,以及单独调节滤镜时的"LUT 色彩风格"选项。 五、滤镜(画面效果) 滤镜作用在镜头/画面上,是和环境配合使用的"成像调色"。玩家可单独调节以下效果: 滤镜效果 作用 对比度 明暗反差(越高越通透分明) 饱和度 颜色的鲜艳程度 泛光强度 亮部的柔光扩散(越高越柔和梦幻) 曝光强度 画面整体亮暗 体积光强度 光束(丁达尔效应)的明显度 伽马强度 中间调的亮暗倾向 以上是常用的 6 项。还有若干"电影色调"高级微调项和「Bloom 阈值」属于进阶项,一般玩家不需要直接调。 此外滤镜还支持几种"一键"能力: 滤镜颜色:给整个画面统一染一层色。 LUT 色彩风格:一键切换预置的色彩调性(游戏内置 14 套)。 滤镜模板:一键套用整套画面风格(游戏内置 19 套,清单见 §5.1)。 玩家说"画面整体偏冷一点""换个电影感"这类,通常用 LUT 或滤镜模板最快达成。 5.1 滤镜模板清单 和环境模板一样,滤镜也有一键套用的预设。共 19 个槽位(编号 0~18,其中 0 为"空模板 = 不套滤镜")。下表「画面效果」一列描述套用后画面大致长什么样,依据各模板的实际调色参数(染色、对比、饱和、曝光等)整理。 编号 名称 画面效果(套用后大致长什么样) 缩略图 0 空模板 不套任何滤镜,画面保持原样 空模板 1 经典 标准默认调色,自然不偏色,作为基准 经典 2 卡通 高饱和、对比略增,颜色鲜艳明快,偏曝光较亮 卡通 3 夜视 套用专门的夜视 LUT,画面整体压暗、泛光关闭,暗环境观感 夜视 4 蓝绿 整体偏黄绿调(暖中带绿),适合山野/自然场景 蓝绿 5 雾蓝 强偏冷蓝调、对比拉高、曝光偏强,冷峻通透的雾感 雾蓝 6 浅红 整体染红、对比很高、饱和降到 0(近单色红),危险/紧张氛围 浅红 7 日出黄 暖黄偏青的晨光调,曝光偏亮,清晨柔和感 日出黄 8 回忆灰 偏灰蓝、对比很高、饱和偏低、曝光偏亮,老照片般的怀旧感 回忆灰 9 黑白 饱和度归零(纯黑白)、对比偏高、曝光很亮,强烈的黑白纪实感 黑白 10 电影感 套用电影感 LUT,对比与色调偏电影质感 电影感 11 海岛 套用海岛 LUT,明亮通透、偏清爽的海岛色调 海岛 12 回忆 套用回忆 LUT,偏柔和怀旧的色调 回忆 13 明艳 套用明艳 LUT,色彩浓郁鲜亮 明艳 14 青橙 套用青橙 LUT,暗部偏青、亮部偏橙的电影流行配色 青橙 15 清新 套用清新 LUT,淡雅明快、偏小清新 清新 16 日系 套用日系 LUT,低对比、淡雅通透的日系观感 日系 17 日系过曝 套用日系过曝 LUT,在日系基础上整体更亮、发白的过曝感 日系过曝 18 郁金香 套用郁金香 LUT,偏暖粉/紫的柔美色调 郁金香 六、脚本接口(写 Lua 时用) 如果你要在地图里用脚本动态控制环境(比如玩家进入某区域自动切换成夜晚、Boss 出现时天空变红),就需要调用下面的接口。以下接口均来自游戏可视化编程 / Lua 脚本实际暴露的能力。 说明: time 参数填游戏时间(小时),可用时间点见 §3.1 的 8 个时间段(如 0 / 6 / 12 / 18 / 20)。 itype 参数填对应的设置项类型(如颜色项、属性项),即 §三 各表里列的那些设置项。 颜色统一用 16 进制字符串,如 0xffffff(白)、0xff0000(红)。 多数数值参数取值范围为 0~100。 带 Anim 的接口支持过渡动画,让变化平滑而非瞬变。 6.1 环境(世界场景)接口 接口 作用 主要参数 World:SetSkyBoxTemplate(value) 一键切换环境模板 value:模板编号 0~26 World:SetSkyBoxColor(time, itype, color) 设置某时间段的某项颜色 time 时间;itype 颜色项;color 如 0xffffff World:SetSkyBoxAttr(time, itype, value) 设置某时间段的某项参数 time 时间;itype 参数项;value 0~100 World:SetSkyBoxAttrWithNoTime(itype, value) 设置不分时间的参数(如金属度/粗糙度) itype 参数项;value 0~100 World:SetSkyBoxSwitch(time, itype, value) 设置开关类(如雾的开/关) time 时间;itype 开关项;value 0/1 World:SetSkyBoxMaps(itype, url) 替换天空/太阳/月亮贴图 itype 贴图层;url 图片链接 6.2 滤镜(画面效果)接口 滤镜是针对玩家生效的,所以接口带 playerid(可传单个玩家或玩家组)。 接口 作用 主要参数 World:SetSkyBoxFilter(playerid, itype, value) 设置某项滤镜参数 playerid 玩家;itype 滤镜项;value 0~100 或颜色值 Trigger.World:SetSkyBoxFilterColor(...) 设置滤镜整体染色 玩家/玩家组;颜色值 Trigger.World:SetSkyBoxFilterLUT(...) 切换滤镜色彩风格(LUT,14 套) 玩家/玩家组;LUT 编号 Trigger.World:SetSkyBoxFilterTemplate(...) 一键套用滤镜模板(19 套) 玩家/玩家组;模板编号 6.3 带过渡动画的接口 切换时希望"渐变而非突变",用下面这些。animTime 是过渡时长(毫秒,建议 1000 左右),animId 是缓动方式。 接口 作用 World:SetSkyBoxMapsAnim(playerid, itype, url, animId, animTime) 带动画的贴图替换 World:SetSkyBoxColorAnim(playerid, itype, color, animId, animTime) 带动画的颜色变化 World:SetSkyBoxFilterAnim(playerid, itype, value, animId, animTime) 带动画的滤镜变化 七、基础环境控制 除了天空盒外观,迷你世界还提供一组操控世界底层规则的接口,包括时间、天气、重力、生长倍率等。这些与天空盒配合使用,能更完整地控制世界的感受。当然,你也可以单独使用它们——不碰天空盒,只改天气和重力。 说明:以下接口均来自 World 模块,详见 世界模块管理接口。 7.1 游戏时间 游戏内有一套独立的昼夜循环系统。时间以「小时」为单位,一天 24 小时循环。 接口 作用 说明 World:SetHours(time) 设置世界时间 time 0~24 小时 World:GetHours() 获取当前世界时间 返回当前小时数(0~24) World:GetDay() 获取已过的天数 从世界创建到现在的总天数 World:SetTimeVanishingSpeed(speed) 设置时间流逝速度 speed 数值,越大时间过得越快 World:IsDaytime() 判断当前是否为白天 返回 true/false -- 把世界时间设到正午12点 World:SetHours(12) -- 把时间流逝速度调快(40 = 快速昼夜交替) World:SetTimeVanishingSpeed(40) -- 判断当前是白天还是黑夜 if World:IsDaytime() then print("现在是白天") else print("现在是黑夜") end 7.2 天气 迷你世界支持按地形组设置天气。不同地形组可以有不同的天气(晴天、下雨、下雪等)。 天气类型枚举(GroupWeatherType): 枚举 效果 GroupWeatherType.Shine 晴天 GroupWeatherType.Rain 雨天 GroupWeatherType.Thunder 雷暴 GroupWeatherType.Snow 雪天 GroupWeatherType.Sandduststorm 沙尘暴 GroupWeatherType.Tempest 暴风雨 GroupWeatherType.Blizzard 暴风雪 GroupWeatherType.Bad 恶劣天气 GroupWeatherType.ShineAndRain 晴雨交替 地形组枚举(WeatherGroup): 枚举 说明 WeatherGroup.Global 全局对象 WeatherGroup.Common 常见组 WeatherGroup.Ocean 海洋组 WeatherGroup.Desert 沙漠组 WeatherGroup.Frigidzone 普通寒带 WeatherGroup.Coldzone 高峰寒带 WeatherGroup.Volcano 火山组 WeatherGroup.Nunja 湿地组 WeatherGroup.Plain 平坦组 WeatherGroup.AirIsland 空岛组 接口 作用 说明 World:SetGroupWeather(groupid, weatherid) 设置某地形组的天气 groupid 地形组;weatherid 天气 World:GetGroupWeather(groupid) 获取某地形组的天气 返回天气 ID World:RandomWeatherID() 随机一个天气 ID 从可用天气列表中随机 -- 把常见地形组的天气设为晴天 World:SetGroupWeather(WeatherGroup.Common, GroupWeatherType.Shine) -- 把海洋组设为暴风雨 World:SetGroupWeather(WeatherGroup.Ocean, GroupWeatherType.Tempest) -- 获取当前常见组的天气 local weather = World:GetGroupWeather(WeatherGroup.Common) 7.3 重力 重力倍数控制玩家和生物的跳跃、下落速度。默认重力为 9.8(近似地球重力)。 接口 作用 说明 World:SetGravity(value) 设置重力倍数 value 数值,基数 9.8 ≈ 正常重力 World:AddGravity(value) 增加重力 在当前重力基础上增加一个值 World:GetGravity(worldId) 获取当前重力 可选参数 worldId 指定星球 -- 设置低重力(月球漫步感) World:SetGravity(3) -- 在现有重力上再翻倍 World:AddGravity(10) -- 获取当前重力 local g = World:GetGravity() print("当前重力:" .. g) 7.4 世界规则调整 一些更细粒度的世界规则也可以通过接口控制: 接口 作用 说明 World:SetPlantGrowRate(rate) 设置农作物生长倍率 rate 时间倍率(>0),不保存,退出后失效 World:SetMobSpawnDensity(mobType, density) 设置生物生成密度 mobType 生物类型枚举;density 0~2000 World:SetMidJoin(enable) 设置是否允许中途加入 true 允许 / false 禁止 -- 设置作物快速生长(5倍速) World:SetPlantGrowRate(5) -- 设置动物生成密度为 500 World:SetMobSpawnDensity(MobType.Passive, 500) -- 禁止中途加入 World:SetMidJoin(false) 本 Wiki 内容均依据《迷你世界》实际功能整理。风格描述类内容为建议值,请结合游戏内实际效果校正。最后更新时间:2026-06-10 更新日志 新增接口列表 1.59+ 所属对象 函数名 函数描述 Player EnterGunState(...) 进入枪械状态 (1.59+) Player LevelGunState(...) 离开枪械状态 (1.59+) 1.54+ 所属对象 函数名 函数描述 Graphics RemoveGraphicsByGraphicsID(...) 按ID删除图文 (1.54+) Player GetFriendList(...) 获取好友列表 (1.54+) Player SetSettingEnable(...) 设置游戏开关 (1.54+) Player SetSettingAbility(...) 设置游戏设置权限 (1.54+) Player RotateMainModel(...) 旋转玩家模型 (1.54+) World IsChunkLoaded(...) 区块是否加载 (1.54+) World CanMobSpawnOnPosXZ(...) 获取可刷怪的Y坐标 (1.54+) 1.52+ 所属对象 函数名 函数描述 Item GetTags(...) 获取道具定义中的标签组 (1.52+) Map IncreasesRankValueAndBlock(...) 阻塞增加排行榜分数 (1.52+) Map IncreasesRankValueAndCallback(...) 回调增加排行榜分数 (1.52+) Map GetRangeIndexsAndCallback(...) 回调获取排行榜名次区间 (1.52+) Monster GetTags(...) 获取生物标签组 (1.52+) 1.50+ 所属对象 函数名 函数描述 Actor IncreasesAttr(...) 增加角色属性值 (1.50+) CustomUI DeleteElement(...) 删除UI元件 (1.50+) Data IncreasesValue(...) 数值变量增加值 (1.50+) Graphics UpdateGraphicsTextById(...) 更新文字板内容 (1.50+) Graphics UpdateGraphicsProgressById(...) 更新进度条进度 (1.50+) Map SetValueAndCallBack(...) 回调设置KV数据 (1.50+) Map SetValueAndBlock(...) 阻塞设置KV数据 (1.50+) Map RemoveValueAndCallBack(...) 回调删除KV数据 (1.50+) Map RemoveValueAndBlock(...) 阻塞删除KV数据 (1.50+) Map UpdateValueAndCallback(...) 回调更新KV数据 (1.50+) Map GetValueAndCallBack(...) 回调获取KV数据 (1.50+) Map GetValueAndBlock(...) 阻塞获取KV数据 (1.50+) Map GetIndexValueAndCallback(...) 回调获取排行榜指定名次 (1.50+) Map GetIndexValueAndBlock(...) 阻塞获取排行榜指定名次 (1.50+) Map GetNumValuesAndCallback(...) 回调获取排行榜前N条 (1.50+) Map GetRangeValuesAndCallback(...) 回调获取排行榜分数区间 (1.50+) Map SetRankValueAndBlock(...) 阻塞设置排行榜分数 (1.50+) Map ClearData(...) 清空表数据 (1.50+) Player RemovePlayer(...) 将玩家移出本局 (1.50+) World AddGravity(...) 增加重力 (1.50+) 1.48+ 所属对象 函数名 函数描述 Backpack SetGridsLock(...) 设置背包格锁定状态 (1.48+) Backpack SetBackPackNum(...) 设置背包数量 (1.48+) Backpack CreateItemInstInBackpack(...) 创建道具实例到背包 (1.48+) Backpack IsLock(...) 获取背包格是否锁定 (1.48+) Backpack GetGridAttr(...) 获取背包格属性 (1.48+) Backpack SetGridAttr(...) 设置背包格属性 (1.48+) Block SetBlockData(...) 设置方块数据 (1.48+) Block SetBlockTextureColor(...) 设置方块纹理颜色 (1.48+) Item GetItemInstFacade(...) 获取具有道具实例ID的道具外观 (1.48+) Item GetGridAttr(...) 获取掉落物或者投掷物的格子属性 (1.48+) WorldContainer SwapContainerItem(...) 交换容器与背包道具 (1.48+) WorldContainer GetGridAttr(...) 获取格子属性 (1.48+) 1.47+ 所属对象 函数名 函数描述 Backpack DiscardItem(...) 丢弃背包格道具 (1.47+) Backpack GetGridInfos(...) 批量获取背包格信息 (1.47+) Backpack LoadGridInfos(...) 加载背包和快捷栏格子信息数据 (1.47+) Backpack DecodeGridInfo(...) 解析格子信息 (1.47+) Backpack EncodeTableGridInfo(...) 打包格子信息 (1.47+) Backpack ClearGrids(...) 批量清理背包格 (1.47+) Backpack GetAllBackPackInstanceIds(...) 获取背包所有道具实例ID (1.47+) Backpack CreateGunInBackpack(...) 创建枪械到背包 (1.47+) Backpack GetInstIdByGridIndex(...) 根据背包索引获取道具实例ID (1.47+) Backpack GetGunInstIdInBackpack(...) 获取背包所有枪械实例ID (1.47+) Block IsSolidBlock(...) 判断是否为固体方块 (1.47+) Block IsLiquidBlock(...) 判断是否为液体方块 (1.47+) Block IsAirBlock(...) 判断是否为空气方块 (1.47+) Block GetBlockPowerStatus(...) 获取方块通电状态 (1.47+) Block PlayCrackEffect(...) 播放方块裂纹特效 (1.47+) Block PlayDestroyEffect(...) 播放方块损毁特效 (1.47+) Block GetBlockDropItemType(...) 获取方块掉落物信息 (1.47+) Block GetBlockDropExp(...) 获取方块采集经验 (1.47+) Buff GetBuffList(...) 获取效果列表 (1.47+) Buff GetBuffNumByBuffid(...) 获取效果数量 (1.47+) CloudSever GetRoomID(...) 获取当前云服房间ID (1.47+) GameObject GetObjectPrefab(...) 获取对象预制ID (1.47+) Graphics ReplaceAllGraphics(...) 迁移所有图文到目标对象 (1.47+) Item GetCraftIDNum(...) 获取道具配方数量 (1.47+) Item GetCraftMaterialAndNum(...) 获取道具配方材料与数量 (1.47+) Item CreateItemInstInWorld(...) 在位置上创建道具掉落物 (1.47+) Item ModifyGunAttribute(...) 修改枪械道具实例的属性 (1.47+) Item GetGunAttribute(...) 获取枪械道具实例的属性 (1.47+) Item GetGunPrefabAttribute(...) 获取枪预制的属性 (1.47+) Item GetItemIdByInstanceId(...) 根据道具实例ID获取道具ID (1.47+) Item AddSubModelPart(...) 给道具实例添加一个模型子部件 (1.47+) Item DeleteSubModelPart(...) 删除一个道具实例的模型子部件 (1.47+) Item ReplaceSubModelPart(...) 修改一个道具实例的模型子部件 (1.47+) Item SetStringCustomData(...) 设置道具实例的自定义数据string (1.47+) Item SetBoolCustomData(...) 设置道具实例的自定义数据bool (1.47+) Item SetNumberCustomData(...) 设置道具实例的自定义数据number (1.47+) Item SetObjCustomData(...) 设置道具实例的自定义数据Object (1.47+) Item SetArrayCustomData(...) 设置道具实例的自定义数据Array (1.47+) Item GetStringCustomData(...) 获取道具实例的自定义数据string (1.47+) Item GetBoolCustomData(...) 获取道具实例的自定义数据bool (1.47+) Item GetNumberCustomData(...) 获取道具实例的自定义数据number (1.47+) Item GetObjCustomData(...) 获取道具实例的自定义数据Object (1.47+) Item GetArrayCustomData(...) 获取道具实例的自定义数据Array (1.47+) Monster GetActorName(...) 获取生物类型名称 (1.47+) Monster GetMonsterDefLevelExp(...) 获取击杀掉落经验 (1.47+) Monster SetMonsterDefLevelExp(...) 设置击杀掉落经验 (1.47+) Monster CanSee(...) 怪物是否可见目标 (1.47+) Monster GetDropItemInfo(...) 获取生物的掉落物信息 (1.47+) Player RotateCameraToActor(...) 旋转摄像机朝向目标 (1.47+) Player GetRayOriginPos(...) 获取射线起点位置 (1.47+) Player OpenDevGoodsBuyDialog(...) 打开开发者商品购买弹框 (1.47+) Player OpenDevGoodsBuyDetailedDialog(...) 打开开发者商品详情页 (1.47+) Player OpenDevStore(...) 打开开发者商店 (1.47+) Player OpenDevStoreTab(...) 打开开发者商店二级分类 (1.47+) Player OpenDevGoodsPage(...) 打开开发者商店一级页面 (1.47+) Player ClearMotion(...) 清空运动趋势 (1.47+) Player GetScreenSpacePos(...) 获取屏幕坐标 (1.47+) Player GetScreenSpacePosV2(...) 获取屏幕坐标V2 (1.47+) Player ChangPlayerMoveType(...) 切换移动方式 (1.47+) Player PlayAdvertising(...) 播放广告 (1.47+) Player GetViewMode(...) 获取视角模式 (1.47+) Player GetRevivePoint(...) 获取复活点 (1.47+) World FindCanSpawnMobPosList(...) 查找附近可刷怪位置列表 (1.47+) World FindNearestPlayerByPos(...) 获取离指定位置最近的玩家 (1.47+) World IsDaytime(...) 是否白天 (1.47+) World GetBiomeType(...) 获取地形类型 (1.47+) World FindEcosystem(...) 查找地形位置 (1.47+) World SetWorldCreateMobRule(...) 设置世界生物生成规则 (1.47+) World SetPlantGrowRate(...) 设置农作物生长倍率 (1.47+) World SetInnerViewEnable(...) 设置内置界面启用 (1.47+) World SetMidJoin(...) 设置中途加入开关 (1.47+) World GetGameMode(...) 获取游戏模式 (1.47+) 新增事件列表