超级玩家
 
- 贡献度
- 57
- 金元
- 4523
- 积分
- 680
- 精华
- 0
- 注册时间
- 2007-12-4
|
本帖最后由 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
查看全部评分
-
|