Project1

标题: 能不能把敌人的血量变成指定的变量? [打印本页]

作者: jko555    时间: 2020-1-28 19:50
标题: 能不能把敌人的血量变成指定的变量?
再做一个类似时间倒流的技能,发现只有增减没有指定
作者: chanszeman1018    时间: 2020-1-28 20:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: kunikai    时间: 2020-1-29 23:40
本帖最后由 kunikai 于 2020-1-30 00:04 编辑

以下是个人用于抛砖引玉的简单方法。匆忙写的,有逻辑漏洞烦请提醒我改正。

首先预留至少16个变量、8个开关。将变量8个分为一组,分别称为A组和B组。

让“回溯技能”为目标附加状态“准备回溯”;
同时让“回溯技能”执行“公共事件A”,在“公共事件A”中用A组变量分别记录下所有处于状态“准备回溯”敌人的HP,
并打开敌人所分别对应的开关防止HP被重复记录

设置另一个技能,让该技能解除“准备回溯”状态;或为“准备回溯”状态设定另外的解除条件。(由你决定何时回溯。)

将下方脚本插入默认脚本以下、Main以上,使状态“准备回溯”结束时触发“公共事件B”,
不断为B组变量分别赋予1-8号敌人的当前HP,同时不断增/减对应敌人HP使B组变量最终等于A组对应变量。
若敌人仍处于状态“准备回溯”或对应原HP变量为0,则不对其HP进行处理。
处理完成后,使被处理敌人所对应的A组变量归零、所对应的开关关闭。

为了避免某些“不可预料的BUG”,请在每场战斗开始时将“回溯技能”用到的变量全部归零、开关全部关闭。


RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def remove_state(state_id)
  3.     if state?(state_id)
  4.       if state_id == 26 #如果解除的状态编号为26号
  5.         $game_temp.reserve_common_event(7) #执行7号公共事件
  6.       end
  7.       revive if state_id == death_state_id
  8.       erase_state(state_id)
  9.       refresh
  10.       @result.removed_states.push(state_id).uniq!
  11.     end
  12.   end
  13. end





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