
今天内容稍微复杂一点,但依旧很简单
这次介绍的是Adjacencies,它主要内容是修改province之间的连接,可以用它来制作不可通行线以及运河、海峡(KR的撒哈拉铁路也是通过这个实现的)
讲Adjacencies之前先看一下简单的不可进入省份和非军事区是怎么设置的吧
不可进入省份/非军事区设置
还是打开nudge,选择state模式,找到你想设置为不可进入区的state,点击其中任意一个province,右下角打开open file打开该state文件

你也可以去钢丝本体文件里复制过来,用nudge的好处就是nudge会在文档目录下给你生成一个新的,不用去本体文件一个个找(尬吹ing)
在state文件下加上这行


可以看见整个state就被设置为不可通行了
如果有多个不可通行state相邻就会把不可通行线连一起,像这样

非军事区同理,不过换成下面这个代码

注意非军事区的代码写在state下history里,不可进入代码直接写state下面
这俩作用相同,唯一区别在非军事区可以在国策、事件等的取消,具体参考德国国策“进军莱茵兰”,而不可通行是不能更改的,除非你把那行代码删了
设置不可通行线聪明的你可能注意到了,以上两个操作都是在state下进行的,但想要像原版一样指定某一段不可通行(喜马拉雅山,阿富汗走廊)需要怎么实现呢
这就需要用到Adjacencies,通常相邻相同类型的province彼此连接,陆地地格和陆地地格相连,海洋地格和海洋地格相连,如果需要人为禁止一些地格连接或者让一些相近的岛屿、海峡可以彼此通过,就需要修改Adjacencies
首先在原版本体文件,map文件夹下把这俩复制到文档目录

还是这个熟悉的位置
用文本编辑软件打开adjacencies.csv(不要用Excel,可能使某些字符变成乱码)
adjacencies遵循下面的书写格式

黄色标注部分控制连接线图像位置,没什么特殊需求就填-1
province A和province B是要修改连接的两个province
类型,写修改后的连接状态
主要有impassable(不可通过)、sea(跨海域)、river/large_river(跨河流)
途径province,指连接规则中,两个非相邻province之间,跨越的province(通常是海域)当途径province被封锁时(如这个格子被敌方占或者海域中有敌方舰队),这条连接规则不可用
如果两个province相邻,则这一栏为-1
邻接规则,填入设定的邻接规则id(后文会讲),如果没有则这一栏为空(直接打一个分号)
注释,可以标注一下这条adjacencies的其他信息,提醒你为什么要写这条,这一栏为选填

下面各举例一列设置不可通行线和岛屿连线的例子
不可通行线
首先是不可通行线,添加在巴拿马边境达里恩沼泽,打开地图找到相邻province的id

然后根据上文的格式,在adjacencies.csv中下加一行

注意,adjacencies文件中必须以这一行做结尾,你可以像这样加入你的修改

后续有新增的部分请写在红色方框一行的上方

进入游戏就可以看见修改生效了
你可以将一个province和多个province间都设为不可通行,就像下面一样

这一段是安第斯山脉

陆地连接线
然后是陆地连接线,像这样写

7630和10864之间会创建一个路径将它们连接,途径的海域地格是2547

注,当你新建了一个陆地或海域连接线时,务必记得创建新的单位运行动画
进入nudge,右上角切换units模式,左键点击设定连接线的province,为连接的两个province创建新的单位移动的动画

当然你也可以一个一个province慢慢修改,这里用最简便的自动生成,点击Auto in All生成动画后,点击Save保存,nudge会在文档下生成一个单位动画文件

unitstacks就是生成的文件
运河和海峡
如果你要规定,不同条件下可以有选择地允许/禁止不同的单位(军队,舰队,运输船)使用某条adjacencies,你需要用到adjacency_rules
先来看一下海峡/跨海通道,首先在adjacencies中写一条普通的陆地连接线

3379和6350是陆地province,8340则是经过的海域province
在“邻接规则”一栏,写入要启用adjacency_rules的ID
然后去adjacency_rules.txt中定义这条规则

name,规则id,可以在本地化中汉化
下面四个栏目下分别为四个不同状态下,军队,舰队,潜艇,运输船的允许/禁止通过设定
contested,争夺状态(52译为战争状态),控制国与本国共同控制了一部分完全控制需要的province
enemy,敌对状态,控制国与本国处于交战状态
friend,友好状态,控制国为本国/控制国与本国同一阵营/本国有控制国的军通
neutral,中立状态,默认为这个状态
required_provinces,完全控制需要的province
icon,图标位置(一般为海峡某一端,你也可以将它放到任意一个provinces哪怕它不在required_provinces当中)
offset,通过时速度修正,分别为军队,舰队,潜艇
is_disabled,满足条件时禁用这条adjacencies,格式为条件+tooltip(提示文本)

记得设置units动画

然后去本地化规则id和相关的提示

进入游戏就可以看见了

但是要注意的是,如果海峡之间相距的海域超过了一个province,邻接规则将会失效并且变为普通的adjacencies,只保留两岸的连接线而不能控制是否启用(例如英吉利海峡),想要解决这个问题你需要将海峡两岸的province合并为一个
province的细化我之后会出,保证不咕

你还可以通过邻接规则将两片海域跨过一系列的陆地province连接,类似现实中的运河,在adjacencies中写一条海域连接线,两个province都是海域,途径运河的中途处(可以为陆地但不能写-1)

然后将禁用条件前加not,变为需要满足条件才启用,如下

设置units动画(重要的事情说三遍)

本地化相应的提示

进入游戏就可以看见了

通过决议拓建南运河后,这条adjacencies被启用,法兰西舰队可以从地中海直接到大西洋了

其他应用
adjacencies还可以写通过-1,将一些相距很远的province强行连接起来
可以帮你实现各种世纪大工程
例如撒哈拉大铁路

还是一样,先写adjacencies

注意,此时adjacencies类型为空
下面是相应的邻接规则

记得更新动画,这里略过了!

通过决议set global flag后

然后将文档下map文件放你mod目录下(那个熟悉的路径就不用再强调了吧)

关于“特殊规则”的一些建议以下摘自KR组在adjacency_rules下写的一些注释
我们将特殊规则分为以下4类,从最大限度开放到最小程度开放,
大海峡,争夺状态或敌对状态,只允许潜艇通过,友好状态或中立状态,允许一切通过
小海峡,禁止敌对状态下一切通过,如果处于争夺状态则潜艇可以通过,友好状态或中立状态,允许一切通过
有特殊规则的运河,禁止争夺状态或敌对状态下一切通过,友好状态或中立状态,允许一切通过
普通的运河,禁止争夺状态或敌对状态下一切通过,中立状态下只允许运输船通过,友好状态,允许一切通过

至此本期的内容就全部结束了

接下来更新的内容会以province为主,难度会一天天变大,bug也会更加难修
(抓紧了,坐稳了)
依旧是看心情更新