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

Project1

 找回密码
 注册会员
搜索

关于图书图鉴脚本求帮助

查看数: 1565 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-9-4 02:02

正文摘要:

先说下我用这个脚本实现的功能 完成一个任务自动在图鉴里解锁一段介绍 得到一个物品XX风物志 使用后解锁这个物品的介绍

回复

熊喵酱 发表于 2013-9-4 11:20:48
本帖最后由 76213585 于 2013-9-3 20:44 编辑

http://rpg.blue/thread-216707-1-1.html
可以試試看任務腳本
把相對vacab修改就可以了
然後標題就是日志標題
內容就是文章

選項數量改一下改一下就行了(自己想想看吧!)

然後於是改的新手向一点了 (不是只為了你改的说  所以 用詞 選項數量 那些還是得設定)
RUBY 代码复制
  1. =begin
  2. 我自己加了一些幫助新手的说明好了.....
  3. 用法:
  4. 领取任务:$game_party.get_task(任意数字,任务名称,任务描述)
  5. 如:前面有事件$game_party.get_task(1,"测试","只是测试")
  6.  
  7. 完成任务:$game_party.finish_task(领取任务时设定的数字)
  8. 如:$game_party.finish_task(1)
  9.  
  10. 召唤任务界面:SceneManager.call(Scene_Task)
  11.  
  12. 然後下面可以設定用詞
  13. =end
  14. module Panda
  15.  
  16.   $UNFIN_TASK = "喵"  #未完成任务的用詞
  17.  
  18.   $FIN_TASK = "喵" #已完成任务的用詞
  19.  
  20.   $CANCEL = "取消" #退出界面的用詞
  21.  
  22.   $TASK_NAME = "任務" #菜單內任務的用詞
  23.  
  24.   $MEUN_ON = true #是否在菜單中顯示  要的話true 不要的話 false
  25. end
  26.  
  27.  
  28. class Task
  29.   attr_reader :desc
  30.   attr_reader :finished
  31.   def initialize(origin_name,desc)
  32.     @origin_name = origin_name
  33.     @desc = desc
  34.     @finished = false
  35.   end
  36.   def name
  37.     if @finished
  38.       return @origin_name + "(完成)"
  39.     else
  40.       return @origin_name
  41.     end
  42.   end
  43.   def finish
  44.     @finished = true
  45.   end
  46.  
  47. end
  48.  
  49. class Game_Party < Game_Unit
  50.   alias old_init initialize
  51.   def initialize
  52.     old_init
  53.     @tasks = {}
  54.   end
  55.   def get_task(i,name,desc)
  56.     @tasks[i]=Task.new(name,desc)
  57.   end
  58.   def have_task?(i)
  59.     @tasks[i] != nil
  60.   end
  61.   def finish_task(i)
  62.     @tasks[i].finish if have_task?(i)
  63.   end
  64.   def unfinished_tasks
  65.     n = []
  66.     for i in @tasks.values
  67.       next if i.finished
  68.       n.push(i)
  69.     end
  70.     return n
  71.   end
  72.   def finished_tasks
  73.     n = []
  74.     for i in @tasks.values
  75.       next unless i.finished
  76.       n.push(i)
  77.     end
  78.     return n
  79.   end
  80. end
  81.  
  82. class Window_Task_Type < Window_HorzCommand
  83.   #--------------------------------------------------------------------------
  84.   # ● オブジェクト初期化
  85.   #--------------------------------------------------------------------------
  86.   def initialize
  87.     super(0, 0)
  88.     activate
  89.   end
  90.   def window_width
  91.     return Graphics.width
  92.   end
  93.   def col_max
  94.     return 3
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● コマンドリストの作成
  98.   #--------------------------------------------------------------------------
  99.   def make_command_list
  100.     add_command($UNFIN_TASK,  :unfinished_task)
  101.     add_command($FIN_TASK, :finished_task)
  102.     add_command($CANCEL, :cancel)
  103.   end
  104. end
  105.  
  106. class Window_TaskLeft < Window_Selectable
  107.   attr_reader :finished
  108.   def initialize
  109.     super(0,48,160,Graphics.height - 48)
  110.     create_contents
  111.     @finished = false
  112.     [url=home.php?mod=space&uid=370741]@Index[/url] = 0
  113.     refresh
  114.     deactivate
  115.   end
  116.   def set_finish(finish)
  117.     @finished = finish
  118.     set_item_max
  119.   end
  120.   def item_max
  121.     return @item_max != nil ? @item_max : 0
  122.   end
  123.   def set_item_max
  124.     if @finished
  125.       @item_max = $game_party.finished_tasks.size
  126.     else
  127.       @item_max = $game_party.unfinished_tasks.size
  128.     end
  129.   end
  130.  
  131.   def refresh
  132.     set_item_max
  133.     super
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 項目の描画
  137.   #--------------------------------------------------------------------------
  138.   def draw_item(index)
  139.     text = ""
  140.     unless @finished
  141.       if $game_party.unfinished_tasks[index] != nil
  142.         text = $game_party.unfinished_tasks[index].name
  143.       end
  144.     else
  145.       if $game_party.finished_tasks[index] != nil
  146.         text = $game_party.finished_tasks[index].name  
  147.       end
  148.     end
  149.     draw_text(item_rect_for_text(index), text)
  150.   end
  151.  
  152. end
  153.  
  154. class Window_TaskRight < Window_Base
  155.   attr_reader :left_index
  156.   def initialize
  157.     super(160,48,Graphics.width - 160,Graphics.height - 48)
  158.     create_contents
  159.     @left_index = 0
  160.     @finished = false
  161.     refresh
  162.   end
  163.   def set_index(i)
  164.     @left_index = i
  165.     refresh
  166.   end
  167.   def set_finish(i)
  168.     @finished = i
  169.   end
  170.  
  171.   def refresh
  172.     contents.clear
  173.     draw_desc
  174.   end
  175.   def draw_desc
  176.     if @finished
  177.       if $game_party.finished_tasks[@left_index] != nil
  178.         draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)
  179.       end
  180.     else
  181.       if $game_party.unfinished_tasks[@left_index] != nil
  182.         draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)
  183.       end
  184.     end
  185.   end
  186.  
  187. end
  188.  
  189. class Scene_Task < Scene_Base
  190.   def start
  191.     super
  192.     create_task_type_window
  193.     create_left_window
  194.     create_right_window
  195.   end
  196.   def update
  197.     super
  198.     if @left_window.active
  199.       if Input.trigger?(:B)
  200.         @left_window.deactivate
  201.         @task_type_window.activate
  202.       end
  203.       if Input.trigger?(:UP) || Input.trigger?(:DOWN)
  204.         @right_window.set_finish(@left_window.finished)
  205.         @right_window.set_index(@left_window.index)
  206.       end
  207.     end
  208.   end
  209.  
  210.   def terminate
  211.     super
  212.   end
  213.   def create_task_type_window
  214.     @task_type_window = Window_Task_Type.new
  215.     @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))
  216.     @task_type_window.set_handler(:finished_task,method(:view_finished_task))
  217.     @task_type_window.set_handler(:cancel,method(:return_scene))
  218.   end
  219.   def create_left_window
  220.     @left_window = Window_TaskLeft.new
  221.     @left_window.set_finish(false)
  222.     @left_window.refresh
  223.   end
  224.   def create_right_window
  225.     @right_window = Window_TaskRight.new
  226.     @right_window.refresh
  227.   end
  228.   def view_unfinished_task
  229.     @left_window.set_finish(false)
  230.     @left_window.refresh
  231.     @left_window.activate
  232.     @task_type_window.deactivate
  233.     @right_window.set_finish(false)
  234.     @right_window.set_index(@left_window.index)
  235.   end
  236.   def view_finished_task
  237.     @left_window.set_finish(true)
  238.     @left_window.refresh
  239.     @left_window.activate
  240.     @task_type_window.deactivate
  241.     @right_window.set_finish(true)
  242.     @right_window.set_index(@left_window.index)
  243.   end
  244.  
  245. end
  246.  
  247.   if $MEUN_ON == true
  248.         class Window_MenuCommand < Window_Command
  249.           alias task_add_main_commands add_main_commands #A
  250.           def add_main_commands
  251.               task_add_main_commands#A
  252.               add_command($TASK_NAME, :task, main_commands_enabled)#B
  253.           end
  254.         end   
  255.         class Scene_Menu < Scene_MenuBase
  256.            alias task_create_command_window create_command_window#C
  257.            def create_command_window
  258.                task_create_command_window  #C
  259.                @command_window.set_handler(:task,     method(:task))#B 跟 後面是 D
  260.            end
  261.            def task #D
  262.                SceneManager.call(Scene_Task)
  263.            end
  264.         end   
  265.     else
  266.   end

点评

这个脚本无法翻页超过一定数量无法显示名字。。。。。。  发表于 2013-9-4 21:03
394178110 发表于 2013-9-4 11:04:04
{:2_276:}  怪物图鉴那个脚本做这个不太合适(我不会改)

点评

遊戲裡有那些系統卻不會改? 都 用別人腳本/伸手 是沒法進步的  发表于 2013-9-4 11:17
电锤斧王 发表于 2013-9-4 09:27:39
你发的链接我看了,你可以用那个脚本啊
电锤斧王 发表于 2013-9-4 09:24:49
你问了也是没人回答的,因为这个脚本是我写的。但是我这几天找工作,吃饭都成问题,实在是没心情解决这个
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-7 18:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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