第二个方法应该管用的,因为 give 或相同含义的命令在游戏里使用率较高,估计具体参数需要再查一下。
关卡的脚本一般在 maps 目录里有定义,maps 里的就是单人关卡文件,maps/mp 是多人地图文件。
我没玩过 cod2 的单人模式,所以不太清楚都有哪些单人地图。但现在的 FPS 游戏的目录结构都是查不多的。看了一下 iw_07 里面,譬如 maps/trainyard.gsc 里面的:
level.player takeWeapon( "RGD-33russianfrag" );
level.player takeWeapon( "Stielhandgranate" );
level.player takeWeapon( "smoke_grenade_american" );[/code]
就是说 trainyard 这一关的玩家会拿什么武器登场。
修改的原则按照从最后一个官方文件包开始找需要的文件,然后提出来建立当前目录内文件名称为 ascii 字符排列相对最后的一个,然后修改即可。或者使用 +fs_game 指向其他目录,修改的东西可以放到这个目录里。
如果原来的游戏的脚本设计没有考虑容错部分,修改武器的话在某些情况下可能造成游戏停滞或退出。譬如你先有了按脚本后来才会触发得到的新武器等等。