找回密码
 注册
X系列官方授权正版
搜索
楼主: EliteCadre

[讨论] 我打算自己制作MOD(仅仅自己玩),求助几个问题。

[复制链接]
 楼主| 发表于 2014-2-11 21:04:16 | 显示全部楼层
虔诚 发表于 2014-2-11 20:24
关于武器伤害机制的代码在Combat.as里面,它长得既像C语言又有点不像,我所在专业仅仅初学了一点C语言, ...

我看StarRulerMOD FRB中的不同装甲在combat.as中有不同的代码,比如有的装甲减伤下限20%有的减伤下限5%,不同类型的装甲有不同的代码。
关于武器好像还有一个叫DamageFlags的东西,用来区分伤害类型和穿透性,而且数值都是2的N次方,估计由一串2进制代码每一位对应一种性质,如果为“1”武器就具有该性质。
而装甲里有判定是否穿甲的东西,如果去掉是不是就无视穿透了?
else if (evt.flags & DF_HalfArmorPierce != 0 || evt.flags & DF_ArmorPiercing != 0){
                evt.damage = max(evt.damage - (Soak * 0.5f), evt.damage * 0.4f);
                float deal = min(evt.damage, dest.HP);               
                dest.HP -= deal;
                evt.damage -= deal;
由于我的所学专业属于工科,C语言只是很浅显的学了一点,而且听另一位跟帖的说这还是C++,只能大概试一试了。
回复

使用道具 举报

 楼主| 发表于 2014-2-11 23:31:06 | 显示全部楼层
虔诚 发表于 2014-2-11 20:24
关于武器伤害机制的代码在Combat.as里面,它长得既像C语言又有点不像,我所在专业仅仅初学了一点C语言, ...

试试这样行不,代码在Combat.as,能否制成不可被穿透的装甲?
//NEW
//Reduces damage taken by Unpenetratable Soak, down to a minimum of 20% damage
void UnPenSoakDamage(Event@ evt, float Soak) {
                evt.damage = max(evt.damage - Soak, evt.damage * 0.2f);
                float deal = min(evt.damage, dest.HP);
                dest.HP -= deal;
                evt.damage -= deal;
}
不对武器的穿透效果进行判断,直接计算伤害.
回复

使用道具 举报

发表于 2014-2-12 08:51:05 | 显示全部楼层
虔诚 发表于 2014-2-11 20:26
我都在等SR2了,一代有些地方我比较头疼,所以MOD制作不是很上心

噢,对,忘了,SR2, 仁兄以前提过,同等
回复

使用道具 举报

发表于 2014-2-12 20:55:48 | 显示全部楼层
EliteCadre 发表于 2014-2-11 23:31
试试这样行不,代码在Combat.as,能否制成不可被穿透的装甲?
//NEW
//Reduces damage taken by Unpenetrat ...

你的每一段代码,都要进游戏测试。
你可以试试看。

用两艘小飞机测试你的代码效果。看伤害减少量是否如代码那样生效。

如果生效,别忘了测试一下其他地方有没有异常的数据。
回复

使用道具 举报

 楼主| 发表于 2014-2-16 12:29:23 | 显示全部楼层
虔诚 发表于 2014-2-12 20:55
你的每一段代码,都要进游戏测试。
你可以试试看。

现在我加入的组件都能用了,图标科技需求之类也改好了,按~没有报错,现在我需要解决两件件事情
1.
我希望一些性能极强的装备,能达到相同资源消耗的装备性能的10倍,但制造时间达到100倍(精兵路线,比同样规模的对手厉害N倍,但制造时间是对方的N^2倍,实际单位之间只能制造相当于对手1/N的战斗力,好处是省资源),这个特性要应用于亚原子系列装备。
2.
希望电脑能用上我新加入的组件,并丰富电脑船的种类和名称,并改掉一些很傻的设计。
然后我还想让护盾和装甲受防御组件空间的限制,但护盾不再受内部空间的限制,不过这就是下一版本的事情了。
回复

使用道具 举报

发表于 2014-2-16 18:34:33 | 显示全部楼层
EliteCadre 发表于 2014-2-16 12:29
现在我加入的组件都能用了,图标科技需求之类也改好了,按~没有报错,现在我需要解决两件件事情
1.
我希 ...

好高端,楼主加油,记得把MOD发出来让大家瞧瞧~
回复

使用道具 举报

发表于 2014-2-16 21:31:52 | 显示全部楼层
EliteCadre 发表于 2014-2-16 12:29
现在我加入的组件都能用了,图标科技需求之类也改好了,按~没有报错,现在我需要解决两件件事情
1.
我希 ...

1.
我希望一些性能极强的装备,能达到相同资源消耗的装备性能的10倍,但制造时间达到100倍(精兵路线,比同样规模的对手厉害N倍,但制造时间是对方的N^2倍,实际单位之间只能制造相当于对手1/N的战斗力,好处是省资源),这个特性要应用于亚原子系列装备。

answer:把size加进资源、劳工需求的时候,参考GA种族自定义引发武器部件是否生效的设法,把相关参数写入劳工需求里面

2.
希望电脑能用上我新加入的组件,并丰富电脑船的种类和名称,并改掉一些很傻的设计。
然后我还想让护盾和装甲受防御组件空间的限制,但护盾不再受内部空间的限制,不过这就是下一版本的事情了。

answer:先设定好你的组件所采取的科技种类、等级,然后再重新设计AI的自用蓝图(不是默认蓝图)。护盾不受内部空间限制这点无法实现,除非你把size设恒定=0.但这样会失去SR这一款游戏的最大特色,所以我建议把size改小就行了。
回复

使用道具 举报

发表于 2014-2-16 21:41:04 | 显示全部楼层
虔诚 发表于 2014-2-16 21:31
1.
我希望一些性能极强的装备,能达到相同资源消耗的装备性能的10倍,但制造时间达到100倍(精兵路线,比 ...

AI的蓝图得看它们的船体主要走什么武器路线的来改,不要乱给一堆它不会研究的科技部件。
回复

使用道具 举报

 楼主| 发表于 2014-2-17 15:16:50 | 显示全部楼层
虔诚 发表于 2014-2-16 21:31
1.
我希望一些性能极强的装备,能达到相同资源消耗的装备性能的10倍,但制造时间达到100倍(精兵路线,比 ...

我的MOD不打算涉及种族天赋。我只是想让某种部件造的很慢很慢以作为对该部件强悍的性能和相对较少的资源消耗的一种平衡。
另外,如果开了随机科技连接关上开始时所有科技可用我怎么会知道AI都研发了些什么?
要想添加蓝图种类是只需要到\Game Data\Script Data\Layouts把自己的图扔进对应文件夹就行了还是要改AI?AI是怎样选择并修改里面的图纸的?
回复

使用道具 举报

 楼主| 发表于 2014-2-17 16:20:43 | 显示全部楼层
虔诚 发表于 2014-2-16 21:31
1.
我希望一些性能极强的装备,能达到相同资源消耗的装备性能的10倍,但制造时间达到100倍(精兵路线,比 ...


护盾不占用子系统空间这一点勿以实现,是通过把Tags里加上", Armor"实现的,现在和装甲一起受防御模块空间限制,已通过测试,不会影响护盾及发生器受伤害的次序。另外我试试能不能通过改PreDamageOrder让护盾发生器晚于装甲但早于其它子系统。
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站