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

Project1

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

[已经过期] 叶子的任务系统出错啊!急~·~~~~~~~~~~~!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
83 小时
注册时间
2013-1-13
帖子
36
跳转到指定楼层
1
 楼主| 发表于 2013-2-14 20:10:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
{:2_249:}
请大神教教我这个脚本小白啊!
求救!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby代码:
  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 snstar2006

  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 Scene_Task
  102.   # 这里设置任务内容翻页音效
  103.   CHANGE_PAGE_SE = "Audio/SE/Book"
  104. end

  105. class Game_Party
  106.   #--------------------------------------------------------------------------
  107.   # ● 设置任务资料
  108.   #--------------------------------------------------------------------------
  109.   def get_tasks_info
  110.     @tasks_info = []
  111.    
  112.    
  113.     名称 = "\\c[6]打开书本阅读"
  114.    
  115.     简介 = "\\c[2]主线任务

  116. \\c[3]任务目标:
  117. 打开书本阅读

  118. \\c[6]提示:
  119. \\c[0]打开书本阅读。"
  120.     @tasks_info[1] = Game_Task.new(名称, 简介)
  121.    
  122.    
  123.     名称 = "\\c[6]打开书本阅读\\i[63]"
  124.    
  125.     简介 = "\\c[2]主线任务【已完成】

  126. \\c[3]任务目标:
  127. 打开书本阅读
  128. \\c[6]提示:
  129. \\c[0]已经完成。

  130. 任务奖励:
  131. \\c[Hff0000]
  132. 奖励点:200金币"
  133.     @tasks_info[1] = Game_Task.new(名称, 简介)
  134. #===========================================================================
  135. @tasks_info=[]

  136. 名称 = "\\c[8]进入栗山村\\i[19]"
  137. 简介 = "\\c[3]主线任务
  138. \\c[12]树林前面好像有个村子,现在只有去那里了。

  139. \\c[3]任务目标:
  140.      进入栗山村。"
  141.      @tasks_info[2] = Game_Task.new(名称,简介)
  142. #============================================================
  143. @task_info=[]

  144. 名称 = "\\c[6]拜访村长的儿子和媳妇\\i[230]"
  145. 简介 = "\\c[4]主线任务
  146. \\c[12]村长:
  147.             欢迎来到栗山村,我是村长。你分别去拜访我的儿子和媳妇吧!
  148. \\c[6]任务目标:
  149.           ①、前往村长的家。
  150.           ②、与李松对话
  151.           ③、与大婶对话。
  152.     \\c[9]任务奖励:经验 50 铜钱*50"
  153. @tasks_info[3] = Game_Task.new(名称,简介)
  154. #===========================================================================
  155. @task_info=[]

  156. 名称 = "\\c[3]勇者的考验\\i[165]"
  157. 简介 = "\\c[6]主线任务
  158. \\c[1]任务目标:
  159.           ①、打败栗山村外的怪物
  160.           ②、与村长对话
  161.     \\c[2]任务奖励: 经验*100  铜钱*50"
  162. @tasks_info[4] = Game_Task.new(名称,简介)
  163. #===========================================================================
  164. @task_info=[]

  165. 名称 = "\\c[9]被抢走的玩具\\i[65]"
  166. 简介 = "\\c[5]支线任务
  167. \\c[5]弟弟的玩具好像被抢走了,去帮他从姐姐那拿回来吧!
  168. \\c[5]任务目标:
  169.         ①、夺回玩具
  170.         ②、与弟弟对话吧
  171. \\c[2]任务奖励:
  172.            经验*50   铜钱*60  初级经验果实*1"
  173. @tasks_info[5] = Game_Task.new(名称,简介)
  174. #============================================================================
  175. @tasks_info=[]

  176. 名称 = "\\c[5]初出茅庐\\i[2]"
  177. 简介 = "\\c[12]主线任务
  178. \\c[8]太弱是不行的,为了自己,试着变强吧!
  179. 任务奖励:
  180.      经验*200  铜钱*100  新手礼包Lv5*1"
  181.      @tasks_info[6] = Game_Task.new(名称,简介)
  182. #=============================================================================
  183.   end
  184. end
  185. #==============================================================================
  186. # ■ Interpreter
  187. #------------------------------------------------------------------------------
  188. #  执行事件命令的解释器。本类在 Game_System 类
  189. # 与 Game_Event 类的内部使用。
  190. #==============================================================================

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

  230. #==============================================================================
  231. # ■ Game_Party
  232. #------------------------------------------------------------------------------
  233. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  234. # 请参考 $game_party。
  235. #==============================================================================

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

  269. #==============================================================================
  270. # ■ Game_Task
  271. #------------------------------------------------------------------------------
  272. #  处理任务的类。包含任务的信息。
  273. #==============================================================================

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

  371. #==============================================================================
  372. # ■ Window_Task_Name
  373. #------------------------------------------------------------------------------
  374. #  任务名称显示窗口。
  375. #==============================================================================

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

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

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

  577. class Game_Party < Game_Unit
  578.   def item_no(n)
  579.     return item_number($data_items[n])
  580.   end
  581.   def weapon_no(n)
  582.     return item_number($data_weapons[n])
  583.   end
  584.   def armor_no(n)
  585.     return item_number($data_armors[n])
  586.   end
  587. end

  588. #==============================================================================
  589. # ■ Scene_Task
  590. #------------------------------------------------------------------------------
  591. #  处理任务画面的类。
  592. #==============================================================================

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

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

Lv1.梦旅人

梦石
0
星屑
75
在线时间
435 小时
注册时间
2012-7-31
帖子
796
2
发表于 2013-2-14 21:48:59 | 只看该作者
测试无误。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
83 小时
注册时间
2013-1-13
帖子
36
3
 楼主| 发表于 2013-2-14 21:57:26 | 只看该作者
我是把它放到菜单里面的,点那个任务,如果这是新游戏的话怎么弄也没有任务,继续游戏的话一点就报错!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 20:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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