设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 865|回复: 2
打印 上一主题 下一主题

[已经解决] 找个强人修改脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2008-6-5
帖子
312
跳转到指定楼层
1
发表于 2009-8-17 14:32:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
使用了图片标题菜单和即时消息窗口后,选择制作人群就提示“即时消息窗口”    if $a.size < Blue::Blue_max + 1错误,怎么办啊?强人快来修改下!
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ 图片标题菜单1.0
  6. # Scene_Title
  7. #------------------------------------------------------------------------------
  8. # 作者:chaochao
  9. # http://zhuchao.go1.icpcn.com
  10. #==============================================================================
  11. class Scene_Title
  12. def main
  13. if $BTEST
  14. battle_test
  15. return
  16. end
  17. $data_actors = load_data("Data/Actors.rxdata")
  18. $data_classes = load_data("Data/Classes.rxdata")
  19. $data_skills = load_data("Data/Skills.rxdata")
  20. $data_items = load_data("Data/Items.rxdata")
  21. $data_weapons = load_data("Data/Weapons.rxdata")
  22. $data_armors = load_data("Data/Armors.rxdata")
  23. $data_enemies = load_data("Data/Enemies.rxdata")
  24. $data_troops = load_data("Data/Troops.rxdata")
  25. $data_states = load_data("Data/States.rxdata")
  26. $data_animations = load_data("Data/Animations.rxdata")
  27. $data_tilesets = load_data("Data/Tilesets.rxdata")
  28. $data_common_events = load_data("Data/CommonEvents.rxdata")
  29. $data_system = load_data("Data/System.rxdata")
  30. $game_system = Game_System.new
  31. # 生成标题图形
  32. @sprite = [Sprite.new]
  33. for i in 0..10
  34. @sprite[i] = Sprite.new
  35. end
  36. @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
  37. @sprite[0].opacity = 0
  38. #开始游戏的图片
  39. @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/KS")
  40. @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/KS_2")
  41. #继续游戏的图片
  42. @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/JX")
  43. @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/JX_2")
  44. #结束游戏的图片
  45. @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/ZZ")
  46. @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/ZZ_2")
  47. #——制作人群
  48. @sprite[7].bitmap = Bitmap.new("Graphics/Pictures/GF")
  49. @sprite[8].bitmap = Bitmap.new("Graphics/Pictures/GF_2")
  50. #——官方网站
  51. @sprite[9].bitmap = Bitmap.new("Graphics/Pictures/TC")
  52. @sprite[10].bitmap = Bitmap.new("Graphics/Pictures/TC_2")
  53. #图片位置
  54. for i in 1..10
  55. x=192
  56. y=(i+1)/2*35+240 #——240为y坐标,自己改- -+
  57. @sprite[i].x =x
  58. @sprite[i].y =y
  59. end
  60. @continue_enabled = false
  61. for i in 0..3
  62. if FileTest.exist?("Save#{i+1}.rxdata")
  63. @continue_enabled = true
  64. end
  65. end
  66. if @continue_enabled
  67. @command_index = 1
  68. else
  69. @command_index = 0
  70. @sprite[3].tone = Tone.new(0, 0, 0, 255)
  71. @sprite[4].tone = Tone.new(0, 0, 0, 255)
  72. end
  73. $game_system.bgm_play($data_system.title_bgm)
  74. Audio.me_stop
  75. Audio.bgs_stop
  76. Graphics.transition
  77. loop do
  78. Graphics.update
  79. #淡出背景圖形
  80. if @sprite[0].opacity <= 255
  81. @sprite[0].opacity += 15
  82. end
  83. Input.update
  84. update
  85. if $scene != self
  86. break
  87. end
  88. end
  89. Graphics.freeze
  90. # 釋放圖形
  91. for i in 0..10
  92. @sprite[i].bitmap.dispose
  93. @sprite[i].dispose
  94. end
  95. end
  96. def update
  97. chaochaocommandchaochao
  98. if Input.trigger?(Input::C)
  99. case @command_index
  100. when 0
  101. command_new_game
  102. when 1
  103. command_continue
  104. when 4
  105. command_shutdown
  106. when 2
  107. $game_system.se_play($data_system.decision_se)
  108. Audio.bgm_stop
  109. Graphics.frame_count = 0
  110. $game_temp = Game_Temp.new
  111. $game_system = Game_System.new
  112. $game_switches = Game_Switches.new
  113. $game_variables = Game_Variables.new
  114. $game_self_switches = Game_SelfSwitches.new
  115. $game_screen = Game_Screen.new
  116. $game_actors = Game_Actors.new
  117. $game_party = Game_Party.new
  118. $game_troop = Game_Troop.new
  119. $game_map = Game_Map.new
  120. $game_player = Game_Player.new
  121. $game_party.setup_starting_members
  122. $game_map.setup(2) #——地图编号
  123. $game_player.moveto(9, 6) #——地图坐标
  124. $game_player.refresh
  125. $game_map.autoplay
  126. $game_map.update
  127. $scene = Scene_Map.new
  128. when 3
  129. $bb_66rpg = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
  130. $bb_66rpg.call(0, 'open', 'http://rpg.blue/web/',0, 0, 1)
  131. end
  132. end
  133. end
  134. def chaochaocommandchaochao
  135. if Input.trigger?(Input::UP)
  136. @command_index -= 1
  137. if @command_index < 0
  138. @command_index = 4
  139. end
  140. $game_system.se_play($data_system.cursor_se)
  141. end
  142. if Input.trigger?(Input::DOWN)
  143. @command_index += 1
  144. if @command_index > 4
  145. @command_index = 0
  146. end
  147. $game_system.se_play($data_system.cursor_se)
  148. end
  149. case @command_index
  150. when 0
  151. if @sprite[1].opacity >= 0
  152. @sprite[1].opacity -= 30
  153. end
  154. if @sprite[2].opacity <= 240
  155. @sprite[2].opacity += 30
  156. end
  157. if @sprite[3].opacity <= 210
  158. @sprite[3].opacity += 30
  159. end
  160. if @sprite[4].opacity >= 0
  161. @sprite[4].opacity -= 30
  162. end
  163. if @sprite[5].opacity <= 210
  164. @sprite[5].opacity += 30
  165. end
  166. if @sprite[6].opacity >= 0
  167. @sprite[6].opacity -= 30
  168. end
  169. if @sprite[7].opacity >= 0
  170. @sprite[7].opacity -= 30
  171. end
  172. if @sprite[8].opacity <= 0
  173. @sprite[8].opacity += 30
  174. end
  175. if @sprite[9].opacity >= 0
  176. @sprite[9].opacity -= 30
  177. end
  178. if @sprite[10].opacity <= 0
  179. @sprite[10].opacity += 30
  180. end
  181. #
  182. when 1
  183. if @sprite[1].opacity <= 210
  184. @sprite[1].opacity += 30
  185. end
  186. if @sprite[2].opacity >= 0
  187. @sprite[2].opacity -= 30
  188. end
  189. if @sprite[3].opacity >= 0
  190. @sprite[3].opacity -= 30
  191. end
  192. if @sprite[4].opacity <= 240
  193. @sprite[4].opacity += 30
  194. end
  195. if @sprite[5].opacity <= 210
  196. @sprite[5].opacity += 30
  197. end
  198. if @sprite[6].opacity >= 0
  199. @sprite[6].opacity -= 30
  200. end
  201. if @sprite[7].opacity >= 0
  202. @sprite[7].opacity -= 30
  203. end
  204. if @sprite[8].opacity <= 0
  205. @sprite[8].opacity += 30
  206. end
  207. if @sprite[9].opacity >= 0
  208. @sprite[9].opacity -= 30
  209. end
  210. if @sprite[10].opacity <= 0
  211. @sprite[10].opacity += 30
  212. end
  213. ###
  214. when 4
  215. if @sprite[1].opacity <= 210
  216. @sprite[1].opacity += 30
  217. end
  218. if @sprite[2].opacity >= 0
  219. @sprite[2].opacity -= 30
  220. end
  221. if @sprite[3].opacity <= 210
  222. @sprite[3].opacity += 30
  223. end
  224. if @sprite[4].opacity >= 0
  225. @sprite[4].opacity -= 30
  226. end
  227. if @sprite[5].opacity <= 210
  228. @sprite[5].opacity += 30
  229. end
  230. if @sprite[6].opacity >= 0
  231. @sprite[6].opacity -= 30
  232. end
  233. if @sprite[7].opacity >= 0
  234. @sprite[7].opacity -= 30
  235. end
  236. if @sprite[8].opacity <= 0
  237. @sprite[8].opacity += 30
  238. end
  239. if @sprite[9].opacity >= 0
  240. @sprite[9].opacity += 30
  241. end
  242. if @sprite[10].opacity <= 0
  243. @sprite[10].opacity -= 30
  244. end
  245. #
  246. when 2
  247. if @sprite[1].opacity <= 210
  248. @sprite[1].opacity += 30
  249. end
  250. if @sprite[2].opacity >= 0
  251. @sprite[2].opacity -= 30
  252. end
  253. if @sprite[3].opacity <= 210
  254. @sprite[3].opacity += 30
  255. end
  256. if @sprite[4].opacity >= 0
  257. @sprite[4].opacity -= 30
  258. end
  259. if @sprite[5].opacity >= 0
  260. @sprite[5].opacity -= 30
  261. end
  262. if @sprite[6].opacity <= 240
  263. @sprite[6].opacity += 30
  264. end
  265. if @sprite[7].opacity >= 0
  266. @sprite[7].opacity -= 30
  267. end
  268. if @sprite[8].opacity <= 0
  269. @sprite[8].opacity += 30
  270. end
  271. if @sprite[9].opacity >= 0
  272. @sprite[9].opacity -= 30
  273. end
  274. if @sprite[10].opacity <= 0
  275. @sprite[10].opacity += 30
  276. end
  277. #
  278. when 3
  279. if @sprite[1].opacity <= 210
  280. @sprite[1].opacity += 30
  281. end
  282. if @sprite[2].opacity >= 0
  283. @sprite[2].opacity -= 30
  284. end
  285. if @sprite[3].opacity <= 210
  286. @sprite[3].opacity += 30
  287. end
  288. if @sprite[4].opacity >= 0
  289. @sprite[4].opacity -= 30
  290. end
  291. if @sprite[5].opacity <= 210
  292. @sprite[5].opacity += 30
  293. end
  294. if @sprite[6].opacity >= 0
  295. @sprite[6].opacity -= 30
  296. end
  297. if @sprite[7].opacity >= 0
  298. @sprite[7].opacity += 30
  299. end
  300. if @sprite[8].opacity <= 0
  301. @sprite[8].opacity -= 30
  302. end
  303. if @sprite[9].opacity >= 0
  304. @sprite[9].opacity -= 30
  305. end
  306. if @sprite[10].opacity <= 0
  307. @sprite[10].opacity += 30
  308. end
  309. #
  310. end
  311. end
  312. end

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

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

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

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

Lv1.梦旅人

梦石
0
星屑
120
在线时间
73 小时
注册时间
2008-7-9
帖子
234
2
发表于 2009-8-18 07:52:28 | 只看该作者
在承认无能为力前挣扎一下,是哪一行if $a.size < Blue::Blue_max + 1出了错,错误提示是什么?
血瞳睨世

也来玩一下养小龙吧
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

3
发表于 2009-8-18 07:56:44 | 只看该作者
真折腾……
我给你的那个工程里就已经修改好了……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 21:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表