Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/更新信息/3.2.md
boybook 760c2dd9ad 2.6
2025-12-01 20:59:16 +08:00

268 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 3.2
2025.1.10版本号V3.2 BE1.20.50包括Mod PC包手机测试版启动器和服务器引擎。
示例Demo<a href="../../../mcguide/20-玩法开发/13-模组SDK编程/60-Demo示例.html" rel="noopenner">前往此处下载</a>
## 一、更新时间表
1. 在2024年12月11日上线3.2第一个Beta版。
2. 在2024年12月26日上线3.2第二个Beta版。
3. 在2025年1月7日上线3.2稳定版。
4. 在2025年1月10日全渠道将更新3.2版本玩家包体玩家将陆续更新到3.2版本,请开发者合理安排更新节奏。
## 二、重要功能更新
1. 新增<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/9-自定义指令.html" rel="noopenner">自定义指令</a>接口,方便开发者和玩家使用指令调整模组功能。同时支持监听全局指令,支持实体发起指令。
1. 支持动态获取、创建、删除某个实体的行为包组件,可用于更精细地获取实体属性、控制实体行为,详见[GetComponents](../接口/实体/行为.md#getcomponents)系列接口。
1. 横屏商业化接口更新,支持手机端玩家在局内跳转到组件详情页或开发者主页,可用于组件宣传、组件联动、前置组件等场景。
1. 新增实体单例渲染接口,可单独操纵某个实体的渲染,详见[AddTextureToOneActor](../接口/实体/渲染.md#addtexturetooneactor)系列接口。
1. 后处理支持自定义外置纹理,可用于实现光怪陆离的后处理效果,详情参考文档<a href="../../../mcguide/16-美术/7-材质与着色器/4-材质实战.html#自定义后处理">自定义后处理</a>
1. 新增全局实体和特效功能此类实体和特效不会因为距离过远超出视野而消失可用于制作boss和大型装饰品例如主城的传送门
1. 新增实用性接口和事件,如:类似望远镜的拉近视野接口,可用于枪械瞄准镜效果;玩家动作事件和跳跃事件,可用于动作优化类模组;客户端渲染帧事件,按照屏幕帧率高频调用。
1. 优化部分接口和事件使其更具备实用性支持molang缩写双端BlockUseEvent支持获取点击比例位置等。详见下方更新日志。
1. 原版UI接口适配微软新触控接口特性存在一定调整**请开发者注意适配**。
1. 为了同步微软注册方式我们隐藏了register_to_create_menu字段并将其默认值改为true。请使用新版的category字段详见<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/1-自定义物品/1-自定义基础物品.html#description" rel="noopenner">自定义物品</a><a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html#description" rel="noopenner">自定义方块</a>
1. 由于微软在1.20.50版本将方块状态的facing_direction变更为cardinal_direction所以原版实际使用facing_direction的四面向方块如箱子类熔炉类的aux和实际朝向的对应关系被修改如您此前利用方块调色板或者GetBlockNew记录了方块数据在3.2直接按照原数据放出方块将出现部分方块朝向错乱需要自行适配。现在GetBlockStates接口会返回新的cardinal_direction而SetBlockStates会继续兼容旧版facing_direction一段时间。
- facing_direction和cardinal_direction的aux对应关系如下
| 朝向 | facing_direction | cardinal_direction |
| ---- | ---------------- | ------------------ |
| 北面 | 2 | 2 |
| 南面 | 3 | 0 |
| 西面 | 4 | 1 |
| 东面 | 5 | 3 |
- 受到影响的方块如下:
| 名称 | 方块id |
| ------------ | ----------------- |
| 箱子 | chest |
| 末影箱 | ender_chest |
| 陷阱箱 | trapped_chest |
| 切石机 | stonecutter_block |
| 熔炉 | furnace |
| 高炉 | blast_furnace |
| 烟熏炉 | smoker |
| 燃烧的熔炉 | lit_furnace |
| 燃烧的高炉 | lit_blast_furnace |
| 燃烧的烟熏炉 | lit_smoker |
- 微软在1.20.50继续修改了部分方块ID如石头、混凝土等详见<a href="../../../mcguide/20-玩法开发/13-模组SDK编程/2-Python脚本开发/101-3.2版本物品id变更.html" rel="noopenner">3.2版本物品id变更</a>,相关链接请参阅[基岩版扁平化](https://zh.minecraft.wiki/w/%E5%AE%98%E6%96%B9%E9%A1%B5%E9%9D%A2/%E5%9F%BA%E5%B2%A9%E7%89%88%E6%89%81%E5%B9%B3%E5%8C%96),请开发者注意适配。
## 三、API更新
- 新增
1. 新增[getEntitiesOrBlockFromRay](../接口/世界/实体管理.md#getentitiesorblockfromray)(客户端) 客户端新增获取与射线相交的实体和方块接口<!--by xgb-->
1. 新增[GetBlockTags](../接口/方块/属性.md#getblocktags)(服务端) 获取方块tags<!--by xgb-->
1. 新增[SetBlockEntityData](../接口/方块/方块实体.md#setblockentitydata)(服务端) 设置方块(包括自定义方块)的数据<!--by lidi-->
1. 新增[GetEntitiesBySelector](../接口/实体/属性.md#getentitiesbyselector)(服务端) 根据目标选择器获取实体id列表<!--by lrz-->
1. 新增[AddActorComponent](../接口/实体/行为.md#addactorcomponent)(服务端) 给指定实体自定义添加实体Component<!--by chenzhikun-->
1. 新增[RemoveActorComponent](../接口/实体/行为.md#removeactorcomponent)(服务端) 删除指定实体的指定Component<!--by chenzhikun-->
1. 新增[GetComponents](../接口/实体/行为.md#getcomponents)(服务端) 获取指定实体的生效Components<!--by chenzhikun-->
1. 新增[SetPistonMaxInteractionCount](../接口/世界/游戏规则.md#setpistonmaxinteractioncount)(服务端) 设置活塞/粘性活塞最多推动的方块数量<!--by gx-->
1. 新增[GetPistonMaxInteractionCount](../接口/世界/游戏规则.md#getpistonmaxinteractioncount)(服务端) 获取活塞/粘性活塞最多推动的方块数量<!--by gx-->
1. 新增[GetPistonMaxInteractionCount](../接口/世界/游戏规则.md#getpistonmaxinteractioncount)(客户端) 获取活塞/粘性活塞最多推动的方块数量<!--by gx-->
1. 新增[GetItemTags](../接口/物品.md#getitemtags)(服务端) 获取物品tags<!--by xgb-->
1. 新增[GetItemInfoByBlockName](../接口/物品.md#getiteminfobyblockname)(服务端) 通过方块名称及aux值获取物品信息<!--by liruizhi-->
1. 新增[GetPlayerDestroyTotalTime](../接口/玩家/行为.md#getplayerdestroytotaltime)(服务端) 获取玩家破坏方块需要的时间,受玩家状态(急迫、潮涌、挖掘疲劳)和手持物及手持物附魔(效率)影响<!--by lidi-->
1. 新增[AddAnimationControllerToOneActor](../接口/实体/渲染.md#addanimationcontrollertooneactor)(客户端) 增加单个生物渲染动画控制器<!--by lrz-->
1. 新增[RemoveAnimationControllerForOneActor](../接口/实体/渲染.md#removeanimationcontrollerforoneactor)(客户端) 移除单个生物渲染动画控制器<!--by lrz-->
1. 新增[AddRenderMaterialToOneActor](../接口/实体/渲染.md#addrendermaterialtooneactor)(客户端) 增加单个生物的渲染材质<!--by lrz-->
1. 新增[AddRenderControllerToOneActor](../接口/实体/渲染.md#addrendercontrollertooneactor)(客户端) 增加单个生物的渲染控制器<!--by lrz-->
1. 新增[RemoveRenderControllerForOneActor](../接口/实体/渲染.md#removerendercontrollerforoneactor)(客户端) 删除单个生物的渲染控制器<!--by lrz-->
1. 新增[AddGeometryToOneActor](../接口/实体/渲染.md#addgeometrytooneactor)(客户端) 增加单个生物渲染几何体<!--by lrz-->
1. 新增[RemoveGeometryForOneActor](../接口/实体/渲染.md#removegeometryforoneactor)(客户端) 删除单个生物的渲染几何体<!--by lrz-->
1. 新增[AddTextureToOneActor](../接口/实体/渲染.md#addtexturetooneactor)(客户端) 增加单个生物的渲染贴图<!--by lrz-->
1. 新增[RemoveTextureForOneActor](../接口/实体/渲染.md#removetextureforoneactor)(客户端) 删除单个生物的渲染贴图<!--by lrz-->
1. 新增[AddParticleEffectToOneActor](../接口/实体/渲染.md#addparticleeffecttooneactor)(客户端) 增加单个生物特效资源<!--by lrz-->
1. 新增[AddSoundEffectToOneActor](../接口/实体/渲染.md#addsoundeffecttooneactor)(客户端) 增加单个生物的音效资源<!--by lrz-->
1. 新增[AddScriptAnimateToOneActor](../接口/实体/渲染.md#addscriptanimatetooneactor)(客户端) 在单个生物的客户端实体定义minecraft:client_entityjson中的scripts/animate节点添加动画/动画控制器<!--by lrz-->
1. 新增[AddAnimationToOneActor](../接口/实体/渲染.md#addanimationtooneactor)(客户端) 增加单个生物渲染动画<!--by lrz-->
1. 新增[SetActorBlockGeometryScale](../接口/方块/方块几何体模型.md#setactorblockgeometryscale)(客户端) 设置实体的方块几何体模型的缩放倍率。<!--by lidi-->
1. 新增[GetActorBlockGeometryScale](../接口/方块/方块几何体模型.md#getactorblockgeometryscale)(客户端) 获取实体的方块几何体模型的缩放倍率。<!--by lidi-->
1. 新增[SetGlobal](../接口/特效/序列帧.md#setglobal)(客户端) 设置序列帧是否是全局的<!--by chenyuekai-->
1. 新增[CanSee](../接口/世界/地图.md#cansee)(客户端) 添加对象是否可看见目标的客户端接口<!--by xgb-->
1. 新增[GetItemTags](../接口/物品.md#getitemtags)(客户端) 获取物品tags<!--by xgb-->
1. 新增[SetCompassTarget](../接口/物品.md#setcompasstarget)(客户端) 设置指南针的朝向位置<!--by qyk-->
1. 新增[SetCompassEntity](../接口/物品.md#setcompassentity)(客户端) 设置指南针朝向的实体<!--by qyk-->
1. 新增[OpenResourceCenterDetailWindow](../接口/自定义UI/通用.md#openresourcecenterdetailwindow)(客户端) 打开网易资源中心组件详情界面<!--by dxz-->
1. 新增[OpenDeveloperHomeWindow](../接口/自定义UI/通用.md#opendeveloperhomewindow)(客户端) 打开网易资源中心开发者主页<!--by dxz-->
1. 新增[SetControlMode](../接口/控制.md#setcontrolmode)(客户端) 设置控制模式<!--by lrz-->
1. 新增[SetControlModeLock](../接口/控制.md#setcontrolmodelock)(客户端) 设置控制模式是否可以被改变<!--by lrz-->
1. 新增[SetGlobal](../接口/特效/粒子.md#setglobal)(客户端) 设置粒子发射器是否为全局粒子发射器<!--by chenyuekai-->
1. 新增[GetPlayerDestroyTotalTime](../接口/玩家/行为.md#getplayerdestroytotaltime)(客户端) 获取玩家破坏方块需要的时间,受玩家状态(急迫、潮涌、挖掘疲劳)和手持物及手持物附魔(效率)影响<!--by lidi-->
1. 新增[SetPlayerFovScale](../接口/玩家/摄像机.md#setplayerfovscale)(客户端) 新增设置fov倍率功能<!--by liruizhi-->
1. 新增[AddEntityMarker](../接口/自定义UI/UI控件.md#addentitymarker)(客户端) 增加实体位置标记<!--by lrz-->
1. 新增[AddEntityTextMarker](../接口/自定义UI/UI控件.md#addentitytextmarker)(客户端) 增加实体文本标记<!--by lrz-->
1. 新增[AddStaticMarker](../接口/自定义UI/UI控件.md#addstaticmarker)(客户端) 增加地图上静态位置的标记<!--by lrz-->
1. 新增[AddStaticTextMarker](../接口/自定义UI/UI控件.md#addstatictextmarker)(客户端) 增加地图上静态文本的标记<!--by lrz-->
1. 新增[RemoveEntityMarker](../接口/自定义UI/UI控件.md#removeentitymarker)(客户端) 删除实体位置标记<!--by lrz-->
1. 新增[RemoveEntityTextMarker](../接口/自定义UI/UI控件.md#removeentitytextmarker)(客户端) 删除实体文本标记<!--by lrz-->
1. 新增[RemoveStaticMarker](../接口/自定义UI/UI控件.md#removestaticmarker)(客户端) 删除静态位置标记<!--by lrz-->
1. 新增[RemoveStaticTextMarker](../接口/自定义UI/UI控件.md#removestatictextmarker)(客户端) 删除静态文本标记<!--by lrz-->
1. 新增[RepaintMiniMap](../接口/自定义UI/UI控件.md#repaintminimap)(客户端) 重新绘制小地图<!--by lidi-->
1. 新增[GlobalCommandServerEvent](../事件/世界.md#globalcommandserverevent)(服务端) 服务端全局命令事件<!--by chenyuekai-->
1. 新增[CustomCommandTriggerServerEvent](../事件/世界.md#customcommandtriggerserverevent)(服务端) 新增自定义命令触发事件<!--by chenyuekai-->
1. 新增[OnPlayerActionServerEvent](../事件/玩家.md#onplayeractionserverevent)(服务端) 玩家动作事件<!--by lidi-->
1. 新增[GameRenderTickEvent](../事件/世界.md#gamerendertickevent)(客户端) 客户端渲染帧开始时触发<!--by gx-->
1. 新增[OnLocalPlayerStartJumpClientEvent](../事件/玩家.md#onlocalplayerstartjumpclientevent)(客户端) 玩家开始跳跃事件<!--by lidi-->
1. 新增[OnLocalPlayerActionClientEvent](../事件/玩家.md#onlocalplayeractionclientevent)(客户端) 玩家动作事件<!--by lidi-->
1. 新增[PlayerActionType](../枚举值/PlayerActionType.md) 玩家动作枚举<!--by lidi-->
- 调整
1. 调整[getEntitiesOrBlockFromRay](../接口/世界/实体管理.md#getentitiesorblockfromray)(服务端) isThrouth拼写错误调整为isThrough通过关键词isThrouth = True调用的方法还会再兼容一段时间<!--by xgb-->
1. 调整[HideWalkGui](../接口/原生UI.md#hidewalkgui)(客户端) 新触控接入后原移动按钮已移除,现在该接口控制新触控跑/走按钮<!--by lidi-->
1. 调整[HideSwimGui](../接口/原生UI.md#hideswimgui)(客户端) 调整描述,仅影响十字键操作下的浮潜按钮,摇杆模式上浮=跳跃,下潜=潜行需要通过HideJumpGui和HideSneakGui来隐藏<!--by lidi-->
1. 调整[SetCrossHair](../接口/原生UI.md#setcrosshair)(客户端) 适配新触控<!--by lidi-->
1. 调整[CreateEngineEntityByNBT](../接口/世界/实体管理.md#createengineentitybynbt)(服务端) 新增isGlobal参数可创建全局实体不受视野范围限制<!--by czh-->
1. 调整[CreateEngineEntityByTypeStr](../接口/世界/实体管理.md#createengineentitybytypestr)(服务端) 新增isGlobal参数可创建全局实体不受视野范围限制<!--by czh-->
1. 调整[SetAttrMaxValue](../接口/实体/属性.md#setattrmaxvalue)(服务端) 支持设置伤害吸收<!--by lrz-->
1. 调整[SetEntityOnFire](../接口/实体/行为.md#setentityonfire)(服务端) 当传入参数seconds小于等于0时将让着火的实体灭火<!--by lidi-->
1. 调整[RegisterBlockPatterns](../接口/世界/方块组合.md#registerblockpatterns)(服务端) 支持具体方块匹配/通配namespace:name:aux_value当aux_value不填或者填*时为通配如果有具体aux_value时只匹配特定方块<!--by lidi-->
1. 调整[GetBlockBasicInfo](../接口/方块/属性.md#getblockbasicinfo)(服务端) 支持返回minecraft:tags<!--by xgb-->
1. 调整[GetDestroyTotalTime](../接口/世界/方块管理.md#getdestroytotaltime)(服务端) 增加可选挖掘参数<!--by lidi-->
1. 调整[SetCommand](../接口/世界/指令.md#setcommand)(服务端) 支持任意实体entityId<!--by chenyuekai-->
1. 调整[GetItemBasicInfo](../接口/物品.md#getitembasicinfo)(服务端) 支持返回minecraft:tags<!--by xgb-->
1. 调整[SetItemTierSpeed](../接口/物品.md#setitemtierspeed)(服务端) 补充文档,提示开发者可以从物品的userData中获取挖掘速度<!--by lrz-->
1. 调整[GetDestroyTotalTime](../接口/世界/方块管理.md#getdestroytotaltime)(客户端) 增加可选挖掘参数<!--by lidi-->
1. 调整[GetItemBasicInfo](../接口/物品.md#getitembasicinfo)(客户端) 支持返回minecraft:tags<!--by xgb-->
1. 调整[CreateBindEntityNew](../接口/特效/微软粒子.md#createbindentitynew)(客户端) 支持传入空字符串时,绑定到实体根骨骼上<!--by gx-->
1. 调整[BindEntity](../接口/特效/微软粒子.md#bindentity)(客户端) 支持传入空字符串时,绑定到实体根骨骼上<!--by gx-->
1. 调整[AddPostProcess](../接口/后处理/自定义.md#addpostprocess)(客户端) index缺省或负值现在会默认添加到最后<!--by xgb-->
1. 调整[Register](../接口/实体/molang.md#register)(客户端) 支持molang变量缩写<!--by cyk-->
1. 调整[UnRegister](../接口/实体/molang.md#unregister)(客户端) 支持molang变量缩写<!--by cyk-->
1. 调整[Set](../接口/实体/molang.md#set)(客户端) 支持molang变量缩写<!--by cyk-->
1. 调整[Get](../接口/实体/molang.md#get)(客户端) 支持molang变量缩写<!--by cyk-->
1. 调整[GetMolangValue](../接口/实体/molang.md#getmolangvalue)(客户端) 支持molang变量缩写<!--by cyk-->
1. 调整[RenderEntity](../接口/自定义UI/UI控件.md#renderentity)(客户端) 支持设置x轴、z轴初始旋转<!--by chenyuekai-->
1. 调整[RenderSkeletonModel](../接口/自定义UI/UI控件.md#renderskeletonmodel)(客户端) 支持设置x轴、z轴初始旋转<!--by chenyuekai-->
1. 调整[RenderBlockGeometryModel](../接口/自定义UI/UI控件.md#renderblockgeometrymodel)(客户端) 支持设置x轴、z轴初始旋转<!--by chenyuekai-->
1. 调整[ServerBlockUseEvent](../事件/方块.md#serverblockuseevent)(服务端) 新增clickX,clickY,clickZ参数可获取点击点的比例位置<!--by lrz-->
1. 调整[PlayerPickupArrowServerEvent](../事件/物品.md#playerpickuparrowserverevent)(服务端) 调整文档,补充说明抛射物也受此接口监听<!--by lrz-->
1. 调整[PlaceNeteaseStructureFeatureEvent](../事件/世界.md#placeneteasestructurefeatureevent)(服务端) structureName参数可修改<!--by czk-->
1. 调整[ClientBlockUseEvent](../事件/方块.md#clientblockuseevent)(客户端) 新增clickX,clickY,clickZ参数可获取点击点的比例位置<!--by lrz-->
1. 调整[GyroSensorChangedClientEvent](../事件/控制.md#gyrosensorchangedclientevent)(客户端) 新增orientation表示当前屏幕朝向<!--by qyk-->
1. 调整[OptionId](../枚举值/OptionId.md) 移除旧版十字键操作<!--by lidi-->
1. 调整[OriginGUIName](../枚举值/OriginGUIName.md) 移除移动状态按钮,新触控有对应的加速按钮和潜行按钮,增加新触控跳跃/潜行枚举<!--by lidi-->
- 废弃(将在未来不可用)
1. 废弃ChangeWalkState对应按钮已移除后续不再维护相关需求可用setSprinting/setSneaking/ChangeSneakState实现
1. 废弃GetWalkState对应按钮已移除后续不再维护相关需求可用isSprinting/isSneaking实现
1. 废弃SetPlayerRideEntity请使用SetRiderRideEntity
1. 废弃AddEntityMarker推荐使用UI面向对象miniMapUIControl.AddEntityMarker接口
1. 废弃RemoveEntityMarker推荐使用UI面向对象miniMapUIControl.RemoveEntityMarker接口
1. 废弃AddStaticMarker推荐使用UI面向对象miniMapUIControl.AddStaticMarker接口
1. 废弃RemoveStaticMarker推荐使用UI面向对象miniMapUIControl.RemoveStaticMarker接口
1. 废弃ZoomIn推荐使用UI面向对象miniMapUIControl.ZoomIn接口
1. 废弃ZoomOut推荐使用UI面向对象miniMapUIControl.ZoomOut接口
1. 废弃ZoomReset推荐使用UI面向对象miniMapUIControl.ZoomReset接口
1. 废弃SetHighestY推荐使用UI面向对象minimapUIControl.SetHighestY接口
1. 废弃AddEntityTextMarker推荐使用UI面向对象miniMapUIControl.AddEntityTextMarker接口
1. 废弃RemoveEntityTextMarker推荐使用UI面向对象miniMapUIControl.RemoveEntityTextMarker接口
1. 废弃AddStaticTextMarker推荐使用UI面向对象miniMapUIControl.AddStaticTextMarker接口
1. 废弃RemoveStaticTextMarker推荐使用UI面向对象miniMapUIControl.RemoveStaticTextMarker接口