Project1

标题: 【求教】关于战斗中释放技能时显示立绘的问题 [打印本页]

作者: wdh88666    时间: 2019-1-20 11:22
标题: 【求教】关于战斗中释放技能时显示立绘的问题
回合制RPG,想做一个战斗效果——释放技能时会显示一张角色立绘,技能结束后立绘消失(就像碧蓝航线、时之歌那样)

一开始我用技能关联到公共事件,不过效果都是技能释放完毕后才开始执行显示立绘的公共事件,与我想要的“释放时显示”差别甚大

在论坛里翻了很多帖子,都没能找到解决办法。求大佬指点迷津

作者: 在野月光族    时间: 2019-1-21 20:30
Game_Action 改一下就行了。
作者: b040116    时间: 2019-1-22 07:39
不懂事件和編碼,突發奇想把立繪放進資料庫裡的施放技能動畫那裡可不可行?
作者: wdh88666    时间: 2019-1-22 12:14
b040116 发表于 2019-1-22 07:39
不懂事件和編碼,突發奇想把立繪放進資料庫裡的施放技能動畫那裡可不可行? ...

试过了,特别模糊……约等于马赛克
作者: wdh88666    时间: 2019-1-22 12:15
在野月光族 发表于 2019-1-21 20:30
Game_Action 改一下就行了。

啊具体怎么改我去试试
作者: wdh88666    时间: 2019-1-22 12:22
在野月光族 发表于 2019-1-21 20:30
Game_Action 改一下就行了。

我用的是MV,里面没有脚本编辑界面啊
作者: Shure    时间: 2019-1-22 13:14
我有一个想法:
以要释放的技能为契机,你把要使用的技能先弄成毫无威力并且无任何动画效果,而且那个要使用的技能链接公共事件,由公共事件负责触发技能。如果我解释不清楚的话,我可以做个范例?
作者: wdh88666    时间: 2019-1-22 14:57
Shure 发表于 2019-1-22 13:14
我有一个想法:
以要释放的技能为契机,你把要使用的技能先弄成毫无威力并且无任何动画效果,而且那个要使 ...

试了一下,会先显示“攻击,无效果”战斗文字,然后才执行公共事件,出立绘、执行战斗,我用公共事件强制战斗动作的,无法选定攻击目标
作者: tseyik    时间: 2019-1-22 15:26
試試
行動前イベント(MV)
http://blueredzone.com/script/mv/mv_eventbeforeaction.html
戦闘アクション実行前にコモンイベントを起動します。
カットインの演出や、特定条件下で発展するスキルなどを表現できます。
在執行戰鬥行動之前激活公共事件。
您可以表達在特定條件下發展的切入式生產和技能。
作者: wdh88666    时间: 2019-1-22 18:28
tseyik 发表于 2019-1-22 15:26
試試
行動前イベント(MV)
http://blueredzone.com/script/mv/mv_eventbeforeaction.html

用百度翻译学了一下,功能却是是我想要的,不过……这些个代码应该怎么用我完全不懂
作者: 梦想家大魔王    时间: 2019-1-22 19:40
wdh88666 发表于 2019-1-22 18:28
用百度翻译学了一下,功能却是是我想要的,不过……这些个代码应该怎么用我完全不懂 ...

你再百度一下怎么使用MV插件。
作者: Shure    时间: 2019-1-22 20:05
wdh88666 发表于 2019-1-22 14:57
试了一下,会先显示“攻击,无效果”战斗文字,然后才执行公共事件,出立绘、执行战斗,我用公共事件强制 ...

强制战斗命令下,行动目标最好是选为上一目标。
至于前面的无效果的攻击就只能算是整个RM软件的某种弊病了。

本人是事件党,所以仅能给予你这些帮助,抱歉。
作者: 在野月光族    时间: 2019-1-22 22:01
本帖最后由 在野月光族 于 2019-1-22 22:02 编辑

JAVASCRIPT 代码复制
  1. var GA_SS = Game_Action.prototype.setSkill;
  2. Game_Action.prototype.setSkill = function(skillId) {
  3.         if(this._subjectActorId > 0){
  4.                 $dataSkills[skillId].effects.forEach(function(effect) {
  5.                         if (effect.code === 44) {
  6.                                 this._effect = 1;
  7.                                 $gameTemp.reserveCommonEvent(effect.dataId);
  8.                         };
  9.                 }, this);
  10.         };
  11.  
  12.     GA_SS.call(this, skillId);
  13. };
  14.  
  15. var GA_AG = Game_Action.prototype.applyGlobal;
  16. Game_Action.prototype.applyGlobal = function() {
  17.         if(!!this._effect) {this._effect = 0; return };
  18.         GA_AG.call(this);
  19. };



粘贴到记事本另存为js文件,放到插件。
就是将公共事件的发动提前了一下,没其他了。
另外,重置了这个技能中的公共事件为敌人不能触发。

this._subjectActorId > 0 :公共事件效果的发动者是玩家角色
$dataSkills :数据库→技能
skillId :技能编号
effects :数据库→技能→效果
44 : (数据库接口常量)表示技能中插入了公共事件
this._effect :(自定义参数) 是否提前使用过公共事件 → 1、是  |  0、否
$gameTemp.reserveCommonEvent(公共事件ID) : 让MV调用公共事件(事件编号)
Game_Action.prototype.applyGlobal → MV默认技能伤害结算后检查是否有公共事件,发现有就触发。
版本:MV1.6.1

作者: tseyik    时间: 2019-1-24 00:09
若不用条件
http://tm.lucky-duet.com/viewtop ... 80f47efccda6#p26482
可用這插件
使用方法
* データベースのスキルの項のメモ欄に以下の様に記述することで、
* スキルの使用前にコモンイベントを実行させることができます。
*
* <eventId:1>   # スキルの使用前にイベント番号1番のコモンイベントを実行




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