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

Project1

 找回密码
 注册会员
搜索
打印 上一主题 下一主题

来点脚本越多越好~~~~~~~~~!等你三毛

 关闭 [复制链接]

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
11
发表于 2008-3-23 19:01:04 | 只看该作者
脚本11    详尽任务显示界面 v2.1
  1. =begin
  2. --------------------------------------------------------------------------
  3. 详尽任务显示界面 v2.1
  4. --------------------------------------------------------------------------
  5. By 叶子

  6. 日期与更新
  7. 3-29-2006 -v1.0
  8. 4-3-2006  -v2.0
  9. -可以改变文字颜色,显示变量,显示图标,显示图片
  10. -大幅简化了编写任务内容的过程,加入自动换行功能
  11. -精简了窗口,使其还可以用作图鉴系统、日记系统等等
  12. 4-6-2006  -v2.1
  13. -增加了获得全部任务与删除全部任务命令
  14. -改正通假字,修改了示例任务3
  15. --------------------------------------------------------------------------
  16. 改版 by ChenWei

  17. 修改部分:
  18. - 将XP的一些脚本改成VX版的
  19. - 将窗口大小缩放成VX的大小(依照比例)
  20. - 将一些会变成很长的脚本精简
  21.    (如:用$game_pary.item_no(物品编号)
  22.         代替原来的$game_party.item_number($data_items[物品编号]) = ="好长)
  23. - 精简一些代码,将 Window_Task_Name 和Window_Task 重合部分用继承方式精简
  24. - 依照VX的 RGSS2 规范编写 Scene_Task
  25. - 增加使用16进位颜色代码变换字体颜色功能
  26. - 修改Scene_Menu的召唤方式,使脚本新手使用起来更容易

  27. --------------------------------------------------------------------------
  28. 顾名思义,就是显示任务数据的界面
  29. 任务数据要预先在这里设定好
  30. 下载范例工程,能帮助你更快更好地掌握使用方法
  31. --------------------------------------------------------------------------
  32. 使用方法:

  33. 1、召唤任务显示界面:$scene = Scene_Task.new

  34. 可以在事件中的「脚本」指令加入这段东西,
  35. 又或者修改 Scene_Menu 来增加一个显示任务的选项。
  36. 如果是修改 Scene_Menu 增加選項的話,请使用

  37.     $scene = Scene_Task.new(任务在菜单的index)

  38. 例如:$scene = Scene_Task.new(7)

  39. 2、设置任务数据

  40.   2.1、相关内容解析
  41.   
  42.   所有内容文字必须用双引号括住
  43.   
  44.   名称:任务的名字(显示在左边窗口中),大小为172×32,如果全部为文字的话,
  45.         够放九个全角字符
  46.         
  47.   简介:任务的介绍(显示在右边窗口中),宽308,高不限
  48.   
  49.         文字可以自动换行
  50.   
  51.    2.1.1、控制码解析
  52.    
  53.    名称和内容均可用控制码,注意两条反斜杠都要打!
  54.    
  55.    \\v[n] 显示n号变量
  56.    \\c[n] 改变字体颜色。n 为窗口外观图片中所设定的颜色,可为0-31

  57.    \\c[HRRGGBB]设定字体颜色为RRGGBB色, RRGGBB 为16进位颜色代码
  58.    \\n[i] 显示i号角色名字
  59.    \\i[图标编号] 显示图标    # 图标编号为图标在IconSet里的顺序
  60.    \\p[文件名] 显示图片
  61.    
  62.    2.1.2、高级:内嵌表达式
  63.         
  64.    请参考帮助-脚本入门-字符串-内嵌表达式相关内容。
  65.    它可以用来在任务的名称和简介那里显示变量。
  66.    常用的表达式(注意不要漏了井号和大括号):
  67.    #{$game_variables[n]}       ——插入n号变量的值
  68.    #{$game_party.item_no(n)}  —— 插入持有n号物品数量
  69.                                   同理还有 weapon_no,armor_no

  70.    还可以预先定义一个变量,再插入(例子见示例任务3-灵魂线)
  71.    
  72.   2.2、注意事项
  73.   
  74.    2.2.1、括号、逗号和双引号 [ ] , " 必须使用半角符号(英文输入),
  75.           引号内的内容则没有关系
  76.          
  77.    2.2.2、单引号 ' 和双引号 " 的区别:
  78.           为了不出错误,全部用双引号吧!当然如果你对Ruby很熟悉,那就没所谓了
  79.   
  80.   2.3、开始设置吧!
  81.   从107行开始设置任务数据,可以参考示例任务来设置,请仔细阅读附加讲解
  82.   
  83. 3、接受任务

  84. 事件里的「脚本」指令输入:get_task(任务ID)
  85. 例如 get_task(1) 就是接受1号任务

  86.   3.1、获得全部任务
  87.   
  88.   事件里的「脚本」指令输入:get_all_task
  89.   这个功能基本上是用来在编写好所有任务数据后测试排版的
  90.   

  91. 4、完成/删除任务

  92. 事件里的「脚本」指令输入:finish_task(任务ID)
  93. 例如 finish_task(1) 就是完成1号任务

  94. 注意:本脚本不负责完成任务后的奖励之类的东西,请自行在事件中判断,
  95.        这里的完成任务指的是从任务列表中删去此任务

  96.   4.1、删除全部任务
  97.   
  98.   事件里的「脚本」指令输入:finish_all_task
  99.   作为获得全部任务的对应功能存在,似乎不会怎么用到
  100. =end
  101. class Game_Party
  102.   #--------------------------------------------------------------------------
  103.   # ● 设置任务资料
  104.   #--------------------------------------------------------------------------
  105.   def get_tasks_info
  106.     @tasks_info = []
  107.    
  108.     #-讲解-
  109.     # 三个示例任务由浅入深,其实只要看懂第一个就可以使用了。
  110.     # 任务的写法多种多样,不限于这三个任务的方法
  111.     #----
  112.     #-----------------------------
  113.     # 示例任务1:沙漠中的五叶花
  114.     #-----------------------------
  115.     名称 = "\\c[6]沙漠中的五叶花"
  116.     #-讲解-
  117.     # 注意!脚本编辑器的变色功能并不是非常完善,所以换行后字变黑了,但仍然是字符
  118.     # 串的一部分,所以不要忘记在内容最后打一个双引号
  119.     # 按回车是强制换行
  120.     #----
  121.     简介 = "\\c[6]沙漠中的五叶花

  122. \\c[9]任务目标:
  123. 获得5朵五叶花,交给西露达

  124. \\c[0]五叶花数目:\\v[1]/5

  125. 西露达:
  126. \\c[Hff0000]人家等着你的花哦~"
  127.     #-讲解-
  128.     # 每个任务最后一定要加上:
  129.     # @tasks_info[任务ID] = Game_Task.new(名称, 简介)
  130.     # 接受任务和完成任务都是用这个任务ID来索引
  131.     #----
  132.     @tasks_info[1] = Game_Task.new(名称, 简介)
  133.    
  134.     #-----------------------------
  135.     # 示例任务2:克萝莉亚的药瓶
  136.     #-----------------------------
  137.     名称 = "\\c[6]克萝莉亚的药瓶"
  138.     #-讲解-
  139.     # 这里使用了字符串相加,例如 s = "a" + "b" ,s 就是 "ab"
  140.     # 还用了内嵌表达式,$game_party.item_number(38) 就是38号物品的数量
  141.     #----
  142.     简介 = 名称 + "
  143.    
  144. \\c[9]任务目标:
  145. 问克萝莉亚要一个药瓶,交给西露达

  146. \\c[0]药瓶:#{$game_party.item_no(1)}/1

  147. 西露达:
  148. 克萝莉亚就在西边的屋子里"
  149.     @tasks_info[2] = Game_Task.new(名称, 简介)
  150.    
  151.     #-----------------------------
  152.     # 示例任务3:灵魂线
  153.     #-----------------------------
  154.     #-讲解-
  155.     # 这里用了条件判断,当3号变量大于等于1时,加上“完成”字样,同时变色
  156.     #----
  157.     if $game_variables[3] >= 1
  158.       名称 = "\\c[8]灵魂线(完成)"
  159.       item = "\\c[8]灵魂线:#{$game_variables[3]}/1 (完成)"
  160.     else
  161.       名称 = "\\c[2]灵魂线"
  162.       item = "\\c[0]灵魂线:#{$game_variables[3]}/1"
  163.     end
  164.     #-讲解-
  165.     # 预先定义变量,用内嵌表达式插入
  166.     # 最后用了显示图标
  167.     #----
  168.     简介 = "#{名称}
  169.    
  170. \\c[9]任务目标:
  171. 找到埋起来的灵魂线,交给克萝莉亚

  172. #{item}

  173. \\c[0]克萝莉亚:
  174. 灵魂线就埋在其中一棵树下,给我好好找\\i[157]"
  175.     @tasks_info[3] = Game_Task.new(名称, 简介)
  176.    
  177.   end
  178. end
  179. #==============================================================================
  180. # ■ Interpreter
  181. #------------------------------------------------------------------------------
  182. #  执行事件命令的解释器。本类在 Game_System 类
  183. # 与 Game_Event 类的内部使用。
  184. #==============================================================================

  185. class Game_Interpreter
  186.   #--------------------------------------------------------------------------
  187.   # ● 接受任务
  188.   #--------------------------------------------------------------------------
  189.   def get_task(id)
  190.     task = $game_party.tasks_info[id]
  191.     return true if (task.nil? or $game_party.current_tasks.include?(task.id))
  192.     $game_party.current_tasks.unshift(task.id)
  193.     return true
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ● 获得全部任务
  197.   #--------------------------------------------------------------------------
  198.   def get_all_task
  199.     # 清空当前任务
  200.     $game_party.current_tasks.clear
  201.     for task in $game_party.tasks_info
  202.       next if task.nil?
  203.       $game_party.current_tasks.unshift(task.id)
  204.     end
  205.     return true
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ● 完成/放弃任务
  209.   #--------------------------------------------------------------------------
  210.   def finish_task(id)
  211.     task = $game_party.tasks_info[id]
  212.     return true if task.nil?
  213.     $game_party.current_tasks.delete(task.id)
  214.     return true
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 删除全部任务
  218.   #--------------------------------------------------------------------------
  219.   def finish_all_task
  220.     $game_party.current_tasks.clear
  221.     return true
  222.   end
  223. end

  224. #==============================================================================
  225. # ■ Game_Party
  226. #------------------------------------------------------------------------------
  227. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  228. # 请参考 $game_party。
  229. #==============================================================================

  230. class Game_Party
  231.   #--------------------------------------------------------------------------
  232.   # ● 定义实例变量
  233.   #--------------------------------------------------------------------------
  234.   attr_writer     :latest_task                  # 上次查看的任务
  235.   #--------------------------------------------------------------------------
  236.   # ● 取得任务资料
  237.   #--------------------------------------------------------------------------
  238.   def tasks_info
  239.     if @tasks_info.nil?
  240.       get_tasks_info
  241.     end
  242.     return @tasks_info
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● 取得当前任务
  246.   #--------------------------------------------------------------------------
  247.   def current_tasks
  248.     if @current_tasks.nil?
  249.       @current_tasks = []
  250.     end
  251.     return @current_tasks
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 上次查看的任务
  255.   #--------------------------------------------------------------------------
  256.   def latest_task
  257.     if !current_tasks.include?(@latest_task)
  258.       @latest_task = current_tasks[0]
  259.     end
  260.     return @latest_task
  261.   end
  262. end

  263. #==============================================================================
  264. # ■ Game_Task
  265. #------------------------------------------------------------------------------
  266. #  处理任务的类。包含任务的信息。
  267. #==============================================================================

  268. class Game_Task
  269.   attr_accessor   :name                   # 名称
  270.   attr_accessor   :briefing               # 简介
  271.   def initialize(name, briefing)
  272.     @name = name
  273.     @briefing = briefing
  274.   end
  275.   def height
  276.     text = @briefing.clone
  277.     x = 0
  278.     y = 64
  279.     min_y = 0
  280.     # 限制文字处理
  281.     begin
  282.       last_text = text.clone
  283.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  284.     end until text == last_text
  285.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  286.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  287.     end
  288.     # 为了方便、将 "\\\\" 变换为 "\000"
  289.     text.gsub!(/\\\\/) { "\000" }
  290.     # "\C" 变为 "\001"
  291.     text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  292.     # "\I" 变为 "\002"
  293.     text.gsub!(/\\[Ii]/) { "\002" }
  294.     # "\P" 变为 "\003"
  295.     text.gsub!(/\\[Pp]/) { "\003" }
  296.     # c 获取 1 个字 (如果不能取得文字就循环)
  297.     while ((c = text.slice!(/./m)) != nil)
  298.       # \\ 的情况下
  299.       if c == "\000"
  300.         # 还原为本来的文字
  301.         c = "\\"
  302.       end
  303.       # \C[n] 的情况下
  304.       if c == "\001"
  305.         # 更改文字色
  306.         text.sub!(/\[([0-9a-zA-Z]+)\]/, "")
  307.         # 下面的文字
  308.         next
  309.       end
  310.       # 图标的情况下
  311.       if c == "\002"
  312.         icon_name = ''
  313.         while ((cha = text.slice!(/./m)) != ']')
  314.           next if cha == '['
  315.           icon_name += cha
  316.         end
  317.         if x + 24 > 368
  318.           x = 0
  319.           y += [24, min_y].max
  320.           min_y = 0
  321.         end
  322.         x += 28
  323.         next
  324.       end
  325.       # 图片的情况下
  326.       if c == "\003"
  327.         pic_name = ''
  328.         while ((cha = text.slice!(/./m)) != ']')
  329.           next if cha == '['
  330.           pic_name += cha
  331.         end
  332.         pic = Cache.picture(pic_name)
  333.         if x + pic.width > 368
  334.           x = 0
  335.           y += [24, min_y].max
  336.           min_y = 0
  337.         end
  338.         x += pic.width
  339.         min_y = [pic.height, 24].max
  340.         next
  341.       end
  342.       # 另起一行文字的情况下
  343.       if c == "\n"
  344.         y += [24, min_y].max
  345.         min_y = 0
  346.         x = 0
  347.         # 下面的文字
  348.         next
  349.       end
  350.       # 自动换行处理
  351.       if x + 22 > 368
  352.         y += [24, min_y].max
  353.         min_y = 0
  354.         x = 0
  355.       end
  356.       # x 为要描绘文字的加法运算
  357.       x += 22
  358.     end
  359.     return (y + [24, min_y].max)
  360.   end
  361.   def id
  362.     return $game_party.tasks_info.index(self)
  363.   end
  364. end

  365. #==============================================================================
  366. # ■ Window_Task_Name
  367. #------------------------------------------------------------------------------
  368. #  任务名称显示窗口。
  369. #==============================================================================

  370. class Window_Task_Name < Window_Selectable
  371.   #--------------------------------------------------------------------------
  372.   # ● 初始化对像
  373.   #--------------------------------------------------------------------------
  374.   def initialize(tasks)
  375.     super(0, 0, 204, 416)
  376.     @tasks = []
  377.     for id in tasks
  378.       @tasks.push($game_party.tasks_info[id])
  379.     end
  380.     @item_max = tasks.size
  381.     self.contents = Bitmap.new(
  382.     self.width - 32, @item_max == 0 ? 32 : @item_max * 32)
  383.     refresh
  384.     self.index = 0
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ● 刷新
  388.   #--------------------------------------------------------------------------
  389.   def refresh
  390.     self.contents.clear
  391.     if @tasks != []
  392.       for task in @tasks
  393.         draw_item(task)
  394.       end
  395.     else
  396.       draw_blank
  397.     end
  398.   end
  399.   #--------------------------------------------------------------------------
  400.   # ● 描绘项目
  401.   #--------------------------------------------------------------------------
  402.   def draw_item(task)
  403.     text = task.name.clone
  404.     y = @tasks.index(task) * WLH
  405.     chenge_special_character(text, 0, y)
  406.   end
  407.   #--------------------------------------------------------------------------
  408.   # ● 描绘空行
  409.   #--------------------------------------------------------------------------
  410.   def draw_blank
  411.     self.contents.font.color = Color.new(255, 255, 255, 128)
  412.     rect = Rect.new(4, 0, self.contents.width - 8, 32)
  413.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  414.     self.contents.draw_text(rect, '当前没有任何任务')
  415.   end
  416.   #--------------------------------------------------------------------------
  417.   # ● 获取任务
  418.   #--------------------------------------------------------------------------
  419.   def task
  420.     return @tasks[self.index]
  421.   end
  422. end
  423.   
  424. #==============================================================================
  425. # ■ Window_Task
  426. #------------------------------------------------------------------------------
  427. #  任务内容显示窗口。
  428. #==============================================================================

  429. class Window_Task < Window_Base
  430.   #--------------------------------------------------------------------------
  431.   # ● 初始化对像
  432.   #--------------------------------------------------------------------------
  433.   def initialize(task_id)
  434.     super(204, 0, 340, 416)
  435.     refresh(task_id)
  436.   end
  437.   #--------------------------------------------------------------------------
  438.   # ● 刷新内容
  439.   #--------------------------------------------------------------------------
  440.   def refresh(task_id)
  441.     self.oy = 0
  442.     self.visible = true
  443.     return if task_id.nil?
  444.     task = $game_party.tasks_info[task_id]
  445.     if !task.nil?
  446.       self.contents = Bitmap.new(self.width - 32, task.height)
  447.     else
  448.       self.contents = Bitmap.new(self.width - 32, self.height - 32)
  449.       return
  450.     end
  451.     self.contents.font.color = normal_color
  452.     # 描绘任务内容
  453.     draw_task_info(task)
  454.   end
  455.   #--------------------------------------------------------------------------
  456.   # ● 描绘任务内容
  457.   #--------------------------------------------------------------------------
  458.   def draw_task_info(task)
  459.     self.contents.font.color = normal_color
  460.     # 描绘任务简介
  461.     chenge_special_character(task.briefing.clone)
  462.   end
  463. end

  464. class Window_Base < Window
  465.   def chenge_special_character(text, x=0, y=0)
  466.     # 记录换行时y坐标最小加值
  467.     min_y = 0
  468.     # 限制文字处理
  469.     begin
  470.       last_text = text.clone
  471.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  472.     end until text == last_text
  473.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  474.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  475.     end
  476.     # 为了方便、将 "\\\\" 变换为 "\000"
  477.     text.gsub!(/\\\\/) { "\000" }
  478.     # "\C" 变为 "\001"
  479.     text.gsub!(/\\[Cc]\[([0-9a-zA-Z]+)\]/)  { "\001[#{$1}]" }
  480.     # "\I" 变为 "\002"
  481.     text.gsub!(/\\[Ii]/) { "\002" }
  482.     # "\P" 变为 "\003"
  483.     text.gsub!(/\\[Pp]/) { "\003" }
  484.     # c 获取 1 个字 (如果不能取得文字就循环)
  485.     while ((c = text.slice!(/./m)) != nil)
  486.       # \\ 的情况下
  487.       if c == "\000"
  488.         # 还原为本来的文字
  489.         c = "\\"
  490.       end
  491.       # \C[n] 的情況下
  492.       if c == "\001"
  493.         # 更改文字色
  494.         text.sub!(/\[([0-9a-zA-Z]+)\]/, "")
  495.         # 如果是设定RGB颜色
  496.         if $1[0,1]=="H"
  497.           # 先拷贝一下文字
  498.           c=$1.dup
  499.           # 分3段分别取出R,G,B颜色
  500.           c.sub!(/H([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/, "")
  501.           # 设定文字颜色
  502.           self.contents.font.color = Color.new($1.to_i(16), $2.to_i(16), $3.to_i(16))
  503.         else
  504.           color = $1.to_i
  505.           if color >= 0 and color <= 31
  506.             self.contents.font.color = text_color(color)
  507.           elsif color == 32
  508.             self.contents.font.color = disabled_color
  509.           elsif color == 33
  510.             self.contents.font.color = system_color
  511.           end
  512.         end
  513.         # 下面的文字
  514.         next
  515.       end
  516.       # 图标的情况下
  517.       if c == "\002"
  518.         icon_name = ''
  519.         while ((cha = text.slice!(/./m)) != ']')
  520.           next if cha == '['
  521.           icon_name += cha
  522.         end
  523.         if x + 24 > self.contents.width
  524.           x = 0
  525.           y += [WLH, min_y].max
  526.           min_y = 0
  527.         end
  528.         draw_icon(icon_name.to_i, x+4, y+4, true)
  529.         x += 28
  530.         next
  531.       end
  532.       # 图片的情况下
  533.       if c == "\003"
  534.         pic_name = ''
  535.         while ((cha = text.slice!(/./m)) != ']')
  536.           next if cha == '['
  537.           pic_name += cha
  538.         end
  539.         pic = Cache.picture(pic_name)
  540.         if x + pic.width > self.contents.width
  541.           x = 0
  542.           y += [WLH, min_y].max
  543.           min_y = 0
  544.         end
  545.         self.contents.blt(x + 4, y, pic, Rect.new(0, 0, pic.width, pic.height))
  546.         x += pic.width
  547.         min_y = [pic.height, WLH].max
  548.         next
  549.       end
  550.       # 另起一行文字的情况下
  551.       if c == "\n"
  552.         y += [WLH, min_y].max
  553.         min_y = 0
  554.         x = 0
  555.         # 下面的文字
  556.         next
  557.       end
  558.       # 自动换行处理
  559.       if x + self.contents.text_size(c).width > self.contents.width
  560.         y += [WLH, min_y].max
  561.         min_y = 0
  562.         x = 0
  563.       end
  564.       # 描绘文字
  565.       self.contents.draw_text(4 + x, y, 40, WLH, c)
  566.       # x 为要描绘文字的加法运算
  567.       x += self.contents.text_size(c).width
  568.     end
  569.   end
  570. end

  571. class Game_Party < Game_Unit
  572.   def item_no(n)
  573.     return item_number($data_items[n])
  574.   end
  575.   def weapon_no(n)
  576.     return item_number($data_weapons[n])
  577.   end
  578.   def armor_no(n)
  579.     return item_number($data_armors[n])
  580.   end
  581. end

  582. #==============================================================================
  583. # ■ Scene_Task
  584. #------------------------------------------------------------------------------
  585. #  处理任务画面的类。
  586. #==============================================================================

  587. class Scene_Task < Scene_Base
  588.   def initialize(index=nil)
  589.     @menu_index = index
  590.   end
  591.   #--------------------------------------------------------------------------
  592.   # ● 主处理
  593.   #--------------------------------------------------------------------------
  594.   def start
  595.     # 刷新任务资料
  596.     $game_party.get_tasks_info
  597.     # 生成任务名称窗口
  598.     @task_names_window = Window_Task_Name.new($game_party.current_tasks)
  599.     @task_names_window.active = true
  600.     if $game_party.current_tasks != []
  601.       @task_names_window.index = $game_party.current_tasks.index($game_party.latest_task)
  602.     end
  603.     # 生成任务内容窗口
  604.     @task_info_window = Window_Task.new($game_party.latest_task)
  605.     @task_info_window.active = true
  606.   end

  607.   def terminate
  608.     # 释放窗口
  609.     @task_names_window.dispose
  610.     @task_info_window.dispose
  611.   end
  612.   #--------------------------------------------------------------------------
  613.   # ● 刷新画面
  614.   #--------------------------------------------------------------------------
  615.   def update
  616.     # 刷新窗口
  617.     @task_names_window.update
  618.     @task_info_window.update
  619.     update_task_names_window
  620.   end
  621.   #--------------------------------------------------------------------------
  622.   # ● 刷新任务名称窗口
  623.   #--------------------------------------------------------------------------
  624.   def update_task_names_window
  625.     # 按下 B 键的情况下
  626.     if Input.trigger?(Input::B)
  627.       # 演奏取消 SE
  628.       Sound.play_cancel
  629.       # 这里设置返回的场景,返回地图是Scene_Map.new,菜单是Scene_Menu.new(任务界面index)
  630.       if @menu_index == nil
  631.         $scene = Scene_Map.new
  632.       else
  633.         $scene = Scene_Menu.new(@menu_index)
  634.       end
  635.       return
  636.     end
  637.     # 按下 C 键的情况下
  638.     if Input.trigger?(Input::C)
  639.       # 无任务可显示的话
  640.       if @task_names_window.task == nil
  641.         # 演奏冻结 SE
  642.         Sound.play_buzzer
  643.         return
  644.       end
  645.       # 如果光标没有移动的话,翻页
  646.       if $game_party.latest_task == @task_names_window.task.id
  647.         if @task_info_window.oy + @task_info_window.height - 32 > @task_info_window.contents.height
  648.           @task_info_window.oy = 0
  649.         else
  650.           @task_info_window.oy += 480-32
  651.         end
  652.         if @task_info_window.contents.height > @task_info_window.height - 32
  653.           # 演奏翻页 SE
  654.           Sound.se_play(CHANGE_PAGE_SE)
  655.         end
  656.       else
  657.         @task_info_window.refresh(@task_names_window.task.id)
  658.         $game_party.latest_task = @task_names_window.task.id
  659.         # 演奏确定 SE
  660.         Sound.play_decision
  661.       end
  662.     end
  663.   end
  664. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
12
发表于 2008-3-23 19:02:59 | 只看该作者
脚本12   地图名显示 修改过
  1. #==============================================================================
  2. # ■ Window_MapName
  3. #==============================================================================

  4. class Window_MapName < Window_Base
  5. #--------------------------------------------------------------------------
  6. # ● 初始化
  7. #--------------------------------------------------------------------------
  8. def initialize
  9.    @map_id = $game_map.map_id
  10.    super(0, 0, 182, 52)
  11.    self.contents.font.size = 20
  12.    self.z = 151
  13.    refresh
  14. end
  15. #--------------------------------------------------------------------------
  16. # ● 刷新
  17. #--------------------------------------------------------------------------
  18. def refresh
  19.    self.opacity = 255
  20.    self.contents_opacity = 255
  21.    name = $data_mapinfos[@map_id].name
  22.    width = self.contents.text_size(name).width
  23.    height = self.contents.text_size(name).height
  24.    self.width = width + 32
  25.    self.height = height + 32
  26.    self.contents = Bitmap.new(width, height)
  27.    self.contents.font.size = 20
  28.    self.x = (Graphics.width - self.width) / 2
  29.    self.y = (Graphics.height - self.height) / 2
  30.    self.contents.font.color = system_color
  31.    self.contents.draw_text(0, 0, width, 20, name, 1)
  32. end
  33. #--------------------------------------------------------------------------
  34. # ● 更新
  35. #--------------------------------------------------------------------------
  36. def update
  37.    if $game_map.map_id != @map_id
  38.      @map_id = $game_map.map_id
  39.      refresh
  40.      self.opacity = 255
  41.      self.contents_opacity = 255
  42.    end
  43.    return if self.opacity == 0
  44.    self.opacity -= 5
  45.    self.contents_opacity -= 5
  46. end

  47. end

  48. class Scene_Title < Scene_Base
  49. #--------------------------------------------------------------------------
  50. # ● 数据库载入
  51. #--------------------------------------------------------------------------
  52. alias old_ld load_database
  53. def load_database
  54.    old_ld
  55.    $data_mapinfos       = load_data("Data/MapInfos.rvdata")
  56. end
  57. end

  58. class Scene_Map < Scene_Base
  59. #--------------------------------------------------------------------------
  60. # ● 开始
  61. #--------------------------------------------------------------------------
  62. alias old_start start
  63. def start
  64.    old_start
  65.    @mapname_window = Window_MapName.new
  66. end
  67. #--------------------------------------------------------------------------
  68. # ● 结束
  69. #--------------------------------------------------------------------------
  70. alias old_ter terminate
  71. def terminate
  72.    old_ter
  73.    @mapname_window.dispose
  74. end
  75. #--------------------------------------------------------------------------
  76. # ● 更新
  77. #--------------------------------------------------------------------------
  78. alias old_update update
  79. def update
  80.    old_update
  81.    @mapname_window.update
  82. end
  83. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
13
发表于 2008-3-23 19:04:16 | 只看该作者
脚本 13     升级手动加点
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. # 脚本使用设定:

  5. LEVEL_UP_POINT = 5  # 每升一级所增加的点数
  6. LEVEL_UP_VARIABLE = 100  # 储存角色点数的变量编号与角色id编号的差值
  7.                          # 默认情况 = 100,
  8.                          # 则是数据库里1号角色的加点数存于101号变量
  9.                          # 3号角色的加点数存于103号变量。
  10.                          # 你可以直接操作变量赠与角色可分配点数

  11. # 每增加一次点数,各项能力值的变化:357-410行
  12.                         
  13. # 使用方法介绍:

  14. # 本脚本不会取代原来的升级自动加点 也就是说,默认的升级还在,但可以用这个功能手动追加点数。
  15. # 如果你想纯粹使用手动加点(而升级不提升能力),只要把数据库中角色升级能力,
  16. # 1-99级全部等于一个相同数值就行了。

  17. # 呼唤加点场景的方法:$scene = Scene_Lvup.new(角色编号,返回菜单编号)。
  18. # 默认都是0号

  19. # 加点场景中,page up,page down换人,如果想加点完毕后返回地图,
  20. # 464行$scene = Scene_Menu.new(0)改为$scene = Scene_Map.new

  21. #==============================================================================
  22. # ■ Window_Command
  23. #------------------------------------------------------------------------------
  24. #  一般的命令选择行窗口。(追加定义)
  25. #==============================================================================
  26. class Window_Command < Window_Selectable
  27.   #--------------------------------------------------------------------------
  28.   # ● 项目有效化
  29.   #     index : 项目编号
  30.   #--------------------------------------------------------------------------
  31.   def able_item(index)
  32.     draw_item(index, normal_color)
  33.   end
  34. end
  35. #==============================================================================
  36. # ■ Game_Actor
  37. #------------------------------------------------------------------------------
  38. #  处理角色的类。(再定义)
  39. #==============================================================================

  40. class Game_Actor < Game_Battler
  41.   def level_up
  42.     @level += 1
  43.     $game_variables[self.id + LEVEL_UP_VARIABLE] += LEVEL_UP_POINT
  44.     for learning in self.class.learnings
  45.       learn_skill(learning.skill_id) if learning.level == @level
  46.     end
  47.   end
  48. end
  49. #==============================================================================
  50. # ■ Window_Base
  51. #------------------------------------------------------------------------------
  52. #  游戏中全部窗口的超级类(追加定义)
  53. #==============================================================================
  54. class Window_Base < Window
  55.   #--------------------------------------------------------------------------
  56.   # ● 描绘 HP
  57.   #     actor : 角色
  58.   #     x     : 描画目标 X 坐标
  59.   #     y     : 描画目标 Y 坐标
  60.   #     width : 描画目标的宽
  61.   #--------------------------------------------------------------------------
  62.   def draw_actor_hp_lvup(actor, x, y)
  63.     self.contents.font.color = system_color
  64.     self.contents.draw_text(x , y, 96, 32, "最大" + Vocab::hp)
  65.     if $temp_hp == 0
  66.       self.contents.font.color = normal_color
  67.       self.contents.draw_text(x + 120 , y, 48, 32, actor.maxhp.to_s, 2)
  68.     else
  69.       maxhp = actor.maxhp + $temp_hp
  70.       self.contents.font.color = Color.new(255, 128, 128, 255)
  71.       self.contents.draw_text(x + 120 , y, 48, 32, maxhp.to_s ,2)
  72.       self.contents.font.color = normal_color      
  73.       self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  74.       if $temp_hp >=0
  75.         self.contents.font.color = Color.new(255, 128, 128, 255)
  76.         self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  77.       else
  78.         self.contents.font.color = Color.new(255,255,0,255)
  79.         self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  80.       end
  81.       self.contents.draw_text(x + 200, y, 36, 32, $temp_hp.to_s, 2)
  82.       self.contents.font.color = normal_color
  83.       self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  84.     end
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 描绘 MP
  88.   #     actor : 角色
  89.   #     x     : 描画目标 X 坐标
  90.   #     y     : 描画目标 Y 坐标
  91.   #     width : 描画目标的宽
  92.   #--------------------------------------------------------------------------
  93.   def draw_actor_mp_lvup(actor, x, y)
  94.     self.contents.font.color = system_color
  95.     self.contents.draw_text(x , y, 96, 32, "最大" + Vocab::mp)
  96.     if $temp_mp == 0
  97.       self.contents.font.color = normal_color
  98.       self.contents.draw_text(x + 120 , y, 48, 32, actor.maxmp.to_s, 2)
  99.     else
  100.       maxmp = actor.maxmp + $temp_mp
  101.       self.contents.font.color = Color.new(255, 128, 128, 255)
  102.       self.contents.draw_text(x + 120 , y, 48, 32, maxmp.to_s ,2)
  103.       self.contents.font.color = normal_color      
  104.       self.contents.draw_text(x + 155, y, 36, 32, "( ", 2)
  105.       if $temp_mp >=0
  106.         self.contents.font.color = Color.new(255, 128, 128, 255)
  107.         self.contents.draw_text(x + 155, y, 36, 32, " +",2)
  108.       else
  109.         self.contents.font.color = Color.new(255,255,0,255)
  110.         self.contents.draw_text(x + 155, y, 36, 32, " -",2)
  111.       end
  112.       self.contents.draw_text(x + 200, y, 36, 32, $temp_mp.to_s, 2)
  113.       self.contents.font.color = normal_color
  114.       self.contents.draw_text(x + 215, y, 36, 32, ")", 2)
  115.     end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 描绘能力值
  119.   #     actor : 角色
  120.   #     x     : 描画目标 X 坐标
  121.   #     y     : 描画目标 Y 坐标
  122.   #     type  : 能力值种类 (0~4)
  123.   #--------------------------------------------------------------------------
  124.   def draw_actor_lvup(actor, x, y, type)   
  125.     # 定义数字颜色
  126.     lvup = normal_color
  127.     upcolor = Color.new(255, 128, 128, 255)
  128.     self.contents.font.color = normal_color   
  129.     case type
  130.     when 0
  131.       parameter_name = Vocab::atk
  132.       parameter_value = actor.atk
  133.       parameter_value_temp = parameter_value + $temp_atk
  134.       if $temp_atk != 0
  135.         lvup = upcolor
  136.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  137.         if $temp_atk >= 0
  138.           self.contents.font.color = lvup
  139.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  140.         else
  141.           self.contents.font.color = Color.new(255,255,0,255)
  142.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  143.         end        
  144.         self.contents.draw_text(x + 272, y, 80, 32, $temp_atk.abs.to_s,1)
  145.         self.contents.font.color = normal_color
  146.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  147.       end
  148.     when 1
  149.       parameter_name = Vocab::def
  150.       parameter_value = actor.def
  151.       parameter_value_temp = parameter_value + $temp_def
  152.       if $temp_def != 0
  153.         lvup = upcolor
  154.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  155.         if $temp_def >= 0
  156.           self.contents.font.color = lvup
  157.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  158.         else
  159.           self.contents.font.color = Color.new(255,255,0,255)
  160.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  161.         end        
  162.         self.contents.draw_text(x + 272, y, 80, 32, $temp_def.abs.to_s,1)
  163.         self.contents.font.color = normal_color
  164.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  165.       end
  166.     when 2
  167.       parameter_name = Vocab::agi
  168.       parameter_value = actor.agi
  169.       parameter_value_temp = parameter_value + $temp_agi
  170.       if $temp_agi != 0
  171.         lvup = upcolor
  172.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  173.         if $temp_agi >= 0
  174.           self.contents.font.color = lvup
  175.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  176.         else
  177.           self.contents.font.color = Color.new(255,255,0,255)
  178.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  179.         end        
  180.         self.contents.draw_text(x + 272, y, 80, 32, $temp_agi.abs.to_s,1)
  181.         self.contents.font.color = normal_color
  182.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  183.       end
  184.     when 3
  185.       parameter_name = Vocab::spi
  186.       parameter_value = actor.spi
  187.       parameter_value_temp = parameter_value + $temp_spi
  188.       if $temp_spi != 0
  189.         lvup = upcolor
  190.         self.contents.draw_text(x + 256, y, 16, 32, "(")
  191.         if $temp_spi >= 0
  192.           self.contents.font.color = lvup
  193.           self.contents.draw_text(x + 272, y, 80, 32, "+",0)
  194.         else
  195.           self.contents.font.color = Color.new(255,255,0,255)
  196.           self.contents.draw_text(x + 272, y, 80, 32, "-",0)
  197.         end        
  198.         self.contents.draw_text(x + 272, y, 80, 32, $temp_spi.abs.to_s,1)
  199.         self.contents.font.color = normal_color
  200.         self.contents.draw_text(x + 272, y, 80, 32, ")", 2)
  201.       end
  202.     when 4
  203.       parameter_name = "剩余点数"
  204.       parameter_value = $point
  205.       if $point != 0
  206.         lvup = upcolor
  207.       end
  208.     end   
  209.     self.contents.font.size = 16 if type == 4
  210.     self.contents.font.color = system_color
  211.     if type != 4 then
  212.       self.contents.draw_text(x, y, 120, 32, parameter_name)
  213.     else
  214.       self.contents.draw_text(x, y, 120, 24, parameter_name)
  215.     end
  216.     self.contents.font.color = normal_color
  217.     if type != 4
  218.       self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s)   
  219.     else
  220.       self.contents.draw_text(x + 68, y, 36, 24, parameter_value.to_s)   
  221.     end
  222.     if type != 4
  223.       self.contents.draw_text(x + 150, y, 36, 32, "→")
  224.     end  
  225.     self.contents.font.color = lvup
  226.     self.contents.draw_text(x + 180, y, 60, 32, parameter_value_temp.to_s)
  227.     self.contents.font.color = normal_color        
  228.   end
  229. end

  230. class Window_Lvpoint < Window_Base
  231.   def initialize
  232.     super(0,198,128,58)
  233.     refresh
  234.   end
  235.   def refresh
  236.     self.contents.clear
  237.     draw_actor_lvup(@actor, 0, 0, 4)
  238.   end
  239. end
  240. #==============================================================================
  241. # ■ Window_lvup
  242. #------------------------------------------------------------------------------
  243. #  显示升级状态窗口。
  244. #==============================================================================
  245. class Window_Lvup < Window_Base
  246.   #--------------------------------------------------------------------------
  247.   # ● 初始化对像
  248.   #     actor : 角色
  249.   #--------------------------------------------------------------------------
  250.   def initialize(actor)
  251.     super(0, 0, 416, 256)
  252.     self.contents = Bitmap.new(width - 32, height - 32)
  253.     @actor = actor
  254.     refresh
  255.   end  
  256.   #--------------------------------------------------------------------------
  257.   # ● 刷新
  258.   #--------------------------------------------------------------------------
  259.   def refresh
  260.     self.contents.clear
  261.     draw_actor_graphic(@actor, 30, 80)
  262.     draw_actor_name(@actor, 4, 0)
  263.     draw_actor_class(@actor, 96, 0)
  264.     draw_actor_level(@actor, 224, 0)
  265.     draw_actor_state(@actor, 96, 32)   
  266.     draw_actor_hp_lvup(@actor, 96, 32)
  267.     draw_actor_mp_lvup(@actor, 96, 64)
  268.     draw_actor_lvup(@actor, 4, 96, 0)
  269.     draw_actor_lvup(@actor, 4, 128, 1)
  270.     draw_actor_lvup(@actor, 4, 160, 2)
  271.     draw_actor_lvup(@actor, 4, 192, 3)
  272.   end
  273. end
  274. #==============================================================================
  275. # ■ Window_Help
  276. #------------------------------------------------------------------------------
  277. #  特技及物品的说明、角色的状态显示的窗口。
  278. #==============================================================================
  279. class Window_Lvup_Help < Window_Base
  280.   #--------------------------------------------------------------------------
  281.   # ● 初始化对像
  282.   #--------------------------------------------------------------------------
  283.   def initialize
  284.     super(0, 256, 544, 160)
  285.     self.contents = Bitmap.new(width - 32, height - 32)
  286.     @test = "" #——这个东西用来检测,节约内存专用
  287.   end  
  288.   #--------------------------------------------------------------------------
  289.   # ● 设置文本
  290.   #--------------------------------------------------------------------------
  291.   def lvup_text(text1, text2 = nil, text3 = nil, text4 = nil)
  292.     if @test != text1
  293.       @test = text1
  294.     else
  295.       return
  296.     end   
  297.     self.contents.clear
  298.     self.contents.font.color = normal_color
  299.     self.contents.draw_text(4, 0, self.width - 40, 32, text1)
  300.     if text2 != nil
  301.       self.contents.draw_text(4 , 32, self.width - 40, 32, text2)
  302.     end
  303.     self.contents.font.size -= 4
  304.     if text3 != nil
  305.       self.contents.draw_text(4 , 64, self.width - 40, 32, text3)
  306.     end
  307.     if text4 != nil
  308.       self.contents.draw_text(4 , 96, self.width - 40, 32, text4)
  309.     end
  310.     self.contents.font.size += 4
  311.   end
  312. end
  313. #==============================================================================
  314. # ■ Scene_lvup
  315. #------------------------------------------------------------------------------
  316. #  处理升级画面的类。
  317. #==============================================================================
  318. class Scene_Lvup
  319.   #--------------------------------------------------------------------------
  320.   # ● 初始化对像
  321.   #     actor_index : 角色索引
  322.   #     menu_index : 选项起始位置
  323.   #--------------------------------------------------------------------------
  324.   def initialize(actor_index = 0 , menu_index = 0)
  325.     @actor_index = actor_index
  326.     @menu_index = menu_index
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● 主处理
  330.   #--------------------------------------------------------------------------
  331.   def main
  332.     s1 = "增加体力"
  333.     s2 = "增加"+Vocab::atk
  334.     s3 = "增加"+Vocab::def
  335.     s4 = "增加"+Vocab::agi
  336.     s5 = "增加"+Vocab::spi
  337.     s6 = "确认加点"
  338.     s7 = "点数重置"
  339.     @command_window = Window_Command.new(128, [s1, s2, s3, s4, s5, s6, s7])
  340.     @command_window.index = @menu_index
  341.     # 获取角色
  342.     @actor = $game_party.members[@actor_index]
  343.     # 将角色的剩余点数带入
  344.     $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  345.     # 初始化临时量
  346.     $temp_atk = 0
  347.     $temp_def = 0
  348.     $temp_agi = 0
  349.     $temp_spi = 0
  350.     $temp_hp = 0
  351.     $temp_mp = 0
  352.     #=========================================================================
  353.     # 特别提示:这些设置也可以使用小数,但是可能出现0值意外错误
  354.     #  (各种编程语言都有这种意外),建议还是使用整数,正负不限
  355.     #=========================================================================
  356.     # 每提升一次力量,提升多少附加能力
  357.     #=========================================================================
  358.     @atk_hp = 5     # 每提升一次力量附加提升多少HP
  359.     @atk_mp = 0     # 每提升一次力量附加提升多少MP
  360.     @atk_def = 0    # 每提升一次力量附加提升多少灵巧
  361.     @atk_agi = 0    # 每提升一次力量附加提升多少速度
  362.     @atk_spi = 0    # 每提升一次力量附加提升多少魔力
  363.     @atk_atk = 1    # 每提升一次力量附加提升多少力量
  364.     #=========================================================================
  365.     # 每提升一次灵巧,提升多少附加能力
  366.     #=========================================================================
  367.     @def_hp = 0     # 每提升一次灵巧附加提升多少HP
  368.     @def_mp = 0     # 每提升一次灵巧附加提升多少MP
  369.     @def_atk = 0    # 每提升一次灵巧附加提升多少力量
  370.     @def_agi = 1    # 每提升一次灵巧附加提升多少速度
  371.     @def_spi = 0    # 每提升一次灵巧附加提升多少魔力
  372.     @def_def = 1    # 每提升一次灵巧附加提升多少灵巧
  373.     #=========================================================================
  374.     # 每提升一次速度,提升多少附加能力
  375.     #=========================================================================
  376.     @agi_hp = 0     # 每提升一次速度附加提升多少HP
  377.     @agi_mp = 0     # 每提升一次速度附加提升多少MP
  378.     @agi_atk = 0    # 每提升一次速度附加提升多少力量
  379.     @agi_def = 1    # 每提升一次速度附加提升多少灵巧
  380.     @agi_spi = 0    # 每提升一次速度附加提升多少魔力
  381.     @agi_agi = 1    # 每提升一次速度附加提升多少速度
  382.     #=========================================================================
  383.     # 每提升一次魔力,提升多少附加能力
  384.     #=========================================================================
  385.     @spi_hp = 0     # 每提升一次魔力附加提升多少HP
  386.     @spi_mp = 10    # 每提升一次魔力附加提升多少MP
  387.     @spi_atk = 0   # 每提升一次魔力附加提升多少力量
  388.     @spi_def = 0   # 每提升一次魔力附加提升多少灵巧
  389.     @spi_agi = 0   # 每提升一次魔力附加提升多少速度
  390.     @spi_spi = 1   # 每提升一次魔力附加提升多少魔力
  391.     #=========================================================================
  392.     # 每提升一次体力,提升多少附加能力
  393.     #=========================================================================
  394.     @hp = 15       # 每提升一次体力提升多少HP
  395.     @mp = 0       # 每提升一次体力提升多少MP
  396.     @hp_atk = 0   # 每提升一次体力提升多少力量
  397.     @hp_def = 0   # 每提升一次体力提升多少速度
  398.     @hp_agi = 0   # 每提升一次体力提升多少灵巧
  399.     @hp_spi = 0   # 每提升一次体力提升多少魔力   
  400.     # 定义说明文字
  401.     @text_hp_sc = "体力可以增加生存的能力,可以延长生存的时间!"
  402.     @text_atk_sc = Vocab::atk + "可以增加物理攻击和物理技能的威力!"
  403.     @text_def_sc = Vocab::def + "可以提高攻击的命中率和必杀!"
  404.     @text_agi_sc = Vocab::agi + "可以提高回避、命中、逃跑成功率!"
  405.     @text_spi_sc = Vocab::spi + "可以提高魔法的效果,可以增加1点魔法!"
  406.     @text_save = "保存分配情况并返回游戏"
  407.     @text_reset= "重新分配能力点数"
  408.     @text_2 = "每增加一次此项能力值,可以提升能力值"
  409.     @text_hp = "最大" + Vocab::hp + "值"
  410.     @text_mp = "最大" + Vocab::mp + "值"
  411.     @text_atk = "最大" + Vocab::atk + "值"
  412.     @text_def = "最大" + Vocab::def + "值"
  413.     @text_agi = "最大" + Vocab::agi + "值"
  414.     @text_spi = "最大" + Vocab::spi + "值"
  415.     s_disable
  416.     # 生成状态窗口
  417.     @lvup_window = Window_Lvup.new(@actor)
  418.     @lvup_window.x = 128
  419.     @lvup_window.y = 0   
  420.     @lvpoint_window = Window_Lvpoint.new
  421.     # 生成帮助窗口并初始化帮助文本
  422.     @help_window = Window_Lvup_Help.new   
  423.     # 执行过渡
  424.     Graphics.transition
  425.     # 主循环
  426.     loop do
  427.       # 刷新游戏画面
  428.       Graphics.update
  429.       # 刷新输入信息
  430.       Input.update
  431.       # 刷新画面
  432.       update
  433.       # 如果切换画面就中断循环
  434.       if $scene != self
  435.         break
  436.       end
  437.     end
  438.     # 准备过渡
  439.     Graphics.freeze
  440.     # 释放窗口
  441.     @lvpoint_window.dispose
  442.     @command_window.dispose
  443.     @lvup_window.dispose
  444.     @help_window.dispose
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   # ● 刷新画面
  448.   #--------------------------------------------------------------------------
  449.   def update
  450.     # 刷新窗口
  451.     @command_window.update
  452.     # 选项明暗判断(因为太消耗资源,所以屏蔽掉了)
  453.     s_disable
  454.     @lvup_window.update
  455.     #=============================================================
  456.     # 按下 B 键的情况下
  457.     #=============================================================
  458.     if Input.trigger?(Input::B)
  459.       # 演奏取消 SE
  460.       Sound.play_cancel
  461.       # 切换到地图画面
  462.       $scene = Scene_Map.new
  463.       return
  464.     end
  465.     #=============================================================
  466.     # 按下 C 键的情况下
  467.     #=============================================================
  468.     if Input.trigger?(Input::C)      
  469.       if @command_window.index == 5
  470.           # 演奏确定 SE
  471.         Sound.play_decision
  472.         # 将角色的剩余点数带回
  473.         $game_variables[@actor.id + LEVEL_UP_VARIABLE] = $point
  474.         # 将角色点数实际加上
  475.         @actor.atk += $temp_atk
  476.         @actor.def += $temp_def
  477.         @actor.agi += $temp_agi
  478.         @actor.spi += $temp_spi
  479.         @actor.maxhp += $temp_hp
  480.         @actor.maxmp += $temp_mp
  481.         # 切换到地图画面
  482.         $scene = Scene_Map.new
  483.         return
  484.       end
  485.       if @command_window.index == 6
  486.           # 演奏确定 SE
  487.         Sound.play_decision
  488.           # 将角色的剩余点数带入
  489.         $point = $game_variables[@actor.id + LEVEL_UP_VARIABLE]   
  490.           # 初始化临时量
  491.         $temp_atk = 0
  492.         $temp_def = 0
  493.         $temp_agi = 0
  494.         $temp_spi = 0
  495.         $temp_hp = 0
  496.         $temp_mp = 0
  497.         @lvup_window.refresh
  498.         @lvpoint_window.refresh
  499.         return
  500.       end
  501.       if $point == 0
  502.         # 演奏冻结 SE
  503.         Sound.play_buzzer
  504.         return
  505.       end
  506.       case @command_window.index
  507.       when 0
  508.         # 演奏确定 SE
  509.         Sound.play_decision
  510.         $temp_hp += @hp
  511.         $temp_mp += @mp
  512.         $temp_atk += @hp_atk
  513.         $temp_def += @hp_def
  514.         $temp_agi += @hp_agi
  515.         $temp_spi += @hp_spi
  516.         $point -= 1
  517.         @lvup_window.refresh
  518.         @lvpoint_window.refresh
  519.         s_disable
  520.         return
  521.       when 1
  522.         # 演奏确定 SE
  523.         Sound.play_decision
  524.         $temp_atk += @atk_atk
  525.         $temp_hp += @atk_hp
  526.         $temp_mp += @atk_mp
  527.         $temp_def += @atk_def
  528.         $temp_agi += @atk_agi
  529.         $temp_spi += @atk_spi
  530.         $point -= 1
  531.         @lvup_window.refresh
  532.         @lvpoint_window.refresh
  533.         s_disable
  534.         return
  535.       when 2
  536.         # 演奏确定 SE
  537.         Sound.play_decision
  538.         $temp_def += @def_def
  539.         $temp_hp += @def_hp
  540.         $temp_mp += @def_mp
  541.         $temp_atk += @def_atk
  542.         $temp_agi += @def_agi
  543.         $temp_spi += @def_spi
  544.         $point -= 1
  545.         @lvup_window.refresh
  546.         @lvpoint_window.refresh
  547.         s_disable
  548.         return
  549.       when 3
  550.         # 演奏确定 SE
  551.         Sound.play_decision
  552.         $temp_agi += @agi_agi
  553.         $temp_hp += @agi_hp
  554.         $temp_mp += @agi_mp
  555.         $temp_atk += @agi_atk
  556.         $temp_def += @agi_def
  557.         $temp_spi += @agi_spi
  558.         $point -= 1
  559.         @lvup_window.refresh
  560.         @lvpoint_window.refresh
  561.         s_disable
  562.         return
  563.       when 4
  564.         # 演奏确定 SE
  565.         Sound.play_decision
  566.         $temp_spi += @spi_spi
  567.         $temp_hp += @spi_hp
  568.         $temp_mp += @spi_mp
  569.         $temp_atk += @spi_atk
  570.         $temp_def += @spi_def
  571.         $temp_agi += @spi_agi
  572.         $point -= 1
  573.         @lvup_window.refresh
  574.         @lvpoint_window.refresh
  575.         s_disable
  576.         return
  577.       end
  578.     end
  579.     #=============================================================
  580.     # 什么都没有按下的情况
  581.     #=============================================================
  582.     case @command_window.index   
  583.     when 0  # 增加体力
  584.       temptext1 = @text_hp + @hp.to_s + "点   " + @text_atk + @hp_atk.to_s + "点   " + @text_def + @hp_def.to_s + "点"
  585.       temptext2 = @text_mp + @mp.to_s + "点   " + @text_agi + @hp_agi.to_s + "点   " + @text_spi + @hp_spi.to_s + "点"
  586.       @help_window.lvup_text(@text_hp_sc , @text_2 , temptext1 , temptext2)
  587.     when 1  # 增加力量
  588.       temptext1 = @text_hp + @atk_hp.to_s + "点   " + @text_atk + @atk_atk.to_s + "点   " + @text_def + @atk_def.to_s + "点"
  589.       temptext2 = @text_mp + @atk_mp.to_s + "点   " + @text_agi + @atk_agi.to_s + "点   " + @text_spi + @atk_spi.to_s + "点"
  590.       @help_window.lvup_text(@text_atk_sc , @text_2 , temptext1 , temptext2)
  591.     when 2  # 增加灵巧
  592.       temptext1 = @text_hp + @def_hp.to_s + "点   " + @text_atk + @def_agi.to_s + "点   " + @text_def + @def_def.to_s + "点"
  593.       temptext2 = @text_mp + @def_mp.to_s + "点   " + @text_agi + @def_agi.to_s + "点   " + @text_spi + @def_spi.to_s + "点"
  594.       @help_window.lvup_text(@text_def_sc , @text_2 , temptext1 , temptext2)
  595.     when 3  # 增加速度
  596.       temptext1 = @text_hp + @agi_hp.to_s + "点   " + @text_atk + @agi_atk.to_s + "点   " + @text_def + @agi_def.to_s + "点"
  597.       temptext2 = @text_mp + @agi_mp.to_s + "点   " + @text_agi + @agi_agi.to_s + "点   " + @text_spi + @agi_spi.to_s + "点"
  598.       @help_window.lvup_text(@text_agi_sc , @text_2 , temptext1 , temptext2)
  599.     when 4  # 增加魔力
  600.       temptext1 = @text_hp + @spi_hp.to_s + "点   " + @text_atk + @spi_atk.to_s + "点   " + @text_def + @spi_def.to_s + "点"
  601.       temptext2 = @text_mp + @spi_mp.to_s + "点   " + @text_agi + @spi_agi.to_s + "点   " + @text_spi + @spi_spi.to_s + "点"
  602.       @help_window.lvup_text(@text_spi_sc , @text_2 , temptext1 , temptext2)
  603.     when 5 # 保存设定
  604.       @help_window.lvup_text(@text_save)
  605.     when 6 # 点数重置
  606.       @help_window.lvup_text(@text_reset)     
  607.     end
  608.     #=============================================================
  609.     # 按下R与L换人的情况
  610.     #=============================================================      
  611.     if Input.trigger?(Input::R)
  612.       # 演奏光标 SE
  613.       Sound.play_cursor
  614.       # 移至下一位角色
  615.       @actor_index += 1
  616.       @actor_index %= $game_party.members.size
  617.       # 切换到别的状态画面
  618.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  619.       return
  620.     end
  621.     # 按下 L 键的情况下
  622.     if Input.trigger?(Input::L)
  623.       # 演奏光标 SE
  624.       Sound.play_cursor
  625.       # 移至上一位角色
  626.       @actor_index += $game_party.members.size - 1
  627.       @actor_index %= $game_party.members.size
  628.       # 切换到别的状态画面
  629.       $scene = Scene_Lvup.new(@actor_index , @command_window.index)
  630.       return
  631.     end
  632.   end  
  633.   #--------------------------------------------------------------------------
  634.   # ● 选项明暗判断
  635.   #--------------------------------------------------------------------------
  636.   def s_disable
  637.     # 判断剩余点数是否为0,如果为0,那么增加选项表示为暗色
  638.     if $point == 0
  639.       enabled = false
  640.     else
  641.       enabled = true
  642.     end
  643.       @command_window.draw_item(0,enabled)
  644.       @command_window.draw_item(1,enabled)
  645.       @command_window.draw_item(2,enabled)
  646.       @command_window.draw_item(3,enabled)
  647.       @command_window.draw_item(4,enabled)
  648.   end
  649. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
14
发表于 2008-3-23 19:05:14 | 只看该作者
脚本14   事件存度进度
  1. class Scene_File
  2.   #--------------------------------------------------------------------------
  3.   # ● 执行保存
  4.   #--------------------------------------------------------------------------
  5.   def do_save(id = @index, from_interpreter = false)
  6.     if from_interpreter
  7.       file = File.open(make_filename(id), "wb")
  8.     else
  9.       file = File.open(@savefile_windows[id].filename, "wb")
  10.     end
  11.     write_save_data(file)
  12.     file.close
  13.     return_scene
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 执行读取
  17.   #--------------------------------------------------------------------------
  18.   def do_load(id = @index, from_interpreter = false)
  19.     if from_interpreter
  20.       file = File.open(make_filename(id), "rb")
  21.     else
  22.       file = File.open(@savefile_windows[id].filename, "rb")
  23.     end
  24.     read_save_data(file)
  25.     file.close
  26.     $scene = Scene_Map.new
  27.     RPG::BGM.fade(1500)
  28.     Graphics.fadeout(60)
  29.     Graphics.wait(40)
  30.     @last_bgm.play
  31.     @last_bgs.play
  32.   end
  33. end


  34. class Game_Interpreter
  35.   #------------------------------------------------------------------
  36.   # ● 用事件脚本储存进度。方法:save(编号)
  37.   #------------------------------------------------------------------
  38.   def save(index = 0)
  39.     ts = Scene_File.new(true,false,true).do_save(index, true)
  40.   end
  41.   
  42.   #------------------------------------------------------------------
  43.   # ● 用事件脚本读取进度。方法:load(编号)
  44.   #------------------------------------------------------------------
  45.   def load(index = 0)
  46.     ts = Scene_File.new(false,false,true).do_load(index, true)
  47.   end  
  48. end

复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
15
发表于 2008-3-23 19:06:37 | 只看该作者
脚本15  生成错误日志
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. module ERRSettings
  5. #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
  6. #请设置以下东东
  7. # 游戏测试的时候,是否保存错误信息?(true是false不是)
  8. SaveErrorData = true

  9. # 回溯跟踪错误的文件名
  10. BackTraceFileName = "Backtrace.txt"
  11. #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
  12. end

  13. module RPG
  14. module_function
  15. def version
  16.    case
  17.      when defined? Hangup then 1.0
  18.      else 2.0
  19.    end
  20. end
  21. def debug?
  22.    $TEST or $DEBUG
  23. end
  24. end
  25. class Reset < Exception
  26. end
  27. class ScriptInterpreter

  28. include ERRSettings
  29. CallSystemError = true
  30. def run
  31.    Graphics.freeze
  32.    $scene = Scene_Title.new
  33.    $scene.main until $scene.nil?
  34.    Graphics.transition(RPG.version == 1 ? 20 : 30)
  35.    exit
  36. rescue Reset => exp
  37.    raise
  38. rescue SystemExit => exp
  39.    raise
  40. rescue Exception => exp
  41.    exception(exp)
  42.    exit
  43. end

  44. private

  45. def exception(exp)
  46.    save_backtrace(exp) if SaveErrorData or RPG.debug?
  47.    print(get_error_message(exp))
  48.    raise if CallSystemError and RPG.debug?
  49. end

  50. def get_error_message(exp)
  51.    if RPG.debug?
  52.      bt = BackTrace.get_backtraces(exp.backtrace)
  53.      
  54.      if exp.class.to_s=="SyntaxError"
  55.        $outexp="语法错误"
  56.      elsif exp.class.to_s=="NameError"
  57.        $outexp="变量未定义"
  58.      elsif exp.class.to_s=="NoMethodError"
  59.        $outexp="方法未定义"
  60.      elsif exp.class.to_s=="NoMemoryError"
  61.        $outexp="内存占有过大"
  62.      elsif exp.class.to_s=="ArgumentError"
  63.        $outexp="参数错误"   #如果愿意此处可以自定义添加
  64.      else
  65.        $outexp=exp.class.to_s
  66.      end

  67.      msg  = "◆ 发生错误\n"
  68.      msg += "\提醒您:请养成备份游戏文件的习惯。\n \n"
  69.      msg += "错误类型 :\n\t#{$outexp}\n"
  70.      msg += "错误信息 :\n\t#{exp.message}\n" if exp.message
  71.      msg += "错误可能发生的相关位置 :"
  72.      bt.each do |i|
  73.        msg += " \n\t#{i.name} : 第 #{i.line_no} 行"
  74.        msg += " : #{i.method_name}" if i.method_name
  75.      end
  76.      msg += "  \n非常荣幸能为您发送错误报告\n"
  77.    else
  78.      msg  = "内部发生错误强制结束。\n"
  79.      msg += "提醒您:请养成备份游戏文件的习惯。\n"
  80.      msg += "▲错误报告文件「#{BackTraceFileName}」已经保存。\n\n"
  81.      msg += "  非常荣幸能为您发送错误报告\n"
  82.    end
  83.    msg
  84. end

  85. def save_backtrace(exp)
  86.    bt = BackTrace.get_backtraces(exp.backtrace)
  87.    
  88.      if exp.class.to_s=="SyntaxError"
  89.        $outexp="语法错误"
  90.      elsif exp.class.to_s=="NameError"
  91.        $outexp="变量未定义"
  92.      elsif exp.class.to_s=="NoMethodError"
  93.        $outexp="方法未定义"
  94.      elsif exp.class.to_s=="NoMemoryError"
  95.        $outexp="内存占有过大"
  96.      elsif exp.class.to_s=="ArgumentError"
  97.        $outexp="参数错误"   #如果愿意此处可以自定义添加
  98.      else
  99.        $outexp=exp.class.to_s
  100.      end
  101.    
  102.    msg  = "◆ #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}\n"
  103.    msg += "错误类型 :\n\t#{$outexp}\n"
  104.    msg += "错误信息 :\n\t#{exp.message}\n" if exp.message
  105.    msg += "错误可能发生的相关位置 :"
  106.    bt.each do |i|
  107.      msg += " \n\t#{i.name} : 第 #{i.line_no} 行"
  108.      msg += " : #{i.method_name}" if i.method_name
  109.    end
  110.    msg += "\n-----------------------------------\n"
  111.    File.open(BackTraceFileName, "a") do |file|
  112.      file.write(msg)
  113.    end
  114. end
  115. end

  116. # 回溯跟踪错误的类
  117. class BackTrace  
  118. BacktraceRegexp = /^Section([0-9]+):([0-9]+)(:in `(.+)')?$/
  119. def self.get_backtraces(bt)
  120.    r = []
  121.    bt.each do |i|
  122.      r << self.new(i)
  123.    end
  124.    r
  125. end  
  126. def initialize(line)
  127.    name, @line_no, @method_name =
  128.                                    BacktraceRegexp.match(line).to_a.values_at(1,2,4)
  129.    @name = get_section_name(name)
  130. end  
  131. attr_accessor :name
  132. attr_accessor :line_no
  133. attr_accessor :method_name  
  134. private
  135. def get_section_name(index)
  136.    $RGSS_SCRIPTS[index.to_i][1]
  137. end
  138. end
  139. begin
  140. si = ScriptInterpreter.new
  141. si.run
  142. end
复制代码



脚本16  战斗会回复一定%的HP
  1. #===============================================================================
  2. #战斗后回复HP
  3. #===============================================================================
  4. class Game_Battler
  5.   def remove_states_battle
  6.     for state in states
  7.       remove_state(state.id) if state.battle_only
  8.     end
  9.     n = maxhp * 50         #战斗后回复的HP百分比
  10.     n /= 100
  11.     self.hp += n
  12.   end
  13. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
16
发表于 2008-3-23 19:09:24 | 只看该作者
脚本17  滚动字幕  
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #——使用注意:默认会返回地图,如果需要返回开头,请将本脚本中的
  5. #return_scene = Scene_Map.new改为return_scene = Scene_Title.new

  6. class Scene_Credit
  7.   CREDIT=<<_END_
  8. #这里输入字幕内容

  9. _END_
  10. end

  11. class Scene_Credit

  12.   def initialize(return_scene = nil)
  13.     @sprite = Sprite.new
  14.     @sprite.bitmap = Bitmap.new("Graphics/Pictures/tit")
  15.     @sprite.x = 0
  16.     @sprite.y = 0
  17.     if return_scene.nil?
  18.       return_scene = Scene_Title.new
  19.     end
  20.     @return_scene = return_scene
  21.   end
  22.   
  23.   def scene_start
  24.     credit_lines = CREDIT.split(/\n/)
  25.     credit_bitmap = Bitmap.new(576,32 * credit_lines.size)
  26.     credit_lines.each_index do |i|
  27.       line = credit_lines[i]
  28.       credit_bitmap.draw_text(0,i * 32,576,32,line,1)
  29.     end
  30.     @credit_sprite = Sprite.new(Viewport.new(0,50,576,432))
  31.     @credit_sprite.bitmap = credit_bitmap
  32.     @credit_sprite.oy = -430
  33.     @frame_index = 0
  34.     @last_flag = false
  35.   end

  36.   def scene_end
  37.     @credit_sprite.dispose
  38.     @sprite.dispose
  39.   end
  40.   
  41.   def last?
  42.     return (@frame_index >= @credit_sprite.bitmap.height + 320)
  43.   end
  44.   
  45.   def last
  46.     if not @last_flag
  47.       Audio.bgm_fade(10000)
  48.       @last_flag = true
  49.       @last_count = 0
  50.     else
  51.       @last_count += 1
  52.     end
  53.     if @last_count >= 300
  54.       $scene = @return_scene
  55.     end
  56.   end
  57.   
  58.   def update
  59.     @frame_index += 1
  60.     return if cancel?
  61.     last if last?
  62.     @credit_sprite.oy += 1
  63.   end

  64.   def cancel?
  65.     if Input.trigger?(Input::B)
  66.       $scene = @return_scene
  67.       return true
  68.     end
  69.     return false
  70.   end

  71.   def main
  72.     scene_start
  73.     # 过渡
  74.     Graphics.transition
  75.     # 主循环
  76.     loop do
  77.       Graphics.update
  78.       Input.update
  79.       update
  80.       if $scene != self
  81.         break
  82.       end
  83.     end
  84.     # 准备过渡
  85.     Graphics.freeze
  86.     scene_end
  87.   end
  88. end
  89. #==============================================================================



  90. #==============================================================================
  91. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  92. #==============================================================================

复制代码


脚本18 物品颜色描绘
作者的话:
此脚本会和其他需要设定注释的脚本冲突。解决方法么,还在研究...
如果对16进制颜色没需求的话(个人感觉系统自己设定好的颜色足够了),请使用下面这个脚本
使用方法同上 不过不用打[] 另外没有16进制功能
如果有其他脚本的设定用#分隔开就ok 可以一起用。
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. module RPG
  5.   class BaseItem
  6.     def name_color_66RPG
  7.       name_color = @note.split(/#/)[0]
  8.       return name_color != nil ? name_color.to_i: 0
  9.     end
  10.   end
  11. end


  12. class Window_Base < Window
  13.   #定义透明色
  14.   def disabled_color
  15.     return Color.new(255, 255, 255, 128)
  16.   end
  17.   def draw_item_name(item, x, y, enabled = true)
  18.     if item != nil
  19.       draw_icon(item.icon_index, x, y, enabled)
  20.       self.contents.font.color = text_color(item.name_color_66RPG)
  21.       opacity = self.contents.font.color == disabled_color ? 128 : 255
  22.       self.contents.draw_text(x + 24, y, 172, WLH, item.name.to_s)
  23.     end
  24.   end
  25. end
  26. #==============================================================================



  27. #==============================================================================
  28. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  29. #==============================================================================

复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
17
发表于 2008-3-23 19:10:34 | 只看该作者
脚本19  VX开头画面特效
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Scene_Title
  6. #------------------------------------------------------------------------------
  7. #  タイトル画面の処理を行うクラスです。
  8. #==============================================================================

  9. class Scene_Title < Scene_Base
  10.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  11.   MAXNUMBER = 18  # 天气图片数量
  12.   
  13.   WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  14.   # 自定义图片路径,这个文件是流星雨
  15.   
  16.   BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  17.   WEATHER_X = 5 # X方向每回合减少象素
  18.   WEATHER_Y = 5 # Y方向每回合减少象素
  19.   WEATHER_OPACITY = 2 #每回合减低透明度
  20.   START_OPACITY = 200 #出现时的透明度
  21.   RAND_X = 1200 # 随机X范围
  22.   RAND_Y = 600 # 随机Y范围
  23.   HEIGHT = -600 # 出现时候的屏幕Y
  24.   WIDTH = 100 # 出现时候的屏幕X
  25.   #--------------------------------------------------------------------------
  26.   # ● メイン処理
  27.   #--------------------------------------------------------------------------
  28.   def main
  29.     if $BTEST                         # 戦闘テストの場合
  30.       battle_test                     # 戦闘テストの開始処理
  31.     else                              # 通常のプレイの場合
  32.       super                           # 本来のメイン処理
  33.     end
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 開始処理
  37.   #--------------------------------------------------------------------------
  38.   def start
  39.     super
  40.     load_database                     # データベースをロード
  41.     create_game_objects               # ゲームオブジェクトを作成
  42.     check_continue                    # コンティニュー有効判定
  43.     create_title_graphic   # タイトルグラフィックを作成
  44.     @ox = 0
  45.     @oy = 0
  46.     color1 = Color.new(255, 255, 255, 255)
  47.     color2 = Color.new(255, 255, 255, 128)
  48.     @rain_bitmap = Bitmap.new(7, 56)
  49.     for i in 0..6
  50.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  51.     end
  52.     @storm_bitmap = Bitmap.new(34, 64)
  53.     for i in 0..31
  54.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  55.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  56.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  57.     end
  58.     @snow_bitmap = Bitmap.new(6, 6)
  59.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  60.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  61.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  62.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  63.     @sprites = []
  64.     for i in 1..40
  65.       sprite = Sprite.new
  66.       case WEATHER
  67.       when 1
  68.         sprite.bitmap = @rain_bitmap
  69.       when 2
  70.         sprite.bitmap = @storm_bitmap
  71.       when 3
  72.         sprite.bitmap = @snow_bitmap
  73.       when 4
  74.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  75.       end
  76.       sprite.z = 1000
  77.       sprite.x = -1000
  78.       sprite.y = -1000
  79.       sprite.visible = (i <= MAXNUMBER)
  80.       sprite.blend_type = BLEND_TYPE
  81.       sprite.opacity = START_OPACITY
  82.       @sprites.push(sprite)
  83.     end
  84.     weather_update
  85.     create_command_window             # コマンドウィンドウを作成
  86.     play_title_music                  # タイトル画面の音楽を演奏
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● トランジション実行
  90.   #--------------------------------------------------------------------------
  91.   def perform_transition
  92.     Graphics.transition(20)
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 開始後処理
  96.   #--------------------------------------------------------------------------
  97.   def post_start
  98.     super
  99.     open_command_window
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 終了前処理
  103.   #--------------------------------------------------------------------------
  104.   def pre_terminate
  105.     super
  106.     close_command_window
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 終了処理
  110.   #--------------------------------------------------------------------------
  111.   def terminate
  112.     super
  113.     dispose_command_window
  114.     snapshot_for_background
  115.     @sprite.bitmap.dispose
  116.     @sprite.dispose
  117.     for sprite in @sprites
  118.       sprite.dispose
  119.     end
  120.     @rain_bitmap.dispose
  121.     @storm_bitmap.dispose
  122.     @snow_bitmap.dispose
  123.     dispose_title_graphic
  124.   end
  125.   
  126.   def weather_update
  127.     return if WEATHER == 0
  128.     for i in 1..MAXNUMBER
  129.       sprite = @sprites[i]
  130.       if sprite == nil
  131.         break
  132.       end
  133.       if WEATHER == 1
  134.         sprite.x -= 2
  135.         sprite.y += 16
  136.         sprite.opacity -= 8
  137.       end
  138.       if WEATHER == 2
  139.         sprite.x -= 8
  140.         sprite.y += 16
  141.         sprite.opacity -= 12
  142.       end
  143.       if WEATHER == 3
  144.         sprite.x -= 2
  145.         sprite.y += 8
  146.         sprite.opacity -= 8
  147.       end
  148.       if WEATHER == 4
  149.         sprite.x -= WEATHER_X
  150.         sprite.y += WEATHER_Y
  151.         sprite.opacity -= WEATHER_OPACITY
  152.       end
  153.       x = sprite.x - @ox
  154.       y = sprite.y - @oy
  155.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  156.         sprite.x = rand(RAND_X) + WIDTH + @ox
  157.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  158.         sprite.opacity = START_OPACITY
  159.       end
  160.     end
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● フレーム更新
  164.   #--------------------------------------------------------------------------
  165.   def update
  166.     super
  167.     @command_window.update
  168.     if Input.trigger?(Input::C)
  169.       case @command_window.index
  170.       when 0    # ニューゲーム
  171.         command_new_game
  172.       when 1    # コンティニュー
  173.         command_continue
  174.       when 2    # シャットダウン
  175.         command_shutdown
  176.       end
  177.     end
  178.     weather_update
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● データベースのロード
  182.   #--------------------------------------------------------------------------
  183.   def load_database
  184.     $data_actors        = load_data("Data/Actors.rvdata")
  185.     $data_classes       = load_data("Data/Classes.rvdata")
  186.     $data_skills        = load_data("Data/Skills.rvdata")
  187.     $data_items         = load_data("Data/Items.rvdata")
  188.     $data_weapons       = load_data("Data/Weapons.rvdata")
  189.     $data_armors        = load_data("Data/Armors.rvdata")
  190.     $data_enemies       = load_data("Data/Enemies.rvdata")
  191.     $data_troops        = load_data("Data/Troops.rvdata")
  192.     $data_states        = load_data("Data/States.rvdata")
  193.     $data_animations    = load_data("Data/Animations.rvdata")
  194.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  195.     $data_system        = load_data("Data/System.rvdata")
  196.     $data_areas         = load_data("Data/Areas.rvdata")
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 戦闘テスト用データベースのロード
  200.   #--------------------------------------------------------------------------
  201.   def load_bt_database
  202.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  203.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  204.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  205.     $data_items         = load_data("Data/BT_Items.rvdata")
  206.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  207.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  208.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  209.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  210.     $data_states        = load_data("Data/BT_States.rvdata")
  211.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  212.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  213.     $data_system        = load_data("Data/BT_System.rvdata")
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● 各種ゲームオブジェクトの作成
  217.   #--------------------------------------------------------------------------
  218.   def create_game_objects
  219.     $game_temp          = Game_Temp.new
  220.     $game_message       = Game_Message.new
  221.     $game_system        = Game_System.new
  222.     $game_switches      = Game_Switches.new
  223.     $game_variables     = Game_Variables.new
  224.     $game_self_switches = Game_SelfSwitches.new
  225.     $game_actors        = Game_Actors.new
  226.     $game_party         = Game_Party.new
  227.     $game_troop         = Game_Troop.new
  228.     $game_map           = Game_Map.new
  229.     $game_player        = Game_Player.new
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● コンティニュー有効判定
  233.   #--------------------------------------------------------------------------
  234.   def check_continue
  235.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● タイトルグラフィックの作成
  239.   #--------------------------------------------------------------------------
  240.   def create_title_graphic
  241.     @sprite = Sprite.new
  242.     @sprite.bitmap = Cache.system("Title")
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● タイトルグラフィックの解放
  246.   #--------------------------------------------------------------------------
  247.   def dispose_title_graphic
  248.     @sprite.bitmap.dispose
  249.     @sprite.dispose
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● コマンドウィンドウの作成
  253.   #--------------------------------------------------------------------------
  254.   def create_command_window
  255.     s1 = Vocab::new_game
  256.     s2 = Vocab::continue
  257.     s3 = Vocab::shutdown
  258.     @command_window = Window_Command.new(172, [s1, s2, s3])
  259.     @command_window.x = (544 - @command_window.width) / 2
  260.     @command_window.y = 288
  261.     if @continue_enabled                    # コンティニューが有効な場合
  262.       @command_window.index = 1             # カーソルを合わせる
  263.     else                                    # 無効な場合
  264.       @command_window.draw_item(1, false)   # コマンドを半透明表示にする
  265.     end
  266.     @command_window.openness = 0
  267.     @command_window.open
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ● コマンドウィンドウの解放
  271.   #--------------------------------------------------------------------------
  272.   def dispose_command_window
  273.     @command_window.dispose
  274.   end
  275.   #--------------------------------------------------------------------------
  276.   # ● コマンドウィンドウを開く
  277.   #--------------------------------------------------------------------------
  278.   def open_command_window
  279.     @command_window.open
  280.     begin
  281.       @command_window.update
  282.       Graphics.update
  283.     end until @command_window.openness == 255
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● コマンドウィンドウを閉じる
  287.   #--------------------------------------------------------------------------
  288.   def close_command_window
  289.     @command_window.close
  290.     begin
  291.       @command_window.update
  292.       Graphics.update
  293.     end until @command_window.openness == 0
  294.   end
  295.   #--------------------------------------------------------------------------
  296.   # ● タイトル画面の音楽演奏
  297.   #--------------------------------------------------------------------------
  298.   def play_title_music
  299.     $data_system.title_bgm.play
  300.     RPG::BGS.stop
  301.     RPG::ME.stop
  302.   end
  303.   #--------------------------------------------------------------------------
  304.   # ● プレイヤーの初期位置存在チェック
  305.   #--------------------------------------------------------------------------
  306.   def confirm_player_location
  307.     if $data_system.start_map_id == 0
  308.       print "プレイヤーの初期位置が設定されていません。"
  309.       exit
  310.     end
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ● コマンド : ニューゲーム
  314.   #--------------------------------------------------------------------------
  315.   def command_new_game
  316.     confirm_player_location
  317.     Sound.play_decision
  318.     $game_party.setup_starting_members            # 初期パーティ
  319.     $game_map.setup($data_system.start_map_id)    # 初期位置のマップ
  320.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  321.     $game_player.refresh
  322.     $scene = Scene_Map.new
  323.     RPG::BGM.fade(1500)
  324.     close_command_window
  325.     Graphics.fadeout(60)
  326.     Graphics.wait(40)
  327.     Graphics.frame_count = 0
  328.     RPG::BGM.stop
  329.     $game_map.autoplay
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # ● コマンド : コンティニュー
  333.   #--------------------------------------------------------------------------
  334.   def command_continue
  335.     if @continue_enabled
  336.       Sound.play_decision
  337.       $scene = Scene_File.new(false, true, false)
  338.     else
  339.       Sound.play_buzzer
  340.     end
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # ● コマンド : シャットダウン
  344.   #--------------------------------------------------------------------------
  345.   def command_shutdown
  346.     Sound.play_decision
  347.     RPG::BGM.fade(800)
  348.     RPG::BGS.fade(800)
  349.     RPG::ME.fade(800)
  350.     $scene = nil
  351.   end
  352.   #--------------------------------------------------------------------------
  353.   # ● 戦闘テスト
  354.   #--------------------------------------------------------------------------
  355.   def battle_test
  356.     load_bt_database                  # 戦闘テスト用データベースをロード
  357.     create_game_objects               # ゲームオブジェクトを作成
  358.     Graphics.frame_count = 0          # プレイ時間を初期化
  359.     $game_party.setup_battle_test_members
  360.     $game_troop.setup($data_system.test_troop_id)
  361.     $game_troop.can_escape = true
  362.     $game_system.battle_bgm.play
  363.     snapshot_for_background
  364.     $scene = Scene_Battle.new
  365.   end
  366. end


  367. #==============================================================================
  368. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  369. #==============================================================================


复制代码



脚本20  调节当前音乐的响度和节奏
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #调节当前音乐的响度和节奏  作者:superufo
  5. #使用方法:
  6. #调节响度:bgm/bgs_volume(响度) 其中响度为1-100间的整数
  7. #调节节奏:bgm/bgs_pitch(节奏) 其中节奏为1-100间的整数
  8. #调节只会作用于当前音乐
  9. #如有问题请通过胃转告我
  10. class Game_Interpreter
  11.   def bgm_volume(volume)
  12.     bgm = RPG::BGM.last
  13.     Audio.bgm_play("Audio/BGM/" + bgm.name,volume ,bgm.pitch) unless bgm.name.empty?
  14.   end
  15.   def bgs_volume(volume)
  16.     bgs = RPG::BGS.last
  17.     Audio.bgs_play("Audio/BGS/" + bgs.name,volume ,bgs.pitch) unless bgs.name.empty?
  18.   end
  19.   def bgm_pitch(pitch)
  20.     bgm = RPG::BGM.last
  21.     Audio.bgm_play("Audio/BGM/" + bgm.name,bgm.volume ,pitch) unless bgm.name.empty?
  22.   end
  23.   def bgs_pitch(pitch)
  24.     bgs = RPG::BGS.last
  25.     Audio.bgs_play("Audio/BGS/" + bgs.name,bgs.volume ,pitch) unless bgs.name.empty?
  26.   end
  27. end

  28. #==============================================================================
  29. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  30. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
18
发表于 2008-3-23 19:12:45 | 只看该作者
脚本20 游戏窗口中显示金钱
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #显示金钱 by 小夏
  5. #经superufo的帮助一个脚本菜鸟做的不太完美将就着用吧
  6. class Window_goldWindow < Window_Base
  7. def initialize
  8. super(0,0,200,60)
  9. self.opacity = 150
  10. self.visible = false
  11. refresh
  12. end
  13. def refresh
  14. self.contents.clear
  15. self.contents.draw_text(0, 0, 80, WLH, "金钱:")
  16. self.contents.draw_text(80, 0, 40, WLH, $game_party.gold)
  17. self.contents.draw_text(100,0, 40, WLH, Vocab::gold, 2)
  18. end
  19. end
  20. class Scene_Map < Scene_Base
  21. alias goldWindow_start start
  22. alias goldWindow_update
  23. update
  24. alias goldWindow_terminate terminate
  25. def start
  26. goldWindow_start
  27. @goldWindow = Window_goldWindow.new
  28. end
  29. def update
  30. @goldWindow.update
  31. @goldWindow.refresh
  32. @goldWindow.visible = true
  33. goldWindow_update
  34. end
  35. def terminate
  36. goldWindow_terminate
  37. @goldWindow.dispose
  38. end
  39. end
  40. #小夏作品
  41. #转载者注明这个是superufo和小夏的作品谢谢合作

  42. #==============================================================================
  43. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  44. #==============================================================================

复制代码


脚本21  用中文顯示數值
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. class Window_Base < Window
  5.   #===========================================================
  6.   # 获取中文数字
  7.   # 除了10、100、1000、10000会返回其中文之外
  8.   # 只会取其参数的個位數
  9.   #===========================================================
  10.   def number(num)
  11.     ch_number = ["零", "一", "二", "三", "四",
  12.                  "五", "六", "七", "八", "九",
  13.                  "十", "百", "千", "万"]
  14.     if num == 100
  15.       return ch_number[11]
  16.     elsif num == 1000
  17.       return ch_number[12]
  18.     elsif num == 10000
  19.       return ch_number[13]
  20.     elsif num == 10
  21.       return ch_number[10]
  22.     else
  23.       return ch_number[num%10]
  24.     end
  25.   end
  26.   
  27.   # 显示中文数字
  28.   def change_to_ch(num)
  29.     if num < 0
  30.       rnum = "负 "
  31.     else
  32.       rnum = ""
  33.     end
  34.     num = num.abs

  35.     if num <= 10
  36.       return rnum+number(num)
  37.     else
  38.       # 个
  39.       ones = number(num%10)
  40.       # 十
  41.       tens = number(num/10%10)# if num%100!=0
  42.       # 百
  43.       huns = number(num/100%10)# if num%1000!=0
  44.       # 千
  45.       thos = number(num/1000%10)
  46.       # 万
  47.       tths = number(num/10000%10)
  48.       # 十万
  49.       hths = number(num/100000%10)
  50.       # 百万
  51.       mils = number(num/1000000%10)
  52.       # 千万
  53.       tmis = number(num/10000000%10)
  54.       
  55.       # 数字小於100
  56.       if num < 100
  57.         if num%10==0
  58.           rnum += tens+number(10)
  59.         else
  60.           if num<20
  61.             rnum += number(10)+ones
  62.           else
  63.             rnum += tens+number(10)+ones
  64.           end
  65.         end
  66.       end
  67.       
  68.       # 数字100~999
  69.       if num<1000 and num>=100
  70.         if num%100==0
  71.           rnum += huns+number(100)
  72.         else
  73.           if tens != number(0)
  74.             rnum += huns+number(100)+tens+number(10)+ones
  75.           else
  76.             rnum += huns+number(100)+number(0)+ones
  77.           end
  78.         end
  79.       end
  80.       
  81.       # 数字1000~9999
  82.       if num<10000 and num>=1000
  83.         if num%1000==0
  84.           rnum += thos+number(1000)
  85.         else
  86.           if huns != number(0)
  87.             if tens != number(0)
  88.               rnum += thos+number(1000)+huns+number(100)+tens+number(10)+ones
  89.             else
  90.               rnum += thos+number(1000)+huns+number(100)+tens+ones
  91.             end
  92.           else
  93.             rnum += thos+number(1000)+tens+ones
  94.           end
  95.         end
  96.       end
  97.       
  98.       # 数字10000~99999
  99.       if num>=10000
  100.         if num%10000==0
  101.           rnum += tths+number(10000)
  102.         else
  103.           if tths != number(0)
  104.             if thos != number(0)
  105.               if huns != number(0)
  106.                 if tens != number(0)
  107.                   rnum += tths+number(10000)+thos+number(1000)+
  108.                           huns+number(100)+tens+number(10)+ones
  109.                 else
  110.                   rnum += tths+number(10000)+thos+number(1000)+
  111.                           huns+number(100)+tens+ones
  112.                 end
  113.               else
  114.                 rnum += tths+number(10000)+thos+number(1000)+huns+ones
  115.               end
  116.             else
  117.               rnum += tths+number(10000)+thos+ones
  118.             end
  119.           else
  120.             rnum += number(10000)+number(0)+ones
  121.           end
  122.         end
  123.       
  124.         # 数字100000~999999
  125.         if num>=100000 and num<1000000
  126.           rnum = hths+number(10)+rnum
  127.         end
  128.       
  129.         # 数字1000000~9999999
  130.         if num>=1000000 and num<10000000
  131.           if hths != number(0)
  132.             rnum = mils + number(100) + hths+number(10)+rnum
  133.           else
  134.             rnum = mils + number(100) + number(0)+rnum
  135.           end
  136.         end
  137.         
  138.         # 数字10000000~99999999
  139.         if num>=10000000 and num<100000000
  140.           if mils != number(0)
  141.             if hths != number(0)
  142.               rnum = tmis + number(1000) + mils + number(100) +
  143.                      hths+number(10)+rnum
  144.             else
  145.               rnum = tmis + number(1000) + mils + number(100) +
  146.                      number(0)+rnum
  147.             end
  148.           else
  149.             rnum = tmis + number(1000) + number(0)+rnum
  150.           end
  151.         end
  152.       end
  153.       return rnum
  154.     end
  155.   end
  156.   
  157.   # 显示纯数字
  158.   def change_to_ch_pn(num)
  159.     if num < 0
  160.       rnum = "负 "
  161.     else
  162.       rnum = ""
  163.     end
  164.     num = num.abs

  165.     if num <= 10
  166.       return rnum+number(num)
  167.     else
  168.       # 个
  169.       ones = number(num%10)
  170.       # 十
  171.       tens = number(num/10%10)# if num%100!=0
  172.       # 百
  173.       huns = number(num/100%10)# if num%1000!=0
  174.       # 千
  175.       thos = number(num/1000%10)
  176.       # 万
  177.       tths = number(num/10000%10)
  178.       # 十万
  179.       hths = number(num/100000%10)
  180.       # 百万
  181.       mils = number(num/1000000%10)
  182.       # 千万
  183.       tmis = number(num/10000000%10)
  184.       
  185.       if num < 100
  186.         if num%10==0
  187.           rnum += tens+number(10)
  188.         else
  189.           if num<20
  190.             rnum += number(10)+ones
  191.           else
  192.             rnum += tens+ones
  193.           end
  194.         end
  195.       end
  196.       
  197.       if num<1000 and num>=100
  198.         if num%100==0
  199.           rnum += huns+number(100)
  200.         else
  201.           rnum += huns+tens+ones
  202.         end
  203.       end
  204.       
  205.       if num<10000 and num>=1000
  206.         if num%1000==0
  207.           rnum += thos+number(1000)
  208.         else
  209.           rnum += thos+huns+tens+ones
  210.         end
  211.       end
  212.       
  213.       if num<100000 and num>=10000
  214.         if num%10000==0
  215.           rnum += tths+number(10000)
  216.         else
  217.           rnum += tths+thos+huns+ones
  218.         end
  219.       end
  220.       
  221.       if num<1000000 and num>=100000
  222.         if num%100000==0
  223.           rnum += hths+number(10)+number(10000)
  224.         else
  225.           rnum += hths+tths+thos+huns+tens+ones
  226.         end
  227.       end
  228.       
  229.       if num<10000000 and num>=1000000
  230.         if num%1000000==0
  231.           rnum += mils+number(100)+number(10000)
  232.         else
  233.           rnum += mils+hths+tths+thos+huns+tens+ones
  234.         end
  235.       end

  236.       if num<100000000 and num>=10000000
  237.         if num%10000000==0
  238.           rnum += tmis+number(1000)+number(10000)
  239.         else
  240.           rnum += tmis+mils+hths+tths+thos+huns+tens+ones
  241.         end
  242.       end
  243.       return rnum
  244.     end
  245.   end
  246. end  
  247. #============================================================================
  248. #  函数重新定义
  249. #  显示微中文数字
  250. #============================================================================
  251. class Window_Base < Window
  252.   #--------------------------------------------------------------------------
  253.   # ● レベルの描画
  254.   #     actor : アクター
  255.   #     x     : 描画先 X 座標
  256.   #     y     : 描画先 Y 座標
  257.   #--------------------------------------------------------------------------
  258.   def draw_actor_level(actor, x, y)
  259.     self.contents.font.color = system_color
  260.     self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
  261.     self.contents.font.color = normal_color
  262.     clevel = change_to_ch(actor.level)
  263.     self.contents.draw_text(x + 32, y, 24, WLH, clevel, 2)
  264.   end
  265.   #--------------------------------------------------------------------------
  266.   # ● HP の描画
  267.   #     actor : アクター
  268.   #     x     : 描画先 X 座標
  269.   #     y     : 描画先 Y 座標
  270.   #     width : 幅
  271.   #--------------------------------------------------------------------------
  272.   def draw_actor_hp(actor, x, y, width = 120)
  273.     draw_actor_hp_gauge(actor, x, y, width)
  274.     self.contents.font.color = system_color
  275.     self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
  276.     self.contents.font.color = hp_color(actor)
  277.     xr = x + width
  278.     chp = change_to_ch_pn(actor.hp)
  279.     chpm= change_to_ch_pn(actor.maxhp)
  280.     if width < 120
  281.       self.contents.draw_text(xr - 40, y, 40, WLH, chp, 2)
  282.     else
  283.       self.contents.draw_text(xr - 90, y, 40, WLH, chp, 2)
  284.       self.contents.font.color = normal_color
  285.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  286.       self.contents.draw_text(xr - 40, y, 40, WLH, chpm, 2)
  287.     end
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● MP の描画
  291.   #     actor : アクター
  292.   #     x     : 描画先 X 座標
  293.   #     y     : 描画先 Y 座標
  294.   #     width : 幅
  295.   #--------------------------------------------------------------------------
  296.   def draw_actor_mp(actor, x, y, width = 120)
  297.     draw_actor_mp_gauge(actor, x, y, width)
  298.     self.contents.font.color = system_color
  299.     self.contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
  300.     self.contents.font.color = mp_color(actor)
  301.     xr = x + width
  302.     cmp = change_to_ch_pn(actor.mp)
  303.     cmpm= change_to_ch_pn(actor.maxmp)
  304.     if width < 120
  305.       self.contents.draw_text(xr - 40, y, 40, WLH, cmp, 2)
  306.     else
  307.       self.contents.draw_text(xr - 90, y, 40, WLH, cmp, 2)
  308.       self.contents.font.color = normal_color
  309.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  310.       self.contents.draw_text(xr - 40, y, 40, WLH, cmpm, 2)
  311.     end
  312.   end
  313.   #--------------------------------------------------------------------------
  314.   # ● 能力値の描画
  315.   #     actor : アクター
  316.   #     x     : 描画先 X 座標
  317.   #     y     : 描画先 Y 座標
  318.   #     type  : 能力値の種類 (0~3)
  319.   #--------------------------------------------------------------------------
  320.   def draw_actor_parameter(actor, x, y, type)
  321.     case type
  322.     when 0
  323.       parameter_name = Vocab::atk
  324.       parameter_value = actor.atk
  325.     when 1
  326.       parameter_name = Vocab::def
  327.       parameter_value = actor.def
  328.     when 2
  329.       parameter_name = Vocab::spi
  330.       parameter_value = actor.spi
  331.     when 3
  332.       parameter_name = Vocab::agi
  333.       parameter_value = actor.agi
  334.     end
  335.     self.contents.font.color = system_color
  336.    
  337.     cparam = change_to_ch_pn(parameter_value)
  338.     width = self.contents.text_size(cparam).width
  339.    
  340.     self.contents.draw_text(x, y, 120, WLH, parameter_name)
  341.     self.contents.font.color = normal_color
  342.     self.contents.draw_text(x+120, y, width, WLH, cparam, 0)
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ● 通貨単位つきの数値描画
  346.   #     value : 数値 (所持金など)
  347.   #     x     : 描画先 X 座標
  348.   #     y     : 描画先 Y 座標
  349.   #     width : 幅
  350.   #--------------------------------------------------------------------------
  351.   def draw_currency_value(value, x, y, width)
  352.     cx = contents.text_size(Vocab::gold).width
  353.     self.contents.font.color = normal_color
  354.     vgold = change_to_ch(value)
  355.     self.contents.draw_text(x, y, width-cx-2, WLH, vgold, 2)
  356.     self.contents.font.color = system_color
  357.     self.contents.draw_text(x, y, width, WLH, Vocab::gold, 2)
  358.   end
  359.    
  360. end  
  361. class Window_Status < Window_Base
  362.   #--------------------------------------------------------------------------
  363.   # ● 経験値情報の描画
  364.   #     x : 描画先 X 座標
  365.   #     y : 描画先 Y 座標
  366.   #--------------------------------------------------------------------------
  367.   def draw_exp_info(x, y)
  368.     s1 = change_to_ch_pn(@actor.exp_s)
  369.     s2 = change_to_ch_pn(@actor.next_rest_exp_s)
  370.     s_next = sprintf(Vocab::ExpNext, Vocab::level)
  371.     self.contents.font.color = system_color
  372.     self.contents.draw_text(x, y + WLH * 0, 180, WLH, Vocab::ExpTotal)
  373.     self.contents.draw_text(x, y + WLH * 2, 180, WLH, s_next)
  374.     self.contents.font.color = normal_color
  375.     self.contents.draw_text(x, y + WLH * 1, 180, WLH, s1, 2)
  376.     self.contents.draw_text(x, y + WLH * 3, 180, WLH, s2, 2)
  377.   end
  378. end  
  379. class Window_EquipStatus < Window_Base  
  380.   #--------------------------------------------------------------------------
  381.   # ● 能力値の描画
  382.   #     x    : 描画先 X 座標
  383.   #     y    : 描画先 Y 座標
  384.   #     type : 能力値の種類 (0~3)
  385.   #--------------------------------------------------------------------------
  386.   def draw_parameter(x, y, type)
  387.     case type
  388.     when 0
  389.       name = Vocab::atk
  390.       value = @actor.atk
  391.       new_value = @new_atk
  392.     when 1
  393.       name = Vocab::def
  394.       value = @actor.def
  395.       new_value = @new_def
  396.     when 2
  397.       name = Vocab::spi
  398.       value = @actor.spi
  399.       new_value = @new_spi
  400.     when 3
  401.       name = Vocab::agi
  402.       value = @actor.agi
  403.       new_value = @new_agi
  404.     end
  405.     cv = change_to_ch_pn(value)
  406.     self.contents.font.color = system_color
  407.     self.contents.draw_text(x + 4, y, 80, WLH, name)
  408.     self.contents.font.color = normal_color
  409.     self.contents.draw_text(x + 90, y, 30, WLH, cv, 2)
  410.     self.contents.font.color = system_color
  411.     self.contents.draw_text(x + 122, y, 20, WLH, "→", 1)
  412.     if new_value != nil
  413.       ncv = change_to_ch_pn(new_value)
  414.       self.contents.font.color = new_parameter_color(cv, ncv)
  415.       self.contents.draw_text(x + 142, y, 30, WLH, ncv, 2)
  416.     end
  417.   end
  418. end

  419. #==============================================================================
  420. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  421. #==============================================================================

复制代码
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

喵,小柯的宠物

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2310
19
发表于 2008-3-23 19:14:08 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
20
发表于 2008-3-23 19:14:33 | 只看该作者
脚本22  地图名显示脚本
  1. ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ 地图名显示脚本
  6. #     by Yuee
  7. #------------------------------------------------------------------------------
  8. # 在Main的上方插入一个页,将本脚本复制到那页中即可
  9. #==============================================================================

  10. #==============================================================================
  11. # ■ Window_MapName
  12. #------------------------------------------------------------------------------
  13. #  显示地图名字的窗口。
  14. #==============================================================================

  15. class Window_MapName < Window_Base
  16.   #--------------------------------------------------------------------------
  17.   # ● 类常量定义
  18.   #--------------------------------------------------------------------------

  19.   # 暂时屏蔽用的开关
  20.   SWITCH = 6
  21.   
  22.   # 窗口位置设定
  23.   NAME_X = 544-220      # 矩形左上顶点X坐标
  24.   NAME_Y = 0       # 矩形左上顶点Y坐标
  25.   NAME_W = 220      # 矩形宽
  26.   NAME_H = 60       # 矩形高
  27.    
  28.   # 显示时间设置
  29.   SHOW_TIME_0 = 10  # 地图名出现前等待的帧数
  30.   SHOW_TIME_1 = 10  # 地图名从不可见变成可见的帧数
  31.   SHOW_TIME_2 = 34  # 地图名完全可见的帧数
  32.   SHOW_TIME_3 = 16  # 地图名从可见变成不可见的帧数
  33.   
  34.   # 完全可见时的透明度设置
  35.   OPACITY_1 = 244   # 边框
  36.   OPACITY_2 = 100   # 背景
  37.   OPACITY_3 = 255   # 文字
  38.   
  39.   # 地图名字的颜色
  40.   TEXT_COLOR = Color.new(255, 255, 255, 255)
  41.    
  42.   #--------------------------------------------------------------------------
  43.   # ● 初始化状态
  44.   #--------------------------------------------------------------------------
  45.   def initialize
  46.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  47.     # 初始化窗口透明度
  48.     self.opacity = 0
  49.     self.back_opacity = 0
  50.     self.z = 9999
  51.     self.contents_opacity = 0
  52.     self.contents = Bitmap.new(width - 32, height - 32)
  53.     # 剩余帧数初始化
  54.     @show_time = 0
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 输出文字
  58.   #--------------------------------------------------------------------------
  59.   def setname
  60.     if $game_switches[SWITCH]
  61.       # 获取地图ID
  62.       newid = $game_map.map_id
  63.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  64.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  65.       if newid != @id
  66.         @id = newid
  67.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  68.       # 剩余帧数为0是时,全部窗口透明
  69.       elsif @show_time < 1
  70.         self.opacity = 0
  71.         self.back_opacity = 0
  72.         self.contents_opacity = 0
  73.         return
  74.       end      
  75.       self.contents.clear
  76.       self.contents.font.color = TEXT_COLOR
  77.       # 描绘地图名
  78.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
  79.       # 根本帧数设定窗口透明度
  80.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  81.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  82.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  83.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  84.       else
  85.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  86.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  87.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  88.       end
  89.       @show_time -= 1
  90.       $game_switches[SWITCH] = false if @show_time < 0
  91.     end
  92.   end
  93. end

  94. #==============================================================================
  95. # ■ Scene_Map
  96. #------------------------------------------------------------------------------
  97. #  处理地图画面的类。(追加定义)
  98. #==============================================================================

  99. class Scene_Map
  100.   alias smn_start start
  101.   def start
  102.     @mapname = Window_MapName.new
  103.     smn_start
  104.   end
  105.   
  106.   alias smn_dispose terminate
  107.   def terminate
  108.     smn_dispose
  109.     @mapname.dispose
  110.   end
  111.   
  112.   alias smn_update update
  113.   def update
  114.     smn_update
  115.     @mapname.setname
  116.   end
  117. end

  118. #==============================================================================
  119. # ■ Scene_Title
  120. #------------------------------------------------------------------------------
  121. #  处理标题画面的类。(追加定义)
  122. #==============================================================================

  123. class Scene_Title
  124.   alias smn_load load_database
  125.   def load_database
  126.     # 读取地图信息文件
  127.     $data_mapinfos = load_data("Data/MapInfos.rvdata")
  128.     smn_load
  129.   end
  130. end

  131. #==============================================================================
  132. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  133. #==============================================================================

复制代码


脚本23 RMVX版图片标题菜单
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Scene_Title
  6. #------------------------------------------------------------------------------
  7. #  タイトル画面の処理を行うクラスです。
  8. #==============================================================================

  9. class Scene_Title < Scene_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● メイン処理
  12.   #--------------------------------------------------------------------------
  13.   def main
  14.     if $BTEST                         # 戦闘テストの場合
  15.       battle_test                     # 戦闘テストの開始処理
  16.     else                              # 通常のプレイの場合
  17.       super                           # 本来のメイン処理
  18.     end
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 開始処理
  22.   #--------------------------------------------------------------------------
  23.   def start
  24.     super
  25.     load_database                     # データベースをロード
  26.     create_game_objects               # ゲームオブジェクトを作成
  27.     check_continue                    # コンティニュー有効判定
  28.     create_title_graphic              # タイトルグラフィックを作成
  29.     #create_command_window             # コマンドウィンドウを作成
  30.     new_command
  31.     play_title_music                  # タイトル画面の音楽を演奏
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● トランジション実行
  35.   #--------------------------------------------------------------------------
  36.   def perform_transition
  37.     Graphics.transition(20)
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 開始後処理
  41.   #--------------------------------------------------------------------------
  42.   def post_start
  43.     super
  44.     #open_command_window
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 終了前処理
  48.   #--------------------------------------------------------------------------
  49.   def pre_terminate
  50.     super
  51.    
  52.     #close_command_window
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 終了処理
  56.   #--------------------------------------------------------------------------
  57.   def terminate
  58.     super
  59.     #dispose_command_window
  60.     snapshot_for_background
  61.     dispose_title_graphic
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● フレーム更新
  65.   #--------------------------------------------------------------------------
  66.   def update
  67.     super
  68.     #@command_window.update
  69.     new_inputupdate
  70.     if Input.trigger?(Input::C)
  71.       case @command_index
  72.       when 0    # ニューゲーム
  73.         command_new_game
  74.       when 1    # コンティニュー
  75.         command_continue
  76.       when 2    # シャットダウン
  77.         command_shutdown
  78.       end
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● データベースのロード
  83.   #--------------------------------------------------------------------------
  84.   def load_database
  85.     $data_actors        = load_data("Data/Actors.rvdata")
  86.     $data_classes       = load_data("Data/Classes.rvdata")
  87.     $data_skills        = load_data("Data/Skills.rvdata")
  88.     $data_items         = load_data("Data/Items.rvdata")
  89.     $data_weapons       = load_data("Data/Weapons.rvdata")
  90.     $data_armors        = load_data("Data/Armors.rvdata")
  91.     $data_enemies       = load_data("Data/Enemies.rvdata")
  92.     $data_troops        = load_data("Data/Troops.rvdata")
  93.     $data_states        = load_data("Data/States.rvdata")
  94.     $data_animations    = load_data("Data/Animations.rvdata")
  95.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  96.     $data_system        = load_data("Data/System.rvdata")
  97.     $data_areas         = load_data("Data/Areas.rvdata")
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 戦闘テスト用データベースのロード
  101.   #--------------------------------------------------------------------------
  102.   def load_bt_database
  103.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  104.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  105.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  106.     $data_items         = load_data("Data/BT_Items.rvdata")
  107.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  108.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  109.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  110.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  111.     $data_states        = load_data("Data/BT_States.rvdata")
  112.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  113.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  114.     $data_system        = load_data("Data/BT_System.rvdata")
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 各種ゲームオブジェクトの作成
  118.   #--------------------------------------------------------------------------
  119.   def create_game_objects
  120.     $game_temp          = Game_Temp.new
  121.     $game_message       = Game_Message.new
  122.     $game_system        = Game_System.new
  123.     $game_switches      = Game_Switches.new
  124.     $game_variables     = Game_Variables.new
  125.     $game_self_switches = Game_SelfSwitches.new
  126.     $game_actors        = Game_Actors.new
  127.     $game_party         = Game_Party.new
  128.     $game_troop         = Game_Troop.new
  129.     $game_map           = Game_Map.new
  130.     $game_player        = Game_Player.new
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● コンティニュー有効判定
  134.   #--------------------------------------------------------------------------
  135.   def check_continue
  136.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● タイトルグラフィックの作成
  140.   #--------------------------------------------------------------------------
  141.   def create_title_graphic
  142.     @sprite_1 = Sprite.new
  143.     @sprite_1.bitmap = Cache.system("Title")
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● タイトルグラフィックの解放
  147.   #--------------------------------------------------------------------------
  148.   def dispose_title_graphic
  149.     @sprite_1.bitmap.dispose
  150.     @sprite_1.dispose
  151.     for i in 0..5
  152.       @sprite[i].bitmap.dispose
  153.       @sprite[i].dispose
  154.     end  
  155.   end
  156.      #--------------------------------------------------------------------------
  157.   # ● タイトル画面の音楽演奏
  158.   #--------------------------------------------------------------------------
  159.   def play_title_music
  160.     $data_system.title_bgm.play
  161.     RPG::BGS.stop
  162.     RPG::ME.stop
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● プレイヤーの初期位置存在チェック
  166.   #--------------------------------------------------------------------------
  167.   def confirm_player_location
  168.     if $data_system.start_map_id == 0
  169.       print "プレイヤーの初期位置が設定されていません。"
  170.       exit
  171.     end
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● コマンド : ニューゲーム
  175.   #--------------------------------------------------------------------------
  176.   def command_new_game
  177.     confirm_player_location
  178.     Sound.play_decision
  179.     $game_party.setup_starting_members            # 初期パーティ
  180.     $game_map.setup($data_system.start_map_id)    # 初期位置のマップ
  181.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  182.     $game_player.refresh
  183.     $scene = Scene_Map.new
  184.     RPG::BGM.fade(1500)
  185.     #close_command_window
  186.     Graphics.fadeout(60)
  187.     Graphics.wait(40)
  188.     Graphics.frame_count = 0
  189.     RPG::BGM.stop
  190.     $game_map.autoplay
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● コマンド : コンティニュー
  194.   #--------------------------------------------------------------------------
  195.   def command_continue
  196.     if @continue_enabled
  197.       Sound.play_decision
  198.       $scene = Scene_File.new(false, true, false)
  199.     else
  200.       Sound.play_buzzer
  201.     end
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ● コマンド : シャットダウン
  205.   #--------------------------------------------------------------------------
  206.   def command_shutdown
  207.     Sound.play_decision
  208.     RPG::BGM.fade(800)
  209.     RPG::BGS.fade(800)
  210.     RPG::ME.fade(800)
  211.     $scene = nil
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● 戦闘テスト
  215.   #--------------------------------------------------------------------------
  216.   def battle_test
  217.     load_bt_database                  # 戦闘テスト用データベースをロード
  218.     create_game_objects               # ゲームオブジェクトを作成
  219.     Graphics.frame_count = 0          # プレイ時間を初期化
  220.     $game_party.setup_battle_test_members
  221.     $game_troop.setup($data_system.test_troop_id)
  222.     $game_troop.can_escape = true
  223.     $game_system.battle_bgm.play
  224.     snapshot_for_background
  225.     $scene = Scene_Battle.new
  226.   end
  227.   #=========================================================================
  228.   #★定义新的标题选择菜单
  229.   #=========================================================================
  230.   
  231.   def new_command
  232.   @sprite = [Sprite.new]
  233.   for i in 0..5
  234.     @sprite[i]= Sprite.new
  235.     @sprite[i].opacity = 0
  236.     @sprite[i].x = 225
  237.     @sprite[i].y = 280+i/2*45-(i)%2*10
  238.     end
  239.     @sprite[0].bitmap = Bitmap.new("Graphics/Pictures/start_1")
  240.     @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/start_2")
  241.     @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/continue_1")
  242.     @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/continue_2")
  243.     @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/exit_1")
  244.     @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/exit_2")
  245.     @command_index = 0
  246.      if @continue_enabled
  247.        @command_index=1
  248.      else
  249.        @sprite[2].tone = Tone.new(0,0,0,255)
  250.        @sprite[3].tone = Tone.new(0,0,0,255)
  251.      end  
  252.   
  253.   end
  254. #==========================================================================
  255. #★new_iputupdate
  256. #==========================================================================
  257.   def new_inputupdate
  258.     if Input.trigger?(Input::UP)
  259.       
  260.       @command_index -= 1
  261.       if @command_index < 0
  262.         @command_index = 2
  263.       end
  264.       $data_system.sounds[0].play
  265.     end
  266.     if Input.trigger?(Input::DOWN)
  267.       @command_index += 1
  268.       if @command_index > 2
  269.         @command_index = 0
  270.       end
  271.        $data_system.sounds[0].play
  272.     end
  273.     case @command_index
  274.     when 0
  275.       if @sprite[0].opacity >= 0
  276.         @sprite[0].opacity -= 30
  277.       end
  278.       if @sprite[1].opacity <= 240
  279.         @sprite[1].opacity += 30
  280.       end
  281.       if @sprite[2].opacity <= 210
  282.         @sprite[2].opacity += 30
  283.       end
  284.       if @sprite[3].opacity >= 0
  285.         @sprite[3].opacity -= 30
  286.       end
  287.       if @sprite[4].opacity <= 210
  288.         @sprite[4].opacity += 30
  289.       end
  290.       if @sprite[5].opacity >= 0
  291.         @sprite[5].opacity -= 30
  292.       end
  293.     when 1
  294.       if @sprite[0].opacity <= 210
  295.         @sprite[0].opacity += 30
  296.       end
  297.       if @sprite[1].opacity >= 0
  298.         @sprite[1].opacity -= 30
  299.       end
  300.       if @sprite[2].opacity >= 0
  301.         @sprite[2].opacity -= 30
  302.       end
  303.       if @sprite[3].opacity <= 240
  304.         @sprite[3].opacity += 30
  305.       end
  306.       if @sprite[4].opacity <= 210
  307.         @sprite[4].opacity += 30
  308.       end
  309.       if @sprite[5].opacity >= 0
  310.         @sprite[5].opacity -= 30
  311.       end
  312.     when 2
  313.       if @sprite[0].opacity <= 210
  314.         @sprite[0].opacity += 30
  315.       end
  316.       if @sprite[1].opacity >= 0
  317.         @sprite[1].opacity -= 30
  318.       end
  319.       if @sprite[2].opacity <= 210
  320.         @sprite[2].opacity += 30
  321.       end
  322.       if @sprite[3].opacity >= 0
  323.         @sprite[3].opacity -= 30
  324.       end
  325.       if @sprite[4].opacity >= 0
  326.         @sprite[4].opacity -= 30
  327.       end
  328.       if @sprite[5].opacity <= 240
  329.         @sprite[5].opacity += 30
  330.       end
  331.     end
  332.   end

  333. end

  334. #==============================================================================
  335. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  336. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 21:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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