设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1109|回复: 1
打印 上一主题 下一主题

[已经过期] 自动附加状态的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2150
在线时间
1010 小时
注册时间
2015-10-17
帖子
1283
跳转到指定楼层
1
发表于 2022-11-13 12:35:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
问下,角色拥有技能时,也能触发自动增加状态,不仅只是装备下触发

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 装备/敌人战斗中自动附加状态  by 老鹰
  3. #------------------------------------------------------------------------------
  4. #   - 新增在战斗中指定时刻,装备携带者/敌人的自动附加指定状态
  5. #   - 在装备/敌人栏备注内填入下式(可用空格或逗号分隔内部各项)(可重复填入多行)
  6. #      <状态附加时机: 状态id, 附加概率分子, 附加概率分母, 出现条件>
  7. #       状态附加时机(替换为下列英语):
  8. #          Battle Start State  -  战斗开始时
  9. #          Turn Start State    -  回合开始时  *需碧轨战斗顺序,默认战斗者无该时刻
  10. #          Action End State    -  行动结束时
  11. #          Turn End State      -  回合结束时
  12. #       状态id: 填入需要自动附加的状态id号
  13. #       附加概率分子、附加概率分母(可选): 状态附加的概率为 分子/分母,不填则为 1
  14. #       出现条件(可选):被eval后如果返回真,才能进行附加,不填则默认为 真
  15. #         注: 可用 s 代表 $game_switches, v 代表 $game_variables
  16. #   - 举例:
  17. #       在 1 号护甲备注里填入 <Battle Start State: 1>, 1号角色装备中
  18. #         作用:在战斗开始时,1号角色自动附加一次1号状态
  19. #       在 2 号护甲备注里填入 <Turn End State: 2, 1,2>,2号角色装备中
  20. #         作用:在每次回合结束时,2号角色有 1/2 的概率附加2号状态
  21. #       在 1 号敌人备注里填入 <Action End State: 3, 1,5, $game_switches[1]>
  22. #         作用:1号敌人每次技能使用结束、且1号开关开启时,有 1/5 的概率附加3号状态
  23. #   - 实质:在战斗各个时机,角色自身的处理中追加状态的附加
  24. #==============================================================================
  25.  
  26. class Game_Battler < Game_BattlerBase
  27.   #--------------------------------------------------------------------------
  28.   # ● 获取需要提取附加状态的对象的数组
  29.   #--------------------------------------------------------------------------
  30.   def get_battler_auto_states_notes_array
  31.     return equips if actor?
  32.     return [self] if enemy?
  33.     return []
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 处理自动状态的附加
  37.   #--------------------------------------------------------------------------
  38.   def eagle_check_auto_add_states(type)
  39.     array = get_battler_auto_states_notes_array
  40.     case type
  41.     when :on_battle_start
  42.       exp = /<Battle Start State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  43.     when :on_turn_start
  44.       exp = /<Turn Start State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  45.     when :on_action_end
  46.       exp = /<Action End State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  47.     when :on_turn_end
  48.       exp = /<Turn End State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  49.     end
  50.     s = $game_switches
  51.     v = $game_variables
  52.     array.each do |a|
  53.       next if a == nil
  54.       a.note.split(/[\r\n]+/).each do |line|
  55.         line =~ exp
  56.         # $1 - 状态id $2$3 - 概率 $4 - eval条件
  57.         next if $1 == nil
  58.         next if $4 != "" && eval($4) == false
  59.         p1 = $2 == "" ? 1 : $2.to_i
  60.         p2 = $3 == "" ? 1 : $3.to_i
  61.         next if rand > (p1 * 1.0 / p2)
  62.         add_state($1.to_i)
  63.       end
  64.     end
  65.   end
  66.  
  67.   #--------------------------------------------------------------------------
  68.   # ● 战斗开始处理
  69.   #--------------------------------------------------------------------------
  70.   alias eagle_battler_auto_states_on_battle_start on_battle_start
  71.   def on_battle_start
  72.     eagle_check_auto_add_states(:on_battle_start)
  73.     eagle_battler_auto_states_on_battle_start
  74.   end  
  75.  
  76.   #--------------------------------------------------------------------------
  77.   # ○ 回合开始
  78.   #  需要 碧轨战斗行动顺序系统
  79.   #--------------------------------------------------------------------------
  80.   if Scene_Battle.include?(Saba::Kiseki)
  81.   alias eagle_battler_auto_states_on_turn_start on_turn_start
  82.   def on_turn_start
  83.     eagle_check_auto_add_states(:on_turn_start)
  84.     eagle_battler_auto_states_on_turn_start
  85.   end
  86.   end
  87.  
  88.   #--------------------------------------------------------------------------
  89.   # ● 战斗行动结束时的处理
  90.   #--------------------------------------------------------------------------
  91.   alias eagle_battler_auto_states_on_action_end on_action_end
  92.   def on_action_end
  93.     eagle_check_auto_add_states(:on_action_end)
  94.     eagle_battler_auto_states_on_action_end
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 回合结束处理
  98.   #--------------------------------------------------------------------------
  99.   alias eagle_battler_auto_states_on_turn_end on_turn_end
  100.   def on_turn_end
  101.     eagle_check_auto_add_states(:on_turn_end)
  102.     eagle_battler_auto_states_on_turn_end
  103.   end
  104. end

Lv4.逐梦者

梦石
0
星屑
6707
在线时间
591 小时
注册时间
2017-11-10
帖子
679

极短21参与

2
发表于 2022-11-13 18:36:13 | 只看该作者
Theo 好像有这种被动技能的脚本
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-24 16:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表