Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: [Rmxp] Auto Font Install
MessagePublié: 07 Juin 2009, 14:56 
Ancien membre du staff
Ancien membre du staff
Avatar de l’utilisateur

Inscrit le: 24 Juin 2008, 00:00
Messages: 476
Logiciel(s) préféré(s): Scintilla based
Point(s) Fort(s): Rubyismes
Points d'aide: 60/60

Créations :

- [Rmxp] Vocab

- [Rmxp] Visible Equipment

- [Rmxp] Animated Title

- [XP/VX] Cache Extension


Voir ses créations

[]Auto Font Install


Auteur : Wachunga

Description :
Ce script permet d'installer, sans aucune intervention du joueur, une Police dans le dossier Fonts de l'ordinateur lors du premier lancement du jeu.

Explications :
Choisissez un nom de dossier source ligne 58 dans le dossier de votre jeu, et installez y les polices. Ensuite il vous faut remplir les lignes 50 et 53 avec respectivement le nom du fichier correspondant à la police et le nom de la police en elle-même.
Exemple donné par l'Auteur :
Code: Tout sélectionner
Filenames = ['carbono_pw.ttf','FUTRFW.TTF']
Names = ['carbono', 'Futurist Fixed-width']


Script :
Code: Tout sélectionner
#==============================================================================
# ** Auto Font Install
#------------------------------------------------------------------------------
# Wachunga
# Version 1.0
# 2006-01-07
#------------------------------------------------------------------------------
=begin
Automatically installs one or more fonts so the player doesn't have to. It
only does this the first time the game is run and the process is quite
transparent (notification to the player is optional).
Thanks to MagicMagor for the pointer to one of the Win32 functions.

FEATURES
- handles installation of fonts so players don't have to
- supports multiple fonts
- process is quite transparent

SETUP
Create a Fonts folder in the game directory and place all fonts to be
installed within. Then update the Filenames and Names constants below,
adding an element to both arrays for each font.
This just installs the fonts. You'll still have to refer to them as necessary,
e.g. setting a new default as follows (in main):
Font.default_name = [Fonts::Names[0], 'MS PGothic']

This script can run with the SDK available from:
http://www.rmxp.net/forums/index.php?&showtopic=31096
Note: if player does not have the rights to install fonts on their machine,
this probably won't work -- but then they wouldn't be able to do it manually either. :)
#------------------------------------------------------------------------------
=end

#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
if Object.constants.include?(:SDK)
   SDK.log('Auto Font Install', 'Wachunga', 1.0, '2006-01-07')
end
#------------------------------------------------------------------------------
# Begin SDK Enabled Check
#------------------------------------------------------------------------------
if !Object.constants.include?(:SDK) or SDK.state('Auto Font Install')
   #--------------------------------------------------------
   module Fonts
      # filenames of fonts to be in stalled
      Filenames = ['dinstik.ttf']
      # e.g. Filenames = ['carbono_pw.ttf','FUTRFW.TTF']
      # names (not filenames) of fonts to be installed
      Names = ['dinstik']
      # e.g. Names = ['carbono', 'Futurist Fixed-width']
      # whether to notify player (via pop-up message) that fonts were installed
      Notify = true
      # location of fonts (relative to game folder)
      Source = 'Fonts/'
      # location of fonts after installation
      Dest = ENV['SystemRoot'] + 'Fonts\'
   end
   #--------------------------------------------------------
   class Scene_Title
      #-------------------------------------------------
      AFR = Win32API.new('gdi32', 'AddFontResource', ['P'], 'L')
      WPS = Win32API.new('kernel32', 'WriteProfileString', ['P'] * 3, 'L')
      SM = Win32API.new('user32', 'SendMessage', ['L'] * 4, 'L')
      WM_FONTCHANGE = 0x001D
      HWND_BROADCAST = 0xffff
      #-------------------------------------------------
      alias wachunga_autofontinstall_st_main main
      def main
         success = []
         for i in 0...Fonts::Filenames.size
            f = Fonts::Filenames[i]
            # check if already installed...
            if not FileTest.exists?(Fonts::Dest + f)  
               # check to ensure font is in specified location...
               if FileTest.exists?(Fonts::Source + f)
                  # move file to fonts folder
                  File.rename(Fonts::Source + f, Fonts::Dest + f)
                  # add font resource
                  AFR.call(Fonts::Dest + f)
                  # add entry to win.ini/registry
                  WPS.call('Fonts', Fonts::Names[i] + ' (TrueType)', f)
                  SM.call(HWND_BROADCAST,WM_FONTCHANGE,0,0)
                  if FileTest.exists?(Fonts::Dest + f)
                     success.push(Fonts::Names[i])
                  else
                     p 'Auto Font Install: failed to install' + Fonts::Names[i] + '.'
                  end
               else
                  p 'Auto Font Install: font ' + f + ' not found.'
               end      
            end
         end
         if success != [] # one or more fonts successfully installed
            if Fonts::Notify
               fonts = ''
               success.each do |f|
                  fonts << f << ', '
               end
               p 'Auto Font Install: sucessfully installed ' + fonts[0..-3]
            end
            # new fonts aren't recognized in RMXP until the program is
            # restarted, so this is (unfortunately) necessary
            a = Thread.new { system('Game') }
            exit
         end
         wachunga_autofontinstall_st_main
      end
      #-------------------------------------------------
   end
   #--------------------------------------------------------
end
#------------------------------------------------------------------------------
# End SDK Enabled Test
#------------------------------------------------------------------------------


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728