<player>.dat 文件被用于服务器和存档以保存玩家信息。这种格式也在level.dat文件中使用以储存单机游戏的状态,它的优先级高于<player>.dat 文件。这些文件都采用了NBT 格式。
NBT内容
- 根标签。在level.dat文件里,它叫“Player”。
- 实体里面除了“id”、“CustomName”和“CustomNameVisible”以外的所有标签。
- 生物里面除了“HandItems”、“ArmorItems”、“DropChances”、“CanPickUpLoot”、“PersistenceRequired”、“Leashed”和“Leash”以外的所有标签。
- Dimension: 这个数据写明了玩家现在在哪个世界。-1表示下界,0表示主世界,1表示末路之地。其他数值被解释为0。
- playerGameType: 这个数据指明了玩家的游戏模式。0表示生存模式,1指创造模式,2指冒险模式,3指旁观模式。极限模式属于生存模式。
- Score: 在死亡画面中显示的分数。
- SelectedItemSlot: 玩家正在选择的快捷栏。
- SelectedItem: 玩家正在选择的快捷栏物品,不包含Slot标签。
- 详见物品内容。
- SpawnX: 可能不存在。玩家的床的X座标。如果玩家重生在一个无效的床时此标签将被移除。
- SpawnY: 可能不存在。玩家的床的Y座标。如果玩家重生在一个无效的床时此标签将被移除。
- SpawnZ: 可能不存在。玩家的床的Z座标。如果玩家重生在一个无效的床时此标签将被移除。
- SpawnForced: 1或0 (true/false) - 若没有床且此处为1,则玩家将被强制复活在上面的坐标。
- Sleeping: 1或0 (true/false) - 若玩家正在睡觉则为真(1),不会影响到玩家是否在床上登录。
- SleepTimer: 自玩家睡觉开始之后的Tick直至文件保存为止。无效果。
- foodLevel: 这个数据指明了饥饿值,最大为20。详见饥饿条目。
- foodExhaustionLevel: 详见饥饿条目。
- foodSaturationLevel: 详见饥饿条目。
- foodTickTimer: 详见饥饿条目。
- XpLevel: 显示玩家的经验值。
- XpP: 需增长多少经验(百分数)才可升到下一级.
- XpTotal: 玩家所获得的经验总数,用于计算积分.
- XpSeed: 这个种子用于附魔台下次附魔。
- Inventory: 每个 compound tag 都是玩家物品栏里的一个物品。
- EnderItems: 如果玩家的末影箱里面没有物品,这将会是一个包含0的Byte tags的清单,如果有物品,这将会是一个包含Compound tags的清单。
- 箱子里的物品。包括物品栏标记,物品栏被标记为0至26。
- 详见物品内容。
- 箱子里的物品。包括物品栏标记,物品栏被标记为0至26。
- abilities: 玩家拥有的能力。
- walkSpeed: 步行速度,永远是0.1。
- flySpeed: 飞行速度,永远是0.05。
- mayfly: 1 or 0 (true/false) - 玩家能飞行时为真。
- flying: 1 or 0 (true/false) - 当玩家正在飞行时为真。
- invulnerable: 1 or 0 (true/false) - 如果玩家能抵消所有伤害和有害的效果时为真,除了虚空伤害。(由
/kill
命令造成的伤害视为虚空伤害) - mayBuild: 1 or 0 (true/false) - 当玩家可以摧毁及放置方块时为真。
- instabuild: 1 or 0 (true/false) - 当玩家可以瞬间摧毁方块时为真。
- RootVehicle: 玩家骑着的根实体。
- AttachLeast: 该实体的UUIDLeast
- AttachMost: 该实体的UUIDMost
- Entity: 该实体的NBT数据
- 详见实体格式.
物品格式
物品是同时用于玩家的物品栏和Ender物品栏当中,和箱子中的实体附加值,掉落物品实体,熔炉tile实体,酿造台tile实体,和村民交易内容。有时Slot标签会被用来指定物品所在的储存格,例如在箱子;在其他时候可能会没有Slot标签,例如掉落的物品。
物品标签
一个带有耐久度的物体可以无法破坏并永远不损失任何耐久。同样,通过命令修改的物品可以让冒险模式的玩家放置或破坏指定的方块。
- tag: tag 标签。
- Unbreakable: 1 或 0 (true/false) - 如果是true,物品无论使用多少次都不会损失耐久。
- CanDestroy: 冒险模式的玩家可以使用这个工具破坏的方块。
- : 方块ID。
方块标签
方块可以被赋予标签指定冒险模式的玩家可以放在那些方块上面,还可以限定方块实体格式。
附魔
附魔和物品可以有两种关系——第一种,物品被“真附魔”,即物品拥有了附魔提供的属性;第二种,物品的附魔被标注为附魔书类型,这种附魔仅仅能达到存储附魔的效果,物品的属性并不会因为这种附魔而改变。RepairCost标签则会记录该物品的铁砧使用次数,以实现附魔所需经验等级随使用次数增加而增加的特征。
修饰属性
所有的物品都可以被赋予修饰当拥有修饰的物品被穿着或者手持时将赋予其属性. 请注意,如果一个物品拥有普通且默认的修饰属性,如果这个修饰属性被额外添加,那么默认的将不会生效(比如说如果给一把钻石剑附加了一个数值为0的攻击伤害,那么这把钻石剑将没有额外的攻击属性,而不是默认的7)。需要注意的是默认的修饰属性是不会显示的。
- tag: tag 标签。
- AttributeModifiers: 包含了物品的修饰属性,如果这个物品既没有穿着也没有拿在手上则不会生效。
- : 一个独立的修饰属性。
- AttributeName: 所使用的修饰属性
- Name: 修饰符的名称(可自定义)
- Slot: (自1.9开始)物品需要放在指定的储存格以修改属性。 “mainhand”(主手)、 “offhand”(副手)、 “feet”(脚)、 “legs”(腿)、 “chest”(胸部) 或 “head”(头部)。
- Operation: 0、 1 或 2。 这个值将会决定修饰符对属性的基础数值的计算方式. 若该值为0:将X的增量设为Amount的值;若该值为1:将Y的增量设为X×Amount的值; 若该值为2: 则计算Y = Y × (1 + Amount的值) (等同于将Y的增量设为 Y × Amount的值)。 Minecraft会先设 X = 基础数值,然后执行所有Operation的值为0的修饰符,紧接着设 Y = X,之后再执行所有Operation值为1的修饰符,最后才执行所有Operation的值为2的修饰符。
- Amount: 这个修饰符对基础值的修改值。
- UUIDMost: 这个修饰符的通用唯一识别码最高有效位。
- UUIDLeast: 这个修饰符的通用唯一识别码最低有效位。
- : 一个独立的修饰属性。
- AttributeModifiers: 包含了物品的修饰属性,如果这个物品既没有穿着也没有拿在手上则不会生效。
药水效果
药水、喷溅药水、滞留药水和药箭可以通过tag标签来绕过物品本身的参数,来达到多个自定义的药水效果。这些参数只在以下标签全部存在的情况下才会起作用。
- tag: tag标签。
- CustomPotionEffects: 此药水所包含的自定义药水效果。
- Potion: 默认的药水效果。这不同于药水效果名,例如"Instant Health II"药水对应的是"minecraft:strong_healing"。
显示属性
皮革盔甲(因为可以染色)可以多一个color标签;所有其他的物品则都可以拥有自定义名称和自定义消息。
- tag: tag标签。
- display: 显示属性。
- HideFlags: 决定隐藏显示物品的哪些信息。1 对应"ench",2 对应"AttributeModifiers",4 对应"Unbreakable",8 对应 "CanDestroy", 16 对应 "CanPlaceOn", 32 对应其他信息 (包括药水效果, "StoredEnchantments", 成书的 "generation" 和 "author", "Explosion", "Fireworks", 和地图提示). 例如,设置为 3 时,"ench" 和 "AttributeModifiers" 标签会不显示,设置为 63 时所有信息都不显示。
成书
书与笔和成书的内容信息都储存在tag标签里。只有成书拥有title标签和author标签;pages标签则书与笔和成书都有。
- tag: tag标签。
- author:成书的作者。
- filtered_pages:已过滤的页面信息。
- <页数>:代表某页的字符串过滤后的结果。如果玩家开启了过滤,则此字符串优先于 pages内的字符串。
- filtered_title:已过滤的标题。无实际作用。
- generation:决定成书是否为副本。0 = 原作,1 = 原作的副本,2 = 副本的副本,3 = 破烂不堪。默认成书为“原作”。
- pages:成书的各个页面。
- :成书的一个单页,是一个JSON文本。
- resolved:表示这本成书是否是第一次被打开,决定是否要进行成书内文本的解析。
- title:成书的标题,不能超过32个字符。
玩家的头颅
玩家的头颅可以被一名指定用户名的玩家的皮肤头颅取代,并且会随着这名玩家的皮肤改变而改变。在本小节中,一个头颅的“owner”意味着头是玩家的副本,“holder”意味着玩家物品栏内的头。
- tag: tag标签。
- SkullOwner: 版本 1.8 前头颅对应的玩家的用户名。
- SkullOwner: 版本 1.8 后定义头颅对应的玩家。
- Id: 头颅对应的玩家的 UUID 。可选的。用于头颅对应的玩家名变动时区块重新加载后的更新。
- Name: 头颅对应的玩家名。如果留空,则默认为 Steve 的头颅。否则尝试加载对应的玩家的头颅。并不要求一定是合法的用户名,但是不能全是空格。
- Properties
烟花火箭
烟花火箭使用tag标签存储有关其效果的信息。
- tag: tag 标签
- Explosion:其中的一个将会出现在烟火之星。
- Flicker: 1或0 (true/false) - 若为真则会出现闪烁效果(荧石粉),可能缺失。
- Trail: 1或0 (true/false) - 若为真则有拖曳痕迹(钻石),可能缺失。
- Type: 爆炸时的形态. 0 = 小球, 1 = 大球 ,2 = 星星, 3 =爬行者的头,4 = 爆裂。其他值将会被认定为未知,均为小型球状。
- Colors: 一个整数数组以表达爆炸时的颜色。若普通设置被使用, 游戏将会对其进行普通的着色(在物品名里), 不过爆炸时会产生正确的颜色。一般的颜色取决于 颜色 标签 从 显示设置。
- FadeColors: 数组表示爆炸后掉落的颜色 相同的值代表相同的颜色, 可能缺失。
- Fireworks: 其中的一个会出现在 烟花火箭。
- Flight: 飞行时间(从1-3)不等(与制作时所需的火药量相同)。这个值可能会在爆炸时减小之后或永久,数值小于-2则永远不会爆炸。
- Explosions: 产生爆炸的合成物的列表。
- 与“爆炸”所表达的值相同,上面已经介绍过了。
- Explosion:其中的一个将会出现在烟火之星。
盔甲架和刷怪蛋
- tag: tag标签。
- EntityTag:储存实数据并应用于放置盔甲架时。
地图
地图可能是被缩放的。
- tag: tag标签。
- map_is_scaling:1或0(true/false)- 如果被缩放则为true。如果没有被缩放那么值可能不存在。地图数字以Damage储存,缩放值储存于地图物品格式。
- Decorations:附加值列表。它会显示在地图上。
- 附加值
- id:图片的定义
- type:图片类型(查看texture/map/map_icons.png)
- x:X坐标
- z:Z坐标
- rot:旋转的角度
- 附加值
物品栏方格号码
副手格子的号码是#-106。
历史
Java版 | |||||
---|---|---|---|---|---|
1.8 | 14w06a | 增加了CanDestroy 。
| |||
增加了HideFlags 。 | |||||
14w07a | 增加了BlockEntityTag | ||||
14w10a | 加入了一个隐藏药水效果的第5位(值为32)的HideFlags 。 | ||||
14w33a | 增加了SelectedItem 。 |
参考
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |