# 1.24
温馨提示,预计在9月23日,全渠道更新1.24版本玩家包体,玩家将陆续更新到1.24版本,请开发者合理安排更新节奏。
**2021.09.16:版本号(v1.24 BE1.16.202)**
- 重大功能介绍
1. 自定义流体
- 包含流体颜色、贴图、范围、流速设置
- 可自定义桶装载自定义流体
- 可设置液体传播火的效果以及进入液体获得的效果
详见 自定义流体 , 自定义桶
2. 自定义附魔
- 支持自定义魔咒、魔咒等级
- 可在附魔书、附魔台、铁砧上获得自定义附魔
- 物品上可包含自定义附魔
详见 自定义附魔
3. 自定义方块功能拓展:
* 支持方块重力表现,可自定义铁砧、沙砾等下落效果。
- 支持设置方块下落表现
- 支持设置下落速度以及伤害
- 可获取方块开始下落、结束下落、下落过程接触到实体的事件
详见 自定义重力方块
* 可获取实体下落到方块的事件,可自定义粘液块的弹跳效果。详见[OnAfterFallOnBlockServerEvent](../事件/方块.html#onafterfallonblockserverevent),[OnAfterFallOnBlockClientEvent](../事件/方块.html#onafterfallonblockclientevent)
* 可获取实体在方块上移动的事件,可自定义类似冰、灵魂沙等不同的摩擦效果。详见[OnStandOnBlockServerEvent](../事件/方块.html#onstandonblockserverevent),[OnStandOnBlockClientEvent](../事件/方块.html#onstandonblockclientevent)
4. 自定义方块实体渲染,可实现表现力更强的自定义方块。
- 方块实体支持添加动画,支持使用由BlockBench制作的原版模型或者是游戏原版模型。
- 方块实体支持添加特效,可通过配置或者接口,为自定义方块实体附加粒子特效及序列帧特效。
详见 自定义方块实体外观
5. 自定义分页、分组
- 支持多个自定义分页,可让物品分类更灵活。
- 支持把物品放在原有分组或自定义分组中,自定义分组支持多个,可让物品分类更规整。
详见 自定义物品分组 与 自定义物品分页
6. 后处理效果
- 渐晕效果。画面随中心距离逐渐变暗,实现类似瞄准镜等视觉效果。
详见[渐晕](../接口/后处理/渐晕.md)
*(展示视频中涉及的demo下载地址如下:[自定义附魔](https://g79.gdl.netease.com/EnchantDemo.zip)、[其他内容](https://g79.gdl.netease.com/1.24demo.zip))*
- 新增
1. 新增 Shader使用简介 教程
1. 新增[StartCoroutine](../接口/通用/工具.md#startcoroutine),开启服务端协程,实现函数分段式执行,可用于缓解复杂逻辑计算导致游戏卡顿问题
1. 新增[StopCoroutine](../接口/通用/工具.md#stopcoroutine),停止服务端协程
1. 新增[OpenChatGui](../接口/原生UI.md#openchatgui),打开原版聊天栏
1. 新增[StartCoroutine](../接口/通用/工具.md#startcoroutine),开启客户端协程,实现函数分段式执行,可用于缓解复杂逻辑计算导致游戏卡顿问题
1. 新增[StopCoroutine](../接口/通用/工具.md#stopcoroutine),停止客户端协程
1. 新增[GetTypeFamily](../接口/实体/属性.md#gettypefamily),获取生物行为包字段 type_family
1. 新增[AddModEnchantToInvItem](../接口/玩家/背包.md#addmodenchanttoinvitem),新增给物品栏中物品添加自定义附魔信息接口
1. 新增[RemoveEnchantToInvItem](../接口/玩家/背包.md#removeenchanttoinvitem),新增给物品栏中物品移除附魔信息接口
1. 新增[RemoveModEnchantToInvItem](../接口/玩家/背包.md#removemodenchanttoinvitem),新增给物品栏中物品移除自定义附魔信息接口
1. 新增[GetInvItemModEnchantData](../接口/玩家/背包.md#getinvitemmodenchantdata),新增获取物品栏的物品自定义附魔信息
1. 新增[GetEquItemModEnchant](../接口/实体/背包.md#getequitemmodenchant),新增支持获取生物装备槽位中盔甲的自定义附魔
1. 新增[SetItemMaxDurability](../接口/物品.md#setitemmaxdurability),设置物品的最大耐久值
1. 新增[GetItemMaxDurability](../接口/物品.md#getitemmaxdurability),获取指定槽位的物品最大耐久
1. 新增[GetPlayerExhaustionRatioByType](../接口/玩家/行为.md#getplayerexhaustionratiobytype),获取玩家某行为饥饿度消耗倍率
1. 新增[SetPlayerExhaustionRatioByType](../接口/玩家/行为.md#setplayerexhaustionratiobytype),设置玩家某行为饥饿度消耗倍率
1. 新增[SetPlayerAttackSpeedAmplifier](../接口/玩家/行为.md#setplayerattackspeedamplifier),设置玩家攻击速度倍数
1. 新增[SetBlockEntityMolangValue](../接口/方块/方块实体.md#setblockentitymolangvalue),设置自定义方块实体的Molang变量,用于控制自定义实体的动画转变。
1. 新增[GetBlockEntityMolangValue](../接口/方块/方块实体.md#getblockentitymolangvalue),获取自定义方块实体的Molang变量的值。
1. 新增[SetEnableBlockEntityAnimations](../接口/方块/方块实体.md#setenableblockentityanimations),是否开启自定义方块实体的动画效果。
1. 新增[CreateParticleEffectForBlockEntity](../接口/方块/方块实体.md#createparticleeffectforblockentity),在自定义方块实体上创建粒子特效。
1. 新增[GetParticleEffectIdInBlockEntity](../接口/方块/方块实体.md#getparticleeffectidinblockentity),获取在自定义方块实体中已创建的粒子特效的Id。
1. 新增[RemoveParticleEffectInBlockEntity](../接口/方块/方块实体.md#removeparticleeffectinblockentity),移除在自定义方块实体上创建的粒子特效。
1. 新增[CreateFrameEffectForBlockEntity](../接口/方块/方块实体.md#createframeeffectforblockentity),在自定义方块实体上创建序列帧特效。
1. 新增[GetFrameEffectIdInBlockEntity](../接口/方块/方块实体.md#getframeeffectidinblockentity),获取在自定义方块实体中已创建的序列帧特效的Id。
1. 新增[RemoveFrameEffectInBlockEntity](../接口/方块/方块实体.md#removeframeeffectinblockentity),移除在自定义方块实体上创建的序列帧特效。
1. 新增[SetBlockEntityParticlePosOffset](../接口/方块/渲染.md#setblockentityparticleposoffset),设置自定义方块实体中粒子特效位置的偏移值
1. 新增[SetBlockEntityFramePosOffset](../接口/方块/渲染.md#setblockentityframeposoffset),设置自定义方块实体中序列帧特效位置的偏移值
1. 新增[SetBlockEntityModelPosOffset](../接口/方块/渲染.md#setblockentitymodelposoffset),设置自定义方块实体的实体模型位置偏移值
1. 新增[SetBlockEntityModelScale](../接口/方块/渲染.md#setblockentitymodelscale),设置自定义方块实体的实体模型大小的缩放值。
1. 新增[SetBlockEntityModelRotation](../接口/方块/渲染.md#setblockentitymodelrotation),设置自定义方块实体的实体模型在各个轴上的旋转值。
1. 新增[GetPos](../接口/特效/序列帧.md#getpos),获取序列帧特效的世界坐标位置。
1. 新增[GetRot](../接口/特效/序列帧.md#getrot),获取序列帧特效的旋转角度。
1. 新增[GetScale](../接口/特效/序列帧.md#getscale),获取序列帧特效的缩放值。
1. 新增[SetParticleSize](../接口/特效/粒子.md#setparticlesize),设置粒子特效中粒子大小的最小值及最大值。
1. 新增[GetParticleMaxSize](../接口/特效/粒子.md#getparticlemaxsize),获取粒子特效中粒子大小的最大值。
1. 新增[GetParticleMinSize](../接口/特效/粒子.md#getparticleminsize),获取粒子特效中粒子大小的最小值。
1. 新增[SetParticleVolumeSize](../接口/特效/粒子.md#setparticlevolumesize),设置粒子发射器的体积大小缩放。
1. 新增[GetParticleVolumeSize](../接口/特效/粒子.md#getparticlevolumesize),获取粒子发射器的体积大小缩放值。
1. 新增[SetParticleMaxNum](../接口/特效/粒子.md#setparticlemaxnum),设置粒子发射器所包含的最大粒子数量。
1. 新增[GetParticleMaxNum](../接口/特效/粒子.md#getparticlemaxnum),获取粒子发射器包含的最大粒子数量。
1. 新增[SetParticleEmissionRate](../接口/特效/粒子.md#setparticleemissionrate),设置粒子发射器每帧发射粒子的频率。
1. 新增[GetParticleEmissionRate](../接口/特效/粒子.md#getparticleemissionrate),获取粒子发射器每帧发射粒子的频率。
1. 新增[GetPos](../接口/特效/粒子.md#getpos),获取粒子发射器的世界坐标位置。
1. 新增[GetRot](../接口/特效/粒子.md#getrot),获取粒子发射器的旋转角度。
1. 新增[SetRotUseZXY](../接口/特效/粒子.md#setrotusezxy),设置粒子发射器的旋转,旋转顺序按照绕z,x,y轴旋转
1. 新增[Swing](../接口/玩家/属性.md#swing),本地玩家播放原版攻击动作
1. 新增[SetEnableVignette](../接口/后处理/渐晕.md#setenablevignette),是否开启渐晕效果
1. 新增[CheckVignetteEnabled](../接口/后处理/渐晕.md#checkvignetteenabled),检测是否开启渐晕效果
1. 新增[SetVignetteRGB](../接口/后处理/渐晕.md#setvignettergb),设置渐晕效果的渐晕颜色
1. 新增[SetVignetteCenter](../接口/后处理/渐晕.md#setvignettecenter),设置渐晕效果的渐晕中心位置
1. 新增[SetVignetteRadius](../接口/后处理/渐晕.md#setvignetteradius),设置渐晕效果的渐晕半径
1. 新增[SetVignetteSmoothness](../接口/后处理/渐晕.md#setvignettesmoothness),设置渐晕效果的渐晕模糊系数
1. 新增[HeavyBlockStartFallingServerEvent](../事件/方块.md#heavyblockstartfallingserverevent),增加重力方块变为下落的方块实体后触发的事件
1. 新增[FallingBlockReturnHeavyBlockServerEvent](../事件/方块.md#fallingblockreturnheavyblockserverevent),增加下落的方块实体变回普通重力方块时触发的事件
1. 新增[FallingBlockBreakServerEvent](../事件/方块.md#fallingblockbreakserverevent),增加下落的方块实体被破坏时触发的事件
1. 新增[FallingBlockCauseDamageBeforeServerEvent](../事件/方块.md#fallingblockcausedamagebeforeserverevent),增加下落的方块计算砸实体伤害的事件,可修改部分属性
1. 新增[OnBeforeFallOnBlockServerEvent](../事件/方块.md#onbeforefallonblockserverevent),增加实体刚降落到方块上时服务端触发的事件,主要用于伤害计算
1. 新增[OnAfterFallOnBlockServerEvent](../事件/方块.md#onafterfallonblockserverevent),增加实体刚降落到方块上时服务端触发的事件,主要用于力的计算
1. 新增[OnStandOnBlockServerEvent](../事件/方块.md#onstandonblockserverevent),增加当实体站立到方块上时服务端持续触发的事件
1. 新增[PlayerTrySleepServerEvent](../事件/玩家.md#playertrysleepserverevent),玩家尝试使用床睡觉。
1. 新增[PlayerSleepServerEvent](../事件/玩家.md#playersleepserverevent),玩家使用床睡觉成功。
1. 新增[PlayerStopSleepServerEvent](../事件/玩家.md#playerstopsleepserverevent),玩家停止睡觉
1. 新增[OnItemPutInEnchantingModelServerEvent](../事件/物品.md#onitemputinenchantingmodelserverevent),玩家将可附魔物品放到附魔台上时的事件,可修改此时附魔台的选项
1. 新增[GrindStoneRemovedEnchantClientEvent](../事件/物品.md#grindstoneremovedenchantclientevent),新增玩家点击砂轮合成得到的物品事件
1. 新增[FallingBlockCauseDamageBeforeClientEvent](../事件/方块.md#fallingblockcausedamagebeforeclientevent),增加下落的方块计算砸实体伤害的事件,可修改部分属性
1. 新增[OnAfterFallOnBlockClientEvent](../事件/方块.md#onafterfallonblockclientevent),增加实体刚降落到方块上时客户端触发的事件,主要用于力的计算
1. 新增[OnStandOnBlockClientEvent](../事件/方块.md#onstandonblockclientevent),增加当实体站立到方块上时客户端持续触发的事件
1. 新增[EnchantSlotType](../枚举值/EnchantSlotType.md),附魔槽位枚举值
1. 新增[PlayerExhauseRatioType](../枚举值/PlayerExhauseRatioType.md),饥饿度消耗倍率类型
- 调整
1. 调整[SetMobKnockback](../接口/实体/行为.md#setmobknockback),增加备注:在damageEvent事件里面使用该接口时,需把damageEvent事件回调的knock参数设置为False
1. 调整[SetMotion](../接口/实体/行为.md#setmotion),增加备注:在damageEvent事件里面使用该接口时,需把damageEvent事件回调的knock参数设置为False
1. 调整[SetMotion](../接口/实体/行为.md#setmotion),优化文档说明
1. 调整[DepartCamera](../接口/玩家/摄像机.md#departcamera),坐船情况下,分离相机后玩家的镜头水平转动时能够360度转动。
1. 调整[SetEntityOpacity](../接口/模型.md#setentityopacity),更正接口功能作用范围为:只对骨骼模型生效
1. 调整[EntityTickServerEvent](../事件/实体.md#entitytickserverevent),添加实体identifier参数
1. 调整[ChunkLoadedServerEvent](../事件/世界.md#chunkloadedserverevent),该事件不再需要添加区块白名单
1. 调整[AnvilCreateResultItemAfterClientEvent](../事件/物品.md#anvilcreateresultitemafterclientevent),返回值新增合成前两个物品的物品信息字典
1. 调整[ChunkLoadedClientEvent](../事件/世界.md#chunkloadedclientevent),该事件不再需要添加区块白名单
1. 调整[ChunkAcquireDiscardedClientEvent](../事件/世界.md#chunkacquirediscardedclientevent),该事件不再需要添加区块白名单
- 修复
1. 修复[GetBiomeName](../接口/世界/地图.md#getbiomename),修复了在mod有自定义下界的情况下,获取原版下界未加载区块变成自定义下界群系的问题。
1. 修复[SetEntityScale](../接口/模型.md#setentityscale),修复了某些情况大小会被重置的问题
1. 修复[ActorAcquiredItemClientEvent](../事件/物品.md#actoracquireditemclientevent),修复了与村民交易时会触发两次的问题
- 废弃(将在未来不可用)
1. 废弃AddChunkPosWhiteList,区块加载与卸载事件不再需要白名单
1. 废弃AddChunkPosWhiteList,区块加载与卸载事件不再需要白名单
1. 废弃SetRot,该接口设置的旋转值按照x,y,z轴旋转,与其他接口不兼容,故逐步废弃。请使用SetRotUseZXY接口
1. 废弃SetUiItem,推荐使用UI面向对象ItemRendererUIControl.SetUiItem接口