Project1

标题: 即时窗口问题! [打印本页]

作者: 肖宋发    时间: 2009-8-30 08:50
标题: 即时窗口问题!
所以这个脚本后,和普通NPC对话也被记录在那里!要怎么改才不会和NPC对话内容不被记录....
  1. #------------------制作by bluefool,转载请保留------------------
  2. module Blue
  3.   #这个是控制显示最近的多少条信息的,当超出一屏能显示的值的话可通过先按一下shift
  4.   #然后用上下翻看内容。再按一次shift则解除激活
  5.   Blue_max = 5
  6.   #这个填写进如游戏时生成的系统语言,
  7.   INTRO = "欢迎进入【】虚拟游戏世界,祝您畅游愉快!!"
  8.   #用于清空hash表,可以不管它,但不要让Blue_max大于它,当然,它的值也可以改变
  9.   NAM_MAX = 100
  10.   #主要传递信息参数为函数$am,参见脚本内容
  11. end
  12. #-------------------------------------------
  13. class Scene_Load < Scene_File
  14.   #--------------------------------------------------------------------------
  15.   # ● 确定时的处理
  16.   #--------------------------------------------------------------------------
  17.   def on_decision(filename)
  18.     # 文件不存在的情况下
  19.     unless FileTest.exist?(filename)
  20.       # 演奏冻结 SE
  21.       $game_system.se_play($data_system.buzzer_se)
  22.       return
  23.     end
  24.     # 演奏读档 SE
  25.     $game_system.se_play($data_system.load_se)
  26.     # 写入存档数据
  27.     file = File.open(filename, "rb")
  28.     read_save_data(file)
  29.     file.close
  30.     # 还原 BGM、BGS
  31.     $game_system.bgm_play($game_system.playing_bgm)
  32.     $game_system.bgs_play($game_system.playing_bgs)
  33.     # 刷新地图 (执行并行事件)
  34.     $a = {}
  35.     $game_map.update
  36.     # 切换到地图画面
  37.     $scene = Scene_Map.new
  38.   end
  39. end  
  40. class Game_Player < Game_Character
  41.   def update
  42.     # 本地变量记录移动信息
  43.     last_moving = moving?
  44.     # 移动中、事件执行中、强制移动路线中、
  45.     # 信息窗口一个也不显示的时候
  46.     unless moving? or $game_system.map_interpreter.running? or
  47.            @move_route_forcing or $game_temp.message_window_showing or $ccc == 1
  48.       case Input.dir4
  49.       when 2
  50.         move_down
  51.       when 4
  52.         move_left
  53.       when 6
  54.         move_right
  55.       when 8
  56.         move_up
  57.       end
  58.     end
  59.     # 本地变量记忆坐标
  60.     last_real_x = @real_x
  61.     last_real_y = @real_y
  62.     super
  63.     # 角色向下移动、画面上的位置在中央下方的情况下
  64.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  65.       # 画面向下卷动
  66.       $game_map.scroll_down(@real_y - last_real_y)
  67.     end
  68.     # 角色向左移动、画面上的位置在中央左方的情况下
  69.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  70.       # 画面向左卷动
  71.       $game_map.scroll_left(last_real_x - @real_x)
  72.     end
  73.     # 角色向右移动、画面上的位置在中央右方的情况下
  74.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  75.       # 画面向右卷动
  76.       $game_map.scroll_right(@real_x - last_real_x)
  77.     end
  78.     # 角色向上移动、画面上的位置在中央上方的情况下
  79.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  80.       # 画面向上卷动
  81.       $game_map.scroll_up(last_real_y - @real_y)
  82.     end
  83.     # 不在移动中的情况下
  84.     unless moving?
  85.       # 上次主角移动中的情况
  86.       if last_moving
  87.         # 与同位置的事件接触就判定为事件启动
  88.         result = check_event_trigger_here([1,2])
  89.         # 没有可以启动的事件的情况下
  90.         if result == false
  91.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  92.           unless $DEBUG and Input.press?(Input::CTRL)
  93.             # 遇敌计数下降
  94.             if @encounter_count > 0
  95.               @encounter_count -= 1
  96.             end
  97.           end
  98.         end
  99.       end
  100.       # 按下 C 键的情况下
  101.       if Input.trigger?(Input::C)
  102.         # 判定为同位置以及正面的事件启动
  103.         check_event_trigger_here([0])
  104.         check_event_trigger_there([0,1,2])
  105.       end
  106.     end
  107.   end
  108. end  
  109. #==============================================================================
  110. # ■ Scene_Title
  111. #------------------------------------------------------------------------------
  112. #  处理标题画面的类。
  113. #==============================================================================

  114. class Scene_Title
  115.   #--------------------------------------------------------------------------
  116.   # ● 命令 : 新游戏
  117.   #--------------------------------------------------------------------------
  118.   def command_new_game
  119.     # 演奏确定 SE
  120.     $game_system.se_play($data_system.decision_se)
  121.     # 停止 BGM
  122.     Audio.bgm_stop
  123.     # 重置测量游戏时间用的画面计数器
  124.     Graphics.frame_count = 0
  125.     # 生成各种游戏对像
  126.     $game_temp          = Game_Temp.new
  127.     $game_system        = Game_System.new
  128.     $game_switches      = Game_Switches.new
  129.     $game_variables     = Game_Variables.new
  130.     $game_self_switches = Game_SelfSwitches.new
  131.     $game_screen        = Game_Screen.new
  132.     $game_actors        = Game_Actors.new
  133.     $game_party         = Game_Party.new
  134.     $game_troop         = Game_Troop.new
  135.     $game_map           = Game_Map.new
  136.     $game_player        = Game_Player.new
  137.     # 设置初期同伴位置
  138.     $game_party.setup_starting_members
  139.     # 设置初期位置的地图
  140.     $game_map.setup($data_system.start_map_id)
  141.     # 主角向初期位置移动
  142.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  143.     # 刷新主角
  144.     $game_player.refresh
  145.     # 执行地图设置的 BGM 与 BGS 的自动切换
  146.     $game_map.autoplay
  147.     # 刷新地图 (执行并行事件)
  148.     $game_map.update
  149.     $a = {}
  150.     $am = Blue::INTRO
  151.     $ccc = 0
  152.     # 切换地图画面
  153.     $scene = Scene_Map.new
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 命令 : 继续
  157.   #--------------------------------------------------------------------------
  158.   def command_continue
  159.     # 继续无效的情况下
  160.     unless @continue_enabled
  161.       # 演奏无效 SE
  162.       $game_system.se_play($data_system.buzzer_se)
  163.       return
  164.     end
  165.     # 演奏确定 SE
  166.     $game_system.se_play($data_system.decision_se)
  167.     # 切换到读档画面
  168.     $scene = Scene_Load.new
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● 命令 : 退出
  172.   #--------------------------------------------------------------------------
  173.   def command_shutdown
  174.     # 演奏确定 SE
  175.     $game_system.se_play($data_system.decision_se)
  176.     # BGM、BGS、ME 的淡入淡出
  177.     Audio.bgm_fade(800)
  178.     Audio.bgs_fade(800)
  179.     Audio.me_fade(800)
  180.     # 退出
  181.     $scene = nil
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 战斗测试
  185.   #--------------------------------------------------------------------------
  186.   def battle_test
  187.     # 载入数据库 (战斗测试用)
  188.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  189.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  190.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  191.     $data_items         = load_data("Data/BT_Items.rxdata")
  192.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  193.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  194.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  195.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  196.     $data_states        = load_data("Data/BT_States.rxdata")
  197.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  198.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  199.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  200.     $data_system        = load_data("Data/BT_System.rxdata")
  201.     # 重置测量游戏时间用的画面计数器
  202.     Graphics.frame_count = 0
  203.     # 生成各种游戏对像
  204.     $game_temp          = Game_Temp.new
  205.     $game_system        = Game_System.new
  206.     $game_switches      = Game_Switches.new
  207.     $game_variables     = Game_Variables.new
  208.     $game_self_switches = Game_SelfSwitches.new
  209.     $game_screen        = Game_Screen.new
  210.     $game_actors        = Game_Actors.new
  211.     $game_party         = Game_Party.new
  212.     $game_troop         = Game_Troop.new
  213.     $game_map           = Game_Map.new
  214.     $game_player        = Game_Player.new
  215.     $a = {0=>"进入战斗"}
  216.     # 设置战斗测试用同伴
  217.     $game_party.setup_battle_test_members
  218.     # 设置队伍 ID、可以逃走标志、战斗背景
  219.     $game_temp.battle_troop_id = $data_system.test_troop_id
  220.     $game_temp.battle_can_escape = true
  221.     $game_map.battleback_name = $data_system.battleback_name
  222.     # 演奏战斗开始 BGM
  223.     $game_system.se_play($data_system.battle_start_se)
  224.     # 演奏战斗 BGM
  225.     $game_system.bgm_play($game_system.battle_bgm)
  226.     # 切换到战斗画面
  227.     $scene = Scene_Battle.new
  228.   end
  229. end
  230. #-------------------------------------------------------
  231. class Scene_Map
  232.   #--------------------------------------------------------------------------
  233.   # ● 主处理
  234.   #--------------------------------------------------------------------------
  235.   def main
  236.     @sprite_window = Sprite.new
  237.     if $game_map.map_id != ID_制作人群地图编号
  238.       @sprite_window.bitmap = RPG::Cache.picture("窗口")
  239.     end
  240.     @sprite_window.z = 10000
  241.     @spriteset = Spriteset_Map.new
  242.     @message_window = Window_Message.new
  243.     @down_window = Window_Down.new
  244.     @down_window.x = - 10
  245.     @down_window.y = 350
  246.     Graphics.transition
  247.     # 主循环
  248.     loop do
  249.       Graphics.update
  250.       Input.update
  251.       update
  252.       if $scene != self
  253.         break
  254.       end
  255.     end
  256.     Graphics.freeze
  257.     @spriteset.dispose
  258.     @sprite_window.dispose
  259.     @message_window.dispose
  260.     @down_window.dispose
  261.     if $scene.is_a?(Scene_Title)
  262.       Graphics.transition
  263.       Graphics.freeze
  264.     end
  265.     @am_size = $a.size
  266.   end
  267.   #---------------------
  268.   def bluefool_sort
  269.     if $am != nil
  270.        if $a.size > Blue::NAM_MAX
  271.           a_temp = {}
  272.           j = 0
  273.           for i in ($a.size - Blue::Blue_max)...$a.size
  274.             a_temp[j] = $a[i]
  275.             j += 1
  276.           end  
  277.          $a = a_temp
  278.        end  
  279.        if $am.length < 54
  280.           $a[$a.size] = $am
  281.         else
  282.           while $am.length > 53
  283.             i = 53
  284.             while (/\W/ =~ $am[i-3,3]) != nil
  285.               i -= 1
  286.             end
  287.             $a[$a.size] = $am[0,i]
  288.             $am = $am[i ,$am.length - i]
  289.           end
  290.           $a[$a.size] = $am
  291.        end
  292.        $am = nil
  293.     end
  294.   end  
  295.   #--------------------------------------------------------------------------
  296.   # ● 刷新画面
  297.   #--------------------------------------------------------------------------
  298.   def update
  299.     # 循环
  300.     loop do
  301.       # 按照地图、实例、主角的顺序刷新
  302.       # (本更新顺序不会在的满足事件的执行条件下成为给予角色瞬间移动
  303.       #  的机会的重要因素)
  304.       $game_map.update
  305.       $game_system.map_interpreter.update
  306.       $game_player.update
  307.       # 系统 (计时器)、画面刷新
  308.       $game_system.update
  309.       $game_screen.update
  310.       # 如果主角在场所移动中就中断循环
  311.       unless $game_temp.player_transferring
  312.         break
  313.       end
  314.       # 执行场所移动
  315.       transfer_player
  316.       # 处理过渡中的情况下、中断循环
  317.       if $game_temp.transition_processing
  318.         break
  319.       end
  320.     end
  321.     # 刷新活动块
  322.     @spriteset.update
  323.     # 刷新信息窗口
  324.     @message_window.update
  325.     # 游戏结束的情况下
  326.     if $game_temp.gameover
  327.       # 切换的游戏结束画面
  328.       $scene = Scene_Gameover.new
  329.       return
  330.     end
  331.     # 返回标题画面的情况下
  332.     if $game_temp.to_title
  333.       # 切换到标题画面
  334.       $scene = Scene_Title.new
  335.       return
  336.     end
  337.     # 处理过渡中的情况下
  338.     if $game_temp.transition_processing
  339.       # 清除过渡处理中标志
  340.       $game_temp.transition_processing = false
  341.       # 执行过渡
  342.       if $game_temp.transition_name == ""
  343.         Graphics.transition(20)
  344.       else
  345.         Graphics.transition(40, "Graphics/Transitions/" +
  346.           $game_temp.transition_name)
  347.       end
  348.     end
  349.     # 显示信息窗口中的情况下
  350.     if $game_temp.message_window_showing
  351.       return
  352.     end
  353.     # 遇敌计数为 0 且、且遇敌列表不为空的情况下
  354.     if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  355.       # 不是在事件执行中或者禁止遇敌中
  356.       unless $game_system.map_interpreter.running? or
  357.              $game_system.encounter_disabled
  358.         # 确定队伍
  359.         n = rand($game_map.encounter_list.size)
  360.         troop_id = $game_map.encounter_list[n]
  361.         # 队伍有效的话
  362.         if $data_troops[troop_id] != nil
  363.           # 设置调用战斗标志
  364.           $game_temp.battle_calling = true
  365.           $game_temp.battle_troop_id = troop_id
  366.           $game_temp.battle_can_escape = true
  367.           $game_temp.battle_can_lose = false
  368.           $game_temp.battle_proc = nil
  369.         end
  370.       end
  371.     end
  372.     #---------------------------------------------
  373.     bluefool_sort
  374.     if @am_size != $a.size
  375.        @down_window.refresh
  376.        if $a != nil and $a.size < Blue::Blue_max + 1
  377.         @down_window.index = $a.size/2 - 1
  378.         elsif $a != nil and $a.size > Blue::Blue_max
  379.         @down_window.index = Blue::Blue_max/2 - 1
  380.        end  
  381.        @am_size = $a.size
  382.     end  
  383.     if $game_switches[12]
  384.       @down_window.contents.clear
  385.       @lv03 = true
  386.     else
  387.       if @lv03
  388.       @down_window.refresh
  389.       @lv03 = false
  390.       end
  391.     end
  392.     if Input.trigger?(Input::A)
  393.       if @down_window.active == false
  394.         @down_window.active = true
  395.         $ccc = 1
  396.       else
  397.         @down_window.active = false
  398.         $ccc = 0
  399.       end  
  400.     end
  401.     if Input.trigger?(Input::DOWN)#输入DOWN键的情况
  402.       if @down_window.active == true and @down_window.index < (@down_window.item_max-1)/2
  403.         @down_window.index += 1
  404.       end  
  405.     end  
  406.     if Input.trigger?(Input::UP)#输入UP键的情况
  407.       if @down_window.active == true and @down_window.index > 0
  408.         @down_window.index -= 1
  409.       end  
  410.     end  
  411.     #----------------------------------------------
  412.     # 按下 B 键的情况下
  413.     if Input.trigger?(Input::B)
  414.       # 不是在事件执行中或菜单禁止中
  415.       unless $game_system.map_interpreter.running? or
  416.              $game_system.menu_disabled
  417.         # 设置菜单调用标志以及 SE 演奏
  418.         $game_temp.menu_calling = true
  419.         $game_temp.menu_beep = true
  420.       end
  421.     end
  422.     # 调试模式为 ON 并且按下 F9 键的情况下
  423.     if $DEBUG and Input.press?(Input::F9)
  424.       # 设置调用调试标志
  425.       $game_temp.debug_calling = true
  426.     end
  427.     # 不在主角移动中的情况下
  428.     unless $game_player.moving?
  429.       # 执行各种画面的调用
  430.       if $game_temp.battle_calling
  431.         call_battle
  432.       elsif $game_temp.shop_calling
  433.         call_shop
  434.       elsif $game_temp.name_calling
  435.         call_name
  436.       elsif $game_temp.menu_calling
  437.         call_menu
  438.       elsif $game_temp.save_calling
  439.         call_save
  440.       elsif $game_temp.debug_calling
  441.         call_debug
  442.       end
  443.     end
  444.   end
  445. end
  446. #---------------------------------------------------------
  447. class Interpreter
  448.   def bluefool_sort
  449.       if $am != nil
  450.        if $a.size > Blue::NAM_MAX
  451.           a_temp = {}
  452.           j = 0
  453.           for i in ($a.size - Blue::Blue_max)...$a.size
  454.             a_temp[j] = $a[i]
  455.             j += 1
  456.           end  
  457.          $a = a_temp
  458.        end  
  459.         if $am.length < 54
  460.            $a[$a.size] = $am
  461.         else
  462.            while $am.length > 53
  463.              i = 53
  464.              while (/\W/ =~ $am[i-3,3]) != nil
  465.               i -= 1
  466.              end
  467.              $a[$a.size] = $am[0,i]
  468.              $am = $am[i ,$am.length - i]
  469.            end
  470.            $a[$a.size] = $am
  471.         end
  472.        $am = nil
  473.       end
  474.   end
  475.   def command_101
  476.     if $game_temp.message_text != nil
  477.       return false
  478.     end
  479.     # 设置信息结束后待机和返回调用标志
  480.     @message_waiting = true
  481.     $game_temp.message_proc = Proc.new { @message_waiting = false }
  482.     # message_text 设置为 1 行
  483.     $game_temp.message_text = @list[@index].parameters[0] + "\n"
  484.     if (@list[@index].parameters[0]).split(/\\/)[1] != nil
  485.      $am = @list[@index].parameters[0].split(/\\/)[0]
  486.      else
  487.      $am = @list[@index].parameters[0]
  488.     end  
  489.     bluefool_sort
  490.     line_count = 1
  491.     # 循环
  492.     loop do
  493.       # 下一个事件指令为文章两行以上的情况
  494.       if @list[@index+1].code == 401
  495.         # message_text 添加到第 2 行以下
  496.         $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
  497.         $am = @list[@index+1].parameters[0]
  498.         bluefool_sort
  499.         line_count += 1
  500.       # 事件指令不在文章两行以下的情况
  501.       else
  502.         # 下一个事件指令为显示选择项的情况下
  503.         if @list[@index+1].code == 102
  504.           # 如果选择项能收纳在画面里
  505.           if @list[@index+1].parameters[0].size <= 4 - line_count
  506.             # 推进索引
  507.             @index += 1
  508.             # 设置选择项
  509.             $game_temp.choice_start = line_count
  510.             setup_choices(@list[@index].parameters)
  511.           end
  512.         # 下一个事件指令为处理输入数值的情况下
  513.         elsif @list[@index+1].code == 103
  514.           # 如果数值输入窗口能收纳在画面里
  515.           if line_count < 4
  516.             # 推进索引
  517.             @index += 1
  518.             # 设置输入数值
  519.             $game_temp.num_input_start = line_count
  520.             $game_temp.num_input_variable_id = @list[@index].parameters[0]
  521.             $game_temp.num_input_digits_max = @list[@index].parameters[1]
  522.           end
  523.         end
  524.         # 继续
  525.         return true
  526.       end
  527.       # 推进索引
  528.       @index += 1
  529.     end
  530.   end
  531.   def command_125
  532.     value = operate_value(@parameters[0], @parameters[1], @parameters[2])
  533.     $game_party.gain_gold(value)
  534.     if value >= 0
  535.       $am = "系统:恭喜你获得到了【#{value}#{$data_system.words.gold}】"
  536.     else
  537.       $am = "系统:很遗憾你失去了【#{value.abs.to_s}#{$data_system.words.gold}】"
  538.     end  
  539.     bluefool_sort
  540.     Audio.se_play("Audio/SE/"+"006-System06",100,100)
  541.     return true
  542.   end
  543.   def command_126
  544.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  545.     # 增减物品
  546.     $game_party.gain_item(@parameters[0], value)
  547.     if value >= 0
  548.       $am = "系统:恭喜你获得到了#{value.abs.to_s}个【#{$data_items[@parameters[0]].name}】"
  549.     else
  550.       $am = "系统:很遗憾你失去了#{value.abs.to_s}个【#{$data_items[@parameters[0]].name}】"
  551.     end
  552.     bluefool_sort
  553.     Audio.se_play("Audio/SE/"+"006-System06",100,100)
  554.     return true
  555.   end
  556.   def command_127
  557.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  558.     # 增减武器
  559.     $game_party.gain_weapon(@parameters[0], value)
  560.     if value >= 0
  561.       $am = "系统:恭喜你得到了#{value.abs.to_s}个【#{$data_weapons[@parameters[0]].name}】"
  562.     else
  563.       $am = "系统:很遗憾你失去了#{value.abs.to_s}个【#{$data_weapons[@parameters[0]].name}】"
  564.     end
  565.     bluefool_sort
  566.     Audio.se_play("Audio/SE/"+"006-System06",100,100)
  567.     return true
  568.   end
  569.   def command_128
  570.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  571.     # 增减防具
  572.     $game_party.gain_armor(@parameters[0], value)
  573.     if value >= 0
  574.       $am = "系统:恭喜你获得到了#{value.abs.to_s}个【#{$data_armors[@parameters[0]].name}】"
  575.     else
  576.       $am = "系统:很遗憾你失去了#{value.abs.to_s}个【#{$data_armors[@parameters[0]].name}】"
  577.     end
  578.     bluefool_sort
  579.     Audio.se_play("Audio/SE/"+"006-System06",100,100)
  580.     return true
  581.   end
  582.   def command_129
  583.     # 获取角色
  584.     actor = $game_actors[@parameters[0]]
  585.     # 角色有效的情况下
  586.     if actor != nil
  587.       # 操作分支
  588.       if @parameters[1] == 0
  589.         if @parameters[2] == 1
  590.           $game_actors[@parameters[0]].setup(@parameters[0])
  591.         end
  592.         $game_party.add_actor(@parameters[0])
  593.         Audio.me_play("Audio/ME/"+"002-Victory02",100,100)
  594.         $am = "系统:【#{$game_actors[@parameters[0]].name}】加入您队伍!"
  595.         bluefool_sort
  596.       else
  597.         $game_party.remove_actor(@parameters[0])
  598.         Audio.me_play("Audio/ME/"+"015-Mystery01",100,100)
  599.         $am = "系统:【#{$game_actors[@parameters[0]].name}】离开您队伍!"
  600.         bluefool_sort
  601.       end
  602.     end
  603.     # 继续
  604.     return true
  605.   end
  606.   #-------------------------
  607. end
  608. #==============================================================================
  609. # ■ Window_Down
  610. #------------------------------------------------------------------------------
  611. #   信息窗口。
  612. #==============================================================================

  613. class Window_Down < Window_Selectable
  614.   #--------------------------------------------------------------------------
  615.   # ● 初始化对像
  616.   #--------------------------------------------------------------------------
  617.   def initialize
  618.     super(0, 320, 300, 300)
  619.     @column_max = 1
  620.     self.opacity = 0
  621.     self.z = 10000000
  622.     if $a != nil and $a.size < 21
  623.       self.index = $a.size/2
  624.       elsif $a != nil and $a.size > 20
  625.       self.index = 9
  626.     end  
  627.     refresh
  628.     self.active = false
  629.   end
  630.   #--------------------------------------------------------------------------
  631.   # ● 刷新
  632.   #--------------------------------------------------------------------------
  633.   def refresh
  634.     if self.contents != nil
  635.       self.contents.dispose
  636.       self.contents = nil
  637.     end
  638.     if $a != nil and $a.size < Blue::Blue_max + 1
  639.       @item_max = $a.size
  640.       elsif $a != nil and $a.size > Blue::Blue_max
  641.       @item_max = Blue::Blue_max
  642.     end  
  643.     if @item_max > 0
  644.       self.contents = Bitmap.new(width - 32, row_max * 16)
  645.       for i in 0...@item_max
  646.          draw_item(i)
  647.       end
  648.     end
  649.   end
  650.   def item_max
  651.     return @item_max
  652.   end  
  653.   #--------------------------------------------------------------------------
  654.   # ● 描绘项目
  655.   #     index : 项目编号
  656.   #--------------------------------------------------------------------------
  657.   def draw_item(index)
  658.     if $a.size < Blue::Blue_max + 1
  659.      item = $a[index]
  660.      else
  661.      item = $a[index + $a.size - Blue::Blue_max]
  662.     end
  663.     x = 0
  664.     y = index * 16
  665.     self.contents.font.size = 14
  666.     self.contents.font.color = Color.new(255, 0, 0, 255)
  667.     self.contents.draw_text(x + 6, y + 1, self.contents.text_size(item).width, 16, item, 0)
  668.     self.contents.font.color = normal_color
  669.     self.contents.draw_text(x + 5, y, self.contents.text_size(item).width, 16, item, 0)
  670.   end
  671.   #--------------------------------------
  672.   #  ● 刷新光标
  673.   #--------------------------------------
  674.   def update_cursor_rect
  675.     # 光标位置不满 0 的情况下
  676.     if @index < 0
  677.       self.cursor_rect.empty
  678.       return
  679.     end
  680.     # 获取当前的行
  681.     row = @index / @column_max
  682.     # 当前行被显示开头行前面的情况下
  683.     if row < self.top_row
  684.       # 从当前行向开头行滚动
  685.       self.top_row = row
  686.     end
  687.     # 当前行被显示末尾行之后的情况下
  688.     if row > self.top_row + (self.page_row_max - 1)
  689.       # 从当前行向末尾滚动
  690.       self.top_row = row - (self.page_row_max - 1)
  691.     end
  692.     # 计算光标的宽
  693.     cursor_width = self.width / @column_max - 32
  694.     cursor_width = 0
  695.     # 计算光标坐标
  696.     x = @index % @column_max * (cursor_width + 32)
  697.     y = @index / @column_max * 32 - self.oy
  698.     # 更新国标矩形
  699.     self.cursor_rect.set(x, y, cursor_width, 16)
  700.   end
  701. end

  702. class Scene_Battle
  703.   def start_phase5
  704.     # 转移到回合 5
  705.     @phase = 5
  706.     # 演奏战斗结束 ME
  707.     $game_system.me_play($game_system.battle_end_me)
  708.     # 还原为战斗开始前的 BGM
  709.     $game_system.bgm_play($game_temp.map_bgm)
  710.     # 初始化 EXP、金钱、宝物
  711.     exp = 0
  712.     gold = 0
  713.     treasures = []
  714.     # 循环
  715.     for enemy in $game_troop.enemies
  716.       # 敌人不是隐藏状态的情况下
  717.       unless enemy.hidden
  718.         # 获得 EXP、增加金钱
  719.         exp += enemy.exp
  720.         gold += enemy.gold
  721.         # 出现宝物判定
  722.         if rand(100) < enemy.treasure_prob
  723.           if enemy.item_id > 0
  724.             treasures.push($data_items[enemy.item_id])
  725.           end
  726.           if enemy.weapon_id > 0
  727.             treasures.push($data_weapons[enemy.weapon_id])
  728.           end
  729.           if enemy.armor_id > 0
  730.             treasures.push($data_armors[enemy.armor_id])
  731.           end
  732.         end
  733.       end
  734.     end
  735.     # 限制宝物数为 6 个
  736.     treasures = treasures[0..5]
  737.     # 获得 EXP
  738.     for i in 0...$game_party.actors.size
  739.       actor = $game_party.actors[i]
  740.       if actor.cant_get_exp? == false
  741.         last_level = actor.level
  742.         actor.exp += exp
  743.         if actor.level > last_level
  744.           @status_window.level_up(i)
  745.         end
  746.       end
  747.     end
  748.     # 获得金钱
  749.     $game_party.gain_gold(gold)
  750.     $am = "系统:恭喜你获得#{exp}经验,#{gold}#{$data_system.words.gold}"
  751.     bluefool_sort
  752.     # 获得宝物
  753.     for item in treasures
  754.       case item
  755.       when RPG::Item
  756.         $game_party.gain_item(item.id, 1)
  757.         $am = "系统:恭喜你获得#{$data_items[item.id].name}"
  758.         bluefool_sort
  759.       when RPG::Weapon
  760.         $game_party.gain_weapon(item.id, 1)
  761.         $am = "系统:恭喜你获得#{$data_weapons[item.id].name}"
  762.         bluefool_sort
  763.       when RPG::Armor
  764.         $game_party.gain_armor(item.id, 1)
  765.         $am = "系统:恭喜你获得#{$data_armors[item.id].name}"
  766.         bluefool_sort
  767.       end
  768.     end
  769.     # 生成战斗结果窗口
  770.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  771.     # 设置等待计数
  772.     @phase5_wait_count = 100
  773.   end
  774.     def bluefool_sort
  775.       if $am != nil
  776.        if $a.size > Blue::NAM_MAX
  777.           a_temp = {}
  778.           j = 0
  779.           for i in ($a.size - Blue::Blue_max)...$a.size
  780.             a_temp[j] = $a[i]
  781.             j += 1
  782.           end  
  783.          $a = a_temp
  784.        end
  785.         if $am.length < 54
  786.            $a[$a.size] = $am
  787.         else
  788.            while $am.length > 53
  789.              i = 53
  790.              while (/\W/ =~ $am[i-3,3]) != nil
  791.               i -= 1
  792.              end
  793.              $a[$a.size] = $am[0,i]
  794.              $am = $am[i ,$am.length - i]
  795.            end
  796.            $a[$a.size] = $am
  797.         end
  798.        $am = nil
  799.       end
  800.   end
  801. end
复制代码

作者: 肖宋发    时间: 2009-8-30 12:41
顶一下!随便找强人修改{:3_55:}
作者: 肖宋发    时间: 2009-8-30 12:41
顶一下!随便找强人修改{:3_55:}
作者: ONEWateR    时间: 2009-8-30 13:23
找到显示文章的定义,在定义中再找到
$am =
赋值语句~
将其删掉,大概是这样吧~
祝你成功~
作者: 肖宋发    时间: 2009-8-30 16:27
?好多....不知道要删除那个?
作者: 「旅」    时间: 2009-8-30 17:39
  1.     if (@list[@index].parameters[0]).split(/\\/)[1] != nil
  2.      $am = @list[@index].parameters[0].split(/\\/)[0]
  3.      else
  4.      $am = @list[@index].parameters[0]
  5.     end
复制代码
把这个删掉~~还有在这个下方找到——
$am = @list[@index+1].parameters[0]
也删掉~~完事




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1