Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement

Template:Translation:未知参数。 统计信息(Statistics)最早出现在Minecraft Beta1.5版本的升级中,并与成就一起在Notch 3月18日的博客中被提及。

Notchface

成就并不会如同“砍倒10000棵树”这般琐碎,而更类似于”骑着猪从悬崖上掉下来“的这般挑战。然而统计数据则不然,统计信息用来记录您已经砍到了多少棵树。我们长期的计划是可以在minecraft.net中profile一栏显示您的成就和统计,如果您希望用来吹嘘自己的战果时可以用到。

——Notch评论于他的博客里[1]


自版本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。后面的数据表示获得该方块的次数。

画廊

你知道吗

  • 统计信息会忽视数据元。也就是说,所有类型的木头、羊毛、树苗和染料将会作为同一样物品进行计算。煤和木炭也会被计为同一种物品。
  • 使用弓射箭不计为使用次数。
  • “合成次数”包括熔炼,比如通过树木制作木炭。
  • 在物品菜单中,并没有墨囊。这是由于墨囊与染料共用同一ID(参见“你知道吗”第一条)。
  • 当你在统计信息中观看指南针或者时钟时,会为你显示当前据出生点的方位以及时间。
  • 当你在游戏时进入统计信息,其游戏时间要比游戏退出时大1.
  • 可可果在统计信息中会显示其成熟的样子,包括果实顶部和四周。

漏洞

  • 当你使用Shift+单击工具和家具界面进行合成时,统计信息此时并不会进行计算。
  • 在统计信息中显示为枯死的灌木
  • 在多人生存模式中,玩家击杀另一位玩家不会增加“玩家击杀数”。
  • 统计信息和成就有时会没来由地自行重置,通常是由于minecraft.jar被替换或者增加MOD

參考

Advertisement