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

Project1

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

[已经过期] 脚本获取状态施加者出错

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2258
在线时间
176 小时
注册时间
2018-5-11
帖子
144
跳转到指定楼层
1
发表于 2020-8-12 16:21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个脚本使用后39行出错了,求大佬帮改一下
RUBY 代码复制
  1. STATE_ACTION_EVERYTURN ={}
  2.  
  3. # 每回合持有指定状态者行动时让状态施加者对持有者发动指定技能
  4. # 例:STATE_ACTION_EVERYTURN[22] = 2 #持有状态22的角色每回合行动后都会受到状态施加者以2号技能的攻击
  5.  
  6. # 状态施加者和持有者不可以是同一方的
  7. # * 现在可以了 2011 05 03
  8. STATE_ACTION_EVERYTURN[58] = 292 #铁轮
  9. #STATE_ACTION_EVERYTURN[238] = 171 #恋心舞踏
  10.  
  11. #STATE_ACTION_EVERYTURN[231] = 163 #博士爆炸
  12. #STATE_ACTION_EVERYTURN[123] = 217
  13. #STATE_ACTION_EVERYTURN[140] = 705
  14. #STATE_ACTION_EVERYTURN[359] = 1209
  15.  
  16. STATE_ADDITIONAL_ACTION_EVERYTURN = {}
  17. # 持有指定状态的角色有一定几率被追加一次攻击,要先定义STATE_ACTION_EVERYTURN才有效
  18. # 例:RANDOM_ADDITIONAL_ACTION[140] = 30 #持有140状态角色有30%概率被连续第二次触发指定技能
  19.                                          #同时也会打断原本的当前行动
  20. #STATE_ADDITIONAL_ACTION_EVERYTURN[140] = 15
  21.  
  22. #========================================================================
  23. # ■ Game_Battler (分割定義 1)
  24. #========================================================================
  25. class Game_Battler
  26.  
  27.   attr_accessor :action_recorded
  28.  
  29.   #--------------------------------------------------------------------------
  30.   # ● 获取状态施加者
  31.   #--------------------------------------------------------------------------
  32.   def get_state_maker(state_id)
  33.      return self unless state?(state_id)
  34.      return self if @state_makers[state_id].nil?
  35.      return @state_makers[state_id]
  36.   end
  37.  
  38.   #--------------------------------------------------------------------------
  39.   # ● 记录当前行动状态
  40.   #--------------------------------------------------------------------------
  41.   def record_action(rewrite = false)
  42.     return if @action_recorded and rewrite == false
  43.     @action_recorded = true
  44.     @record_old_action = self.current_action.clone
  45.     @record_rt = [self.rt,self.rtp]
  46.   end
  47.  
  48.   #--------------------------------------------------------------------------
  49.   # ● 恢复记录的行动状态
  50.   #--------------------------------------------------------------------------
  51.   def resume_action
  52.     return unless @action_recorded
  53.     self.current_action = @record_old_action.clone
  54.     self.rt = @record_rt[0]
  55.     self.rtp = @record_rt[1]
  56.     @action_recorded = false
  57.   end      
  58.  
  59.   #--------------------------------------------------------------------------
  60.   # ● 强制技能行动
  61.   #--------------------------------------------------------------------------
  62.   def make_attack_against_enemy(target,skill = 0)
  63.     index = -2
  64.     kind = 0
  65.     basic = 0
  66.     skill_id = 0
  67.     if target.is_a?(Game_Actor)
  68.       index = $game_party.ordinal(target)
  69.     else
  70.       index = $game_troop.ordinal(target)
  71.     end
  72.     index -= 1
  73.     if skill.nil? or skill == 0
  74.       kind = 0
  75.       basic = 0
  76.     else
  77.       kind = 1
  78.       skill_id = skill
  79.     end
  80.     force_action2(kind,basic,skill_id,index,1)
  81.   end
  82.  
  83.  
  84. end
  85.  
  86. #==============================================================================
  87. # ■ Scene_Battle (分割定義 4)
  88. #------------------------------------------------------------------------------
  89. #  バトル画面の処理を行うクラスです。
  90. #==============================================================================
  91. # アニメに強さ0のフラッシュが存在した場合、
  92. # 赤:倍率 緑:+スキル?アイテムID でダメージ計算を行う。
  93.  
  94. class Scene_Battle  
  95.  
  96.   #--------------------------------------------------------------------------
  97.   # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  98.   #--------------------------------------------------------------------------
  99.   alias action_update_phase4_step6_zunk20101124 update_phase4_step6
  100.   def update_phase4_step6(battler)
  101.     for state_id in STATE_ACTION_EVERYTURN.keys
  102.       if battler.state?(state_id)
  103.         user = battler.get_state_maker(state_id)
  104.         next unless user.exist?
  105.         user.record_action
  106.         user.make_attack_against_enemy(battler,STATE_ACTION_EVERYTURN[state_id])
  107.         if STATE_ADDITIONAL_ACTION_EVERYTURN[state_id] != nil
  108.           if rand(100) < STATE_ADDITIONAL_ACTION_EVERYTURN[state_id]     
  109.             user.record_action(true)
  110.             user.make_attack_against_enemy(battler,STATE_ACTION_EVERYTURN[state_id])
  111.             ###追加行动
  112.           end
  113.         end
  114.       end
  115.     end
  116.     action_update_phase4_step6_zunk20101124(battler)
  117.   end
  118. end
人生总会有中二的时候,比如现在
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-4-28 18:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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