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

Project1

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

[已经过期] 如何用「VA超级脚本整合(90个系统)」裡的任務系統?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
52
在线时间
135 小时
注册时间
2011-11-5
帖子
83
跳转到指定楼层
1
发表于 2013-6-22 12:01:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ji3rul4coco 于 2013-6-28 21:47 编辑

如題
我完全看不懂任務系統要怎操作= =
請好心人解釋一下

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2012-8-21
帖子
12
2
发表于 2013-7-2 21:45:54 | 只看该作者
这还不简单
你把任务系统脚本发上来我看
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
362
在线时间
1292 小时
注册时间
2013-1-12
帖子
3590

贵宾

3
发表于 2013-7-3 01:21:04 | 只看该作者
是說如果不是一定要用那个  我给你推荐一个较为简单的任务脚本
脚本如下
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Scene_Task
  4. #------------------------------------------------------------------------------
  5. #  任务菜单
  6. #==============================================================================
  7.  
  8. =begin
  9. 领取任务:$game_party.get_task(任意数字,任务名称,任务描述)
  10. 完成任务:$game_party.finish_task(领取任务时设定的数字)
  11. 对已有任务追加说明:$game_party.add_task(任务编号,任务追加描述)
  12.  
  13. 如:
  14. 前面有事件$game_party.get_task(1,"测试","只是测试")
  15.  
  16. 此时任务1的说明为
  17.  
  18. >只是测试
  19.  
  20. 后面完成任务的脚本就是$game_party.finish_task(1)
  21.  
  22. 追加说明$game_party.add_task(1,"真的只是测试哦")
  23.  
  24. 此时任务1的说明为:
  25. >只是测试
  26. >真的只是测试哦
  27.  
  28. 召唤任务界面:SceneManager.call(Scene_Task)
  29. =end
  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.   def initialize
  118.     super(0,48,160,Graphics.height - 48)
  119.     create_contents
  120.     @finished = false
  121.     @index = 0
  122.     refresh
  123.     deactivate
  124.   end
  125.   def set_finish(finish)
  126.     @finished = finish
  127.     set_item_max
  128.   end
  129.   def item_max
  130.     return @item_max != nil ? @item_max : 0
  131.   end
  132.   def set_item_max
  133.     if @finished
  134.       @item_max = $game_party.finished_tasks.size
  135.     else
  136.       @item_max = $game_party.unfinished_tasks.size
  137.     end
  138.   end
  139.  
  140.   def refresh
  141.     set_item_max
  142.     super
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● 利用项目
  146.   #--------------------------------------------------------------------------
  147.   def draw_item(index)
  148.     text = ""
  149.     unless @finished
  150.       if $game_party.unfinished_tasks[index] != nil
  151.         text = $game_party.unfinished_tasks[index].name
  152.       end
  153.     else
  154.       if $game_party.finished_tasks[index] != nil
  155.         text = $game_party.finished_tasks[index].name  
  156.       end
  157.     end
  158.     draw_text(item_rect_for_text(index), text)
  159.   end
  160.  
  161. end
  162.  
  163. class Window_TaskRight < Window_Base
  164.   attr_reader :left_index
  165.   def initialize
  166.     super(160,48,Graphics.width - 160,Graphics.height - 48)
  167.     create_contents
  168.     @left_index = 0
  169.     @finished = false
  170.     refresh
  171.   end
  172.   def set_index(i)
  173.     @left_index = i
  174.     refresh
  175.   end
  176.   def set_finish(i)
  177.     @finished = i
  178.   end
  179.  
  180.   def refresh
  181.     contents.clear
  182.     draw_desc
  183.   end
  184.   def draw_desc
  185.     if @finished
  186.       if $game_party.finished_tasks[@left_index] != nil
  187.         draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)
  188.       end
  189.     else
  190.       if $game_party.unfinished_tasks[@left_index] != nil
  191.         draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)
  192.       end
  193.     end
  194.   end
  195.  
  196. end
  197.  
  198. class Scene_Task < Scene_Base
  199.   def start
  200.     super
  201.     create_task_type_window
  202.     create_left_window
  203.     create_right_window
  204.   end
  205.   def update
  206.     super
  207.     if @left_window.active
  208.       if Input.trigger?(:B)
  209.         @left_window.deactivate
  210.         @task_type_window.activate
  211.       end
  212.       if Input.trigger?(:UP) || Input.trigger?(:DOWN)
  213.         @right_window.set_finish(@left_window.finished)
  214.         @right_window.set_index(@left_window.index)
  215.       end
  216.     end
  217.   end
  218.  
  219.   def terminate
  220.     super
  221.   end
  222.   def create_task_type_window
  223.     @task_type_window = Window_Task_Type.new
  224.     @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))
  225.     @task_type_window.set_handler(:finished_task,method(:view_finished_task))
  226.     @task_type_window.set_handler(:cancel,method(:return_scene))
  227.   end
  228.   def create_left_window
  229.     @left_window = Window_TaskLeft.new
  230.     @left_window.set_finish(false)
  231.     @left_window.refresh
  232.   end
  233.   def create_right_window
  234.     @right_window = Window_TaskRight.new
  235.     @right_window.refresh
  236.   end
  237.   def view_unfinished_task
  238.     @left_window.set_finish(false)
  239.     @left_window.refresh
  240.     @left_window.activate
  241.     @task_type_window.deactivate
  242.     @right_window.set_finish(false)
  243.     @right_window.set_index(@left_window.index)
  244.   end
  245.   def view_finished_task
  246.     @left_window.set_finish(true)
  247.     @left_window.refresh
  248.     @left_window.activate
  249.     @task_type_window.deactivate
  250.     @right_window.set_finish(true)
  251.     @right_window.set_index(@left_window.index)
  252.   end
  253.  
  254. end
  255. class Window_MenuCommand < Window_HorzCommand
  256.   alias task_add_main_commands add_main_commands
  257.   def add_main_commands
  258.       task_add_main_commands
  259.       add_command("任務", :task, main_commands_enabled)
  260.   end
  261. end   
  262. class Scene_Menu < Scene_MenuBase
  263.    alias task_create_command_window create_command_window
  264.    def create_command_window
  265.        task_create_command_window
  266.        @command_window.set_handler(:task,     method(:task))
  267.    end
  268.    def task
  269.        SceneManager.call(Scene_Task)
  270.    end
  271. end


我已经修改脚本所以他会加入菜单选项了
使用方法:
在事件指令第3頁最後一个的"腳本" 選項点入後填入以下
如果要新增任务$game_party.get_task(任务ID(任意数字),任务名称,任务描述)
如果要完成任务:$game_party.finish_task(任务ID(领取任务时设定的数字))
如果要对已有任务追加说明:$game_party.add_task(任务ID(领取任务时设定的数字),新增的说明)
如果要在菜單以外的場合呼出任務:
在事件指令第3頁最後一个的"腳本" 選項点入後填入以下
SceneManager.call(Scene_Task)
还有不懂就问吧!

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2012-8-21
帖子
12
4
发表于 2013-7-3 08:21:53 | 只看该作者
忒简陋,就用整合的,你要是改了整合,很多地方会出错
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
135 小时
注册时间
2011-11-5
帖子
83
5
 楼主| 发表于 2013-7-5 18:06:34 | 只看该作者
13325356 发表于 2013-7-2 21:45
这还不简单
你把任务系统脚本发上来我看




請問一下,這麼多腳本 是要發哪個?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
135 小时
注册时间
2011-11-5
帖子
83
6
 楼主| 发表于 2013-7-19 19:39:09 | 只看该作者
76213585 发表于 2013-7-3 01:21
是說如果不是一定要用那个  我给你推荐一个较为简单的任务脚本
脚本如下#encoding:utf-8
#================ ...

試過了,放不進去
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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