| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 0 |  
| 经验 | 0 |  
| 最后登录 | 2012-7-17 |  
| 在线时间 | 12 小时 |  
 Lv1.梦旅人 
	梦石0 星屑265 在线时间12 小时注册时间2011-7-23帖子3 | 
| 本帖最后由 zn505469762 于 2011-7-24 13:11 编辑 
 #==============================================================================
 # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 # 作者:chaochao+66rpg的66
 #==============================================================================
 #==============================================================================
 #■ Scene_Title
 #------------------------------------------------------------------------------
 #  处理标题画面的类。
 #==============================================================================
 class Scene_Title
 WEATHER = 3    # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
 MAXNUMBER = 18  # 天气图片数量
 
 WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
 # 自定义图片路径,这个文件可以从黑暗圣剑DEMO获得,是流星雨
 
 BLEND_TYPE = 0 # 合成方式(0:普通,1:加法,2:减法)
 WEATHER_X = 5 # X方向每回合减少象素
 WEATHER_Y = 5 # Y方向每回合减少象素
 WEATHER_OPACITY = 2 #每回合减低透明度
 START_OPACITY = 200 #出现时的透明度
 RAND_X = 1200 # 随机X范围
 RAND_Y = 600 # 随机Y范围
 HEIGHT = -600 # 出现时候的屏幕Y
 WIDTH = 100 # 出现时候的屏幕X
 #--------------------------------------------------------------------------
 # ● 主处理
 #--------------------------------------------------------------------------
 
 def main
 if $BTEST
 battle_test
 return
 end
 $data_actors = load_data("Data/Actors.rxdata")
 $data_classes = load_data("Data/Classes.rxdata")
 $data_skills = load_data("Data/Skills.rxdata")
 $data_items = load_data("Data/Items.rxdata")
 $data_weapons = load_data("Data/Weapons.rxdata")
 $data_armors = load_data("Data/Armors.rxdata")
 $data_enemies = load_data("Data/Enemies.rxdata")
 $data_troops = load_data("Data/Troops.rxdata")
 $data_states = load_data("Data/States.rxdata")
 $data_animations = load_data("Data/Animations.rxdata")
 $data_tilesets = load_data("Data/Tilesets.rxdata")
 $data_common_events = load_data("Data/CommonEvents.rxdata")
 $data_system = load_data("Data/System.rxdata")
 $game_system = Game_System.new
 # 生成标题图形
 @sprite = Sprite.new
 @sprite.bitmap = RPG::Cache.title($data_system.title_name)
 @ox = 0
 @oy = 0
 color1 = Color.new(255,255,255, 255)
 color2 = Color.new(255, 255, 255, 128)
 @rain_bitmap = Bitmap.new(7, 56)
 for i in 0..6
 @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
 end
 @storm_bitmap = Bitmap.new(34, 64)
 for i in 0..31
 @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
 @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
 @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
 end
 @snow_bitmap = Bitmap.new(6, 6)
 @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
 @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
 @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
 @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
 @sprites = []
 for i in 1..40
 sprite = Sprite.new
 case WEATHER
 when 1
 sprite.bitmap = @rain_bitmap
 when 2
 sprite.bitmap = @storm_bitmap
 when 3
 sprite.bitmap = @snow_bitmap
 when 4
 sprite.bitmap = Bitmap.new(WEATHER_FILE)
 end
 sprite.z = 1000
 sprite.x = -1000
 sprite.y = -1000
 sprite.visible = (i <= MAXNUMBER)
 sprite.blend_type = BLEND_TYPE
 sprite.opacity = START_OPACITY
 @sprites.push(sprite)
 end
 weather_update
 # 生成标题图形
 @sprite = [Sprite.new]
 for i in 0..6
 @sprite = Sprite.new
 @sprite.opacity = 0
 end
 @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
 @sprite[0].opacity = 0
 #开始游戏的图片
 @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/1.png")
 @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/2.png")
 #继续游戏的图片
 @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/3.png")
 @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/4.png")
 #结束游戏的图片
 @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/5.png")
 @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/6.png")
 #图片位置
 for i in 1..6
 x=465
 y=(i+1)/2*35+313
 @sprite.x =x
 @sprite.y =y
 end
 @continue_enabled = false
 for i in 0..3
 if FileTest.exist?("Save#{i+1}.rxdata")
 @continue_enabled = true
 end
 end
 if @continue_enabled
 @command_index = 1
 else
 @command_index = 0
 @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/3.png")
 end
 $game_system.bgm_play($data_system.title_bgm)
 Audio.me_stop
 Audio.bgs_stop
 Graphics.transition
 loop do
 Graphics.update
 #淡出背景圖形
 if @sprite[0].opacity <= 255
 @sprite[0].opacity += 15
 end
 Input.update
 update
 if $scene != self
 break
 end
 end
 Graphics.freeze
 # 釋放圖形
 for i in 0..6
 @sprite.bitmap.dispose
 @sprite.dispose
 end
 for sprite in @sprites
 sprite.dispose
 end
 @rain_bitmap.dispose
 @storm_bitmap.dispose
 @snow_bitmap.dispose
 end
 #--------------------------------------------------------------------------
 # ● 刷新天气
 #--------------------------------------------------------------------------
 def weather_update
 return if WEATHER == 0
 for i in 1..MAXNUMBER
 sprite = @sprites
 if sprite == nil
 break
 end
 if WEATHER == 1
 sprite.x -= 2
 sprite.y += 16
 sprite.opacity -= 8
 end
 if WEATHER == 2
 sprite.x -= 8
 sprite.y += 16
 sprite.opacity -= 12
 end
 if WEATHER == 3
 sprite.x -= 2
 sprite.y += 8
 sprite.opacity -= 8
 end
 if WEATHER == 4
 sprite.x -= WEATHER_X
 sprite.y += WEATHER_Y
 sprite.opacity -= WEATHER_OPACITY
 end
 x = sprite.x - @ox
 y = sprite.y - @oy
 if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
 sprite.x = rand(RAND_X) + WIDTH + @ox
 sprite.y = rand(RAND_Y) + HEIGHT + @oy
 sprite.opacity = START_OPACITY
 end
 end
 end
 
 def update
 chaochaocommandchaochao
 if Input.trigger?(Input::C)
 case @command_index
 when 0
 command_new_game
 when 1
 command_continue
 when 2
 command_shutdown
 end
 end
 weather_update
 end
 
 def chaochaocommandchaochao
 if Input.trigger?(Input::UP)
 @command_index -= 1
 if @command_index < 0
 @command_index = 2
 end
 $game_system.se_play($data_system.cursor_se)
 end
 if Input.trigger?(Input::DOWN)
 @command_index += 1
 if @command_index > 2
 @command_index = 0
 end
 $game_system.se_play($data_system.cursor_se)
 end
 case @command_index
 when 0
 if @sprite[1].opacity >= 0
 @sprite[1].opacity -= 30
 end
 if @sprite[2].opacity <= 240
 @sprite[2].opacity += 30
 end
 if @sprite[3].opacity <= 210
 @sprite[3].opacity += 30
 end
 if @sprite[4].opacity >= 0
 @sprite[4].opacity -= 30
 end
 if @sprite[5].opacity <= 210
 @sprite[5].opacity += 30
 end
 if @sprite[6].opacity >= 0
 @sprite[6].opacity -= 30
 end
 when 1
 if @sprite[1].opacity <= 210
 @sprite[1].opacity += 30
 end
 if @sprite[2].opacity >= 0
 @sprite[2].opacity -= 30
 end
 if @sprite[3].opacity >= 0
 @sprite[3].opacity -= 30
 end
 if @sprite[4].opacity <= 240
 @sprite[4].opacity += 30
 end
 if @sprite[5].opacity <= 210
 @sprite[5].opacity += 30
 end
 if @sprite[6].opacity >= 0
 @sprite[6].opacity -= 30
 end
 when 2
 if @sprite[1].opacity <= 210
 @sprite[1].opacity += 30
 end
 if @sprite[2].opacity >= 0
 @sprite[2].opacity -= 30
 end
 if @sprite[3].opacity <= 210
 @sprite[3].opacity += 30
 end
 if @sprite[4].opacity >= 0
 @sprite[4].opacity -= 30
 end
 if @sprite[5].opacity >= 0
 @sprite[5].opacity -= 30
 end
 if @sprite[6].opacity <= 240
 @sprite[6].opacity += 30
 end
 end
 end
 end
 # ————————————————————————————————————
 # 本脚本来自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,使用和转载请保留此信息
 #==============================================================================
 
 这个是那个飘雪的脚本,进入标题画面的时候是好好的
   但是...
 
   求解........
 
 | 
 |