Project1

标题: (已解决)怎么再使用技能后根据角色ID添加不同到变量里 [打印本页]

作者: 55808888    时间: 2023-5-7 01:56
标题: (已解决)怎么再使用技能后根据角色ID添加不同到变量里
本帖最后由 55808888 于 2023-5-13 00:34 编辑

设计是这样的
一共有4个技能: 横劈,竖砍,挑斩、重击
刘关张都能学习到这5个技能,但是前提是武器熟练度分别打到100,200,300,400,500

我设置了3个变量
ID 80:刘备熟练度
ID 90:关羽熟练度
ID 100:张飞熟练度

刘关张普通攻击,自身的熟练度+1

暂时我用了很蠢得办法,将攻击做成3个,攻击1、攻击2、攻击3
然后将攻击1、2、3分别配给刘关张
再将攻击1,2,3的技能里添加公共事件,使得他们的对应熟练度+1

以上是可以实现刘关张攻击后,分别使自己的熟练度+1


但是,我希望在使用技能后,也能使自己的熟练度增加不同值
刘备使用横劈,ID80 刘备熟练度+2
刘备使用竖砍,ID80 刘备熟练度+3
刘备使用重击,ID80 刘备熟练度+4

关羽使用横劈,ID80 关羽熟练度+2
关羽使用竖砍,ID80 关羽熟练度+3
关羽使用重击,ID80 关羽熟练度+4

我是不想用上面那个傻办法 将所有技能都设置成若干个给不同的人物携带不同技能了(因为技能和人物都很多)

请问有什么办法可以实现吗?

作者: cmyx    时间: 2023-5-8 00:47
我理解的需求是,角色有各自唯一的熟练度变量,不同角色使用同一个技能会增加各自对应的变量。
纯事件能做但是会很繁琐,推荐学习一下yep技能核心插件(YEP_SkillCore和前置YEP_CoreEngine),可以简单的实现,还有更多的可扩展性。
第一步:设置和角色id对应的角色熟练度变量。数字可以不一致,但是顺序必须一致。如刘关张id1、2、3,对应熟练度变量id101、102、103
第二步:在技能备注写上:
<After Eval>
$gameVariables.setValue(user.actorId()+100,$gameVariables.value(user.actorId()+100)+1);
</After Eval>
完成。不同技能设置不同的运算规则即可。
===============
$gameVariables.setValue(n,$gameVariables.value(n)+v);是变量的运算,熟练度+1,就把v改成1,具体看https://rpg.blue/thread-403194-1-1.html
还要知道变量id,代入n,yep插件的user.actorId()就是获取当前行动的角色的id,按照第一步的设置,把它+100就是角色对应的变量id。
yep插件的可扩展性还有,把代码设置在伤害阶段运行,实现攻击必须打中才能加熟练度;在代码中加入if else做条件判断,实现某角色用某技能数量度加的多。把代码复用在状态核心,可以实现状态存在时,每次受到伤害的时候加熟练度。用了yep基本啥效果都能实现。建议学习一下。
作者: Zeldashu    时间: 2023-5-8 09:25
MZ自带有获取上一次选择目标ID的函数,MV可能只能靠插件获取了
作者: 芯☆淡茹水    时间: 2023-5-8 16:31
既要判断使用者,又要判断当前使用的技能,更要在攻击刚结束后生效,,,。
只能改代码,功能加到 Game_Action 里。
作者: 55808888    时间: 2023-5-13 00:33
cmyx 发表于 2023-5-8 00:47
我理解的需求是,角色有各自唯一的熟练度变量,不同角色使用同一个技能会增加各自对应的变量。
纯事件能做 ...

感谢大佬,按照你得方法已经解决了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1