|
设一个角色有n种技能,每个技能用区间[0,1]之间的小数来描述其熟练度。
设各个技能在本质上是正交的,即任何技能都不会因为其内在的原因而与其他任何技能产生依赖或互斥。
设玩家在线期间的所有行为都可以用一组技能来描述,即玩家在线期间的任何行为都可以映射到一组相关技能上。
一个行为是一个连续的过程,会花费一定的时间,这段时间会按照一定的比例分配给描述该行为的一组技能,即行使该行为相当于先后使用了相关的一组技能;反过来说,可以用一组技能的使用来描述一个行为,各个技能的使用时间总和即为该行为的总耗时,另外也可以只描述各技能相对的耗时比例而不是绝对的耗时量。
系统为角色的每个技能记录使用时间,当玩家行使一个行为时,该行为所耗费的时间会根据其行为描述中的比例分配给相关技能,并进行累计。
给定一个时间段,可以算出这段时间内各个技能的使用频率,即用各个技能的累计使用时间除以时间段长度。
设Pi表示第i个技能的使用频率,则P1+P2+……+Pn=1。
在给定的这个时间段内,各个技能会由于使用而增加熟练度,也会因为闲置而减少熟练度,但不会增加至超过1,也不会减少至低于0。
一个技能的熟练度的增长和衰退是分开计算的,其增长量取决于其使用率,其衰退量取决于其闲置率,增长量减去衰退量可以得到该技能的实际变化量。
技能i的使用率即为Pi,闲置率为(1-Pi)/(n-1)。
若技能熟练度在加上变化量后会超出1,则发生了上溢,若会低于0,则发生了下溢,溢出部分(即超出极限的部分)会被丢弃。
在给定的时间段内,若未发生上溢或下溢,则所有技能的增长量之和应等于所有技能的衰退量之和,这个增长量之和(或衰退量之和)称为技能流转量。
给定一个技能流转率,描述了单位时间内一个角色应该发生的技能流转量,不过考虑到可能会发生上溢或下溢,而溢出部分会被丢弃,所以实际流转量可能会低于流转率所描述的大小。
对于一个给定的时间段,设根据流转率算出应该的流转量为m。各个技能的使用率乘以m可得其增长量,闲置率乘以m可得其衰退量,技能i的实际变化量为m*(n*Pi-1)/(n-1)。
以上规则应该也可以应用于角色的属性、抗性等参数,而不仅仅是技能。
|
|