跳到主要内容

2024年4月18日更新日志【2024.04版本】

星火编辑器发布了新的编辑器版本:2024.04。

除部分严重BUG修复会覆盖旧版本,以下新功能均在编辑器版本2024.04中生效。

开发者可以在编辑器顶部菜单-编辑器版本中进行版本切换。

触发器/数编公式调试错误定位优化

星火编辑器进一步优化了调试状态下对服务器、客户端触发器错误的定位和跳转能力。今后,在用户调试项目出现脚本错误时,用户将能在绝大多数情况下通过信息列表界面的位置快捷方式快速跳转到导致错误的触发器所在行。在过去,一些内部的函数或者依赖库往往无法正确进行跳转,对开发者造成了比较大的困扰。

例如图中在创建单位语句中传入了错误的单位ID,这个报错出现在星火底层的unit.lua中,但是优化后,可以点击右侧的『位置』直接跳转到对应的触发,并且会选中错误的语句,这一优化应该会对开发者排查问题有比较大的帮助。

此外,经过了星火程序员们的多番努力,数编节点中的验证器和公式导致的错误也能进行跳转了。

触发器/数编公式错误日志优化

对于已经将项目发布到线上或者Canary的用户,由于部分错误信息只能通过后台日志来查询,此时触发器的智能跳转功能自然不再适用。对于不得不适用错误日志来定位错误的用户,星火编辑器尽量优化了错误日志中的堆栈信息,使错误日志信息中能够包含出错的触发器的名称以及公式的Id。

在过去,后台错误日志仅能显示错误行号,但许多用户在查看错误日志时可能已经对项目进行了修改,旧有的行号可能已经不再对应了。通过显示出错的触发器名称以及公式Id,应该能帮助用户更好地手动定位到问题。

注:旧有项目需要以2024.04或更高版本保存并重新发布才能享受这一改进。

物品额外属性优化和修正

星火编辑器优化了物品额外属性的保存,并修正了旧有版本额外属性系统的一系列问题。

现在物品额外属性可以正确保存基础值和百分比值以外的其它类型的单位子属性,而且同一个物品上的相同额外属性现在允许多个子属性类型共存——举例而言,以前同一个物品只能有一个额外的基础值生命上限加成,或者一个额外的百分比值生命上限加成,现在两者可以在同一个物品上共存,此外,也允许其他子属性类型存在。

关于额外属性基础值和百分比值颠倒的修正:2024.03版本以前上线并且使用了物品额外属性,还将物品储存到云变量的项目,可能会遇到项目升级到2024.03以后旧有云变量物品读取后基础值和百分比值颠倒的问题。这其实是2024.03版本修正了云变量物品额外属性的保存格式导致旧有错误格式的数据读取后出错导致的。

为了方便用户正确地升级到2024.03及之后的版本。旧有的线上项目可以在地图初始化时执行一条自定义脚本[base.item.fix_percent = true]来告知服务器主动地对旧物品数据进行修复。(触发器动作中有一条动作是“自定义脚本”,允许用户直接写入typescript脚本)

注意该修复只能在03或者更之后的版本进行。只有在更早版本使用了额外属性云变量且已经上线的作品可能遇到这个问题。没有遇到这一问题的用户无需进行这一操作。

星火核心库

星火编辑器将会在之后几个版本中逐步开放第三方依赖库的功能,用户将能编写自定义依赖库以供自己使用或发布到预制功能库中与他人分享。为此,星火编辑器自身的官方库依赖关系也发生了一定的改变。

作为准备工作,星火编辑器加入了一个【星火核心库】spark_core,原本属于默认样例库default_units_ts中的那些影响到星火编辑器引擎运作的逻辑、AI和模版经过了拆分,现在全部移入到了【星火核心库】中。使得星火核心库成为了一个星火项目正常运作的最小依赖。而原本default_units_ts库中所有的单位、英雄、技能、物品样例则依然会留在default_units_ts库中。

这意味着有足够经验基础的用户可以手动剔除个人项目中default unit ts的引用,替代为对spark_core的引用,这样,项目中将不再包含对星火编辑器样例技能、单位和物品的引用,可以减少一定的加载和保存时间。今后的第三方依赖库也可以基于核心库来开发,更注重效率。spark_core库依然包含所有的数编模版、游戏机制设置公式、跳字和血条设置等等,相对与default unit ts库没有功能上的缺失。

我们也将【零基础功能体验闯关模版】改为了依赖【星火核心库】,这样用户可以在闯关模版上进行二次开发。原本,零基础功能体验模版仅仅是用来帮助新手用户体验编辑器一些基本功能的,因此该模板所创建的项目其实缺少大量闯关设计中没有涉及的编辑器核心功能。但最近我们收到一些用户的反馈,希望能够针对零基础功能体验闯关模版进行二次开发。为此,我们也将针对spark_core的引用加入到了闯关模版中。

游戏大厅自定义模块(装备局)支持用触发制作了

过去大厅的自定义模块只支持通过代码实现,限制了部分不擅长写代码开发者制作局外成长或其他功能的可能性。

本次更新后已经支持了通过触发制作大厅自定义模块的功能。

我们会尽快放出Demo和文档,方便大家第一时间尝试使用。

自定义技能打断公式

在过去数据编辑器允许对技能的打断行为进行配置,诸如技能的各个阶段可否被打断,技能可否被行走打断等等。但随着星火编辑器支持的项目日渐复杂,更加特殊化的技能打断需求被陆续提出:如想要技能只能在某个特定阶段能被行走打断,但在其它阶段却能被其它技能打断等等。

我们在技能节点的技能打断设置子属性下增加了自定义打断公式字段。该公式会传入当前技能的施法实例以及尝试进行打断的施法实例,而用户可以通过返回真或假来决定是否允许当前技能被新技能/行走给打断。

自定义打断公式只会在符合其它打断逻辑的前提下进行验证,举例来说,假如技能处于某个没有被设置为可被打断的阶段,则该技能不会被打断,也不会尝试验证自定义打断公式。因此用户如果想要通过自定义打断公式来完全接管技能的打断设置,则需要将技能的所有阶段都设置为可被打断。

PC默认技能摇杆快捷键

星火编辑器提供了PC上的技能快捷键功能。但在一些特殊情况下,用户可能想要按照技能布局来设计快捷键,而非按照技能本身。比如,在编写一个可以动态组合技能的游戏时,用户可能想要按照技能的槽位来设定快捷键,因为同样的技能可以出现在不同的槽位。

在2024.04版本之后,数编中的游戏机制设置将可以分别设置默认技能摇杆组1-12个技能槽位的技能快捷键。在默认情况下,前9个槽位的技能快捷键将会被设置为数字键1-9. 用户可以在游戏机制设置中修改或者删除它们。

除此之外,我们也允许用户对单独的技能摇杆控件进行快捷键设置。用户可以在界面编辑器中使用单独的摇杆控件,并可以在那里看到全新的PC快捷键字段。

当同时设置了技能节点上的快捷键和技能摇杆上的快捷键后,会出现什么状况?

当同一个技能槽位同时存在技能摇杆快捷键和技能快捷键时,以技能快捷键为准。

带限制的云变量

云变量新增了带限制的云变量类型。带限制的云变量是独立于普通云变量和货币云变量的整数型云变量,其数值不能小于0,且不能大于修改操作所指定的上限。此外,带限制的云变量可以指定刷新时间,超过该时间以后再查询,此云变量值会重置为0。利用这个特性,可以用来开发日常任务、周常活动、每日领取奖励等功能。

带限制的云变量在设置时,应当使用添加云变量提交请求:设置带限制的云变量动作将其加入到云变量提交请求中。该动作可以选择多种类型的带限制的云变量,默认情况下,用户需要在参数中设置云变量值与该值的上限,若选择了带时间限制的云变量参数,则还需要设置刷新间隔。特别地,在设置按周刷新的带限制云变量时,还可以额外指定在周几进行刷新。

带限制的云变量只能保存数值,用户可以通过查询带限制的云变量动作来查询带限制的云变量。

数编CSV导入导出优化

过去,当使用数据编辑器的CSV导出功能时,若导出节点拥有复杂的公式,可能会导致csv解析失败,导出为混乱的字符。

新版本星火编辑器在汉字导出编码和公式字段导出两个方面进行了优化,应该能帮助用户大大减少导入导出CSV文件的问题。

界面编辑器

  1. 界面编辑器可以通过Tab键跳转下一个输入框了。

  2. 文本控件(Label)支持双击编辑默认文本了。

  3. 界面编辑器组件库中的组件统一显示为中文名称,并配上了适合的图标,降低开发者学习成本。

  4. 界面编辑器支持右键拖动当前展示的区域了。

数据编辑器

  1. 我们极大优化了数编效果节点、单位所挂接的表现在多场景和启用视野场合下的通讯流量以及运算量。

  2. 无限蓄力技能现在可以通过在蓄力过程中拖拽到取消区域来取消施法,不再消耗资源和冷却。

  3. 游戏机制设置中自定义单位属性公式执行出错时,现在系统能给出更详细的错误信息,而非显示一个“call error”。

  4. 当查看蓝图时遇到失效的快捷方式时,数据编辑器现在会在信息列表显示一条提醒。

  5. 对数据编辑器中任意数据分类的数编类型进行扩充或更改不再会导致项目无法正常保存。在过去,任意数据分类下的数编表其实经过了非常特殊的内部处理,但在数编类型编辑器开放的现在,这类特殊处理已经不再有存在必要,因此我们已经将一些内部特殊处理去除。而用户也将可以正常地扩充或继承任意数据的节点类型。

  6. 现在任意数据节点的数据读取方式和普通数编节点完全一致,不再有任何特殊格式或语法。

触发编辑器

  1. 服务器和客户端的触发中添加了获取技能的充能层数的方法。

  2. 云变量添加了检测待上传的云变量值是否合法的语句和API。如果待检测的云变量值合法,则打印该云变量值序列化后的长度,否则报错提示非法原因。

  3. 触发编辑器的动作组功能现在在首次查看时默认为收缩状态了,这是我们听取了用户反馈意见后进行的改动。

  4. 触发器Map结构的存取逻辑获得了优化。现在应该会减少Map存取和循环时发生的脚本错误。

  5. 点击收藏的语句不会再跳转到原始的语句位置了。

  6. 客户端触发可以获得物品的堆叠数量了。

场景拼接Demo

我们在优化场景拼接Demo时又发现了一些可优化的点,这些优化点能显著减少开发者学习使用此功能的成本以及实际使用过程中的维护成本,因此我们计划在完成这些优化后,再放出一个实现更简单的版本供大家使用。预计下次更新可以看到相关的介绍。

血条编辑器

血条编辑器的基本功能其实已经开发完成并且可以投入使用,但是有一些底层的优化仍在进行中,因此我们计划在下一次更新时正式放出此功能,预计下次更新可以看到相关的介绍。

文档网站触发器API同步

现在星火编辑器的文档网站上列举的触发器API会即时地跟随新版本的发布而改变了。星火编辑器的用户可以更快地在文档网站上查询到新版编辑器加入的触发器API,不会再发生新的触发器函数和动作加入三个月后才能在文档网站上查阅的问题了。

默认技能样例优化

  1. 对于每个等级只会变化数值的技能来说,用户无需为每个等级配置写死的描述信息,描述中的涉及等级数值的部分可以利用技能描述信息参数字段来进行自动填充。这并非是一个新的功能,但我们注意到许多用户没有注意到可以这样配置技能描述,因此我们修改了默认样例中的成长光环技能和成长火球技能,为它们加入了会随着等级变化而变化的技能描述文字作为例子。

  2. 默认的眩晕Buff样例现在会打断正在施法的技能而非仅仅使其暂停。

自定义移动器的响应反射行为更改

弹道反射响应原本是设计来反射发射投射物效果节点的投射物弹道的。在使用自定义移动器而非发射投射物节点的场合,由于系统无法预知移动器的预期行为,因此很难正确地给出反射效果。在实际生产过程中,经常会发生反射效果由于强制反射自定义移动器而导致脚本出错的问题。

为了更好地解决脚本错误,星火编辑器今后不会再尝试自动反射自定义移动器。只会反射那些拥有固定逻辑的投射物和移动器。使用自定义移动器的投射物单位依然会被响应给移除。我们建议用户在反射响应节点的后续效果节点中使用自定义效果或者触发器事件来手动实现自定义移动器投射物的反射。

捏人动画资源重定向引用警告

现在,在编辑器调试阶段遇到单位捏人技能动画配置错误时,编辑器的消息窗口会显示一条警告提示信息,提醒用户如何正确地配置动画以确保动画资源被正确引用。

我们认为这一改动应当能够更好地帮助用户减少”在调试阶段能播放动画,发布后却无法播放技能动画”的问题。

捏人功能优化

捏人去掉了原有的单个部件只能放一个的枷锁(仅限装饰物),现在可以放无限多的装饰物来组合出自己想要的捏人效果了。

预制功能库优化

  • 在过去,星火编辑器中经常出现删除预制功能库小卡片导致的数编完全崩溃且无法加载的问题。这是由于部分预制功能库小卡片被删除时在数编中留下了冗余数据所致。

  • 今后星火编辑器在加载过程中遇到此类冗余数据时,将不再会使数编崩溃,而是会弹出警告窗口,允许用户选择自动清除这些冗余数据以保证加载和保存成功。用户也可以选择取消加载并对这些冗余数据进行手动处理。

  • 此外,在此版本中清除了所有模板对于弃用的lib_plotdialogue库和lib_region库的引用。

创作者中心

创作者中心支持查看游戏的星火币消耗和初步的可分成金额预估。

其他编辑器优化

  1. 顶部快捷栏新增『项目设置』快捷入口。

  2. 我们在每次保存和调试的进度条增加了一些提示信息,方便开发者掌握一些星火小知识,此外,当上传和调试陷入了无响应的状态,开发者可以通过进度条的关闭按钮终止次进程。(但是注意,保存的时候要慎重使用此功能)

游戏优化

  1. 游戏内的设置现在可以适配竖屏了。

  2. 对于竖屏游戏的支持,预计还包含游戏内的商城、支付,短期内可能不会有更多预制功能的适配。

错误修复

  1. 修复了物品额外属性的显示问题,修复了属性显示格式和属性自定义显示名在物品提示信息中失效的问题。

  2. 修复了数编效果节点可视化作弊码(VRP),现在调试模式下又可以正确预览效果节点的各种信息了。

  3. 修复了自定义单位属性同步方式对默认场景中预先放置在地图上的单位无效的问题。

  4. 修复了客户端看不到敌方单位由服务端面向对象的播放动画动作所播放的动画的问题。

  5. 修复了数据编辑器中当目标移动器的移动目标为单位时,移动器没有正确地追踪单位的问题。

  6. 修复了被动技能在周期性效果中禁用自己时可能导致的报错问题。

  7. 修复了服务端触发器中获取物品词缀随机结果的函数。使用过该函数的旧项目需要重新选取一次该函数才能使修复生效。

  8. 修复了伤害和治疗飘字功能中施加伤害/治疗的玩家自己看不到飘字的问题。

  9. 修复了飘字配置需要原地保存才能正确生效的问题。

  10. 修复了自定义背包物品格的底图大小不会随格子本身大小进行缩放的问题。

  11. 修复了单位死亡后出现的“非法source”和“非法target”报错。

  12. 修复了生成小地图后切换场景时编辑器卡住并崩溃的问题。

  13. 修复了组合动画中,单段动画勾选循环选项时只会播放一遍的问题。

  14. 移除已被弃用的“战斗中标记”buff,现在所有buff都可以获取其数编表了。

  15. 修复了在主控单位进入副本场景后,主控单位、物品等均不可见的问题。

  16. 修复了主控单位进入副本场景后无法进行对话的问题。

  17. 修复了数编中设置文本类型飘字颜色无效,初始字号极小且无法更改字号的问题。

  18. 修复了单位在交互的时候不显示进度条的问题。

  19. 修复了交互完毕后交互摇杆有概率不消失的问题。

  20. 修复了单位复活后无法再次被交互的问题。

  21. 修复了单位复活后碰撞单位丢失的问题。

  22. 修复了飘字同步方式设置为所属玩家单位总是可见时,己方单位造成伤害的飘字不可见的问题。

  23. 修复了触发编辑器中添加一条收藏过的无返回值动作语句(比如调试语句)会添加返回值的问题。

  24. 修复了删除主控时对话模块出现的报错问题。

  25. 修复了当两个粒子表现叠在一起时,其中一个粒子表现会在别处闪烁的问题。