User Tools

Site Tools


zh_cn:tutorial:persistent_states

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
zh_cn:tutorial:persistent_states [2023/12/23 02:39] – fix incorrect spelling&character dreamuniversezh_cn:tutorial:persistent_states [2024/07/10 03:31] (current) – several corrections to the title and specified words dreamuniverse
Line 1: Line 1:
-====== 状态持久化 ======+====== 持久状态 ======
  
 ===== 引言 ===== ===== 引言 =====
Line 283: Line 283:
 如果您现在运行游戏,您会发现计数器正常递增,但现在即使您关闭游戏并重新启动,计数器也会从退出时的位置继续递增。 如果您现在运行游戏,您会发现计数器正常递增,但现在即使您关闭游戏并重新启动,计数器也会从退出时的位置继续递增。
  
-有一点您有可能会忽略,''**totalDirtBlocksBroken**'' 不是玩家限定的,这意味着若这个模组运行在服务器侧,并同时有好几个玩家挖掘泥土方块,他们都会收到相同的统计数字。\\ +有一点您有可能会忽略,''**totalDirtBlocksBroken**'' 不是玩家而异的,这意味着若这个模组运行在服务器侧,并同时有好几个玩家挖掘泥土方块,他们都会收到相同的统计数字。\\ 
-这对我们模组中的特定类型数据是很好的,表明它们能正常工作。但更多时候,我们期望数据是玩家限定(因人而异)的。+这对我们模组中的特定类型数据是很好的,表明它们能正常工作。但更多时候,我们期望数据是玩家而异的。
 正如我们开篇所提,如果我们想要保留**任意玩家**的**特定方块**的挖掘数据,这时我们要怎么做? 正如我们开篇所提,如果我们想要保留**任意玩家**的**特定方块**的挖掘数据,这时我们要怎么做?
  
 ===== 因玩家而异的持久化状态 ===== ===== 因玩家而异的持久化状态 =====
  
-我们可以将我们所写的代码延伸一下,这样就可以存储每个玩家的特定数据了。+我们可以将我们所写的代码再改进一下,这样就可以存储每个玩家的特定数据了。
  
 首先,新建一个名为 ''**PlayerData.java**'' 的类(需要和实现了 ''**ModInitializer**'' 的类位于同一层次的软件包中). 首先,新建一个名为 ''**PlayerData.java**'' 的类(需要和实现了 ''**ModInitializer**'' 的类位于同一层次的软件包中).
  
-  * 特别提示: 我们会创建 HashMap 用以存储 ''**PlayerData**'' 数据,当客户端侧希望获知 ''**PlayerData**'' 时非常有效, **但是**若在服务器侧如法炮制,客户端将**无法获知任何数据**,因为这些数据**只存在于服务器上**。\\+  * 特别提示: 我们会创建 HashMap 用以存储 ''**PlayerData**'' 数据,此法当客户端侧希望获知 ''**PlayerData**'' 时非常有效, **但是**若在服务器侧如法炮制,客户端将**无法获知任何数据**,因为这些数据**只存在于服务器上**。\\
   如果您期望在客户端侧获知部分或全部的 ''**PlayerData**'' 数据,则必须使用数据包进行传递。(稍后我们会创建一个内联同步(''**INITIAL_SYNC**'')数据包以作演示).   如果您期望在客户端侧获知部分或全部的 ''**PlayerData**'' 数据,则必须使用数据包进行传递。(稍后我们会创建一个内联同步(''**INITIAL_SYNC**'')数据包以作演示).
  
zh_cn/tutorial/persistent_states.1703299153.txt.gz · Last modified: 2023/12/23 02:39 by dreamuniverse