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

Project1

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

[已经过期] 请教各位大神修改一下代码增加一个功能!!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
37 小时
注册时间
2013-5-3
帖子
23
跳转到指定楼层
1
发表于 2013-6-13 08:05:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我又一个简单的任务脚本,想在这个脚本的内容显示中添加插入图片的功能,请问加入这个功能需要添加如何的代码,麻烦哪位大神指教

RUBY 代码复制
  1. #==============================================================================
  2.  
  3. #用法:
  4. #领取任务:$game_party.get_task(任意数字,任务名称,任务描述)
  5. #完成任务:$game_party.finish_task(领取任务时设定的数字)
  6. #如:前面有事件$game_party.get_task(1,"测试","只是测试")
  7. #后面完成任务的脚本就是$game_party.finish_task(1)
  8.  
  9. #召唤任务界面:SceneManager.call(Scene_Task)
  10. #==============================================================================
  11.  
  12.  
  13. class Task
  14.   attr_reader :desc
  15.   attr_reader :finished
  16.   def initialize(origin_name,desc)
  17.     @origin_name = origin_name
  18.     @desc = desc
  19.     @finished = false
  20.   end
  21.   def name
  22.     if @finished
  23.       return @origin_name + "(完成)"
  24.     else
  25.       return @origin_name
  26.     end
  27.   end
  28.   def finish
  29.     @finished = true
  30.   end
  31.  
  32. end
  33.  
  34. class Game_Party < Game_Unit
  35.   alias old_init initialize
  36.   def initialize
  37.     old_init
  38.     @tasks = {}
  39.   end
  40.   def get_task(i,name,desc)
  41.     @tasks[i]=Task.new(name,desc)
  42.   end
  43.   def have_task?(i)
  44.     @tasks[i] != nil
  45.   end
  46.   def finish_task(i)
  47.     @tasks[i].finish if have_task?(i)
  48.   end
  49.   def unfinished_tasks
  50.     n = []
  51.     for i in @tasks.values
  52.       next if i.finished
  53.       n.push(i)
  54.     end
  55.     return n
  56.   end
  57.   def finished_tasks
  58.     n = []
  59.     for i in @tasks.values
  60.       next unless i.finished
  61.       n.push(i)
  62.     end
  63.     return n
  64.   end
  65. end
  66.  
  67. class Window_Task_Type < Window_HorzCommand
  68.   #--------------------------------------------------------------------------
  69.   # ● オブジェクト初期化
  70.   #--------------------------------------------------------------------------
  71.   def initialize
  72.     super(0, 0)
  73.     activate
  74.   end
  75.   def window_width
  76.     return Graphics.width
  77.   end
  78.   def col_max
  79.     return 3
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● コマンドリストの作成
  83.   #--------------------------------------------------------------------------
  84.   def make_command_list
  85.     add_command("未完成任务",  :unfinished_task)
  86.     add_command("已完成任务", :finished_task)
  87.     add_command("取消", :cancel)
  88.   end
  89. end
  90.  
  91. class Window_TaskLeft < Window_Selectable
  92.   attr_reader :finished
  93.   def initialize
  94.     super(0,48,160,Graphics.height - 48)
  95.     create_contents
  96.     @finished = false
  97.     @index = 0
  98.     refresh
  99.     deactivate
  100.   end
  101.   def set_finish(finish)
  102.     @finished = finish
  103.     set_item_max
  104.   end
  105.   def item_max
  106.     return @item_max != nil ? @item_max : 0
  107.   end
  108.   def set_item_max
  109.     if @finished
  110.       @item_max = $game_party.finished_tasks.size
  111.     else
  112.       @item_max = $game_party.unfinished_tasks.size
  113.     end
  114.   end
  115.  
  116.   def refresh
  117.     set_item_max
  118.     super
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 項目の描画
  122.   #--------------------------------------------------------------------------
  123.   def draw_item(index)
  124.     text = ""
  125.     unless @finished
  126.       if $game_party.unfinished_tasks[index] != nil
  127.         text = $game_party.unfinished_tasks[index].name
  128.       end
  129.     else
  130.       if $game_party.finished_tasks[index] != nil
  131.         text = $game_party.finished_tasks[index].name  
  132.       end
  133.     end
  134.     draw_text(item_rect_for_text(index), text)
  135.   end
  136.  
  137. end
  138.  
  139. class Window_TaskRight < Window_Base
  140.   attr_reader :left_index
  141.   def initialize
  142.     super(160,48,Graphics.width - 160,Graphics.height - 48)
  143.     create_contents
  144.     @left_index = 0
  145.     @finished = false
  146.     refresh
  147.   end
  148.   def set_index(i)
  149.     @left_index = i
  150.     refresh
  151.   end
  152.   def set_finish(i)
  153.     @finished = i
  154.   end
  155.  
  156.   def refresh
  157.     contents.clear
  158.     draw_desc
  159.   end
  160.   def draw_desc
  161.     if @finished
  162.       if $game_party.finished_tasks[@left_index] != nil
  163.         draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)
  164.       end
  165.     else
  166.       if $game_party.unfinished_tasks[@left_index] != nil
  167.         draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)
  168.       end
  169.     end
  170.   end
  171.  
  172. end
  173.  
  174. class Scene_Task < Scene_Base
  175.   def start
  176.     super
  177.     create_task_type_window
  178.     create_left_window
  179.     create_right_window
  180.   end
  181.   def update
  182.     super
  183.     if @left_window.active
  184.       if Input.trigger?(:B)
  185.         @left_window.deactivate
  186.         @task_type_window.activate
  187.       end
  188.       if Input.trigger?(:UP) || Input.trigger?(:DOWN)
  189.         @right_window.set_finish(@left_window.finished)
  190.         @right_window.set_index(@left_window.index)
  191.       end
  192.     end
  193.   end
  194.  
  195.   def terminate
  196.     super
  197.   end
  198.   def create_task_type_window
  199.     @task_type_window = Window_Task_Type.new
  200.     @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))
  201.     @task_type_window.set_handler(:finished_task,method(:view_finished_task))
  202.     @task_type_window.set_handler(:cancel,method(:return_scene))
  203.   end
  204.   def create_left_window
  205.     @left_window = Window_TaskLeft.new
  206.     @left_window.set_finish(false)
  207.     @left_window.refresh
  208.   end
  209.   def create_right_window
  210.     @right_window = Window_TaskRight.new
  211.     @right_window.refresh
  212.   end
  213.   def view_unfinished_task
  214.     @left_window.set_finish(false)
  215.     @left_window.refresh
  216.     @left_window.activate
  217.     @task_type_window.deactivate
  218.     @right_window.set_finish(false)
  219.     @right_window.set_index(@left_window.index)
  220.   end
  221.   def view_finished_task
  222.     @left_window.set_finish(true)
  223.     @left_window.refresh
  224.     @left_window.activate
  225.     @task_type_window.deactivate
  226.     @right_window.set_finish(true)
  227.     @right_window.set_index(@left_window.index)
  228.   end
  229.  
  230. end
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-18 14:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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