让时间线DLC里的大太刀可以使用全部种类的武器
原版大太刀只有一个专属武器。作为一个从来没学过这方面编程的人,我花了一个星期的时间终于琢磨明白了。
给大家说说思路吧,我估计其他游戏都可以用这种方式来修改。
我先问deepseek,X4 的飞船武器兼容性是什么代码确定的,deepseek推测关键词是 weapon 和 tag,然后我找了3dm上那个过期的8炮小飞机的MOD来修改,用这个MOD的原因是它的原型是原版里的地球人的四炮小飞机,但代码很少,我推测它是直接调用的原版的组件,用它可以少分析很多代码,并且可以对比一下看定义武器的代码到底是哪一段。
然后根据对比结果,我从另一个小飞机的MOD上抄了点儿代码,把那个8炮小飞机的代码补全了,让它能在7.6的版本上跑。
然后再根据这个小飞机上的武器代码,去找大太刀上的武器代码。大太刀上武器兼容性的代码是<connection name="con_weapon_01" tags="combat medium missile terran weapon symmetry symmetry_left symmetry_1 ">
我本来想参考3dm上有个取消武器散热时间的MOD,直接替换connection的tags数值,但飞船的代码里有很多个connection,相互之间很明显是用name来区分的,和那个取消武器散热的MOD还不太一样。
我把这段武器代码输入给deepseek,让它写一段类似修改武器属性的replace命令来替换武器兼容性。但是deepseek写的几种替换方式都没效果。
比如
<replace sel="//component[@name='ship_ter_m_corvette_02']/connections/connection[@name='con_weapon_01']/@tags">
<attribute name="tags">medium combat standard missile highpower platformcollision weapon symmetry symmetry_left symmetry_1</attribute>
</replace>
后来我猜测 deepseek写的 connection[@name='con_weapon_01']/ 这个是对的,因为这明显是在区分各个connection。可以合理猜测在有大量程序员使用deepseek的情况下,这种简单的句子不太可能出错。出错的地方可能是替换代码的定位错了,因为我没有把大太刀的相关文本全部输入给deepseek,而且对于AI来说,代码命令本身很难出错,但和其他文档的关联性对AI来说更难理解。
我模仿那个武器散热的定位方式 写成 <replace sel="//components/component/connections/connection[@name='con_weapon_01']/@tags">medium combat standard missile highpower platformcollision terran weapon symmetry symmetry_left symmetry_1</replace>,成功生效。
这个花了我一个星期的晚上娱乐时间才搞定,不过作为一个只在本科时学过C++,不是计算机专业的人来说,我觉得还是不错了。最后感慨一下deepseek是NB,虽然它把代码写错了,但最关键的问题还是它解决的。
**** Hidden Message *****
感谢楼主的无私奉献 大佬辛苦,感谢你的教程! 感谢楼主的分享
gfffffffffff
感谢分享
dddddddddddd
111111111111111111111
6666666666666666666666666666666
感谢分享! 感谢大佬分享 AI和lz都比较厉害!!!!!!! 666666666666
666666666666
这个要修改哪个文件位置??求大佬指点 :):):):):):):):) 11111111111111111111111111
好好好好好好 DDDDDDDDDDDDDDDD
66666666666666666666666
66666666666666666666666
66666666666666
感谢分享 666666666666666666
大佬6啊,科研精神!
犀利啊厉害还 66666666666666
66666666666666666
66666666666666
66666666666666
页:
[1]
2