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

Project1

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

[已经解决] 任务脚本错误,求解

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2011-2-6
帖子
46
跳转到指定楼层
1
 楼主| 发表于 2013-2-14 21:13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Mic_洛洛 于 2013-3-14 13:25 编辑

错的是第199行:class Scene_Task < Scene_Base,下过好几个版本的,错的都是这里,求解。

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.  
  57.   alias old_init initialize
  58.   def initialize
  59.     old_init
  60.     @tasks = {}
  61.   end
  62.   def add_task(i,desc)
  63.     @tasks[i].desc = @tasks[i].desc + "\n" + desc
  64.   end
  65.   def get_task(i,name,desc)
  66.     @tasks[i]=Task.new(name,desc)
  67.   end
  68.   def have_task?(i)
  69.     @tasks[i] != nil
  70.   end
  71.   def finish_task(i)
  72.     @tasks[i].finish if have_task?(i)
  73.   end
  74.   def unfinished_tasks
  75.     n = []
  76.     for i in @tasks.values
  77.       next if i.finished
  78.       n.push(i)
  79.     end
  80.     return n
  81.   end
  82.   def finished_tasks
  83.     n = []
  84.     for i in @tasks.values
  85.       next unless i.finished
  86.       n.push(i)
  87.     end
  88.     return n
  89.   end
  90. end
  91.  
  92. class Window_Task_Type < Window_HorzCommand
  93.   #--------------------------------------------------------------------------
  94.   # ● オブジェクト初期化
  95.   #--------------------------------------------------------------------------
  96.   def initialize
  97.     super(0, 0)
  98.     activate
  99.   end
  100.   def window_width
  101.     return Graphics.width
  102.   end
  103.   def col_max
  104.     return 3
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● コマンドリストの作成
  108.   #--------------------------------------------------------------------------
  109.   def make_command_list
  110.     add_command("未完成任务",  :unfinished_task)
  111.     add_command("已完成任务", :finished_task)
  112.     add_command("取消", :cancel)
  113.   end
  114. end
  115.  
  116. class Window_TaskLeft < Window_Selectable
  117.   attr_reader :finished
  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 item_max
  131.     return @item_max != nil ? @item_max : 0
  132.   end
  133.   def set_item_max
  134.     if @finished
  135.       @item_max = $game_party.finished_tasks.size
  136.     else
  137.       @item_max = $game_party.unfinished_tasks.size
  138.     end
  139.   end
  140.  
  141.   def refresh
  142.     set_item_max
  143.     super
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 項目の描画
  147.   #--------------------------------------------------------------------------
  148.   def draw_item(index)
  149.     text = ""
  150.     unless @finished
  151.       if $game_party.unfinished_tasks[index] != nil
  152.         text = $game_party.unfinished_tasks[index].name
  153.       end
  154.     else
  155.       if $game_party.finished_tasks[index] != nil
  156.         text = $game_party.finished_tasks[index].name  
  157.       end
  158.     end
  159.     draw_text(item_rect_for_text(index), text)
  160.   end
  161.  
  162. end
  163.  
  164. class Window_TaskRight < Window_Base
  165.   attr_reader :left_index
  166.   def initialize
  167.     super(160,48,Graphics.width - 160,Graphics.height - 48)
  168.     create_contents
  169.     @left_index = 0
  170.     @finished = false
  171.     refresh
  172.   end
  173.   def set_index(i)
  174.     @left_index = i
  175.     refresh
  176.   end
  177.   def set_finish(i)
  178.     @finished = i
  179.   end
  180.  
  181.   def refresh
  182.     contents.clear
  183.     draw_desc
  184.   end
  185.   def draw_desc
  186.     if @finished
  187.       if $game_party.finished_tasks[@left_index] != nil
  188.         draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)
  189.       end
  190.     else
  191.       if $game_party.unfinished_tasks[@left_index] != nil
  192.         draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)
  193.       end
  194.     end
  195.   end
  196.  
  197. end
  198.  
  199. class Scene_Task < Scene_Base
  200.   def start
  201.     super
  202.     create_task_type_window
  203.     create_left_window
  204.     create_right_window
  205.   end
  206.   def update
  207.     super
  208.     if @left_window.active
  209.       if Input.trigger?(:B)
  210.         @left_window.deactivate
  211.         @task_type_window.activate
  212.       end
  213.       if Input.trigger?(:UP) || Input.trigger?(:DOWN)
  214.         @right_window.set_finish(@left_window.finished)
  215.         @right_window.set_index(@left_window.index)
  216.       end
  217.     end
  218.   end
  219.  
  220.   def terminate
  221.     super
  222.   end
  223.   def create_task_type_window
  224.     @task_type_window = Window_Task_Type.new
  225.     @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))
  226.     @task_type_window.set_handler(:finished_task,method(:view_finished_task))
  227.     @task_type_window.set_handler(:cancel,method(:return_scene))
  228.   end
  229.   def create_left_window
  230.     @left_window = Window_TaskLeft.new
  231.     @left_window.set_finish(false)
  232.     @left_window.refresh
  233.   end
  234.   def create_right_window
  235.     @right_window = Window_TaskRight.new
  236.     @right_window.refresh
  237.   end
  238.   def view_unfinished_task
  239.     @left_window.set_finish(false)
  240.     @left_window.refresh
  241.     @left_window.activate
  242.     @task_type_window.deactivate
  243.     @right_window.set_finish(false)
  244.     @right_window.set_index(@left_window.index)
  245.   end
  246.   def view_finished_task
  247.     @left_window.set_finish(true)
  248.     @left_window.refresh
  249.     @left_window.activate
  250.     @task_type_window.deactivate
  251.     @right_window.set_finish(true)
  252.     @right_window.set_index(@left_window.index)
  253.   end
  254.  
  255. end

点评

脚本请用脚本框  发表于 2013-2-15 01:22

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-2-15 04:01:59 | 只看该作者
这脚本我自己也有在使用,并没有如楼主的错误讯息,是否您有别的脚本也用到 class Scene_Task 或者修改了 Window_Base?

点评

外站党......我只是因为找不到脚本只好往外找,汗,算一算真的用不少外站脚本,超过半数了。  发表于 2013-2-15 06:43
LBQ
作为外站党。。我们不能使用这种渣脚本= =  发表于 2013-2-15 05:44
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
3
发表于 2013-2-15 05:45:14 | 只看该作者
你有没有把这个脚本放在Scene_Base下面?

评分

参与人数 1星屑 +50 收起 理由
Mic_洛洛 + 50 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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