可选API
1. 建立多人任务模板
2. 传输双方的舰队配置
2.1 舰队改装配置保存在:游戏根目录\saves\missions\任务文件名\
2.2 飞船改装命名规则:mission_任务文件名_ship_i.variant(i 为飞船下标,从 0 开始,顺序为 MissionDefinition.java 定义的顺序)
2.3 飞船改装配置文件无法读取
2.4 不要改装飞船
3. 同步双方操作
3.1 不允许 server 暂停
3.2 client 以中立盟友加入任务
3.3 己方不允许AI
4. 判断结束条件,显示结果
4.1 任务结束条件:defeatOnShipLoss 若指定船被击毁,则任务失败
5. 在解决帧同步之前,暂时移除所有拥有“相位斗篷”,时流之壳”,“终结者无人机”(终结者无人机拥有“相位斗篷”)的飞船
5.1 已知相位斗篷:
5.2 已知时流之壳:
6. 暂时不添加非战斗类飞船
7. 可能的替代AI实现
7.1 BaseModPlugin: PluginPick<ShipAIPlugin> pickShipAI(FleetMemberAPI member, ShipAPI ship) 允许 FleetMemberAPI 为null
7.2 ShipAPI: void setShipAI(ShipAIPlugin ai) 仅当需要动态更改 AI 时,才应调用。否则,请改用 ModPlugin.pickShipAI()
7.3 ShipAIPlugin: void advance(float amount) 人工智能应该在这里做它的主要工作
7.4 ShipAPI: void giveCommand(ShipCommand command, Object param, int groupNumber) 只能由 ShipAIPlugin 使用
command - 命令的类型。
param - 通常为具有“鼠标”位置的 Vector2f。有关详细信息,请参阅 ShipCommand.java
groupNumber - 仅用于与武器组相关的命令
7.5 If you're replacing the ship AI, you'll have to provide a custom shield AI as well.
Weapon AI is separate, though - it's a part of the ship, if you will, since the player uses it the same way as the AI does.
7.6 Use ShipAPI.getMouseTarget().set(x, y). The shields will turn to point towards (x, y).
So will the weapons in the currently selected group.
8. 插入飞船
8.1 LazyLib: CombatUtils: ShipAPI spawnShipOrWingDirectly(String variantId, FleetMemberType type, FleetSide side, float combatReadiness, Vector2f location, float facing)
在战斗地图上直接生成一艘船,绕过舰队预备队
8.2 ShipAPI: FleetMemberAPI getFleetMember()
8.3 CombatFleetManagerAPI
ShipAPI spawnFleetMember(FleetMemberAPI member, Vector2f location, float facing, float initialBurnDur)
成员实际上不必在储备中
ShipAPI spawnShipOrWing(java.lang.String specId, Vector2f location, float facing)
ShipAPI spawnShipOrWing(java.lang.String specId, Vector2f location, float facing, float initialBurnDur)
ShipAPI spawnShipOrWing(java.lang.String specId, Vector2f location, float facing, float initialBurnDur, PersonAPI captain)
部署具有给定规格或变体 ID 的舰船/战斗机机翼
8.4 LazyLib: CombatUtils: FleetMemberAPI getFleetMember(ShipAPI ship) 求 一个 ShipAPI 的对应 FleetMemberAPI
9. 输入事件
9.1 BaseEveryFrameCombatPlugin: advance(float amount, java.util.List<InputEventAPI> events)
9.2 InputEventAPI
9.3 ShipAPI: ShipEngineControllerAPI getEngineController()
10. 全局上下文 Global
10.1 CombatEngineAPI: void setPaused(boolean paused) 战斗暂停
10.2 SettingsAPI: ShipAIPlugin pickShipAIPlugin(FleetMemberAPI member, ShipAPI ship)
10.3 SectorAPI: void setPaused(boolean paused) 世界暂停
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战