# 使用方式
# 1.将这里的脚本全部复制到插件脚本里
# 2.在事件中调用本系统提供的自定义脚本即可修改本系统的属性
# 系统属性
# 1.文字显示时播放的音效
# 2.每显示多少个文字播放一次音效
# 自定义脚本
# mjsys_set_text_se("Sound_Effect_Name") - Audio\\SE目录下的指定音效的名字(不含后缀名)
# mjsys_set_text_se_interval(interval) - 每多少个字播放一次音效,必须为大于等于1的整数
# 脚本使用示例
# mjsys_set_text_se("bell3") : 作用,将文字显示时播放的音效设置为bell3
# mjsys_set_text_se(3) : 作用,设置每显示3个文字时才会播放一次音效
# 其它说明
# 1.系统的属性一旦被修改,则会在后续的逻辑中一直生效,除非你再次手动修改了它
# 2.无论文字音效间隔是多少,对话内容的第一个文字永远会发声
# ------------------------------------------------------------------------------------------------------
# 默认参数
$mjsys_text_interval = 1 # 每多少个字播放一次音效,默认为1
$mjsys_text_se = nil # 文字的音效,默认没有音效
# ------------------------------------------------------------------------------------------------------
# 内部逻辑
# 如果没有特殊需求,就不要修改这里了。
# 如果你想要修改本系统或者添加一些别的功能,那请继续吧。
$mjsys_text_current_frame = 0
class Window_Message < Window_Base
alias mjsys_fiber_main fiber_main
def fiber_main
mjsys_fiber_main
$mjsys_text_current_frame = $mjsys_text_interval
end
alias mjsys_wait_for_one_character wait_for_one_character
def wait_for_one_character
mjsys_wait_for_one_character
if $mjsys_text_se != nil then
if $mjsys_text_current_frame == $mjsys_text_interval then
$mjsys_text_current_frame = 1
Audio.se_play($mjsys_text_se)
else
$mjsys_text_current_frame = $mjsys_text_current_frame + 1
end
end
end
end
class Game_Interpreter
def mjsys_set_text_se(text)
if text == "" or text == nil then
$mjsys_text_se = nil
else
$mjsys_text_se = "Audio\\SE\\"+text
end
end
def mjsys_set_text_se_interval(interval)
$mjsys_text_interval = interval
end
end
# ------------------------------------------------------------------------------------------------------