首先,这不是一篇教程。
请先去看原贴:https://bbs.pokefans.xyz/threads/244/
这篇帖子只是对原贴里面的一个特性进行了优化,也就是节省特性。
因为原贴中的写法缺少了一部分。
但是,在我自己尝试了之后才发现,情况有点复杂,所以单独发个帖子。
那么我们来看一下——
节省:拥有该特性的宝可梦使用招式时有30%几率不消耗PP值。
原贴中的写法并没有错,只是缺少了一部分,原贴中并没有考虑当技能本身的PP为0时候的情况。
也就是说,原贴中的写法,节省特性只会在PP大于等于1时才会发动。
我个人是觉得,根据特性的描述来看,特性的生效场合,应该是包括PP为0的情况的。
目前,在游戏中只有两种方式会减少PP,一种是在使用技能时,另一种是被压迫感时。
这是原贴中的写法和解释说明——


有个问题就是为什么move.pp是已经被扣过的?
这主要是因为原贴中pp_save = move.pp + 1 if user.hasActiveAbility?
PPSAVE) 这行代码所在的位置的问题。
逻辑上是这样的,是先检查使用技能,PP减1,再如果目标有压迫感的话,PP再减1。
这里是检查使用技能的——

这里是检查压迫感的——

因为把pp_save = move.pp + 1 if user.hasActiveAbility?
PPSAVE) 这行代码写在了检查使用技能之后,压迫感之前,所以move.pp是已经减过一次PP之后的了。
那么,在解决了原贴中的问题之后,我们来看一下我优化之后的写法。
请先去看原贴:https://bbs.pokefans.xyz/threads/244/
这篇帖子只是对原贴里面的一个特性进行了优化,也就是节省特性。
因为原贴中的写法缺少了一部分。
但是,在我自己尝试了之后才发现,情况有点复杂,所以单独发个帖子。
那么我们来看一下——
节省:拥有该特性的宝可梦使用招式时有30%几率不消耗PP值。
原贴中的写法并没有错,只是缺少了一部分,原贴中并没有考虑当技能本身的PP为0时候的情况。
也就是说,原贴中的写法,节省特性只会在PP大于等于1时才会发动。
我个人是觉得,根据特性的描述来看,特性的生效场合,应该是包括PP为0的情况的。
目前,在游戏中只有两种方式会减少PP,一种是在使用技能时,另一种是被压迫感时。
这是原贴中的写法和解释说明——


有个问题就是为什么move.pp是已经被扣过的?
这主要是因为原贴中pp_save = move.pp + 1 if user.hasActiveAbility?
逻辑上是这样的,是先检查使用技能,PP减1,再如果目标有压迫感的话,PP再减1。
这里是检查使用技能的——

这里是检查压迫感的——

因为把pp_save = move.pp + 1 if user.hasActiveAbility?
那么,在解决了原贴中的问题之后,我们来看一下我优化之后的写法。