O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Rickas VN Engine - Picture Choices

Iniciado por Raizen, 10/01/2013 às 18:27

Rickas VN Engine - Picture Choices

Compativel com: RMVX
Compatibilidade :boa
Facilidade de uso: fácil
Lag gerado: baixo

[box class=titlebg]
Criando um Visual Novel?
[/box]

Veja todos os scripts atuais

Scripts atuais do Rickas VN Engine

[box class=titlebg]
Condições de Uso
[/box]
  Pode ser modificado, e divulgado em outros lugares, mas peço que não retire os créditos.

[box class=titlebg]
Para que serve o script
[/box]

Ele adiciona um estilo de escolha de opções por imagens, visualmente mais bonito que o padrão do RPG Maker.

[box class=titlebg]
Script.
[/box]

#=======================================================
#        Rickas VN Engine - Picture Choice
# Autor: Raizen
# Compatibilidade: RMVX
# Comunidade: centrorpg.com
# Adiciona um estilo de escolhas por imagens, lembrando muito
# as escolhas de Visual Novels
#=======================================================


module Rai_VN_Engine
# Correção da posição em X e Y das escolhas
Opt_X = 20
Opt_Y = 50
# Espaçamento em Y das imagens de escolha
Space = 50

# Correção da posição dos textos
Text_Y = 45

# Opacidade de escolha, caso não esteja selecionado
Opacity = 170

# As imagens devem estar em uma pasta chamada Message, dentro da
# pasta Graphics do seu projeto.
#Imagem de fundo das escolhas, coloque o nome da imagem entre aspas "".
Image = "choices"
end
#==============================================================================
#===================== A partir daqui começa o script =========================
#==============================================================================

#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  Um interpretador para executar os comandos de evento. Esta classe é usada
# internamente pelas classes Game_Map, Game_Troop e Game_Event.
#==============================================================================

class Game_Interpreter
  #--------------------------------------------------------------------------
  # * Configuação de escolhas
  #     params : parâmetros
  #--------------------------------------------------------------------------
  def setup_choices(params)
$choices_pics = Array.new(params[0].size)
    for n in 0...$choices_pics.size
      $choices_pics[n] = Sprite.new
      $choices_pics[n].bitmap = Cache.message(Rai_VN_Engine::Image)
      $choices_pics[n].opacity = 255
      $choices_pics[n].y = Rai_VN_Engine::Opt_Y + n * Rai_VN_Engine::Space + (4 - $choices_pics.size)*Rai_VN_Engine::Space
      $choices_pics[n].x = Rai_VN_Engine::Opt_X
      $choices_pics[n].z = 210
    end
    if $game_message.texts.size <= 4 - params[0].size
      $game_message.choice_start = $game_message.texts.size
      $game_message.choice_max = params[0].size
      for s in params[0]
        $game_message.texts.push(s)
      end
      $game_message.choice_cancel_type = params[1]
      $game_message.choice_proc = Proc.new { |n| @branch[@indent] = n }
      @index += 1
    end
  end
end


#==============================================================================
# ** Cache
#------------------------------------------------------------------------------
#  Este modulo carrega cada gráfico, cria um objeto de Bitmap e retém ele.
# Para acelerar o carregamento e preservar memória, este módulo matém o
# objeto de Bitmap em uma Hash interna, permitindo que retorne objetos
# pré-existentes quando mesmo Bitmap é requerido novamente.
#==============================================================================


module Cache
  #--------------------------------------------------------------------------
  # * Carregamento dos gráficos de animação
  #     filename : nome do arquivo
  #     hue      : informações da alteração de tonalidade
  #--------------------------------------------------------------------------
  def self.message(filename)
    load_bitmap("Graphics/Message/", filename)
  end
end

#==============================================================================
# Window_Message
#------------------------------------------------------------------------------
# Janela reponsável pela exibição de sentenças na caixa de mensagens.
#==============================================================================

class Window_Message < Window_Selectable
alias rickas_engine_terminate terminate_message
alias rickas_engine_update update
alias rickas_gold create_gold_window
alias rickas_gold2 dispose_gold_window
  def terminate_message
    rickas_engine_terminate
    @choices_ric.clear_all
    if $choices_pics
      $choices_pics.each{|pics| pics.bitmap.dispose; pics.dispose}
      $choices_pics = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Atualização do processo
  #--------------------------------------------------------------------------
  def update
    rickas_engine_update
    if $choices_pics
    $choices_pics.each{|pic| pic.opacity = Rai_VN_Engine::Opacity}
    $choices_pics[index].opacity = 255
    end
  end
  #--------------------------------------------------------------------------
  # Início da mensagem
  #--------------------------------------------------------------------------
  def start_message
    @text = ""
    for i in 0...$game_message.texts.size
      @text += $game_message.texts[i].clone + "\x00" 
      @text = "" if i >= $game_message.choice_start
      @choices_ric.refresh($game_message.texts[i]) if i >= $game_message.choice_start
    end
    @item_max = $game_message.choice_max
    convert_special_characters
    reset_window
    new_page unless i >= $game_message.choice_start
  end
  #--------------------------------------------------------------------------
  # Criação da janela de dinheiro
  #--------------------------------------------------------------------------
  def create_gold_window
    rickas_gold
    @choices_ric = Window_ChoiceList.new
  end
  def dispose_gold_window
    rickas_gold2
    @choices_ric.dispose
  end
  #--------------------------------------------------------------------------
  # Atualização do cursor
  #--------------------------------------------------------------------------
  def update_cursor
      self.cursor_rect.empty
  end
end
#==============================================================================
# ** Window_Choices
#------------------------------------------------------------------------------
#  Esta janela é utilizada para o comando de eventos [Mostrar Escolhas]
#==============================================================================

class Window_ChoiceList < Window_Base
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     message_window : janela de mensagem
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 544, 288)
    self.opacity = 0
    self.z = 211
    @index = 0
  end
  #--------------------------------------------------------------------------
  # * Atualização do processo
  #--------------------------------------------------------------------------
  def refresh(text)
    draw_item(text)
    @index += 1
  end
  def clear_all
    @index = 0
    self.contents.clear
  end
  #--------------------------------------------------------------------------
  # * Desenho de um item
  #     index : índice do item
  #--------------------------------------------------------------------------
  def draw_item(text)
    self.contents.draw_text(0, @index * Rai_VN_Engine::Space + Rai_VN_Engine::Text_Y, 544, 24, text, 1)
  end
end


[box class=titlebg]
Imagens
[/box]
Imagens caso queira utilizar o picture choice do [user]B.loder[/user]
Choice Pic:
Spoiler
[close]

Imagens de amostra:
Spoiler
[close]

[box class=titlebg]
Download
[/box]

Não necessário

[box class=titlebg]
Créditos e Avisos
[/box]

Raizen pelo script
B.loder pelo design