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

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

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

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

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

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

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

但是,如果你真的需要改变机器人的数值,那这里有两个方法去调整AIX2 Reality 的机器人参数

The maximum number of bots defined in aidefault.ai - it is 58 by default: aiSettings.setMaxNBots 58
Some maps is it as the default number of bots, the signs of using this way is the missing ai.* strings in Init*.con.
So, lets take a look at Dragon Valley 64:
sv.coopBotCount 22
sv.coopBotDifficulty 80
sv.teamRatioPercent 100
sv.coopBotRatio 100
Then it means that the first team (ch) will have 22 bots, and the second (nl) will have 58-22=36 bots. Very simple.

Another example, Dalian Plant 16.
We don't need whole bunch of 58 bots on such small map, so we need to redefine the maximum number:
aiSettings.overrideMenuSettings 1
aiSettings.setMaxNBots 11
aiSettings.setBotSkill 0.9
aiSettings.maxBotsIncludeHumans 0

sv.autoBalanceTeam 0
sv.teamRatioPercent 100
sv.coopBotRatio 100
sv.coopBotCount 6

So, in this case the maximum number of bots is eleven - six for the first team, and five for the second.

-我发现了一只bug!

-欢迎写报告。如果是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就行)
找到裏面的這几行代碼:

sv.autoBalanceTeam 0
sv.teamRatioPercent 100
sv.coopBotRatio        100
sv.coopBotCount 24
sv.coopBotDifficulty 80
sv.ticketRatio 300
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,人數依舊不平衡,這是爲什麽呢?
因爲有些地圖裏面,作者測試游戲的結束的時候沒有把代碼刪除乾净,出現了下面這些代碼

aiSettings.overrideMenuSettings 1
aiSettings.setMaxNBots 44
aiSettings.setBotSkill 0.8
aiSettings.maxBotsIncludeHumans 0


sv.autoBalanceTeam 0
sv.teamRatioPercent 100
sv.coopBotRatio        100
sv.coopBotCount 48
sv.coopBotDifficulty 80
sv.ticketRatio 300
sv.timeLimit 3600

复制代码
這裏主要是把前4行代碼注釋掉就行,因爲它們是在加載地圖的時候才生效,導致重新定義了aidefault.ai文件,所以這個地方我們把他們注釋掉,寫成這樣或者直接刪除:

rem aiSettings.overrideMenuSettings 1
rem aiSettings.setMaxNBots 44
rem aiSettings.setBotSkill 0.8
rem aiSettings.maxBotsIncludeHumans 0

复制代码
就不會影響我們在E:\battlefield2\mods\aix2_reality\ai\文件夾下對aidefault.ai文件數據的定義,從而地圖人數兩邊都是48人,就平衡了。
當然,每張地圖你都得自己去改這些數據,作者幾乎都沒刪除完,爲了防止游戲内存溢出,建議兩邊最多各是54人以下。

最後提一個有些朋友沒有解決的bug,就是關於占領旗子的時候,旗子降落后升起我方旗幟時,地圖數據不刷新,旗幟升不上去的問題,這是因爲前幾次打游戲會有内存Bug,所以出現這種情況,請推出游戲服務器或者直接退出游戲后在進來開局域網模式玩,我前幾次也是内存溢出的,但是看了作者的解答后就明白怎麽回事了,後面幾乎沒有這樣的問題產生了。


作者原話如下:

  • I have no flags/some icons on map
  • 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
上一篇:MySQL批量SQL插入性能优化


下一篇:iOS 文件下载与查看