找回密码
 初始化身份识别芯片
img_loading
智能检测中
查看: 741|回复: 5

(氵)有关于使用deepseek辅助mod制作

[复制链接]

巡洋大副

发表于 2025-1-29 17:07:26 | 显示全部楼层 |阅读模式
最近在贴吧看到有很多人用deepseek整活,所以我也打算看看他能做到什么。问了一个相关问题,把他的回答放在下面,看看有没有佬来评价一下。
:为你的《远行星号》独立阵营添加可用舰船,需按以下步骤检查和配置:

### 1. **舰船文件配置**
   - **路径与文件**:确保舰船的 `.ship` 文件放置在 `mod目录/data/hulls` 下,文件名与舰船ID一致。
   - **Hull ID**:在 `.ship` 文件中确认 `"hullId": "your_ship_id"` 无拼写错误。

### 2. **阵营配置文件**
   - **引用舰船**:在阵营的 `.faction` 文件(如 `data/campaign/factions/your_faction.faction`)中,添加舰船的Hull ID到 `"ships"` 列表:
     ```json
     {
       "ships": ["your_ship_id_1", "your_ship_id_2"]
     }
     ```
   - **Tags匹配**:若使用标签筛选,确保舰船文件包含对应阵营的tag(如 `"tags": ["your_faction"]`)。

### 3. **Variant文件配置**
   - **路径**:将 `.variant` 文件放在 `data/variants` 下,确保文件名与 `.ship` 文件关联。
   - **武器与模块**:检查variant中的武器槽位是否有效,避免因装备不可用导致加载失败。

### 4. **蓝图与市场生成**
   - **蓝图注册**:在 `data/campaign/blueprints.csv` 或独立蓝图中添加舰船蓝图,确保阵营的 `"startShips"` 或市场配置引用这些蓝图。
   - **市场条件**:在阵营的 `markets.json` 中设置合理的生成条件(如科技等级、舰队类型)。

### 5. **Hull数据表**
   - **ship_data.csv**:确认舰船的Hull ID在 `ship_data.csv` 中存在,且 `faction` 列包含阵营ID。

### 6. **日志排查**
   - **检查日志**:启动游戏后查看 `starsector-core/starsector.log`,定位加载错误(如文件缺失、ID冲突)。

### 7. **其他常见问题**
   - **科技等级冲突**:确保舰船的 `techLevel` 与阵营设定匹配(如 `HIGH_TECH` 或 `LOW_TECH`)。
   - **部署点限制**:舰船 `deploymentPointsCost` 不宜过高,避免被生成规则过滤。

---

**示例文件结构**:
```
your_mod/
├─ data/
│  ├─ hulls/
│  │  └─ your_ship.ship
│  ├─ variants/
│  │  └─ your_ship.variant
│  ├─ campaign/
│  │  ├─ factions/
│  │  │  └─ your_faction.faction
│  │  └─ blueprints.csv
│  └─ ship_data.csv
└─ mod_info.json
```

完成以上配置后,重新加载MOD并测试。若问题仍存,根据日志提示调整错误条目。确保每个环节的ID一致性,通常问题多出在拼写错误或文件路径错误。

星域军阀

高级机师

发表于 2025-1-29 19:56:21 | 显示全部楼层
faction的的路径错了
data\world\factions
而且也没有什么所谓的蓝图.csv

巡洋大副

 楼主| 发表于 2025-1-30 12:32:32 | 显示全部楼层
有关于该观点的事:刚刚又问他能不能帮我做个船插
这是回复:以下是一个基于《远行星号》LazyLib模组框架的舰船插件代码示例,实现了您描述的效果:

```java
package demo.hullmods;

import com.fs.starfarer.api.combat.BaseHullMod;
import com.fs.starfarer.api.combat.MutableShipStatsAPI;
import com.fs.starfarer.api.combat.ShipAPI.HullSize;

public class AdvancedMaintenanceCore extends BaseHullMod {
   
    // 定义效果参数
    private static final float PEAK_TIME_BONUS = 10f; // 峰值时间增加百分比
    private static final float SUPPLIES_REDUCTION = 20f; // 补给消耗减少百分比
    private static final float CR_RECOVERY_BONUS = 25f; // CR每日恢复率增加百分比

    @Override
    public void applyEffectsBeforeShipCreation(HullSize hullSize,
                                             MutableShipStatsAPI stats,
                                             String id) {
        // 修改峰值时间
        stats.getPeakCRDuration().modifyPercent(id, PEAK_TIME_BONUS);
        
        // 减少补给消耗
        stats.getSuppliesPerMonth().modifyPercent(id, -SUPPLIES_REDUCTION);
        
        // 提高CR恢复率(基础值+百分比提升)
        stats.getBaseCRRecoveryRatePercentPerDay().modifyPercent(id, CR_RECOVERY_BONUS);
    }

    // 描述文本生成
    @Override
    public String getDescriptionParam(int index, HullSize hullSize) {
        if (index == 0) return Math.round(PEAK_TIME_BONUS) + "%";
        if (index == 1) return Math.round(SUPPLIES_REDUCTION) + "%";
        if (index == 2) return Math.round(CR_RECOVERY_BONUS) + "%";
        return null;
    }

    // 其他配置
    @Override
    public boolean isApplicableToShip(ShipAPI ship) {
        return true; // 适用于所有舰船
    }
}
```

需要配套的**hull_mods.csv**条目:

```csv
id,name,short,long,tags,rarity,cost,perma-mod,hidden,career_limited,description prefix,description,tech/manufacturer
advanced_maintenance_core,"先进维护核心","先进维护核心",,,"common",5000,FALSE,FALSE,FALSE,,"增加峰值时间 %s%%,减少%s%%补给消耗,提升%s%%CR恢复率",tech
```

### 关键代码解析:
1. **效果实现**:
   - `getPeakCRDuration()`:处理峰值时间
   - `getSuppliesPerMonth()`:控制补给消耗
   - `getBaseCRRecoveryRatePercentPerDay()`:影响CR恢复速率

2. **数值运算注意事项**:
   - 补给消耗使用负数修正值实现减少效果
   - 百分比修改采用`modifyPercent`方法

3. **兼容性建议**:
   ```java
   @Override
   public void applyEffectsAfterShipCreation(ShipAPI ship, String id) {
       // 检测冲突插件
       if (ship.getVariant().hasHullMod("automated")) {
           ship.getVariant().removeMod("advanced_maintenance_core");
       }
   }
   ```
   可添加类似代码防止与自动化舰船插件冲突

### 开发环境建议:
1. 推荐使用:
   - **LazyLib**:基础工具库
   - **MagicLib**:高级API支持
   - **Console Commands**:实时调试

2. 测试时建议通过控制台命令直接添加插件:
   ```
   addhullmod advanced_maintenance_core
   ```

### 平衡性注意事项:
如果发现效果过强,可以通过以下方式调整:
```java
// 根据舰船规模调整效果
float sizeMultiplier = 1f;
switch (hullSize) {
    case CAPITAL_SHIP: sizeMultiplier = 0.6f; break;
    case CRUISER: sizeMultiplier = 0.8f; break;
    case DESTROYER: sizeMultiplier = 1f; break;
    case FRIGATE: sizeMultiplier = 1.2f; break;
}
stats.getSuppliesPerMonth().modifyPercent(id, -SUPPLIES_REDUCTION * sizeMultiplier);
```

建议将此插件设置为:
- 占用至少30点OP
- 无法与强化舱壁等维护类插件叠加
- 需要安装自动化舰体改造作为前置科技

经过简单的修改(代码实现部分没动)后在游戏内实现如图(不知道怎么游戏内截屏,所以直接用手机拍的)
肯定是做不出那些特殊插,但如果只是简单的修改数据,这家伙应该还是做得到的吧
IMG_20250130_122435.jpg
IMG_20250130_122422.jpg

点评

太震撼了,我先蹲一个,成了叫我  详情 回复 发表于 6 天前

驱逐技师

发表于 6 天前 | 显示全部楼层
AAASTG 发表于 2025-1-30 12:32
有关于该观点的事:刚刚又问他能不能帮我做个船插
这是回复:以下是一个基于《远行星号》LazyLib模组框架的舰 ...

太震撼了,我先蹲一个,成了叫我

点评

ds老师数据只到0.95.1,你要真用得注意一下(  详情 回复 发表于 昨天 14:01
事实上已经成了很多了( 不搞太复杂的就行。 ds老师有你游的数据的 但不能都靠他,比如有时会凭空给你捏一个class(  详情 回复 发表于 昨天 11:15

巡洋大副

 楼主| 发表于 昨天 11:15 | 显示全部楼层
衫雨落 发表于 2025-4-21 17:01
太震撼了,我先蹲一个,成了叫我

事实上已经成了很多了(
不搞太复杂的就行。
ds老师有你游的数据的
但不能都靠他,比如有时会凭空给你捏一个import(

巡洋大副

 楼主| 发表于 昨天 14:01 | 显示全部楼层
衫雨落 发表于 2025-4-21 17:01
太震撼了,我先蹲一个,成了叫我

ds老师数据只到0.95.1,你要真用得注意一下(

本版积分规则

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

GMT+8, 2025-4-27 21:21

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

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