如何让魔球新添加的武器可以破甲
12th吧
全部回复
仅看楼主
level 1
本改版基于东方1135的1.2.6版本,其余版本或者12th可能不适用。2楼说说破甲脚本的原理,后面的楼层给出修改方法。
同时,由于本人才疏学浅,希望各位大佬多多斧正。
2024年07月27日 11点07分 1
level 1
在1135中,破甲的判定由script文件中的s_missile_anti_armor_calculate_new给出。Script no.为813。
如图所示,破甲判定与远程有关,初始变量V0为攻击的人,V1为使用武器的箭/弩箭,V2为受到伤害的人,V3为使用的弓、弩,V4不知道,猜测是受击部位,V5与破甲之后的额外伤害有关系。
在破甲判定中,会检测V0的ID,V1的ID(V0的ID为V10,V1的ID为V11)判断是否为特种兵或者英雄,特种兵和英雄会获得额外的破甲值(15点),同时根据本身的角色等级(普通士兵也有,不过更少)对该单位射击时,破甲值额外降低。(顺便一提,普通士兵根据等级减少的破甲值为 等级/10,特种兵为等级/5,英雄则为等级/3,也就是说,使用远程武器打52级的英雄(如岳飞),你会直接减少52/3=17的破甲率)
特种兵的检索通过script no.629 即cf_is_special_soldier的这一个脚本给出,这一脚本的特点是检索单位ID的slot.no 162的值是否为1(为1说明是特种兵)。
对于特种兵属性的赠与,是通过llqs_init_special_soldier 这一脚本完成的,如果想要让自己导入的部队拥有特种兵属性,可以在后面添加。具体方法3楼给出。
除了角色ID对破甲有影响之外,角色使用的弩、箭这些都会影响破甲值,同时,某些特殊的箭会获得额外破甲
例如这一段,
V16代表破甲率,当使用的箭为火矢(967),破甲率额外提升20,使用的箭为克敌弩箭(940)、点钢弩箭(941)、大宋火箭(235),破甲率额外提升15点。
对于神器而言必定破甲,因为在V16计算完毕后,会有代码判断是否为神器,比如
958,959,980,965均为破甲100的神器,在这里,作者直接赋予了它们100的破甲值(赋予reg80为100),等于必然破甲。这里你可以在后面新添加自己想要100破甲的武器。
Script. no657就是取随机值判断有无破甲的环节,由rate -1给出。就不用做修改了。
但仅仅修改这个脚本是不够的,自创远程武器无法触发破甲判定中,这是因为作者定死了可以触发这些脚本的序列上限。单就在本脚本中,便有
V21为受到攻击者的主武器no,判断其1060>no>-1,在这里自己便需要将1060改成导入物品后的最后一个序列号,比如说下面这个图中最后一个物品的序列no.为1133,则需要把1060改为1133
然后,我们便需要追根溯源,找到是谁使用了这个脚本(813)
在mission template中,26处代码引用了这个脚本,虽然看不过来这些代码,但它们大体雷同,同时,(neg|ge, ":var_5", 1060)这个代码正好有26处,那我们只需要将1060改成最后一个物品序列(我的是1133)便可以了。
另外,额外伤害是不需要自己修改的,我把上限改了后这个额外伤害就有了,就不用去看那一坨代码了。
至于破甲值的话,就完全在s_missile_anti_armor_calculate_new这个脚本中了,值得注意的是,弓箭的破甲值还与强弓有关系,箭/弩矢的thrust damage有关,与是否骑马有关(骑术会弥补一些因为骑马而减少的破甲值)。
2024年07月27日 12点07分 2
level 1
第三楼
这一楼我们来谈谈如何修改,修改的部分会分为几块。
首先对(neg|ge, ":var_5", 1060)这个代码进行修改
第一步,
复制一个scripts.txt和mission_template.txt的副本,防止自己把游戏改崩后打不开
打开mission_template.txt
按ctrl+h替换,将26处的2147483678 2 1224979098644774917 1060替换为2147483678 2 1224979098644774917 XXXX,其中XXXX为魔球物品栏最后一个物品的序列。如图情况就是改为1133。
第二步,打开scripts.txt
同样将2147483678 2 1224979098644774917 1060这一部分进行替换。
修改完成后,理论上,你魔球的远程武器就会受1135破甲系统影响了。
然后,对自创物品箭的附加破甲值进行修改(获得和大宋火箭、克敌弩箭一样的额外破甲)。
在scripts.txt中,搜索s_missile_anti_armor_calculate_new -1
注意,第一个数字203代表代码总数,如果你添加了一个代码,则203应该改为204(就是203+1),添加了两个代码,则是205(203+2).
然后,搜索1073741855 2 1224979098644774913 235 1073741855 2 1224979098644774913 940
在代码后面添加1073741855 2 1224979098644774913 XXX,XXX代表箭/弩矢的序列No,例如,魔球中,235序列对应的是大宋火箭。记得每添加一次代码,就需要让203+1。
然后我们需要修改自创箭/弩矢的thrust damage
在scripts.exe中,搜索init_thrust_damage
如同前面一样,对于第一个数字,在添加代码后需要+1
在init_thrust_damage下面代码的最后
①对于弓箭,添加
507 3 A 64 4 A为弓箭的序列No
②对于弩矢,添加
507 3 A 64 266 A为弩矢的序列No
接下来,我们可以指定某种远程武器如同神器一般,永远破甲,
在s_missile_anti_armor_calculate_new -1中,搜索
4 0 1073741855 2 958 12249790986447749
15 10737418
55 2 959 12249790986447749
15 10737418
55 2 980 1224979098644774915
在后面添加1073741855 2 XXX 1224979098644774915 ,XXX为修改武器的序列。(记得前面203要+1)
最后,让我们指定某些兵种享受特种兵的福利(额外穿甲等)
搜索llqs_init_special_soldier
记得第一个数字添加一次代码后要+1,在最后面添加如下代码500 3 XXX 162 1,XXX为兵种序列no
2024年07月27日 12点07分 3
大佬,请问怎么用init_thrust_damage给导入的火器子弹加破甲呀?我从16th那边导入了火绳枪
2025年02月27日 01点02分
请问怎么导入别的mod的武器,博主
2025年12月21日 14点12分
level 1
淡季贴吧
[阴险]
2024年07月27日 13点07分 4
level 1
看不懂[呵呵]
2024年07月28日 00点07分 5
@青马贞元 我啥地方没说清楚啊[泪]
2024年07月28日 03点07分
@三加三等于9 单纯是我太笨了[小乖]
2024年07月28日 09点07分
@青马贞元 可能是我哪个地方没说清楚,哪里没说清楚的话我改一下就行了
2024年07月28日 09点07分
@三加三等于9 真的很清楚了,只是我太电子文盲了[小乖]
2024年07月28日 10点07分
level 5
学习了!
2024年11月10日 02点11分 6
level 5
楼主知道它神器那个暴击、增伤、免伤这些是哪部分代码吗[太开心]?昨天按照你这个已经改了破甲了[真棒]
2024年11月10日 02点11分 7
最近忙于考试,等我考完之后看看
2024年11月10日 03点11分
2024年11月10日 10点11分
level 1
是不是就意味着12th原版的破甲率和强弓、骑射等级无关?
2025年04月28日 03点04分 8
破甲率和骑射有影响。 骑马的话破甲会下降,但骑射可以稍微减弱这个影响,每级增加1点破甲 而强弓的话,也会增加破甲值,应该是7点来着。 这是1135的,12th我就不知道了
2025年04月28日 15点04分
1