当前位置:文档之家› (新手必学)战地2单机修改初级全部教程

(新手必学)战地2单机修改初级全部教程

一、BF2修改概述

来自BF2MODWiKi
在进行任何修改前请备份相应文件,否则后果自负。


1 什么是模组
2 经常修改的几个文件
2.1 单机AI相关
2.2 地图相关
2.3 载具、武器、士兵等等修改
3 修改准备
4 修改技巧

[编辑]什么是模组

「MOD」,中文通常稱做「模組」,不過這並非module的簡稱,而是modification,原意為「修改」,縮寫取前三個字母,成為大家朗朗上口的MOD。顧名思義,MOD就是修改過的東西,在安裝模組之後,可以改變遊戲原本內容,延伸更多的玩法,只要擁有主程式,就可以安裝這些免費的遊戲模組。強大的模組社群是《戰地風雲系列》最具實力的後盾,從前作都能看到令人震撼的模組規模。遊戲模組在既有的遊戲引擎架構下,改變遊戲的內容、玩法,除了多款《1942》《越南》中的大型模組都已在進行《戰地風雲2》模組的開發之外,也有不少全新的模組開發計劃投入,在結合了指揮體系以及小隊系統後,《戰地風雲2》的模組勢必很有看頭!所以說,若您之後開始覺得玩膩了《戰地風雲2》以及《特戰資料片》,也請各位好好保存這款遊戲,即使您沒有體驗過前作模組所帶來的樂趣,本作蓄勢待發的遊戲模組也絕對值得您期待!

[编辑]经常修改的几个文件
[编辑]单机AI相关
\mods\相应模组\AI\

[编辑]地图相关
\mods\相应模组\Levels\相应地图\server.zip

\mods\相应模组\Levels\相应地图\server.zip

[编辑]载具、武器、士兵等等修改
\mods\相应模组\Objects_server.zip

\mods\相应模组\Objects_client.zip

\mods\相应模组\Menu_server.zip

\mods\相应模组\Menu_client.zip

坦克,吉普车,突击车等在Objects_server.zip\Vehicles\Land
单兵武器,反坦克导弹(发射器)等在Objects_server.zip\Weapons\Handheld
固定翼飞机和直升机在Objects_server.zip\Vehicles\Air
固定武器(坦克,吉普车,突击车,碉堡机枪)等在Objects_server.zip\Weapons\stationary
飞机的导弹,反坦克导弹的导弹等在Objects_server.zip\Weapons\Armament\missiles
[编辑]修改准备
Winrar,用于解压缩和压缩
相关的.ai .con .tweak等等涉及到的需要修改的文件都使用记事本打开即可
[编辑]修改技巧
如果修改完成,进入游戏发现读取到一半跳出,请使用窗口模式启动游戏,就可以在退出时看到错误信息进行相应的补救。

以窗口模式运行程序,只要使用模组启动器即可,如果会制作快捷方式,相应参数是 +fullscreen 0

来自"https://www.doczj.com/doc/a89063154.html,/wiki/index.php/BF2%E4%BF%AE%E6%94%B9%E6%A6%82%E8%BF%B0"








二、单机游戏修改




1 什么是模组
2 经常修改的几个文件
2.1 单机AI相关
2.2 地图相关
2.3 载具、武器、士兵等等修


3 修改准备
4 修改技巧




来自BF2MODWiKi
跳转到: 导航, 搜索
这篇文章讲述 修改单机AI的数量、能力 。
作者:Napoleon_Bon,wujj123456
在进行任何修改前请备份相应文件,否则后果自负。

点击这里回到模组修改手册首页目录 [隐藏]
1 数量和命中率
2 修改BOT行动取向
3 修改Bot的名字
4 修改兵力值
4.1 该模组全部地图兵力值修改
4.2 单张地图个性化兵力值修改、兵力损失速度修改
5 重生时间
6 修改游戏时间限制

[编辑]数量和命中率
关于单机AI的文件都是保存在 \mods\相应模组\AI,控制数量和Bot枪法准确度的文件一般都是 \mods\相应模组\AI\AIDefault.ai,但部分模组也使用了独立的.ai文件进行控制,有的是用 botchanger.ai,但大家只要找相应的语句就可以了,控制Bot数量和难度的是以下几句:

rem aiSettings.overrideMenuSettings 1
rem aiSettings.setMaxNBots 32
rem aiSettings.maxBotsIncludeHumans 0
rem aiSettings.setBotSkill 1.0这是你进入\mods\bf2\AI\AIDefault.ai会看到的,注意rem开头表示该行无效,只有去掉rem才会生效。将他们改成:

aiSettings.overrideMenuSettings 1 <<< 该行必须如此,表示覆盖上面的Bot设置
aiSettings.setMaxNBots 32 <<< Bot的数量,修改后面的数字即可
aiSettings.maxBotsIncludeHumans 0 <<< 上面的Bot数量是否包含本人,0为不包含,1为包含
aiSettings.setBotSkill 1.0 <<< Bot的技能,默认是0.4,你甚至可以调整到1.0以上[编辑]修改BOT行动取向
打开\mods\相应模组\ai\AIPathfinding.ai

aiPathfinding.createMap Infantry <<<步兵
aiPathfinding.map.maxSlope <<<最大允许坡度
aiPathfinding.map.radius <<<半径
aiPathfinding.map.allowedHeightDiff <<<最大允许高度

aiPathfinding.createMap Vehicle <<< 载具
aiPathfinding.map.maxSlope <<<最大允许坡度
aiPathfinding.map.radius <<<半径
aiPathfinding.map.allowedHeightDiff <<<最大允许高度

aiPathfinding.maxWaterDepth <<<最大涉水深度


[编辑]修改Bot的名字
打开\mods\相应模组\ai\BotNames.ai

有rem的不要动,BOT名字不要使用简体中文即可。

[编辑]修改兵力值
[编辑]该模组全部地图兵力值修改
找到\mods\相应模组\python\game\gamemodes\,下面以bf2为例:

第一步:打开\mods\bf2\python\game\gamemodes\

打开gpm_cq.py,找到这一行: return int(mapDefaultTickets * (bf2.serverSettings.getTicketRatio() / 100.0))

其中100的数值就是要调整的选项。数字愈大,双方阵营的兵力值愈少,数字小则是愈多。

数字可以任意调整,提供以下参数范例:

数值100 =200 <<< 双方阵营的兵力值
数值500 =22 <<< 双方阵营的兵力值
数值10 =2000 <<< 双方阵营的兵力值
数值1 =9999 <<< 双方阵营的兵力值
[编

辑]单张地图个性化兵力值修改、兵力损失速度修改
该方法在部分模组以及地图可能失效,由dustdune提供,原帖:https://www.doczj.com/doc/a89063154.html,/viewthread.php?tid=488

打开mods\bf2\Levels\相应地图\server.zip\Init.con

找到以下代码:

GameLogic.MaximumLevelViewDistance 400

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

gameLogic.setDefaultNumberOfTicketsEx 16 1 100
gameLogic.setDefaultNumberOfTicketsEx 16 2 110
gameLogic.setDefaultNumberOfTicketsEx 32 1 200
gameLogic.setDefaultNumberOfTicketsEx 32 2 220
gameLogic.setDefaultNumberOfTicketsEx 64 1 300
gameLogic.setDefaultNumberOfTicketsEx 64 2 330
gameLogic.setDefaultNumberOfTicketsEx 128 1 50
gameLogic.setDefaultNumberOfTicketsEx 128 2 50
gameLogic.setDefaultTimeToNextAIWave 8
gameLogic.setTicketLossAtEndPerMin 200
gameLogic.setTicketLossPerMin 1 12
gameLogic.setTicketLossPerMin 2 6其中的110 200 220 300 330 都是可以直接修改的电脑阵营BOT人数,注意各行对应不同的地图尺寸,有16人的,32人的,64人的

最后两行定义的是对应团队在劣势下的兵力损失速度,单位是人/分钟

[编辑]重生时间
第一步:打开,我的文档\Battlefield 2\Profiles文件夹

里面有default 0001 0002 等等文件夹,其中0001和0002等等分别对应你登陆bf2时使用的帐号,只要修改相应文件夹内的内容用该帐号登录后就会生效。


第二步:例如要将0001所对应的帐号的重生时间改为5秒

0001文件夹里的ServerSettings.con,修改下列数值:

GameServerSettings.setSpawnTime 5
GameServerSettings.setManDownTime 5同时,Default文件夹里的ServerSettings.con,修改为下列数值:

sv.spawnTime 5
sv.manDownTime 5
第三步:修改完成后请将修改过的文件属性改为只读,否则修改无效!

[编辑]修改游戏时间限制
我的文档\Battlefield 2\Profiles\Defaul\ServerSettings.con

找到这一行:

sv.timeLimit 0 <<< 0未不限制,调整成别的数字即可,单位秒








三、武器、载具及其它相关修改








来自BF2MODWiKi
跳转到: 导航, 搜索
这篇文章讲述 武器、载具、士兵等等基于objects_server.zip的修改 。
作者:M-109,zz9099,hongse007,Napoleon_Bon,wumoran
在进行任何修改前请备份相应文件,否则后果自负。

点击这里回到模组修改手册首页
这里的内容是给大家一个基本概念,BF2引擎的可修改性相当强,更丰富的内容请大家参考手册首页的修改范例,里面有更多的知识,或许就是你想实现的游戏方式。

目录 [隐藏]
1 文件路径
2 手持武器
2.1 给枪支添加光学瞄准具
2.2 为狙击枪配备多倍瞄准镜
3 载具、固定武器
3.1 坦克的移动
3.2 战斗机的热焰弹
3.3 坦克顶部机枪替换
3.4 载具的HP(生命值)
4 导弹

5 士兵
5.1 兵种携带武器修改
5.2 兵种自身属性修改
6 游戏音效
7 修改兵力值
7.1 该模组全部地图兵力值修改
7.2 单张地图个性化兵力值修改、兵力损失速度修改

[编辑]文件路径
点击这里先来回顾一下文件路径,这里我们要修改的东西都在objects_server.zip里面

[编辑]手持武器
进入相应的武器目录,单兵武器,反坦克导弹(发射器)等在Objects_server.zip\Weapons\Handheld

选择相应的武器的文件夹(BF2对应武器参见BF2步兵手持武器代码,其他模组请自行查找),进入后打开.tweak,会看到代码,相关部分代码解释如下:

<<<枪支游戏数据代码>>>
ObjectTemplate.weaponHud
ObjectTemplate.weaponHud.weaponIcon <<<武器图片位置
ObjectTemplate.weaponHud.altWeaponIcon <<<这个和上面参数的意思相近。
ObjectTemplate.weaponHud.selectIcon <<<这是设定你装备栏里该枪的图片。
ObjectTemplate.weaponHud.hudName <<<这个参数是设定该枪支在游戏中的名字,你会看到所有的这个参数后面都有
ObjectTemplate.weaponHud.guiIndex <<<这个是设置准心的参数
ObjectTemplate.weaponHud.altGuiIndex <<<这个是设定武器的瞄准模式,给普通枪加瞄准镜要用到这个。
<<<枪支属性代码>>>
ObjectTemplate.fire
ObjectTemplate.fire.roundsPerMinute <<<这个是武器的发射速度,速度越高射速越快(最高上限1800)。
ObjectTemplate.fire.addFireRate <<<这是用来设定武器发射模式的参数可选 1/2/0,1为三连发,0为单发,2为自动连发。
ObjectTemplate.fire.fireInCameraDof <<<武器开火时是否显示在视线内,可选选项1/0(是/否)
<<<弹药数量代码>>>
ObjectTemplate.ammo
ObjectTemplate.ammo.ammoType <<<这是弹药类型,要与一些其他参数配合使用
ObjectTemplate.ammo.magsize <<<设定弹夹中弹药的参数,-1为无限
ObjectTemplate.ammo.nrOfMags <<<设置备用弹的,-1为无限。
ObjectTemplate.ammo.autoreload <<<是否自动装填弹药,可选选项 1/0(是/否)
ObjectTemplate.ammo.reloadtime <<<装填弹药的时间(与模型相符,修改会出错)。
<<<射击属性代码>>>
ObjectTemplate.recoil
ObjectTemplate.recoil.hasRecoilForce <<<设定武器是否打开后坐力,可选选项 1/0(是/否)
ObjectTemplate.recoil.recoilForceUp <<<这是枪口上跳的参数设置,其中3组/为坐标定义,X/Y/Z
ObjectTemplate.recoil.recoilForceLeftRight <<<与上面的相似,只不过是定义左和右的。
ObjectTemplate.recoil.zoomModifier <<<武器瞄准模式时的后坐力
ObjectTemplate.recoil.recoilForceUp <<<武器瞄准模式时的后坐力,具体参数引用
O

bjectTemplate.recoil.recoilForceLeftRight <<<武器瞄准模式时的后坐力,具体参数引用
<<<子弹分布代码>>>
ObjectTemplate.deviation
ObjectTemplate.deviation.setFireDev <<<这是武器开火时的子弹散布,三组数值为X/Y/Z坐标
ObjectTemplate.deviation.minDev <<<这是子弹最小散布
ObjectTemplate.deviation.setTurnDev <<<这是武器在转身或旋转视角状态时射击的子弹散布,后三组数值为X/Y/Z坐标
ObjectTemplate.deviation.setSpeedDev <<<这是武器奔跑状态时射击的子弹散布,后三组数值为X/Y/Z坐标
ObjectTemplate.deviation.setMiscDev <<<这是武器的随机子弹散布,后三组数值为X/Y/Z坐标
ObjectTemplate.deviation.devModStand <<<站立时射击的子弹散布,与上边的配合使用。
ObjectTemplate.deviation.devModCrouch <<<蹲下/趴下时射击的子弹散布,与上边的配合使用。
ObjectTemplate.deviation.devModZoom <<<瞄准模式射击时的子弹散布。
<<<射击效果代码>>>
ObjectTemplate.zoom
ObjectTemplate.zoom.zoomDelay <<<这个是放大模式的延迟时间(这个最好使用默认)。
ObjectTemplate.zoom.addZoomFactor <<<这个是放大倍数,数值越小倍数越高。
ObjectTemplate.velocity <<<这个是弹药出膛速度
ObjectTemplate.itemIndex <<<武器的使用编号(即用几号键切换的参数,修改时注意不要和其他装备冲突)
ObjectTemplate.delayToUse <<<切换到武器是的延迟时间
ObjectTemplate.timeToLive <<<子弹的飞行时间(既射程)。
ObjectTemplate.material <<<弹药材质
ObjectTemplate.minDamage <<<弹药的最小伤害值,就是最大射程上的伤害值。
比如美国的M249SAW轻机枪,有效射程600米内杀伤力为30(具体多少不记得了),在最大射程1000米时,杀伤力仅为0.2
ObjectTemplate.damage <<<最大伤害值
ObjectTemplate.projectileTemplate <<<武器使用的弹药
ObjectTemplate.tracerScaler <<<显示多少曳光弹,曳光弹发射出去后显示的数量
ObjectTemplate.maxTracerScaler <<<同上,这个为设置最大曳光弹数量。
ObjectTemplate.minTracerScaler <<< 这是设置最小曳光弹数量。
ObjectTemplate.tracerSizeModifier <<<曳光弹的大小
ObjectTemplate.tracerInterval <<< 这个是设置隔几发子弹就有一发曳光弹。
ObjectTemplate.tracerTemplate <<<曳光弹种类,可选(p_tracer_g)(p_tracer_r)(p_tracer_tank)
<<<枪管热量代码>>>
ObjectTemplate.heatAddWhenFire <<<每开枪一次增加的热量。
ObjectTemplate.coolDownPerSec

<<<冷却时每秒钟减少的热量
ObjectTemplate.overheatPenalty <<<枪支过热后多常时间之内不能使用。 做相应修改达到你想要的效果即可,你也可以选择不同的tweak之间进行比对和修改来获取更多的信息。

[编辑]给枪支添加光学瞄准具
以中国95短突(无光学瞄准具)和美国M4卡宾(有光学瞄准具)为例:

先在chrif_type95.tweak中找到这行: ObjectTemplate.addTemplate S_chrif_type95_Zoom

然后再看usrif_m4.tweak中这行: ObjectTemplate.addTemplate S_usrif_m4_Zoom

ObjectTemplate.setPosition 0/0.0913384/-0.0160701 <<< 后面这三个数字决定瞄准具在枪支上的位置,如果进入游戏发现错位,只要进行相应地调整

可见,开镜或使用机械瞄具是由这行参数来实现的。

因此,我们只要把中国95短突的那行替换成M4的这个数据和position就可以在使用95短突时,使用M4的红点瞄准具了!

[编辑]为狙击枪配备多倍瞄准镜
在\mods\相应模组\Objects_server.zip\Weapons\Handheld\狙击枪名称\下面打开tweak文件

找到ObjectTemplate.zoom.addZoomFactor参数,在他的下面再添加一排ObjectTemplate.zoom.addZoomFactor参数,而第二排的数字就是另一个放大倍率。

例如bf2的M24,\mods\bf2\Objects_server.zip\Weapons\Handheld\usrif_m24\usrif_m24.tweak

打开找到

rem ---BeginComp:DefaultZoomComp ---
ObjectTemplate.createComponent DefaultZoomComp
ObjectTemplate.zoom.zoomDelay 0.125
ObjectTemplate.zoom.zoomLod 1
ObjectTemplate.zoom.addZoomFactor 0
ObjectTemplate.zoom.addZoomFactor 0.2
ObjectTemplate.zoom.changeFovDelay 0.08
ObjectTemplate.zoom.zoomOutAfterFire 1
ObjectTemplate.zoom.disableMuzzleWhenZoomed 1
改成如下即可

rem ---BeginComp:DefaultZoomComp ---
ObjectTemplate.createComponent DefaultZoomComp
ObjectTemplate.zoom.zoomDelay 0.125
ObjectTemplate.zoom.zoomLod 1
ObjectTemplate.zoom.addZoomFactor 0
ObjectTemplate.zoom.addZoomFactor 0.2
ObjectTemplate.zoom.addZoomFactor 0.1 <<< 添加此行
ObjectTemplate.zoom.changeFovDelay 0.08
ObjectTemplate.zoom.zoomOutAfterFire 0
ObjectTemplate.zoom.disableMuzzleWhenZoomed 1
rem ---EndComp ---


[编辑]载具、固定武器
坦克,吉普车,突击车等在Objects_server.zip\Vehicles\Land,固定翼飞机和直升机在Objects_server.zip\Vehicles\Air,固定武器(固定机枪、反坦克导弹、大炮)在Objects_server.zip\Weapons\stationary

选择相应的载具的文件夹(BF2对应载具代码参见BF2载具代码,其他模组请自行查找),进入后打开.tweak,会看到代码,和上面大同小异,大家比对就明白了,如果出现上面没有的代码行,只要根据字面的英文意思去试验就八九不离十了。

所有的载具参数代码都是通用的,包括指挥官物品也是,所以坦克能飞是很正常的。

[编辑]坦克的移动
下面以BF2中

的T90坦克为例,进行一定的代码解释:

打开BF2\mods\bf2\Objects_server.zip\Vehicles\Land\RUTNK_T90\RUTNK_T90.tweak

ObjectTemplate.setMinRotation -1/0/-1
ObjectTemplate.setMaxRotation 1/0/1
ObjectTemplate.setMaxSpeed 4/0/10 ---------最大速度
ObjectTemplate.setAcceleration 50/0/10 --------加速度
ObjectTemplate.setTorque 10---------------转向灵敏度
ObjectTemplate.setGearUp 0.95 --------------- 前进
ObjectTemplate.setGearDown 0.45 --------------后退
ObjectTemplate.setGearChangeTime 0.1 -------------前进后退间换档所需的时间
ObjectTemplate.trackTurnAcceleration 30 -------履带加速度
ObjectTemplate.trackTurnSpeed 0.85 -----------履带速度

[编辑]战斗机的热焰弹
打开mods\bf2\objects_server.zip\Weapons\Armament\decoy_flare_launcher\decoy_flare_launcher.tweak

用记事本打开,修改以下代码:

rem ---BeginComp:DefaultAmmoComp ---
ObjectTemplate.createComponent DefaultAmmoComp
ObjectTemplate.ammo.nrOfMags -1 <<< 弹匣数量,-1为无限弹匣
ObjectTemplate.ammo.magSize 5 <<< 没弹匣容量,这里是5颗热焰弹
ObjectTemplate.ammo.reloadTime 5 <<< 装填时间
ObjectTemplate.ammo.minimumTimeUntilReload 1 <<< 打完立即装填
ObjectTemplate.ammo.autoReload 1 <<< 自动装填

[编辑]坦克顶部机枪替换
ObjectTemplate.addTemplate S_TNK_Type98_Cupola_Gunmount_RotationRpm <<< 定义顶部机枪
ObjectTemplate.addTemplate TNK_Type98_Camera_cupola
ObjectTemplate.setPosition 1.0143e-006/0.313189/-0.396355
ObjectTemplate.addTemplate HMG_M134 <<< 这里原来是85式机枪,改成M134就是火神机炮
ObjectTemplate.setPosition 0/0.0968821/0.158489
ObjectTemplate.addTemplate kord_amobox <<<机枪弹药箱的模型
ObjectTemplate.setPosition -0.244109/0.115456/0.156753
ObjectTemplate.setRotation 180/20/80 <<< 方向射界180度,向下射击20度,向上射击80度
下面+rem空格的行不加的话行不行,还没有试,从语句上看应该+rem才对
rem ObjectTemplate.addTemplate hmg_m2hb_ammo
rem ObjectTemplate.setPosition -0.0821289/0.149204/0.157291
rem ObjectTemplate.setRotation 90/-5/0 [编辑]载具的HP(生命值)
这个和士兵的生命值代码是相同的,只要找到相应载具的tweak就可以了,当然比士兵多一些东西

以BF2的T-90为例,打开\mods\bf2\Objects_server.zip\Vehicles\Land\RUTNK_T90\RUTNK_T90.tweak,找到下面这一段,所有与生命值有关的都在这里。

rem ---BeginComp:Armor ---
ObjectTemplate.createComponent Armor
ObjectTemplate.armor.maxHitPoints 1000 <<<后面的100为血量,最多为9999
ObjectTemplate.armor.hitPoints 1000 <<<后面的100为血量,最多为9999
ObjectTemplate.armor.defaultMaterial 72 <<<默认装甲材质编号
ObjectTemplate.armor.hpLostWhileUp

SideDown 125 <<<翻倒后的损伤速度
ObjectTemplate.armor.hpLostWhileInWater 100 <<<在水中的损伤速度
ObjectTemplate.armor.hpLostWhileInDeepWater 335 <<<在深水中的损伤速度
ObjectTemplate.armor.hpLostWhileCriticalDamage 18 <<<严重损伤后自动减HP的速度
ObjectTemplate.armor.waterDamageDelay 1 <<<入水损伤延时,单位秒
ObjectTemplate.armor.deepWaterDamageDelay 0 <<<深水损伤延时
ObjectTemplate.armor.waterLevel 0.3 <<<开始损伤的水深
ObjectTemplate.armor.deepWaterLevel 0.8 <<<该深度以上算深水
ObjectTemplate.armor.explosionForce 15
ObjectTemplate.armor.explosionForceMod 8
ObjectTemplate.armor.explosionForceMax 5000
ObjectTemplate.armor.explosionDamage 300
ObjectTemplate.armor.explosionRadius 7
ObjectTemplate.armor.explosionMaterial 99
ObjectTemplate.armor.wreckExplosionForce 10
ObjectTemplate.armor.wreckExplosionForceMax 10
ObjectTemplate.armor.wreckExplosionDamage 50
ObjectTemplate.armor.wreckExplosionRadius 3
ObjectTemplate.armor.wreckExplosionMaterial 70
ObjectTemplate.armor.wreckHitPoints 1000 <<<彻底摧毁需要的HP,载具应该和上面两个控制HP的相同
ObjectTemplate.armor.timeToStayAsWreck 10 <<<摧毁后残骸的保留时间
ObjectTemplate.armor.criticalDamage 101 <<ObjectTemplate.armor.hideChildrenOnSpectacularDeath 1
ObjectTemplate.armor.addArmorEffect 50 e_dstate_land_lightsmoke 0/0.35/-2.5 0/0/0
ObjectTemplate.armor.addArmorEffect 25 e_dstate_land_mediumSmoke 0/0.35/-2.5 0/0/0
ObjectTemplate.armor.addArmorEffect 10 e_dstate_land_heavysmoke 0/0.36/-2.5 0/0/0
ObjectTemplate.armor.addArmorEffect 25 e_dstate_land_sparks -1.5/-0.3/0 0/0/0
ObjectTemplate.armor.addArmorEffect 0 e_vexp_tank 0/0/0 0/0/0
ObjectTemplate.armor.addArmorEffectSpectacular 0 e_vexp_t90 0/1.5/-0.5 0/0/0
ObjectTemplate.armor.addArmorEffectSpectacular 0 e_vexp_tank_spec 0/0/0 0/0/0
ObjectTemplate.armor.addArmorEffect 50 e_dstate_land_sparks -1.45/-0.5/-2.15 0/0/0
ObjectTemplate.armor.addArmorEffect 0 e_dstate_static_fire 0/0.5/-0.15 0/0/0
ObjectTemplate.armor.addArmorEffect 0 e_sAmb_wreckfire -0.26/0.5/-1.14 0/0/0
ObjectTemplate.armor.addArmorEffect -100 e_vexp_tank_2nd 0/0/0 0/0/0
rem ---EndComp ---

[编辑]导弹
进入相应的导弹目录,飞机的导弹、反坦克导弹的导弹等在Objects_server.zip\Weapons\Armament\missiles,同样找到对应的tweak文件

注:其中你会发现有很多后边带Dummy的,这个只是个模型,如在战斗机上就是挂架下的模型

如下是部分代码解释:

ObjectTemplate.seek.targetType TTLaser <<<制导方式(TTHeat空空,地空)(TTLaser空地)(TTUnique指令制导)
ObjectTemplate.seek.trackingDelay 0.2 <<<追踪延迟
ObjectTemplate.seek.maxAngleLock 360 <<<最大锁定仰角
ObjectTemplate.seek

.maxDistLock 3000 <<<最大锁定距离
ObjectTemplate.seek.reLockTime 0 <<<重新锁定延迟

ObjectTemplate.seek.targetType
ObjectTemplate.collision.hasCollisionEffect <<<是否打开碰撞触发
ObjectTemplate.detonation.explosionMaterial" <<<爆炸的材质 56
ObjectTemplate.detonation.explosionRadius" <<<爆炸范围5
ObjectTemplate.detonation.explosionForce <<<爆炸的冲击波 20
ObjectTemplate.detonation.explosionDamage <<<爆炸伤害 300
ObjectTemplate.detonation.endEffectTemplate <<<爆炸效果
ObjectTemplate.seek.targetType <<<制导属性
ObjectTemplate.seek.trackingDelay <<<导弹发射后进入制导的时间
ObjectTemplate.seek.maxAngleLock <<<导弹的最大导引角度
ObjectTemplate.seek.maxDistLock <<<导弹的最大导引距离
ObjectTemplate.seek.directionBonus <<<进入导引后设置导弹稳定值的参数,越大导弹越不稳定,就是来回乱晃
ObjectTemplate.seek.reLockTime <<<失去目标后重新寻找需要的时间
ObjectTemplate.follow.maxYaw <<<跟踪目标时的灵活度(这个是偏角参数)
ObjectTemplate.follow.maxPitch <<<与上面的意思一样(这个为设置倾角)
ObjectTemplate.follow.changePitch <<<导弹在变换跟踪目标和转弯时的灵活度(倾角)
ObjectTemplate.follow.changeYaw <<<导弹在变换跟踪目标和转弯时的灵活度(偏角)
ObjectTemplate.follow.minDist <<<导弹跟踪目标时与目标保持的距离
ObjectTemplate.timeToLive <<<导弹的飞行时间(即射程)
ObjectTemplate.gravityModifier <<<发射后的重力参数
ObjectTemplate.damage <<<直接命中目标时的伤害
ObjectTemplate.acceleration <<<导弹的加速度
ObjectTemplate.maxSpeed <<<导弹发射后的飞行速度



[编辑]士兵
[编辑]兵种携带武器修改
第一步:打开Objects_Server.zip/Kits目录

可看到CH,MEC和US三个目录(CH为中国,MEC为中东,US为美国)


第二步:打开后可看到一个文件,可用记事本打开,后缀分别代表:

Sniper狙击手,Specops特种兵,Support补给兵,Engineer工程兵,Medic医疗兵,AT反战车兵,Assault突击兵

打开你想要修改的兵种。

相关代码也可以参考BF2工具包代码。


第三步:用记事本打开,可看掉下列代码:

ObjectTemplate.addTemplate USPIS_92FS
ObjectTemplate.addTemplate usrif_m16a2
ObjectTemplate.addTemplate medikit
ObjectTemplate.addTemplate defibrillator
ObjectTemplate.addTemplate kni_knife
ObjectTemplate.addTemplate UnlockUSMedic
ObjectTemplate.addTemplate USHGR_M67
ObjectTemplate.addTemplate ParachuteLauncher其中分别是各装备的武

器,可替换为对应键位的武器,并且相同键位的武器只能出现一样(可参考上面提到过的ObjectTemplate.itemIndex <<< 武器的使用编号)


第四步:例如要把usrif_m16a2步枪替换的话,可使用相应的键位武器覆盖,注意与ObjectTemplate.addTemplate之间加个空格,修改好后恢复只读属性,压缩回Objects_Server.zip/Kits中覆盖即可,切记不可装备2样键位相同的武器)


注释:BF2武器的相应代码参考BF2步兵手持武器代码。




[编辑]兵种自身属性修改
第一步:打开Objects_Server.zip/Soldiers目录

可看到CH,MEC和US三个目录(CH为中国,MEC为中东,US为美国)打开你想要修改的兵种


第二步:找到以下数据段:

ObjectTemplate.armor.maxHitPoints 100 <<<后面的100为血量,最多为9999
ObjectTemplate.armor.hitPoints 100 <<<后面的100为血量,最多为9999再可找到以下数据段:

ObjectTemplate.SprintRecoverTime 20 <<<体力恢复时间
ObjectTemplate.SprintDissipationTime 8 <<<加速跑时间
ObjectTemplate.SprintLossAtJump 0.2 <<<跳一次消耗体力
人物音效文件都在\mods\bf2\Common_client.zip\Sound 这里

Chinese目录下的,就是中国军队的语音文件

commander 是指挥官的音效
grunt 是士兵音效
Squadleader 是小队长音效
filter 是经过无线电滤波器的音效
no_filter 是未经滤波的音效(原声)
至于每一个音效文件是什么,就不用多说了吧,打开听听就知道了

武器载具等的音效,在\mods\bf2\object_client.zip\相对应的武器载具\sounds目录中

1Pfire 表示第一人称开火的音效
3Pfire 表示第三人称开火的音效
outdoor 表示室外(在屋子里属于室内,BF2中室内与室外的枪声不一样)
relod 表示重新装填时的音效
fire_rate_switch 表示发射方式单连发切换
boltclick 表示拉枪栓的声音
deploy 拿出武器时候的声音
Stereo 表示立体声
shift 上子弹的声音


[编辑]修改兵力值
[编辑]该模组全部地图兵力值修改
找到\mods\相应模组\python\game\gamemodes\,下面以bf2为例:

第一步:打开\mods\bf2\python\game\gamemodes\

打开gpm_cq.py,找到这一行: return int(mapDefaultTickets * (bf2.serverSettings.getTicketRatio() / 100.0))

其中100的数值就是要调整的选项。数字愈大,双方阵营的兵力值愈少,数字小则是愈多。

数字可以任意调整,提供以下参数范例:

数值100 =200 <<< 双方阵营的兵力值
数值500 =22 <<< 双方阵营的兵力值
数值10 =2000 <<< 双方阵营的兵力值
数值1 =9999 <<< 双方阵营的兵力值


[编辑]单张地图个性化兵力值修改、兵力损失速度修改
该方法在部分模组以及地图可能失效,由dustdune提供,原帖:https://www.doczj.com/doc/a89063154.html,/viewthread.php?tid=488

打开mods\bf2\Level

s\相应地图\server.zip\Init.con

找到以下代码:

GameLogic.MaximumLevelViewDistance 400

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

gameLogic.setDefaultNumberOfTicketsEx 16 1 100
gameLogic.setDefaultNumberOfTicketsEx 16 2 110
gameLogic.setDefaultNumberOfTicketsEx 32 1 200
gameLogic.setDefaultNumberOfTicketsEx 32 2 220
gameLogic.setDefaultNumberOfTicketsEx 64 1 300
gameLogic.setDefaultNumberOfTicketsEx 64 2 330
gameLogic.setDefaultNumberOfTicketsEx 128 1 50
gameLogic.setDefaultNumberOfTicketsEx 128 2 50
gameLogic.setDefaultTimeToNextAIWave 8
gameLogic.setTicketLossAtEndPerMin 200
gameLogic.setTicketLossPerMin 1 12
gameLogic.setTicketLossPerMin 2 6其中的110 200 220 300 330 都是可以直接修改的电脑阵营BOT人数,注意各行对应不同的地图尺寸,有16人的,32人的,64人的

最后两行定义的是对应团队在劣势下的兵力损失速度,单位是人/分钟







四、地图修改







来自BF2MODWiKi
跳转到: 导航, 搜索
这篇文章讲述 地图的修改 。
作者:lattude2003,wujj123456
在进行任何修改前请备份相应文件,否则后果自负。

点击这里回到模组修改手册首页目录 [隐藏]
1 概述
1.1 Info
1.2 实体部分
2 Info里的desc文件
3 Init.con
3.1 单张地图个性化兵力值修改、兵力损失速度修改
3.2 地图空投载具的修改
3.3 修改该地图的双方
4 Sky.con
5 GamePlayObjects.con
5.1 地图载具刷新的修改
5.2 旗帜修改

[编辑]概述
地图有两部分组成,第一部分是info部分,关于地图的信息都在info里面定义,第二部分是地图实体,对于地图的修改主要都在第二部分进行

[编辑]Info
\mods\相应模组\Levels\Info文件夹中,png图片是大家在单人游戏或者地图读取是看到的图片,都是在这里,而另一个相当重要的内容就是那个desc文件,该文件用记事本打开,里面定义了地图在游戏菜单界面显示的名称、模式和读取音乐。但注意,info文件夹中的内容只控制游戏菜单界面,就是进入模组,单人游戏或者多人游戏那里的显示而已,实体在第二部分。

[编辑]实体部分
有两个文件,server.zip和client.zip,client.zip里面主要是保存贴图等等文件,对于代码修改,只要修改server.zip里面的内容就可以了。有的地图有archive.md5,这是用来联网文件校验的。

打开server.zip,你会看到很多文件,里面分别控制地图的一部分内容,修改这些文件就可以得到相应的效果,比如:

Init.con 地图的初始化
AmbientObjects.con 控制地图环境
CompiledRoads.con 和地形相关
Sky.con 控制天空
StaticObjects.con 定义该地图中用到的固定物体
Terrian.con 控制地形读取
Water.con 当然是控制水的
这里面还有很多,相当一部分不

是代码修改能做得,而是由编辑器自动生成的,代码修改只能对地图做简单的修改,下面会做详细介绍。

如果你想做一幅完整的地图,请学习BF2编辑器使用(该部分不懂英文者免入)。

[编辑]Info里的desc文件
以BF2的大庆油田为例:


Daqing Oilfields
map description for modders maps not localized (english only)
common/sound/menu/music/load_CH_music.ogg


Unlocalized test for this mode on this map
Unlocalized test for this mode on this map
Unlocalized test for this mode on this map



Unlocalized test for this mode on this map


是游戏界面显示的地图名称

是地图介绍,这句话就是定义了地图介绍是LOADINGSCREEN_MAPDESCRIPTION_daqingoilfields,指向了utxt中对应的一段文字,当然也可以选择在locid里面直接键入英文,国外的玩家地图都是直接键入英文,但这样就无法进行多语言操作了,但这也是一般的方法,因为共享地图文件都以一个压缩地图包的形式,无法改动utxt里面的内容。只有模组带地图的情况下才会考虑多语言介绍。

此行顾名思义是指定读取音乐所在位置。

是关键部分,定义在游戏菜单中出现的地图游戏类型。

很多模组的地图,大家会看到在单人游戏里面显示有单人游戏,但是进入却直接跳出游戏,这就是因为该地图实际并没有单人模式,没有写AI,但是在.desc里面错误地定义了单机游戏,导致游戏菜单界面显示单人游戏。正如上面所说,desc是控制游戏菜单界面里面的显示,并不等于显示了的东西就是有,没显示的东西就是没有,一幅好的地图这两者应该是对应的。

[编辑]Init.con
[编辑]单张地图个性化兵力值修改、兵力损失速度修改
该方法在部分模组以及地图可能失效,由dustdune提供,原帖:https://www.doczj.com/doc/a89063154.html,/viewthread.php?tid=488

打开mods\bf2\Levels\相应地图\server.zip\Init.con

找到以下代码:

GameLogic.MaximumLevelViewDistance 400

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

gameLogic.setDefaultNumberOfTicketsEx 16 1 100
gameLogic.setDefaultNumberOfTicketsEx

16 2 110
gameLogic.setDefaultNumberOfTicketsEx 32 1 200
gameLogic.setDefaultNumberOfTicketsEx 32 2 220
gameLogic.setDefaultNumberOfTicketsEx 64 1 300
gameLogic.setDefaultNumberOfTicketsEx 64 2 330
gameLogic.setDefaultNumberOfTicketsEx 128 1 50
gameLogic.setDefaultNumberOfTicketsEx 128 2 50
gameLogic.setDefaultTimeToNextAIWave 8
gameLogic.setTicketLossAtEndPerMin 200
gameLogic.setTicketLossPerMin 1 12
gameLogic.setTicketLossPerMin 2 6其中的110 200 220 300 330 都是可以直接修改的电脑阵营BOT人数,注意各行对应不同的地图尺寸,有16人的,32人的,64人的

最后两行定义的是对应团队在劣势下的兵力损失速度,单位是人/分钟

[编辑]地图空投载具的修改
打开\mods\相应模组\Levels\相应地图\server.zip\Init.con

在最后加上(如果原来没有就加上,否则只要修改)

gameLogic.setTeamDropVehicle 1 "air_j10"

gameLogic.setTeamDropVehicle 2 "usair_f18"

红色部分改成你想想要的载具代码,具体代码可以参考BF2载具代码。

[编辑]修改该地图的双方
gameLogic.setTeamName 1 "CH" <<< 定义冲突双方
gameLogic.setTeamName 2 "US" <<< 定义冲突双方

gameLogic.setTeamLanguage 1 "Chinese" <<< 定义冲突双方语言
gameLogic.setTeamLanguage 2 "English" <<< 定义冲突双方语言

gameLogic.setTeamFlag 0 "flag_neutral" <<< 定义旗帜图案
gameLogic.setTeamFlag 1 "flag_ch" <<< 定义旗帜图案
gameLogic.setTeamFlag 2 "flag_us" <<< 定义旗帜图案

gameLogic.setKit 1 0 "CH_Specops" "ch_light_soldier" <<< 从这里开始就是定义重生界面的7种装备
gameLogic.setKit 2 0 "US_Specops" "us_light_soldier"

gameLogic.setKit 1 1 "CH_Sniper" "ch_light_soldier"
gameLogic.setKit 2 1 "US_Sniper" "us_light_soldier"

gameLogic.setKit 1 2 "CH_Assault" "ch_heavy_soldier"
gameLogic.setKit 2 2 "US_Assault" "us_heavy_soldier"

gameLogic.setKit 1 3 "CH_Support" "ch_heavy_soldier"
gameLogic.setKit 2 3 "US_Support" "us_heavy_soldier"

gameLogic.setKit 1 4 "CH_Engineer" "ch_light_soldier"
gameLogic.setKit 2 4 "US_Engineer" "us_light_soldier"

gameLogic.setKit 1 5 "CH_Medic" "ch_light_soldier"
gameLogic.setKit 2 5 "US_Medic" "us_light_soldier"

gameLogic.setKit 1 6 "CH_AT" "ch_heavy_soldier"
gameLogic.setKit 2 6 "US_AT" "us_heavy_soldier"通过替换、更改这部分内容可以轻松实现地图冲突双方或者地图采用的某个兵种的改变。

一个相当好的例子:修改BF2原版地图在poe2中使用

[编辑]Sky.con
该文件的修改最好借助编辑器,但没有编辑器也能做简单的修改,比如移动太阳位置,调整阳光来向、颜色,改变天空贴图等等,相关修改例子可以参考FH2电影拍摄组的修改:https://www.doczj.com/doc/a89063154.html,/thread-24088-1-1.html

[编辑]GamePlayObjects.con
该文件可以说是代码修改地图里面最有用的一个文件了

,里面控制了和游戏相关的所有内容。

修改的文件路径:\mods\相应模组\Levels\相应地图\server.zip\GameModes\游戏模式\地图大小\GamePlayObjects.con

游戏模式:gcm_cp为联机默认的抢旗模式,gcm_coop是带Bot的联机COOP模式,sp1是16人地图单机,sp2是32人单机地图,sp3是64人单机地图,但并不是每一幅地图都有这些文件夹,比如原版的大庆就只有gcm_coop,gcm_cp和sp1。
地图大小分为:16、32、64,部分地图可能还能看到128,但是这个基本没用,现在还无法开出128人的地图。
[编辑]地图载具刷新的修改
打开会看到一段一段这样的代码:

rem [ObjectSpawnerTemplate: CPNAME_DO_SP16_oldcity_AH]
ObjectTemplate.create ObjectSpawner CPNAME_DO_SP16_oldcity_AH
ObjectTemplate.activeSafe ObjectSpawner CPNAME_DO_SP16_oldcity_AH
ObjectTemplate.modifiedByUser <<< 修改者
ObjectTemplate.isNotSaveable <<< 是否能够节省
ObjectTemplate.hasMobilePhysics <<< 是否具有物理移动特性
ObjectTemplate.setObjectTemplate <<< 要刷新出现的载具类型(在这里换要出生的载具就可以了)
ObjectTemplate.TimeToLive <<< 重新出现的时间
ObjectTemplate.Distance <<< 距离
ObjectTemplate.DamageWhenLost <<< 载具损坏时对人的伤害

相关的内容太多,无法转到Wiki,更多信息请大家参考这里:https://www.doczj.com/doc/a89063154.html,/viewthread.php?tid=896&page=1&fromuid=170#pid9489

注意:该帖子的修改样板为bf2sp64v11.zip里面的大庆地图。如果大家没有该模组,就看BF2的大庆地图就可以了,里面的具体代码可能有所不同,但这并不影响学习,毕竟每幅地图都不同,只要大家领会核心意思,大同小异,如果是BF2的大庆64人,要修改的文件位于\mods\bf2\Levels\Daqing_oilfields\server.zip\GameModes\gpm_cq\64\GamePlayObjects.con








五、其他修改










来自BF2MODWiKi
跳转到: 导航, 搜索
这篇文章讲述 其他的小修改 。
作者:Napoleon_Bon,wujj123456,wumoran
在进行任何修改前请备份相应文件,否则后果自负。

点击这里回到模组修改手册首页[编辑]游戏文字
语言信息文件在mods\bf2\Localization\chinese目录的UTXT文件中,自己想怎么改就这么改吧。。。你可以改成杀了人显示,XXX废了XXX,XXX废了XXX,或者喊医生时候,屏幕上显示,你就这么狠心扔下我不管么?

注意:必须使用繁体中文,具体方法就是在Word中打入简体中文,转换成繁体,然后复制到utxt中。同时BF2的繁体中文字符其实是缺失的,可能会有相当一部分字显示不出来。

[编辑]游戏音效
人物音效文件都在\mods\bf2\Common_client.zip\Sound 这里

Chinese目录下的,就是中国军队的语音文件

commander 是指挥官的音效
grun

t 是士兵音效
Squadleader 是小队长音效
filter 是经过无线电滤波器的音效
no_filter 是未经滤波的音效(原声)
至于每一个音效文件是什么,就不用多说了吧,打开听听就知道了

武器载具等的音效,在\mods\bf2\object_client.zip\相对应的武器载具\sounds目录中

1Pfire 表示第一人称开火的音效
3Pfire 表示第三人称开火的音效
outdoor 表示室外(在屋子里属于室内,BF2中室内与室外的枪声不一样)
relod 表示重新装填时的音效
fire_rate_switch 表示发射方式单连发切换
boltclick 表示拉枪栓的声音
deploy 拿出武器时候的声音
Stereo 表示立体声
shift 上子弹的声音
其他声音

Common_client.zip\Material\Bullet-Fly-By

里面都是子弹打在身边的声音

Common_client.zip\Material\Collision\Bag

物体掉落的声音

Common_client.zip\Material\Collision\Glass

玻璃碎鸟~

Common_client.zip\Material\Collision\Helmet

冒似头盔之类的东东落地..

Common_client.zip\Material\Collision\Vehicle

物体之间撞击,以前很想找的人被撞的声音就在这里

Common_client.zip\Material\Collision\Weapon

武器掉落...不过冒似只有火箭桶掉下来的声音...

Common_client.zip\Material\HeliRotorWind

恐怖的水和风的声音

Common_client.zip\Material\Impact

N多武器爆炸的声音,以前问了很多人都不知道,现在找到了,所有武器的爆炸..

Common_client.zip\Material\Ricochets

子弹打在墙上了...

Common_client.zip\Material\Shells

各种子弹落地声音

Common_client.zip\Material\Vehicle_to_Ground

是路上的声音,就是轮子开过地面的声音 ---

Common_client.zip\Sound

都是人物的说话和各种补给之类的声音..



相关主题
文本预览
相关文档 最新文档