本站文本内容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(详细信息…

Player.dat格式

来自Minecraft Wiki
跳转至: 导航搜索
此页面的(部分)内容需要被翻译。
你可以帮助我们来翻译此页面

<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。

    •  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实体, 和村民 trading recipes. 有时Slot标签会被用来指定物品所在的储存格,例如在箱子;在其他时候可能会没有Slot标签,例如掉落的物品。

物品标签[编辑 | 编辑源代码]

一个带有耐久度的物体可以无法破坏并永远不损失任何耐久。同样,通过命令修改的物品可以让冒险模式的玩家放置或破坏指定的方块。


  •  tag: tag 标签。

    •  Unbreakable: 1 或 0 (true/false) - 如果是true,物品无论使用多少次都不会损失耐久。

    •  CanDestroy: 冒险模式的玩家可以使用这个工具破坏的方块。

      • : 方块ID。

方块标签[编辑 | 编辑源代码]

方块可以被赋予标签指定冒险模式的玩家可以放在那些方块上面,还可以限定方块实体格式。


  •  tag: tag标签.

    •  CanPlaceOn: 冒险模式的玩家可以把方块放在那些方块上面。

      • : 方块ID,必须贴着方块的面放。

    •  BlockEntityTag: Block entity NBT tags which are applied when this block is placed. Used to store data on banners or on blocks obtained in creative by holding ctrl and pressing pick block on a block containing a block entity.

  • 物品的根标签。有时有些例子它会有名字,其他的都是没有名字的因为它是一个列表。

    •  Slot: 可能不存在。物品所在的储存格。

    •  id: 物品ID和方块ID,只存在于1.8之前。

    •  id: 物品或方块的名称,只存在于1.8之后。

    •  Damage: 物品的ID。"Damage"的由来是当时只有工具使用这个值,现在很多其他的物品为其他目的使用这个值。

    •  Count: 在该格内物品的堆叠数目。任何物品都可以堆叠,包括工具、盔甲以及交通工具。范围是-128到127,低于2的数值不会在游戏中显示。

    •  tag: 物品的附加数据,将会在以下的章节中详细讨论。这个标签对于大多数物品是选择性的。

附魔[编辑 | 编辑源代码]

附魔和物品可以有两种关系——第一种,物品被“真附魔”,即物品拥有了附魔提供的属性;第二种,物品的附魔被标注为附魔书类型,这种附魔仅仅能达到存储附魔的效果,物品的属性并不会因为这种附魔而改变。RepairCost标签则会记录该物品的铁砧使用次数,以实现附魔所需经验等级随使用次数增加而增加的特征。


  •  tag: tag标签。

    •  ench: 包含会改变该物品属性的附魔

      • 一个魔咒。

        •  id: 魔咒的ID。

        •  lvl: 魔咒等级,此值为1时即是1级。(注意是L的小写而不是i的大写)

    •  StoredEnchantments: 包含标注为附魔书类型的魔咒。

      • : 一个仅有储存效果的魔咒,结构与ench中的单个魔咒相同。

    •  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: 这个修饰符的通用唯一识别码最低有效位。

药水效果[编辑 | 编辑源代码]

药水喷溅药水可以通过tag标签来绕过物品本身的参数,来达到多个自定义的药水效果。这些参数只在以下标签全部存在的情况下才会起作用。


  •  tag: tag标签。

    •  CustomPotionEffects: 此药水所包含的自定义药水效果

      • 一个效果。

        •  Id: 效果的ID。

        •  Amplifier: 效果的效力,此值为0时则是1级。

        •  Duration: 效果的持续时间,单位为

        •  Ambient: 1 或 0 (是/否) - 是否减少玩家被药水效果影响时在身体周围出现彩色旋转漩涡的颗粒效果的透明度,用于区分效果是否来自于信标。此标签可选,而且暂时没有效果。

        •  ShowParticles: 1 or 0 (是/否) - 是否在玩家被药水效果影响时在身体周围出现彩色旋转漩涡的颗粒效果. 这个标签是可选的,默认为 1.

    •  Potion: 默认的药水效果。这不同于药水效果名,例如"Instant Health II"药水对应的是"minecraft:strong_healing"。

显示属性[编辑 | 编辑源代码]

皮革盔甲(因为可以染色)可以多一个color标签;所有其他的物品则都可以拥有自定义名称和自定义消息。


  •  tag: tag标签。

    •  display: 显示属性。

      •  color: 皮革盔甲的颜色。颜色值可以用以下公式计算:
        红色值×65536 + 绿色值×256 + 蓝色值×1
        (由于Java语言的特殊规定,Java里颜色值的计算公式与多数其他语言的公式“R+256×G+65536×B”相反。)

      •  Name: 物品显示的名称。

      •  Lore: 物品显示的信息[1]

        • : 单行物品信息。

    •  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标签。

    •  resolved: 可选的,当成书被创建后第一次被打开时创建并设为 1 。用于分析书中内容的 JSON 的选择器,此时这些选择器会被确定下来。

    •  generation: 成书的版本,0、1、2、3分别表示原作原作的副本副本的副本破烂不堪。如果值大于 1,则该书不能被赋值。对于原作该标签不存在。如果该标签不存在,则被认为是原作。

    •  title: 一本成书的标题。

    •  author: 一本成书的作者。

    •  pages: 页数清单。

      • 书里面的一页。

玩家的头颅[编辑 | 编辑源代码]

玩家的头颅可以被一名指定用户名的玩家的皮肤头颅取代,并且会随着这名玩家的皮肤改变而改变。Within this section, the "owner" of a head means the player whose head it is a copy of, and a player whose inventory contains a head is called the "holder".


  •  tag: tag标签。

    •  SkullOwner: 版本 1.8 前头颅对应的玩家的用户名。

    •  SkullOwner: 版本 1.8 后定义头颅对应的玩家。

      •  Id: 头颅对应的玩家的 UUID 。可选的。用于头颅对应的玩家名变动时区块重新加载后的更新。

      •  Name: 头颅对应的玩家名。如果留空,则默认为 Steve 的头颅。否则尝试加载对应的玩家的头颅。并不要求一定是合法的用户名,但是不能全是空格。

      •  Properties

        •  textures

          • : 个人材质。

            •  Signature: 可选的。

            •  Value: 1个Base64编码的JSON object. </ref>

              •  timestamp: Optional: Unix time in milliseconds.

              •  profileId: 可选的:无连字符的玩家UUID。

              •  profileName: 可选的 :玩家的ID.
              •  isPublic: Optional.

              •  textures

                •  SKIN

                  •  url: URL of a player skin on textures.minecraft.net.[2]

                •  CAPE: Optional.

                  •  url: URL of a player cape (64x32 PNG).

烟花火箭[编辑 | 编辑源代码]

烟花火箭使用标签的变量来储存他们的药水效果信息。


  •  tag: tag 标签

    •  Explosion:其中的一个将会出现在烟花火箭

      •  Flicker: 1 or 0 (true/false) - 若为真则会出现闪烁效果(萤石粉),可能缺失。

      •  Trail: 1 or 0 (true/false) - 若为真则有拖曳痕迹(钻石).可能缺失.。

      •  Type: 爆炸时的形态. 0 = 小球, 1 = 大球 2 = 星星, 3 =爬行者的头 4 = 爆裂. 其他值将会被认定为未知,均为小型球状。

      •  Colors: 一个整数数组以表达爆炸时的颜色. 若普通设置被使用, 游戏将会对其进行普通的着色(在物品名里), 不过爆炸时会产生正确的颜色. 一般的颜色取决于 颜色 标签 从 显示设置

      •  FadeColors: 数组表示爆炸后掉落的颜色 相同的值代表相同的颜色, 可能缺失。

    •  Fireworks: 其中的一个会出现在 烟火之星.。

      •  Flight: 飞行时间(从1-3)不等(与制作时所需的火药量相同)。这个值可能会在爆炸时减小之后或永久,数值小与-2则永远不会爆炸。

      •  Explosions: 产生爆炸的合成物的列表。

        • 与“爆炸”所表达的值相同,上面已经介绍过了。

盔甲架和刷怪蛋[编辑 | 编辑源代码]

Armor stands and spawn eggs may contain potential entity data.


  •  tag: tag标签。

地图[编辑 | 编辑源代码]

Maps may be scaled.


  •  tag: The tag tag.

    •  map_is_scaling: 1 or 0 (true/false) - true if map is scaled. May not exist if map is not scaled. Map number is stored as Damage, scale value is stored in Map item format.

    •  Decorations: A list of optional decorations. It will display defined symbols on the map

      • An individual Decoration

        •  id: Identifier of the symbols

        •  type: Type of the symbol (see texture/map/map_icons.png)

        •  x: X position

        •  z: Z position

        •  rot: Rotation of the symbols

物品栏方格号码[编辑 | 编辑源代码]

This shows the numbers used to specify the slot in the inventory while editing with an NBT editor.

副手格子的号码是#-106。

历史[编辑 | 编辑源代码]

正式版本
1.8 14w06a 增加了CanDestroy
增加了HideFlags
14w07a 增加了BlockEntityTag
14w10a Added a 5th bit (value of 32) to HideFlags that hides potion effects.
14w33a 增加了SelectedItem

参考[编辑 | 编辑源代码]

  1. https://www.reddit.com/r/Minecraft/comments/10xlod/minecraft_snapshot_12w40a/c6hinjw
  2. Could be a URL on a non-Mojang site until 1.8.4, but couldn't be a data: or file: URI.