5月31日星火编辑器更新日志

精华修改于2023/05/31688 浏览日志专区

优化编辑器功能:

批量修改模式

数据编辑器现在加入了批量修改模式视图,移除了简易预览模式。
批量修改模式视图与标准节点模式视图分离,拥有丰富的过滤与表格批量修改功能。
关于星火编辑器是否要提供表格编辑功能之前已经讨论了很多次,希望提供表格编辑功能的理由之一就是批量修改的场景。
下面描述两个经典使用场景:
  1. 以技能的伤害系数为例,我们建议每一个技能都具有一个(或多个)属性『伤害系数』,然后伤害节点可以使用同一个技能公式来构造伤害体系。在这样的框架下,当你需要调整数值时,即可切换到批量视图来进行调整:将技能A的伤害系数下调、将技能B的伤害系数上调。
  2. 以批量修改的场景为例,比如我们要把所有伤害的浮动值都设置为5,只需要复制一个已经设置好的选项,在左侧的参数名处粘贴,即可批量修改(公式同样适用)。
TapTap
批量修改模式

多场景支持和强化

我们针对此前用户在多场景切换功能上的痛点进行了一些系统性的修正和强化。
  1. 我们加入了场景副本的支持,允许用户创建同一场景的多个副本,不同玩家可以处于同一场景的不同副本中但互相不可见。
  2. 使用『创建场景副本』动作来为一个场景创建副本。
  3. 创建场景的副本需要提供一个与现有场景名称不同的场景名。创建了副本的场景依然需要通过『加载场景』函数来加载。
  4. 使用加载场景函数来加载一个场景的副本时,无法直接在触发器中选择场景名,需要通过转换函数来将副本的名字转换为场景,然后传递给加载场景函数。
  5. 切换场景与释放场景也是同理。
  6. 这个函数可以有返回值,返回false代表创建副本失败。(多数是因为已经存在同名的场景)
  7. 需要特别注意的是,地编对象及其注册的事件,以及地编区域及其相关事件都只会对原始场景上的对象生效。如果想要对场景副本上的单位和区域注册事件,需要使用『添加触发器事件』动作来动态进行注册。因为场景副本上的单位都只是原始场景单位的副本。
  8. 现在单位在切换场景后,单位身上的所有物品也会随之切换场景,以避免出现此前出现过的切换场景后由于旧有的场景被删除,导致单位身上的物品全部消失的问题。
  9. 我们为加载场景与切换场景函数加入了更多错误提示,方便用户正确地使用这些API。
  10. 我们修正了部分矩形区域在场景间切换时坐标会出现偏移的问题。
  11. 我们修正了部分场景的区域进入事件可以在别的场景错误地触发的问题。

V2局外资源全链路打通

  1. V2触发器环境下,使用局外大厅的商城、通行证、签到、邮件等功能,都会涉及到局外资源的处理逻辑,详见相关文档《V2大厅商城配置 & 局外资源配置》
  2. 关于局外资源为何如此设计,请参考文档中的示例,这一思路对于开发者定制自己的个性化模块也有借鉴意义。

物品系统自定义能力的进一步强化

我们加入了可由触发器完全自定义的『物品额外属性加成』系统。
  1. 物品额外属性加成是独立于物品在数编里配置的属性加成以及通过『添加物品词缀』所附加的属性加成,是一个独立的属性加成表。
  2. 每个属性只能有一个额外属性加成值。比如额外属性加成值不能有两个生命 +X。但可以与数编属性加成以及词缀属性加成重复。额外属性加成值会正常影响持有者单位的属性。
  3. 通过『设置物品额外属性加成』动作可以设置或者修改指定物品对指定属性的指定子属性类型的额外加成,可分别针对装备加成和持有加成进行设置。
  4. 可以通过『遍历物品的额外属性加成』来遍历物品上所有的额外属性加成。
  5. 可以清空物品的所有额外属性加成,也可以清空特定属性的加成。
  6. 显而易见,拥有额外属性的物品保存在云上时,会因为需要保存额外属性而占据更多的空间,因此在无需高度自定义属性值的场合,仍然推荐使用数编直接设置物品加成或使用词缀。
我们还加入了『创建物品栏』和『删除物品栏』触发器动作,允许为单位动态添加和删除物品栏,删除物品栏后,物品栏内已有的物品会掉落在角色脚下。
新的触发器事件『物品-在物品栏内移动』。可以获得触发事件的物品、原始物品栏和槽位对象,新物品栏和槽位对象。原始槽位物品栏编号和格子编号,新槽位物品栏编号和格子编号。
UI编辑器控件中的『自定义背包』和『自定义背包格』现在可以通过面向对象方法中的『切换技能使用与拖拽模式』方法来在『物品拖拽移动模式』和『物品技能使用模式』间切换,达成与快捷物品栏相似的效果。
我们为物品加入了装备属性需求的功能。用户可以在数编物品数据中设置装备该物品时的属性需求,如100等级,20力量等等。持有者只有满足了这些属性才可装备上指定的物品,在查看提示信息时,为满足的属性需求会显示为红色。除此之外,用户也可通过触发器单独为指定物品添加额外的装备属性需求。
(限时案例悬赏:在30天内写出本更新相关案例,运营喵选出最全面的案例额外+500贡献度)
我们还进一步加强了物品的提示信息的自定义能力。物品提示信息将可有两种自定路径,一种为在官方物品提示信息控件下的有限自定义功能,另一种是完全自定义提示信息控件的路径。

物品提示信息的有限自定义方向的改进如下:

  1. 在数编Buff节点中,现在加入了『悬停提示』的属性字段。该字段可被用于自定义Buff的悬停提示信息,但对于作为物品词缀存在的Buff,该字段可以作为物品词缀的扩充描述而存在。
  2. 数编的物品节点中现在可以勾选官方物品提示信息中会显示的内容,可勾选的内容列表如下:
  • 显示品质
  • 显示名称
  • 显示词缀
  • 显示装备需求
  • 显示属性加成
  • 显示物品描述信息
  • 显示词缀扩充描述信息
  1. 对于每个物品来说只有被勾上的那部分信息才会在提示信息面板中显示。
  2. 『显示词缀』选项默认为关闭,在勾上后,物品的提示信息中会在物品的名称前加上词缀Buff的名称作为前缀。
  3. 若显示词缀扩充描述信息选项在勾上后,会在物品原本的描述信息后追加显示词缀Buff的悬停提示信息,以实现物品描述信息的追加。

物品提示信息的完全自定义方向的改进如下:

  1. 我们加入了客户端 『鼠标点击背包物品显示提示信息』 事件,该事件会在用户点击背包中的物品并显示提示信息时引发。该事件会被点击的物品、物品信息面板控件、被点击的物品格控件以及物品所在的物品栏控件作为参数传递给用户。
  2. 用户可以捕捉该事件,并将物品提示信息控件的可见性设置为false来隐藏默认的提示信息框,并创建自己的提示信息UI来完全自定义地显示物品的提示信息。

UI编辑器页面的重用与UI控件的动态创建

  1. 现在UI编辑器中所创建的所有自定义页面也会同时出现在UI编辑器右侧的『页面』菜单中。用户可以直接把它们当作控件拖拽进其它页面里,实现控件布局的重用,原始页面中所有的下属控件也会作为该页面控件的下属控件出现在其它页面里并保留原有的布局。
  2. 注:通过点击页面控件上的锁形图标可以解锁页面控件的边框尺寸,允许调整它们在其它页面中的尺寸和布局,与调整一般控件的方式一致。
  3. 我们还在客户端触发器中加入了创建控件的触发器动作。通过这一动作,用户现在不但可以在触发器中动态新建页面,还终于能通过它创建其它已有的控件类型。此外,我们加强了动态创建页面和控件的使用体验,这个触发器动作终于不用再手动输入页面和控件名称了。
  4. 在创建了控件之后,我们可以通过『设置控件的父控件』动作将刚创建出来的控件或页面附着到其它指定的控件之下。
  5. 旧有的获取下属控件函数只能返回一个控件。当控件拥有多个同名下属控件时会难以获取其它同名控件。因此我们加入了新的触发器函数『获取指定名字的所有下属控件』。该函数会返回一个数组,找到指定控件下所有拥有指定名称的下属控件。
(限时案例悬赏:在30天内写出本更新相关案例,运营喵选出最全面的案例额外+500贡献度)

单位组相关支持的重构

  1. 我们重新实现了单位组相关的触发器,旧有的返回单位数组的触发器元素依然能运作,但已在新建菜单中被隐藏。
  2. 新版的获取单位组相关的触发器将返回一个类型为『单位组』的对象,而非单位数组。单位组对象支持新建、添加单位、移除单位、合并单位组等操作。也支持从单位组中取出随机单位。
  3. 新版单位组的行为方式更接近集合,对同一个单位组反复添加同一个单位不会导致单位组中出现指向同一单位的多个元素。
  4. 新版本的『通过单位过滤器过滤单位组』函数不会再出现原有版本的运行时错误。此外,我们还加入了『有基准单位』版本的单位组过滤函数。

队伍结盟与中立关系

星火编辑器现在正式拥有了中立玩家的概念:
  1. 当一个玩家被设置为中立玩家时,代表它与其它任何玩家的敌我关系都至少为『中立』,不可能与任何一个玩家的关系成为『敌对』。
  2. 当中立玩家与一个玩家处于同一个队伍时,这两个玩家之间的关系仍为『盟友』。
  3. 中立玩家影响AI索敌过滤、技能过滤、与搜索效果过滤。设置为『需要:敌方』的搜索效果会无法对中立玩家的单位起作用。中立玩家所引发的『需要:敌方』的搜索效果也无法对其它任何玩家生效(因为中立玩家看其它玩家也都至少为中立)。
  4. 可以在数据编辑器->地图设置->默认地图设置中设置任何一个玩家的初始状态为中立玩家。
  5. 可以通过触发器动作『开关玩家的中立状态』来动态修改一个玩家的中立状态。
  6. 可通过『玩家是否是中立玩家』来判断一个玩家是否是中立玩家。(客户端与服务器均可)
  7. 我们修改了新建地图时的默认模版,今后通过模版地图所创建的新项目中,玩家0都会默认为中立玩家。(不会影响旧有项目)
我们还增加了新的触发器函数『玩家之间的结盟状态』,方便判定两个玩家之间的结盟关系。
  1. 若两个玩家处于同一队伍,该函数会返回『盟友』。
  2. 若不处于同一个队伍,但其中一个玩家是中立玩家,该函数会返回『中立』。
  3. 若不处于同一个队伍,且两者都不是中立玩家,则会返回『敌对』。
  4. 该函数逻辑与技能效果过滤的判定逻辑保持一致。
  5. 客户端与服务器都可进行此判定。
现在星火编辑器还允许动态创建队伍
  1. 通过『新建玩家队伍』函数可以新建一个玩家队伍,该函数返回一个新队伍的编号,若返回0则代表新建队伍失败(通常是超过了255个队伍)。
  2. 通过『所有的玩家队伍编号』可以获得一个当前所有玩家队伍编号的数组。
  3. 『改变玩家所属队伍』(注:这个触发器动作是在以前的更新中加入的)触发器动作现在也允许把玩家移入动态创建的新队伍中。
现在星火编辑器还允许玩家与非盟友玩家单向共享视野。
  1. 通过触发器『开关两个玩家间的强制共享视野』动作,可以强制令一个玩家对另一个不同势力的玩家单方面共享视野,或将之取消。

对话系统

  1. 星火编辑器现在加入了对话系统。用户可以使用数据编辑器安排角色对话场景,并通过客户端触发器来播放这些对话。
  2. 对话系统在数编中依赖『角色』和『对话』这两类蓝图,使用时请注意。
  3. 对话允许通过触发器播放,也允许通过玩家与地图上的角色交互来引发。这是一个完整的系统,详情请参考教程
  4. 对话系统扩大了星火编辑器的使用边界,结合批量视图,现在应该可以比较容易的做文字冒险游戏了。
TapTap
对话系统

数据编辑器

  1. 现在数编允许查看和改变节点的模版。注意只有当前地图内新建的节点才可修改其模版。改变一个节点的模版时,当前节点的修改会被保留,但从模版继承来的值会被刷新为模版值。节点的模版属性可以在节点属性面板的Editor页面查看和修改。
  2. 伤害飘字和治疗飘字现在不再要求其中一方是英雄或者主控单位。
  3. 向量技能的智能施法和自动施法逻辑变得更为智能,现在若智能施法/自动施法设置的范围超出向量技能的影响范围,单位会自动走到目标施法范围内的距离,并向着目标施法,而不会对着目标的方向傻乎乎地空挥。这是我们专门为向量目标智能施法添加的全新逻辑,因为默认状态下向量技能的目标是一个方向角度。
  4. 现在只有用户主动使用的技能会报告『魔法不足』,『无法对该目标使用』等错误,以免自动施法的技能引发『技能在CD中』的刷屏。
  5. 我们大幅度提高了光环类Buff的执行效率,避免了在属性总数没有变化的情况下反复刷新属性。这一改动可极大地优化光环类技能的服务器负载和网络通讯。(光环Buff想要享受这一优化,需要使用Buff模版的默认的排序设置以及勾选『默认的『每个施法者刷新各自的实例』标旗,通过官方Buff模版创建的Buff都已经正确地进行了设置)
  6. 默认地图设置中,时间-积分初始化、时间-游戏载入、时间-游戏运行字段都加入了详细的作用描述,并且字段的数值单位由毫秒变成了秒,与编辑器其它位置的时间输入框更加一致(旧有数据会自动升级,不会受到影响)。 

新版触发器

  1. 『云变量表』现在改名为『简单表』以反映其使用场景不再仅限于云变量的现状。
  2. 使用触发器发布指令时现在可以选择发布『打开/关闭可开关技能』的指令。
  3. 『效果节点』类型现在暴露『效果树自定义值表』属性,这是一个包含了效果树上所有自定义值的简单表,用户可以直接在该简单表上设置和获取效果树的自定义值。
  4. 『对象上保存的任意值』以及『在对象上保存任意值』现在在客户端也能使用了。
  5. 服务端触发器中,现在可以直接获取一个指定的地编路线中路点的总数。
  6. 定义类时现在可以设置默认值。在新建这一类型的变量时,触发器等号右侧能自动出现所设置的默认值方便修改。
  7. 在触发编辑器中填写参数时,若参数是一个确定的类型,那么在变量页面可以通过选择『新建一个变量』命令自动新建一个对应类型的变量并填入参数槽位中。
  8. 触发编辑器右侧的触发器树现在支持通过鼠标框选进行多选。
  9. 在新建触发器语句的界面中,预设值的数编Id与数编表现在有明显的区分了。
  10. 游戏调试时的错误提示信息获得了进一步的强化,在错误堆栈中会尽量显示触发器中出错的行数。
  11. 我们调整了技能添加逻辑中一些代码的先后顺序,现在在『技能-添加』事件中,用户就可以立即获得被添加技能的数编表,而不需要再等待一帧。
  12. 触发器左侧的树状图现在可以被拉宽,以方便显示长文字。此外鼠标悬浮时显示元素全名,以解决太长的触发器显示不全的问题。
  13. 在触发编辑器中勾选『显示依赖库』时,搜索功能现在可以搜索到依赖库中的触发器元素。
  14. 在触发器中新建触发器、变量与类时,我们增加了更多关键字检测,以免用户创建出的Id与编辑器内部已经在使用的对象Id产生冲突而导致脚本执行出错。
  15. 触发编辑器右侧的触发器内容树状视图中,对于带有子元素的语句,现在既可以在最视图最左侧的语句编号栏对语句进行展开/收缩操作,也可以直接在语句的前方通过点击+-号对语句进行展开/收缩操作。
  16. 触发器事件语句现在也可以收缩,隐藏其下的触发器事件参数。
  17. 现在带有匿名函数的动作也可以进行收缩,匿名函数会被收缩进动作中。
  18. 我们为更多触发器元素增加了悬停提示文档。
  19. 修正了部分触发器事件语句的措辞和通顺度,比如客户端触发器事件中的『【游戏】按下时』这样令人困惑的语句改成了『本地客户端按下按键时』。
  20. 新建空模版地图后,地图的模块名现在会显示为『我的地图』而非超长的一串地图Id。地图模块的显示名可以自由修改。
  21. 我们优化了触发器参数选择时新建窗口的交互,在尝试给一个可为空的对象提供值时,不会再列出会返回与当前类型不同的可为空类型的函数。
  22. 现在在触发编辑器中设置泛型类型时,允许对泛型类型进行一定的约束,相当于可设置TypeScript中的 <T> extends.
  23. 当一个属性只有get方法时,不会再能在复制语句的左边选到。
  24. 现在可以通过Buff对象的“当前属性加成列表”字段来获得一个buff目前所附加的所有属性。
  25. 私有属性或方法现在不会再在类外显示。
  26. 在泛型类型约束功能的帮助下,新版的『通过数编Id获取数编表』以及客户端的『获取下属控件/子控件』函数获得了一定的体验强化,现在这些函数的转换类型中只能选择数编表和控件类型了,而不像此前那样可以选择任何类型。

地图模版改进

  1. 我们修改了《吸血鬼幸存者》模版,为所有技能增加了命中特效,与此同时,我们在游戏的主界面上加入了『打开/关闭命中特效』的按钮,当处于关闭状态时,客户端的命中特效将不会显示,以提高游戏的流畅性。这一改动是为了提供一个使用场景,方便用户熟悉我们的『粒子特效过滤』功能触发器的使用方法。(这一改动仅对今后新建的《吸血鬼幸存者》模版地图生效)

预制功能改进

  1. 若n选1界面的用户在选择界面中未进行选择就断线,客户端重连时n选1界面会自动重新显示,允许用户继续进行选择。

其他优化:

  1. 隐藏了地形编辑器右键菜单中一些无意义的选项

修复编辑器问题:

【地形编辑器】修复了部分情况下无法打开地形的问题。
【新版触发器】修复了将一个属性设置为可以以面向过程方式访问后,属性没法正确以面向对象方式显示在界面上的问题(并不影响运作)。
【新版触发器】修复了『局外队伍编号』函数没有正确设置返回类型的问题。
【新版触发器】触发器事件定义获得了新的图标和前缀,以与函数和类相区分。
【新版触发器】客户端物品的.数编表属性现在正确返回物品数编表类型。
【新版触发器】修复了触发器中部分小数输入值会发生浮动的问题。
【新版触发器】修复了伤害实例对象中『当前伤害值』属性的类型。
【新版触发器】修复了『Buff-层数变化』事件传入的Buff对象永远为空的问题。
【新版触发器】修复了在客户端使用单位过滤器过滤单位无法返回正常内容的问题。
【新版触发器】修复了『遍历集合』被显示成了『遍历数组』的问题。
【新版触发器】修复了部分客户端触发的报错没有被正确显示的问题
【新版触发器】修复了技能的『数编表』和『所属单位』这两个属性的显示名。
【数据编辑器】修复了消耗掉的技能点数会在特殊情况下被错误地重置的问题。
【数据编辑器】修复了沿路线进攻移动时定身无效的问题。
【新版触发器】修复了如果事件参数列表中传递的值有一个为空,那么后续的内容都无法在客户端与服务器间正确传递的问题。
【数据编辑器】修复了治疗效果无法触发治疗飘字的问题。
【标准技能样例】修复了样例技能中闪电箭技能的问题。
【通用物品栏】修复了当物品的品质等级为0,且没有按照旧有机制配置物品品质时,物品提示信息的品质部分会显示一个0的问题。
【通用物品栏】修复物品装备状态在特定情况下没有正常发生变化的问题。
【通用物品栏】修复了部分已装备物品在丢弃后还会显示在包里的问题。
【预制功能:靠近时拾取物品】修复了该预制功能失效并且会刷屏错误日志的问题。
【预制功能:天赋】修复了是否可以回退的bool值无效的问题。
【云变量迁移】修复了云变量迁移过程中临时出现的不管保存多少种云变量货币都只能取出一种货币的值的问题。
【地形编辑器】修复镜头偏移属性未生效的问题。
【修复问题少写点,还有很多,但是写多了你们不看】

游戏优化:

史诗级更新:每30天可以无条件修改一次昵称了,在设置中修改自己的昵称,修改的昵称对所有的星火编辑器制作的游戏有效。
TapTap
修改昵称
游戏加载背景图的适配方式调整:调整为水平方向拉伸至100%,然后竖直方向下边裁剪;在确保不变形的情况下,优先保留图片上部的信息,适配不同的设备尺寸。
大厅可以自由的设置模式名和模式介绍了,可以采用<#948EFF:自虐模式:>这样的格式控制文字的颜色,使用<br>进行换行。
TapTap
自定义模式名和模式描述
7
1
7