Project1

标题: 诅咒装备脚本报错 [打印本页]

作者: 狂乱月眼    时间: 2014-12-20 13:11
标题: 诅咒装备脚本报错
本帖最后由 狂乱月眼 于 2014-12-20 13:13 编辑

第18行脚本报错,诅咒.ogg已经放入文件Audio/SE文件夹里了,是不是我漏掉了什么呢?
  1. #==============================================================================
  2. # ■ 特定の装備品を装備した時に音 Ver 1.0               By むー
  3. #------------------------------------------------------------------------------
  4. #  ドラクエにあるような「呪いの装備をすると不気味な曲が流れる」を作れます。
  5. #==============================================================================
  6. module MOO_EQUIP_SOUND
  7.   #--------------------------------------------------------------------------
  8.   # 以下、設定箇所です。
  9.   #--------------------------------------------------------------------------

  10.   # 音を鳴らす装備品のIDを列挙します。
  11.   # LOCK_WEAPON=武器 LOCK_ARMOR=防具 です。
  12.   LOCK_WEAPON = [33,35,45,51]
  13.   LOCK_ARMOR  = [45,40]

  14.   # 上記ステート付加機能が付いた装備品を装備をした時に鳴らすサウンド
  15.   SOUND_PASS  = "Audio/SE/诅咒"
  16.   SOUND_VOLUME = Audio.se_vol
  17.   SOUND_PICH   = 100
  18.   # 上からサウンド名、音量、ピッチです。

  19.   # サウンドを鳴らした時に発生させるウェイト
  20.   SOUND_WAIT   = 100
  21.   # 0の場合は待ち時間がありません。

  22.   # サウンドを鳴らす時にBGMを停めるか
  23.   BGM_STOP = true

  24.   # [使い方の一例]
  25.   # ドラクエで言う呪いの装備を作る場合、
  26.   # 装備品の特徴で固定装備を付加します。
  27.   # その時に、本スクリプトで音を出しましょう。
  28.   # 外す場合は、イベントで装備を外せばOKです。

  29.   #--------------------------------------------------------------------------
  30.   # ここまで。
  31.   #--------------------------------------------------------------------------

  32. end

  33. #==============================================================================
  34. # ■ Scene_Equip
  35. #------------------------------------------------------------------------------
  36. #  装備画面の処理を行うクラスです。
  37. #==============================================================================
  38. class Scene_Equip < Scene_MenuBase
  39.   #--------------------------------------------------------------------------
  40.   # ● アイテム[決定]
  41.   #--------------------------------------------------------------------------
  42.   def on_item_ok
  43.     Sound.play_equip
  44.     @actor.change_equip(@slot_window.index, @item_window.item)
  45.     @slot_window.activate
  46.     @slot_window.refresh
  47.     @item_window.unselect
  48.     @item_window.refresh
  49.     # 装備したのが武器だった場合
  50.     if @slot_window.index == 0
  51.       # 未装備かどうか
  52.       if $game_actors[@actor.id].equips[@slot_window.index].nil?
  53.       else
  54.         # 武器の指定があるかどうか
  55.         if MOO_EQUIP_SOUND::LOCK_WEAPON.size >= 1
  56.           # 武器指定分ループ
  57.           for chkid in MOO_EQUIP_SOUND::LOCK_WEAPON
  58.             # 指定武器だった場合
  59.             if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
  60.               # 音を鳴らす
  61.               sound_play_equip
  62.             end
  63.           end
  64.         end
  65.       end
  66.     # 装備したのがもう片手だった場合
  67.     elsif @slot_window.index == 1
  68.       # 未装備かどうか
  69.       if $game_actors[@actor.id].equips[@slot_window.index].nil?
  70.       else
  71.         # 二刀流かどうか
  72.         if $game_actors[@actor.id].dual_wield?
  73.           # 武器の指定があるかどうか
  74.           if MOO_EQUIP_SOUND::LOCK_WEAPON.size >= 1
  75.             # 武器指定分ループ
  76.             for chkid in MOO_EQUIP_SOUND::LOCK_WEAPON
  77.               # 指定武器だった場合
  78.               if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
  79.                 # 音を鳴らす
  80.                 sound_play_equip
  81.               end
  82.             end
  83.           end
  84.         # 防具の指定があるかどうか
  85.         elsif MOO_EQUIP_SOUND::LOCK_ARMOR .size >= 1
  86.           # 防具指定分ループ
  87.           for chkid in MOO_EQUIP_SOUND::LOCK_ARMOR
  88.             # 指定防具だった場合
  89.             if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
  90.               # 音を鳴らす
  91.               sound_play_equip
  92.             end
  93.           end
  94.         end
  95.       end
  96.     # 装備したのが頭・身体・装飾品だった場合
  97.     elsif @slot_window.index >= 2
  98.       # 未装備かどうか
  99.       if $game_actors[@actor.id].equips[@slot_window.index].nil?
  100.       else
  101.         # 防具の指定があるかどうか
  102.         if MOO_EQUIP_SOUND::LOCK_ARMOR .size >= 1
  103.           # 防具指定分ループ
  104.           for chkid in MOO_EQUIP_SOUND::LOCK_ARMOR
  105.             # 指定防具だった場合
  106.             if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
  107.               # 音を鳴らす
  108.               sound_play_equip
  109.             end
  110.           end
  111.         end
  112.       end
  113.     end
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ○ 音を鳴らす
  117.   #--------------------------------------------------------------------------
  118.   def sound_play_equip
  119.     se_name = MOO_EQUIP_SOUND::SOUND_PASS
  120.     se_volm = MOO_EQUIP_SOUND::SOUND_VOLUME
  121.     se_pich = MOO_EQUIP_SOUND::SOUND_PICH
  122.     se_stop = MOO_EQUIP_SOUND::BGM_STOP
  123.     se_wait = MOO_EQUIP_SOUND::SOUND_WAIT
  124.     $game_system.save_bgm                     if se_stop
  125.     RPG::BGM.stop                             if se_stop
  126.     Audio.se_play(se_name, se_volm, se_pich)  if se_name != ""
  127.     Graphics.wait(se_wait)                    if se_wait > 0
  128.     $game_system.replay_bgm                   if se_stop
  129.   end
  130. end
复制代码
  1. =begin
  2. RGSS3 それははずせない!
  3. by ⅠⅡⅢ

  4. =end

  5. module ONETWOTHREE
  6.   MESSEGE = "\\C[2]被诅咒的装备不能卸下" #好きなメッセージを!(制御文字も可)
  7. end

  8. class Window_EquipSlot < Window_Selectable
  9.   #--------------------------------------------------------------------------
  10.   # ☆ 決定ボタンが押されたときの処理
  11.   #--------------------------------------------------------------------------
  12.   def process_ok
  13.     if current_item_enabled?
  14.       Sound.play_ok
  15.       Input.update
  16.       deactivate
  17.       call_ok_handler
  18.     else
  19.       Sound.play_buzzer
  20.       Input.update
  21.       call_handler(:miniwindow)
  22.     end   
  23.   end
  24. end

  25. class Window_Mini_Messege < Window_Selectable
  26.   #--------------------------------------------------------------------------
  27.   # ☆ オブジェクト初期化
  28.   #--------------------------------------------------------------------------
  29.   def initialize
  30.     super(0, 0, 280, window_height)
  31.     refresh
  32.     self.visible = false
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ☆ ウィンドウ幅の取得
  36.   #--------------------------------------------------------------------------
  37.   def window_width
  38.     Graphics.width / 2
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ☆ ウィンドウ高さの取得
  42.   #--------------------------------------------------------------------------
  43.   def window_height
  44.     return 50
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ☆ リフレッシュ
  48.   #--------------------------------------------------------------------------
  49.   def refresh
  50.     self.x = (Graphics.width - width) / 2
  51.     self.y = (Graphics.height - height) / 2
  52.     self.z = 255
  53.     draw_text_ex(0, 0, ONETWOTHREE::MESSEGE)
  54.   end
  55. end


  56. class Scene_Equip < Scene_MenuBase
  57.   #--------------------------------------------------------------------------
  58.   # ○ 開始処理
  59.   #--------------------------------------------------------------------------
  60.   alias ori_123_start start
  61.   def start
  62.     ori_123_start
  63.    
  64.     create_mini_messege_window
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ○ スロットウィンドウの作成
  68.   #--------------------------------------------------------------------------
  69.   alias ori_123_create_slot_window create_slot_window
  70.   def create_slot_window
  71.     ori_123_create_slot_window
  72.    
  73.     @slot_window.set_handler(:miniwindow, method(:on_miniwin))   
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ☆ ミニウィンドウの作成
  77.   #--------------------------------------------------------------------------
  78.   def create_mini_messege_window
  79.     @mini_messege_window = Window_Mini_Messege.new
  80.     @mini_messege_window.viewport = @viewport
  81.     @mini_messege_window.set_handler(:ok,     method(:on_winclose_ok))
  82.     @mini_messege_window.set_handler(:cancel, method(:on_winclose_cancel))
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ☆ ミニウィンドウ[おk]
  86.   #--------------------------------------------------------------------------
  87.   def on_winclose_ok
  88.     @mini_messege_window.hide
  89.     @slot_window.activate
  90.     @slot_window.refresh
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ☆ ミニウィンドウ[キャンセル]
  94.   #--------------------------------------------------------------------------
  95.   def on_winclose_cancel
  96.     @mini_messege_window.hide
  97.     @slot_window.activate
  98.     @slot_window.refresh
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ☆ ミニウィンドウ表示
  102.   #--------------------------------------------------------------------------
  103.   def on_miniwin
  104.     @mini_messege_window.show
  105.     @slot_window.deactivate
  106.     @mini_messege_window.activate
  107.     @mini_messege_window.refresh
  108.   end
  109. end
复制代码
PS:两段脚本能不能合成一段?比较美观.
作者: taroxd    时间: 2014-12-20 13:20
把出错那行的 Audio.se_vol 改成 100 试试看




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