Rickas VN Engine - Picture Choices
Compativel com: RMVXAce
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 (http://centrorpg.com/index.php?page=Raizenscripts)
[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: RMVXAce
# 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 = -10
# 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
params[0].each {|s| $game_message.choices.push(s) }
$game_message.choice_cancel_type = params[1]
$game_message.choice_proc = Proc.new {|n| @branch[@indent] = n }
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_ChoiceList
#------------------------------------------------------------------------------
# Esta janela é utilizada para o comando de eventos [Mostrar Escolhas]
#==============================================================================
class Window_ChoiceList < Window_Command
#--------------------------------------------------------------------------
# * Inicialização do objeto
# message_window : janela de mensagem
#--------------------------------------------------------------------------
def initialize(message_window)
@message_window = message_window
super(0, 0)
self.openness = 0
self.opacity = 0
deactivate
end
#--------------------------------------------------------------------------
# * Atualização do processo
#--------------------------------------------------------------------------
def update
super
if $choices_pics
$choices_pics.each{|pic| pic.opacity = Rai_VN_Engine::Opacity}
$choices_pics[index].opacity = 255
end
end
#--------------------------------------------------------------------------
# * Atualização da posição da janela
#--------------------------------------------------------------------------
def update_placement
self.width = Graphics.width
self.width = [width, Graphics.width].min
self.height = fitting_height($game_message.choices.size)*2
self.x = 0
if @message_window.y >= Graphics.height / 2
self.y = @message_window.y - height
else
self.y = @message_window.y + @message_window.height
end
self.y += Rai_VN_Engine::Text_Y
self.z = 211
end
#--------------------------------------------------------------------------
# * Cálculo da altura do conteúdo da janela
#--------------------------------------------------------------------------
def contents_height
fitting_height($game_message.choices.size)*2 - 30
end
#--------------------------------------------------------------------------
# * Desenho de um item
# index : índice do item
#--------------------------------------------------------------------------
def draw_item(index)
draw_text(0, index * Rai_VN_Engine::Space, Graphics.width, fitting_height(1) - 5, command_name(index), 1)
end
#--------------------------------------------------------------------------
# * Definição de cancelamento
#--------------------------------------------------------------------------
def cancel_enabled?
$game_message.choice_cancel_type > 0
end
#--------------------------------------------------------------------------
# * Atualização do cursor
#--------------------------------------------------------------------------
def update_cursor
cursor_rect.empty
end
#--------------------------------------------------------------------------
# * Chamada de controlador de cancelamento
#--------------------------------------------------------------------------
def call_cancel_handler
$game_message.choice_proc.call($game_message.choice_cancel_type - 1)
close
end
def close
super
$choices_pics.each{|pics| pics.bitmap.dispose; pics.dispose}
$choices_pics = nil
end
end
[box class=titlebg]
Imagens
[/box]
Imagens caso queira utilizar o picture choice do [user]B.loder[/user]
Choice Pic:
Spoiler
(http://img543.imageshack.us/img543/9218/choices.png)
Imagens de amostra:
Spoiler
(http://img13.imageshack.us/img13/5194/picturechoices.png)
[box class=titlebg]
Download
[/box]
Não necessário
[box class=titlebg]
Créditos e Avisos
[/box]
Raizen pelo script
B.loder pelo design
Cool :D
Um upgrade pro script de mensagens personalizadas que postou :*-*:
Apesar de ter achado muito grande e espaçoso o modo como utilizou as escolhas será de grande utilidade para quem utilizar o script de mensagens :B
Valeu Raizen )o)
Ah valeus caro force pelo comentário :D, bom isso da para ajustar nas configurações ^^, dá para usar ele sozinho também, sem aquele script de mensagens ^^
Porra mano ...
Se tivesse criado isso a uns ... 2 anos atrás eu usaria no Inkey, agora acho que não tem mais como ehauhae
Ou tem? :hein:
Edit: testei aqui mas no VX e deu pau, ele não é compativel com o VX? :T.T:
Tem sim, aliás estou devendo um script para você né :/, vou tentar ver se o VX roda, se quiser eu faço esse e aquele do Ctrl para você no VX.
Opa opa, ai fica interessante! :wow:
QUE PHÓDA :rainbow: :rainbow:, Posso usar no meu projeto??
Qual é o script de mensagem que você utiliza? Gostei bastante do fundo da mensagem e desse script.
Foi esse daqui que eu usei :P
http://centrorpg.com/index.php?topic=1421.0
Nossa...Ficou muito mais lindo, pena não ter pro XP! ;x
+ouro