大家好!本帖是分享一些个人制作FIFA国家队mod的一些心得和错误日志,主要目的是为了有兴趣制作相关mod的朋友,包括我自己以后有迹可循,方便查找,快速定位问题少走弯路。在此只是一些个人心得,包括与天使之翼大佬、Saike大佬交流探讨发现的一些问题和心得,抛砖引玉,其中难免有错,欢迎各位大佬批评指正。
错误日志分为两个部分,第一部分是编辑赛事结构时,compdata文件编辑容易常见的问题,第二部分是编辑存档squad或数据库DB文件时,容易出错的问题

首先附上编辑赛事结构的英文教程:初学者赛事结构说明教程(英文)[点击下载<<<]

一、新增球队和赛事文件编辑注意事项
1、新增国家队
涉及修改的DB文件包括:teams、teamplayerlinks、teamstadiumlinks、leagueteamlinks、formations、 players、playernames、teamkits、teamnationlinks、default_mentalities default_teamsheets、defaultteamdata、nations(仅合并世预赛使其分组可见需要修改),录入teamplayerlink时,最好将阵容的位置代码由小到大排列,否则生成出来的default_mentalities可能会产生多余的行和内容(不影响使用)。default_mentalities default_teamsheets、defaultteamdata这三个文件主要控制阵容修改和复原,理论上可通过前面的文件自动生成(需进游戏利用编辑模式生成),减小工作量。更新数据库名单时,如需更新冬季转会,还会涉及导入官方最新名单里的fixtures、dcplayernames、playerloans、playerformdiff、previousteam、teamformdiff、ucc、version、rivals、player_grudgelove、bannerplayers这几个文件。

2、新增赛事
目前需要修改的Compdata文件包括advancement、compids、compobj、initteams、schedule、settings、standings、tasks、internationals、preseasontour(仅合并世预赛使其分组可见需要修改)
(1)在修改compobj时,可在友谊赛前后增加赛事,只需在最右的父子关系代码关联到国家或大洲即可,有效减少平移工作量;在修改settings时,记住advance_maxteamsstageref、advance_pointskeep、advance_standingskeep、advance_standingsrank、advance_teamcompdependency、schedule_use_dates_comp、standings_checkrank、rule_suspension、schedule_forcecomp这几个关键字需要同时修改;(2)在修改tasks时,除修改第四列外,FillFromCompTable、UpdateTable、FillFromCompTableBackupLeague、FillFromCompTableBackup还需修改第五列,其中FillFromCompTableBackup第六列也要修改。

二、Compdata常见问题
(一)跳出、闪退
情形一:选择经理模式后马上跳出
原因:Compdata文件里部分文件或全部文件格式有误,比如多了空格、多了空行、多了逗号,导致游戏不能读取文件

情形二:经理模式能选择球队但读取界面跳出
原因一:Compobj里ID未连续或ID间逻辑关系、父子关系代码错误,导致游戏不能正确读取完整赛事
原因二:compobj文本行数超限

在FIFA21里,如果compobj的文本行数超过2040行,会导致经理模式阿根廷联赛跳出,如果行数更多,可能引起更多联赛在读取经理模式时跳出

情形三:能进经理模式但是模拟到特定日期跳出
原因一:Compobj结构问题
1、欧洲区预选赛和欧洲杯预选赛不能直接分组后不加附加赛或后续淘汰赛,必须在小组分组之后继续设置附加赛setup stage和附加赛group stage(只设置其中一个也会跳出),或者设置淘汰赛直到FCE_final Stage,否则会在7月结束跳到8月时跳出
2、亚洲区预选赛分组后不能设置淘汰赛,否则会在7月结束跳到8月时跳出。但可以像欧洲区预选赛一样同时设置附加赛setup stage和附加赛group stage,这样不会跳出
3、赛事不能放在compobj最后面,赛事放到compobj的最后面,会导致这个赛事在他本应开赛的前一个月跳出
4、国家队赛事不能放在compobj友谊赛ID后面,且不能是最后一个国家队赛事,否则会导致模拟到这个国家队赛事的某一轮跳出。 也就是说只要友谊赛后面这个国家队赛事后面还有国家队赛事,它就不会跳出,因为会跳出的是它后面那个最后的国家队赛事。

原因二:schedule冲突
杯赛赛事schedule设置冲突,会导致其他的联赛在5月或8月跳出,冲突联赛冲突日程后的比赛消失,比如6月开赛的大洲内国家队杯赛如果和同一个大洲的联赛日程有冲突,会导致那个联赛在冲突的日程之后的比赛消失,同时导致选择8月开赛其他联赛跳出,包括8月开赛的其他大洲联赛

原因三:其他文件与Comobj逻辑不匹配
如果Compobj里一项赛事本身结构没问题,但是和他关联的其他重要compdata文件,比如settings、advancement、task和它逻辑不匹配(少设置或多设置、错设置),都会导致这个赛事在赛事前的一个月到最后一轮期间任意时刻跳出。比如世界杯预选赛,task没有设置对晋级规则和排名,会导致这个预选赛不能理解最后怎么晋级,导致在模拟到这个赛事最后一轮时跳出。

情形四:经理模式参加季前赛跳出、生涯(球员)模式开档跳出
原因:compobj文本行数超限
在FIFA21里,如果compobj的文本行数超过2025行,会导致经理模式季前赛和生涯模式跳出。这两种跳出都是一个原因,行数超限,导致季前赛不能打,唯一区别是生涯模式开档强制参加季前赛所有跳出不可避免,而经理模式可以跳过季前赛避免跳出。

情形五:自定义锦标赛开档跳出
原因:compobj文本行数超限
在FIFA21里,如果compobj的文本行数超过1995行,会导致锦标赛的自定义杯赛选择32支球队闪退

情形六:游戏主界面选择欧冠、南美解放者杯跳出
原因:compobj里欧冠、解放者杯前置ID与游戏默认不符
欧冠、解放者杯不能改变游戏默认的在Compobj的前置ID,比如欧冠在Compobj里的前置ID是108,不能改动,如果改动,经理模式可以玩,但是要玩主界面的欧冠赛事就会闪退。

(二)赛事消失或乱入
原因一:schedule和同一国家或同一大洲内的赛事冲突
赛事schedule设置冲突,会导致游戏选择一个重要值更高的赛事正常比赛,重要值低的赛事冲突日程后的比赛消失,比如6月开赛的大洲内重要值更高的国家队杯赛如果和同一个大洲的重要值更低的联赛日程有冲突,会导致那个联赛在冲突的日程之后的比赛消失

原因二:其他文件与Compobj逻辑不匹配
如果Compobj里这项赛事本身结构没问题,但是和他关联的其他重要compdata文件,比如settings、advancement、task和它逻辑不匹配(少设置或多设置、错设置),会导致与这个赛事关联的其他赛事消失。比如世界杯预选赛和世界杯的task没有设置对晋级规则和排名,会导致预选赛不能理解最后怎么晋级,导致世界杯消失或无法产生。

原因三:compobj友谊赛前国家队预选赛数量超限
compobj友谊赛前国家队预选赛不能超过一定数量,目前测试是4-5个(具体不明确,也可能和赛事自身的内部代码有关)。友谊赛前世界杯预选赛的比赛可以有欧洲区预选赛、欧洲杯预选赛、亚洲区预选赛、南美区预选赛四个预选赛,如果增加一个,可能会导致增加的那个预选赛和友谊赛赛程重叠(即友谊赛乱入),如果增加两个,预选赛正常,但可能会导致友谊赛消失。

(三)球队消失(赛事存在但是参赛球队全是灰色图标,可以模拟比赛但是比赛结果清一色0:3或3:0)
原因:Compobj里这项赛事本身结构没问题,但是和他关联的advancement球队晋级规则设置有误,导致这个赛事不能理解让哪些球队晋级,导致球队全是灰色图标。

三、database或名单编辑常见问题
(一)经理模式新增国家队球员无故减少
原因:DB文件或者名单文件里的teamplayerlinks、leagueteamlinks存在不连续的artificialkey

(二)新增球队黑白鞋问题
原因:DB或者名单里的players文件,存在游戏不支持的shoetypecode

(三)新增球队光头问题
原因:DB或者名单里的players文件,需将headclasscode由0改为1

(四)新增球队教练光头并穿着默认白色训练T恤
原因:没有在DB或者名单里的manager文件里添加新增球队的教练数据

(五)新增球队进入比赛跳出
原因:DB或者名单里的teamplayerlinks文件里,存在相同ID的首发球员

四、感悟
从12月初以来,深知制作一个FIFA21 MOD不易,特别是涉及到修改compdata文件,其难懂程度和需要bug测试的枯燥度堪比编程,因为没有工具,只能依靠excel手工编辑,费时费力有时编辑到几乎吐血。

我以前主要玩实况,制作实况补丁自用,但是据我目前掌握的信息实况赛事结构不能改动,不能制作出相对真实的世界杯预选赛和其他洲际杯赛的赛事结构,空有100来支国家队,太浪费了。FIFA虽然国家队少,但是可以自己增加,同时提供了编辑赛事结构的文件入口,加上相对多一些的球员和联赛授权,所以总体来说个人觉得还是FIFA更有吸引力一些,一句话:只为热爱!!!

如果有会编程的,又热爱制作补丁的大神,能够制作一款方便修改compdata文件的程序,就更好了~