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

Project1

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

[已经过期] 关于任务脚本接取或完结14个后不显示任务名字

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
160 小时
注册时间
2010-11-7
帖子
28
跳转到指定楼层
1
发表于 2013-7-10 00:30:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 394178110 于 2013-7-24 14:18 编辑

任务脚本接取或完结14个【向下翻页】后不显示任务名字了任务介绍正常 哪位老大能帮忙看看了谢谢
RUBY 代码复制
  1. =begin
  2. 领取任务:$game_party.get_task(任意数字,任务名称,任务描述)
  3. 完成任务:$game_party.finish_task(领取任务时设定的数字)
  4. 对已有任务追加说明:$game_party.add_task(任务编号,任务追加描述)
  5.  
  6. 如:
  7. 前面有事件$game_party.get_task(1,"测试","只是测试")
  8.  
  9. 此时任务1的说明为
  10.  
  11. >只是测试
  12.  
  13. 后面完成任务的脚本就是$game_party.finish_task(1)
  14.  
  15. 追加说明$game_party.add_task(1,"真的只是测试哦")
  16.  
  17. 此时任务1的说明为:
  18. >只是测试
  19. >真的只是测试哦
  20.  
  21. 召唤任务界面:SceneManager.call(Scene_Task)
  22.  
  23. 该脚本来自66rpg,发布者:韩云溪
  24. 改进:工藤由纪(论坛ID:zyyczp)
  25. =end
  26.  
  27. #===========================================================
  28. #●任务系统
  29. #===========================================================
  30. class Task
  31.   attr_reader :desc
  32.   attr_reader :finished
  33.   def initialize(origin_name,desc)
  34.     @origin_name = origin_name
  35.     @desc = desc
  36.     @finished = false
  37.   end
  38.   def name
  39.     if @finished
  40.       return @origin_name + ""
  41.     else
  42.       return @origin_name
  43.     end
  44.   end
  45.   def desc=(desc)
  46.     @desc = desc
  47.   end
  48.  
  49.   def finish
  50.     @finished = true
  51.   end
  52.  
  53. end
  54.  
  55. class Game_Party < Game_Unit
  56.   alias old_init initialize
  57.   def initialize
  58.     old_init
  59.     @tasks = {}
  60.   end
  61.   def add_task(i,desc)
  62.     @tasks[i].desc = @tasks[i].desc + "\n" + desc
  63.   end
  64.   def get_task(i,name,desc)
  65.     @tasks[i]=Task.new(name,desc)
  66.   end
  67.   def have_task?(i)
  68.     @tasks[i] != nil
  69.   end
  70.   def finish_task(i)
  71.     @tasks[i].finish if have_task?(i)
  72.   end
  73.   def unfinished_tasks
  74.     n = []
  75.     for i in @tasks.values
  76.       next if i.finished
  77.       n.push(i)
  78.     end
  79.     return n
  80.   end
  81.   def finished_tasks
  82.     n = []
  83.     for i in @tasks.values
  84.       next unless i.finished
  85.       n.push(i)
  86.     end
  87.     return n
  88.   end
  89. end
  90.  
  91. class Window_Task_Type < Window_HorzCommand
  92.   #--------------------------------------------------------------------------
  93.   # ● オブジェクト初期化
  94.   #--------------------------------------------------------------------------
  95.   def initialize
  96.     super(0, 0)
  97.     activate
  98.   end
  99.   def window_width
  100.     return Graphics.width
  101.   end
  102.   def col_max
  103.     return 3
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● コマンドリストの作成
  107.   #--------------------------------------------------------------------------
  108.   def make_command_list
  109.     add_command("未完成任务",  :unfinished_task)
  110.     add_command("已完成任务", :finished_task)
  111.     add_command("取消", :cancel)
  112.   end
  113. end
  114.  
  115. class Window_TaskLeft < Window_Selectable
  116.   attr_reader :finished
  117.   attr_writer :right_window
  118.   def initialize
  119.     super(0,48,160,Graphics.height - 48)
  120.     create_contents
  121.     @finished = false
  122.     @index = 0
  123.     refresh
  124.     deactivate
  125.   end
  126.   def set_finish(finish)
  127.     @finished = finish
  128.     set_item_max
  129.   end
  130.   def update_cursor
  131.     super
  132.     return unless @right_window
  133.     @right_window.set_finish(finished)
  134.     @right_window.set_index(index)
  135.   end
  136.   def item_max
  137.     return @item_max != nil ? @item_max : 0
  138.   end
  139.   def set_item_max
  140.     if @finished
  141.       @item_max = $game_party.finished_tasks.size
  142.     else
  143.       @item_max = $game_party.unfinished_tasks.size
  144.     end
  145.   end
  146.  
  147.   def refresh
  148.     set_item_max
  149.     super
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 項目の描画
  153.   #--------------------------------------------------------------------------
  154.   def draw_item(index)
  155.     text = ""
  156.     unless @finished
  157.       if $game_party.unfinished_tasks[index] != nil
  158.         text = $game_party.unfinished_tasks[index].name
  159.       end
  160.     else
  161.       if $game_party.finished_tasks[index] != nil
  162.         text = $game_party.finished_tasks[index].name  
  163.       end
  164.     end
  165.     draw_text(item_rect_for_text(index), text)
  166.   end
  167.  
  168. end
  169.  
  170. class Window_TaskRight < Window_Base
  171.   attr_reader :left_index
  172.   def initialize
  173.     super(160,48,Graphics.width - 160,Graphics.height - 48)
  174.     create_contents
  175.     @left_index = 0
  176.     @finished = false
  177.     refresh
  178.   end
  179.   def set_index(i)
  180.     @left_index = i
  181.     refresh
  182.   end
  183.   def set_finish(i)
  184.     @finished = i
  185.   end
  186.  
  187.   def refresh
  188.     contents.clear
  189.     draw_desc
  190.   end
  191.   def draw_desc
  192.     if @finished
  193.       if $game_party.finished_tasks[@left_index] != nil
  194.         draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)
  195.       end
  196.     else
  197.       if $game_party.unfinished_tasks[@left_index] != nil
  198.         draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)
  199.       end
  200.     end
  201.   end
  202.  
  203. end
  204.  
  205. class Scene_Task < Scene_Base
  206.   def start
  207.     super
  208.     create_task_type_window
  209.     create_left_window
  210.     create_right_window
  211.   end
  212.   def update
  213.     super
  214.     if @left_window.active
  215.       if Input.trigger?(:B)
  216.         @left_window.deactivate
  217.         @task_type_window.activate
  218.       end
  219.     end
  220.   end
  221.  
  222.   def terminate
  223.     super
  224.   end
  225.   def create_task_type_window
  226.     @task_type_window = Window_Task_Type.new
  227.     @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))
  228.     @task_type_window.set_handler(:finished_task,method(:view_finished_task))
  229.     @task_type_window.set_handler(:cancel,method(:return_scene))
  230.   end
  231.   def create_left_window
  232.     @left_window = Window_TaskLeft.new
  233.     @left_window.set_finish(false)
  234.     @left_window.refresh
  235.   end
  236.   def create_right_window
  237.     @right_window = Window_TaskRight.new
  238.     @right_window.refresh
  239.     @left_window.right_window = @right_window
  240.   end
  241.   def view_unfinished_task
  242.     @left_window.set_finish(false)
  243.     @left_window.refresh
  244.     @left_window.activate
  245.     @task_type_window.deactivate
  246.     @right_window.set_finish(false)
  247.     @right_window.set_index(@left_window.index)
  248.   end
  249.   def view_finished_task
  250.     @left_window.set_finish(true)
  251.     @left_window.refresh
  252.     @left_window.activate
  253.     @task_type_window.deactivate
  254.     @right_window.set_finish(true)
  255.     @right_window.set_index(@left_window.index)
  256.   end
  257.  
  258. end

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
2
发表于 2013-7-11 08:25:20 | 只看该作者
不知怎解.  但我是不會讓玩家一次接這麼多未解任務...
樓主必要的話可以讓一個任務達成條件複雜些,
就不用這麼多分支任務了{:2_276:}
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
160 小时
注册时间
2010-11-7
帖子
28
3
 楼主| 发表于 2013-7-11 10:46:33 | 只看该作者
本帖最后由 394178110 于 2013-7-11 11:00 编辑

是这样的 主要是完成任务那也无法超过15个 我比较喜欢寻仙里的任务 想用RM把游戏尽量还原 留个纪念 因为游戏系统原因 每个任务简介都是一个小故事 所以真的很希望这个问题可以解决

游戏素材 音乐 对话声音都可以自己提取 唯独脚本真心无力了


点评

这个脚本怎么用?发个范例工程看看  发表于 2013-7-12 19:00
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 08:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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