Project1

标题: 类似女神转生的恶魔交涉技能 [打印本页]

作者: 玄天    时间: 2017-10-25 13:18
标题: 类似女神转生的恶魔交涉技能
本帖最后由 玄天 于 2017-10-25 17:33 编辑

原文是个提问,后来自己解决了,解决办法见楼下

▼原文
想做一个类似在战斗中和敌人交流的效果,如果对话选项选对的话敌人就会逃走(退场)或者直接战斗胜利。类似女神转生系列的恶魔交涉。

怎么判断选中敌人倒是让我在日本那边找到了代码,但是不知道怎么让敌人执行动作。自带的强制行动貌似是用来让敌人强制怼我方用的,并没有作用到敌人自己本身。

就算用赋予『战斗不能』状态给敌人也只是让敌人无法选中而已,图形还在,并没有消失效果。

另外就是由于是用一个没有伤害的技能去选中敌人,所以会弹MISS之类……这种情况有没可能避免?
作者: wabcmcc    时间: 2017-10-25 15:48
事件頁,
強制動作: 敵人施展逃跑技能.
作者: 玄天    时间: 2017-10-25 17:03
wabcmcc 发表于 2017-10-25 15:48
事件頁,
強制動作: 敵人施展逃跑技能.

哦,原来之前不知道什么问题把逃跑技能的范围设置成『敌人』,怪不得之前一直试都是主角自己跑路
因为逻辑上作用于『敌人』的技能在敌人身上使用等于反弹给角色
作者: 玄天    时间: 2017-10-25 17:23
本帖最后由 玄天 于 2017-10-25 17:29 编辑

我白痴了,战斗胜利的话直接给个全体敌人战斗不能不就行了吗。

顺便说一下我这个功能的做法:

首先做一个技能(比如叫『聊天流』),效果范围是『敌人单体』,然后效果是呼叫公用事件。
然后再做一个技能(比如叫『劝退』),效果范围是『使用者』,其他同『逃跑』

『聊天流』的公用事件里用代码获取到敌人在数据库的编号:
  1. $gameTroop.members()[BattleManager._subject._lastTargetIndex].enemyId();
复制代码

以及选中敌人在这场战斗中的index:
  1. BattleManager._subject._lastTargetIndex;
复制代码


聊天过程略

然后执行『劝退』
  1. this.iterateBattler(0, 敌人index, function(battler) {
  2. if (!battler.isDeathStateAffected()) {
  3. battler.forceAction(劝退技能编号, -2)
  4. BattleManager.forceAction(battler)
  5. this.setWaitMode('action')
  6. }
  7. }.bind(this))
复制代码



另外刚试了一下,事件指令本身给全体敌人加『战斗不能』的话会有个消失效果,如果不想有消失效果的话得用代码:
  1. $gameTroop.members().forEach(function(enemy){
  2. enemy.addState(1)
  3. });
复制代码



蹦字是我自己的插件问题(有个蹦字加强的会把无效技能效果判断为MISS然后蹦出来,关掉就没事了)




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