|
|
发表于 2024-1-10 00:08:03
|
显示全部楼层
本帖最后由 无忧谷主幻 于 2024-1-10 00:10 编辑
[fold=读报脚本][pre lang="ruby"]#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
class Interpreter
BOOK_READING = 50 # 默认打开50开关后进入读书系统
#--------------------------------------------------------------------------
# ● 显示文章
#--------------------------------------------------------------------------
def command_101
# 另外的文章已经设置过 message_text 的情况下
if $game_temp.message_text != nil
# 结束
return false
end
# 设置信息结束后待机和返回调用标志
@message_waiting = true
$game_temp.message_proc = Proc.new { @message_waiting = false }
# message_text 设置为 1 行
$game_temp.message_text = @list[@index].parameters[0] + "\n"
line_count = 1
# 循环
loop do
# 下一个事件指令为文章两行以上的情况
if $game_switches[BOOK_READING] and @list[@index+1].code == 101#阅读书刊报纸
unless $game_temp.in_battle
$scene.message_window.height = 320
$scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
$scene.message_window.contents.font.size = 20
$game_temp.message_text += @list[@index+1].parameters[0] +"\n"
line_count+=1
@index+=1
end
end
if $game_switches[BOOK_READING]==false
unless $game_temp.in_battle
if $scene.message_window.height == 320
$scene.message_window.height = 160
$scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
$scene.message_window.contents.font.size = 22
end
end
end
if @list[@index+1].code == 401
# message_text 添加到第 2 行以下
$game_temp.message_text += @list[@index+1].parameters[0] + "\n"
line_count += 1
# 事件指令不在文章两行以下的情况
else
# 下一个事件指令为显示选择项的情况下
if @list[@index+1].code == 102
# 如果选择项能收纳在画面里
if @list[@index+1].parameters[0].size <= 4 - line_count
# 推进索引
@index += 1
# 设置选择项
$game_temp.choice_start = line_count
setup_choices(@list[@index].parameters)
end
# 下一个事件指令为处理输入数值的情况下
elsif @list[@index+1].code == 103
# 如果数值输入窗口能收纳在画面里
if line_count < 4
# 推进索引
@index += 1
# 设置输入数值
$game_temp.num_input_start = line_count
$game_temp.num_input_variable_id = @list[@index].parameters[0]
$game_temp.num_input_digits_max = @list[@index].parameters[1]
end
end
# 继续
return true
end
# 推进索引
@index += 1
end
end
end
class Scene_Map
attr_accessor :message_window
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================[/pre][/fold]
|
|