3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 19302|回复: 34
打印 上一主题 下一主题

[心得] Starfarer自定义修改武器及船体

  [复制链接]

33

主题

664

帖子

680

积分

超级玩家

Rank: 5Rank: 5

贡献度
57
金元
4523
积分
680
精华
0
注册时间
2007-12-4
跳转到指定楼层
主题
发表于 2012-7-17 02:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qing7000 于 2012-7-17 21:08 编辑

2012-7-17 21:04
刚刚看了zspeng1209的帖子,发现了一个好工具
http://sseditor.dyndns.org/sse/dev/打开这个网址是一个船体的编辑器,这样就可以不用自己去写那些脚本了。
用谷歌浏览器可以翻译成中文,这样看起来很方便






咱秉承要搞出一艘超级战舰的精神,细细的看了下游戏的各种文件,终于试出了可以修改武器及船体,如果有图片的话也可以自己做新的战舰

1.修改船体
船体数据文件在游戏安装目录\starfarer-core\data\hulls下
*.shop是船体的外观定义文件里面包括船体的贴图,武器槽的位置及类型等等

ship_data.csv文件是所有船体的属性设置文件,包括装甲,辐射槽的总量,辐射消散的速度等等
ship_data.csv可以使用excel和wps打开。推荐使用excel2003或者wps打来,我的是excel2010,打开时中文部分就全是乱码。

修改的顺序是,先在ship_data.csv新增一条数据,可以复制原有的数据一条,然后适当的修改。关键是”id“列要改成新的id。
其他的属性,可以看列名随便改,如果英语不好就学我用翻译器。
新增好后,保存退出。然后在\starfarer-core\data\hulls下复制一个.shop文件,把文件名改成你刚刚新增的那个“id”。
最后用UE打开你复制的.shop文件,把里面的”hullId“改成你新增的“id”,“hullName”仿照原来的样子也改一个。
.shop文件中其他的参数为船的大小,武器槽的位置,种类等等,我还没完全搞明白,大家可以自己试试。
复制的数据需要和.shop文件相对应,比如在ship_data.csv中复制的数据是”奥德赛“航母,那复制的.shop文件就应该是”奥德赛“的.shop文件“odyssey.ship”。
这样就新增了一个船体。

2.修改武器
武器数据文件在游戏安装目录\starfarer-core\data\weapons下
*.wpn是武器的外观定义文件里面

weapon_data.csv文件是所有武器的属性设置文件,包括伤害,价格,射程等等


修改的顺序和船体修改的顺序一样,现在weapon_data.csv增加数据,然后增加一个.wpn文件,并把文件中的id改成新增的id。

这样武器和船体就修改新增好了。


3.加载到游戏中
之前的工作只是新增了武器和船体的数据,其实并没有把这些加到游戏中去,这一步我们要做的就是把我们新增的武器和船体加到空间站中,使我们可以买到这些东西。

\starfarer-core\data\scripts\world\corvus下的Corvus.java是游戏初始时的设置文件,其主要是设置空间站

用UE打开Corvus.java



可以看到下面的代码

SectorEntityToken hegemonyStation = system.addOrbitalStation(system.getEntityByName("Corvus II"), 45, 300, 50, "轨道空间站", "hegemony");


这个是定义空间站的,定义的是哪个空间站,就看空间站的名字就行了。之后搜索等号左边的词,找到类似这样的代码

initOrbitalStationCargo(sector, hegemonyStation);

括号外面的”initOrbitalStationCargo“就是初始化空间站商品的方法了,其他的空间站初始化的方法名字不同,但是结构是一样的。

搜索initOrbitalStationCargo,找到
private void initOrbitalStationCargo(SectorAPI sector, SectorEntityToken station) {
                CargoAPI cargo = station.getCargo();

                List weaponIds = sector.getAllWeaponIds();
                // for (int i = 0; i < 10; i++) {
                // String weaponId = (String) weaponIds.get((int) (weaponIds.size() *
                // Math.random()));
                // int quantity = (int)(Math.random() * 7 + 3);
                // cargo.addWeapons(weaponId, quantity);
                // }

                // focused on weapons that are hard to get from looting
                // and present an upgrade path for the initial ships
                // cargo.addWeapons("heavymg", 5);
               
                //strike
                cargo.addWeapons("bomb", 25);
                cargo.addWeapons("reaper", 12);
               
                //Support
                cargo.addWeapons("lightac", 25);
                cargo.addWeapons("lightmg", 40);
                cargo.addWeapons("annihilator", 10);
                cargo.addWeapons("taclaser", 10);

                cargo.addWeapons("harpoon_single", 12); //medium

                //assault
                cargo.addWeapons("lightmortar", 40);
                cargo.addWeapons("miningblaster", 1); //medium
               
                //PD
                cargo.addWeapons("swarmer", 5);
                cargo.addWeapons("mininglaser", 25);
                cargo.addWeapons("pdlaser", 25);
               
                cargo.addWeapons("flak", 5); //medium
                cargo.addWeapons("shredder", 5); //medium
                cargo.addWeapons("annihilatorpod", 1); //medium
                cargo.addWeapons("pilum", 2); //medium
                cargo.addWeapons("mark9", 2); //large
               
               
//                cargo.addCrew(CrewXPLevel.ELITE, 25);
                // cargo.addCrew(CrewXPLevel.VETERAN, 200);
                cargo.addCrew(CrewXPLevel.REGULAR, 30);
                cargo.addCrew(CrewXPLevel.GREEN, 500);
                cargo.addMarines(100);
                cargo.addSupplies(630);
                cargo.addFuel(500);

        
                cargo.addMothballedShip(FleetMemberType.SHIP, "vigilance_Hull", null);
               
                cargo.addMothballedShip(FleetMemberType.SHIP, "hound_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "lasher_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "brawler_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "dram_Hull", null);
               
                cargo.addMothballedShip(FleetMemberType.SHIP, "enforcer_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "condor_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "hammerhead_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "sunder_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "valkyrie_Hull", null);
               
                cargo.addMothballedShip(FleetMemberType.SHIP, "falcon_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "eagle_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "dominator_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "venture_Hull", null);
               
                cargo.addMothballedShip(FleetMemberType.SHIP, "atlas_Hull", null);
                cargo.addMothballedShip(FleetMemberType.SHIP, "onslaught_Hull", null);
               
                cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
                cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
               
               

        }


这个就是方法的主体。


cargo.addWeapons("flak", 5); 是增加武器,“flak”是武器的id, 5是武器的初始数量

cargo.addMothballedShip(FleetMemberType.SHIP, "falcon_Hull", null);是增加船体,“falcon_Hull”是"船体id_Hull“

加好响应的代码后,新开游戏,我们添加的武器和船体就可以在空间站中买到了












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

2

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-7-9 20:36 , Processed in 0.082356 second(s), 18 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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