Project1
标题:
诅咒装备脚本报错
[打印本页]
作者:
狂乱月眼
时间:
2014-12-20 13:11
标题:
诅咒装备脚本报错
本帖最后由 狂乱月眼 于 2014-12-20 13:13 编辑
第18行脚本报错,诅咒.ogg已经放入文件Audio/SE文件夹里了,是不是我漏掉了什么呢?
#==============================================================================
# ■ 特定の装備品を装備した時に音 Ver 1.0 By むー
#------------------------------------------------------------------------------
# ドラクエにあるような「呪いの装備をすると不気味な曲が流れる」を作れます。
#==============================================================================
module MOO_EQUIP_SOUND
#--------------------------------------------------------------------------
# 以下、設定箇所です。
#--------------------------------------------------------------------------
# 音を鳴らす装備品のIDを列挙します。
# LOCK_WEAPON=武器 LOCK_ARMOR=防具 です。
LOCK_WEAPON = [33,35,45,51]
LOCK_ARMOR = [45,40]
# 上記ステート付加機能が付いた装備品を装備をした時に鳴らすサウンド
SOUND_PASS = "Audio/SE/诅咒"
SOUND_VOLUME = Audio.se_vol
SOUND_PICH = 100
# 上からサウンド名、音量、ピッチです。
# サウンドを鳴らした時に発生させるウェイト
SOUND_WAIT = 100
# 0の場合は待ち時間がありません。
# サウンドを鳴らす時にBGMを停めるか
BGM_STOP = true
# [使い方の一例]
# ドラクエで言う呪いの装備を作る場合、
# 装備品の特徴で固定装備を付加します。
# その時に、本スクリプトで音を出しましょう。
# 外す場合は、イベントで装備を外せばOKです。
#--------------------------------------------------------------------------
# ここまで。
#--------------------------------------------------------------------------
end
#==============================================================================
# ■ Scene_Equip
#------------------------------------------------------------------------------
# 装備画面の処理を行うクラスです。
#==============================================================================
class Scene_Equip < Scene_MenuBase
#--------------------------------------------------------------------------
# ● アイテム[決定]
#--------------------------------------------------------------------------
def on_item_ok
Sound.play_equip
@actor.change_equip(@slot_window.index, @item_window.item)
@slot_window.activate
@slot_window.refresh
@item_window.unselect
@item_window.refresh
# 装備したのが武器だった場合
if @slot_window.index == 0
# 未装備かどうか
if $game_actors[@actor.id].equips[@slot_window.index].nil?
else
# 武器の指定があるかどうか
if MOO_EQUIP_SOUND::LOCK_WEAPON.size >= 1
# 武器指定分ループ
for chkid in MOO_EQUIP_SOUND::LOCK_WEAPON
# 指定武器だった場合
if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
# 音を鳴らす
sound_play_equip
end
end
end
end
# 装備したのがもう片手だった場合
elsif @slot_window.index == 1
# 未装備かどうか
if $game_actors[@actor.id].equips[@slot_window.index].nil?
else
# 二刀流かどうか
if $game_actors[@actor.id].dual_wield?
# 武器の指定があるかどうか
if MOO_EQUIP_SOUND::LOCK_WEAPON.size >= 1
# 武器指定分ループ
for chkid in MOO_EQUIP_SOUND::LOCK_WEAPON
# 指定武器だった場合
if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
# 音を鳴らす
sound_play_equip
end
end
end
# 防具の指定があるかどうか
elsif MOO_EQUIP_SOUND::LOCK_ARMOR .size >= 1
# 防具指定分ループ
for chkid in MOO_EQUIP_SOUND::LOCK_ARMOR
# 指定防具だった場合
if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
# 音を鳴らす
sound_play_equip
end
end
end
end
# 装備したのが頭・身体・装飾品だった場合
elsif @slot_window.index >= 2
# 未装備かどうか
if $game_actors[@actor.id].equips[@slot_window.index].nil?
else
# 防具の指定があるかどうか
if MOO_EQUIP_SOUND::LOCK_ARMOR .size >= 1
# 防具指定分ループ
for chkid in MOO_EQUIP_SOUND::LOCK_ARMOR
# 指定防具だった場合
if $game_actors[@actor.id].equips[@slot_window.index].id == chkid
# 音を鳴らす
sound_play_equip
end
end
end
end
end
end
#--------------------------------------------------------------------------
# ○ 音を鳴らす
#--------------------------------------------------------------------------
def sound_play_equip
se_name = MOO_EQUIP_SOUND::SOUND_PASS
se_volm = MOO_EQUIP_SOUND::SOUND_VOLUME
se_pich = MOO_EQUIP_SOUND::SOUND_PICH
se_stop = MOO_EQUIP_SOUND::BGM_STOP
se_wait = MOO_EQUIP_SOUND::SOUND_WAIT
$game_system.save_bgm if se_stop
RPG::BGM.stop if se_stop
Audio.se_play(se_name, se_volm, se_pich) if se_name != ""
Graphics.wait(se_wait) if se_wait > 0
$game_system.replay_bgm if se_stop
end
end
复制代码
=begin
RGSS3 それははずせない!
by ⅠⅡⅢ
=end
module ONETWOTHREE
MESSEGE = "\\C[2]被诅咒的装备不能卸下" #好きなメッセージを!(制御文字も可)
end
class Window_EquipSlot < Window_Selectable
#--------------------------------------------------------------------------
# ☆ 決定ボタンが押されたときの処理
#--------------------------------------------------------------------------
def process_ok
if current_item_enabled?
Sound.play_ok
Input.update
deactivate
call_ok_handler
else
Sound.play_buzzer
Input.update
call_handler(:miniwindow)
end
end
end
class Window_Mini_Messege < Window_Selectable
#--------------------------------------------------------------------------
# ☆ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 0, 280, window_height)
refresh
self.visible = false
end
#--------------------------------------------------------------------------
# ☆ ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
Graphics.width / 2
end
#--------------------------------------------------------------------------
# ☆ ウィンドウ高さの取得
#--------------------------------------------------------------------------
def window_height
return 50
end
#--------------------------------------------------------------------------
# ☆ リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.x = (Graphics.width - width) / 2
self.y = (Graphics.height - height) / 2
self.z = 255
draw_text_ex(0, 0, ONETWOTHREE::MESSEGE)
end
end
class Scene_Equip < Scene_MenuBase
#--------------------------------------------------------------------------
# ○ 開始処理
#--------------------------------------------------------------------------
alias ori_123_start start
def start
ori_123_start
create_mini_messege_window
end
#--------------------------------------------------------------------------
# ○ スロットウィンドウの作成
#--------------------------------------------------------------------------
alias ori_123_create_slot_window create_slot_window
def create_slot_window
ori_123_create_slot_window
@slot_window.set_handler(:miniwindow, method(:on_miniwin))
end
#--------------------------------------------------------------------------
# ☆ ミニウィンドウの作成
#--------------------------------------------------------------------------
def create_mini_messege_window
@mini_messege_window = Window_Mini_Messege.new
@mini_messege_window.viewport = @viewport
@mini_messege_window.set_handler(:ok, method(:on_winclose_ok))
@mini_messege_window.set_handler(:cancel, method(:on_winclose_cancel))
end
#--------------------------------------------------------------------------
# ☆ ミニウィンドウ[おk]
#--------------------------------------------------------------------------
def on_winclose_ok
@mini_messege_window.hide
@slot_window.activate
@slot_window.refresh
end
#--------------------------------------------------------------------------
# ☆ ミニウィンドウ[キャンセル]
#--------------------------------------------------------------------------
def on_winclose_cancel
@mini_messege_window.hide
@slot_window.activate
@slot_window.refresh
end
#--------------------------------------------------------------------------
# ☆ ミニウィンドウ表示
#--------------------------------------------------------------------------
def on_miniwin
@mini_messege_window.show
@slot_window.deactivate
@mini_messege_window.activate
@mini_messege_window.refresh
end
end
复制代码
PS:两段脚本能不能合成一段?比较美观.
作者:
taroxd
时间:
2014-12-20 13:20
把出错那行的 Audio.se_vol 改成 100 试试看
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1