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

Project1

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

[已经解决] 请教怎让做任务系统

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2012-9-23
帖子
30
跳转到指定楼层
1
发表于 2012-9-29 20:42:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是在游戏里有任务系统

点评

大家先回答吧。刚才是谁抱怨抢不到问题来着?多啦菌吗?[url=home.php?mod=space&username=fxwd]@fxwd[/url]  发表于 2012-9-29 20:44

Lv1.梦旅人

哆啦菌

梦石
0
星屑
46
在线时间
795 小时
注册时间
2010-7-24
帖子
3800
2
发表于 2012-9-29 20:46:24 | 只看该作者
这东西可以用事件做也可以用脚本做。
事件做的话很麻烦,如果你有兴趣可以加我QQ373745197,
脚本的话有一个很简答的现成脚本,在这里http://rpg.blue/thread-187918-1-1.html
或许对你有用另外感谢P叔。。。

点评

评分重了,我擦。  发表于 2012-9-29 21:11

评分

参与人数 1星屑 +88 收起 理由
咕噜 + 88 精品文章,手误撤销P叔的评分+4

查看全部评分

随便看看
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
377 小时
注册时间
2012-7-10
帖子
1283
3
发表于 2012-9-29 22:15:10 | 只看该作者
新手的话推荐叶子的任务系统
很简单操作
  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[2] = Game_Task.new(名称, 简介)

  134.    
  135.   end
  136. end
  137. #==============================================================================
  138. # ■ Interpreter
  139. #------------------------------------------------------------------------------
  140. #  执行事件命令的解释器。本类在 Game_System 类
  141. # 与 Game_Event 类的内部使用。
  142. #==============================================================================

  143. class Game_Interpreter
  144.   #--------------------------------------------------------------------------
  145.   # ● 接受任务
  146.   #--------------------------------------------------------------------------
  147.   def get_task(id)
  148.     task = $game_party.tasks_info[id]
  149.     return true if (task.nil? or $game_party.current_tasks.include?(task.id))
  150.     $game_party.current_tasks.unshift(task.id)
  151.     return true
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 获得全部任务
  155.   #--------------------------------------------------------------------------
  156.   def get_all_task
  157.     # 清空当前任务
  158.     $game_party.current_tasks.clear
  159.     for task in $game_party.tasks_info
  160.       next if task.nil?
  161.       $game_party.current_tasks.unshift(task.id)
  162.     end
  163.     return true
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 完成/放弃任务
  167.   #--------------------------------------------------------------------------
  168.   def finish_task(id)
  169.     task = $game_party.tasks_info[id]
  170.     return true if task.nil?
  171.     $game_party.current_tasks.delete(task.id)
  172.     return true
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 删除全部任务
  176.   #--------------------------------------------------------------------------
  177.   def finish_all_task
  178.     $game_party.current_tasks.clear
  179.     return true
  180.   end
  181. end

  182. #==============================================================================
  183. # ■ Game_Party
  184. #------------------------------------------------------------------------------
  185. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  186. # 请参考 $game_party。
  187. #==============================================================================

  188. class Game_Party
  189.   #--------------------------------------------------------------------------
  190.   # ● 定义实例变量
  191.   #--------------------------------------------------------------------------
  192.   attr_writer     :latest_task                  # 上次查看的任务
  193.   #--------------------------------------------------------------------------
  194.   # ● 取得任务资料
  195.   #--------------------------------------------------------------------------
  196.   def tasks_info
  197.     if @tasks_info.nil?
  198.       get_tasks_info
  199.     end
  200.     return @tasks_info
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 取得当前任务
  204.   #--------------------------------------------------------------------------
  205.   def current_tasks
  206.     if @current_tasks.nil?
  207.       @current_tasks = []
  208.     end
  209.     return @current_tasks
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 上次查看的任务
  213.   #--------------------------------------------------------------------------
  214.   def latest_task
  215.     if !current_tasks.include?(@latest_task)
  216.       @latest_task = current_tasks[0]
  217.     end
  218.     return @latest_task
  219.   end
  220. end

  221. #==============================================================================
  222. # ■ Game_Task
  223. #------------------------------------------------------------------------------
  224. #  处理任务的类。包含任务的信息。
  225. #==============================================================================

  226. class Game_Task
  227.   attr_accessor   :name                   # 名称
  228.   attr_accessor   :briefing               # 简介
  229.   def initialize(name, briefing)
  230.     @name = name
  231.     @briefing = briefing
  232.   end
  233.   def height
  234.     text = @briefing.clone
  235.     x = 0
  236.     y = 64
  237.     min_y = 0
  238.     # 限制文字处理
  239.     begin
  240.       last_text = text.clone
  241.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  242.     end until text == last_text
  243.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  244.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  245.     end
  246.     # 为了方便、将 "\\\\" 变换为 "\000"
  247.     text.gsub!(/\\\\/) { "\000" }
  248.     # "\C" 变为 "\001"
  249.     text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  250.     # "\I" 变为 "\002"
  251.     text.gsub!(/\\[Ii]/) { "\002" }
  252.     # "\P" 变为 "\003"
  253.     text.gsub!(/\\[Pp]/) { "\003" }
  254.     # c 获取 1 个字 (如果不能取得文字就循环)
  255.     while ((c = text.slice!(/./m)) != nil)
  256.       # \\ 的情况下
  257.       if c == "\000"
  258.         # 还原为本来的文字
  259.         c = "\\"
  260.       end
  261.       # \C[n] 的情况下
  262.       if c == "\001"
  263.         # 更改文字色
  264.         text.sub!(/\[([0-9a-zA-Z]+)\]/, "")
  265.         # 下面的文字
  266.         next
  267.       end
  268.       # 图标的情况下
  269.       if c == "\002"
  270.         icon_name = ''
  271.         while ((cha = text.slice!(/./m)) != ']')
  272.           next if cha == '['
  273.           icon_name += cha
  274.         end
  275.         if x + 24 > 368
  276.           x = 0
  277.           y += [24, min_y].max
  278.           min_y = 0
  279.         end
  280.         x += 28
  281.         next
  282.       end
  283.       # 图片的情况下
  284.       if c == "\003"
  285.         pic_name = ''
  286.         while ((cha = text.slice!(/./m)) != ']')
  287.           next if cha == '['
  288.           pic_name += cha
  289.         end
  290.         pic = Cache.picture(pic_name)
  291.         if x + pic.width > 368
  292.           x = 0
  293.           y += [24, min_y].max
  294.           min_y = 0
  295.         end
  296.         x += pic.width
  297.         min_y = [pic.height, 24].max
  298.         next
  299.       end
  300.       # 另起一行文字的情况下
  301.       if c == "\n"
  302.         y += [24, min_y].max
  303.         min_y = 0
  304.         x = 0
  305.         # 下面的文字
  306.         next
  307.       end
  308.       # 自动换行处理
  309.       if x + 22 > 368
  310.         y += [24, min_y].max
  311.         min_y = 0
  312.         x = 0
  313.       end
  314.       # x 为要描绘文字的加法运算
  315.       x += 22
  316.     end
  317.     return (y + [24, min_y].max)
  318.   end
  319.   def id
  320.     return $game_party.tasks_info.index(self)
  321.   end
  322. end

  323. #==============================================================================
  324. # ■ Window_Task_Name
  325. #------------------------------------------------------------------------------
  326. #  任务名称显示窗口。
  327. #==============================================================================

  328. class Window_Task_Name < Window_Selectable
  329.   #--------------------------------------------------------------------------
  330.   # ● 初始化对像
  331.   #--------------------------------------------------------------------------
  332.   def initialize(tasks)
  333.     super(0, 0, 204, 416)
  334.     @tasks = []
  335.     for id in tasks
  336.       @tasks.push($game_party.tasks_info[id])
  337.     end
  338.     @item_max = tasks.size
  339.     self.contents = Bitmap.new(
  340.     self.width - 32, @item_max == 0 ? 32 : @item_max * 32)
  341.     refresh
  342.     self.index = 0
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ● 刷新
  346.   #--------------------------------------------------------------------------
  347.   def refresh
  348.     self.contents.clear
  349.     if @tasks != []
  350.       for task in @tasks
  351.         draw_item(task)
  352.       end
  353.     else
  354.       draw_blank
  355.     end
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ● 描绘项目
  359.   #--------------------------------------------------------------------------
  360.   def draw_item(task)
  361.     text = task.name.clone
  362.     y = @tasks.index(task) * WLH
  363.     chenge_special_character(text, 0, y)
  364.   end
  365.   #--------------------------------------------------------------------------
  366.   # ● 描绘空行
  367.   #--------------------------------------------------------------------------
  368.   def draw_blank
  369.     self.contents.font.color = Color.new(255, 255, 255, 128)
  370.     rect = Rect.new(4, 0, self.contents.width - 8, 32)
  371.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  372.     self.contents.draw_text(rect, '无任何任务')
  373.   end
  374.   #--------------------------------------------------------------------------
  375.   # ● 获取任务
  376.   #--------------------------------------------------------------------------
  377.   def task
  378.     return @tasks[self.index]
  379.   end
  380. end
  381.   
  382. #==============================================================================
  383. # ■ Window_Task
  384. #------------------------------------------------------------------------------
  385. #  任务内容显示窗口。
  386. #==============================================================================

  387. class Window_Task < Window_Base
  388.   #--------------------------------------------------------------------------
  389.   # ● 初始化对像
  390.   #--------------------------------------------------------------------------
  391.   def initialize(task_id)
  392.     super(204, 0, 340, 416)
  393.     refresh(task_id)
  394.   end
  395.   #--------------------------------------------------------------------------
  396.   # ● 刷新内容
  397.   #--------------------------------------------------------------------------
  398.   def refresh(task_id)
  399.     self.oy = 0
  400.     self.visible = true
  401.     return if task_id.nil?
  402.     task = $game_party.tasks_info[task_id]
  403.     if !task.nil?
  404.       self.contents = Bitmap.new(self.width - 32, task.height)
  405.     else
  406.       self.contents = Bitmap.new(self.width - 32, self.height - 32)
  407.       return
  408.     end
  409.     self.contents.font.color = normal_color
  410.     # 描绘任务内容
  411.     draw_task_info(task)
  412.   end
  413.   #--------------------------------------------------------------------------
  414.   # ● 描绘任务内容
  415.   #--------------------------------------------------------------------------
  416.   def draw_task_info(task)
  417.     self.contents.font.color = normal_color
  418.     # 描绘任务简介
  419.     chenge_special_character(task.briefing.clone)
  420.   end
  421. end

  422. class Window_Base < Window
  423.   def chenge_special_character(text, x=0, y=0)
  424.     # 记录换行时y坐标最小加值
  425.     min_y = 0
  426.     # 限制文字处理
  427.     begin
  428.       last_text = text.clone
  429.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  430.     end until text == last_text
  431.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  432.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  433.     end
  434.     # 为了方便、将 "\\\\" 变换为 "\000"
  435.     text.gsub!(/\\\\/) { "\000" }
  436.     # "\C" 变为 "\001"
  437.     text.gsub!(/\\[Cc]\[([0-9a-zA-Z]+)\]/)  { "\001[#{$1}]" }
  438.     # "\I" 变为 "\002"
  439.     text.gsub!(/\\[Ii]/) { "\002" }
  440.     # "\P" 变为 "\003"
  441.     text.gsub!(/\\[Pp]/) { "\003" }
  442.     # c 获取 1 个字 (如果不能取得文字就循环)
  443.     while ((c = text.slice!(/./m)) != nil)
  444.       # \\ 的情况下
  445.       if c == "\000"
  446.         # 还原为本来的文字
  447.         c = "\\"
  448.       end
  449.       # \C[n] 的情況下
  450.       if c == "\001"
  451.         # 更改文字色
  452.         text.sub!(/\[([0-9a-zA-Z]+)\]/, "")
  453.         # 如果是设定RGB颜色
  454.         if $1[0,1]=="H"
  455.           # 先拷贝一下文字
  456.           c=$1.dup
  457.           # 分3段分别取出R,G,B颜色
  458.           c.sub!(/H([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})/, "")
  459.           # 设定文字颜色
  460.           self.contents.font.color = Color.new($1.to_i(16), $2.to_i(16), $3.to_i(16))
  461.         else
  462.           color = $1.to_i
  463.           if color >= 0 and color <= 31
  464.             self.contents.font.color = text_color(color)
  465.           elsif color == 32
  466.             self.contents.font.color = disabled_color
  467.           elsif color == 33
  468.             self.contents.font.color = system_color
  469.           end
  470.         end
  471.         # 下面的文字
  472.         next
  473.       end
  474.       # 图标的情况下
  475.       if c == "\002"
  476.         icon_name = ''
  477.         while ((cha = text.slice!(/./m)) != ']')
  478.           next if cha == '['
  479.           icon_name += cha
  480.         end
  481.         if x + 24 > self.contents.width
  482.           x = 0
  483.           y += [WLH, min_y].max
  484.           min_y = 0
  485.         end
  486.         draw_icon(icon_name.to_i, x+4, y+4, true)
  487.         x += 28
  488.         next
  489.       end
  490.       # 图片的情况下
  491.       if c == "\003"
  492.         pic_name = ''
  493.         while ((cha = text.slice!(/./m)) != ']')
  494.           next if cha == '['
  495.           pic_name += cha
  496.         end
  497.         pic = Cache.picture(pic_name)
  498.         if x + pic.width > self.contents.width
  499.           x = 0
  500.           y += [WLH, min_y].max
  501.           min_y = 0
  502.         end
  503.         self.contents.blt(x + 4, y, pic, Rect.new(0, 0, pic.width, pic.height))
  504.         x += pic.width
  505.         min_y = [pic.height, WLH].max
  506.         next
  507.       end
  508.       # 另起一行文字的情况下
  509.       if c == "\n"
  510.         y += [WLH, min_y].max
  511.         min_y = 0
  512.         x = 0
  513.         # 下面的文字
  514.         next
  515.       end
  516.       # 自动换行处理
  517.       if x + self.contents.text_size(c).width > self.contents.width
  518.         y += [WLH, min_y].max
  519.         min_y = 0
  520.         x = 0
  521.       end
  522.       # 描绘文字
  523.       self.contents.draw_text(4 + x, y, 40, WLH, c)
  524.       # x 为要描绘文字的加法运算
  525.       x += self.contents.text_size(c).width
  526.     end
  527.   end
  528. end

  529. class Game_Party < Game_Unit
  530.   def item_no(n)
  531.     return item_number($data_items[n])
  532.   end
  533.   def weapon_no(n)
  534.     return item_number($data_weapons[n])
  535.   end
  536.   def armor_no(n)
  537.     return item_number($data_armors[n])
  538.   end
  539. end

  540. #==============================================================================
  541. # ■ Scene_Task
  542. #------------------------------------------------------------------------------
  543. #  处理任务画面的类。
  544. #==============================================================================

  545. class Scene_Task < Scene_Base
  546.   def initialize(index=nil)
  547.     @menu_index = index
  548.   end
  549.   #--------------------------------------------------------------------------
  550.   # ● 主处理
  551.   #--------------------------------------------------------------------------
  552.   def start
  553.     # 刷新任务资料
  554.     $game_party.get_tasks_info
  555.     # 生成任务名称窗口
  556.     @task_names_window = Window_Task_Name.new($game_party.current_tasks)
  557.     @task_names_window.active = true
  558.     if $game_party.current_tasks != []
  559.       @task_names_window.index = $game_party.current_tasks.index($game_party.latest_task)
  560.     end
  561.     # 生成任务内容窗口
  562.     @task_info_window = Window_Task.new($game_party.latest_task)
  563.     @task_info_window.active = true
  564.   end

  565.   def terminate
  566.     # 释放窗口
  567.     @task_names_window.dispose
  568.     @task_info_window.dispose
  569.   end
  570.   #--------------------------------------------------------------------------
  571.   # ● 刷新画面
  572.   #--------------------------------------------------------------------------
  573.   def update
  574.     # 刷新窗口
  575.     @task_names_window.update
  576.     @task_info_window.update
  577.     update_task_names_window
  578.   end
  579.   #--------------------------------------------------------------------------
  580.   # ● 刷新任务名称窗口
  581.   #--------------------------------------------------------------------------
  582.   def update_task_names_window
  583.     # 按下 B 键的情况下
  584.     if Input.trigger?(Input::B)
  585.       # 演奏取消 SE
  586.       Sound.play_cancel
  587.       # 这里设置返回的场景,返回地图是Scene_Map.new,菜单是Scene_Menu.new(任务界面index)
  588.       if @menu_index == nil
  589.         $scene = Scene_Map.new
  590.       else
  591.         $scene = Scene_Menu.new(@menu_index)
  592.       end
  593.       return
  594.     end
  595.     # 按下 C 键的情况下
  596.     if Input.trigger?(Input::C)
  597.       # 无任务可显示的话
  598.       if @task_names_window.task == nil
  599.         # 演奏冻结 SE
  600.         Sound.play_buzzer
  601.         return
  602.       end
  603.       # 如果光标没有移动的话,翻页
  604.       if $game_party.latest_task == @task_names_window.task.id
  605.         if @task_info_window.oy + @task_info_window.height - 32 > @task_info_window.contents.height
  606.           @task_info_window.oy = 0
  607.         else
  608.           @task_info_window.oy += 480-32
  609.         end
  610.         
  611.       else
  612.         @task_info_window.refresh(@task_names_window.task.id)
  613.         $game_party.latest_task = @task_names_window.task.id
  614.         # 演奏确定 SE
  615.         Sound.play_decision
  616.       end
  617.     end
  618.   end
  619. end
复制代码

评分

参与人数 2星屑 +104 收起 理由
咕噜 + 100 精品文章
怪蜀黍 + 4 叶子的任务系统是好东西

查看全部评分

太久没有来6R了,都是新面孔啊。
帮忙宣传游戏ing,虽说不常上线。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2012-9-23
帖子
30
4
 楼主| 发表于 2012-9-30 12:27:02 | 只看该作者
歌莉·萌露 发表于 2012-9-29 22:15
新手的话推荐叶子的任务系统
很简单操作

为什么我用了脚本后,菜单里没有任务这一项?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
377 小时
注册时间
2012-7-10
帖子
1283
5
发表于 2012-9-30 12:40:34 | 只看该作者
vip54987 发表于 2012-9-30 12:27
为什么我用了脚本后,菜单里没有任务这一项?

需要在Scene_Menu修改一下
  1. #--------------------------------------------------------------------------
  2.   # * 創建命令視窗
  3.   #--------------------------------------------------------------------------
  4.   def create_command_window
  5.     s1 = Vocab::item
  6.     s2 = Vocab::skill
  7.     s3 = Vocab::equip
  8.     s4 = Vocab::status
  9.     s5 = Vocab::save
  10.     s6 = "升级加点"
  11.     s7 = "任务"
  12.     s8 = Vocab::game_end
  13.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,s7,s8])
  14.     @command_window.index = @menu_index
  15.     @command_window.opacity = 0
  16.     if $game_party.members.size == 0          # 如果無人在隊
  17.       @command_window.draw_item(0, false)     # 禁用[用品]
  18.       @command_window.draw_item(1, false)     # 禁用[技能]
  19.       @command_window.draw_item(2, false)     # 禁用[整備]
  20.       @command_window.draw_item(3, false)     # 禁用[狀態]
  21.     end
  22.     if $game_system.save_disabled             # 如果禁止存檔
  23.       @command_window.draw_item(4, false)     # 禁用[存檔]
  24.     end
  25.   end
复制代码
  1. #--------------------------------------------------------------------------
  2.   # * 更新指令選擇輸入資訊
  3.   #--------------------------------------------------------------------------
  4.   def update_command_selection
  5.     if Input.trigger?(Input::B)
  6.       Sound.play_cancel
  7.       $scene = Scene_Map.new
  8.     elsif Input.trigger?(Input::C)
  9.       if $game_party.members.size == 0 and @command_window.index < 4
  10.         Sound.play_buzzer
  11.         return
  12.       elsif $game_system.save_disabled and @command_window.index == 4
  13.         Sound.play_buzzer
  14.         return
  15.       end
  16.       Sound.play_decision
  17.       case @command_window.index
  18.       when 0      # 用品
  19.         $scene = Scene_Item.new
  20.       when 1,2,3  # 技能,整備,狀態
  21.         start_actor_selection
  22.       when 4      # 存檔        
  23.         $scene = Scene_File.new(true, false, false)
  24.         when 5 #加点
  25.       $scene = Scene_Lvup.new
  26.       when 6 #任务
  27.       $scene = Scene_Task.new(6)
  28.       when 7      # 結束遊戲
  29.         $scene = Scene_End.new
  30.       end
  31.     end
  32.   end
复制代码

点评

哦哦,这样啊抱歉粗心了  发表于 2012-9-30 12:47
请把when6(s6)改为when5(s5),如果人家没有加入升级加点呢  发表于 2012-9-30 12:46

评分

参与人数 1星屑 +100 梦石 +2 收起 理由
咕噜 + 100 + 2 认可答案 附赠66RPG提供的好人卡一张^ ^.

查看全部评分

太久没有来6R了,都是新面孔啊。
帮忙宣传游戏ing,虽说不常上线。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2012-9-23
帖子
30
6
 楼主| 发表于 2012-9-30 13:34:21 | 只看该作者
歌莉·萌露 发表于 2012-9-30 12:40
需要在Scene_Menu修改一下

我试过了,没有用

点评

确认是否把代码覆盖修改Scene_Menu里面,而不是新建脚本页插入Main前。  发表于 2012-9-30 13:56
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2012-9-23
帖子
30
7
 楼主| 发表于 2012-9-30 14:04:13 | 只看该作者
我是把代码覆盖Scene_Menu里面,有时它提示错误,有时没有用

点评

帮你召唤一下,以后擅用@:[url=home.php?mod=space&username=歌莉·萌露]@歌莉·萌露[/url]  发表于 2012-9-30 14:14
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2012-9-23
帖子
30
8
 楼主| 发表于 2012-9-30 18:28:54 | 只看该作者
@歌莉·萌露
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
377 小时
注册时间
2012-7-10
帖子
1283
9
发表于 2012-9-30 23:20:53 | 只看该作者
vip54987 发表于 2012-9-30 14:04
我是把代码覆盖Scene_Menu里面,有时它提示错误,有时没有用

没让你覆盖掉原脚本吧,我只给了思路而已。
按照LS的那样改就可以了

点评

的确是修改,但不是全覆盖。找到楼上代码的部分进行照例修改。  发表于 2012-9-30 23:27
太久没有来6R了,都是新面孔啊。
帮忙宣传游戏ing,虽说不常上线。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2012-9-23
帖子
30
10
 楼主| 发表于 2012-9-30 23:40:59 | 只看该作者
歌莉·萌露 发表于 2012-9-30 23:20
没让你覆盖掉原脚本吧,我只给了思路而已。
按照LS的那样改就可以了

现在有任务这一项了,但如果设置的是打怪的任务,那它怎么提交任务


‘‘──vip54987于2012-9-30 23:41补充以下内容:

[@]歌莉·萌露[/@]
’’

点评

D君已经帮助我回答了,照那方法弄就可以了  发表于 2012-10-2 22:06
接受任务召唤脚本get_task(id) 完成任务脚本finish_task(id),首先得设置任务信息。任务奖励可以使用事件。  发表于 2012-9-30 23:54
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 07:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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