战国无双2战场事件修改指南(10楼附PC版事件bug修复补丁)
首先感谢van大的脚本文件和绯炎的354S战场事件修改教程。战场文件开头是各部分的索引,08h便是事件部分相对文件开头的偏移。
事件部分开头也是个索引,每个数占四字节。第一个数是事件的总数,第二个数是“任务事件”的总数,第三个数是“非任务事件”的总数。特别地,贵重品任务是在“非任务事件”里的。从第四个数开始就是各事件相对事件索引开头的偏移了。
下面这是一个具体的事件
http://bbsimg.ali213.net/attachments/day_081007/20081007_6490556a65421d54d566CE1NtGxFd9sQ.jpg
前六个字节是“事件头”。
前四个字节意义未知,只解明了三个特殊值:
前四个字节为00 02 01 00的事件,如果满足Test条件,则在进入战场前就会发生;如果不满足条件,则进入战场后即使满足了条件也不会发生;
当前四个字节为00 07 00 00的事件发生时,本关胜利;
当前四个字节为00 08 00 00的事件发生时,本关败北。
第五个字节表示Test部分共有多少个项目,这个事件Test部分有10个项目,依次是FF、0F、FE、FF、1E、1D、1D、FF、1E、0F。第六个字节表示Event部分共有多少个项目,这个事件Event部分有4个项目,依次是0C、0C、0C、24。
Test项目每个占用18字节,包括一个项目代码和最多8个参数,不足8个参数的补0,项目代码和参数一律为2字节。下文都采用简略写法,如0F:7 1 0,实际便是0F 00 07 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00。
Event项目每个占用16字节,包括一个项目代码和最多7个参数,不足7个参数的补0,项目代码和参数一律为2字节。下文同样采用简略写法。
下面具体介绍Test和Event已经解析的项目。
Test
FF:AND,即逻辑与。参数一个,表示条件数目。所谓AND,便是指其所包括的分支条件都满足时该FF项才算满足条件。
FE:OR,即逻辑或。参数一个,表示条件数目。所谓OR,便是指其所包括的分支条件任意满足一个时该FE项就算满足条件。
FF和FE可以多重嵌套,嵌套的时候,次一级的FF、FE连同其所有分支条件只算成上一级的一个条件。
具体还是看上面那个事件,其Test整理下是这样的:
FF:2
0F:43 1 0
FE:2
FF:3
1E:1
1D:2 B 0
1D:2 E 0
FF:2
1E:2
0F:9 0 1
可以看出,第一级的FF包括两个条件,为0F和FE;第二级的FE包括两个条件,为两个FF。
00:时间测试。参数三个。值一表示“计时器序号”,为0时表示战场本身的计时器,为其它值时,由Event的00项目来声明(见下文Event的00);值二表示时间,单位为秒;值三表示“对比判断条件”,为0表示<,为1表示≤,为2表示=,为3表示≥,为4表示>,下文的“对比判断条件”,都是同一意义。
如,00:0 12C 3 表示进入战场时间大于等于300秒时满足条件。
01:部队士气测试。参数三个。值一表示“部队序号”,用SW2Editor打开相应战场,把序号转为十六进制便是,下文的“部队序号”都是同一意义;值二表示士气值;值三表示“对比判断条件”。
关于“部队序号”,有一点要特别说明:把最下面“护卫二”的序号+1,就表示"Player”,即玩家使用的武将。如姊川之战织田德川侧,护卫二是65,那么66就表示Player。
Player可指代1P玩家,也可指代2P玩家。但是,当多个有Player参数的项目包含在一个FF里时,这些Player参数只能指代同一个玩家,即这些条件必须由同一个玩家完成;当有Player参数的项目与参数三为1的1D项目(玩家武将测试)包含在一个FF里时,Player参数只能指代1D项目所指定的玩家。
02:军势士气测试。参数三个。值一表示“军势代码”,0=蓝军,1=红军,2=黄军,下文的“军势代码”都是同一意义;值二表示百分比,应该是屏幕右上方士气槽的比例;值三表示“对比判断条件”。
03:参数二个。这个测试项目只在小田原城攻略战?西、小田原城防卫战、无限城“难攻不落之堂”等少数战场里出现过,表示破坏开门装置卡阻器、打破火药壶等特殊条件。
04:战场相关测试。参数二个。值一表示各种战场特殊效果,与Event的2A项目参数一对应(见下文Event的2A);值二为1表示值一表示的效果存在时满足条件,为0表示值一表示的效果不存在时满足条件。
05:击破测试。参数二个,都表示“部队序号”。当由值一表示的部队击破值二表示的部队时满足条件。
06:体力测试。参数三个。值一表示“部队序号”;值二表示体力的百分比;值三表示“对比判断条件”。
07:小队人数测试。参数三个。值一表示“部队序号”;值二表示人数; 值三表示“对比判断条件”。这个项目是将部队主将所在的5人小队剩余人数与值二进行比较。
08:击破数测试。参数三个。值一表示“部队序号”;值二表示击破数;值三表示“对比判断条件”。
09:玩家击破数测试。参数四个。值一为0表示1P玩家,为1表示2P玩家;值二表示“变量序号”,与Event的01、18、19项目的参数一对应;值三表示比较的数值;值四表示“对比判断条件”。这个项目是将值一表示的玩家击破数与值二表示的变量数值相减,所得结果与值三进行比较。
0A:苦战测试。参数一个,表示“部队序号”,即该部队陷入苦战时满足条件。这个项目只对我军部队有效,通常的苦战条件为:该部队除主将外只剩两个小兵。
0B:变量对比测试。参数四个。值一值二都表示“变量序号”;值三表示“对比判断条件”;值四表示百分比。这个项目是将两个变量相除的结果与值四比较,如"0B:0 1 3 32"表示变量0除以变量1的结果大于等于50%时满足条件。
0C:连击数测试。参数三个。值一表示“变量序号”;值二表示“对比判断条件”;值三为0表示1P玩家,为1表示2P玩家,为2表示1P或2P玩家。这个项目是将值三表示的玩家的连击数与值一表示的变量值进行比较。
0D:参数三个。
当值一为0时,为无限城“秘药的材料”专用项目,此时值二表示数量值,值三表示“对比判断条件”,用来测试收集到的秘药材料的数目。
当值一为1时,"0D:1 0 0"表示的条件为“无双演武模式,且已经clear,游戏难度为困难或地狱”。
当值一为2、值二为N时,若值三为0,表示的条件为“无限城N层以上(包括N层)”;若值三为M(M≥N),表示的条件为“无限城N层到M层之间(包括N层和M层)”。
0E:变量测试。参数四个。值一表示“变量序号”;值二表示比较的数值,0~7FFF为正,8000~FFFF为负;值三表示“对比判断条件”;值四意义未知。
0F:非任务事件测试。参数三个。值一表示“非任务事件序号”;值二为0表示该事件未发生时满足条件,为1表示该事件已发生时满足条件;值三意义未知,一般为0或1。
什么是“非任务事件序号”呢?以姊川之战织田德川侧为例,前22个事件都是任务事件(上面已经提过,可以根据索引的第二个数看出有多少个任务事件),那么第23个事件其“非任务事件序号”便为0,第24个事件其“非任务事件序号”便为1,以此类推。
10:事件测试。参数三个。值一表示“事件序号”;值二为0表示该事件未发生时满足条件,为1表示该事件已发生时满足条件;值三意义未知,一般为0或1。
注意“事件序号”与“非任务事件序号”的区别,“事件序号”以第一个事件为编号0,“非任务事件序号”以第一个非任务事件为编号0。还是以姊川之战织田德川侧为例,第23个事件其“非任务事件序号”为0,其“事件序号”为22。
11:任务状态测试。参数三个。值一表示“任务序号”;值二表示“任务状态”,0=执行中,1=已成功,2=已中止;值三意义未知,一般为0或1。
12:交战测试。参数五个。值一表示“部队范围”,为0表示该项目针对整支部队,为1表示该项目只针对部队主将所在的5人小队,即主将和主将身边4个护卫兵,下文的“部队范围”都是同一意义;值二表示“部队序号”;值三表示“部队范围”;值四表示“部队序号”;值五意义未知,一般为0或1。
既然是交战测试,那么两支部队必须属于不同军势。
13:部队状态测试。参数四个。值一表示“部队序号”;值二表示“部队状态”,为0表示存在状态,为1表示隐藏状态,为2或3表示被击破状态或已撤退状态;值三为1表示该部队是值二表示的状态时满足条件,为0表示该部队不是值二表示的状态时满足条件;值四意义未知,一般为0或1。
14:部队位置测试。参数七个。值一表示“部队范围”;值二表示“部队序号”;值三到值六为四个坐标,依次为X1、Y1、X2、Y2,则这四个值表示的区域为{(X,Y)|50X1≤X<50(X2+1),50Y1≤Y<50(Y2+1)};值七为0表示部队位置在该区域外时满足条件,为1表示部队位置在该区域内时满足条件。
15:军势位置测试。参数五个。值一表示“军势代码”;值二到值五为四个坐标,依次为X1、Y1、X2、Y2,则这四个值表示的区域为{(X,Y)|50X1≤X<50(X2+1),50Y1≤Y<50(Y2+1)}。该军势任意一支部队位置在该区域内时即满足条件。
16:部队位置测试。参数七个。值一表示“部队范围”;值二表示“部队序号”;值三到值六为四个坐标,依次为X1、Y1、X2、Y2,则这四个值表示的区域为{(X,Y)|10X1≤X<10(X2+1),10Y1≤Y<10(Y2+1)};值七为0表示部队位置在该区域外时满足条件,为1表示部队位置在该区域内时满足条件。
17:距离测试。参数五个。值一值二都表示“部队序号”;值三表示距离;值四表示“对比判断条件”;值五为1表示两部队是值三值四表示的距离关系时满足条件,为0表示两部队不是值三值四表示的距离关系时满足条件。例如,值三值四值五为1E 0 1表示两部队距离小于30时满足条件,为1E 0 0则表示两部队距离不小于30时满足条件。
由于PC版的移植bug,17这个Test在部分地图上的判断结果是很诡异的。PC版的一些事件bug,如武藏外传岛津军神速合流,关原东军侧岛津撤退时取人首级于千里之外等,问题都是出在这个17上。
18:部队特殊状态测试。参数四个。值一表示“部队序号”;值二为0时表示“部队在玩家视野内”,为其它值时表示各种特殊状态,与Event的12项目参数二对应;值三为1表示该部队是值二表示的特殊状态时满足条件,为0表示该部队不是值二表示的特殊状态时满足条件;值四意义未知,一般为0或1。
19:诘所测试。参数四个。值一表示诘所头目的“部队序号”;值二表示“军势代码”;值三为1表示该诘所属于值二表示的军势且未沦陷时满足条件,为0表示该诘所属于其它军势或者已沦陷时满足条件;值四意义未知。
1A:游戏难度测试。参数一个,0=简单,1=普通,2=困难,3=地狱。
1B:游戏模式测试。参数一个,0=无双演武,1=模拟演武,2=无限城。
1D:玩家武将测试。参数三个。值一为0表示1P玩家,为1表示2P玩家,为2表示“1P和2P玩家”(当值三为0时)或者“1P或2P玩家”(当值三为1时);值二表示26个名将的代码,用SW2Editor打开“NPC武将”,看“模型”或者“招式”的值便是对应的武将(注意不是序号,因为那几个“足轻”被跳过了);值三为1表示玩家是值二表示的武将时满足条件,为0表示玩家不是值二表示的武将时满足条件。
1E:玩家数量测试。参数一个,为1表示1个玩家,为2表示2个玩家。
1F:逻辑变量测试。参数二个。值一表示“逻辑变量序号”,与Event的2D项目参数一对应;值二为0表示该逻辑变量为False时满足条件,为1表示该逻辑变量为True时满足条件。
Event
00:设定计时器。参数二个。值一表示“计时器序号”;值二为0表示开始计时,为1表示停止计时,为2表示时间清零。
Event的00和Test的00一般都要结合起来用,如要实现"事件A发生一段时间后发生事件B",便是这样:
事件A:
Event:
00:N 0
事件B:
Test:
00:N 时间 3
01:设定变量。参数三个。值一表示“变量序号”;值二表示设定的数值,0~7FFF为正,8000~FFFF为负;值三为0表示无视变量原始数值直接将变量的值调整为值二,为1表示在变量原始数值的基础上根据值二进行加减。(此项感谢绯炎的帮忙)
02:炮击等特殊事件。大筒炮击、真田丸炮击、出丸炮击、焙烙弹、无限城楼梯通行、贵重品出现、起火、落石等特殊事件都是这个项目。参数二个。值一表示大筒、出丸等的编号;值二为0或2表示开始炮击、无限城楼梯通道开启、贵重品出现、起火、落石发动等,为1或3表示停止炮击、火熄灭、落石停止等。
03:门的开、闭。参数四个。值一值二为坐标X1、Y1,表示一个区域{(X,Y)|50X1≤X<50(X1+1),50Y1≤Y<50(Y1+1)};值三表示门在该区域哪个方向,0=东面,1=北面,2=西面,3=南面,这三个值决定了门的位置,而且通常每个门可以有两种表示方法,如姊川的织田本阵大门,可以表示为"D 5 1”,也可以表示为"D 6 3";值四表示开闭方式,0=缓慢开启且屏幕右侧出现小动画,1=缓慢关闭且屏幕右侧出现小动画,2=瞬间开启,3=瞬间关闭,4=缓慢开启,5=缓慢关闭。
04:军势士气调整。参数二个。值一表示“军势代码”;值二表示士气变化百分比,0~7FFF为正,8000~FFFF为负。
05:部队士气调整。参数二个。值一表示“部队序号”;值二表示士气变化值,0~7FFF为正,8000~FFFF为负。
注意04和05参数二的区别,一个是百分比,一个是实际值。
06:设定战斗方针。参数三个。值一表示“部队范围”;值二表示“部队序号”;值三表示“战斗方针”,0=主动出击,3=原地进攻,4=原地防守。
07:设定跟随目标。参数三个。值一表示“部队范围”;值二值三都表示“部队序号”。
值二表示的部队将朝值三表示的部队所在位置移动,并跟随该部队行动(相同军势)或追击该部队(不同军势)。注意,这个项目仅对战斗方针为主动出击的部队有效。
08:设定移动地点。参数四个。值一表示“部队范围”;值二表示“部队序号”;值三值四表示目的地的X、Y坐标,只要实际坐标除以50所得值的整数部分为这两个数的地点均可,所以其实指定的是一个区域。
09:设定移动地点。参数四个。值一表示“部队范围”;值二表示“部队序号”;值三值四表示目的地的X、Y坐标,与实际坐标为1:10比例关系。
0A:小地图部队闪烁。参数二个。值一表示“部队序号”;值二意义未知,一般为0或1。
0B:小地图地点闪烁。参数二个,表示小地图的X、Y坐标,与实际坐标为1:10比例关系。
0C:小地图任务相关部队标记。参数一个,表示“部队序号”。这个项目要与24或25任务触发项目联合使用才有效果。
0D:小地图任务相关地点标记。参数二个,表示小地图的X、Y坐标,与实际坐标为1:10比例关系。这个项目要与24或25任务触发项目联合使用才有效果。
0E:设定视野外战斗系数。参数四个。值一表示“部队范围”;值二为0表示设定视野外战斗的伤害系数,系数越大部队视野外攻击能力越强,为1表示设定视野外战斗的受伤害系数,系数越小部队视野外防御能力越强,这两个系数默认情况下都为1;值三表示“部队序号”;值四除以100后即为设定的数值,如19(10进制25)即表示将系数调整为0.25。
0F:事件重置为未发生状态。参数一个,表示“非任务事件序号”。这个主要用于使某个事件重复发生,通常来说,一个事件只能发生一次,但用0F重置为未发生状态后,自然就可以在满足条件时再次发生了。
10:部队倒戈。参数二个。值一表示“部队序号”;值二表示“军势代码”。即值一表示的部队倒戈到值二表示的军势。
11:设定部队所属军团。参数二个。值一表示“部队序号”;值二表示“军团代码”,用SW2Editor打开相应战场,军团那项与这个参数对应,可参考这帖:http://game.ali213.net/thread-2311251-1-1.html
不过,用SW2Editor修改军团代码,可以改变该部队所属军势,如姊川之战织田德川侧,把敌军部队的军团代码从6改为0(德川军)或者5(织田军),则该部队将变为友军;而用Event的11项目来改变所属军团是不会改变其所属军势的(改变所属军势必须用10项目),因此这个11项目的实际作用就只是使该部队的服装颜色改变为那个军团的服装颜色。
12:设定部队特殊状态。参数四个。值一表示“部队序号”;值二表示各种特殊状态参数,目前只知道1=不攻击敌人,2=不被敌人攻击,4=不从诘所补充兵力,6=取消掉落物品,9=地图上不可见(部队实际依然存在,但小地图上看不到点,武将情报里也不会有折线标明位置),A=该敌将与玩家见面时不说宣战台词(若是名将则取消见面的动画),B=该友军武将陷入苦战玩家前去救援时不说感谢台词;值三为1表示设定值二表示的特殊状态,为0表示解除相应的特殊状态;值四表示“部队范围”。
13:体力调整。参数五个。值一表示“部队范围”;值二表示“部队序号”;值三表示体力变化百分比,0~7FFF为正,8000~FFFF为负,该百分比都是以最大体力为基值来算的,不是以当前体力为基值;值四表示“小队范围”,为0表示小队5人都调整体力,为1表示只有小队队长调整体力,具体来说,值一0值四0表示整支部队,值一0值四1表示该部队所有小队队长,值一1值四0表示部队主将所在小队5人,值一1值四1表示部队主将1人;值五为0表示视野内和视野外的部队都调整体力,为1表示只对视野外的部队调整体力。(此项感谢绿燕的帮忙)
14:设定视野外移动速度。参数三个。值一表示“部队范围”;值二表示“部队序号”;值三表示要设定的视野外移动速度,上限为20(部队视野外移动速度默认情况下为10)。
15:攻防能力调整。参数二个。值一表示“部队序号”;值二表示攻防调整幅度,1=3倍攻防炎斗气,2=2倍攻防炎斗气,3=1.5倍攻防雷斗气,4=1.2倍攻防雷斗气,5=攻防下降为80%,6=攻防下降为60%,0=攻防回复正常。
16:参数七个。值四到值七为四个坐标,依次为X1、Y1、X2、Y2,则这四个值表示的区域为{(X,Y)|50X1≤X<50(X2+1),50Y1≤Y<50(Y2+1)};值三为1表示设定值一表示的效果,为0表示取消相应的效果。
当值一为0时,值二无效,其效果为:在值四到值七表示的区域内,玩家的视野范围大为缩小。
当值一为1~3时,值二表示“军势代码”,其效果为:位置在值四到值七表示的区域内、属于值二表示的军势的部队体力持续下降,值一为1时体力下降最快,2次之,3最慢。具体过程为:刚开始时每个小队的队长体力都不变,只有4个手下的体力下降,当手下的体力都降至1后,小队队长体力才开始下降,而部队主将的体力始终不会下降。另外,视野内的部队体力不会下降。
17:BGM变换。参数一个,表示“BGM序号”。对应关系可以看绿燕的帖子:http://game.ali213.net/thread-2177425-1-1.html把里面的序号减1转成十六进制即可。
18:记录玩家或护卫的击破数。参数二个。值一表示“变量序号”,该变量用来记录击破数;值二为0表示记录1P玩家击破数,为1表示记录2P玩家击破数,为2表示记录1P护卫击破数。
19:设定随机变量。参数三个。值一表示“变量序号”;值二值三表示两个数值。值一表示的变量将被设定为介于值二值三之间(包括值二值三)的一个随机值。
1A:变量运算。参数四个。值一、值二、值四都表示“变量序号”,值一值二为进行运算的两个变量,值四为记录运算结果的变量;值三表示运算方式,为0表示相加,为1表示相乘。
1B:参数三个。
当值一为0时,值二值三都表示“军势代码”,其效果是值二表示的军势所有部队加入值三表示的军势。
当值一为1时,值二表示“军势代码”,值三表示“军势名称代码”,其效果是值二表示的军势改变名称。“军势名称代码”的意义可以用SW2Editor打开“关卡信息”,看军势名称下拉列表,0为真田军,1为织田军,按顺序排到2F朝仓军。
当值一为3时,值二表示“军势代码”,值三无效,其效果是设定真田丸、出丸、天王山大筒、长筱拒马栅等的所属军势。
当值一为4时,值二表示大筒的编号,值三表示“军势代码”,其效果是设定关原大筒的所属军势。
另外,"1B:2 0 0"在部分地图上(如长筱、沼田城)有下雨的效果;"1B:5 0 0"可以使上田城地图完全可见;"1B:6 0 0"为无限城专用,其效果是小地图上楼梯处闪烁。
1C:指定军势和区域的部队撤退。参数六个。值一表示“军势代码”;值二到值五为四个坐标,依次为X1、Y1、X2、Y2,则这四个值表示的区域为{(X,Y)|50X1≤X<50(X2+1),50Y1≤Y<50(Y2+1)};值六表示撤退方式,为0表示视野外直接消失视野内跑到据点里消失,为1表示不论是否在视野内都原地直接消失。
这个项目的效果是位置在值二到值五所表示的区域内、属于值一表示的军势的所有部队消失,消失的部队其“部队状态”(Test的13项目参数二)为2。
1D:指定区域的部队瞬移。参数四个,表示四个坐标,依次为X1、Y1、X2、Y2。效果为位置在区域{(X,Y)|50X1≤X<50(X1+1),50Y1≤Y<50(Y1+1)}的所有部队瞬移到区域{(X,Y)|50X2≤X<50(X2+1),50Y2≤Y<50(Y2+1)}。
1E:指定区域的部队位置微调。参数四个,表示四个坐标,依次为X1、Y1、X2、Y2,这四个坐标表示一个区域{(X,Y)|10X1≤X<10(X2+1),10Y1≤Y<10(Y2+1)}。这个项目对位于这个区域内的部队进行位置微调,即瞬移到附近位置。瞬移后的新坐标是随机的,但新旧坐标除以50后的整数部分必须一样。这个项目只对视野内的部队有效。
1F:设定身份。参数二个。值一表示“部队序号”;值二表示“身份代码”,为0表示总大将,为2表示名将,为1或3表示大众脸(修罗属性对身份3武将的扣血比例系数是对身份0~2武将的扣血比例系数的2倍)。
20:战场物品出现。参数三个。值一值二表示战场物品出现的X、Y坐标,是实际坐标;值三表示“战场物品代码”,0=体力+20,1=体力+50,2=体力+100,3=体力+200,4=体力全满,5=无双+20,6=无双+1级,7=体力无双全满,8=黑漆太刀,9=当世甲胄,A=5秒无双不减,B=10秒无双不减,C=战草鞋,D=金钱+5,E=金钱+25,F=金钱+50,10=金钱+100,11=经验值+50,12=经验值+100,13=经验值+200,14=武器,15=秘药的材料,16=Lv4武器。
21:金钱奖励。参数一个,表示“变量序号”。奖励的金钱数额就是变量的数值。这个项目不支持负值,如果变量数值是8000~FFFF,则金钱直接变为999999。
22:播放战场信息。参数四个。值一表示“战场信息序号”,可以用SW2Editor打开相应战场来查看;值二表示“部队序号”;值三表示“变量序号”。
当值四为0时,值二值三都不起作用;当值四为1时,值二有效,值二表示的部队主将名字将会替代战场信息里的"%s"通配符;当值四为2时,值三有效,值三表示的变量数值将会替代战场信息里的"%d"通配符;当值四为3或4时,值二值三都有效,值二表示的部队主将名字将会替代战场信息里的"%s"通配符,值三表示的变量数值将会替代"%d"通配符,区别是3适用于"%s"在前"%d"在后的信息,4适用于"%d"在前"%s"在后的信息。
23:播放对话。参数六个。值一表示说话武将代码,用SW2Editor查看“NPC武将”里的序号便是(注意和Test的1D项目参数二的区别);值二表示“对话序号”,可以用SW2Editor打开相应战场来查看;值三为0表示头像在屏幕左边,为1表示头像在屏幕右边;值四只对名将有效对大众脸无效,表示用哪个表情头像,0、1、2、3分别对应普通、喜、怒、怨四种表情;值五为1时,如果下一句对话的头像是不同侧的(也就是值三不同),则本句对话的头像将会在下一句对话期间保留在屏幕上;值六意义未知。
24:任务触发、完成、中止相关。参数五个。值一表示“任务序号”;值二为0表示任务触发,为1表示任务完成,为2表示任务中止;值三意义未知,一般为0;值四表示该任务显示的“战场信息序号”;值五意义未知,一般为2。
25:任务触发、完成、中止相关。参数六个。值一表示“任务序号”;值二为0表示任务触发,为1表示任务完成,为2表示任务中止;值三表示该任务显示的“战场信息序号”;值四到值六等同于Event22项目的值二到值四。
这个项目通常用于相关战场信息里含"%s"、"%d"通配符的任务。
26:播放动画。参数三个。值一表示“动画序号”;值二一般都为Player的部队序号,意义未知;值三表示在游戏设置菜单里关闭动画后该动画是否播放,为0不播放,为1播放。
27:部队出现。参数二个。值一表示“部队范围”;值二表示“部队序号”。
这个项目用来解除部队的隐藏状态,也可以使被击破的部队复活。
28:部队瞬移。参数五个。值一表示“部队范围”;值二表示“部队序号”;值三值四为瞬移目的地的小地图X、Y坐标,与实际坐标为1:10比例关系;值五表示瞬移后的朝向,0=朝东,1=朝北,2=朝西,3=朝南。
这个项目除了用来移动部队外,也同样可以解除部队隐藏状态或者使部队复活。
29:部队消失。参数三个。值一表示“部队范围”;值二表示“部队序号”;值三为0表示视野外直接消失视野内跑到据点里消失,为1或2表示不论是否在视野内都原地直接消失。
另外,值三为0或1的29项目表示“撤退”,其“部队状态”(Test的13项目参数二)为2;值三为2的29项目表示“隐藏”,其“部队状态”为1。
2A:战场相关设定。参数二个。值一表示各种战场特殊效果,目前只知道0=取消所有通用对话(通用对话是指敌将的宣战台词、友军武将的夸奖台词、击破宣言、百人斩宣言这一类),1=隐藏地图(本能寺脱逃那种效果),2=在士气对比槽和武将情报里去除蓝军军势,3=在士气对比槽和武将情报里去除黄军军势(2、3都不影响该军势的部队),6=被敌人攻击损失金钱,7=攻击敌人获得金钱(6、7都仅对无限城有效),9=将通用对话中的特殊台词替换为常规台词(例如,玩家用孙市、宁宁、三成击破敌将,秀吉的夸奖台词就是特殊台词,而用其他武将时他的夸奖台词就是常规台词);值二为1表示设定值一表示的效果,为0表示取消相应的效果。
2B:设定胜败条件。注意这个项目只是用来设定在菜单里显示的胜败条件,实际胜败条件是取决于前面说过的头四个字节为00 07 00 00和00 08 00 00的事件。
2B的参数有很多种,详见下面列表。除值一外其余参数都是“部队序号”,依次记为序号1、序号2,其对应的部队主将记为武将1、武将2,对应的部队位置记为位置1、位置2,以此类推。
2B:0 序号1;胜利条件为击破武将1
2B:1 序号1 序号2;胜利条件为击破武将1和武将2
2B:2 序号1 序号2 序号3;胜利条件为击破三个指定武将
2B:3 序号1 序号2 序号3 序号4;胜利条件为击破四个指定武将
2B:4;胜利条件为击破敌方全武将
2B:5 序号1 序号2;胜利条件为武将1抵达位置2
2B:6 序号1 序号2 序号3;胜利条件为击破武将1,或者武将2抵达位置3
2B:7 序号1 序号2 序号3 序号4;胜利条件为击破武将1,或者武将2和武将3抵达位置4
2B:8 序号1 序号2 序号3 序号4 序号5 序号6;胜利条件为击破六个指定武将
2B:9 序号1;胜利条件为我方武将抵达位置1
2B:A 序号1;胜利条件为武将1抵达撤退地点
2B:B 序号1 序号2 序号3;胜利条件为击破武将1,且武将2抵达位置3
2B:1F 序号1;败北条件为武将1败退
2B:20 序号1 序号2;败北条件为武将1或武将2败退
2B:21 序号1 序号2 序号3;败北条件为指定三个武将中任意一人败退
2B:22 序号1 序号2 序号3 序号4;败北条件为指定四个武将中任意一人败退
2B:23;败北条件为我方任意一人败退
2B:24 序号1;败北条件为武将1以外的我方全武将败退
2B:25 序号1 序号2;败北条件为武将1和武将2以外的我方全武将败退
2B:26 序号1 序号2;败北条件为武将1抵达位置2
2B:27 序号1 序号2 序号3;败北条件为武将1败退,或者武将2抵达位置3
2B:28 序号1 序号2 序号3 序号4;败北条件为武将1或者武将2败退,或者武将3抵达位置4
2B:29 序号1;败北条件为序号1表示的我方本阵沦陷
2B:2A 序号1 序号2;败北条件为武将1败退,或者序号2表示的我方本阵沦陷
2B:2B 序号1 序号2 序号3;败北条件为武将1或者武将2败退,或者序号3表示的我方本阵沦陷
2B:2C 序号1 序号2;败北条件为序号1、序号2表示的我方两个本阵任意一处沦陷
2B:2D 序号1;败北条件为我方全武将败退,或者敌方武将任意一人抵达位置1
2B:2E 序号1 序号2 序号3 序号4 序号5;败北条件为武将1、2、3、4全灭,或者武将5败退
2B:2F;败北条件为民兵全灭
2B:30 序号1 序号2 序号3 序号4;败北条件为武将1或武将2败退,或者序号3、序号4表示的我方两个本阵任意一处沦陷
2B:31 序号1 序号2 序号3 序号4;败北条件为武将1或者武将2败退,或者武将3击破武将4
2B:32 序号1 序号2 序号3 序号4;败北条件为序号1表示的我方本阵沦陷,武将2败退,或者武将3击破武将4
2B:33 序号1 序号2 序号3 序号4;败北条件为武将1、武将2或者武将3败退,或者序号4表示的我方本阵沦陷
2B:34 序号1 序号2 序号3 序号4 序号5;败北条件为武将1、武将2或者武将3败退,或者武将4抵达位置5
2B:35 序号1 序号2;败北条件为武将1败退,或者序号2表示的我方本阵沦陷,或者民兵全灭
2B:36 序号1 序号2 序号3;败北条件为序号1表示的我方本阵沦陷,或者武将2抵达位置3
2B:37 序号1;败北条件为我方武将任意一人败退,或者敌方武将任意一人抵达位置1
2B:38;败北条件为任务失败
2B:39;败北条件为我方部队脱离失败
2B:3A;败北条件为于限制时间内歼灭敌军失败
2B:3B 序号1;败北条件为于限制时间内击破武将1失败
2B:3C;败北条件为于限制时间内全灭敌方武将失败
2B:3D 序号1;败北条件为武将1的救援失败
2B:3E 序号1 序号2;败北条件为民兵全灭,或者序号1、序号2表示的我方两个本阵任意一处沦陷
2C:部队单项属性调整。参数四个。值一表示“部队范围”;值二表示“部队序号”;值四表示属性变化百分比,0~7FFF为正,8000~FFFF为负。
当值三为0时,根据值四调整部队的体力最大值,并且补满部队主将的体力(注意和13项目的区别)。
当值三为1时,根据值四调整部队的攻击力,为2时调整防御力。然而用SW2Editor查看内存会发现,“战场部队”里的攻防实际上不变,只有“部队信息”里的攻防变了。“战场部队”里的攻防不变,意味着敌人与玩家之间的伤害计算、乃至视野内战斗的伤害计算都不受影响。那么只改变“部队信息”里的攻防,也就是值三为1或2的2C项目有什么作用呢?据观察可以影响视野外的战斗。
2D:设定逻辑变量。参数二个。值一表示“逻辑变量序号”;值二表示设定的值,0=False,其它值=True。
2E:去除部队主将所在小队的4个护卫兵。参数一个,表示“部队序号”。对已经存在的部队,2E视野外有效,视野内无效;对隐藏的部队,2E与参数一为1的27或28联合使用可以实现单独一个武将出现的效果。 6666666666 厉害,找了好久可算找到了
6666666666
页:
[1]