ArthurMaker Rei
Mensagens : 142 MakerCoins : 10321 Data de inscrição : 11/04/2010 Prêmios :
Este membro ainda não
recebeu nenhum prêmio...
| Assunto: [RGSS2] Leitura de Livros Personalizada Sex Jul 09, 2010 2:09 am | |
| [RGSS2] Leitura de Livros Personalizada Por Darklich Uma ótima opção para quem tem sistema de diário em seu jogo, ou qualquer outro livro. Este script deixará a leitura de seu livro personalizada, dando um toque profissional. Instruções de uso ao decorrer do script.ScreenshotScript- Spoiler:
- Código:
-
#==============================================================================# # = = = = = = = = = = = = = = = Sistema de livros = = = = = = = = = = = = = = =# #=================#============================================================# # por: Darklich # # 30/03/09 # # v 1.0 # #=================#
#=============================================================================== # Instruções: # ¤ Para ler o livro criado use o comando 'chamar script' com o seguinte # código: # $scene = Scene_Livro.new(nome, titulo, cena) # nome = nome do livro na biblioteca # titulo = titulo que irá aparecer na janela # cena = scene que irá ao sair(ex.: Scene_Map, Scene_Menu etc) #=============================================================================== module Livros #=============================================================================== # Configurações: # # 1º - para usar o script é preciso ter uma pasta padrão(se for a pasta princi- # -pal do jogo deixe apenas "" ) # obs.: o limite de linhas é 10 por página DIR = "Graphics/livros/" # 2º para cada livro criado é necessário um documento de texto por página # (modo: NOME_DO_LIVRO = {Nº da pagina => "nome do arquivo da página"}) LIVRO = {1 => "Livro 1-1.txt", 2 => "Livro 1-2.txt"} LIVRO2 = {1 => "Livro 2-1.txt"} # 3º Todo livro deve ter um nome de chamada e estar na biblioteca. # (modo: BIBLIOTECA = {"nome" => LIVRO, "nome2" => LIVRO2 etc}) BIBLIOTECA = {"receita" => LIVRO, "fim" => LIVRO2} # 4º Fonte a ser usada FONTE = "Showcard Gothic" #=============================================================================== end
#=============================================================================== # ¤Window_Titulo¤ # é a janela que mostra o título do livro. #=============================================================================== class Window_Titulo < Window_Base def initialize(titulo) super(112,352-WLH*12,332,WLH+32) @titulo = titulo self.contents.font.name = Livros::FONTE refresh end def refresh self.contents.draw_text(0,0,self.width-32,WLH,@titulo,1) end end
#=============================================================================== # ¤Window_Report¤ # é a janela principal do livro, é a página de leitura. #=============================================================================== class Window_Report < Window_Base attr_accessor :pagina def initialize(texto) super(112,416-WLH*11-32,332,WLH*11+32) @texto = Livros::BIBLIOTECA[texto] @pagina = 1 refresh end def refresh self.contents.clear l = 0 # linha if @texto[@pagina] != nil # 1 for i in @texto[@pagina] # 2 d = i for i in File.open(Livros::DIR + i,"r").readlines("\n") # 3 a = i.unpack("C*").pack("U*") a[a.size - 1] = "" self.contents.font.name = Livros::FONTE self.contents.draw_text(0,WLH * l,self.width,WLH,a) l += 1 end # 3 end # 2 end # 1 self.contents.draw_text(0,WLH*10,self.width-32,WLH,@pagina.to_s + "/" + @texto.size.to_s,2) end end
#=============================================================================== # ¤Secne_Livro¤ # é a cena que mostra o livro. #=============================================================================== class Scene_Livro < Scene_Base def initialize(texto,titulo, scene) # criar spriteset @spriteset = Spriteset_Map.new # criar janelas @titulo = Window_Titulo.new(titulo) @window = Window_Report.new(texto) # criar variáveis @texto = texto @scene = scene end def terminate @spriteset.dispose @titulo.dispose @window.dispose end def update #atualizar o texto @window.refresh # mudar de página if Input.trigger?(Input::RIGHT) and @window.pagina < Livros::BIBLIOTECA[@texto].size @window.pagina += 1 end if Input.trigger?(Input::LEFT) and @window.pagina > 1 @window.pagina -= 1 end # sair if Input.trigger?(Input::B) $scene = @scene.new end end end
class Scene_Item def determine_item for i in Livros::BIBLIOTECA.keys if @item.note.include?("["+i+"]") $game_party.consume_item(@item) $scene = Scene_Livro.new(i,i,Scene_Item) @item_window.draw_item(@item_window.index) else if @item.for_friend? show_target_window(@item_window.index % 2 == 0) if @item.for_all? @target_window.index = 99 else if $game_party.last_target_index < @target_window.item_max @target_window.index = $game_party.last_target_index else @target_window.index = 0 end end else use_item_nontarget end end end end end
|
|