#=========================================================================== # ◆ A1 Scripts ◆ # イベント4枚アニメ(RGSS3) # # バージョン : 1.00 (2011/12/31) # 作者 : A1 # URL     : http://a1tktk.web.fc2.com/ #--------------------------------------------------------------------------- # 機能: # ・イベントを 下→左→右→上 の順番にアニメーションさせます #--------------------------------------------------------------------------- # 更新履歴   :2011/12/31 Ver1.00 リリース #--------------------------------------------------------------------------- # 設置場所 #  特になし # # 必要スクリプト # なし #--------------------------------------------------------------------------- # 使い方 # イベント名に記述 # # [D4 pno,wait] pno :イベントページNo # wait:アニメのウェイト #============================================================================== $imported ||= {} $imported["A1_D4Animation"] = true #============================================================================== # ■ Game_Event #============================================================================== class RPG::Event::Page #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :d4_animation #-------------------------------------------------------------------------- # ○ 4枚アニメ #-------------------------------------------------------------------------- def d4_animation @d4_animation ||= -1 return @d4_animation end end #============================================================================== # ■ Game_Event #============================================================================== class RPG::Event #-------------------------------------------------------------------------- # ○ 4枚アニメのセットアップ #-------------------------------------------------------------------------- def setup_d4_animation @name.scan(/\[D4[ ](\d+)[,](\d+)\]/).each {|info| page_no = info[0].to_i wait_count = info[1].to_i return set_all_d4(wait_count) if page_no == 0 set_d4(@pages[page_no - 1], wait_count) } end #-------------------------------------------------------------------------- # ○ 全てのイベントページに4枚アニメを適用 #-------------------------------------------------------------------------- def set_all_d4(wait_count) @pages.each {|page| set_d4(page, wait_count) } end #-------------------------------------------------------------------------- # ○ 4枚アニメを適用 #-------------------------------------------------------------------------- def set_d4(page, wait_count) return if page == nil page.d4_animation = wait_count end end #============================================================================== # ■ Game_Event #------------------------------------------------------------------------------ #  イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理 # イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。 #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ☆ オブジェクト初期化 # event : RPG::Event #-------------------------------------------------------------------------- alias a1_d4_animation_ge_initialize initialize def initialize(map_id, event) event.setup_d4_animation a1_d4_animation_ge_initialize(map_id, event) end #-------------------------------------------------------------------------- # ☆ イベントページの設定をクリア #-------------------------------------------------------------------------- alias a1_d4_animation_ge_clear_page_settings clear_page_settings def clear_page_settings a1_d4_animation_ge_clear_page_settings @d4_count = -1 end #-------------------------------------------------------------------------- # ☆ イベントページの設定をセットアップ #-------------------------------------------------------------------------- alias a1_d4_animation_ge_setup_page_settings setup_page_settings def setup_page_settings a1_d4_animation_ge_setup_page_settings @d4_count = @page.d4_animation end #-------------------------------------------------------------------------- # ☆ フレーム更新 #-------------------------------------------------------------------------- alias a1_d4_animation_ge_update update def update update_d4_animation a1_d4_animation_ge_update end #-------------------------------------------------------------------------- # ○ 4枚アニメの更新 #-------------------------------------------------------------------------- def update_d4_animation return if @d4_count == -1 or @d4_count == nil @d4_count -= 1 return if @d4_count > 0 if @page.graphic.character_name =~ /^2000_/ case @direction when 2; @direction = 4 when 4; @direction = 8 when 6; @direction = 2 when 8; @direction = 6 end else @direction += 2 @direction = 2 if @direction > 8 end @d4_count = @page.d4_animation end end