菜鸟随心所欲打造属于自己的战地!!《转贴》

遥望汉唐 收藏 2 540
导读:战地系列游戏在本人看来是最为成功的第一人称射击游戏,它丰富的战争场景、繁多的兵器装备、逼真的特效。。。都使人流连忘返,但是作为一个菜鸟,你是否为了不能升级解枪而烦恼,是否还没有虐够BOT游戏就结束了?现在只要你看看这个帖子,相信经过几次修改之后任何人都能够打造出属于自己独一无二的战地。PS:修改之前记得备份哦,如果修改错误不能运行游戏那就太遗憾了。

战地系列游戏在本人看来是最为成功的第一人称射击游戏,它丰富的战争场景、繁多的兵器装备、逼真的特效。。。都使人流连忘返,但是作为一个菜鸟,你是否为了不能升级解枪而烦恼,是否还没有虐够BOT游戏就结束了?现在只要你看看这个帖子,相信经过几次修改之后任何人都能够打造出属于自己独一无二的战地。PS:修改之前记得备份哦,如果修改错误不能运行游戏那就太遗憾了。

修改前奏

BF2的文档文件主要有*.py、*.con和*.tweak三种,都可以直接用Windows自带的记事本打开并修改。

大部分文档文件都是在ZIP文件里,需要用WinRAR打开。

在修改之前,一定要取消所有文档文件、ZIP文件的只读属性。

ZIP文件内的文档若仍无法存储,可先存到其它地方,然后复制进去。

这里说的安装目录,是指你的BF2.exe所在的文件夹目录,例如D:\Program Files\EA Games\Battlefield 2文件夹里有BF2.exe,那么D:\Program Files\EA Games\Battlefield 2就是你的安装目录。

备份教程

由于BF2在联网游戏时要检验各文件的MD5,因此备份就不能简简单单地复制一下。把修改的文件做成模组形式无疑是最好的选择。

首先打开[安装目录]\mods文件夹,新建一个文件夹,名称随便(例如mymod,下同)。

接着打开bf2文件夹,复制你要修改的文件。

例如,如果要修改object_server.zip,那么就复制bf2目录下的object_server.zip到mymod目录下;如果要修改AI文件,那么复制bf2目录下的AI文件夹到mymod目录下;如果要修改大庆地图,那么复制mods\bf2\levels\daqing_oilfields文件夹到mods\mymod\levels\daqing_oilfields(没有的话自己建),如果不需要修改client.zip,可以在复制后将其删除。

但是如果你要修改一个模组,比如特种部队,那么你就要整个复制模组文件夹。

有单机模组的可以直接修改单机模组里的文件,因为没人会用单机模组联网对战。

接下来就开始修改mymod目录下的文件吧。

如果你的硬盘空间不是很多,可以在修改完object_server.zip后看一看,假如你只修改了武器属性,那么打开修改后的object_server.zip,删除除Weapons文件夹外其它的文件夹,可以大大减少文件所占空间。(mymod根目录下所有的*.zip文件都可这么做,但是地图文件就算了)

复制bf2目录下的bf2.mew、ClientArchives.con、GameLogicInit.con、Ingame.mep、Init.con、Mod.desc、ServerArchives.con到mymod目录下,然后开始修改mymod目录下的这些文件:

修改bf2.mew文件名为mymod.mew;

用记事本打开ClientArchives,复制整个内容,然后在最后一行再空一行后面,粘贴,在后面的几行“mountArchive”后面的空格后添加“mods/bf2/”(没有引号),连起来就是fileManager.mountArchive mods/bf2/Objects_client.zip Objects,然后保存、退出;

ServerArchives.con也是这个改法;

Mod.desc也可以用记事本修改,当然不改也无所谓。

最后回到你的游戏目录,建一个BF2.exe的快捷方式,更名为mymod,然后右键——属性,在目标一栏的末尾空一个格加上“+modPath mods/mymod”,点确定退出。

运行新建的快捷方式进入游戏看看吧!

计分规则修改

用记事本打开mods\bf2\python\game\scoringCommon.py

然后就能看到了

SCORE_KILL = 2 —— 杀1个人的得分;

SCORE_TEAMKILL = -4 —— 杀一个队友的得分;

SCORE_SUICIDE = -2 —— 自杀的得分

SCORE_REVIVE = 2 —— 救起队友的得分

SCORE_TEAMDAMAGE = -2 —— 伤害队友的得分

SCORE_TEAMVEHICLEDAMAGE = -1 —— 伤害队友车辆的得分

SCORE_DESTROYREMOTECONTROLLED = 1 —— 不知道,看英文好像是摧毁敌方无人侦察机的得分

SCORE_KILLASSIST_DRIVER = 1 —— 压死人的得分

SCORE_KILLASSIST_PASSENGER = 0 —— 压死人车上其他人的得分??不知道

SCORE_KILLASSIST_TARGETER = 1 —— 靶子?更没听说过

SCORE_KILLASSIST_DAMAGE = 1 —— 对地方造成伤害得分

下面好像就是加分或者减分的极限了,有兴趣的可以自己研究,可能对兵力值调9999的人有用。

REPAIR_POINT_LIMIT = 100

HEAL_POINT_LIMIT = 100

GIVEAMMO_POINT_LIMIT = 100

TEAMDAMAGE_POINT_LIMIT = 50

TEAMVEHICLEDAMAGE_POINT_LIMIT = 50

REPLENISH_POINT_MIN_INTERVAL = 30

我们把那些数值改一下,比如把所有负值的负号取消,这样误杀一个队友还会加分(当然兵力值还会减)。

也可以改成你喜欢的数值。改完之后,保存,退出。

然后mods\bf2\Settings\ScoreManagerSetup.con里

把你相应在上面改过的地方也改成相同的数值(好像不改也没事,2142就是个例子)。

单机服务器属性修改

多人游戏可以修改重生时间等,然而到了单人游戏就不能在游戏里修改了。怎么办呢?

先用记事本打开mods\bf2\GameLogicInit.con

然后在最后加上:

sv.roundsPerMap 3

每个地图玩几局,作用不大

sv.soldierFriendlyFire 0

sv.vehicleFriendlyFire 0

sv.soldierSplashFriendlyFire 0

sv.vehicleSplashFriendlyFire 0

友军火力,0为没有 ,默认100。

sv.spawnTime 5

sv.manDownTime 5

重生时间,调几都行,没试过负数。

sv.ticketRatio 1000

兵力值,默认100,众所周知可以在gpm_cq.py里改,但在这里改更方便。

mods\bf2\settings\ServerSettings.con里的其它数据也都可以用,有兴趣的自己看看。

战地2地图属性修改

经常有朋友问,怎么把USMC vs PLA的图改成USMC vs MEC甚至MEC vs PLA的图的方法,或者怎样调整双方兵力值的比例。这里,我给你答案。

选择一个地图,用WinRAR打开[你的安装目录]\mods\bf2\[地图名]\server.zip,然后找到Init.con,用记事本打开它修改。

gameLogic.setTeamName 1 "MEC" —— 第一支队,可以填US、CH或MEC;

gameLogic.setTeamName 2 "US" —— 第二支队,同上。

gameLogic.setTeamLanguage 1 "MEC" —— 第一支队使用语言,可以填English、Chinese、MEC,当然不只这些;

gameLogic.setTeamLanguage 2 "English" —— 第二支队使用语言,同上。

gameLogic.setTeamFlag 0 "flag_neutral" —— 中立旗颜色;

gameLogic.setTeamFlag 1 "flag_mec" —— 第一支队据点旗的颜色,flag_mec、flag_us、flag_ch均可;

gameLogic.setTeamFlag 2 "flag_us" —— 第一支队据点旗的颜色,同上。

gameLogic.setKit 1 0 "MEC_Specops" "mec_light_soldier" —— 改了队伍后把MEC改成其它的即可,下同。

gameLogic.setKit 2 0 "US_Specops" "us_light_soldier"

gameLogic.setKit 1 1 "MEC_Sniper" "mec_light_soldier"

gameLogic.setKit 2 1 "US_Sniper" "us_light_soldier"

gameLogic.setKit 1 2 "MEC_Assault" "mec_heavy_soldier"

gameLogic.setKit 2 2 "US_Assault" "us_heavy_soldier"

gameLogic.setKit 1 3 "MEC_Support" "mec_heavy_soldier"

gameLogic.setKit 2 3 "US_Support" "us_heavy_soldier"

gameLogic.setKit 1 4 "MEC_Engineer" "mec_light_soldier"

gameLogic.setKit 2 4 "US_Engineer" "us_light_soldier"

gameLogic.setKit 1 5 "MEC_Medic" "mec_light_soldier"

gameLogic.setKit 2 5 "US_Medic" "us_light_soldier"

gameLogic.setKit 1 6 "MEC_AT" "mec_heavy_soldier"

gameLogic.setKit 2 6 "US_AT" "us_heavy_soldier"

GameLogic.MaximumLevelViewDistance 600 —— 最大可视距离,往巷战图加飞机的别忘了改这里。

gameLogic.setDefaultNumberOfTicketsEx 16 1 100 —— 16人地图第一支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 16 2 100 —— 16人地图第二支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 32 1 200 —— 32人地图第一支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 32 2 200 —— 32人地图第二支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 64 1 300 —— 64人地图第一支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 64 2 330 —— 64人地图第二支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 128 1 200 —— 128人地图第一支队兵力值;

gameLogic.setDefaultNumberOfTicketsEx 128 2 200 —— 128人地图第二支队兵力值;

gameLogic.setTicketLossPerMin 1 12 —— 第一支队处于下风时每分钟损失点数;

gameLogic.setTicketLossPerMin 2 6 —— 第二支队处于下风时每分钟损失点数。

gameLogic.setTeamDropVehicle 1 "jep_mec_paratrooper" —— 第一支队指挥官空投载具时出现的载具;

gameLogic.setTeamDropVehicle 2 "Jeep_faav" —— 第二支队指挥官空投载具时出现的载具。

保存退出后,用新的Init.con文件覆盖压缩包里的Init.con文件,即可(之前备份)。

修改远程火炮

打开[游戏目录]\mods\bf2\Objects_server.zip

用记事本打开Weapons\stationary\USART_LW155\USART_LW155.tweak

若修改中国、中东则为Weapons\stationary\ars_d30\ars_d30.tweak

ObjectTemplate.fire.roundsPerMinute 30 —— 火炮的发射频率是每分钟30发;

ObjectTemplate.fire.burstSize 5 —— 每次呼叫火炮的炮弹发射量为5发;ObjectTemplate.armor.explosionRadius 6 —— 一颗炸弹的爆炸威力半径是6米;ObjectTemplate.deviation.radius 20 —— 炮火精准度为20米。

修改后保存即可。

修改兵种所持武器

打开[游戏目录]\mods\bf2\Objects_server.zip

打开Kits文件夹,打开你要修改的队伍的文件夹(US美军,CH解放军,MEC中东联合军),用记事本打开你要改的兵种的con文件(Assault突击兵,AT反坦克兵,Engineer工程兵,Medic医疗兵,Sniper狙击兵,Specops特种兵, Support支援兵)。

修改以“ObjectTemplate.addTemplate ”为开头的行就可以了,在后面写上武器代码(后面有,必须是能够手持的武器),如ObjectTemplate.addTemplate RURIF_AK47。注意武器不能冲突,比如出现两把主武器,这样按“3”两款武器就会打架,游戏就会出问题。如果非要添两把武器,可以参见后面,修改武器编号,再进行添加。

BOT数值更改

BF2的singleplayer模式里面限制人数为16,打起来还是觉得不够激烈,增加BOT就显得非常重要了;另外附带提一下,其他人也能进入你的singleplayer模式的,记下你的IP(读游戏的时候有写)告诉同伴,家就能一起K BOT了。

用记事本打开mods\bf2\AI\aidefault.ai

aiSettings.setMaxNBots 256 —— 最大游戏人数,也可以保持原来的64不变,基本上影响不大。

aiSettings.maxBotsIncludeHumans 1

aiSettings.setBotSkill 0.4

……

aiSettings.overrideMenuSettings 1 —— 删掉最前面的 rem,再下面3行也一样。

aiSettings.setMaxNBots 31 —— 最大BOT数,一般的机器跑48或者32比较合适,机器好的可以尝试下64或者以上。

aiSettings.maxBotsIncludeHumans 0

aiSettings.setBotSkill 1.0 —— BOT难度,0.4简单,1.0困难,不过小于0.4或大于1.0也可。

BOT更名

用记事本打开mods\bf2\AI\BotNames.ai

aiSettings.addBotName T. Karlsson

把名字改一下,如Snake,则为”aiSettings.addBotName Snake“。

如果行前有REM的要去掉REM。

手持武器修改

打开mods\bf2\object_server.zip

用记事本打开Weapons\Handheld\[你要修改的武器的代码,最后有]\*.tweak文件。

修改子弹数量(以M95为例)

找到以下这段

rem ---BeginComp:DefaultAmmoComp ---

ObjectTemplate.createComponent DefaultAmmoComp

ObjectTemplate.ammo.magSize 5 —— 弹匣内子弹数量,-1为无限;

ObjectTemplate.ammo.nrOfMags 7 —— 弹匣数量,-1为无限;

ObjectTemplate.ammo.reloadTime 6 —— 换弹时间。

rem ---EndComp ---

所有武器、载具的弹药数量都可以这么改。

狙击枪连射,不退弹壳 (以M95为例)

找到以下这段

rem ---BeginComp:DefaultAnimationComp ---

ObjectTemplate.createComponent DefaultAnimationComp

ObjectTemplate.animation.useShiftAnimation 1 —— 删掉这一行

ObjectTemplate.animation.shiftDelay 1.8 ——删掉这一行

rem ---EndComp ---

接下来找到这段

ObjectTemplate.activeSafe Sound S_ussni_m95_barret_Reload1P

ObjectTemplate.modifiedByUser dsu

ObjectTemplate.soundFilename "objects/weapons/handheld/ussni_m95_barret/sounds/barrett_1p_reload.wav,objects/weapons/handheld/ussni_m95_barret/sounds/barrett_shift_1p.wav"

ObjectTemplate.loopCount 1

ObjectTemplate.is3dSound 0

ObjectTemplate.stopType 1

ObjectTemplate.volume 0.75

ObjectTemplate.pitch 1

ObjectTemplate.pan 0.5

ObjectTemplate.reverbLevel 1

把”objects/weapons/handheld/ussni_m95_barret/sounds/barrett_shift_1p.wav“删掉,

只留下 ”objects/weapons/handheld/ussni_m95_barret/sounds/barrett_1p_reload.wav“

注意,其它狙击枪"objects/weapons/handheld/ussni_m95_barret/sounds/barrett_1p_reload.wav”

和“objects/weapons/handheld/ussni_m95_barret/sounds/barrett_shift_1p.wav"

可不一样,看类似的即可。

射击之后不会自动关掉狙击镜(以M95为例)

找到以下这段

rem ---BeginComp:DefaultZoomComp ---

ObjectTemplate.createComponent DefaultZoomComp

ObjectTemplate.zoom.zoomDelay 0.09

ObjectTemplate.zoom.zoomLod 1

ObjectTemplate.zoom.addZoomFactor 0

ObjectTemplate.zoom.addZoomFactor 0.2

ObjectTemplate.zoom.changeFovDelay 0.1

ObjectTemplate.zoom.zoomOutAfterFire 0 —— 改成1即可

ObjectTemplate.zoom.disableMuzzleWhenZoomed 1

rem ---EndComp ---

不开狙击镜,一样有准星 (以M95为例)

先找到这段

ObjectTemplate.weaponHud.guiIndex 0,把0改成4

再找到底下这段

rem ---BeginComp:SoldierDeviationComp ---

ObjectTemplate.createComponent SoldierDeviationComp

ObjectTemplate.deviation.setFireDev 3.5 2 0.5

ObjectTemplate.deviation.minDev 5

ObjectTemplate.deviation.setTurnDev 0 0 0 0

ObjectTemplate.deviation.setSpeedDev 3 1.5 1.5 1

ObjectTemplate.deviation.setMiscDev 2.5 5 0.2

ObjectTemplate.deviation.devModStand 2

ObjectTemplate.deviation.devModCrouch 1.5

ObjectTemplate.deviation.devModLie 0.8

ObjectTemplate.deviation.devModZoom 0.02

rem ---EndComp ---

改成以下这样(这个是参考步枪的准星模式,有兴趣的可以自己研究)

rem ---BeginComp:SoldierDeviationComp ---

ObjectTemplate.createComponent SoldierDeviationComp

ObjectTemplate.deviation.setFireDev 2 0.2 0.05

ObjectTemplate.deviation.minDev 0.3

ObjectTemplate.deviation.setTurnDev 0 0 0 0

ObjectTemplate.deviation.setSpeedDev 1.2 0.2 0.2 0.1

ObjectTemplate.deviation.setMiscDev 2.5 1.5 0.02

ObjectTemplate.deviation.devModStand 2

ObjectTemplate.deviation.devModCrouch 1.5

ObjectTemplate.deviation.devModLie 0.8

ObjectTemplate.deviation.devModZoom 0.02

rem ---EndComp ---

开镜放大倍数修改

找到:ObjectTemplate.zoom.addZoomFactor 0.2 —— 数值越小,倍数越大。

若多增加几行则可放大多倍,如:

ObjectTemplate.zoom.addZoomFactor 0

ObjectTemplate.zoom.addZoomFactor 0.3

ObjectTemplate.zoom.addZoomFactor 0.08

改枪的威力 (以M95为例)

找到以下内容:

ObjectTemplate.material 39 —— 改成44可对载具造成伤害。

ObjectTemplate.hasOnTimeEffect 1

ObjectTemplate.minDamage 1

ObjectTemplate.damage 190 —— 伤害值,250左右一枪击中身体即可解决问题。

所有武器的威力都可以这么改。

修改武器编号(以M95为例)

找以下内容:

ObjectTemplate.itemIndex 3 —— 武器编号,即在游戏中按“3”切换到该武器。

修改武器过热问题(以M249为例)

找到以下内容

ObjectTemplate.heatAddWhenFire 0.013 —— 每开一枪增加热度

ObjectTemplate.coolDownPerSec 0.2 —— 不开枪枪支变冷效率(百分比)

ObjectTemplate.overheatPenalty 1.2 —— 最大热度

所有机枪的过热问题都可以这么修改。

修改士兵属性

修改士兵生命值、体力

打开mods\bf2\object_server.zip

打开soldiers\[你要的队伍]\*.tweak文件

有两种,一种是重甲兵Heavy Soldier(反坦克、突击、补给),一种是轻甲兵Light Soldier(剩下四种)。

ObjectTemplate.SprintRecoverTime 20 —— 体力恢复时间

ObjectTemplate.SprintDissipationTime 8 —— 奔跑体力消耗至零的时间

ObjectTemplate.SprintLimit 0.05

ObjectTemplate.SprintLossAtJump 0.2 —— 跳跃消耗体力

ObjectTemplate.armor.maxHitPoints 100 —— 最大生命值

ObjectTemplate.armor.hitPoints 100 —— 最大生命值

所有有生命值的武器、载具都可以这么改。

修改士兵行走速度

打开soldiers\Common\Common.con文件

Vars.Set phy-soldier-speed-factor 1.0 —— 行走速度,影响行走、奔跑以及下蹲、匍匐前进的速度,好像在水中行进的速度有限制。别改得太猛,否则奔跑时减生命值。

Vars.Set phy-soldier-jump-factor 1.0 —— 跳跃高度,还是别改太猛。

地图修改

打开mods\bf2\Levels\[你要改的地图名]\server.zip

打开GameModes\[你要改的游戏模式,sp1、sp2等即为单人模式]\[你要改的地图的大小,16人或32人]\GamePlayObjects.con

修改地图载具种类、数量

找到以下格式的内容(开始就是)

rem [ObjectSpawnerTemplate: CPNAME_DP_64_airfield_HeavyTank]

ObjectTemplate.create ObjectSpawner CPNAME_DP_64_airfield_HeavyTank

ObjectTemplate.activeSafe ObjectSpawner CPNAME_DP_64_airfield_HeavyTank

ObjectTemplate.modifiedByUser esj

ObjectTemplate.isNotSaveable 1

ObjectTemplate.hasMobilePhysics 0

ObjectTemplate.setObjectTemplate 1 TNK_TYPE98 —— 第一支队伍占领附近据点后出现的载具;

ObjectTemplate.setObjectTemplate 2 USTNK_M1A2 —— 第二支队伍占领附近据点后出现的载具。

也可以删除ObjectTemplate.setObjectTemplate 1,使一队占领附近据点后仍没有载具重生。

删除全部内容该点不会重生载具。

也可以添加如下内容:

ObjectTemplate.minSpawnDelay 50 —— 最小重生时间;

ObjectTemplate.maxSpawnDelay 70 —— 最大重生时间;

ObjectTemplate.maxNrOfObjectSpawned 2 —— 地图中最多有该点重生的载具的数量。

修改据点属性

找到rem ********** Control Points **********,下面的就是。

rem [ControlPointTemplate: CPNAME_DP_64_northdocks]

ObjectTemplate.create ControlPoint CPNAME_DP_64_northdocks

ObjectTemplate.activeSafe ControlPoint CPNAME_DP_64_northdocks

ObjectTemplate.modifiedByUser esj

ObjectTemplate.setNetworkableInfo ControlPointInfo

ObjectTemplate.isNotSaveable 1

ObjectTemplate.hasMobilePhysics 0

ObjectTemplate.hasCollisionPhysics 1

ObjectTemplate.physicsType Mesh

rem -------------------------------------

ObjectTemplate.addTemplate flagpole

rem -------------------------------------

ObjectTemplate.setControlPointName CPNAME_DP_64_northdocks

ObjectTemplate.radius 22 —— 抢旗有效范围

ObjectTemplate.controlPointId 7

ObjectTemplate.areaValueTeam1 25 —— 据点对一队的重要程度;

ObjectTemplate.areaValueTeam2 25 —— 据点对二队的重要程度;

ObjectTemplate.timeToGetControl 20 —— 单兵升旗所需时间;

ObjectTemplate.timeToLoseControl 20 —— 单兵降旗所需时间。

也可增加字符串

ObjectTemplate.team 1 —— 游戏开始时据点属于一队。

ObjectTemplate.loseControlWhenEnemyClose 0 —— 敌军接近不会失去据点;

ObjectTemplate.unableToChangeTeam 1 —— 不可攻占据点。

本文内容于 2008-9-16 11:37:37 被遥望汉唐编辑

2
回复主贴
聚焦 国际 历史 社会 军事
2条评论
点击加载更多

发表评论

更多精彩内容

经典聚焦

更多
发帖 向上 向下
广告 关闭