RPG Maker MV中并不会很直观的显示技能所造成的伤害。通过结合YEP_X_MessageEvalText和YEP_SkillMasteryLevels两个插件可以实现按照技能等级显示伤害比例
如果你有接触过JavaEE中的EL表达式那么可能会很好理解这部分内容。
准备工作
- 你需要有一定的面向对象编程思想
- 安装下列插件:
- YEP_MessageCore
- YEP_X_MessageEvalText
- YEP_SkillCore
- YEP_SkillMasteryLevels
- 创建、打开工程
- 创建好一个技能并写好伤害公式和伤害随等级递增的注释(在YEP_SkillMasteryLevels中有相关脚本)
开始
在技能介绍中输入下面内容
给敌人造成ATK(\evalText<<(BattleManager.actor()||$gameParty.menuActor()).atk>>)*\evalText<<['105','116','126','137','147','156'][(BattleManager.actor()||$gameParty.menuActor()).skillMasteryLevel(10)]>>%的伤害
上面的内容分为下面几部分:
- 文字说明部分(
给敌人造成ATK(...)...\*...%的伤害
)
这一部分只是说明文字而已,会直接显示。读者可以根据实际情况进行变更 - 数值显示部分(
\evalText<<(BattleManager.actor()||$gameParty.menuActor()).atk>>
)
这一部分会获取当前选择的角色的物理攻击力(atk)并显示出来。
其中\evalText<<...>>
这一部分是YEP_X_MessageEvalText提供的一个功能。它可以根据变量、角色属性值、开关状态、js语句等显示内容。evalText中的BattleManager.actor()||$gameParty.menuActor()
是检测选择的角色的。如果BattleManager.actor()
为空则返回$gameParty.menuActor()
的值。之所以这么设计是因为MV中,战斗界面的角色选择和菜单列表中的角色选择所使用的方法是不一样的。BattleManager.actor()获取战斗界面中正准备行动的角色,它只在战斗界面中返回Game_Actor
对象(角色对象)其他界面返回的是null。$gameParty.menuActor()
获取菜单界面中被选择的角色,它返回Game_Actor
对象。物理攻击力等属性都在Game_Actor
中。想获取属性就需要取得Game_Actor
类的对象 - 动态数值变化部分(
\evalText<<['105','116','126','137','147','156'][(BattleManager.actor()||$gameParty.menuActor()).skillMasteryLevel(10)]>>
)
基本结构是\evalText<<[Iterator][index]>>
,Iterator相当于数组,后面的index就相当于下标,下标为0就取出Iterator中第一个值。在这里表示的是施放者对10号技能的熟练度(技能等级)
当全部书写正确后进入游戏会看到10号技能的描述大概变成了下面的样子
给敌人造成ATK(30)*105%的伤害
其中30是所选择的角色的物理攻击力,所选择的角色不同,数值就不同。而105是10号技能等级为0时的伤害比例。如果等级为1,就会变成116。值是多少取决于Iterator设置的是多少。
网友评论