前言:自FM2010入坑足球经理以来,本人对editor数据库编辑器就颇有兴趣,无奈头几年没怎么开窍加上读书要紧,只会进行数据库编辑和基本规则创建,至于advanced rules,那是什么?中间几年高考、上大学,落下有两三代。去年考研上岸,终于给我近乎无限可支配的时间去研究高级规则,在此基础上,尝试制作了自己的联赛补丁。考虑到中文互联网对高级规则(好像)并没有系统的科普,便打算自告奋勇写下一个菜鸟对高级规则的理解,以期达到抛砖引玉、指明方向的目的。更新速度绝对不保证,毕竟导师的项目还没完成呢。PS:基础部分不会涉及,比如怎么下载editor、怎么创建基本规则、怎么转换高级规则等。

1、高级规则简介

1.1、高级规则是什么
  高级规则Advanced Rules,顾名思义,与基础规则Basic Rules相对,是基础规则的进阶版。基础规则只能实现最基本的联赛架构搭建,很多时候我们需要通过高级规则来实现一些稍复杂的功能。

1.2、准备工作
editor本体+皮肤(提取码:pl6u):因为FM2020原版editor的基佬紫皮肤属实伤眼,故推荐使用这款暗色皮肤,基于原版进行了些修改。使用方法:将Editor 2020文件夹放在Documents\Sports Interactive目录下,与Football Manager 2020同级。PS:为了自己使用方便进行了些许魔改,比如使unique id可复制、去除球队的欧战积分页面,不喜可将Editor 2020\skins\editor\format删除即可。
基本的英文阅读能力:很多同志接触高级规则走了弯路基本可以归咎为翻译词句不达意的问题。建议将editor界面语言调为英文,很多奇怪的语句在原始语境下阅读会更通俗易懂。
就像每个研究生入门科研首先要大量读文献一样,入门高级规则的第一步也是多翻阅他人的规则。建议在论坛和fmscout搜索联赛补丁,对照补丁作者的简介查看规则对应部分。
由于中文互联网对高级规则的探讨比较匮乏,建议在SI足球经理论坛的Editor Hideaway板块寻找答案,点击上面这个链接,遇到什么问题在site:前空一格输入关键词搜索。

2、高级规则组成

2.1、整体结构
  提前说明,在将基础规则转换成高级规则前,尽量将你需要的联赛框架搭建完整,例如球队数量、升降级数量、附加赛形式。本例子中特别复杂的中冠附加赛以及中乙附加赛就先放着不管,基础规则也实现不了,将中乙中冠的升降级名额和中甲的降级名额都设置为0即可。




如上图可见(这里我偷懒直接用现成的规则):高级规则的结构就一列扁平的LIST的子项。第一个子项叫“中国”,它是联赛所在国家的整体设置,主要包括赛季日程、注册规则、上场规则、转会规则;下面一直到“全国青少年足球超级联赛”这一排都是这个国家的所有比赛,包括联赛和杯赛;上面这两项是构成一个国家联赛体系最基本的组成部分。至于最后International Competitions和亚洲国家联赛是这个规则文件要定义的国际比赛规则。



这个界面主要定义子项的类型和比赛模式。红框中:
  • Nation:指定国家内部赛事。
  • Continent:指定大洲内俱乐部赛事(如欧冠亚冠)。
  • International:指定世界性赛事(不分大洲,如亚洲杯世界杯、世俱杯等)。
  • Competition:指定某个具体赛事,比如中超、中甲、足协杯、青超联赛、中乙联赛北赛区等。
  • Parent Competition:指定父级赛事,例如中乙联赛是中乙南北区联赛的父级赛事,这里要么不设置具体的比赛阶段Stage,要么设置子赛事的季后赛或者附加赛。
  • Multiple Competitions:指定一系列相同类型相同级别相同规则的比赛,比如中乙南、北赛区本质是两个除了参赛区域限制不同之外完全一样的比赛,这里可以用这个类型把他们归类到一起,避免赛事列表的冗长(试想下中冠联赛分为几十个省级联赛,分开设置的话滚轮要滚半天)。
  • Versus Rules:爷也⑧懂。

PS:在这里我勾选了editor左下角的Filter-Active Fields Only,它将只显示你自定义的项目,隐藏其他,使编辑界面更紧凑简洁,也更适合参阅。

2.2、国家




Nation:这一页分别定义了所在国、基准年份、赛季更新日和联赛等级。
  • Base Year:基准年份,一般默认为2000,后面设置比赛日期时的年份一般也填2000。2000并不特指某年,它代表了游戏发售年份,比如FM2020于2019发售,editor里设置的2000指的是游戏里的2019。遇到填日期时一般会有年月日三项外加一个下拉菜单选择对应的星期几,如下图,将日期设置为1月31日,左侧菜单可选Monday和横杠:选择Mon,游戏内的时间由具体的星期几和日期共同确定,规则是距离2019年1月31日最近的星期一,即2019年1月28日星期一;选择横杠,游戏内的时间为具体的日期,1月31日就是1月31日。填写日期栏的年份时记住,如果是去年(2018)的日期,填1999;如果是今年(2019),填2000,依此类推。

  • Seson Update Day:赛季更新日,指该国所有比赛进入全新赛季的分界线,五大联赛这类跨年联赛的更新日一般是6月下旬,中国联赛这类不跨年联赛一般为12月中下旬,这个貌似没有特别严格的规定,也许是研究不到位。
  • Division Levels:指定各级别联赛的等级及其子联赛数量;联赛等级从0开始,级别越低数字越大,中超=0、中甲=1、中乙=2、中冠=3;子联赛类比就是中乙联赛包含两个子联赛:中乙北赛区和南赛区,所以这里的数字是2。


Required Teams:这一页定义了该国所有比赛所需要的所有球队,例如中超需要18队,中乙南北赛区各需16队,省级联赛所需球队数量不等,设保险数字2打底。



Competitions:这一页指定了该国所需要创建的比赛,包括联赛和杯赛。需注意预备队联赛和U19联赛不在此定义,而是在下面的Reserve Rules中指定。



Reserve Rules:此部分定义了预备队/B队/Ⅱ队和U23/U19/U18等下级球队。
  • Reserve Teams To Create:指定需要使用的下级球队类型,这里我模仿现实,预备队和U19。
  • Reserve Team Type:指定了预备队只有在需要时才存在,比如中超中甲有预备队联赛,中乙没有,所以游戏中乙球队没有预备队。
  • U19 Team Type:和上条一样,指定了只有有资格参加青年队比赛的球队才有青年队,比如青超联赛覆盖了中超到中乙,这三级别球队都有青年队,而中冠球队没有。PS:后面这两栏纯粹是自己为了电脑性能考虑,把低级别球队的预备队和青年队禁用。


接下来是指定具体的预备队/青年队比赛形式,如图红框里可选五种类型比赛,类型不同,下面的具体设置不一样,这里简要说明即可:
Use teams from division:使用指定级别联赛球队的预备队/青年队,在不打算仔细设置比赛规则的时候用,简单粗暴。
Regional divisions Local Regions 差不多,都是分区域进行比赛,前者是大区域,后者根据当地地区分,简单粗暴。
Mirror main division:直接复制一线队联赛赛程,最贴切的是现实中的中超中甲预备队联赛,预备队之间的对阵赛程完全由一线队赛程决定,无任何独立性,简单粗暴。
Custom xml:高级的预备队/青年队比赛设置,和其他比赛一样在后面自定义,花样繁多,可以自定义赛制,做成完全独立于一线队带有升降级机制的赛事。


Fixture Rules:指定各项赛事的报名注册、大名单替补名单规则以及财政公平规则。Rules后面带的那个数字会在后面自定义比赛时用填,注意到时不要留空。这一项并不在我讲解计划里面,一来我自己对此理解还不够深,二来实在是太多,初学阶段一般嫌麻烦无需理会,直接复制现成的即可,如果了解不多慎重改动,这里是最容易导致验证报错的地方之一。PS:editor的复制粘贴功能是个神器,必须掌握。

Discipline Rules:指定红黄牌惩罚规则,和上一项一样需要在后面自定义比赛时填对应的index。直接复制粘贴官方规则的即可。

Season Periods(New System) 和 Mid-Season Breaks :分别指定了各项赛事的起始时间范围和间歇期范围,起始范围务必包含对应赛事的所有时间点。




Start Dates:指定首次进入游戏的日期,这一项我一般随便设置一个初始日,注意在这个补丁中初始赛季是2020赛季,所以Year Offset年份偏离值设置为1,即FM2020默认年份2019的基础上+1=2020。

National Service:FM2019加入的可编辑特性,可以实现诸如韩国的尚州尚武、中国的集训队这类强制性服兵役性质球队,实现方式是强制无条件租界符合要求的球员固定年数。这一项目非常有意思,我可以用它实现一支港澳台球员组成的球队参加中国联赛,也可以实现体育总局的愿望:U19国青队参加中乙···

Transfers:定义转会窗口和租界的相关规则,这一项也不打算讲,原因同Fixture Rules。只需知道这一项和Fixture Rules的联系十分紧密,自己去摸索吧,我也在苦苦研究中。

2.3、赛事规则


这是任何一个比赛规则的设置项目,可自定义部分非常冗杂,好在FM2020开始就分大类归类成如图所示的子栏目,须知在FM2020前的editor,几乎所有项目杂乱无章地堆放在各处,找起来异常麻烦。现在好了,知道上述子项分别是什么就行。
  • General:主要是该赛事的生效年份以及指定Fixture Rules 和 Discipline Rules。
  • Stage:核心中的核心,用来定义赛事的各个阶段运行规则。
  • Other Stage Rules:主要是用来添加历史记录。
  • Fixture Times and Rules:设置赛程时间相关。推荐在其下的子项Fixture Dates那里设定该赛事每个阶段每个关键时间点,比如比赛开始结束日期、间歇期、赛事安排日期、杯赛轮次日期等,这样后续调整赛程时会很清晰直观,如图:


这样在具体阶段Stage里面就无需填写任何日期,只需定向到这里即可。后续会有详细说明。
  • Child Competitions/Regional Rules:为子联赛设置区域限制,当然还要配合其他操作。注意分组比赛的区域限制不是在这里设置。
  • Promotion/Relegation:主要为了设置B队/Ⅱ队的升降级限制。要限制某球队的升/降级,还是需要到Stage下的League Settings设定。
  • Discipline:定义该项赛事的公平竞赛奖励和单场比赛违反公平竞赛罚款。
  • Players:一些球员参赛规则的杂项,比如奖励U23出场、全明星赛事挑选球员规则、杯赛参赛人员限制(必须有多少名在前面多少场比赛中出场的球员,为了防止某些球队水比赛)、规定赢得奖牌要求出场次数之类。
  • Teams:指定赛事参赛球队。这部分感觉和Stage里的Teams重合部分挺大,不太理解专门分出这一项的目的。实际运用中感觉更多是作为初始年份参赛球队的一些设置。
  • Money:基本上就是所有和钱有关的东西,比如电视转播费规则、低级别球队参赛补助、门票分成等。联赛排名和杯赛轮次奖金要在Stage下设置。
  • Stadium Rules:用来指定中立球场的挑选规则。
  • Ranking Rules:实际作用不明显,无需理会。
  • History:对应游戏中比赛历史记录那一栏,包括设定要不要记录第三名、要不要记录决赛场地,一般作用于杯赛。

3、具体案例分析
这里开始我打算以自己刚刚完成的中国四级联赛补丁为例讲解一些高级规则的关键点,希望通过阅读,各位同志能对这玩艺初步领悟。PS:补丁远远称不上完美,但我的本意是抛砖引玉,能带给诸位初学者思路即可,同时望大神们不吝指教。

3.1、中乙联赛案例分析
3.1.1、规则简介:
赛事分为南、北两个大区,每赛区16队参赛,主客场双循环。
赛季分为常规赛、升级组以及降级组三个阶段。
升级组:南北两赛区冠军直接参加升级赛半决赛;亚军和季军参加升级赛四分之一决赛,对阵规则为南区第二vs北区第三、南区第三vs北区第二;四分之一决赛的胜者分别和两个赛区冠军进行半决赛;半决赛胜者直接晋级中甲联赛并进行最终决赛决出中乙联赛冠、亚军;半决赛负者进入三四名决赛争夺季军,季军直接晋级中甲联赛,第4名与中甲第15名进行主客场附加赛决定升降级;升级赛为单场赛会制,统一集中在中乙联赛参赛球队随机东道主场举行。
降级组:南北两赛区第16名直接降级中冠联赛省级预赛;南北两赛区第15名先进行主客场附加赛,负者直接降级中冠联赛省级预赛,胜者与中冠联赛第4名进行主客场附加赛决定升降级。
中乙联赛降级球队直接获得下赛季中冠联赛参赛资格。
3.1.2、常规赛设置:






这一页控制的是该阶段结束后球队的命运,是升级、降级、升级附加赛、降级附加赛还是参加别的什么赛事。

南北两赛区冠军直接参加升级赛半决赛


如图1,因为常规赛阶段无直接升级的球队,故红框里第一栏升级到中甲联赛的席位数量填0;红框第二栏参加升级附加赛Top Playoff的席位数量填1,指向中乙联赛Stage Index阶段1(本阶段Stage Index为0)的升级组的半决赛阶段。

亚军和季军参加升级赛四分之一决赛

如图2,在Qualification Rules分别填写顶端位置1到底端位置2,指向中乙联赛阶段1的升级组的四分之一决赛阶段。顶端位置和底端位置表示选取这个区间内的球队作为晋级者,1和2实际上对应的是第2名和第3名,因为第1名是0。
南北两赛区第15名先进行主客场附加赛

如图1,蓝框第二栏填写直接降级中冠联赛的席位数量为1,表示除去直接降级球队外的最后一位;蓝框第一栏参加降级附加赛Bottom Playoff的席位数量填1,指向中乙联赛阶段2的降级组的第一轮阶段。

胜者与中冠联赛第4名进行主客场附加赛决定升降级


如图3,在涉及到与下一级别球队升降级附加赛的情况下,一定要设置红框所示内容,它表示跳过中冠联赛前3名球队后,有1支中冠球队参与到与1支中乙联赛球队的附加赛中,它们将决出1个胜者已决定升降级。

3.1.3、升级组设置:
3.1.4、降级组设置:
3.1.5、其他设置:
(责任编辑:远平)