战地资源网

 找回密码
 立即加入
搜索
查看: 21507|回复: 15

關於如何更改戰地2_AIX2 Reality4.5模組人數上限且平衡的方法

[复制链接]

1

主题

19

回帖

75

积分

上等兵

发表于 2019-11-12 22:28:41 | 显示全部楼层 |阅读模式
赞助bfmil
本帖最后由 sagaswbf2 于 2019-11-12 22:30 编辑

有夥伴不知道這個AIX2 Reality4.5模組的人數爲什麽調了ai文件夾中的aidefault.ai文件后人數不生效,要麽就是對面只有24個,我們這邊多得多,
這個原因很簡單,因爲這個模組的每張地圖裏面,作者爲了測試的平衡性,當時寫了些代碼進去,下面這個圖是作者當時在moddb發佈模組的時候在summary頁面寫下的如何更改人數限制的方法:

懶得自己翻譯了,機翻的情況是這樣的:
  1. 确切地说,如何更改地图上的机器人数量?

  2. -首先,如果你想按设计播放地图,你需要使用默认的嵌入式设置。更改它可能会破坏游戏性-在每个地图上进行数百次测试后进行调整。你真正能改变的是票号,因为在CP capture中添加了票号丢失后,它需要一些修正。

  3. 但是,如果你真的需要改变机器人的数量(你想学习地图/战术,或者这对你来说太难),那么AIX2 Reality有两种方法来调整机器人的比例。

  4. 默认情况下,AIDFultAAI中定义的BOT的最大数量为58:AISETTIN .SETMAXNBOTS 58

  5. 有些地图将其作为机器人程序的默认数目,使用这种方式的标志是in it*.con中缺少ai.*字符串。

  6. 那么,让我们来看看龙谷64:

  7. sv.coopBotCount 22号

  8. sv.合作办公室80

  9. 团队运营100 sv

  10. 100号地下室

  11. 这意味着第一组(ch)将有22个机器人,第二组(nl)将有58-22=36个机器人。很简单。

  12. 另一个例子,大连16厂。

  13. 在这样的小地图上,我们不需要整群58个机器人,所以我们需要重新定义最大数量:

  14. aiSettings.覆盖设置1

  15. aiSettings.setMaxNBots 11条

  16. aiSettings.setBotSkill 0.9级

  17. aiSettings.maxbots包括人类0

  18. sv.自动平衡梁0

  19. 团队运营100 sv

  20. 100号地下室

  21. sv.coopBotCount 6号

  22. 因此,在这种情况下,机器人的最大数量是第一组的十一-六,第二组的五。

  23. 请记住,在in it文件中定义的maxnbot有一个硬限制,通常是接近44。所以如果你在加载后有一个CTD,试着降低这个数字。

  24. -我发现了一只bug!

  25. -欢迎写报告。如果是CTD,请在窗口模式下运行,看看是否会弹出任何错误。这对我真的很有帮助。
复制代码
然後我去實踐的具體情況如下,以著名的island2007地圖為演示>>>>>>>>
1,我的電腦下找到該地圖的路徑,E:\battlefield2\mods\aix2_reality\Levels\Wake_Island_2007\
進去后打開serve壓縮包,不要解壓,直接打開它就行E:\battlefield2\mods\aix2_reality\Levels\Wake_Island_2007\server.zip
你會發現這樣一些文件名:

2,找到裏面的init.con這個文件,用記事本打開它或者其他編程軟件都行(有些文件時init16.con,init32.con分別表示在16人,32人不同規模地圖下的地圖初始化數據,你需要就改,不需要可以直接改init.con就行)
找到裏面的這几行代碼:
  1. sv.autoBalanceTeam 0
  2. sv.teamRatioPercent 100
  3. sv.coopBotRatio        100
  4. sv.coopBotCount 24
  5. sv.coopBotDifficulty 80
  6. sv.ticketRatio 300
  7. sv.timeLimit 3600
复制代码
其中,我們主要更改的代碼是sv.coopBotCount,原來是24,你每次開地圖,即使改了aidefault.ai裏面的bot數代碼,在這個init.con文件夾下也會被重新定義敵對邊的最大人數24,
所以,我將它修改為54,然後aidefault.ai文件中的最大人數設置為aiSettings.setMaxNBots 96,這樣的話,每次開局,系統地圖另一半默認人數為48,你這邊的人數為96-48=48人,就不會出現原來的你這邊有96-24=92人,
對面只有24人的情況了,這就是修改方法
sv.autoBalanceTeam 0
sv.teamRatioPercent 100
sv.coopBotRatio        100
sv.coopBotCount   48
sv.coopBotDifficulty 80
sv.ticketRatio 300
sv.timeLimit 3600




--------------------------------
當然,事情還沒有完,我更改代碼后去玩游戲,這張地圖倒是沒有事了,有些地圖改了卻有bug,人數依舊不平衡,這是爲什麽呢?
因爲有些地圖裏面,作者測試游戲的結束的時候沒有把代碼刪除乾净,出現了下面這些代碼
  1. aiSettings.overrideMenuSettings 1
  2. aiSettings.setMaxNBots 44
  3. aiSettings.setBotSkill 0.8
  4. aiSettings.maxBotsIncludeHumans 0


  5. sv.autoBalanceTeam 0
  6. sv.teamRatioPercent 100
  7. sv.coopBotRatio        100
  8. sv.coopBotCount 48
  9. sv.coopBotDifficulty 80
  10. sv.ticketRatio 300
  11. sv.timeLimit 3600
复制代码
這裏主要是把前4行代碼注釋掉就行,因爲它們是在加載地圖的時候才生效,導致重新定義了aidefault.ai文件,所以這個地方我們把他們注釋掉,寫成這樣或者直接刪除:
  1. rem aiSettings.overrideMenuSettings 1
  2. rem aiSettings.setMaxNBots 44
  3. rem aiSettings.setBotSkill 0.8
  4. rem aiSettings.maxBotsIncludeHumans 0
复制代码
就不會影響我們在E:\battlefield2\mods\aix2_reality\ai\文件夾下對aidefault.ai文件數據的定義,從而地圖人數兩邊都是48人,就平衡了。
當然,每張地圖你都得自己去改這些數據,作者幾乎都沒刪除完,爲了防止游戲内存溢出,建議兩邊最多各是54人以下。

最後提一個有些朋友沒有解決的bug,就是關於占領旗子的時候,旗子降落后升起我方旗幟時,地圖數據不刷新,旗幟升不上去的問題,這是因爲前幾次打游戲會有内存Bug,所以出現這種情況,請推出游戲服務器或者直接退出游戲后在進來開局域網模式玩,我前幾次也是内存溢出的,但是看了作者的解答后就明白怎麽回事了,後面幾乎沒有這樣的問題產生了。
作者原話如下:
  1. - I have no flags/some icons on map
  2. - This is the common bug, due to the memory bug caused by the high number of icons. Nothing to do here - just restart the client
复制代码
作者原鏈接解答各種bug問題的地址如下:
https://www.moddb.com/mods/aix2-reality-battlefield-2-coop-mod

新人第一次發帖,頂一下唄!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即加入

x
回复

使用道具 举报

1

主题

13

回帖

118

积分

下士

发表于 2019-11-13 11:50:46 | 显示全部楼层
请教把每局地图游戏时间的一小时,修改为更高或者取消限制时间的方法,不知道作者搞这个功能是出于什么目的,好好的打完一局不好吗?非搞个什么倒计时!
回复

使用道具 举报

1

主题

19

回帖

75

积分

上等兵

 楼主| 发表于 2019-11-13 12:55:36 | 显示全部楼层
Liuy007 发表于 2019-11-13 11:50
请教把每局地图游戏时间的一小时,修改为更高或者取消限制时间的方法,不知道作者搞这个功能是出于什么目的 ...

好得,这个模组双方分数也不平衡,有几行码要改,我晚上发方法
回复

使用道具 举报

1

主题

19

回帖

75

积分

上等兵

 楼主| 发表于 2019-11-13 13:39:21 | 显示全部楼层
Liuy007 发表于 2019-11-13 11:50
请教把每局地图游戏时间的一小时,修改为更高或者取消限制时间的方法,不知道作者搞这个功能是出于什么目的 ...

在每个地图文件夹下的server.zip下的init.con文件里面
有sv.timeLimit 3600这是关于时间设定的代码,3600表示60秒*60分钟等于一个小时的秒数,和游戏内限定时间相符。

在server.zip下的init.con文件里面,更改3600为更大可以增加游戏时间,至于取消时间限制,我还没测试,应该不复杂。特别警告,如果怕更改代码后游戏出现问题,请提前备份server.zip文件(至少我的游戏目前没崩溃过,我有一个100G的模组合集备份)

如果需要批量更改就需要一个启动脚本,但是这样我怕模组出问题,一般都是进去每张地图下进行文件更改的,然后以后就稳定了,无需更改。

作者设计3600秒为一局战斗时间的初衷可能是因为这是用来局域网或者服务器联机的mod,类似pr模组,如果双方兵力值太大,而且玩家不正面刚的话,躲躲藏藏的,会导致一局游戏打好几小时,导致服务器压力过大以及玩家玩性乏味,至于修改时间的代码就是sv.timeLimit
回复

使用道具 举报

0

主题

17

回帖

688

积分

中校

八一勋章

发表于 2019-11-13 18:23:45 | 显示全部楼层
游戏中的pf98和标枪可以鼠标右键瞄准锁定却无法左键发射,大佬知道是什么问题吗?
回复

使用道具 举报

1

主题

19

回帖

75

积分

上等兵

 楼主| 发表于 2019-11-13 23:26:47 | 显示全部楼层
bf红星 发表于 2019-11-13 18:23
游戏中的pf98和标枪可以鼠标右键瞄准锁定却无法左键发射,大佬知道是什么问题吗? ...

这个问题我目前没遇到,一般对局都是用单兵火箭筒的,没有bug,pf98我还没有用过,明天我去尝试下如果遇到这个bug,国外应该很早提出了解决方案,找到的话我去翻译过来
回复

使用道具 举报

0

主题

17

回帖

688

积分

中校

八一勋章

发表于 2019-11-14 16:55:14 | 显示全部楼层
sagaswbf2 发表于 2019-11-13 23:26
这个问题我目前没遇到,一般对局都是用单兵火箭筒的,没有bug,pf98我还没有用过,明天我去尝试下如果遇 ...

问题解决了,这mod里pf98是可制导的导弹而不是无后坐力炮
回复

使用道具 举报

1

主题

13

回帖

118

积分

下士

发表于 2019-11-14 20:06:04 | 显示全部楼层
模组是好模组,而且是少见的硬核模组,代入感强,也很耐玩!(个人更喜欢拟真模组而不是一味的突突突)但是有部分履带车辆在移动中存在轮子不转动的BUG,有点出戏,希望作者能修复。
回复

使用道具 举报

1

主题

13

回帖

118

积分

下士

发表于 2019-11-14 20:08:01 | 显示全部楼层
sagaswbf2 发表于 2019-11-13 13:39
在每个地图文件夹下的server.zip下的init.con文件里面
有sv.timeLimit 3600这是关于时间设定的代码,3600 ...

感谢!但是在看到大神的回复前我已经试出来了,但还是要多感谢!毕竟现在愿意解答问题的人是少之又少了!
回复

使用道具 举报

1

主题

19

回帖

75

积分

上等兵

 楼主| 发表于 2019-11-15 22:51:27 | 显示全部楼层
bf红星 发表于 2019-11-14 16:55
问题解决了,这mod里pf98是可制导的导弹而不是无后坐力炮

好哒,我昨天游戏崩溃了,因为加了特效导致指针异常,系统盘出问题不得不重装电脑系统,好多环境我在配置,没上线论坛,今天才把游戏安稳下来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

Archiver|小黑屋|bfmil ( 拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,会员帖子系会员发表,并不代表本站立场! )

GMT+8, 2024-11-21 20:42 , Processed in 0.116551 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表