zornsthorne
Member
hey I'm currently using the script below to call avi movie files into my game, it works great for everything i need except for showing the movie in a skill. I tested it out with the skill call common event option but it would show the skill and the damage and then show the movie. What im looking for if any of you are willing to do it, is a script that allows the movie to be shown before the actual skill animation. eg: like super nova or the summons in the final fantasy games or like the some of the skills in grandia.
I think the pseudo code for something like this would be: (and this is me trying my best as im not that good at scripting)
if skill A is used
stop skill
show movie avi
resume skill
but anyway here is the script im currently using.
I think the pseudo code for something like this would be: (and this is me trying my best as im not that good at scripting)
if skill A is used
stop skill
show movie avi
resume skill
but anyway here is the script im currently using.
Code:
class Scene_Movie
##Copy this into a new section of your game.
##To play a file, move the avi file into a "movies" subdirectory (yourgame\data,
##yourgame\graphics, yourgame\movies).
##Then call "Scene_Movie.new(filename)" where filename is your movies actual filename
## (minus the .avi). Â Â Â Â exp Scene_Movie.new("???")
## If you want to play multiple movies in a row
##(for example before the game starts, maybe a "developed by", "produced by", "intro movie"
## set or something... Go to the "main" section of code and find the line "$scene = Scene_Title.new".
##Just after that line add:
##CODE
##Scene_Movie.new("dev_by")
##Scene_Movie.new("pro_by")
##Scene_Movie.new("intro")
##$scene = Scene_Movie.new("intro",8,false)assuming the filename of the intro movie is "intro.avi" and it's 8 seconds long.
##class Scene_Movie
def initialize(movie)
  @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
  main
end
Â
def main
Â
  game_name = "\0" * 256
  @readini.call('Game','Title','',game_name,255,".\\Game.ini")
  game_name.delete!("\0")
  @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
  @temp = @wnd.call(0,0,nil,game_name).to_s
  movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
  movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
  @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
 Â
  @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
  @width = @detector.call(0)
  if @width == 640
   fullscreen
   Graphics.update
   sleep(1)
   Graphics.update
   sleep(1)
   Graphics.update
   sleep(1)
  end
 Â
  status = " " * 255
  movie.call("play FILE",0,0,0)
  loop do
  sleep(0.1)
  @message.call(@temp.to_i,11,0,0)
  Graphics.update
  @message.call(@temp.to_i,11,1,0)
  Input.update
  movie.call("status FILE mode",status,255,0)
  true_status = status.unpack("aaaa")
  if true_status.to_s != "play"
   break
  end
  if Input.trigger?(Input::B)
   Input.update
   break
  end
  end
  movie.call("close FILE",0,0,0)
  bail
end
Â
def bail
  if @width == 640
   fullscreen
  end
 end
end
Â
def fullscreen()
Â
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Â