|
|
发表于 2026-3-12 02:26:16
|
显示全部楼层
本帖最后由 MAJOR_Kai 于 2026-3-11 21:30 编辑
如果你在尝试自己做mod的话,你需要一个 BaseModPlugin 可以参考其他mod,基本是个涉及生涯模式的mod都会有,只需要懂一点点的JAVA就能做到。
我可以写一个最简单的实例,你可以参考这个用来添加蓝图包。(我会在里面加上注释帮你解释是什么意思)
package data.scripts; // 包的位置
import com.fs.starfarer.api.Global; // Global 必要的导入
import com.fs.starfarer.api.BaseModPlugin; // BaseModPlugin 必要的导入,因为这个class属于 BaseModPlugin
import com.fs.starfarer.api.campaign.CampaignFleetAPI; // CampaignFleetAPI 用于舰队,在这里主要用于玩家舰队
import com.fs.starfarer.api.campaign.SpecialItemData; // SpecialItemData 特殊物品数据,这里主要用于生成蓝图,蓝图属于特殊物品
public class XXXModPlugin extends BaseModPlugin { // XXXModPlugin class 的ID,XXX可以改成你喜欢的例如 BPGiverModPlugin 蓝图给予者模组插件
public void onNewGameAfterTimePass() { // 注意是 onNewGameAfterTimePass 此时玩家舰队已经在游戏内生成不会因为找不到玩家舰队导致空指针异常或是不生成,可以在 BaseModPlugin (Starfarer API) 查看其他类型。
CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet(); // 通过 Global 定位玩家
if (playerFleet != null && playerFleet.getCargo() != null) { // 一些基础检测,防止空指针异常
playerFleet.getCargo().addSpecial(new SpecialItemData("蓝图的ID", null), 1); // 在玩家舰队的货物里添加指定ID的蓝图,蓝图的ID可以去游戏文件或是模组文件的 特殊物品.csv 查询对应的。
}
}
}
最后,你需要在自己的 mod_info.json 中写上你的 BaseModPlugin 路径,依旧可以参考其他模组,也是基本上是个涉及生涯模式的mod都会有。
|
|