二战英雄 是我很喜欢的一个游戏,虽然是 05 年的老了点,不过我总是久不久拿出来玩一下.
"坦克攻击" 这一奖励任务中没有修理箱,看着那些被打坏的坦克实在是遗憾. 有人说要用 mod 但是找了很久也没找到传说中的 tank repair mod 最后找到了一个修改存档的方法.共享一下吧! 虽然程序员们不太玩这个,不过我推荐您一玩.
http://tieba.baidu.com/f?kz=514678731
百度贴吧 > 二战英雄吧 > 浏览贴子
吧主: boy12abb yspds 枪枪玫瑰
代码:关于SAVE存档修改的一些补充(新手必读)
1楼
昨天偶然拜读了下枪枪玫瑰的帖子
http://tieba.baidu.com/f?kz=503669033
感觉有些领悟 写上几句本人对代码的理解 供初学者参考
E:\Soldiers - Heroes of World War II\profiles\players\save\1. katyusha (ussr)\chepel\abc\mission.mi 这个是存档文件的路径 没什么可说的
players 是你玩二战英雄的用户登陆名
save 是存档的目录
1. katyusha (ussr) 是战役的名字(卡秋莎 苏俄)
chepel 是地图的名字(切菲尔 苏俄的第一个任务)
abc 是存档的名字 保存的时候自己随便起
mission.mi 这个就是我们可以修改的代码文件
我们就用苏俄阵营的第一关来做例子
用记事本打开这个文件 首先来观察一下
代码有很多行 但是稍微细心点看 会发现了共同点
大括号都是成双成对的 { 开始 - 代码 - 结束 }
代码基本都是以Human(人类)或Entity(实体)开头的
也就是说不论士兵还是坦克都有一段代码用来描述自己
由于第一关分配玩家使用的车辆可以控制T34坦克
所以就用它来分析一下二战英雄中的武器车辆代码
首先修改的前提是要找到在什么地方改
我们先找到这辆T34坦克的代码位置
在记事本中查找(按Ctrl+F是快捷键) t-34-76
这个时候光标会跳转到查询到的位置
{Entity "t-34-76-41" 0x8060 ... 以这段为开头
Entity说明它不是人(士兵)它属于车辆(可操作控制)类
通俗点解释就是在地图上它以一个△形呈现而不是一个圆点
t-34-76-41代表的是车辆的名称在游戏里它叫T-34坦克
具体车辆武器的代码还是看枪枪玫瑰的帖吧 写的很详细了
这段是可以修改的 你把它改成"kv-2" 保存后 然后在游戏中
重新读取文挡 那么这辆坦克就变成大脑壳了
0x8060 这个数没研究过 也不清楚什么意思
继续向下看 另起了一个大括号
{Position 5355.4 -3616.96 0}说的是它在地图中的坐标位置
坐标的位置不是很好掌握 不建议修改
{Turn 171.274}这句说的应该是它的角度也就是头冲哪个方向
这句修改他也没什么意义 下边是重点啦
{Extender "inventory" 延伸 库存
{box 箱子
{clear} 起点
{item "ammo mgun" 1940 {cell 0 0}} 机枪子弹1940发
{item "bullet76 ap" 49 {cell 0 1}} 76毫米穿甲弹49发
{item "repair_kit" {cell 0 4}} 修理工具箱
{item "can" {cell 3 4}} 铁罐
{item "bullet76 fg" 27 {cell 0 2}} 76毫米高爆弹27发
}
}
上述代码item中就描述了这个坦克中的内部物品及摆放的位置
内部空间为5×6个格子 横竖坐标都从0开始
Y
X+01234
0□□□□□
1■■■■□ {cell 0 1} 炮弹占1排 用第一格坐标代表
2□□□□□
3□■■□□ {cell 1 3} 油罐占4格 用第一格坐标代表
4□■■□□
5□□□□□
后边的{cell x y}就是这个物品在坦克内部中的坐标
修改的时候要注意炮弹最大基数为150机枪子弹是15000
如果大于这个数会自动向下增加一组把后边的东西位置挤掉
所以每项的数量最好都不要大于它的最大基数
如果想要多个维修工具包 可以改为
{item "repair_kit" 2 {cell 0 4}} 就变成两个工具箱了
机枪子弹在这里是通用的 但是由于各种车辆的火炮口径不同
所以导致炮弹的口径也大不相同 修改的时候请注意炮弹的口径
bullet+口径毫米 ap是穿甲弹 fg是高爆弹 例如
{item "bullet85 ap" 150 {cell 0 1}} t-34-85使用85mm穿甲弹
{item "bullet122 fg" 150 {cell 0 2}}is-2使用的122mm高爆弹
{item "bullet152 fg" 100 {cell 0 0}}kv-2使用的152mm高爆弹
继续向下看
{Interaction
{Calls
{"check_sinking" 1774 0.32
}
}
} 这段代码属实不明白什么意思 删掉也不报错误 不管它继续
{Player 1} 1-代表玩家可以控制的单位 2-敌人 3-友军
{MID 20} 好象是一个编号 不需要修改它
顶
0
2008-12-16 15:54
回复
sykay
4位粉丝
核心会员
6
2楼
{Weaponry
{Number 1}
}初始就是上边这样的 但是可以改成如下
{Weaponry
{State "mgun" 状态 机枪
{Mounted "mg34"} mg34机枪
{Weapon 子弹
{Ammo "ammo mgun" 100} 机枪弹夹内有子弹100发
}
}
}就是把这个坦克的默认副武器改成了德军mg34机枪
也可以改成"browning"盟军m1919机枪任意挥霍子弹
{Chassis
{MovementSpeed 1.66667}
}
这段是单位移动速度 我曾经改成2.0000也没见车辆跑的快过
看来如果想改成超级坦克还是需要修改游戏后台内部代码的
{Chassis
{MovementSpeed 1.66667}
{FuelBag
{Remain 150} 一般车辆不要高过200 否则开动了也变成200
}
}在Chassis中加入FuelBag标签后可以修改车辆的油料值
Afrika 42里边英军第一个地图的扫雷车就是无限油料
不知道代码是怎么写的 不过一般地图200燃料足够跑了
顺便说一句开kv-2坦克的感觉就好象驾驶悍马一样绝对喝油机器
如果坦克被炸伤再保存后代码中可能会出现很多BoneSave标签
只需成对的把它们都删除掉就可以了 当然不保证坦克会健康
以下是卡秋莎的代码 在大地图中虐得电脑一点脾气都没有
{Entity "bm-13" 0x8041
{Position 3357.81 7512.3 0.734879}
{Turn -113.115}
{Extender "inventory"
{box
{clear}
{item "ammo katusha" 400 {cell 0 0}}
}
}
{Player 1}
{MID 91}
{Chassis
{MovementSpeed 1.88889}
{FuelBag
{Remain 200}
}
}
}
---------------------------------------------------------
还有实战中最好用的t-34-85的部分关键代码
{Extender "inventory"
{box
{clear}
{item "bullet85 ap" 150 {cell 0 0}}
{item "bullet85 fg" 150 {cell 0 1}}
{item "bullet85 ap" 150 {cell 0 2}}
{item "bullet85 fg" 150 {cell 0 3}}
{item "repair_kit" 2 {cell 0 4}}
{item "ammo mgun" 15000 {cell 3 4}}
{item "ammo mgun" 15000 {cell 3 5}}
}
}
{Weaponry
{State "mgun"
{Mounted "browning"}
{Weapon
{Ammo "ammo mgun" 100}
}
}
}
{Chassis
{MovementSpeed 1.66667}
{FuelBag
{Remain 450}
}
}
最进玩联机MOD BTRH 1.31的时候 发现里边有很多新品车辆
"su-122" "bt-7" "pzjager" "ba-6" "t-60" "bt-7a" "T-26" "T-26A" "Pz-2F" "PZ-3L" "PZ-3N" "vickers-b" "m8-scott" "chaffee" "Panzerflak" "SdKfz234" "valentine" "t-34-76-42" "t-34-76-41" "t-34-76-40" "t-34-76-43" "t-34-85" "PZ-3G" "PZ-4d" "PZ-4g" "PZ-4h" "firefly" "PZ-5" "PZ-6" "PZ-6e" "PZ-6b" "kv-1" "kv-2" "kv-85" "kv-8" "is-2" "isu-152" "sdkfz250_3" "Jugdpanther" "Ferdinand" "Matilda" "m10achilles" "m10wolverine" "m36slugger" "m36" "sdkfz10-5" "StuG-3b" "m4a2" "m4a3" "StuG-40b" "StuG-3f" "Stug-4g" "cromwell" "Comet" "air-bag" "mtb_d3" "m7priest" "Hummel" "panzerjager" "t-26-flamethrower" "mkivcrocodile" "t-34_mineexpl" "Pz-4d Sapper tank" "m4a3_mineexpl" "PZ3-Flamethrower" "Matilda-Flamethrower" "su-100" "m3stuart" "t34-flamethrower" "isu-122" "t-34-57" "Kv-1E" "Nashorn" "su-85" "t-34-f38" "m4a3e2" "m4a3-105" "STUH42" "mkivchurchill-95" "mkivchurchill" "is-1" "minenraumpanzer" "jagdtiger" "Maus" "Hetzer" "sdkfz10-pak" "mk2daimler" "m8grayhound" "m4a2" "m4a2_LL" "sdkfz-222" "t73" "m3" "crusader_mkII" "mk4crusader" "M45" "mkIIIcrusaderAA" "bison" "T-70" "M18_hellcat" "Marder" "SdKfz251_22" "SturmPzIV" "Tetrarch" "Star" "pz38tC" "Carrier" "Stag_Hound" "su76m" "m5a1" "kv-2_42" "pz-3f" "pz-3h" "pz-4f2" "su-122_42" "PZ-6_42" "PZ-3j" "pz-5-G1" "su-152" "T19" "T48" "t-34-85-ot" "m36b1" "priest_kangaroo" "m43" "PZ-1B" "sdkfz232" "Panzerflak"
"ba-20m" "sdkfz-223" "sdkfz250_3" "sdkfz251_1" "m3a1" "m3a1-LL" "SdKfz251_22" "SdKfz251_2" "m21" "m21-LL" "m16aa" "zis42-61k"
"flak41" "6-funt" "17-funt" "mortar" "pak38" "pak40" "pak36" "zis-2" "zis-3" "37-atgun" "45mm-37" "Bofors" "25-pounder" "minomet_81" "minomet_80" "minomet_120" "maksim" "Bs-3"
期待各位代码高手发掘整理 本人QQ:19535476 提前对大家说一声圣诞快乐 Happy New Year~
2008-12-16 15:54
回复
sykay
4位粉丝
核心会员
6
3楼
修改代码获得超级坦克以后 一定要在困难模式下游戏 否则就失去了虐电脑的意义了 切记切记
2008-12-16 16:04
回复
60.17.0.*
4楼
isu-152 ISU-152 152mm
ferdinand 象式 88mm
kv-85 KV-85 85mm
m8-scott M8斯科特 75mm
kv-2 KV-2 152mm
m10achilles M10歼击车 90mm
jugdpanther 猎豹 88mm
chaffee M24霞飞 75mm
matilda 马蒂尔达 57mm
cromwell 克伦威尔 75mm
bt-7a BT-7A 76mm
mkivchurchill MkIV邱吉尔 75mm
vickers-b 威克斯-B 45mm
----------------------------------
想要更全的车辆武器代码 请使用WinRAR打开
E:\Soldiers - Heroes of World War II\resource\Patch\3.pat
在这个文件内部的entity\-vehicle\目录内包含以下文件夹
tank_light 轻型坦克
tank_medium 中性坦克
tank_heavy 重型坦克
btr 一般车辆
car 小型车辆
里边除名字为x以外的目录名都是车辆代码
如果有时间的可以仔细研究一下
战车找不到合适的炮弹代码怎么办
比如说卡秋莎的火箭弹是特殊型号的怎么弄
一般用代码新生成的车辆炮膛内都会有一发炮弹
可以将它退出炮膛然后再保存查找就会查到新的代码了
2008-12-16 19:21
回复
战地精英
枪枪玫瑰
456位粉丝
核心会员
6
5楼
顶一下
以上这些我都知道,我就是不说,嘿嘿嘿嘿嘿嘿
继续虐我的笔记本 .
2008-12-16 21:56
回复
boy12abb
48位粉丝
核心会员
6
6楼
继枪枪玫瑰之后的第二位
谢谢了
2008-12-17 11:59
回复
wl194
2位粉丝
7楼
如果要把改出的坦克里坐满人 要加什么?
2009-01-13 17:17
回复
绚丽华魂
10位粉丝
8楼
我把BA-M 苏装甲 变成 卡秋莎 后 ,人进车辆后车无法动弹也不能开火,不知为什么??
2009-01-21 17:17
回复
wl194
2位粉丝
9楼
是啊 我也发现过 人进去都出不来了。。。。
2009-01-26 19:59
回复
ligom
13位粉丝
10楼
改代码,人进不去啊!
2009-08-13 21:06
回复
daitunongfu
44位粉丝
11楼
老帖子,好帖子!入门贴!!!
2009-08-14 08:33
回复
ligom
13位粉丝
12楼
昨晚学习了SKYAY的这个帖子,再请教QQ群的泡泡(高手啊)后,修改了一次游戏,发现楼主的帖子似乎是有一点不太对的地方。
如:
{Calls
{"check_sinking" 1774 0.32
}
}
} 这段代码属实不明白什么意思 删掉也不报错误 不管它继续
{Player 1} 1-代表玩家可以控制的单位 2-敌人 3-友军
{MID 20} 好象是一个编号 不需要修改它
=======================================================================
经过多次试验,“check_sinking" 1774 0.32一段似乎是士兵进入坦克的代码,是十分有用的,不能删除,否则士兵是进不去坦克的。
另外如果凭空添加一辆坦克,也不会成功,问题应该在这儿:
Entity "t-34-76-41" 0x8060 ... 以这段为开头
……
0x8060 这个数没研究过 也不清楚什么意思
=======================================================================
存档中不管是HUMAN还是Entity,都会有0x8060之类的这个代码,而且在MISSION这个文件的最后,还会有对应的代码,所以说要想凭空添加一辆坦克,事先在地上应该是有一样物品,也就是说你可以在地上先放一只枪,然后再存档退出修改,凭空添加这种事也许是因为我水平原因吧,一晚上是一次也没成功过。
2009-08-14 12:35
回复
ligom
13位粉丝
13楼
以上只是我个人琢磨和在QQ群泡泡的指点下,自己的一些看法,不代表一定正确。
2009-08-14 12:45
回复
121.234.10.*
14楼
回复:12楼
“{MID 20}”和“0x8060 ”这二个是每个单位独特的ID代码,如果你要复制许多单位就得改成新的不同的代码,不然会冲突。
比如复制一群士兵,就要把Human那段复制粘贴,把每个人的ID全改成新的,多搞几次。然后读取游戏,就可以体验人海战术了,哈哈
2009-10-06 09:17
回复
sykay
4位粉丝
核心会员
6
15楼
我好久没来了 还这么热闹 哈 游戏半年没玩了 现在手特别生 哎 自从上班以后 已经落伍了...
2009-11-07 17:52
回复
120.33.164.*
16楼
我想凭空在游戏里增加坦克和人员而不会影响到游戏要怎么做
2010-07-08 10:09
回复
snopie
1位粉丝
17楼
只要0x~~~和MID不一样,随便加,另外,士兵的代码好像还多一个name ID
2010-12-31 21:56
回复
红蓝魂
frjple
9位粉丝
正式会员
4
18楼
怎么每次一修改,载入的时候就出错