可选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) 世界暂停

posted @   半条咸鱼  阅读(7)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示