| 
 
| 赞 | 274 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 153 |  
| 经验 | 515 |  
| 最后登录 | 2025-10-8 |  
| 在线时间 | 2108 小时 |  
 Lv4.逐梦者 
	梦石1 星屑14293 在线时间2108 小时注册时间2017-9-28帖子663 | 
| 复制代码#==============================================================================
# ■ RGSS3 移动失败时播放SE&踏步动画 Ver1.00 by 星潟
#------------------------------------------------------------------------------
# 可以在移动失败时(撞墙或撞事件)播放一个se,也可以设定移动失败时是否踏步
#==============================================================================
module MF_SS
  
  #是否在移动失败时播放se
  SE_OK     = true
  
  #移动失败时播放的se
  #['SE文件名', 音量, 音调] 
  SE       = ['Blow1', 60, 100]
  
  #SE间隔时间
  INTERVAL = 30
  
  #是否在移动失败时,继续播放踏步动画
  STEP_OK     = true
  
  #是否在事件移动失败时,播放se 
  EVENT_SE = false
  
  #是否在事件移动失败时,继续播放踏步动画
  EVENT_ST = false
  
  #禁用移动失败se的开关,开关开启时不播放se
  SWITCH_1 = 10
  
  #禁用移动失败踏步动画的开关,开关开启时不继续播放踏步动画
  SWITCH_2 = 11
  
end
class Game_Temp
  attr_accessor :last_mf_time
end
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # まっすぐに移動
  #--------------------------------------------------------------------------
  alias move_straight_mfss move_straight
  def move_straight(d, turn_ok = true)
    
    #本来の処理を実行。
    
    move_straight_mfss(d, turn_ok)
    
    #移動に失敗した場合は移動失敗時の特殊処理を実行。
    
    mf_s_execute if !@move_succeed
  end
  #--------------------------------------------------------------------------
  # 斜めに移動
  #--------------------------------------------------------------------------
  alias move_diagonal_mfss move_diagonal
  def move_diagonal(horz, vert)
    
    #本来の処理を実行。
    
    move_diagonal_mfss(horz, vert)
    
    #移動に失敗した場合は移動失敗時の特殊処理を実行。
    
    mf_s_execute if !@move_succeed
  end
  #--------------------------------------------------------------------------
  # 移動失敗時に音を鳴らす
  #--------------------------------------------------------------------------
  def mf_s_execute
    
    #イベント実行中か否かを取得。
    
    ev_f = $game_map.interpreter.running?
    
    #設定に応じてSE演奏を行うかどうかを判定。
    
    unless !MF_SS::SE_OK or (!MF_SS::EVENT_SE && ev_f) or $game_switches[MF_SS::SWITCH_1]
    
      #最後に移動に失敗した時刻が存在しない場合
      #もしくは一定時間が経過している場合は処理を分岐。
      
      if ($game_temp.last_mf_time == nil or ((Graphics.frame_count - $game_temp.last_mf_time) > MF_SS::INTERVAL))
        
        #時間を更新する。
        
        $game_temp.last_mf_time = Graphics.frame_count
        
        #指定したSEを鳴らす。
        
        RPG::SE.new(MF_SS::SE[0],MF_SS::SE[1],MF_SS::SE[2]).play
        
      end
      
    end
    
    #設定に応じて歩行アニメ更新を行うかどうかを判定。
    
    unless !@walk_anime or !MF_SS::STEP_OK or (!MF_SS::EVENT_ST && ev_f) or $game_switches[MF_SS::SWITCH_2]
      
      #パターンがオリジナルパターンと異なる場合はカウントを0.5増やす。
      #同一の場合は3増やす。
      
      if @pattern != @original_pattern
        
        @anime_count += 0.5
        
      else
        
        @anime_count += 3
        
      end
    end
  end
end
 | 
 评分
查看全部评分
 |