Project1
标题:
猫君音乐鉴赏问题
[打印本页]
作者:
.さっとりーん
时间:
2012-7-27 19:11
标题:
猫君音乐鉴赏问题
这个脚本每次返回时都要播放Town1音乐
能不能改成返回时播放地图音乐?
=begin
================================================================================
Music Room ~ ZUN's Style v1.1
by wltr3565
--------------------------------------------------------------------------------
简体中文化 & BUG修正 v1.1
by 各种压力的猫君
================================================================================
2011-10-3 v1.1 简体中文化 by 各种压力的猫君
① 仅汉化了和设定有关的内容,原作者的废话(误)均没有汉化;
② 个人水平有限可能导致和原版有出入,因此保留了原版注释内容。
2011-10-3 v1.0 BUG修正 by 各种压力的猫君
① 支持中文简介的显示;
② 修正解锁全部音乐的BUG;
③ 解决F12报错。
--------------------------------------------------------------------------------
使用说明:
① 往下翻 - - 找到相应注释的位置分别设定文件名、歌曲名、内容简介。
② 游戏中直接使用播放BGM,会自动记录下来。
③ 参考范例中事件的写法,可以把自己添加到标题画面(注:需要存档)
④ 其他自定义设置均请参考下面的注释(于是这说明相当于什么都没说……)
================================================================================
This is mainly for my project (or shouldn't I?). Among all music room scripts
that I found, none of them sastify me. They lack commentary. Comments are very
important for your composers, you know, or to add more description for the
music...
================================================================================
Features:
- No need to rename the music files!
- Auto music unlock!
- Based on ZUN's music room:
' That he usually add comments,
' That he usually lets the players to play locked musics,
' That he usually gives the music name different from the actual file's name,
' That he sometimes doesn't list some songs...
- Auto command install on title! (Thanks to KGC)
- Commentary format is like normal message in the events!
- Checks between existing savefiles!
================================================================================
How it will work:
This script tracks the musics that was listed and played, for later to be
replayed in the Music Room Scene. The script detects the unlocked musics between
existing savefiles. You can play the unlocked ones, but to play the locked ones,
you can't just select it once, but twice for your own safety
(spoilers possible!).
================================================================================
How to Use:
There's some event commands for controlling the music locks. What's between []
is optional:
- $game_system.music_flag[id] = control
That one will control the flag of the musics' lock. id is the music's id, from
the set order. control is the control between true or false. true will unlock
the music, regardless, and false will lock the music, regardless.
- $game_system.music_unlocked?(id)
Checks if the music is alread unlocked. id is the music's id, from the set
order. Use it for conditional branches.
- $game_system.music_unlock_all
This command will make all of the musics available to be unlocked.
- $scene = Scene_Music.new[(file, call)]
This command will call the music room. File represents the saveslot for
obtaining the information from the assigned slot. call represents the target
Scene for coming back. The default is title. If you assign the call "Map", will
bring you back to the map. If you insert the file nil, will check all existing
saveslots.
More functions can be seen in the configurations below.
--------------------------------------------------------------------------------
使用方法:
$game_system.music_flag[id] = true/false 解锁/锁定音乐(id为后面脚本中指定的id)
$game_system.music_unlocked?(id) 判断音乐的锁定状态
$game_system.music_unlock_all 解锁全部音乐
$scene = Scene_Music.new[(file, call)] 呼出Music Room,
file为存档文件名,call为返回的场景。
不清楚用法请参考范例。
================================================================================
Install:
Insert below title-related scripts and above main.
--------------------------------------------------------------------------------
安装方法:
将本脚本插入到Title相关脚本以下,Main脚本以上。
================================================================================
Terms of Use:
Credit me, wltr3565. Free to use in commercial games as long I'm being credited.
Crediting who I thanked will be a good idea.
--------------------------------------------------------------------------------
使用守则:
在Credit中给出 wltr3565 的名字,在此前提下允许用于商业游戏,
最好也给我感谢的人Credit。
PS:如果使用了本汉化修正版,也请在Credit中给出咱的名字(by 各种压力的猫君)
================================================================================
Thanks:
ZUN: His games and musics :P, and main inspiration.
KGC: Method for adding command in the menu.
--------------------------------------------------------------------------------
感谢:
ZUN:他的游戏和音乐 :P, 以及给我提供了主要的灵感。
KGC:在菜单中增加选项的方法。
================================================================================
=end
#===============================================================================
# COMMENCING COMPATIBILITY FLAG
#===============================================================================
$imported = {} if $imported == nil
$imported["wltr3565's_Music_Room"] = true
#===============================================================================
# END COMPATIBILITY FLAG
#===============================================================================
module WLTR
module MUSIC_ROOM_SETUP
MUSICS = [ # Don't touch
#===============================================================================
# List of musics available at the music room. Write their filename in a string,
# and be sure to add "," without the quotation for each musics, like this:
# Town1,
# Battle2,
#--------------------------------------------------------------------------------
#【自定义文件名】
# 即音乐文件在你BGM目录下的文件名,扩展名可省。
# 参考下面给出的格式不需要更多说明了吧 = =
# 标点符号均为英文半角(文件名不限)
#===============================================================================
"Town5", # Music 1,
"Field1", # Music 2,
"Battle1", # Music 3 and so forth.
"st31",
"th06_15",
#===============================================================================
] # Don't touch
MUSICS_NAME = [# Don't touch
#===============================================================================
# Each musics' name to be shown at the music room. Write it in a string. It will
# be used at each assigned musics in the same order, like this:
# filename name
# "Town1", "Melancholy",
# "Battle2", "Battling",
# At the music room, the Town1 music will have it's name shown as Melancholy,
# and Battle2 as Battling.
#===============================================================================
#【自定义音乐名】
# 即在Music Room中显示的名字。
# 标点符号均为英文半角(歌曲名不限)
#===============================================================================
"Town5", # Music 1,
"Field1", # Music 2 and so forth.
"Battle1",
"Beloved Tomboyish Girl",
"U.N. Owen Was Her?!",
#===============================================================================
] # Don't touch
MUSICS_COMMENT = [] # << EXTREMELY DO NOT TOUCH!
#===============================================================================
# In here you can make comments for the musics listed. The format for writing
# them is almost the same as the normal message in text events. To make one,
# do this:
# MUSICS_COMMENT[id] = comment
# The id represents the music's order from 0 that listed above. comment is the
# comment. Be sure to close the text with "". You can use | for making new lines
# other than using enter. Example:
#
# MUSICS_COMMENT[0] = "What we usually hear while testing our game...
# You guys must be bored."
# The Town1 music (from the example list of above) will show it's comments like
# this:
# What we usually hear while testing our game...
# You guys must be bored.
#
# Doesn't make one will make the comment empty.
#===============================================================================
#【自定义简介】
# 即在Music Room中选定后显示的歌曲简介,可以使用|代替换行。
# 标点符号均为英文半角(简介内容不限)
# 若下面没有对应的简介会显示为空。
# 最大长度:10行,每行30个汉字。
#===============================================================================
MUSICS_COMMENT[0] = "VX RTP's music. Commonly used for title screen.
Enterbrain just prefer this music for new projects' title theme.
But really, why don't they name it "Title" or something more
fit other than "Town5"?"
MUSICS_COMMENT[1] = "VX RTP's music.
I do like this one personally, too bad, I'm not even sure what's
the best situation for using this piece... No need to answer
this, really."
MUSICS_COMMENT[2] = "VX RTP's music. The default battle theme.
Enterbrain do made 4 battle themes for us to use, but they
selected this for the default. Because of the default battle
system?"
MUSICS_COMMENT[3] = "~ Beloved Tomboyish Girl ~
Composed by ZUN, Cirno's theme from TH12.3.
This piece was not made purely by ZUN himself, it's rearranged
by Tasofro's composer.
I love this theme! The theme's so stupid, but cool at a time.
One of the best Tasofro's Touhou music remix, I guess."
MUSICS_COMMENT[4] = "~ U.N. Owen Was Her?! ~
U.N.オーエンは彼女なのか? U.N.OWEN就是她吗?(东方红魔乡)
二小姐 芙兰朵露·斯卡雷特 (フランドール·スカーレット) 主题曲
Composed by ZUN, Flandre Scarlet's theme from TH06.
One of ZUN's most loli-tastic musics. The theme's very chaotic
aswell. Really Touhou-like."
#-------------------------------------------------------------------------------
#下面的是U.N.Owen原来的英文简介的后半部分,长度超出被我切掉了 - -
#-------------------------------------------------------------------------------
#This one's the MIDI version. I prefer the MIDI version compared
#to the WAV version because the MIDI version more fit for RPG
#games...
#===============================================================================
#===============================================================================
# Comment for a locked music, to warn the players that the music is not yet
# unlocked in the game. The format for writing it is the same.
#-------------------------------------------------------------------------------
# 未解锁的音乐简介
#===============================================================================
EMPTY_COMMENT = "*** The selected music has not yet been played in the game. ***
The comments may contain spoiler, as well as the music
itself. Select the music again to play the music, or select
another music."
#===============================================================================
#===============================================================================
# Letter used to mark that the music is not yet unlocked. Write it in a string.
# Example: Melancholy will show ?????????? if it's not yet unlocked and the
# UNKNOWN_WORD is "?".
#-------------------------------------------------------------------------------
# 未解锁的音乐替代字符(字符的个数由歌曲名长度决定)
#===============================================================================
UNKNOWN_WORD = "?"
#===============================================================================
# The music room texts' font size. The higher the number, the bigger the
# the letters. Write it in a number. Suggested that the font size is not 20, but
# 16.
#-------------------------------------------------------------------------------
# 字体大小,建议使用16而不是20。
#===============================================================================
FONT_SIZE = 16
#===============================================================================
# Custom background for the music room. Leave it "" if you don't want to use
# one. The background image must be located in Graphics/System folder.
# To note tha if you want to use a background, the big window that shows the
# music room's name at the top-left of the screen will vanish.
#-------------------------------------------------------------------------------
# 背景图,留空的话使用默认的窗口。
# 当背景图被启用时,左上角的“Music Room”窗口将被隐藏
#===============================================================================
BACKGROUND = ""
#===============================================================================
# The music room's name shown in the commands. Write it in a string.
#-------------------------------------------------------------------------------
# Music Room 的名称,显示在菜单中。
#===============================================================================
MUSIC_ROOM_NAME = "Music Room"
#===============================================================================
# This will check if you want to let the music unlocked while played in the
# music room, while the music itself is not yet unlocked.
# true : Let it unlocked.
# false : Don't unlock it.
#-------------------------------------------------------------------------------
# 当在Music Room中播放一个未解锁音乐时,是否将其解锁。
# true :解锁
# false:不解锁
#===============================================================================
SPOIL_UNLOCK = true
#===============================================================================
# This will check if you can play a locked music after you select it twice.
# true : Play it.
# false : Don't play it.
#-------------------------------------------------------------------------------
# 当你在Music Room中尝试播放一个未解锁的音乐两次时,是否播放。
# true :播放
# false:不播放
#===============================================================================
LOCK_PLAYABLE = true
#===============================================================================
# Checks if you want the command to be useable for title screen.
# true : Add it.
# false : Don't add it.
#-------------------------------------------------------------------------------
# 设置你是否想在标题菜单添加 Music Room 选项
# true :添加
# false:不添加
#===============================================================================
ADD_TO_MENU = true
#===============================================================================
# The switch for limiting the accessibility of the music room at the title
# screen. Set the id. If the assigned switch is on, the command will show.
# If it's off, will not show. Useless if ADD_TO_MENU is false. Set below to nil
# if you want the music room accessable at anytime.
#-------------------------------------------------------------------------------
# 在标题画面显示 Music Room 的开关编号
# 当上一个选项为false时这里的设定是无效的。
#===============================================================================
TITLE_SWITCH = 1
#===============================================================================
# Number of columns that you want to have for the list.
#-------------------------------------------------------------------------------
# 音乐列表的列数
#===============================================================================
COLUMNS = 2
end
end
"=============================================================================="
" BELOW IS TOO DANGEROUS TO READ WITHOUT PROPER SCRIPTING SKILLS. THEREFOR, "
" EDIT AT YOUR OWN RISK! "
"------------------------------------------------------------------------------"
" ※请在你的能力以内编辑以下脚本※ "
"=============================================================================="
class Game_System
attr_reader :music_list
attr_accessor :music_flag
attr_accessor :spoiler
alias initialize_musics initialize
def initialize
initialize_musics
@spoiler = false
@music_list = WLTR::MUSIC_ROOM_SETUP::MUSICS
@music_flag = []
for i in 0..@music_list.size - 1
@music_flag[i] = false
end
end
def music_unlocked?(id)
return @music_flag[id]
end
def music_unlock_all
for i in 0..@music_list.size
@music_flag[i] = true
end
end
end
module RPG
class BGM < AudioFile
unless $def_bit_play
alias play_check play
$def_bit_play = true
end
def play
if !@name.empty?
check = $game_system.music_list.index(@name)
play_check
return if $game_system.spoiler
return if check == nil
$game_system.music_flag[check] = true
end
end
end
end
class Scene_Music < Scene_Base
def initialize(file = nil, call = "Title")
@last_bgm = RPG::BGM.last
@index = 0
@available_musics = []
for i in 0..WLTR::MUSIC_ROOM_SETUP::MUSICS.size - 1
@available_musics[i] = false
end
if file == nil
for i in 0..3
@filename = make_filename(i)
load_musicdata
next if !@file_exist
counter = 0
for flag in @game_system.music_flag
if flag == true
@available_musics[counter] = true
end
counter += 1
end
end
elsif @file != 0
@filename = make_filename(file)
load_musicdata
counter = 0
for flag in @game_system.music_flag
if flag == true
@available_musics[counter] = true
end
counter += 1
end
end
counter = 0
for flag in $game_system.music_flag
if flag == true
@available_musics[counter] = true
end
counter += 1
end
@file = file
@call = call
@spoil = false
$game_system.spoiler = true if !WLTR::MUSIC_ROOM_SETUP::SPOIL_UNLOCK
end
def make_filename(file_index)
return "Save#{file_index + 1}.rvdata"
end
def load_musicdata
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
begin
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
@game_system = Marshal.load(file)
rescue
@file_exist = false
ensure
file.close
end
end
end
def start
super
create_menu_background
if WLTR::MUSIC_ROOM_SETUP::BACKGROUND != ""
@background = Sprite.new
@background.bitmap = Cache.system(WLTR::MUSIC_ROOM_SETUP::BACKGROUND)
else
@background = Window_Base.new(0, 0, 272, 60)
@background.contents.draw_text(0, 0, 272, 24, WLTR::MUSIC_ROOM_SETUP::MUSIC_ROOM_NAME)
end
@viewport = Viewport.new(0, 0, 544, 416)
@music_list = Window_Music_List.new(0, 60, 272, 416 - 260, @file)
@music_list.viewport = @viewport
@comment = Window_Comment.new(0, 416 - 200, 544, 200)
@comment.viewport = @viewport
@spoil = true if $game_system.music_flag[0] == false
@comment.refresh(@spoil)
@spoil = false
@index = @music_list.index
end
def terminate
super
dispose_menu_background
@music_list.dispose
@comment.dispose
@background.dispose if @background != nil
end
def return_scene
eval("$scene = Scene_" + @call + ".new")
$game_system.spoiler = false
@last_bgm.play
end
def update
super
update_menu_background
@music_list.update
@comment.update
update_music
end
def update_music
@spoil = false if @music_list.index != @index
@index = @music_list.index if @music_list.index != @index
if Input.trigger?(Input::C)
if @available_musics[@music_list.index] == true
bgm = RPG::BGM.new($game_system.music_list[@music_list.index])
bgm.play
@spoil = false
@comment.id = @music_list.index
spoil = false
spoil = true if !$game_system.music_flag[@music_list.index]
@comment.refresh(spoil)
else
if @spoil == false
RPG::BGM.stop
@comment.id = @music_list.index
@comment.refresh
@spoil = true if WLTR::MUSIC_ROOM_SETUP::LOCK_PLAYABLE
else
return if !WLTR::MUSIC_ROOM_SETUP::LOCK_PLAYABLE
bgm = RPG::BGM.new($game_system.music_list[@music_list.index])
bgm.play
@comment.id = @music_list.index
@spoil = false
@comment.refresh(true)
@music_list.refresh if !$game_system.spoiler
end
end
elsif Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::X)
RPG::BGM.stop
elsif Input.trigger?(Input::Y)
RPG::BGM.fade(600)
end
end
end
class Window_Music_List < Window_Selectable
def initialize(x, y, width, height, file = nil)
super(x, y, width, height)
self.opacity = 0 if WLTR::MUSIC_ROOM_SETUP::BACKGROUND != ""
@column_max = WLTR::MUSIC_ROOM_SETUP::COLUMNS
if @column_max > 1
self.width += 272
end
@available_musics = []
for i in 0..WLTR::MUSIC_ROOM_SETUP::MUSICS.size - 1
@available_musics[i] = false
end
if file == nil
for i in 0..3
@filename = make_filename(i)
load_musicdata
next if !@file_exist
counter = 0
for flag in @game_system.music_flag
if flag == true
@available_musics[counter] = true
end
counter += 1
end
end
elsif @file != 0
@filename = make_filename(file)
load_musicdata
counter = 0
for flag in @game_system.music_flag
if flag == true
@available_musics[counter] = true
end
counter += 1
end
end
counter = 0
for flag in $game_system.music_flag
if flag == true
@available_musics[counter] = true
end
counter += 1
end
@index = 0
refresh
end
def refresh
self.contents.clear
@data = WLTR::MUSIC_ROOM_SETUP::MUSICS_NAME
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
rect.width -= 4
name = item
known = @available_musics[index]
if !known
count = name.size + 1
name = ""
for i in 1...count
name += WLTR::MUSIC_ROOM_SETUP::UNKNOWN_WORD
end
end
rect.width -= 4
self.contents.font.size = WLTR::MUSIC_ROOM_SETUP::FONT_SIZE
self.contents.draw_text(rect.x, rect.y, 24, rect.height, sprintf("%2d:", index + 1), 2)
self.contents.draw_text(rect.x + 24, rect.y, self.width - 32, rect.height, name)
end
end
def make_filename(file_index)
return "Save#{file_index + 1}.rvdata"
end
def load_musicdata
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
begin
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
@game_system = Marshal.load(file)
rescue
@file_exist = false
ensure
file.close
end
end
end
end
class Window_Comment < Window_Base
attr_accessor :id
def initialize(x, y, width, height, id = 0)
super(x, y, width, height)
self.opacity = 0 if WLTR::MUSIC_ROOM_SETUP::BACKGROUND != ""
@id = id
self.contents.font.size = WLTR::MUSIC_ROOM_SETUP::FONT_SIZE
pre_start
refresh
end
def pre_start
#===============================================================================
# Insert a code or two here if you want to do something before the first refresh
# starts.
#===============================================================================
#===============================================================================
end
def pre_refresh
#===============================================================================
# Insert a code or two here if you want to do something before the refresh
# starts.
#===============================================================================
#===============================================================================
end
def refresh(spoil = false)
pre_refresh
@x = 0
@y = 0
self.contents.clear
text = WLTR::MUSIC_ROOM_SETUP::MUSICS_COMMENT[@id]
text = WLTR::MUSIC_ROOM_SETUP::EMPTY_COMMENT if !$game_system.music_unlocked?(@id) and spoil == false
text = "" if text == nil
process = text
text = convert_special_characters(process)
@comment = []
@text = text.clone
for i in 0..text.size
@comment << @text.slice!(/./m)
end
end
def convert_special_characters(text)
text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
text.gsub!(/\n/i) { "|" }
return text
end
def update
super
word = @comment.shift
return if word == nil
case word
when "|"
@x = 0
@y += self.contents.text_size(word).height
else
self.contents.draw_text(@x, @y, 40, WLH, word)
width = self.contents.text_size(word).width
@x += width
end
end
end
#==============================================================================
# ■ Window_Command
#==============================================================================
# Stole this from KGC...
class Window_Command < Window_Selectable
unless method_defined?(:add_command)
#--------------------------------------------------------------------------
# ○ コマンドを追加
# 追加した位置を返す
#--------------------------------------------------------------------------
def add_command(command)
@commands << command
@item_max = @commands.size
item_index = @item_max - 1
refresh_command
draw_item(item_index)
return item_index
end
#--------------------------------------------------------------------------
# ○ コマンドをリフレッシュ
#--------------------------------------------------------------------------
def refresh_command
buf = self.contents.clone
self.height = [self.height, row_max * WLH + 32].max
create_contents
self.contents.blt(0, 0, buf, buf.rect)
buf.dispose
end
#--------------------------------------------------------------------------
# ○ コマンドを挿入
#--------------------------------------------------------------------------
def insert_command(index, command)
@commands.insert(index, command)
@item_max = @commands.size
refresh_command
refresh
end
#--------------------------------------------------------------------------
# ○ コマンドを削除
#--------------------------------------------------------------------------
def remove_command(command)
@commands.delete(command)
@item_max = @commands.size
refresh
end
end
end
class Scene_Title < Scene_Base
def make_filename(file_index)
return "Save#{file_index + 1}.rvdata"
end
def load_cleardata
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
begin
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
@game_system = Marshal.load(file)
@game_message = Marshal.load(file)
@game_switches = Marshal.load(file)
rescue
@file_exist = false
ensure
file.close
end
end
if @file_exist and WLTR::MUSIC_ROOM_SETUP::TITLE_SWITCH != nil
@unlock_flag = @game_switches[WLTR::MUSIC_ROOM_SETUP::TITLE_SWITCH] unless @unlock_flag == true
end
end
# Stole this from KGC's enemy guide.
if WLTR::MUSIC_ROOM_SETUP::ADD_TO_MENU
#--------------------------------------------------------------------------
# ● コマンドウィンドウの作成
#--------------------------------------------------------------------------
alias create_command_window_item_almanac create_command_window
def create_command_window
create_command_window_item_almanac
return if $imported["CustomMenuCommand"]
for i in 0..3
@filename = make_filename(i)
load_cleardata
end
if WLTR::MUSIC_ROOM_SETUP::TITLE_SWITCH != nil
return if !@unlock_flag
end
@__command_music_room =
@command_window.add_command(WLTR::MUSIC_ROOM_SETUP::MUSIC_ROOM_NAME)
if @command_window.oy > 0
@command_window.oy -= Window_Base::WLH
end
end
end
#--------------------------------------------------------------------------
# ● コマンド選択の更新
#--------------------------------------------------------------------------
alias update_command_selection_music_room update
def update
current_menu_index = @__command_music_room
call_item_almanac = false
if Input.trigger?(Input::C)
case @command_window.index
when @__command_music_room # モンスター図鑑
call_enemy_guide_flag = true
end
end
# モンスター図鑑に移行
if call_enemy_guide_flag
Sound.play_decision
$scene = Scene_Music.new
return
end
update_command_selection_music_room
end
end
#===============================================================================
#
# END OF SCRIPT
#
#===============================================================================
复制代码
作者:
devilg
时间:
2012-7-30 10:51
虽然说我没找到town1的具体标识在哪,完全不知道不知道怎么会播放town1
不过请注意以下代码:
def return_scene
eval("$scene = Scene_" + @call + ".new")
$game_system.spoiler = false
@last_bgm.play
end
复制代码
会播放town1就是因为@last_bgm不知道为什么会被设置到town1.
在处理@last_bgm的后面print @last_bgm,据目测应该是marshal.load出的问题
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X5.0