当前位置: 首页 > article >正文

迷你世界UGC3.0脚本Wiki排行榜、K/V数据介绍

迷你世界UGC3.0脚本WikiMenuOn this pageSidebar Navigation快速入门欢迎MOD、组件介绍什么是Lua编程组件介绍组件说明组件互相操作组件函数组件属性事件触发器事件管理组件事件管理函数库服务模块世界模块管理接口 World对象模块管理接口 GameObject角色模块管理接口 Actor玩家模块管理接口 Player生物模块管理接口 Monster方块模块管理接口 Block道具模块管理接口 Item背包模块管理接口 Backpack界面模块管理接口 CustomUI图文信息模块管理接口 Graphics区域模块管理接口 Area容器模块管理接口 WorldContainer资源模块管理接口 Mod计时器模块管理接口 Timer状态模块管理接口 Buff消息模块管理接口 Chat普通变量数据管理接口 Data数组变量数据管理接口 Array二维表变量数据管理接口 TableKV表变量数据管理接口 Map全局函数全局函数枚举枚举库脚本常见问题开发者常见问题进阶指南全局函数触发器脚本交互对象介绍KV排行榜介绍二维表介绍道具实例更新日志更新日志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只能对应一个valuevalue类型可以是数值可以是字符串也可以是json字符串等。例如玩家相关数据可如下所示存取键 (KEY) 值 (VALUE)level 50attr { flowers: 100, level: 6, vip: 3,played_count: 13, label: 超神}coin 78000通过相同的数据集名称和键key就可以针对数据进行存/取操作。排行榜数据​为有序数据集合其数据存储的类型为数值类型系统会按照数值自动进行排序故我们把它简称为排行榜数据其可以存储多个维度的数据进行自动排序。排行榜可以实现地图排名前1000位玩家的数据实现全图排行榜功能排行榜默认排序方式为升序从小到大使用get数据时正数代表升序负数代表降序排行榜只能存正整数存入的小数会进行取整数部分排行榜基本格式如下键KEY)玩家迷你号 值 (VALUE)10000 51000085 1010000354 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表变量IDplayerId:number玩家uinkey:string键值数值会转换成字符串value:string,number,boolean具体值返回值及类型ret:bool是否成功 (全局云KV变量可用)该方法的主要作用 安全更新表中某个key下的值并发存取数据确保Key下的值唯一性具体使用案例如下lua-- 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 valueprint(code, code , key, key, value, value)if code ErrorCode.KV_UPDATE_SET then -- 需要返回更新设置的最终值value value or {}value.updatevalue 999return json.encode(value) -- 需要返回更新设置的最终值 并且序列化结构elseif code ErrorCode.KV_UPDATE_GET thenprint(获取到的当前最新的值:, value)elseif code ErrorCode.OK thenprint(更新完成)elseprint(更新失败)endendlocal result Data.Map:UpdateValueAndCallback(GlobalKV, nil, GlobalKV_Key2, GlobalKVCallback)if result thenprint(调用成功)elseprint(调用失败)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****如何合理的进行setget操作****A**1、避免零值(或初始值)参与排行榜会出现所有玩家都进行set操作了一次。2、避免低于排行榜最后一名的数据也set操作。假设你的排行榜展示前50名如果第50名已经有100分了那么对于分数低于100分的玩家就无需添加到排行榜里面去。3、参与排行的数值比如经验等级杀怪数量等这几个数值可以序列化成json字符串保存在一个kv中避免多次拉取数据的情况。4、假设某游戏有经验等级杀怪数3个排行榜那么可以一个玩家一个json保存在kv表里面key为玩家uin,value为json:lua{exp: 888999,lvl: 7,kmonster: 39}5、区分游戏商店购买、任务、成就等模块的配置和需要持久化的状态数据。**Q****配置文件建议不设置到数据储存中**A 通用配置可以放脚本或另外一个全局表里没有必要存储在kv表里。luaFindMaHongJun_5:{questName:FindMaHongJun_5,questProg:0,questProgAll:1,questSta:no}这种可以简化假设TaskID:10086表示该任务那么lua10086:[0,1,0]数组第1个元素表示questProg第2个元素表示questProgAll第三个元素表示questSta。排行榜案例​参考2.0文档 https://dev-wiki.mini1.cn/wiki/673b36153ffc6baf0859d33aLast updated: 2025/9/16 11:53PagerPrevious page对象介绍Next page二维表介绍

相关文章:

迷你世界UGC3.0脚本Wiki排行榜、K/V数据介绍

迷你世界UGC3.0脚本WikiMenuOn this pageSidebar Navigation快速入门欢迎MOD、组件介绍什么是Lua编程组件介绍组件说明组件互相操作组件函数组件属性事件触发器事件管理组件事件管理函数库服务模块世界模块管理接口 World对象…...

Tomcat安装配置全攻略

好的!以下是一份详细的 Tomcat 安装及配置教程,适用于 Windows 和 Linux 系统,涵盖基础安装、环境配置、常见问题解决及优化建议。 一、准备工作 安装 JDK Tomcat 依赖 Java 环境,需先安装 JDK(推荐 JDK 8)…...

2026部署OpenClaw代理解决方案

这份华为 2026 年 2 月发布的《部署 OpenClaw 代理解决方案》(版本 1.0),核心是基于华为云 Flexus X 实例实现开源个人 AI 超级助手 OpenClaw(前称 Clawdbot)的一站式部署,同时明确了资源规划、部署流程、安…...

提示工程架构师实战:Agentic AI在物流调度中的路径优化案例

提示工程架构师实战:用Agentic AI破解物流调度路径优化难题 标题选项 提示工程架构师实战:Agentic AI在物流调度中的路径优化落地案例从0到1搭建Agentic物流系统:提示工程驱动的路径优化实战破解物流调度痛点:Agentic AI提示工程…...

Maya阿诺德渲染器aistandardsurface材质(万能材质)解析

物体&环境光【aiskydomelight】→【Color】→创建渲染节点(color数值条后面的小方块)→文件→图像名称→HDR(exr)贴图(Hypershade→aiskydomelight→特性编辑→aiskydomelightshape→visibility→camera0:渲染窗口背景为黑色&…...

**发散创新:基于稀疏模型的高效特征选择与代码实现详解**在现代机器学习和深度学习任务中,**稀疏模型**(Sparse M

发散创新:基于稀疏模型的高效特征选择与代码实现详解 在现代机器学习和深度学习任务中,稀疏模型(Sparse Model)已成为提升效率、降低资源消耗的重要手段。尤其在处理高维数据(如文本、图像、推荐系统)时&am…...

假外包真派遣:银行大楼里那群“不是员工”的打工人

在银行大厅、科技机房、后台办公区里,每天都在上演一幕最真实的荒诞剧: 一群人穿着统一工装,刷着同样的门禁,坐在同样的工位,做着银行最核心的科技业务。 但他们不是银行的人。 他们是银行外包员工。 是金融科技的隐形…...

2026年Ai建站指南:普通人如何通过自然语言搭建网站

AI并没有改变建站“呈现信息、处理数据”的本质,但极大地降低了门槛。通过邦云数据开发的AI建站工具,个人或企业可以快速构建出功能强大的网站,无需从头编写复杂代码。就像跟一个朋友聊聊天,把自己的网站说出来一样在模板建站时代…...

MySQL 教程(超详细,零基础可学、第一篇)

目录 一、MySQL数据库概述 二、MySQL 连接 1、使用 MySQL 二进制方式连接 2、使用 PHP 脚本连接 MySQL 三、MySQL 创建数据库 1、使用 mysqladmin 创建数据库 2、使用 PHP脚本 创建数据库 四、MySQL 删除数据库 1、使用 mysqladmin 删除数据库 2、使用 PHP 脚本删除数…...

《C++进阶之STL》【set/map 使用介绍】

关联容器的核心特征是: 非线性逻辑结构:通常基于树(如:红黑树)或哈希表实现,元素间通过键值的有序性或哈希映射建立关联 例如:二叉搜索树中左子树元素键值始终小于根节点,右子树元素…...

AI幻觉!掌握RAG技术,让你的AI回答不再“一本正经地胡说八道”!

这份教程系统地介绍了****生成式 AI 的运行机制及其核心缺陷,即由于概率预测本质而产生的幻觉问题。 为了克服 AI 缺乏实时事实依据的顽疾,深入阐述了 RAG(检索增强生成) 技术,详细梳理了从数据切片、向量化存储到检索…...

数据库高可用

数据库高可用:企业数据安全的生命线 在数字化时代,数据库作为企业核心数据的存储与管理中枢,其稳定性直接关系到业务连续性。一次数据库宕机可能导致数百万损失,甚至引发品牌信任危机。数据库高可用(High Availabilit…...

网络安全应急响应

网络安全应急响应:守护数字世界的安全防线 在数字化时代,网络安全威胁日益复杂,从数据泄露到勒索软件攻击,企业和个人都面临着前所未有的风险。网络安全应急响应(Incident Response, IR)作为应对这些威胁的…...

weixin238基于微信小程序的校园二手交易平台ssm(文档+源码)_kaic

第5章 系统实现进入到这个环节,也就可以及时检查出前面设计的需求是否可靠了。一个设计良好的方案在运用于系统实现中,是会帮助系统编制人员节省时间,并提升开发效率的。所以在系统的编程阶段,也就是系统实现阶段,对于…...

weixin237基于微信小程序的医院挂号预约系统ssm(文档+源码)_kaic

5 系统实现 系统实现部分就是将系统分析,系统设计部分的内容通过编码进行功能实现,以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析,系统设计最主要还是进行功能,系统操作逻辑的设计,也包括…...

Java的密封类与模式匹配在有限继承体系中的类型安全设计

Java的密封类与模式匹配在有限继承体系中的类型安全设计 随着软件系统复杂度提升,类型安全成为现代Java开发的核心诉求。Java 16正式引入的密封类(Sealed Class)与模式匹配(Pattern Matching)特性,为构建有…...

Python的__complex__标准库

Python的__complex__标准库:解锁复数的编程魅力 在科学计算、信号处理或工程模拟中,复数运算常是不可或缺的一环。Python通过内置的complex类型和__complex__方法,为开发者提供了简洁而强大的复数处理能力。这一机制不仅支持基础的复数运算&…...

Spring Boot 自动装配加载逻辑

Spring Boot自动装配机制揭秘:简化开发的魔法引擎 在传统Spring应用中,开发者需要手动配置大量XML或Java Config来管理组件依赖,而Spring Boot通过自动装配(Auto-Configuration)彻底改变了这一局面。其核心思想是“约…...

3月18日(进阶9)

进阶9.矩形乘法 题目描述 给定一个N阶矩阵A&#xff0c;输出A的M次幂&#xff08;M是非负整数&#xff09;例如&#xff1a;A 1 23 4A的2次幂7 1015 22 代码 #include <iostream> #include <vector>using namespace std;// 定义矩阵类型&#xff0c;使用 long long…...

复杂三维山地环境下小龙虾优化算法COA求解多无人机动态避障路径规划研究附MATLAB代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

Redis Cluster 高可用架构设计

Redis Cluster高可用架构设计解析 Redis作为高性能的内存数据库&#xff0c;其集群模式&#xff08;Redis Cluster&#xff09;通过分布式架构实现了数据分片与高可用性&#xff0c;成为企业级应用的热门选择。本文将深入探讨Redis Cluster的高可用设计&#xff0c;从核心机制…...

『NAS』在群晖部署无广聚合搜索引擎-SearXNG

点赞 关注 收藏 学会了 &#x1f4a1;整理了 NAS 专属玩法专栏&#xff0c;感兴趣的工友戳这里关注 &#x1f449; 《NAS邪修》 SearXNG 是一款开源的聚合搜索引擎工具&#xff0c;支持私有化部署&#xff0c;能整合多个主流搜索引擎的结果&#xff0c;且搜索页面无广告、无…...

RV1126 imx335 sensor调试

根据media-ctl -p -d /dev/media0输出&#xff1a;[rootATK-DLRV1126:/]# ls -l /tmp/test.nv12 -rw-r--r-- 1 root root 0 Jan 1 08:00 /tmp/test.nv12 [rootATK-DLRV1126:/]# media-ctl -p -d /dev/media0 Media controller API version 4.19.111 ​ Media device informati…...

【OpenClaw 全面解析:从零到精通】第 001 篇:一只“龙虾“如何改变了 AI 世界——OpenClaw 的诞生与历史背景

系列说明&#xff1a;本系列共计约 20 篇&#xff0c;全面介绍 OpenClaw 开源 AI 智能体框架&#xff0c;从历史背景到核心原理&#xff0c;从安装部署到应用生态。本文为系列第 001 篇&#xff0c;聚焦于 OpenClaw 的诞生历程与时代背景。 摘要 OpenClaw 是 2025 年底由奥地利…...

Python 3.13性能提升揭秘

该提问与当前博客内容无直接关联。 关于Python 3.13版本解决的问题&#xff0c;需要从Python语言本身的演进维度进行技术解析。Python 3.13作为2024年发布的重要版本&#xff0c;主要在解释器性能、语法特性和标准库三个方面进行了系统性优化。 解释器性能优化 自适应解释器…...

24:执行链完整闭环:从目标锁定到确认的全流程状态机

作者&#xff1a; HOS(安全风信子) 日期&#xff1a; 2026-03-07 主要来源平台&#xff1a; GitHub 摘要&#xff1a; 本文深入探讨如何构建一个从目标锁定到确认的全流程状态机&#xff0c;实现执行链的完整闭环。通过状态机的设计模式&#xff0c;我们可以将复杂的执行流程分…...

计算机进制转换

计算机进制转换一. 进制转换1.1 练习二. 原码、反码、补码、偏移码三. 练习一. 进制转换 二进制&#xff1a;逢二进一 十进制二进制001121031141005101611071118100091001101010 十进制转二进制 二进制转十进制 1.1 练习 十进制数转二进制&#xff1a;25 25 → 结果&#…...

无人机数据集汇总无人机航拍各个方面检测分割数据集合集

本数据集集合了面向无人机视觉任务的大规模、多场景、多目标标注数据资源&#xff0c;涵盖了地理环境、智慧城市、基础设施巡检、农业生产、公共安全与灾害监测等多个关键领域。数据主要以两种主流格式提供&#xff1a;适用于目标检测的VOC/YOLO格式与适用于像素级语义分割的La…...

三相风光储LCL并网直流微电网仿真系统探究

三相风光储LCL并网风光储三相并网直流微电网 仿真系统构成&#xff1a; 光伏发电系统、风力发电系统、储能系统、负载、逆变器lcl大电网 附参考文献。 有逆变器控制参数&#xff0c;lcl参数计算m文件提供参考。 1、光伏系统采用扰动观察法实现mppt控制&#xff0c;经过boost电路…...

Q13UDVCPU三菱通用高速型 CPU

Q13UDVCPU 是三菱电机 MELSEC-Q 系列的 通用高速型 CPU&#xff0c;属于 QnUDVCPU 系列&#xff0c;主打超高速运算、大容量 I/O、标准以太网 / USB 接口&#xff0c;为中大型自动化系统提供高性能逻辑控制与数据处理能力。一、产品特性超高速处理&#xff1a;基本指令&#xf…...