13 离线技能的一个例子是在线EvE。您的角色(飞行员)无法通过获得经验来获得技能。相反,无论您是在游戏中还是游戏外,您的角色都会获得与所要训练的技能有关的技能点。另外,我相当确定即使游戏服务器出现故障,技能仍会继续积累。 任何人都有关于如何实现此目标的广泛想法,或者更好的是我如何能够在正在开发的游戏中实现类似的东西。我不是在这里寻找详细的解释(不过,不要让我退缩),但是我正在寻找一个指向正确方向的路标。 谢谢! mmo character — 梦里 source
17 假设技能开发是确定性的且相当线性的,那么您要做的就是挂接某种实时时钟(例如系统时钟或服务器时钟),然后计算技能开发的时间。 换句话说,当技能开发开始时,记下时间戳并将其存储,并且每当您要检查技能是否有所提高时,请将时间戳与当前技能进行比较,检查增量是否足够大,并且bing,玩家有新技能。 — 贾里·康帕(Jari Komppa) source 2 突然间,如果您更改了影响培训速度的属性,为什么他们会强迫您暂停培训!因为它们重新计算了所需的增量...太棒了,谢谢! — 梦幻巷 5 @Dream Lane,为减轻可能产生的任何潜在计算开销。仅在用户登录时重新计算所获得的技能/积分。因此,拥有数千名注销人员不会产生任何开销。 — AttackingHobo
2 如果在玩家恢复在线状态之前不使用该技能,则只需将注销时间和剩余时间存储在队列中的任何技能上,然后在玩家登录时执行以下操作: timeRemaining = currentTime - logoutTime while ( timeRemaining > 0 and hasQueuedSkill() ) { skillTime -= timeRemaining if ( skillTime <= 0 ) { popSkill() timeRemaining = -skillTime } } — 埃尔瓦 source