[0.98a-RC8]需要向Alex反馈程度的问题/API许愿汇总
本帖最后由 cjy4312 于 2026-2-24 17:24 编辑此贴将统计一些游戏原版的问题(当前最新游戏版本 0.98a-RC8)
数量够多或者情况够严重的时候会一并反馈给英文论坛(谢谢Myco)
mod的问题请找modder解决
哪些问题应当被反馈呢?
例:野狼-级 护卫舰 左右两侧 导弹武器槽不对称有轻微偏移 (0.951a前曾有该问题,现在已修复)例:API需求: WeaponAPI 需要为武器的本体、炮管、底座、发光等图片对象添加get/set方法
1.通过settings.json挂载的EveryFrameCombatPlugin 在它的init方法中为CombatEngine挂载FleetMemberDeploymentListener,试图为战斗中每一个舰船挂载buff或执行其它操作的时候,玩家通过试驾按钮部署的舰船无法被FleetMemberDeploymentListener截获。
Alex:收到
2.生涯战斗中,通过代码removeWeaponFromGroups()移除第一个武器组的所有武器会导致游戏跳出多线程操作导致的干扰 将代码运行在武器每帧之外的地方不会闪退
3.API需求:ShipAPI 需要一个获取舰船视野范围的方法Alex: ship.getMutableStats().getSightRadiusMod().computeEffective(3000f)
4.增加细分渲染层级(renderlayer),如船体之上武器之下,或采用int类划分层级而非enum类。Alex: For weapon slots, you can provide:"renderOrderMod":<some integer>,In the .ship file, which will affect the relative order of the weapon slot rendering.看起来Alex并不清楚 舰船缺失一个高于船体/低于武器的图层获得了一个渲染监听器的卫星:ShipRenderListener interface void reportRenderedShipSprite(...); void reportRenderedDHullOverlay(...); void reportRenderedExtraOverlay(...);
5.API需求 扩充fighterwingAPI或者fighterlaunchbay的功能,以便在战斗中调节战机联队的行为参数(如交战距离)(cjy4312: 感觉可以用类似武器的ensureClonedSpec 来实现目的), 目前只能够在shipAPI中对母舰这一单艘舰船的整体舰载机交战距离进行调整,难以对不同种类战机混编的情况做适配,以至于不得不靠复杂的ai脚本来进行行为约束Alex: 收到
6.AI_Hint需求: 需要一个特殊的AI_Hint(如“STRONG_PD_ONLY”) 携带该HINT的武器不会主动攻击舰船,仅攻击战机和导弹,而只会对战机和导弹为目标。(cjy4312: 目前可以通过手写武器的AutofireAIPlugin来达到目的,但如果原版能直接支持是更好的,降低制作门槛。)Alex: PD_ONLY 就能满足需求
许愿:1.为武器、战机(在装配中或在货舱中)具备信息tooltips的类开放addPostDescriptionSection()的类似方法,以在原信息结束后提供tooltips接口供modder编写额外信息。Alex: 收到 但是有难度
2. 将原版的补给需求、燃料需求、船员需求等方法中CommodityID修改为识别CommodityTag,以供modder添加其他替代需求的物品。Alex: 曾经做过 不好做放弃了
3.为原版的CommodityAPI添加tag识别以在不同的stack里面存放这些具备不同tag的物品,如具备不同损坏程度、改装程度的舰船武器。未回复
4.需要无视舰船免伤机制(插件或监听器造成的伤害归零)强制击杀战场内舰船的方法接口Alex: 拒绝
需要一个例如BaseCampaignLayeredRenderingPlugin那样的,基于CampaignEngineLayers 、CoreUITabId 来渲染图像的plugin
CombatLayeredRenderingPlugin 的cleanup方法 在退出战斗的时候不会被调用,它只在isExpired 返回true的时候生效。这意味着某些依赖cleanup执行的GPU资源释放工作无法执行。如果依赖engine.isCombatOver来判定 它会在敌对舰队被全灭,但是渲染仍在继续的情况下提前出现,而敌对舰队进入 retreat 阶段,engine.isCombatOver无法正确工作来响应玩家按下esc并手动结束战斗的场景 从TITLE切换至其他State的时候,TITILE创建的CombatLayeredRenderingPlugin 也不会执行cleanup
cjy4312- 补充:需要一个比isCombatOver 更明确的 代表engine即将关闭的boolean.,它不仅可以协助解决上面的问题,还能解决一些特殊情况.例:我通过setStationSlot(null)的方式,让舰船模块脱落并像普通ship一样活动。但是如果我不在战斗结束之前将StationSlot设置回去,如玩家按下esc并手动结束战斗时,战斗结束后,舰船会被视为损失了这些模块,导致大量的维修补给损耗以及船员损失。
1. 修复 CombatEngineAPI 的 isCombatOver() 方法。
2. 添加获取舰船视野的 getter 方法。 1.(API需求)为武器、战机(在装配中或在货舱中)具备信息tooltips的类开放addPostDescriptionSection()的类似方法,以在原信息结束后提供tooltips接口供modder编写额外信息。
2.(API需求)将原版的补给需求、燃料需求、船员需求等方法中CommodityID修改为识别CommodityTag,以供modder添加其他替代需求的物品。
3.(API需求)为原版的CommodityAPI添加tag识别以在不同的stack里面存放这些具备不同tag的物品,如具备不同损坏程度、改装程度的舰船武器。
4.(API需求)增加细分渲染层级(renderlayer),如船体之上武器之下,或采用int类划分层级而非enum类。 1.(API需求)扩充fighterwingAPI或者fighterlaunchbay的功能,增加在战斗中修改战机联队参数的API(比如交战距离), 目前只能够在shipAPI中对母舰这一单艘舰船的整体舰载机交战距离进行调整,难以对不同种类战机混编的情况做适配,以至于不得不靠复杂的ai脚本来进行行为约束。
2.(Tag需求)为武器增添一个tag “STRONG_PD_ONLY”使得ai在任意情况下均不会以舰船作为目标,而只会对战机和导弹为目标。
暂时想到两个 熟悉的可能已经知道我在说什么了
1. ShipAPI 增加自毁方法。 https://fractalsoftworks.com/forum/index.php?topic=5061.12165
截至目前的问题以翻译搬运完毕,个别术语比较复杂的如果我翻译有误请击打罐子。
明后天会比较忙可能无法即时翻译回复,如果有问题可以敲我 需要无视舰船免伤机制(插件或监听器造成的伤害归零)强制击杀战场内舰船的方法接口
- 这个Alex意思是可以通过最后call你的listener来强制把伤害设成你想要的数值,但是除此之外他因为冲突没法做其他强制方法
别的CJY都基本伤解释清楚了 不知道后面能否优化生涯后期存档内存占用问题 我想搞大型整合包玩生涯
页:
[1]