找回密码
 初始化身份识别芯片
查看: 2062|回复: 4

mod大佬求助。

[复制链接]

战列舰长

发表于 2022-4-23 19:13:10 | 显示全部楼层 |阅读模式
我是java小白,基本不懂编程。
我想请教的是如何实现返回一组玩家可建造船只ID的数组的思路。
需要调用哪些类的方法。
还有数组类型是list <FleetMemberAPI> 吗?
大佬们,求助ing

星域军阀

高级机师

发表于 2022-4-23 22:16:21 | 显示全部楼层
一个思路:

先通过Global.getSettings().getAllShipHullSpecs()
获取到所有船体的list,类型是List<ShipHullSpecAPI>
然后遍历这个list,根据筛选条件剔除不符合的个体
比如,HullSize为FIGHTER的
或者通过getTags()找到这个船体的全部tag,原版可建造的船至少会有一个蓝图包的tag,后缀为"_bp"
或者getHints(),原版包含UNBOARDABLE, HIDE_IN_CODEX的船体(包括模块)都是不可造的

还有一种非常低效但准确的方法
通过对所有势力进行getKnownShips()(包括玩家自己的势力),对比里面的船体id,当一个船体的ID不存在于任何势力的已知船体内则踢出列表
或者反其道而行之,建立一个空List,对于所有势力的已知船体id,添加进这个空list

星域军阀

高级机师

发表于 2022-4-23 22:18:21 | 显示全部楼层
如果你的目的只是列出玩家现有可以建造的舰船数量,直接对着玩家的faction进行getKnownShips(),返回的List<String>就是玩家当前可造的全部船体了,getsize就完事儿了

点评

大佬问题解决了,还是大佬的思路NB,不过好像全部船型遍历也耗不了多少时间  详情 回复 发表于 2022-4-25 13:29

战列舰长

 楼主| 发表于 2022-4-23 22:26:39 | 显示全部楼层
谢谢大佬,list <FleetMemberAPI>无法识别,我学的是土木,只有一点点编程知识,分析了一下午别人的mod也不知道这个数组怎么使用,换成list<ShipHullSpecAPI>看看行不行

战列舰长

 楼主| 发表于 2022-4-25 13:29:45 | 显示全部楼层
cjy4312 发表于 2022-4-23 22:18
如果你的目的只是列出玩家现有可以建造的舰船数量,直接对着玩家的faction进行getKnownShips(),返回的List ...

大佬问题解决了,还是大佬的思路NB,不过好像全部船型遍历也耗不了多少时间

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2024-9-28 14:11

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

快速回复 返回顶部 返回列表