Project1

标题: 如何让提升上限的道具,在使用时可以直观看到数值变化? [打印本页]

作者: nhycs01    时间: 2024-1-10 18:17
标题: 如何让提升上限的道具,在使用时可以直观看到数值变化?
我制作了一些提升上限的道具,比如攻击,防御一类的药水。
在效果一栏我选择的是“成长”。使用也确实有效果。
但是这个效果只能玩家再去状态里面看,使用的时候画面没有任何数值的变化。
请问怎样可以在使用时,让玩家直观地看到能力数值的变化呢?
作者: soulsaga    时间: 2024-1-10 18:33
加文章显示
作者: Peachere    时间: 2024-1-10 18:45
显示文字可以自己写
作者: shiroin    时间: 2024-1-10 18:59
前天刚好有人问了和你差不多的问题,都可以用Drill的Drill_SkillRecorder插件来解决问题
你这需求核心就是要知道使用道具时作用对象的角色ID,知道ID后就可以通过为变量赋值来显示角色的属性
比如你做了一个攻击药水,效果是喝下去的角色攻击力永久+5,你想做个预览,就是道具使用后调用公共事件
然后通过这个插件获取作用角色的ID,然后借助脚本$gameActors.actor(n).atk获取作用角色的攻击力属性,再+5就是预览值了


作者: nhycs01    时间: 2024-1-10 19:30
本帖最后由 nhycs01 于 2024-1-10 19:42 编辑
shiroin 发表于 2024-1-10 18:59
前天刚好有人问了和你差不多的问题,都可以用Drill的Drill_SkillRecorder插件来解决问题
你这需求核心就是 ...


大佬,你的方法听起来是可行的。
我用插件里面的“上一个使用者ID”,随便设置了一个变量:279
然后我设置了攻击药水,使用后调用公共事件,接着公用事件里选“增减能力值”变量279,攻击力+5
然后脚本:$gameActors.actor(n).atk
接着文字显示:\v[279] +5

运行游戏,使用道具后出错。是不是我写的不对?大佬能不能帮我写一个例子?万分感谢!

作者: shiroin    时间: 2024-1-10 20:22
nhycs01 发表于 2024-1-10 19:30
大佬,你的方法听起来是可行的。
我用插件里面的“上一个使用者ID”,随便设置了一个变量:279
然后我设 ...

你直接写$gameActors.actor(n).atk当然会报错了……n是一个没有被定义的值是要你替换或加以定义的
按你这个需求,你是需要两个变量来分别记录角色名称和属性的
既然你把作用对象ID赋值给了279号变量,那可以用279号变量计算出增加后的攻击力,同时可以用280号变量来记录角色名称
具体格式参考这个:

◆脚本:var actorId = $gameVariables.value(279);
:  :var actorAtk = $gameActors.actor(actorId).atk + 5;
:  :var actorName = $gameActors.actor(actorId)._name;
:  :$gameVariables.setValue(279, actorAtk);
:  :$gameVariables.setValue(280, actorName)
◆文本:无, 窗口, 底部
:  :\v[280]的攻击力上升至\v[279]!
作者: soulsaga    时间: 2024-1-10 21:01
本帖最后由 soulsaga 于 2024-1-10 21:56 编辑

$gameActors.actor(actorId).atk是已经是提升后了吗?
那么-5就能得到提升前的了?
作者: nhycs01    时间: 2024-1-10 22:10
本帖最后由 nhycs01 于 2024-1-10 22:14 编辑
shiroin 发表于 2024-1-10 20:22
你直接写$gameActors.actor(n).atk当然会报错了……n是一个没有被定义的值是要你替换或加以定义的
按你这 ...


感谢大佬指点,这次终于成功了。
但是效果看起来,也如楼上所说,如果AAA的攻击力为100,只是显示了:AAA的攻击力上升至105!
如果能有这样的效果就更好了:AAA的攻击力由100提升到了105!

也就是说,让玩家更直观地感受到,实力确实提升了,数值确实增加了。
因为,在使用之前,或许玩家根本没在意当前角色攻击力是多少,看到这个“AAA的攻击力上升至105!”,也只是会想:哦,提升了,之前是多少来的?应该是100吧。
但是,如果是“AAA的攻击力由100提升到了105!”玩家可能会想:嗯……这回输出又多了5点攻击力了。
这是我的想法。
作者: shiroin    时间: 2024-1-10 22:16
nhycs01 发表于 2024-1-10 22:10
感谢大佬指点,这次终于成功了。
但是效果看起来,也如楼上所说,如果AAA的攻击力为100,只是显示了:AAA ...

再加个变量用于记录前后属性嘛,把事件改成这样:

◆脚本:var actorId = $gameVariables.value(279);
:  :var actorAtk = $gameActors.actor(actorId).atk;
:  :var actorName = $gameActors.actor(actorId)._name;
:  :$gameVariables.setValue(279, actorAtk);
:  :$gameVariables.setValue(280, actorName);
:  :$gameVariables.setValue(281, actorAtk + 5)
◆文本:无, 窗口, 底部
:  :\v[280]的攻击力由\v[279]上升至\v[281]!

分别用279号变量和281号变量记录原攻击力和成长后的攻击力方便在文本显示




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