Project1

标题: 【相隔1年多的更新][22.1.2015][v0.8】便民任务界面 [打印本页]

作者: 英顺的马甲    时间: 2011-2-15 11:34
标题: 【相隔1年多的更新][22.1.2015][v0.8】便民任务界面
本帖最后由 英顺的马甲 于 2015-1-22 21:56 编辑

2015年1月22日正式开坑:下次更新时此脚本将升格为任务系统

@Wait @Cache 防bug=w=

用注释设置使设置更加简单
  1. 更新日志:

  2.   v0.8
  3.     1.添加了自动换行功能
  4.     2.删除了垂直对齐功能(对已使用的人深感抱歉)
  5.     4.更改了文本的解析法
  6.     3.描绘内容与刷新同步(可较顺滑的在任务间切换)
  7.     4.修正一个没被发现的BUG
  8.    
  9.   v0.7
  10.     1.对脚本结构进行优化
  11.     2.更改数据结构(也就是说之前的存档再度全死)
  12.     3.缩短代码
  13.     4.加入自动记录并返回上个界面的功能
  14.     5.移除一个没用却一直忘了删掉的功能 =_=||
  15.     6.添加垂直对齐功能(很坑,请依情况使用)
  16.     7.添加把多行内容显示为一行的功能
  17.    
  18.   v坑爹(超坑爹!失败告终)
  19.     1.添加ERB支持(非常坑,已放弃)
  20.     2.添加任务系统(已暂停并删除,以后会继续)
  21.     3.拥有自己的数据库(很坑,已抛弃)
  22.    
  23.   v0.6
  24.     1.增加滚动功能
  25.     2.对脚本结构进行优化
  26.    
  27.   v0.5
  28.     1.改名为任务界面(总觉得这只是界面不是系统)
  29.     2.优化所有正则表达式的匹配模式
  30.     4.解决一个大BUG
  31.     5.更改数据结构(也就是说之前的存档全死)
  32.     6.增加“追加说明”的功能
  33.    
  34.   v0.4
  35.     1.优化代码
  36.     2.增加“任务更新”的功能
  37.    
  38.   v0.3
  39.     1.增加“放弃任务”的功能
  40.     2.解决一个未曾被发现的BUG
  41.     3.设置简单化
  42.     4.美化打勾
  43.     5.增加打叉
  44.    
  45.   v0.2
  46.     1.加强说明显示效果
  47.     2.去掉一些不必要的工作
复制代码
脚本:
RUBY 代码复制
  1. #==============================================================================#
  2. #                          便民任务界面 by EngShun                             #
  3. #                                                                              #
  4. #    由于此版本仅做出了一些小优化,                                            #
  5. #    因此设置方法请参考v0.7的范例                                              #
  6. #                                                                              #
  7. #    效果说明:                                                                #
  8. #    支持普通对话框效果                                                        #
  9. #    \a[号码]     :更改左右对齐方式(0,1,2)。                                 #
  10. #    \itm[物品id] :物品数量                                                    #
  11. #    \wpn[武器id] :武器数量                                                    #
  12. #    \amr[防具id] :防具数量                                                    #
  13. #    \eval{脚本}  :运行脚本                                                    #
  14. #    \1line{内容} :把多行的内容显示为一行                                      #
  15. #    \bold        :字体加粗,插入多一次关闭                                    #
  16. #    \italic      :字体打斜,插入多一次关闭                                    #
  17. #    \f[字体名称] :更改字体                                                    #
  18. #    \s[号码]     :更改字体大小                                                #
  19. #    \p[名称]     :插入图片                                                    #
  20. #    \icon[名称]  :插入图标                                                    #
  21. #                                                                              #
  22. #==============================================================================#
  23.  
  24. #===============================================================================
  25. # ■ 队伍
  26. #===============================================================================
  27. class Game_Party
  28.   Mission = Struct.new(:id, :name, :info, :status)
  29.   alias org_init_mission initialize if !defined?(org_init_mission)
  30.   #--------------------------------------------------------------------------
  31.   # ● 重定义初始化
  32.   #--------------------------------------------------------------------------
  33.   def initialize
  34.     @mission = {}
  35.     org_init_mission
  36.   end
  37.   def no_mission?
  38.     return @mission == {}
  39.   end
  40.   def missions
  41.     if no_mission?
  42.       m = Mission.new(0,"没有任务","\n\n\n\\a[1]\\s[32]你还没有领取任何任务",0)
  43.       return [m]
  44.     end
  45.     return @mission.values.sort_by {|m|m.id}
  46.   end
  47.   def get_mission(mission,info)
  48.     return if @mission.has_key?(mission)
  49.     id = missions[-1].id + 1
  50.     @mission[mission] = Mission.new(id,mission,info,0)
  51.   end
  52.   def done_mission(mission)
  53.     @mission[mission].status = 1 if @mission[mission].status == 0
  54.   end
  55.   def delete_mission(mission)
  56.     @mission.delete(mission)
  57.   end
  58.   def fail_mission(mission)
  59.     @mission[mission].status = 2 if @mission[mission].status == 0
  60.   end
  61.   def resume_mission(mission)
  62.     @mission[mission].status = 0 if @mission[mission].status == 2
  63.   end
  64.   def done_all_mission
  65.     @mission.each{|k,m|m.status = 1}
  66.   end
  67.   def update_mission(mission,info)
  68.     @mission[mission].info = info
  69.   end
  70.   def add_mission_info(mission,info)
  71.     @mission[mission].info += "\n" + info
  72.   end
  73.   def delete_all_mission
  74.     @mission = {}
  75.   end
  76.   def resume_all_mission
  77.     @mission.each{|k,m|m.status = 0 if m.status == 2}
  78.   end
  79. end
  80.  
  81. #===============================================================================
  82. # ■ 任务列表窗口
  83. #===============================================================================
  84. class Window_Mission < Window_Selectable
  85.   #--------------------------------------------------------------------------
  86.   # ● 初始化对象
  87.   #--------------------------------------------------------------------------
  88.   def initialize
  89.     super(0, 64, 200, 416)
  90.     self.index = 0
  91.     @mission = $game_party.missions
  92.     @item_max = @mission.size
  93.     if self.contents != nil
  94.       self.contents.dispose
  95.       self.contents = nil
  96.     end
  97.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  98.     for i in [email]0...@mission.size[/email]
  99.       t = @mission[i].status != 0
  100.       self.contents.font.color = t ? disabled_color : normal_color
  101.       text = @mission[i].name
  102.       self.contents.draw_text(4, i * 32, 160, 32, text.to_s)
  103.       self.contents.font.color = system_color
  104.       self.contents.draw_text(self.contents.width-32, i * 32, 32, 32, "□",1) unless $game_party.no_mission?
  105.       if @mission[i].status == 1
  106.         self.contents.font.color = crisis_color
  107.         self.contents.draw_text(self.contents.width-32, i * 32, 32, 32, "√",1)
  108.       elsif @mission[i].status == 2
  109.         self.contents.font.color = knockout_color
  110.         self.contents.draw_text(self.contents.width-32, i * 32, 32, 32, "×",1)
  111.       end
  112.     end
  113.   end
  114. end
  115.  
  116. #===============================================================================
  117. # ■ 任务详情窗口
  118. #===============================================================================
  119. class Window_MissionInfo < Window_Base
  120.   attr_accessor :wait
  121.   attr_accessor :scroll_up
  122.   #--------------------------------------------------------------------------
  123.   # ● 初始化对象
  124.   #--------------------------------------------------------------------------
  125.   def initialize
  126.     super(200,64,440,416)
  127.     self.contents =  Bitmap.new(408, 384)
  128.     @scroll_up = false
  129.     @wait = 90
  130.     @items = []
  131.     @progress = 0
  132.     @draw_y = 0
  133.     @align = 0
  134.     @cache = Bitmap.new(160,160)
  135.     @font = Font.new
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 刷新画面
  139.   #--------------------------------------------------------------------------
  140.   def update
  141.     super
  142.     parse_items if @items.size > 0
  143.     return if self.contents.height <= 384
  144.     return @wait -= 1 if @wait > 0
  145.     self.oy += @scroll_up ? -1 : 1
  146.     self.oy = 0 if self.oy < 0
  147.     self.oy = oy_max if self.oy > oy_max
  148.     if self.oy <= 0
  149.       @scroll_up = false
  150.       @wait = 60
  151.     elsif self.oy >= oy_max
  152.       @scroll_up = true
  153.       @wait = 60
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 释放
  158.   #--------------------------------------------------------------------------
  159.   def dispose
  160.     super
  161.     @cache.dispose
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 滚动最大值
  165.   #--------------------------------------------------------------------------
  166.   def oy_max
  167.     return self.contents.height - 384
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● 刷新
  171.   #--------------------------------------------------------------------------
  172.   def refresh(str)
  173.     str = str.clone
  174.     @scroll_up = false
  175.     @wait = 120
  176.     @draw_y = 0
  177.     @align = 0
  178.     @progress = 0
  179.     @lines = []
  180.     self.oy = 0
  181.     @cache.font = Font.new
  182.     @font = Font.new
  183.     self.contents.dispose
  184.     self.contents = Bitmap.new(408, 384)
  185.     parse_text(str)
  186.     12.times{parse_items}
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 描绘行
  190.   #--------------------------------------------------------------------------
  191.   def draw_line(width, height, items)
  192.     bitmap = Bitmap.new(width, height)
  193.     bitmap.font = @font
  194.     x = 0
  195.     for item in items
  196.       if item.is_a?(Color)
  197.         bitmap.font.color = item
  198.       elsif item.is_a?(Integer)
  199.         bitmap.font.size = item
  200.       elsif item.is_a?(Array)
  201.         bitmap.font.name = item[0] if item.size == 1
  202.       elsif item.is_a?(Bitmap)
  203.         bitmap.blt(x + 2, (height - item.height) / 2,
  204.                    item, Rect.new(0,0,item.width,item.height))
  205.         x += item.width + 4
  206.       elsif item == :bold
  207.         bitmap.font.italic = !bitmap.font.bold
  208.       elsif item == :italic
  209.         bitmap.font.italic = !bitmap.font.italic
  210.       else
  211.         bitmap.draw_text(x,0,width,height,item)
  212.         x += bitmap.text_size(item).width
  213.       end
  214.     end
  215.     return bitmap
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 解析文本
  219.   #--------------------------------------------------------------------------
  220.   def parse_text(str)
  221.     begin
  222.       last_text = str.clone
  223.       str.gsub!(/\\v\[(\d+)\]/i) { $game_variables[$1.to_i] }
  224.       str.gsub!(/\\g/i) { $game_party.gold.to_s }
  225.       str.gsub!(/\\itm\[(\d+)\]/i) { $game_party.item_number($1.to_i) }
  226.       str.gsub!(/\\wpn\[(\d+)\]/i) { $game_party.weapon_number($1.to_i) }
  227.       str.gsub!(/\\amr\[(\d+)\]/i) { $game_party.armor_number($1.to_i) }
  228.       str.gsub!(/\\1line{(.+?)}/im) { $1.delete("\n") }
  229.       str.gsub!(/\\eval{(.+?)}/im) { eval($1) }
  230.     end until str == last_text
  231.     str.gsub!(/\\n\[(\d+)\]/i) do
  232.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  233.     end
  234.     str.gsub!(/\n/){"\000\002n\000"}
  235.     str.gsub!(/\\\\/) { "\001" }
  236.     str.gsub!(/\\a\[([0-2])\]/i){ "\000\0027#{$1}" }
  237.     str.gsub!(/\\c\[(\d+)\]/i) { "\000\0020#{$1}\000" }
  238.     str.gsub!(/\\bold/i) { "\000\0021\000" }
  239.     str.gsub!(/\\italic/i) { "\000\0022\000" }
  240.     str.gsub!(/\\f\[(\w+)\]/i) { "\000\0023#{$1}\000" }
  241.     str.gsub!(/\\s\[(\d+)\]/i) { "\000\0024#{$1}\000" }
  242.     str.gsub!(/\\p\[(.+?)\]/i) { "\000\0025#{$1}\000" }
  243.     str.gsub!(/\\icon\[(.+?)\]/i){ "\000\0026#{$1}\000" }
  244.     str.gsub!(/\001/) {"\\"}
  245.     @items = str.split("\000")
  246.     @items.delete("")
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ● 深度解析
  250.   #--------------------------------------------------------------------------
  251.   def parse_items
  252.     return unless @items.size > 0
  253.     bitmap = @cache
  254.     width, height, items = 1, 32, []
  255.     while item = @items.delete_at(0)
  256.       if item[/^\002([0-9a-z])(.*)/]
  257.         case (a = $1)
  258.         when '7'
  259.           @align = $2.to_i
  260.         when '0'
  261.           color = $2.to_i
  262.           bitmap.font.color = if color >= 0 and color <= 9
  263.             text_color(color)
  264.           elsif color == 8
  265.             disabled_color
  266.           elsif color == 9
  267.             system_color
  268.           end
  269.           items.push bitmap.font.color
  270.         when '1'
  271.           items.push :bold
  272.         when '2'
  273.           items.push :italic
  274.         when '3'
  275.           bitmap.font.name = $2
  276.           items.push [bitmap.font.name]
  277.         when '4'
  278.           bitmap.font.size = $2.to_i
  279.           items.push bitmap.font.size
  280.         when '5', '6'
  281.           item = (a == 5) ? RPG::Cache.picture($2) : RPG::Cache.icon($2)
  282.           if item.width > 408
  283.             item.dispose
  284.             items.unshift("[图片太大无法显示]")
  285.             next
  286.           elsif width + item.width > 408
  287.             @items.unshift(item)
  288.             break
  289.           end
  290.           items.push(item)
  291.           width += item.width + 4
  292.           height = item.height + 4 if item.height + 4 > height
  293.         when 'n'
  294.           break
  295.         end
  296.       else
  297.         str = ""
  298.         size = Rect.new(0, 0, 0, 0)
  299.         while s = item.slice!(/./)
  300.           size = bitmap.text_size(str + s)
  301.           if width + size.width > 408
  302.             item.insert(0, s)
  303.             break
  304.           else
  305.             str += s
  306.           end
  307.         end
  308.         if items[-1].is_a?(String)
  309.           items[-1] += str
  310.         else
  311.           items.push(str)
  312.         end
  313.         width += size.width
  314.         height = size.height + 4 if size.height + 4 > height
  315.         if item != ""
  316.           @items.unshift(item)
  317.           break
  318.         end
  319.       end
  320.     end
  321.     b = draw_line(width, height, items)
  322.     if @draw_y + b.height > 384
  323.       c = self.contents
  324.       self.contents = Bitmap.new(408, @draw_y + b.height)
  325.       self.contents.blt(0, 0, c, Rect.new(0,0,c.width, c.height))
  326.       c.dispose
  327.     end
  328.     x = 0
  329.     x = 204 - (b.width / 2) if @align == 1
  330.     x = 408 - b.width if @align == 2
  331.     self.contents.blt(x, @draw_y, b, Rect.new(0,0,b.width, b.height))
  332.     @draw_y += b.height
  333.   end
  334. end
  335.  
  336. #===============================================================================
  337. # ■ 任务界面
  338. #===============================================================================
  339. class Scene_Mission
  340.   #--------------------------------------------------------------------------
  341.   # ● 初始化
  342.   #--------------------------------------------------------------------------
  343.   def initialize
  344.     @last_scene = $scene
  345.   end
  346.   #--------------------------------------------------------------------------
  347.   # ● 主处理
  348.   #--------------------------------------------------------------------------
  349.   def main
  350.     @mission = $game_party.missions
  351.     @window1 = Window_Base.new(0,0,200,64)
  352.     @window1.contents = Bitmap.new(168,32)
  353.     @window1.contents.draw_text(0,0,168,32,"任务",1)
  354.     @window2 = Window_Base.new(200,0,440,64)
  355.     @window2.contents = Bitmap.new(408,32)
  356.     @window2.contents.draw_text(0,0,408,32,"任务说明",1)
  357.     @mission_window = Window_Mission.new
  358.     @mission_window.index = @mission.size - 1
  359.     @index = @mission_window.index
  360.     @info_window = Window_MissionInfo.new
  361.     @info_window.refresh(@mission[@index].info)
  362.     Graphics.transition
  363.     loop do
  364.       Graphics.update
  365.       Input.update
  366.       update
  367.       if $scene != self
  368.         break
  369.       end
  370.     end
  371.     Graphics.freeze
  372.     @window1.dispose
  373.     @window2.dispose
  374.     @mission_window.dispose
  375.     @info_window.dispose
  376.   end
  377.   #--------------------------------------------------------------------------
  378.   # ● 刷新画面
  379.   #--------------------------------------------------------------------------
  380.   def update
  381.     @mission_window.update
  382.     @info_window.update
  383.     if @index != @mission_window.index
  384.       @index = @mission_window.index
  385.       @info_window.refresh(@mission[@index].info)
  386.     end
  387.     return update_mission if @mission_window.active
  388.     update_info
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # ● 刷新任务
  392.   #--------------------------------------------------------------------------
  393.   def update_mission
  394.     if Input.trigger?(Input::C)
  395.       $game_system.se_play($data_system.decision_se)
  396.       @mission_window.active = false
  397.       @info_window.oy = 0
  398.     elsif Input.trigger?(Input::B)
  399.       $game_system.se_play($data_system.cancel_se)
  400.       $scene = @last_scene
  401.       return
  402.     end
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # ● 刷新人物详情
  406.   #--------------------------------------------------------------------------
  407.   def update_info
  408.     @info_window.wait = 90
  409.     if Input.press?(Input::UP)
  410.       @info_window.oy -= 3
  411.       @info_window.oy = 0 if @info_window.oy < 0
  412.     elsif Input.press?(Input::DOWN)
  413.       @info_window.oy += 3
  414.       @info_window.oy = @info_window.oy_max if @info_window.oy > @info_window.oy_max
  415.     elsif Input.repeat?(Input::L)
  416.       $game_system.se_play($data_system.cursor_se)
  417.       @mission_window.index -= 1
  418.       @mission_window.index = $game_party.missions.size - 1 if @mission_window.index < 0
  419.     elsif Input.repeat?(Input::R)
  420.       $game_system.se_play($data_system.cursor_se)
  421.       @mission_window.index += 1
  422.       @mission_window.index = 0 if @mission_window.index >= $game_party.missions.size
  423.     elsif Input.trigger?(Input::B)
  424.       $game_system.se_play($data_system.cancel_se)
  425.       @mission_window.active = true
  426.       @info_window.scroll_up = false
  427.       @info_window.oy = 0
  428.     end
  429.   end
  430. end
  431.  
  432. #===============================================================================
  433. # ■ 事件处理器
  434. #===============================================================================
  435. class Interpreter
  436.   alias orig_ec_mission execute_command if !defined?(orig_ec_mission)
  437.   #--------------------------------------------------------------------------
  438.   # ● 重定义执行事件命令
  439.   #--------------------------------------------------------------------------
  440.   def execute_command
  441.     if @index >= @list.size - 1
  442.       command_end
  443.       return true
  444.     end
  445.     @parameters = @list[@index].parameters
  446.     return command_108 if @list[@index].code == 108
  447.     return orig_ec_mission
  448.   end
  449.   #--------------------------------------------------------------------------
  450.   # ● 注释
  451.   #--------------------------------------------------------------------------
  452.   def command_108
  453.     case @list[@index].parameters[0]
  454.     when (/^删除任务\[(\w+)\]$/)
  455.       $game_party.delete_mission($1)
  456.       return true
  457.     when (/^完成任务\[(\w+)\]$/)
  458.       $game_party.done_mission($1)
  459.       return true
  460.     when "删除所有任务"
  461.       $game_party.delete_all_mission
  462.       return true
  463.     when "完成所有任务"
  464.       $game_party.done_all_mission
  465.       return true
  466.     when (/^放弃任务\[(\w+)\]$/)
  467.       $game_party.fail_mission($1)
  468.       return true
  469.     when (/^恢复任务\[(\w+)\]$/)
  470.       $game_party.resume_mission($1)
  471.       return true
  472.     when "恢复所有任务"
  473.       $game_party.resume_all_mission
  474.       return true
  475.     end
  476.     text = @list[@index].parameters[0]
  477.     loop do
  478.       if @list[@index+1].code == 108 or @list[@index+1].code == 408
  479.         text += "\n" + @list[@index+1].parameters[0]
  480.       else
  481.         break
  482.       end
  483.       @index += 1
  484.     end
  485.     split = text.split("\n")
  486.     if (split[0] == "任务设置" or split[0] == "任务更新" or split[0] == "追加说明") and split.size >= 3
  487.       info , name = split[2] , split[1]
  488.       if split.size >= 4
  489.         for i in 3...split.size
  490.           info += "\n" + split[i]
  491.         end
  492.       end
  493.       $game_party.get_mission(name,info) if split[0] == "任务设置"
  494.       $game_party.update_mission(name,info) if split[0] == "任务更新"
  495.       $game_party.add_mission_info(name,info) if split[0] == "追加说明"
  496.     end
  497.     return true
  498.   end
  499. end

截图:


下载:
v0.8并没有在功能上做出改动,因此不提供范例,
需要的请下载v0.7范例。

随工程附送VX→XP窗口皮肤一张

旧版本:
便民任务界面v0.7.rar (211.94 KB, 下载次数: 1109)
范例v0.6.rar (211.3 KB, 下载次数: 270)
范例 v0.5.rar (210.53 KB, 下载次数: 282)
范例 v0.4.rar (208.41 KB, 下载次数: 1988)
范例 v0.3.rar (208.18 KB, 下载次数: 2450)
范例.rar (206.2 KB, 下载次数: 845)         
作者: 耶和华    时间: 2011-2-15 19:32
啊....得到任务出现情况。
如图:

作者: y3333269    时间: 2011-2-17 10:29
好物,非常简易嗯嗯
作者: 2578699    时间: 2011-2-19 14:14
表示不能用......



2578699于2011-2-25 19:43补充以下内容:
额,之前是由于自己的疏忽,对不起啊......麻烦你了
作者: s547183251    时间: 2011-4-7 21:21
能给个工程吗
作者: wabbyzw    时间: 2011-4-12 21:00
:L会用了……但是……比单纯的公共事件还要麻烦……
作者: lcz123lk    时间: 2011-4-30 14:07
于Scene_Title ,def command_new_game下面插入$game_mission = Game_Mission.new
  于Scene_Save,Marshal.dump($game_player, file)下面插入Marshal.dump($game_mission, file)
  于Scene_Load,$game_player        = Marshal.load(file)的下面插入$game_mission = Marshal.load(file)
————————————————————————————————--
找不到那三段脚本啊
作者: 英顺的马甲    时间: 2011-8-3 16:34
更新自顶:lol
作者: guaneva    时间: 2011-9-11 00:54
脚本能使事件使用更简单,支持ZL
作者: 李梦遥    时间: 2011-9-12 13:35
不支持鼠标的切换,望修正。
作者: 英顺的马甲    时间: 2011-9-12 14:29
李梦遥 发表于 2011-9-12 13:35
不支持鼠标的切换,望修正。
  1. Graphics.update
复制代码
的下面插入
  1. Mouse.update
复制代码
应该就可以了,
写脚本的时候本来就没考虑到鼠标脚本
作者: ♂天契の小炎♂    时间: 2011-9-12 14:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 李梦遥    时间: 2011-9-12 16:05
英顺的马甲 发表于 2011-9-12 14:29
的下面插入应该就可以了,
写脚本的时候本来就没考虑到鼠标脚本

不行,鼠标的主要问题是,如果有两个任务,鼠标选择两个任务的名称不能切换内容,而键盘上下则可以切换
作者: 英顺的马甲    时间: 2011-9-12 21:52
本帖最后由 英顺的马甲 于 2011-9-12 21:54 编辑
李梦遥 发表于 2011-9-12 16:05
不行,鼠标的主要问题是,如果有两个任务,鼠标选择两个任务的名称不能切换内容,而键盘上下则可以切换 ...


  1. def update
  2.     @mission_window.update
  3.     @info_window.update
  4.     if Input.trigger?(Input::B)
  5.       $game_system.se_play($data_system.cancel_se)
  6.       $scene = Scene_Map.new
  7.       return
  8.     end
  9.     if Input.repeat?(Input::UP) or
  10.        Input.repeat?(Input::DOWN)
  11.       info = $game_party.mission.info[@mission_window.index].clone
  12.       @info_window.refresh(info)
  13.     end
复制代码
换成
  1. def update
  2.     @mission_window.update
  3.     @info_window.update
  4.     if Input.trigger?(Input::B)
  5.       $game_system.se_play($data_system.cancel_se)
  6.       $scene = Scene_Map.new
  7.       return
  8.     end
  9.     if @index != @mission_window.index
  10.       info = $game_party.mission.info[@mission_window.index].clone
  11.       @info_window.refresh(info)
  12.       @index = @mission_window.index
  13.     end
复制代码

作者: nomark    时间: 2012-4-15 20:59
本帖最后由 nomark 于 2012-4-16 13:03 编辑

[attach]106494[/attach]                       不知道为啥,成这样不能使用,求解


‘‘──nomark于2012-4-16 13:06补充以下内容

[@]英顺的马甲[/@]
’’
作者: 897727980    时间: 2012-4-21 12:58
jBSSSSASDASDASDASDADASDASDA
SADASDASD
作者: 痒死我了    时间: 2012-5-11 12:44
是给VX的还是VA的?

作者: chd114    时间: 2012-5-18 22:25
[attach]111654[/attach]麻烦发到我又想[email protected]···6R诅咒我ing···
作者: aaalbx    时间: 2012-5-19 09:16
我看着不像XP哦=。-原来有个窗口素材在里面
作者: chd114    时间: 2012-5-20 17:25
这个任务系统的任务是不是在事件中直接创建?


‘‘──chd114于2012-5-20 18:02补充以下内容

为什么会少了图片文件?
’’


‘‘──chd114于2012-5-20 18:11补充以下内容

LZ!我发现一个BUG!接受一个任务后先放弃后删除,再打开任务目录,“没有任务”后面会有个×
’’


‘‘──chd114于2012-5-20 18:22补充以下内容

表示刚才再次发现一个BUG!如果先收集物品达到任务目标,再接受任务,从任务目录查看是未完成任务,但是任务却可以结束!求修正!
’’


‘‘──chd114于2012-5-20 18:23补充以下内容

而且,如果收集的物品超过任务要求,任务目录里也是提示未完成!
’’
作者: 英顺的马甲    时间: 2012-5-31 19:58
更新了,该满意了吧
@シスコン
作者: シスコン    时间: 2012-5-31 20:19
英顺的马甲 发表于 2012-5-31 19:58
更新了,该满意了吧
@シスコン

本以为上次提出要求之后 你没回我 是因为嫌我太烦 …… 没想到 你居然真的更新了…… 、
我现在真的很激动啊、因为游戏必须需要这个‘更新’ 太感谢您了!本当に ありがとうございます!


‘‘──シスコン于2012-5-31 21:00补充以下内容:

用了……貌似有一个问题、 那就是 会覆盖掉 之前的任务说明、我希望是增加、例如:

接任务:任务设置
            寻找猫
            请去公园、商业街、游乐园三个地方调查、

假如玩家先去了公园之后:任务更新
                          寻找猫
                          去了公园之后没有发现猫咪
但是任务菜单里面应该是这样:
            寻找猫
            请去公园、商业街、游乐园三个地方调查、
            去了公园之后没有发现猫咪


假如玩家先去游乐园:  任务更新
                          寻找猫
                          去了游乐园之后没有发现猫咪

不过任务菜单里面应该是这样:
            寻找猫
            请去公园、商业街、游乐园三个地方调查、
            去了游乐园之后没有发现猫咪


’’
作者: 滑板天空    时间: 2012-6-29 10:54
怎么看这图是VX里的。但是却发在了XP?
作者: 薇尔栖栖    时间: 2012-7-1 20:40
为毛解压出错= =
作者: z12067010    时间: 2012-7-2 16:25
这样的注释貌似会更麻烦吧= =
作者: 45247814    时间: 2012-8-30 18:36
请问一下,假如打怪,怎么打,这个东西,打怪的话,这个收集物品,有没有打怪的
作者: 英顺的马甲    时间: 2012-11-25 13:51
久违了的更新自顶==
作者: molehx    时间: 2013-6-10 20:00
楼主~记录簿的名字和ico图标怎么改
作者: 英顺的马甲    时间: 2013-11-17 18:25
更新自顶
作者: 41889732    时间: 2014-8-27 13:12
这个可以搞完成任务进度=杀多少XX怪吗?
作者: Demon丶旋律    时间: 2014-8-29 02:57
既然有人挖坟了我也来问一句,如何在界面内显示X号变量的值?
还有就是 \eval{脚本}  :运行脚本  的用法我没找到,可以添加说明吗?
作者: 英顺的马甲    时间: 2014-8-30 23:38
Demon丶旋律 发表于 2014-8-29 02:57
既然有人挖坟了我也来问一句,如何在界面内显示X号变量的值?
还有就是 \eval{脚本}  :运行脚本  的用法我没 ...

变量方面就跟普通对话框一样,至于脚本嘛==
  1. \eval{p "这段脚本会被执行"}
复制代码

作者: 952193683    时间: 2015-1-22 11:54
挖个坟!我想知道为什么我完全按照你的做了!获得花的时候进度不会动的,也显示获得0个!但是我还能完成任务,怎么设置杀多少怪杀什么怪的任务啊?
作者: 英顺的马甲    时间: 2015-1-22 16:28
952193683 发表于 2015-1-22 11:54
挖个坟!我想知道为什么我完全按照你的做了!获得花的时候进度不会动的,也显示获得0个!但是我还能完成任 ...

关于进度的问题请附上事件设置的截图以便鉴定问题。
至于杀怪任务抱歉,此脚本仅提供“界面”,因此任务过程及内容设置方面的问题不在服务范围,请到提问区发问,谢谢。
作者: 952193683    时间: 2015-1-22 17:20
我不知道怎么截图。楼楼求Q
作者: 永燃的狂炎    时间: 2015-1-22 18:52
952193683 发表于 2015-1-22 17:20
我不知道怎么截图。楼楼求Q

你可以尝试一天读四五次作文,为了锻炼你的细节观察。版规没有表明该区有挖坟限制。另外网页截图,若没有截图工具的话可以点击键盘的alt+print screen然后打开Paint点击键盘上的ctrl+v就行了。还有另个方法,打开QQ过后点击键盘上的Ctrl+Alt+A接下来会出现一幕黑幕,必需要用滑鼠拉开你需要截图的画面,下方会有保存选项,点击保存。

不明白的话,你可以重复读这个帖子内容,读到明白为止,如果读到你困了,那我也没有办法救你了。
作者: 952193683    时间: 2015-1-22 23:59
永燃的狂炎 发表于 2015-1-22 18:52
你可以尝试一天读四五次作文,为了锻炼你的细节观察。版规没有表明该区有挖坟限制。另外网页截图,若没有 ...

挖坟限制是怎样的?还有我会截图但是不会发上来。
作者: 952193683    时间: 2015-2-21 15:32
怎么办?楼主

J2Z4 (91.49 KB, 下载次数: 32)

J2Z4

作者: 白鬼    时间: 2015-6-12 19:24
请教个事情
所有任务的内容,完成与否,是储存在哪里的?
作者: 冷峻逸    时间: 2015-6-22 13:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 347780682    时间: 2015-8-10 14:29
楼主 我使用了0.8版结果楼主 我使用了0.8版结果出错了
错在这行 for i in [email protected]

貌似我加减了end也是不行

使用0.7版就没出错
作者: a3738312    时间: 2015-8-19 20:05

我复制的v0.8的脚本
这个怎么解决啊
作者: 九尾的百合伞    时间: 2015-8-29 18:59
第98行发生错误
作者: hfz521999    时间: 2015-10-27 17:37




我把要找的物品更改了,测试了一下,出现错误,求解决方案
作者: hfz521999    时间: 2015-10-28 18:17
额,成功了~~~谢了
作者: hfz521999    时间: 2015-10-28 18:25
怎么更改那个记录簿变成其他的ID编号? 因为工程里的33号是记录簿 而我的33号是药水 因为那个药水已经写了很多 要修改很麻烦  怎么把记录簿改成其他的编号?
作者: gkl0510    时间: 2015-10-28 19:08
马甲大大,谢谢提供非常好用的脚本。由于学艺不精有一处文本的大小不会改,还望求救啊。
具体内容,请见传送门
https://rpg.blue/forum.php?mod=v ... p;page=1#pid2642378
作者: 79160475    时间: 2016-2-4 19:55
45行出错是什么回事?
作者: stevenrock    时间: 2017-1-30 21:12
好久不见,最近好么?
====以上是华丽丽的寒暄,正文在下面====
想把这个任务系统整合到游戏中去,但是不知道会不会影响其他的注释内容?
作者: 暗影教主    时间: 2017-2-1 14:07
这个如何使用啊,放进去后完全没有效果啊。我可能太小白了,不知道如何用这些东西。
作者: 九离鸷    时间: 2018-4-21 13:24
非常感谢~




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