Advertisement
Foure4

[RMVXA] Book Library (Библиотека)

Feb 23rd, 2015
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 27.35 KB | None | 0 0
  1. =begin
  2. ==============================
  3. Название: [RMVXA] Book Library (Библиотека)  
  4. Автор: Dirge
  5. Исправления: DeadElf79
  6. Версия 1.9.3
  7. ==============================
  8. Вроде как совместим с:
  9. Yami Engine Ace - Pop Message от 2012.06.07
  10. Yanfly Engine Ace - Ace Message System v1.05
  11. ATS: Message Options v1.0.7
  12. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  13.  
  14. Данный скрипт, основан на стандартной системе сообщений мейкера и переписывает
  15. некоторые его свойства. Поэтому, не исключены конфликты с другими системами
  16. сообщений. Если у вас возник конфликт какой-либо системы сообщений и данного
  17. скрипта - сообщите мне, я постараюсь эту проблему решить. Сам я не проверял
  18. совместимости с другими скриптами.
  19.  
  20. Скрипт позволяет считывать текст с .txt файла в папке Books, для этого создайте
  21. в папке Books, вашу книгу в .txt формате, например book of death.txt,
  22. book of death 2.txt, и тд.
  23. Так как скрипт создан на основе системы сообщений, то в ваших текстах вы можете
  24. использовать все функции сообщений мейкера, такие как показ иконок, значений переменных,
  25. имен персонажей и тд.
  26.  
  27. ВАЖНО! Сохраняйте ваши тексты только в кодировке UTF-8
  28.  
  29. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  30.  
  31. Использование:
  32. Установка - поместить в пользовательские скрипты выше Main
  33.  
  34. В текущей версии скрипт можно вызвать только прямо с ивента, сделать это можно
  35. с помощью команды "выполнить скрипт"
  36. ==================    
  37.     call_scene_book
  38.       Вызывает сцену библиотеки
  39.    
  40. ==================
  41.     call_book(book, title)
  42.       вызывает определенную книгу по порядковому номеру.
  43.       измените book на любой порядковый номер вашей книги
  44.       title - переключатель показа названия книги, по-умолчанию название книги
  45.       показывается, но с помощью этой команды, можно выключить показ названия
  46.       в текущем вызове книги. true(вкл)\false(выкл). Опциональная функция
  47.       ее можно не писать, тогда по-умолчинию будет включен показ названия.
  48.      
  49. ==================    
  50.     book_switch(book, switch)
  51.       Чтобы показать или наоборот скрыть отображение какой-либо книги,
  52.       используйте данную команду.
  53.       измените book на любой порядковый номер вашей книги, узнать его можно
  54.       ниже в настройках. Порядок ваших книг идет строго такой в каком вы его
  55.       выставите в списке "Book_Names", отсчет идет от 0, сверху вниз. А вместо switch
  56.       укажите значение true, если вы хотите показывать выбраную книгу или false,
  57.       если не хотите :)
  58.      
  59. ==================
  60.                               !!!!!!!!!!!!!!!!!!!!
  61.  Чтобы указать новую страницу вашей книги, используйте команду [page], прямо
  62.  в тексте вашей книги.
  63.                              
  64. =end
  65.  
  66.  
  67. # Настройки скрипта
  68. module BookLibrary
  69.  
  70. # Укажите здесь выши книги, по шаблону показаному ниже. В конце каждой книги,
  71. # после квадратных скобок, не забывайте ставить запятую, только после последней
  72. # книги запятая не нужна.
  73. # ["название файла книги", "название книги в библиотеке", доступна ли книга из
  74. # библиотеки]
  75.   Book_Names = [
  76.  
  77.     ["0", "Тестовая книга", false],
  78.     ["1", "Вторая тестовая книга", false],
  79.  
  80.   ]# Не удалять.
  81.  
  82.  
  83. # Укажите графику фона и окна для ваших книг, порядок такой же как и в списке выше.
  84. # Файлы фона должны находиться в папке Graphics\Pictures
  85. # Файлы графики окна должны находиться в папке Graphics\System
  86. # ["название файла фона", "название файла графики окна",
  87. # [изменить тонировку окна, через запятую введите значение цвета RGB]]
  88. # если вы хотите, чтобы к книге применялись значения по уполчанию, то напишите nil
  89. # вместо значения. Значений должно быть столько же, сколько и книг.
  90.   Book_Graphics = [
  91.  
  92.   [nil, "Window2",[133, 111, 110]],
  93.   [nil, nil, nil]
  94.  
  95.   ]# Не удалять.
  96.  
  97.  
  98. # Цвет названия для всех книг.
  99.   Book_Title_Color = [180, 80, 0] # заменить на nil - если функция не нужна
  100.  
  101. # Здесь можно названичить шрифт для названия книг. Помните, что если вы используете
  102. # шрифты которые не идут по-умолчанию вместе в windows, то их нужно помещать
  103. # в папку Fonts в корне папки проекта, если такой папки нет - создайте ее.
  104.   Title_Font = "Times New Roman"
  105.  
  106. # Прозрачность всех окон, введите значение от 0 до 255.
  107.   Windows_Opacity = 255
  108.  
  109.  
  110. #Графика всех окон сцены по-умолчанию
  111.   Default_Windowskin = "Window"
  112.  
  113.  
  114. # Графика фона по-умолчанию во время выбора книги, к самим книгам не применяется,
  115. # если только не включить данную фунцкию
  116.   Default_Background = nil # заменить на nil - если функция не нужна
  117.  
  118.  
  119. # тонировочный цвет окна по-умолчанию для всей сцены, измените на nil чтобы
  120. # использовать цвет окна заданный через вкладку база данных => система
  121.   Default_Tone = nil #[33, 0, 77]
  122.  
  123.  
  124. #Для включения применения значения Default_Background к книгам, включите данный
  125. #переключатель. true(вкл)\false(выкл)
  126.   Book_Back_Switch = true
  127.  
  128.  
  129. # Резерв переменной, для хранения значений доступных книг, просто
  130. # укажите какую-нибудь переменную и забудьте о ней :)
  131.   Show_Var = 1
  132.  
  133.  
  134. # Звук смены страницы ['название SE файла', громкость, темп]
  135.   Page_Change_SE = ['Book2', 80, 100]
  136.  
  137.  
  138. # Показывать пункт общей библиотеки доступных книг в меню игры или нет.
  139. # true(вкл)\false(выкл)
  140. # Если в библиотеке нету доступных книг, меню не удалится, но деактивируется.
  141.   Library_Menu_Switch = true
  142.  
  143.  
  144. # Название пункта библиотеки в меню игры, актуально если вы включили
  145. # переключатель выше.
  146.   Library_Menu_Name = "Книги"
  147.  
  148.  
  149. end
  150. # Конец настроек скрипта
  151.  
  152. $imported = {} if $imported.nil?
  153. #==============================================================================#
  154. # class Game_Temp                
  155. #==============================================================================#
  156. class Game_Temp
  157.   attr_accessor :page_num, :page_max, :one_book
  158.   attr_accessor :show_book_title, :page_changed
  159.   attr_accessor :book_filename, :book_title
  160.  
  161.   alias de79_initialize initialize
  162.   def initialize
  163.     de79_initialize
  164.     @page_num = 0
  165.     @page_max = 0
  166.     @show_book_title = true
  167.     @one_book = [false, 0, @show_book_title]
  168.     @page_changed = false
  169.     @book_filename, @book_title = "", ""
  170.   end
  171. end
  172. #==============================================================================#
  173. # class Game_Temp end                    
  174. #==============================================================================#
  175.  
  176. #==============================================================================#
  177. # class Window_Message                    
  178. #==============================================================================#
  179. class Window_Book < Window_Message
  180.  
  181.   def window_width
  182.     Graphics.width
  183.   end
  184.  
  185.   def window_height
  186.     fitting_height(visible_line_number)
  187.   end
  188.  
  189.   def visible_line_number
  190.     if $game_temp.show_book_title == true
  191.       return (Graphics.height - 120) / 24
  192.     else
  193.       return (Graphics.height - 72) / 24
  194.     end
  195.   end
  196.  
  197.   def clear_flags
  198.     @show_fast = true # Fast forward flag
  199.     @line_show_fast = false     # Fast forward by line flag
  200.     @pause_skip = false         # Input standby omission flag
  201.   end
  202.  
  203.   def fiber_main
  204.     process_input
  205.     process_all_text if $game_message.has_text?
  206.     $game_temp.page_changed = false
  207.     @fiber = nil
  208.   end
  209.  
  210.   def input_pause
  211.     Fiber.yield until $game_temp.page_changed == true
  212.   end
  213.  
  214.   def process_new_line(text, pos)
  215.     @line_show_fast = false
  216.     super
  217.   end
  218.  
  219.   def process_all_text # для совместимости c YSE-PopMessage и ATS: Message Options v1.0.7
  220.     open_and_wait
  221.     text = convert_escape_characters($game_message.all_text)
  222.     pos = {}
  223.     new_page(text, pos)
  224.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  225.   end
  226.  
  227.   def adjust_message_window_size # для совместимости c YEA-MessageSystem
  228.   end
  229.  
  230. end
  231. #==============================================================================#
  232. # class Window_Message end                    
  233. #==============================================================================#
  234.  
  235. #==============================================================================#
  236. # class Window_PageInfo                    
  237. #==============================================================================#
  238. class Window_PageInfo < Window_Base
  239.  
  240.   def initialize(page_num, page_max)
  241.     super(0, window_y, window_width, window_height)
  242.     draw_info_text(page_num, page_max)
  243.   end
  244.  
  245.   def window_y
  246.     return $game_temp.show_book_title ? Graphics.height - 48 : Graphics.height - 56
  247.   end
  248.  
  249.   def window_width
  250.     Graphics.width
  251.   end
  252.  
  253.   def window_height
  254.     return $game_temp.show_book_title ? 48 : 56
  255.   end
  256.  
  257.   def draw_info_text(page_num, page_max)
  258.     pages = (page_num+1).to_s+'/'+page_max.to_s
  259.     (page_max > 1) && (page_num >= 1) ? change_color(normal_color, true) : change_color(normal_color, false)
  260.     draw_text(0, 0, contents.width, contents.height, "← Назад", 0)
  261.     (page_max > 1) && (page_num <= page_max - 2) ? change_color(normal_color, true) : change_color(normal_color, false)
  262.     draw_text(0, 0, contents.width, contents.height, "Вперед →", 2)
  263.     change_color(normal_color, true)
  264.     draw_text(0, 0, contents.width, contents.height, pages, 1)
  265.   end
  266.  
  267.   def refresh
  268.     contents.clear
  269.     page_num, page_max = $game_temp.page_num, $game_temp.page_max
  270.     draw_info_text(page_num, page_max)
  271.   end
  272.  
  273. end
  274. #==============================================================================#
  275. # class Window_PageInfo end                  
  276. #==============================================================================#
  277.  
  278.  
  279. #==============================================================================#
  280. # class Window_BookName                    
  281. #==============================================================================#
  282. class Window_BookName < Window_Base
  283.  
  284.   def initialize
  285.     super(0, 0, Graphics.width, Graphics.height == 416 ? fitting_height(1)+8 : fitting_height(1))
  286.     name_refresh
  287.   end  
  288.    
  289.   def name_refresh
  290.     contents.clear
  291.     if BookLibrary::Book_Title_Color.nil?
  292.       contents.font.color = Font.default_color
  293.     else
  294.       color = BookLibrary::Book_Title_Color
  295.       red = color[0]
  296.       green = color[1]
  297.       blue = color[2]
  298.       contents.font.color.set(red, green, blue)
  299.     end
  300.     contents.font.name = BookLibrary::Title_Font if !BookLibrary::Title_Font.empty?
  301.     draw_text(0, 0, contents.width, contents.height, $game_temp.book_title, 1)
  302.   end
  303.  
  304.  
  305. end
  306. #==============================================================================#
  307. # class Window_BookName end                  
  308. #==============================================================================#
  309.  
  310.  
  311. #==============================================================================#
  312. # class Window_BookSelect                    
  313. #==============================================================================#
  314. class Window_BookSelect < Window_Command
  315.  
  316.   def initialize(x, y)
  317.     super(x, y)
  318.   end
  319.  
  320.   def window_width
  321.     return Graphics.width
  322.   end
  323.  
  324.  
  325.   def window_height
  326.     return Graphics.height
  327.   end
  328.  
  329.   def make_command_list
  330.     book_id = 0
  331.     BookLibrary::Book_Names.size.times do
  332.       add_command(BookLibrary::Book_Names[book_id][1], :books_name) if $game_variables[BookLibrary::Show_Var][book_id] == true
  333.       book_id +=1
  334.     end
  335.   end
  336.  
  337. end
  338. #==============================================================================#
  339. # class Window_BookSelect end                    
  340. #==============================================================================#
  341.  
  342.  
  343. #==============================================================================#
  344. # class Scene_Book                    
  345. #==============================================================================#
  346. class Scene_Book < Scene_Base
  347.  
  348.   def start
  349.     super
  350.     $game_temp.page_changed = true
  351.     $game_temp.page_max = 0
  352.     $game_temp.page_num = 0
  353.     create_all_windows
  354.     book_select_list
  355.     create_background
  356.     start_one_book if $game_temp.one_book[0]
  357.     update_tone
  358.     book_select_tone_upd
  359.     windows_opacity
  360.   end
  361.  
  362.   def create_background
  363.     @background_sprite = Sprite.new
  364.     @background_sprite.bitmap = Cache.picture(BookLibrary::Default_Background) unless BookLibrary::Default_Background.nil?
  365.   end
  366.  
  367.   def create_all_windows
  368.     create_bookselect_window
  369.     create_message_window
  370.     create_page_info_window
  371.     create_bookname_window
  372.   end
  373.  
  374.   def create_bookselect_window
  375.     @bookselect_window = Window_BookSelect.new(0, 0)
  376.     @bookselect_window.set_handler(:books_name,   method(:on_book_name))
  377.     @bookselect_window.set_handler(:cancel,   method(:return_scene))
  378.     @bookselect_window.hide.deactivate if $game_temp.one_book[0]
  379.     @bookselect_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  380.   end
  381.  
  382.   def create_message_window
  383.     @message_window = Window_Book.new
  384.     if $game_temp.show_book_title == true
  385.       @message_window.y = Graphics.height == 416 ? 56 : 48
  386.     else
  387.       @message_window.y = 0
  388.     end
  389.     $game_message.background = 0
  390.     @message_window.openness = 255
  391.     @message_window.hide
  392.   end
  393.  
  394.   def create_page_info_window
  395.     page_num = $game_temp.page_num
  396.     page_max = $game_temp.page_max
  397.     @page_info_window = Window_PageInfo.new(page_num,page_max)
  398.     @page_info_window.hide
  399.   end
  400.  
  401.   def create_bookname_window
  402.     @bookname_window = Window_BookName.new
  403.     @bookname_window.hide
  404.   end
  405.  
  406.   def windows_opacity
  407.     @bookname_window.opacity = BookLibrary::Windows_Opacity
  408.     @message_window.opacity = BookLibrary::Windows_Opacity
  409.     @page_info_window.opacity = BookLibrary::Windows_Opacity
  410.     @bookselect_window.opacity = BookLibrary::Windows_Opacity
  411.   end
  412.  
  413.   def return_scene
  414.     $game_message.clear
  415.     Sound.play_cancel
  416.     Input.update
  417.     @message_window.visible && !$game_temp.one_book[0] ? cancel_scene : SceneManager.return
  418.   end
  419.  
  420.   def terminate
  421.     super
  422.     @background_sprite.bitmap.dispose unless @background_sprite.bitmap.nil?
  423.   end
  424.  
  425.   def cancel_scene
  426.     @background_sprite.bitmap = nil
  427.     @background_sprite.bitmap = Cache.picture(BookLibrary::Default_Background) unless BookLibrary::Default_Background.nil?
  428.     @message_window.hide
  429.     @bookname_window.hide
  430.     @page_info_window.hide
  431.     @bookselect_window.show.activate
  432.   end
  433.  
  434.   def filebook_text_update
  435.     $game_message.clear
  436.     $game_temp.page_num = 0
  437.     @filebook_text = File.read("Books/"+$game_temp.book_filename.to_s+".txt")
  438.     @filebook_text = @filebook_text.reverse.chop.reverse
  439.     @filebook_text = @filebook_text.split('[page]')
  440.     $game_message.add(@filebook_text[$game_temp.page_num])
  441.   end
  442.  
  443.   def update_tone
  444.     if !$game_temp.one_book[0] && !@available_graphics[@bookselect_window.index][2].nil?
  445.    
  446.       tones = @available_graphics[@bookselect_window.index][2]
  447.       red = tones[0]
  448.       green = tones[1]
  449.       blue = tones[2]
  450.       @bookname_window.tone.set(red, green, blue)
  451.       @message_window.tone.set(red, green, blue)
  452.       @page_info_window.tone.set(red, green, blue)
  453.     elsif $game_temp.one_book[0] &&
  454.     !BookLibrary::Book_Graphics[$game_temp.one_book[1]][2].nil?
  455.    
  456.       tones = BookLibrary::Book_Graphics[$game_temp.one_book[1]][2]
  457.       red = tones[0]
  458.       green = tones[1]
  459.       blue = tones[2]
  460.       @bookname_window.tone.set(red, green, blue)
  461.       @message_window.tone.set(red, green, blue)
  462.       @page_info_window.tone.set(red, green, blue)
  463.     else
  464.       if !BookLibrary::Default_Tone.nil?
  465.         tones = BookLibrary::Default_Tone
  466.         red = tones[0]
  467.         green = tones[1]
  468.         blue = tones[2]
  469.         @bookname_window.tone.set(red, green, blue)
  470.         @message_window.tone.set(red, green, blue)
  471.         @page_info_window.tone.set(red, green, blue)
  472.       else
  473.         @bookname_window.tone.set($data_system.window_tone)
  474.         @message_window.tone.set($data_system.window_tone)
  475.         @page_info_window.tone.set($data_system.window_tone)
  476.       end
  477.     end
  478.   end
  479.  
  480.   def book_select_tone_upd
  481.     if BookLibrary::Default_Tone.nil?
  482.       @bookselect_window.tone.set($data_system.window_tone)
  483.     else
  484.       tones = BookLibrary::Default_Tone
  485.       red = tones[0]
  486.       green = tones[1]
  487.       blue = tones[2]
  488.       @bookselect_window.tone.set(red, green, blue)
  489.     end
  490.   end
  491.  
  492.   def update
  493.     super
  494.     if Input.trigger?(:B)
  495.       return_scene
  496.     elsif Input.trigger?(:LEFT) && enabled_prev_page
  497.       on_page_prev
  498.     elsif Input.trigger?(:RIGHT) && enabled_next_page
  499.       on_page_next
  500.     end
  501.     update_tone
  502.     book_select_tone_upd
  503.   end
  504.  
  505.   def book_select_list
  506.     @available_book = []
  507.     @available_graphics = []
  508.     id=0
  509.     BookLibrary::Book_Names.each do |i|
  510.       @available_book.push i if $game_variables[BookLibrary::Show_Var][id] == true
  511.       id +=1
  512.     end
  513.     id=0
  514.     BookLibrary::Book_Graphics.each do |i|
  515.       @available_graphics.push i if $game_variables[BookLibrary::Show_Var][id] == true
  516.       id += 1
  517.     end
  518.   end
  519.  
  520.   def book_graphics_change
  521.     if @available_graphics[@bookselect_window.index][1].nil?
  522.       @bookname_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  523.       @message_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  524.       @page_info_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  525.     else
  526.       @bookname_window.windowskin = Cache.system(@available_graphics[@bookselect_window.index][1])
  527.       @message_window.windowskin = Cache.system(@available_graphics[@bookselect_window.index][1])
  528.       @page_info_window.windowskin = Cache.system(@available_graphics[@bookselect_window.index][1])
  529.     end
  530.   end
  531.  
  532.   def one_book_graphics_change
  533.     if BookLibrary::Book_Graphics[$game_temp.one_book[1]][1].nil?
  534.       @bookname_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  535.       @message_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  536.       @page_info_window.windowskin = Cache.system(BookLibrary::Default_Windowskin)
  537.     else
  538.       @bookname_window.windowskin = Cache.system(BookLibrary::Book_Graphics[$game_temp.one_book[1]][1])
  539.       @message_window.windowskin = Cache.system(BookLibrary::Book_Graphics[$game_temp.one_book[1]][1])
  540.       @page_info_window.windowskin = Cache.system(BookLibrary::Book_Graphics[$game_temp.one_book[1]][1])
  541.     end
  542.   end
  543.  
  544.   def update_book_background
  545.     if $game_temp.one_book[0] == true && !BookLibrary::Book_Graphics[$game_temp.one_book[1]][0].nil?
  546.       @background_sprite.bitmap = Cache.picture(BookLibrary::Book_Graphics[$game_temp.one_book[1]][0])
  547.     elsif $game_temp.one_book[0] == false && !@available_graphics[@bookselect_window.index][0].nil?
  548.       @background_sprite.bitmap = Cache.picture(@available_graphics[@bookselect_window.index][0])
  549.     else
  550.       BookLibrary::Book_Back_Switch && !BookLibrary::Default_Background.nil? ? Cache.picture(BookLibrary::Default_Background) : @background_sprite.bitmap = nil
  551.     end
  552.   end
  553.  
  554.   def start_one_book
  555.     $game_temp.book_filename = BookLibrary::Book_Names[$game_temp.one_book[1]][0]
  556.     one_book_graphics_change
  557.     update_book_background
  558.     filebook_text_update
  559.     $game_temp.book_title = BookLibrary::Book_Names[$game_temp.one_book[1]][1]
  560.     $game_temp.page_max = @filebook_text.size
  561.     @message_window.show
  562.     @bookname_window.show if $game_temp.show_book_title
  563.     @page_info_window.show
  564.     @bookname_window.name_refresh
  565.     @page_info_window.refresh
  566.   end
  567.  
  568.   def on_book_name
  569.     $game_temp.page_changed = true
  570.     $game_temp.book_filename = @available_book[@bookselect_window.index][0]
  571.     $game_temp.book_title = @available_book[@bookselect_window.index][1]
  572.     book_graphics_change
  573.     update_book_background
  574.     filebook_text_update
  575.     $game_temp.page_max = @filebook_text.size
  576.     @bookselect_window.hide.deactivate
  577.     @message_window.show
  578.     @bookname_window.show
  579.     @page_info_window.show
  580.     @bookname_window.name_refresh
  581.     @page_info_window.refresh
  582.   end
  583.  
  584.   def on_page_next
  585.     $game_temp.page_changed = true
  586.     $game_temp.page_num += 1
  587.     $game_message.clear
  588.     $game_message.add(@filebook_text[$game_temp.page_num])
  589.     RPG::SE.new(BookLibrary::Page_Change_SE[0], BookLibrary::Page_Change_SE[1],
  590.     BookLibrary::Page_Change_SE[2]).play
  591.     @bookname_window.name_refresh
  592.     @page_info_window.refresh
  593.   end
  594.  
  595.   def on_page_prev
  596.     $game_temp.page_changed = true
  597.     $game_temp.page_num -= 1
  598.     $game_message.clear
  599.     $game_message.add(@filebook_text[$game_temp.page_num])
  600.     RPG::SE.new(BookLibrary::Page_Change_SE[0], BookLibrary::Page_Change_SE[1],
  601.     BookLibrary::Page_Change_SE[2]).play
  602.     @bookname_window.name_refresh
  603.     @page_info_window.refresh
  604.   end
  605.  
  606.   def enabled_prev_page
  607.     $game_temp.page_num >= 1
  608.   end
  609.  
  610.   def enabled_next_page
  611.     $game_temp.page_num <= $game_temp.page_max - 2
  612.   end
  613.  
  614. end
  615. #==============================================================================#
  616. # class Scene_Book end                  
  617. #==============================================================================#
  618.  
  619.  
  620.  
  621. #==============================================================================#
  622. # module DataManager                  
  623. #==============================================================================#
  624. module DataManager
  625.   class <<self
  626.     alias show_var_setup_new_game setup_new_game
  627.   end
  628.  
  629.   def self.setup_new_game
  630.     show_var_setup_new_game
  631.     book_show_var = []
  632.     book_id = 0
  633.     BookLibrary::Book_Names.size.times do
  634.       book_show_var.push BookLibrary::Book_Names[book_id][2]
  635.       book_id +=1
  636.     end
  637.     $game_variables[BookLibrary::Show_Var] = book_show_var
  638.   end
  639. end
  640. #==============================================================================#
  641. # module DataManager end                  
  642. #==============================================================================#
  643.  
  644. #==============================================================================#
  645. # class Scene_Menu                
  646. #==============================================================================#
  647. class Scene_Menu < Scene_MenuBase
  648.  
  649.   alias add_library_command create_command_window
  650.   def create_command_window
  651.     add_library_command
  652.     @command_window.set_handler(:library,  method(:command_library)) if  BookLibrary::Library_Menu_Switch
  653.   end
  654.  
  655.   def command_library
  656.     $game_temp.show_book_title = true
  657.     SceneManager.call(Scene_Book)
  658.     $game_temp.one_book[0] = false
  659.   end
  660. end
  661. #==============================================================================#
  662. # class Scene_Menu end                  
  663. #==============================================================================#
  664.  
  665. #==============================================================================#
  666. # class Window_MenuCommand                  
  667. #==============================================================================#
  668. class Window_MenuCommand < Window_Command
  669.   alias add_lib_comm add_original_commands
  670.   def add_original_commands
  671.     add_command(BookLibrary::Library_Menu_Name, :library, library_enabled) if  BookLibrary::Library_Menu_Switch
  672.   end
  673.  
  674.   def library_enabled
  675.     available_menu_book = []
  676.     id=0
  677.     BookLibrary::Book_Names.each do |i|
  678.       available_menu_book.push i if $game_variables[BookLibrary::Show_Var][id] == true
  679.       id +=1
  680.     end
  681.     available_menu_book.size > 0
  682.   end
  683. end
  684. #==============================================================================#
  685. # class Window_MenuCommand end                  
  686. #==============================================================================#
  687.  
  688. #==============================================================================#
  689. # class Game_Interpreter                
  690. #==============================================================================#
  691. class Game_Interpreter
  692.  
  693.   def call_book(book, title = true)
  694.     $game_temp.show_book_title = title
  695.     $game_temp.one_book = [true, book, $game_temp.show_book_title]
  696.     SceneManager.call(Scene_Book)
  697.   end
  698.  
  699.   def call_scene_book
  700.     $game_temp.show_book_title = true
  701.     $game_temp.one_book = [false, 0, $game_temp.show_book_title]
  702.     SceneManager.call(Scene_Book)
  703.   end
  704.  
  705.   def book_switch(book, switch)
  706.     $game_variables[BookLibrary::Show_Var][book] = switch
  707.   end
  708.  
  709. end
  710. #==============================================================================#
  711. # class Game_Interpreter end              
  712. #==============================================================================#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement