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

news2026/3/18 22:19:58
迷你世界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二维表介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…