Life RPG Maker 2.0
Bem vindo a LRM, forum de ajuda Maker
Registre-se em nosso forum e aproveite Very Happy
esperamos que você seja ajudado e esperamos que nos ajude Very Happy

Participe do fórum, é rápido e fácil

Life RPG Maker 2.0
Bem vindo a LRM, forum de ajuda Maker
Registre-se em nosso forum e aproveite Very Happy
esperamos que você seja ajudado e esperamos que nos ajude Very Happy
Life RPG Maker 2.0
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Life RPG Maker 2.0

2ª versão do forum life rpg maker

Os membros mais ativos do mês
Nenhum usuário

Últimos assuntos
» Kingdon 1.6
Video System - Vídeos no RMVX EmptyTer Jun 09, 2015 3:02 pm por MasterKill

» Tempo dinâmico e Hora do Sistema
Video System - Vídeos no RMVX EmptySeg Dez 09, 2013 5:42 pm por jonathas

» Sistema de Natação
Video System - Vídeos no RMVX EmptySáb Dez 07, 2013 5:14 pm por jonathas

» Classificar Inventario
Video System - Vídeos no RMVX EmptySáb Dez 07, 2013 12:07 pm por Samuka_Adm

» VOLTEI ALELUIA :D
Video System - Vídeos no RMVX EmptySáb Dez 07, 2013 10:35 am por Samuka_Adm

» Netplay Master v4.0.7
Video System - Vídeos no RMVX EmptyQua Jun 26, 2013 1:32 pm por xdario

» The League Of War [Season 1]
Video System - Vídeos no RMVX EmptySex Jan 18, 2013 6:02 pm por Warrior

» Meu primeiro desenho que posto :D
Video System - Vídeos no RMVX EmptyQua Jan 09, 2013 1:37 pm por PedroMatoso

» Window Configurações
Video System - Vídeos no RMVX EmptyQua Jan 09, 2013 1:36 pm por PedroMatoso

Parceiros
Fórum grátis

Fórum grátis


Mundo RPG Maker
MMORPG BRASIL

Você não está conectado. Conecte-se ou registre-se

Video System - Vídeos no RMVX

3 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Video System - Vídeos no RMVX Empty Video System - Vídeos no RMVX Seg Out 08, 2012 4:40 pm

Samuka_Adm

Samuka_Adm
Admin
Admin

Video System - Vídeos no RMVX


Iae Povo Da LRM. Eu tava akie em casa vasculhando minhas coisas quando emcontrei alguns scripts e para não perdelos eu decidi postalos aqui Very Happy


Características

É um script que permite que você coloque vídeos para tocar nos seus projetos de RMVX!
O vídeo pode ser de qualidade digital de até 480p em 4:3 e deve estar no formato WMV ou MPEG.
Nota: Vídeos de diferentes formatos irão causar um erro no script.
Nota: Vídeos de qualidade acima de 480p ou 480i irão causar um erro no script.
Nota: Vídeos em 16:9(Padrão HD) serão convertidos para 4:3(Padrão SD) ficando uma imagem mais esticada, então para uma melhor qualidade do vídeo exibido use vídeos em 4:3.

Positivos

Deixa o seu projeto bem mais profissional.

Contras

Não suporta todos os formatos de vídeo.

Como usar

Cole o script acima de ''main'' para ativar o script use o comando: chamar script: play_video(''nomedovideo'')

Código:

#==============================================================================
#
# SOV ~ Videos
#
#==============================================================================
# Author: SuperOverlord
#==============================================================================
# Features:
#------------------------------------------------------------------------------
# o Play video's on the map or in battle using a simple script event command.
#
# o Optionally pause or exit video's while they play.
#
# o View the video in the game window or in fullscreen.
#
# o Setup video skills, which show the video before damage effects.
#==============================================================================
# Instructions:
#------------------------------------------------------------------------------
# o Place all videos in a folder with the same name as in configuration.
#  This folder is created automatically the first time the game is played if
#  it doesn't already exist.
#
# o Playing Videos when on the map.
#
#  - See script calls below.
#
# o Playing videos in battle.
#
#  - As when on the map the script event command can be used in battle also.
#
#  - As well as this you can setup skills as video skills which display
#    a video before damaging the enemy.
#
#    To do this the following tags can be used in the skills notebox:
#    1) <video_name = "filename">
#        ~ name is the name of the video file. If the filename extension is
#          missing the first file matching that name is used.
#          (Quotes are necessary around the filename)
#
#      As well as the first tag 2 others are available. These tags will only
#      take effect if placed on a line below the first tag.
#      If these don't exist they are assumed true.
#
#      2) <video_exitable = n>  ~ Can the video be exited by the exit input?
#      3) <video_pausable = n>  ~ Can the video be paused?
#        ~ n is replaced with either t or f (t : true, f : false)
#
#      For other Video properties (x,y,width,height,fullscreen) the default
#      settings are used. (See script calls below)
#==============================================================================
# Script Calls:
#------------------------------------------------------------------------------
# Commands (From the script call command on page three of event commands)
#------------------------------------------------------------------------------
# o To change default values for video properties.
#
#  1) Video.default_x = n
#  2) Video.default_y = n
#  3) Video.default_width  = n
#  4) Video.default_height = n
#  5) Video.fullscreen = bool

#  In all 5 commands above:
#  ~ n is an integer value
#  ~ bool is either true or false
#
# o To play videos
#
#  play_video(filename,exitable,pausable)
#  ~ filename : name of video file            (Must be in quotes)
#  ~ exitable : Can the video be exited?      (When left out = true)
#  ~ pausable : Can the video be paused?      (When left out = true)

#  For all other values the default's are used.
#==============================================================================
# Compatibility:
#------------------------------------------------------------------------------
# o Skill videos will depend on the battle system but sould work.
#==============================================================================
# Credit:
#------------------------------------------------------------------------------
# o Credit goes to Trebor and Berka whose scripts helped be figure out the
#  mci_send_stringA function.
#==============================================================================

module SOV
  module Video
  #--------------------------------------------------------------------------
  # Configuration
  #--------------------------------------------------------------------------
    # Name of folder for videos to be held in.
    DIR_NAME = "Videos"
    # Exit video input
    EXIT_INPUT  = Input::B
    # Pause video input
    PAUSE_INPUT = Input::R
  #--------------------------------------------------------------------------
  # End Configuration
  #--------------------------------------------------------------------------
  end
end

#==============================================================================
# Import
#------------------------------------------------------------------------------
$imported = {} if $imported == nil
$imported['Videos'] = true
#==============================================================================

#==============================================================================
# ** SOV::Video::Commands
#==============================================================================

module SOV::Video::Commands
  #--------------------------------------------------------------------------
  # * Play a video
  #  filename : video's filename (with or without extension)
  #  exitable : Can the video be exited
  #  pausable : Can the video be paused
  #--------------------------------------------------------------------------
  def play_video(filename,exitable=true,pausable=true)
    video = Cache.video(filename)
    video.exitable = exitable
    video.pausable = pausable
    if $game_temp.in_battle    # In battle
      $scene.play_video(video)
    else                      # On map
      $game_map.video = video
    end
  end
  #---------------------------------------------------------------------------
  # Define as module function
  #---------------------------------------------------------------------------
  module_function :play_video
end

#==============================================================================
# ** SOV::Video::Regexp
#==============================================================================

module SOV::Video::Regexp
  #--------------------------------------------------------------------------
  # * Skill
  #--------------------------------------------------------------------------
  module Skill
    FILENAME  = /<video[_ ]?(?:file)?name = "(.+)">/i
    PAUSABLE  = /<video[_ ]?paus(?:e|able) = (t|f)>/i
    EXITABLE  = /<video[_ ]?exit(?:able)? = (t|f)>/i
  end
end

#==============================================================================
# ** SOV::Game
#==============================================================================

module SOV::Game
  #--------------------------------------------------------------------------
  # Constants
  #--------------------------------------------------------------------------
  INI = 'Game'
  #--------------------------------------------------------------------------
  # * Get the game windows handle
  #--------------------------------------------------------------------------
  def self.hwnd
    unless defined?(@@hwnd)
      find_window = Win32API.new('user32','FindWindow','pp','i')
      @@hwnd = find_window.call('RGSS Player',title) 
    end
    return @@hwnd
  end
  #--------------------------------------------------------------------------
  # * Get game title
  #--------------------------------------------------------------------------
  def self.title
    unless defined?(@@title)
      @@title = read_ini('title')
    end
    return @@title
  end
  #--------------------------------------------------------------------------
  # * Read ini (Returns nil or match)
  #--------------------------------------------------------------------------
  def self.read_ini(variable,filename=INI)
    reg = /^#{variable}=(.*)$/
    File.foreach(filename+'.ini') { |line| break($1) if line =~ reg }
  end
end

#==============================================================================
# ** Cache
#==============================================================================

module Cache
  #--------------------------------------------------------------------------
  # Class Variables
  #--------------------------------------------------------------------------
  @@vcache = {}
  #--------------------------------------------------------------------------
  # Define as class methods
  #--------------------------------------------------------------------------
  class << self
    #------------------------------------------------------------------------
    # Alias List
    #------------------------------------------------------------------------
    alias sov_video_clear clear unless $@
    #------------------------------------------------------------------------
    # * Get a video object
    #  filename : basename of file
    #------------------------------------------------------------------------
    def video(filename)
      # Get full filename if extension is missing
      if File.extname(filename) == ''
        files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"]
        filename = File.basename(files[0]) # Set as first matching file
      end
      # Create or get the video object.
      if @@vcache.has_key?(filename)
        @@vcache[filename]
      else
        @@vcache[filename] = Video.new(filename)
      end
    end
    #------------------------------------------------------------------------
    # * Clear
    #------------------------------------------------------------------------
    def clear
      @@vcache.clear
      sov_video_clear
    end
  end
end

#==============================================================================
# ** RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # * Determine if skill has a video skill
  #--------------------------------------------------------------------------
  def video
    if @video == nil
      @note.each_line { |line|
        if @video == nil
          @video = Cache.video($1) if line =~ SOV::Video::Regexp::Skill::FILENAME
        else
          @video.pausable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE
          @video.exitable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE
        end
      }
      @video = :invalid if @video == nil
    end
    return @video
  end
end

#==============================================================================
# ** Video
#------------------------------------------------------------------------------
#  Class handling playing videos.
#==============================================================================

class Video
  #--------------------------------------------------------------------------
  # Constants
  #--------------------------------------------------------------------------
  TYPE_AVI  = 'avivideo'
  TYPE_MPEG = 'mpegvideo'
  #--------------------------------------------------------------------------
  # Class Variables
  #--------------------------------------------------------------------------
  @@default_x = 0
  @@default_y = 0
  @@default_width  = Graphics.width
  @@default_height = Graphics.height
  @@fullscreen = false
  #--------------------------------------------------------------------------
  # * Get and Set default_x/y/width/height
  #--------------------------------------------------------------------------
  for d in %w(x y width height)
    # Define setter method
    module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end))
    # Define getter method
    module_eval(%Q(def self.default_#{d}; @@default_#{d}; end))
  end
  #--------------------------------------------------------------------------
  # * Get fullscreen
  #--------------------------------------------------------------------------
  def self.fullscreen
    @@fullscreen
  end 
  #--------------------------------------------------------------------------
  # * Set fullscreen
  #--------------------------------------------------------------------------
  def self.fullscreen=(val)
    @@fullscreen = val
  end
  #--------------------------------------------------------------------------
  # * Win32API
  #--------------------------------------------------------------------------
  @@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i')
  #--------------------------------------------------------------------------
  # * Video Command
  #  command_string : string following mci_command_string format
  #  buffer : string to retrieve return data
  #  buffer_size : number of characters in buffer
  #  callback_handle : handle of window to callback to. Used if notify is used
  #                    in the command string. (Not supported by game window)
  #--------------------------------------------------------------------------
  def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0)
    # Returns error code. No error if NULL
    err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle)
    if err != 0
      buffer = ' ' * 255
      Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255)
      raise(buffer.squeeze(' ').chomp('\000'))
    end
  end
  #--------------------------------------------------------------------------
  # * Play a video
  #--------------------------------------------------------------------------
  def self.play(video)
    # Make path and buffer
    path = "#{SOV::Video::DIR_NAME}/#{video.filename}"
    buffer = ' ' * 255
    # Initialize device and dock window with game window as parent.
    type = " type #{video.type}" if video.type != ''
    send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}")
    # Display video in client rect at x,y with width and height.
    x = video.x
    y = video.y
    width  = video.width
    height = video.height
    send_command("put VIDEO window at #{x} #{y} #{width} #{height}")
    # Begin playing video
    screen = @@fullscreen ? 'fullscreen' : 'window'
    send_command("play VIDEO #{screen}")
    # Start Input and status processing loop
    while buffer !~ /^stopped/
      # Idle processing for a frame
      sleep(1.0/Graphics.frame_rate)
      # Get mode string
      send_command('status VIDEO mode',buffer,255)
      Input.update
      if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable?
        Sound.play_cursor
        if buffer =~ /^paused/                # If already paused
          send_command("resume VIDEO")        # Resume video
        else                                  # Otherwise
          send_command("pause VIDEO")          # Pause video
        end
      elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable?
        Sound.play_cancel
        # Terminate loop on exit input
        break
      end
    end
    # Terminate the device
    send_command('close VIDEO')
  end
  #--------------------------------------------------------------------------
  # Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :x
  attr_accessor :y
  attr_accessor :width
  attr_accessor :height
  attr_writer :exitable
  attr_writer :pausable
  attr_reader :filename
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(filename)
    unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}")
      raise(Errno::ENOENT,filename)
    end
    @filename = filename
    @x = @@default_x
    @y = @@default_y
    @width  = @@default_width
    @height = @@default_height
    @exitable = true
    @pausable = true
  end
  #--------------------------------------------------------------------------
  # * Get Type
  #--------------------------------------------------------------------------
  def type
    if @type == nil
      case File.extname(@filename)
      when '.avi'; @type = TYPE_AVI
      when '.mpeg'||'.mpg'; @type = TYPE_MPEG
      else
        @type = ''
      end
    end
    @type
  end
  #--------------------------------------------------------------------------
  # * Is the video exitable?
  #--------------------------------------------------------------------------
  def exitable?
    @exitable
  end
  #--------------------------------------------------------------------------
  # * Is the video pausable?
  #--------------------------------------------------------------------------
  def pausable?
    @pausable
  end
  #--------------------------------------------------------------------------
  # Access
  #--------------------------------------------------------------------------
  private_class_method :send_command 
end

#==============================================================================
# ** Game_Interpreter
#==============================================================================

class Game_Interpreter
  #--------------------------------------------------------------------------
  # Import
  #--------------------------------------------------------------------------
  include(SOV::Video::Commands)
end

#==============================================================================
# ** Game_Map
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :video 
end

#==============================================================================
# ** Scene_Map
#==============================================================================

class Scene_Map
  #--------------------------------------------------------------------------
  # Alias List
  #--------------------------------------------------------------------------
  alias sov_video_update update unless $@
  #--------------------------------------------------------------------------
  # * Play Video
  #--------------------------------------------------------------------------
  def play_video(video)
    # Memorize and stop current bgm and bgs
    bgm = RPG::BGM.last
    bgs = RPG::BGS.last
    RPG::BGM.stop
    RPG::BGS.stop
    # Play video
    Video.play(video)
    # Restart bgm and bgs
    bgm.play
    bgs.play
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    if $game_map.video != nil
      play_video($game_map.video)
      $game_map.video = nil
      Input.update
    else
      sov_video_update
    end
  end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Alias list
  #--------------------------------------------------------------------------
  alias sov_video_execute_action_skill execute_action_skill unless $@
  #--------------------------------------------------------------------------
  # * Play Video
  #--------------------------------------------------------------------------
  def play_video(video)
    # Memorize and stop current bgm
    bgm = RPG::BGM.last
    RPG::BGM.stop
    # Play video
    Video.play(video)
    # Restart bgm
    bgm.play
  end
  #--------------------------------------------------------------------------
  # * Execute Action Skill
  #--------------------------------------------------------------------------
  def execute_action_skill
    skill = @active_battler.action.skill   
    if skill.video.is_a?(Video)
      execute_action_video(skill)
    else
      sov_video_execute_action_skill
    end
  end
  #--------------------------------------------------------------------------
  # * Execute Action Video
  #--------------------------------------------------------------------------
  def execute_action_video(skill)
    text = @active_battler.name + skill.message1
    @message_window.add_instant_text(text)
    unless skill.message2.empty?
      wait(10)
      @message_window.add_instant_text(skill.message2)
    end
    wait(20)
    @message_window.clear
    # Fadout to black screen
    br = Graphics.brightness
    120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update }
    # Play video
    play_video(skill.video)
    # Reset brightness
    Graphics.brightness = br
    targets = @active_battler.action.make_targets
    display_animation(targets, skill.animation_id)
    @active_battler.mp -= @active_battler.calc_mp_cost(skill)
    $game_temp.common_event_id = skill.common_event_id
    for target in targets
      target.skill_effect(@active_battler, skill)
      display_action_effects(target, skill)
    end
  end
end

#==============================================================================
# Pre-Main Processing
#==============================================================================

unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist.
  Dir.mkdir(SOV::Video::DIR_NAME)                # Make the directory
end

Screenshots

Não necessário.

demo

Não necessário.

Problemas com o download? avise que eu mudo o servidor...

Créditos

SuperOverlord por criar o script:D



Última edição por Samuka_Adm em Ter Out 16, 2012 6:34 pm, editado 1 vez(es)

https://liferpgmakerv2.forumeiros.com

2Video System - Vídeos no RMVX Empty Re: Video System - Vídeos no RMVX Ter Out 16, 2012 3:06 pm

MarcosVVK


Admin
Admin

parece bem util:D, mas, povo da aldeia?'-'

http://mmoletomrpg.blogspot.com.br/

3Video System - Vídeos no RMVX Empty Re: Video System - Vídeos no RMVX Ter Out 16, 2012 6:35 pm

Samuka_Adm

Samuka_Adm
Admin
Admin

vlw, e é ke eu tinha postado originalmente na aldeia rpg br depois postei aki tendeu? kk, ja arrumei vlw por avisar ^^

https://liferpgmakerv2.forumeiros.com

4Video System - Vídeos no RMVX Empty Re: Video System - Vídeos no RMVX Qui Out 25, 2012 7:23 pm

Guilherme Azevedo

Guilherme Azevedo
Aprendiz
Aprendiz

LOL Videos em Rmvx esta foi phoda.
Pensei que você que fez,mas não foi. Se fosse cara você seria Phodão !
Bom +1 Cred por postar. Logo estarei postando meu projeto offline.

http://www.ageofdragons.e-mf.net

5Video System - Vídeos no RMVX Empty Re: Video System - Vídeos no RMVX Sáb Nov 03, 2012 3:48 pm

MarcosVVK


Admin
Admin

Serio cara, muito útil! Eu iria usar muito XD

http://mmoletomrpg.blogspot.com.br/

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos