yty 发表于 2012-6-15 19:54:13

危险物品解析

本帖最后由 yty 于 2012-6-15 19:55 编辑

本文章解析模式文件中文件头偏移0x16那个字节的含义。详见模式文件格式剖析。
末日浩劫中的危险物品包括两种:地雷和油桶。

物品种类设置

有四种可能值,分别为:

[*]无危险物品;
[*]只有地雷;
[*]只有油桶;
[*]有地雷和油桶。

物品数量设置
危险物品数量的默认值为8。使用模式文件可以把危险物品数量修改为1~250的值。如果想要0个危险物品,只需要把物品种类设置为无危险物品即可。
需要注意的是,即使把危险物品数量设置为很大的数,比如250,在普通地图上也不可能出现这么多危险物品。因为危险物品之间、危险物品与虫子之间都至少相隔一定的距离。所以那只是理论上可以设置的最大值。
并不是1~250中任一整数都可以被设置。随着数字增大,步长也在增大。1~30的步长为1,35~100步长为5,110~250步长为10。所以所有可能的取值可以形成下面的数列A:

[*]1
[*]2
[*]3
[*]4
[*]5
[*]6
[*]7
[*]8
[*]9
[*]10
[*]11
[*]12
[*]13
[*]14
[*]15
[*]16
[*]17
[*]18
[*]19
[*]20
[*]21
[*]22
[*]23
[*]24
[*]25
[*]26
[*]27
[*]28
[*]29
[*]30
[*]35
[*]40
[*]45
[*]50
[*]55
[*]60
[*]65
[*]70
[*]75
[*]80
[*]85
[*]90
[*]95
[*]100
[*]110
[*]120
[*]130
[*]140
[*]150
[*]160
[*]170
[*]180
[*]190
[*]200
[*]210
[*]220
[*]230
[*]240
[*]250

在模式文件中的存储方式
在旧版模式文件中,该字节只有四个取值,含义为:

[*]0x00 无危险物品
[*]0x01 只有地雷
[*]0x02 只有油桶
[*]0x05 有地雷和油桶

在新版模式文件中,该字节的取值包含了危险物品类别和数量的信息。
首先把字节值与4取模(mod)。得数有四种情况:

[*]0,无危险物品;
[*]1,只有地雷;
[*]2,只有油桶;
[*]3,有地雷和油桶。
【举例1】字节值为79。79 mod 4=3,所以该模式同时有地雷和油桶。
【举例2】字节值为246。246 mod 4=2,所以该模式只有油桶。

设该字节的值为V,上面一个步骤所得模值为M,计算E:
E=(V-8-M)/4
以E为索引号,在前述的数列A中查找相应的值。这个值就是危险物品数量。
【举例1】字节值为79。则V=79,M=3,E=(79-8-3)/4=17。在列表中,第17项为17。所以该模式包含17个地雷和油桶。
【举例2】字节值为246。则V=246,M=2,E=(246-8-2)/4=59。在列表中,第59项为250。所以该模式包含250个油桶。

注意:如果字节值为以下数,则游戏程序自动处理为值1,即8个地雷。这些无效值为:3, 4, 6, 7, 8, 9, 10, 11, 248, 249, 250, 251, 252, 253, 254, 255.

百战pp虫 发表于 2012-6-15 20:22:08

{:soso_e117:}我盖戳都盖累了,你自己盖吧 lol

逆天小虫 发表于 2012-6-18 23:28:44

精品
页: [1]
查看完整版本: 危险物品解析