Annuaire du RPG

Répertoire de ressources/scripts[...] pour le logiciel Rpg Maker !
 
AccueilAccueil  PortailPortail  CalendrierCalendrier  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  

Partagez | 
 

 RpgMaker VX - ScreenShot Taker

Aller en bas 
AuteurMessage
Neko
Fondateur
Fondateur
avatar

Messages : 184
Date d'inscription : 14/07/2013
Age : 18
Localisation : Ici, la plupart du temps.

MessageSujet: RpgMaker VX - ScreenShot Taker   Mar 30 Juil - 6:03

VX - ScreenShot Taker


Auteurs : Zeus81 (ou Zeus tout simplement ) et Jet

ScreenShot Taker, qu'est-ce que c'est ?
C'est tout simplement un script, lorsque vous allez l'installer, qui va créer un dossier nommé "ScreenShot" dans votre afin de sauvegarder les screen que vous aurez pris en pressant un certaine touche.

Ce script vous permettra de faire une capture d'écran de votre map complète.

Script:

Code:

#===============================================================================
# Screenshot Taker
# By Jet10985 (Jet)
# PNG and BMP saving code by: Zeus81
#===============================================================================
# This script will allow you to take screenshots of the current gamescreen
# with the push of a button
# This script has: 7 customization options.
#===============================================================================
# Overwritten Methods:
# None
#-------------------------------------------------------------------------------
# Aliased methods:
# Graphics: update
#===============================================================================
=begin
Notes:

All screenshots are saved in a folder in the game directory called "Screenshots"
and they are named sequentially, depending on how many screenshots are in
the folder already.
=end

module JetScreenshotTaker
 
  # Do you want to save the screenshot as a .bmp, or a .png?
  # .bmp is basically instant, and is 32-bit but the alpha channel is not
  # compatible with every image editing program.
  # .png is slightly slower but it is usually smaller than the .bmp
  # true is for .png, false if for .bmp
  SAVE_AS_PNG = true
 
  # Which button do you have to press to take a screenshot?
  SCREENSHOT_BUTTON = Input::F5
 
  # Do you want a pop-up window to appear when a screenshot has been taken?
  # The popup window will display how many seconds it took for the screenshot
  POPUP_SCREENSHOT_WINDOW = true
 
  # Would you like a sound effect played when a screenshot is taken?
  SCREENSHOT_SE = true
 
  # What SE would you like played?
  SCREENSHOT_SE_FILE = "Decision2"
 
  # Do you want to add a "Watermark" or some other image ontop of screenshots?
  WATERMARK = false
 
  # What is the name of the watermark image name?
  # This should be in the Pictures folder
  # Watermark image starts at (0, 0) which is top left, so make the image
  # screen-sized and place the contents accordingly.
  WATERMARK_IMAGE = "Watermark"
 
end

#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================

# Bitmap export v 3.0 by Zeus81
class Bitmap
 
  RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
 
  def address
    RtlMoveMemory_pi.call(a = "\0" * 4, __id__ * 2 + 16, 4)
    RtlMoveMemory_pi.call(a, a.unpack('L')[0] + 8, 4)
    RtlMoveMemory_pi.call(a, a.unpack('L')[0] + 16, 4)
    a.unpack('L')[0]
  end
 
  def export(filename)
    jet_file_type = JetScreenshotTaker::SAVE_AS_PNG ? ".png" : ".bmp"
    Dir.mkdir("Screenshots") unless File.directory?("Screenshots")
    filename = "Screenshots/Screenshot #{Dir.entries("Screenshots").size - 1}#{jet_file_type}"
    file = File.open(filename, 'wb')
    case format=File.extname(filename)
    when '.bmp'
      data, size = String.new, width*height*4
      RtlMoveMemory_ip.call(data.__id__*2+8, [size,address].pack('L2'), 8)
      file.write(['BM',size+54,0,54,40,width,height,1,32,0,size,0,0,0,0].pack('a2L6S2L6'))
      file.write(data)
      RtlMoveMemory_ip.call(data.__id__*2+8, "\0"*8, 8)
    when '.png'
      def file.write_chunk(chunk)
        write([chunk.size-4].pack('N'))
        write(chunk)
        write([Zlib.crc32(chunk)].pack('N'))
      end
      file.write("\211PNG\r\n\32\n")
      file.write_chunk("IHDR#{[width,height,8,6,0,0,0].pack('N2C5')}")
      RtlMoveMemory_pi.call(data="\0"*(width*height*4), address, data.size)
      (width*height).times {|i| data[i<<=2,3] = data[i,3].reverse!}
      deflate, null_char, w4 = Zlib::Deflate.new(9), "\0", width*4
      (height-1).downto(0) {|i| deflate << null_char << data[i*w4,w4]}
      file.write_chunk("IDAT#{deflate.finish}")
      deflate.close
      file.write_chunk('IEND')
    when ''; print("Export format missing for '#{filename}'.")
    else    print("Export format '#{format}' not supported.")
    end
    file.close
  end
end

class << Graphics
 
  alias jet9991_update update unless $@
  def update(*args)
    jet9991_update(*args)
    if Input.trigger?(JetScreenshotTaker::SCREENSHOT_BUTTON)
      old_time = Time.now
      f = Graphics.snap_to_bitmap
      if JetScreenshotTaker::WATERMARK
        a = Cache.picture(JetScreenshotTaker::WATERMARK_IMAGE)
        f.blt(0, 0, a, a.rect)
      end
      f.export("Image")
      if JetScreenshotTaker::SCREENSHOT_SE
        RPG::SE.new(JetScreenshotTaker::SCREENSHOT_SE_FILE, 100, 100).play
      end
      if JetScreenshotTaker::POPUP_SCREENSHOT_WINDOW
        time = Time.now
        real_time = (time - old_time)
        elapsed_time = (real_time * 1000.0).to_i / 1000.0
        p "Screenshot taken: #{elapsed_time} seconds"
      end
    end
  end
end


Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://annuairedurpg.jeuxvideoforum.com
 
RpgMaker VX - ScreenShot Taker
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment faire une capture d'écran ( ScreenShot ) et la mettre en ligne
» Icone appareil photo
» [VX Ace] Traduction française
» [Horreur] Le petit chaperon Rouge
» Screenshot le topic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Annuaire du RPG :: RPG maker & co :: Scripts :: RGSS 2 :: Map-
Sauter vers: