Project1

标题: 想制作个爆发式的技能,无奈遇到了问题…… [打印本页]

作者: 512195574    时间: 2013-7-9 13:59
标题: 想制作个爆发式的技能,无奈遇到了问题……
本帖最后由 512195574 于 2013-7-9 18:50 编辑

想制作一个技能是爆发式的,技能放出以后的几回合内很强,但是一旦技能状态消失就会很虚弱。
我是这么尝试的
技能释放的时候会公共事件主动激活23号开关,激活爆发状态。
然后用了并行事件,条件分歧,2号角色为爆发状态时不执行事件,除此以外的场合并且23号开关开的时候(又一个条件分歧)执行给予2号角色虚弱状态,然后关闭23号开关……感觉应该没问题,不过测试游戏的时候却没有出现虚弱这一效果,貌似虚弱这一事件在战斗后才会执行。这样……何解= =

PS:站内搜索是不能搜索“爆发”二字的……
作者: wwwcctvty    时间: 2013-7-9 14:10
用二个状态控制呀,先是人物中第一个状态全属性加130%,然后几回合后解除再附加第二个状态全属性减50%
作者: 芯☆淡茹水    时间: 2013-7-9 15:53
LS正解,很强的状态解除后,马上附加很弱的状态。
作者: 512195574    时间: 2013-7-9 17:04
wwwcctvty 发表于 2013-7-9 14:10
用二个状态控制呀,先是人物中第一个状态全属性加130%,然后几回合后解除再附加第二个状态全属性减50% ...


我是按照这个设计思路做的……



爆发技能发动时会打开53号五秒开关,当开关打开时并且不处于此爆发状态的时候才会进行虚弱状态操作并且关上开关(确保只执行一次)
设置的是并行事件,不过实际上“除此以外的场合”里面的指令在战斗结束的时候才会响应,当然战斗中挨第一种属性攻击还是会掉血……
作者: 芯☆淡茹水    时间: 2013-7-9 17:28
  1. #==============================================================================
  2. # ● 设置
  3. #------------------------------------------------------------------------------
  4. # 爆发状态的 ID
  5. BLOW_UP_STATE_ID = 10
  6. # 虚弱状态的 ID
  7. WEAK_STATE_ID = 11
  8. #==============================================================================
  9. class Game_Battler
  10.   #--------------------------------------------------------------------------
  11.   # ● 解除状态
  12.   #     state_id : 状态 ID
  13.   #     force    : 强制解除标志 (处理自动状态时使用)
  14.   #--------------------------------------------------------------------------
  15.   def remove_state(state_id, force = false)
  16.     # 无法附加本状态的情况下
  17.     if state?(state_id)
  18.       # 被强制附加的状态、并不是强制解除的情况下
  19.       if @states_turn[state_id] == -1 and not force
  20.         # 过程结束
  21.         return
  22.       end
  23.       # 现在的 HP 为 0 当作选项 [当作 HP 0 的状态]有效的场合
  24.       if @hp == 0 and $data_states[state_id].zero_hp
  25.         # 判断是否有另外的 [当作 HP 0 的状态]状态
  26.         zero_hp = false
  27.         for i in @states
  28.           if i != state_id and $data_states[i].zero_hp
  29.             zero_hp = true
  30.           end
  31.         end
  32.         # 如果可以解除战斗不能、将 HP 更改为 1
  33.         if zero_hp == false
  34.           @hp = 1
  35.         end
  36.       end
  37.       # 将状态 ID 从 @states 队列和 @states_turn hash 中删除
  38.       @states.delete(state_id)
  39.       @states_turn.delete(state_id)
  40.       add_state(WEAK_STATE_ID, true) if state_id == BLOW_UP_STATE_ID
  41.     end
  42.     # 检查 HP 及 SP 的最大值
  43.     @hp = [@hp, self.maxhp].min
  44.     @sp = [@sp, self.maxsp].min
  45.   end
  46. end
复制代码
复制以上脚本,插入到 main 前
没有说明,在脚本里面设置好就行


作者: 512195574    时间: 2013-7-9 18:05
本帖最后由 512195574 于 2013-7-9 18:50 编辑
芯☆淡茹水 发表于 2013-7-9 17:28
复制以上脚本,插入到 main 前
没有说明,在脚本里面设置好就行


问题解决,thanks。
不过如果想达到本来完全式的爆发效果(如$data_classes[9].element_ranks[4] = 6)这样的就没办法了吧(找到不到合适嵌入的位置)




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