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

[mod制作中]CRSID跨河系统合部—你甚至能在远行星号中玩EVE

  [复制链接]

巡洋大副

发表于 2023-3-31 14:44:54 | 显示全部楼层 |阅读模式
本帖最后由 冷龙在睡觉 于 2023-5-9 15:01 编辑

////阅前注:新的mod帖子已经迁移至[mod制作发布区]////
     ==========================     
势力背景故事..有时间再写...写完会放出来

     ==========================     
初期计划做4艘护卫穿梭机,4艘护卫舰,4艘驱逐舰,4艘巡洋舰,4艘战列巡洋舰,4艘战列舰,8艘旗舰(分为4艘超级航母和4艘泰坦),分为四个势力风格(艾玛盖伦特加达里米玛塔尔,更详细的信息在下面文档里)
以及——几艘货船和矿船,主打工业方面,在下面文档最下面有细说
实现了eve原版中武器使用货舱子弹的效果,但因为某些奇怪的原因子弹很贵,不过一场战斗可能也装不了几次...这是方便跑商!
     ==========================     

     ==========================     

     ==========================     
//下载地址//
~游玩请加内测群~

     ==========================     
(版权说明:因为我不清楚拿eve的船模改成二维俯视图修改细节做远行星号的自制mod算不算侵权行为,所以如果确实有,请告知我,我会即刻删掉mod贴)
     ==========================     

     ==========================     

最后更新于2023年5月9日15:00:00








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

势力巨擘

发表于 2023-3-31 14:59:54 | 显示全部楼层
都统合部了,加点马裤螺丝要素呗,带核弹能全弹发射的战斗机

点评

这是EVE的世界  详情 回复 发表于 2023-6-18 03:07
核弹小飞机倒是能搞,但是那样的话直接大航全上重轰带核弹岂不秒天秒地  详情 回复 发表于 2023-3-31 15:03

巡洋大副

 楼主| 发表于 2023-3-31 15:03:00 | 显示全部楼层
XZCW 发表于 2023-3-31 14:59
都统合部了,加点马裤螺丝要素呗,带核弹能全弹发射的战斗机

核弹小飞机倒是能搞,但是那样的话直接大航全上重轰带核弹岂不秒天秒地

点评

直接配置点数高上天,只能带一架  详情 回复 发表于 2023-4-4 23:10
像骤雨机甲那样的带核弹的驱逐/护卫飞机  详情 回复 发表于 2023-3-31 15:10

巡洋大副

发表于 2023-3-31 15:05:06 | 显示全部楼层
注意可能的版权问题就好

点评

结尾有这方面的注释说明啦 如果确实有版权问题我直接撤销公开的  详情 回复 发表于 2023-3-31 15:13

势力巨擘

发表于 2023-3-31 15:10:18 | 显示全部楼层
冷龙在睡觉 发表于 2023-3-31 15:03
核弹小飞机倒是能搞,但是那样的话直接大航全上重轰带核弹岂不秒天秒地 ...

像骤雨机甲那样的带核弹的驱逐/护卫飞机

点评

空间站可能会搞,加进去内置的驱逐护卫飞机 主要是核弹这个玩意就怕平衡性搞炸了  详情 回复 发表于 2023-3-31 15:12

巡洋大副

 楼主| 发表于 2023-3-31 15:12:51 | 显示全部楼层
XZCW 发表于 2023-3-31 15:10
像骤雨机甲那样的带核弹的驱逐/护卫飞机

空间站可能会搞,加进去内置的驱逐护卫飞机
主要是核弹这个玩意就怕平衡性搞炸了

巡洋大副

 楼主| 发表于 2023-3-31 15:13:49 | 显示全部楼层
屠戏人间 发表于 2023-3-31 15:05
注意可能的版权问题就好

结尾有这方面的注释说明啦
如果确实有版权问题我直接撤销公开的

势力巨擘

发表于 2023-3-31 15:41:29 | 显示全部楼层
早年有过这么一个EVE的MOD,还没玩游戏就更新了。期待楼主早点搞出来

点评

还真没听过,是远古版本嘛  详情 回复 发表于 2023-3-31 15:43

巡洋大副

 楼主| 发表于 2023-3-31 15:43:58 | 显示全部楼层
111222333 发表于 2023-3-31 15:41
早年有过这么一个EVE的MOD,还没玩游戏就更新了。期待楼主早点搞出来

还真没听过,是远古版本嘛

点评

远古版本了,好像是0.6~0.7时代的  详情 回复 发表于 2023-3-31 17:42

势力巨擘

发表于 2023-3-31 17:25:07 | 显示全部楼层
支持

势力巨擘

发表于 2023-3-31 17:42:21 | 显示全部楼层
冷龙在睡觉 发表于 2023-3-31 15:43
还真没听过,是远古版本嘛

远古版本了,好像是0.6~0.7时代的

巡洋大副

 楼主| 发表于 2023-4-1 03:02:21 | 显示全部楼层
本帖最后由 冷龙在睡觉 于 2023-4-1 04:56 编辑

看看这个点还有没有没睡的神仙,更新一丢丢怪东西
顺带着把不好看的小槽武器贴图重新画了一下,虽然还是不好看但是至少能看了,我再把四艘穿梭机的细节改一改,看看能不能尽早先传个能玩的上来

////
修图修了一晚上...感觉还是不咋地...就这样先端上来罢(
小槽武器我再看看,虽然大修完了但是感觉细节还能在更好,修一修修一修,质量为上
果然我在美工这方面还是一窍不通(碎碎念)

点评

没有休闲,但是起床了(早起确认)。  详情 回复 发表于 2023-4-1 09:06

势力巨擘

发表于 2023-4-1 09:06:32 | 显示全部楼层
冷龙在睡觉 发表于 2023-4-1 03:02
看看这个点还有没有没睡的神仙,更新一丢丢怪东西
顺带着把不好看的小槽武器贴图重新画了一下,虽 ...

没有休闲,但是起床了(早起确认)。

势力巨擘

发表于 2023-4-2 00:14:55 | 显示全部楼层
突然想起了cjb里可以从货仓填充的导弹,这能不能弄个船插,让武器自动选择填充货仓里不同的导弹/晶体/弹药,就想eve本游那样,从而获得不同的加成,这样子和别的mod比,一下子就有特色了
还可以名正言顺的的搞超模主力舰

点评

可以搞得,我先看看能不能整吧,主要是两个游戏花的弹药什么的数量也不一样,想要平衡一些的数据是有点难搞得 加进计划小本本,改天就去看看代码是怎么实现的(雾  详情 回复 发表于 2023-4-2 00:18

巡洋大副

 楼主| 发表于 2023-4-2 00:18:48 | 显示全部楼层
XZCW 发表于 2023-4-2 00:14
突然想起了cjb里可以从货仓填充的导弹,这能不能弄个船插,让武器自动选择填充货仓里不同的导弹/晶体/弹药 ...

可以搞得,我先看看能不能整吧,主要是两个游戏花的弹药什么的数量也不一样,想要平衡一些的数据是有点难搞得
加进计划小本本,改天就去看看代码是怎么实现的(雾

点评

可以单位弄成箱,比如一箱导弹占货仓1,可以填充12发导弹这样  详情 回复 发表于 2023-4-2 00:23

势力巨擘

发表于 2023-4-2 00:23:25 | 显示全部楼层
冷龙在睡觉 发表于 2023-4-2 00:18
可以搞得,我先看看能不能整吧,主要是两个游戏花的弹药什么的数量也不一样,想要平衡一些的数据是有点难 ...

可以单位弄成箱,比如一箱导弹占货仓1,可以填充12发导弹这样

点评

有道理,明天看看,今天不修仙了  详情 回复 发表于 2023-4-2 00:24

巡洋大副

 楼主| 发表于 2023-4-2 00:24:43 | 显示全部楼层
XZCW 发表于 2023-4-2 00:23
可以单位弄成箱,比如一箱导弹占货仓1,可以填充12发导弹这样

有道理,明天看看,今天不修仙了

点评

我测,怎么这么难... 我得花几天琢磨琢磨代码,所以先一边摸出来四艘护卫舰一边研究这个效果,这样的话武器特殊效果先不上线了,到时候放测试版可能还写不出来效果,就是个纯数值武器(雾  详情 回复 发表于 2023-4-2 03:46

巡洋大副

 楼主| 发表于 2023-4-2 03:46:22 | 显示全部楼层
冷龙在睡觉 发表于 2023-4-2 00:24
有道理,明天看看,今天不修仙了

我测,怎么这么难...
我得花几天琢磨琢磨代码,所以先一边摸出来四艘护卫舰一边研究这个效果,这样的话武器特殊效果先不上线了,到时候放测试版可能还写不出来效果,就是个纯数值武器(雾

巡洋大副

 楼主| 发表于 2023-4-2 03:52:20 | 显示全部楼层
研究半夜一看时间快四点了,今天又是修仙的一天

势力巨擘

发表于 2023-4-4 17:55:41 | 显示全部楼层
还是注意一下身体吧,这么快燃烧殆尽小心身体

点评

会注意的会注意的,一般还是作息规律些,谢谢关心  详情 回复 发表于 2023-4-4 18:04

巡洋大副

 楼主| 发表于 2023-4-4 18:04:12 | 显示全部楼层
维尔拉 发表于 2023-4-4 17:55
还是注意一下身体吧,这么快燃烧殆尽小心身体

会注意的会注意的,一般还是作息规律些,谢谢关心

势力巨擘

发表于 2023-4-4 23:10:33 | 显示全部楼层
冷龙在睡觉 发表于 2023-3-31 15:03
核弹小飞机倒是能搞,但是那样的话直接大航全上重轰带核弹岂不秒天秒地 ...

直接配置点数高上天,只能带一架

势力巨擘

发表于 2023-4-4 23:11:19 | 显示全部楼层
想法很好,我也喜欢EVE,不过你的 工作量真的巨大。感觉这无畏舰就巨期待人。

点评

没办法啊,话说出来了不能咕咕咕啊( 会尽力去还原大部分eve的船(当然,保证平衡的前提下) 以及现在在做从货舱拿子弹在战斗中使用的效果...我还得搓船模 因为就我一个人做,效率没多高,所以距离第一个测试版丢出  详情 回复 发表于 2023-4-4 23:16

巡洋大副

 楼主| 发表于 2023-4-4 23:16:42 | 显示全部楼层
尾焰 发表于 2023-4-4 23:11
想法很好,我也喜欢EVE,不过你的 工作量真的巨大。感觉这无畏舰就巨期待人。 ...

没办法啊,话说出来了不能咕咕咕啊(
会尽力去还原大部分eve的船(当然,保证平衡的前提下)
以及现在在做从货舱拿子弹在战斗中使用的效果...我还得搓船模
因为就我一个人做,效率没多高,所以距离第一个测试版丢出来可能还要一小段时间
感谢支持的说

势力巨擘

发表于 2023-4-8 19:17:03 | 显示全部楼层
这个已经很简单了,给船加个listener 然后监控舰队里的cargo就行了

别的大佬是这么回我的
@zyx 大佬说简单,可以试试问问他怎么弄

点评

思路是一样的,只不过我去看的是cjy那个..整不会了  详情 回复 发表于 2023-4-8 21:40

巡洋大副

 楼主| 发表于 2023-4-11 09:40:34 | 显示全部楼层
写出来了 但是可能因为没有生产设施的原因这个玩意全星域缺货...价格奇贵无比...
我也没啥解决办法,只能把武器子弹数调高到一场战斗装不了多少发的水平(比如几百发最大弹容,反正开场会默认装满)
是时候考虑写个军工厂设施用来造弹药了(但我不会写啊寄)
我先把驱逐搓出来 然后发个测试版...可能放论坛,也可能给群放群文件

星域军阀

高级机师

发表于 2023-4-12 14:51:44 | 显示全部楼层
稍等,今天晚上我有时间给你贴个方便版的装填系统代码

星域军阀

高级机师

发表于 2023-4-12 15:37:43 | 显示全部楼层
本帖最后由 cjy4312 于 2023-4-12 15:49 编辑

  1. package data.scripts.weapons;

  2. import com.fs.starfarer.api.Global;
  3. import com.fs.starfarer.api.campaign.CargoAPI;
  4. import com.fs.starfarer.api.combat.CombatEngineAPI;
  5. import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
  6. import com.fs.starfarer.api.combat.ShipAPI;
  7. import com.fs.starfarer.api.combat.WeaponAPI;
  8. import java.util.HashMap;
  9. import java.util.Map;

  10. /**
  11. *
  12. * @author cjy4312
  13. */
  14. public class ReloadFromCargoEveryFramePlugin implements EveryFrameWeaponEffectPlugin {

  15.     private static final Map<String, Float> weapon_reload_time = new HashMap();
  16.     private static final Map<String, Integer> weapon_reload_num = new HashMap();
  17.     private static final Map<String, Integer> weapon_reload_start = new HashMap();
  18.     private static final Map<String, String> weapon_reload_commodity = new HashMap();
  19.     private static final Map<String, Float> weapon_reload_commodity_ammo = new HashMap();
  20.     private static final Map<String, Integer> weapon_reload_ammo_AI = new HashMap();
  21.     private int ammo = -999;
  22.     private float timer = 0f;
  23.     private boolean usecargo = true;

  24.     static {
  25.         weapon_reload_time.put("武器ID", 1f);//写1意思是装填要花1秒
  26.         weapon_reload_num.put("武器ID", 1);//写1意思是一次装填1发弹药
  27.         weapon_reload_start.put("武器ID", 0);//写0意思是武器弹药剩余0才开始启动装填
  28.         weapon_reload_commodity.put("武器ID", "货物ID");//武器消耗的货物id
  29.         weapon_reload_commodity_ammo.put("武器ID", 1f);//写1意思是每消耗1单位的货物可以换取1发弹药
  30.         weapon_reload_ammo_AI.put("武器ID", 1);//写1意思是敌人或者友军AI使用该武器时有1发备用弹药 //不建议调用AI货仓,AI未必会带你的自定义货物
  31.     }

  32.     public boolean checkCargoAvailable(CombatEngineAPI engine, ShipAPI ship) { //检查当前环境是否支持调用玩家货仓
  33.         return !(!engine.isInCampaign() || engine.isInCampaignSim() || ship == null || ship.isFighter());
  34.     }

  35.     public CargoAPI getCargo(CombatEngineAPI engine, ShipAPI ship, WeaponAPI weapon) { //获取玩家货仓
  36.         if (ship.getParentStation() != null) {
  37.             ship = ship.getParentStation();
  38.         }
  39.         if (ship.getFleetMember() != null) {
  40.             if (engine.getPlayerShip().getOwner() != ship.getOwner()) {
  41.                 usecargo = false;
  42.                 return null;
  43.             }
  44.             return Global.getSector().getPlayerFleet().getCargo();
  45.         }
  46.         usecargo = false;
  47.         return null;
  48.     }

  49.     @Override
  50.     public void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon) {
  51.         if (engine.isPaused()) {
  52.             return;
  53.         }
  54.         if (!weapon.getShip().isAlive()) {
  55.             return;
  56.         }
  57.         String weaponid = weapon.getId();
  58.         if (!weapon_reload_time.containsKey(weaponid) //当数据填写不正确,无法通过武器id找到全部数据,代码不运行。
  59.                 || !weapon_reload_num.containsKey(weaponid)
  60.                 || !weapon_reload_start.containsKey(weaponid)
  61.                 || !weapon_reload_commodity.containsKey(weaponid)
  62.                 || !weapon_reload_commodity_ammo.containsKey(weaponid)
  63.                 || !weapon_reload_ammo_AI.containsKey(weaponid)) {
  64.             return;
  65.         }
  66.         if (ammo < weapon_reload_num.get(weaponid)) {// 补充备弹
  67.             String commodity_id = weapon_reload_commodity.get(weapon.getId());
  68.             ShipAPI ship = weapon.getShip();
  69.             usecargo = checkCargoAvailable(engine, ship);
  70.             if (commodity_id == null && usecargo) {
  71.                 usecargo = false;
  72.             }
  73.             CargoAPI cargo = null;
  74.             if (usecargo) {
  75.                 cargo = getCargo(engine, ship, weapon);
  76.             }
  77.             if (usecargo && cargo != null) {
  78.                 while (ammo < weapon_reload_num.get(weaponid) && cargo.getCommodityQuantity(commodity_id) > 1) {
  79.                     if (ammo == -999) {
  80.                         ammo = 0;
  81.                     }
  82.                     cargo.removeCommodity(commodity_id, 1);
  83.                     ammo += weapon_reload_commodity_ammo.get(weaponid);
  84.                 }
  85.             } else {
  86.                 if (ship.getOwner() != engine.getPlayerShip().getOwner()) {
  87.                     if (ammo == -999) {//给AI添加备用弹药,仅限一次
  88.                         ammo = weapon_reload_ammo_AI.get(weaponid);
  89.                     }
  90.                 } else {
  91.                     if (ammo == -999) {
  92.                         ammo = 0;
  93.                     }
  94.                     while (ammo < weapon_reload_num.get(weaponid)) {
  95.                         ammo += weapon_reload_commodity_ammo.get(weaponid);
  96.                     }
  97.                 }
  98.             }
  99.         }
  100.         if(ammo<=0){
  101.             return;
  102.         }
  103.         int now = weapon.getAmmo();
  104.         if (now <= weapon_reload_start.get(weaponid)) {//当弹药量小于设定值,开始装填
  105.             timer += amount;
  106.             if (timer >= weapon_reload_time.get(weaponid)) {
  107.                 timer = 0;
  108.                 int r =weapon_reload_num.get(weaponid);
  109.                 if(r>ammo){
  110.                     r=ammo;
  111.                 }
  112.                 weapon.setAmmo(now+r);
  113.                 ammo-=r;
  114.             }
  115.         }
  116.     }
  117. }
复制代码

星域军阀

高级机师

发表于 2023-4-12 16:02:21 | 显示全部楼层
我看你好像自己写出来了,给你提醒一下:

抽取货物的代码写一个关于试驾的判定engine.isInCampaignSim()
试驾不要真的去抽货物了,不然如果用了稀有道具去装填血亏到爆炸

点评

我测 谢谢大佬,但是已经根据您那个基础上摸索出来了,试驾装填判定也在写出来的时候发现了这么个问题,目前来说好像就剩下那个莫名其妙的全星域缺货问题了...这个物品能设置全星域市场库存不缺货吗...?感觉这东西  详情 回复 发表于 2023-4-12 16:51

巡洋大副

 楼主| 发表于 2023-4-12 16:51:25 | 显示全部楼层
cjy4312 发表于 2023-4-12 16:02
我看你好像自己写出来了,给你提醒一下:

抽取货物的代码写一个关于试驾的判定engine.isInCampai ...

我测 谢谢大佬,但是已经根据您那个基础上摸索出来了,试驾装填判定也在写出来的时候发现了这么个问题,目前来说好像就剩下那个莫名其妙的全星域缺货问题了...这个物品能设置全星域市场库存不缺货吗...?感觉这东西似乎没那么好搞
阿里嘎多!膜拜一下大佬

点评

你可以新建一个Market Condition,就是在市场界面右上角那些小方框的buff,apply里面添加需求你这个新物品(Demand) ,然后在modPlugin的onNewGame函数里面,在开新档时运行代码,寻找你想要设置需求的星球,并添加一  详情 回复 发表于 2023-4-12 19:07

星域军阀

高级机师

发表于 2023-4-12 19:07:32 | 显示全部楼层
冷龙在睡觉 发表于 2023-4-12 16:51
我测 谢谢大佬,但是已经根据您那个基础上摸索出来了,试驾装填判定也在写出来的时候发现了这么个问题, ...

你可以新建一个Market Condition,就是在市场界面右上角那些小方框的buff,apply里面添加需求你这个新物品(Demand) ,然后在modPlugin的onNewGame函数里面,在开新档时运行代码,寻找你想要设置需求的星球,并添加一个这个condition
原版星球市场的id我记得在campaign文件夹里某个文件里有

星域军阀

高级机师

发表于 2023-4-12 19:23:18 | 显示全部楼层
这么做的前提是你做好了能生产这种货物的工业设施并且已经在地图上放置了。
如果你是既没有星球能生产也没有星球有需求,但是希望这种货物铺遍各处而且不会因为缺货价格虚高的话,condition里面不止要设置需求(Demand),还要设置供给(Supply),数值设置为1:1
如果你想要这种货物通过工业设施生产,你得写一个自己的工业并且通过代码添加到星球市场里。

驱逐技师

发表于 2023-4-16 23:08:10 | 显示全部楼层
测试测试,大佬牛逼

势力巨擘

发表于 2023-4-19 00:36:21 | 显示全部楼层
支持!

巡洋大副

 楼主| 发表于 2023-4-19 00:37:32 | 显示全部楼层

战列舰长

发表于 2023-4-20 17:33:32 | 显示全部楼层
6666

势力巨擘

发表于 2023-4-21 17:19:08 | 显示全部楼层
期待

巡洋大副

发表于 2023-4-21 18:38:07 | 显示全部楼层
6666666666666

势力巨擘

发表于 2023-4-21 20:35:00 | 显示全部楼层
666

战列舰长

发表于 2023-5-5 23:08:35 | 显示全部楼层
喵!喵?喵。喵!!

势力巨擘

发表于 2023-5-6 23:27:43 | 显示全部楼层
加油更新

势力巨擘

发表于 2023-5-7 15:28:22 | 显示全部楼层
期待期待

战列舰长

发表于 2023-5-8 11:55:39 | 显示全部楼层
EVE可还行
绿皮翻译苦工,汉化组招人ing
我参与汉化的 Mod:联合极光联邦UAF PAGSM(制作中

势力巨擘

发表于 2023-5-8 13:29:20 | 显示全部楼层
可以下载吗?

巡洋大副

发表于 2023-5-8 15:35:44 | 显示全部楼层

势力巨擘

发表于 2023-5-9 20:30:36 | 显示全部楼层
牛的,希望坚持下去

巡洋大副

发表于 2023-5-9 22:21:16 | 显示全部楼层
大佬牛啤

战列舰长

我要发动我的技能无效你无效我无效你无效我的技能

发表于 2023-5-13 16:23:47 | 显示全部楼层

巡洋大副

发表于 2023-5-13 22:19:35 | 显示全部楼层
想试试

巡洋大副

发表于 2023-5-13 23:22:50 | 显示全部楼层
666666666

本版积分规则

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

GMT+8, 2024-12-21 22:20

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

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