Template:Translation:未知参数。 统计信息(Statistics)最早出现在Minecraft Beta1.5版本的升级中,并与成就一起在Notch 3月18日的博客中被提及。
成就并不会如同“砍倒10000棵树”这般琐碎,而更类似于”骑着猪从悬崖上掉下来“的这般挑战。然而统计数据则不然,统计信息用来记录您已经砍到了多少棵树。我们长期的计划是可以在minecraft.net中profile一栏显示您的成就和统计,如果您希望用来吹嘘自己的战果时可以用到。
自版本beta 1.6更新以来就可以在线保存统计数据,但是此时极易出错。[2]
统计信息共分为三栏:通用、方块以及物品。通用窗口分门别类地显示了大量数据,详细数据如下表所示。方块窗口显示了每一种方块被合成、使用(放置)以及挖掘的次数。物品窗口显示了不同物品被消耗、合成和所使用的次数。在方块和物品窗口可以通过单击顶部的按钮进行排序。
统计信息列表
来源:统计方案
统计项目 | 说明 | 统计ID |
---|---|---|
游戏退出次数 | 通过单击“保存并退回到标题画面”退出的次数。 | stat.leaveGame |
游戏时间(分钟) | 总游戏时间。并不一定会以分钟的形式显示:可能是秒、分钟、小时或者是天,取决于哪一个单位更能描述游戏时间。如果游戏暂停,游戏时间也随之停止。如果游戏时间显示为“5.5h”,它意味着您已经玩了5个小时30分钟(并不是50分钟)。 | stat.playOneMinute |
上次死亡时间 | 玩家从上次死亡之后生存的时间 | stat.timeSinceDeath |
行走距离 | 在游戏中行走的总距离。 | stat.walkOneCm |
潜行距离 | 在游戏中潜行的总距离。 | stat.crouchOneCm |
疾跑距离 | 在游戏中疾跑的总距离。 | stat.sprintOneCm |
游泳距离 | 在游戏中游泳的总距离。在水中跋涉游泳距离也会增加。水中跳跃的垂直距离并不包括其中。 | stat.swimOneCm |
掉落高度 | 在游戏中除跳跃外掉落的总高度。如果玩家掉落高度超过一方块,则此次掉落将被计算在内。 | stat.fallOneCm |
攀爬高度 | 在游戏中攀爬梯子和藤蔓的总高度。 | stat.climbOneCm |
飞行距离 | 在游戏中飞行的总距离,离地至少一方块高的飞行才会被计算在内。 | stat.flyOneCm |
水下移动距离 | 在游戏中水下移动的总距离。 | stat.diveOneCm |
坐矿车移动距离 | 在游戏中乘坐矿车移动的总距离。 | stat.minecartOneCm |
坐船移动距离 | 在游戏中乘船移动的总距离。 | stat.boatOneCm |
骑猪移动距离 | 在游戏中通过放置鞍进而骑乘猪移动的总距离。 | stat.pigOneCm |
骑马移动距离 | 在游戏中通过放置鞍进而骑乘马移动的总距离。 | stat.horseOneCm |
跳跃次数 | 在游戏中跳跃的总次数。 | stat.jump |
物品掉落 | 在游戏中玩家掉落物品的总次数。因死亡而掉落物品不被计算在内。 | stat.drop |
造成伤害 | 在游戏中玩家受到超过1()伤害的近战伤害总和。 | stat.damageDealt |
受到伤害 | 在游戏中玩家所受到所有超过1()伤害的伤害总和。 | stat.damageTaken |
死亡次数 | 在游戏中玩家死亡的次数。 | stat.deaths |
生物击杀数 | 在游戏中玩家击杀生物的次数。 | stat.mobKills |
生物繁殖数 | 在游戏中让动物繁殖的次数。 | stat.animalsBred |
玩家击杀数 | 在多人游戏(PvP服务器)中击杀玩家的总数,间接杀害不被计算在内。 | stat.playerKills |
捕鱼数 | 在游戏中捕到鱼的总数。 | stat.fishCaught |
与村民说话 | 玩家与村民说话的次数。(打开与村民的交易界面) | stat.talkedToVillager |
与村民交易 | 玩家与村民交易的次数。 | stat.tradedWithVillager |
吃掉的蛋糕片数 | 玩家吃掉的蛋糕片数。 | stat.cakeSlicesEaten |
炼药锅装水次数 | 玩家用水填满炼药锅的次数。 | stat.cauldronFilled |
从炼药锅取水次数 | 玩家从炼药锅中取水的次数。 | stat.cauldronUsed |
清洗盔甲次数 | 玩家在炼药锅中洗掉盔甲颜色的次数。 | stat.armorCleaned |
清洗旗帜次数 | 玩家在炼药锅中洗掉旗帜颜色的次数。 | stat.bannerCleaned |
与酿造台互动次数 | 玩家与酿造台互动的次数。 | stat.brewingstandInteraction |
与信标互动次数 | 玩家与信标互动的次数。 | stat.beaconInteraction |
与工作台互动次数 | 玩家与工作台互动的次数。 | stat.craftingTableInteraction |
与熔炉互动次数 | 玩家与熔炉互动的次数。 | stat.furnaceInteraction |
搜查发射器次数 | 玩家搜查发射器的次数。 | stat.dispenserInspected |
搜查投掷器次数 | 玩家搜查投掷器的次数。 | stat.dropperInspected |
搜查漏斗次数 | 玩家搜查漏斗的次数。 | stat.hopperInspected |
开箱次数 | 玩家打开箱子的次数。 | stat.chestOpened |
陷阱箱触发次数 | 玩家触发陷阱箱的次数。 | stat.trappedChestTriggered |
打开末影箱次数 | 玩家打开末影箱的次数。 | stat.enderchestOpened |
音符盒播放次数 | 玩家击打音符盒的次数。 | stat.noteblockPlayed |
音符盒调音次数 | 玩家与音符盒互动的次数。 | stat.noteblockTuned |
盆栽种植数 | 玩家向花盆中放置植物的次数。 | stat.flowerPotted |
播放唱片次数 | 玩家在唱片机中播放唱片的次数。 | stat.recordPlayed |
躺在床上的次数 | 玩家在床上睡觉的次数。 | stat.sleepInBed |
存储
统计信息存储于 .minecraft/stats/stats_username_unsent.dat. 中,并根据玩家的统计信息和成就进行更新。文件结构基于JSON,通常如下所示:
{ "user":{ "name":"xxxxxxxx", "sessionid":"local" }, "stats-change":[ {"id":value}, {"id":value}, ], "checksum":"xxxxxxxxxxxxxxxx" }
统计信息通常保存在stats-change段中,如果不需要更新则留空。举例来说,在你跳之前,跳跃次数将没有记录。距离将以厘米的形式存储、时间将以刹那的形式存储(一刹那等于0.052秒)。以游戏时间为例:
{"1000",4}
当然对于统计信息也会有校验。如果修改其信息导致校验不通过,则所有的统计信息将会被删除。校验的方法为计算某一个带有ID信息(在当前算法中通常为“local”)字符串的MD5的哈希值,字符串以下列格式存储“统计信息、数据、统计信息、数据(与上文中数据相同)”。举例来说,统计信息名为“stat.startGame”其相应的ID为1000。值得注意的是,与标准MD5算法不同,段首的0在计算时会被削去(可能由于代码的全区设置导致)。另外,当统计信息文件被加载时,如果任何统计信息字段未被识别(比如统计信息来自一个较新版本的Minecraft或来自于其他mod),此时校验将无法匹配导致统计信息将被删除。
由于这些字段在存储统计信息外还存储成就以及方块信息。成就ID可以由其在成就中的数据加5242880所得。举例来说,5242880表示“打开物品栏”,5242882表示“获得一个工作台”。后面的数据表示获得该成就的次数(获得成就的次数在游戏中并未显示。)方块信息的存储方式与成就类似,但是需要在方块ID后面加上1677216。后面的数据表示获得该方块的次数。
画廊
- MineCraftStatistics1.jpg
- MineCraftStatistics2.jpg
- MineCraftStatistics3.jpg
你知道吗
- 统计信息会忽视数据元。也就是说,所有类型的木头、羊毛、树苗和染料将会作为同一样物品进行计算。煤和木炭也会被计为同一种物品。
- 使用弓射箭不计为使用次数。
- “合成次数”包括熔炼,比如通过树木制作木炭。
- 在物品菜单中,并没有墨囊。这是由于墨囊与染料共用同一ID(参见“你知道吗”第一条)。
- 当你在统计信息中观看指南针或者时钟时,会为你显示当前据出生点的方位以及时间。
- 当你在游戏时进入统计信息,其游戏时间要比游戏退出时大1.
- 可可果在统计信息中会显示其成熟的样子,包括果实顶部和四周。
漏洞
- 当你使用Shift+单击工具和家具界面进行合成时,统计信息此时并不会进行计算。
- 草在统计信息中显示为枯死的灌木
- 在多人生存模式中,玩家击杀另一位玩家不会增加“玩家击杀数”。
- 统计信息和成就有时会没来由地自行重置,通常是由于minecraft.jar被替换或者增加MOD