Auto Font Install

4 de março de 2013

Auto Font Install é um script desenvolvido por Wachunga que permite a instalação automática uma ou mais fontes no sistema do jogador de um game feito no RPG Maker XP.

O script faz isso apenas uma vez e o processo é transparente, sendo a notifação para o jogador totalmente opcional.

Características

  • Possibilita a instalação de fontes extras para que os jogadores não precisem de esquentar a cabeça.
  • Suporta fontes múltiplas
  • Processo transparente

Configuração

  1. Crie uma pasta de fontes no diretório do jogo e copie todas as fontes desejadas
  2. Atualize os nomes de arquivos e os nomes das constantes abaixo, adicionando um elemento para cada array de cada fonte. Você ainda vai ter que se referir a elas quando necessário.

Por exemplo:

Font.default_name = [Fonts::Names[0], 'MS PGothic']

Atenção

Se o jogador não tiver permissão necessária para instalar as fontes em sua máquina, o script não vai funcionar, entretanto, ele não seria capaz de gravar as fontes nem manualmente.

Instalação

Se o script precisar do SDK, você pode pegar ele aqui.

Para instalar o script, basta copiar e colar o código abaixo, acima do main:

#==============================================================================
# ** 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 requires the SDK available from:
http://www.rmxp.net/forums/index.php?&showtopic=31096

(To remove this dependency, just delete the three SDK-labeled lines,
including the 'end' at the bottom of the script.)

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. :)

Agora para configurar as fontes a serem instaladas, primeiro va na linha onde esta:

Filenames = ['Nome da Fonte.ttf']

e subistitua o "nome da fonte" pelo nome do arquivo que  esta na pasta fontes. Para instalar mais de uma é só separar os arquivos com virgula, exemplo:

Filenames = ['Arial.ttf', 'Impact.ttf']

Agora va na linha onde esta:

Names = ['Nome da Fonte']

E repita o que foi feito anteriormente, lembrando sempre de colocar virgulas apos o nome das fontes.

#------------------------------------------------------------------------------
=end

module Fonts

# filenames of fonts to be in stalled
Filenames = ['Nome da Fonte.ttf']
# e.g. Filenames = ['carbono_pw.ttf','FUTRFW.TTF']

# names (not filenames) of fonts to be installed
Names = ['Nome da Fonte']
# e.g. Names = ['carbono', 'Futurist Fixed-width']

# whether to notify player (via pop-up message) that fonts were installed
Notify = false

# 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 'Instalação de fonte automatica: Erro ao instalar' + Fonts::Names[i] + '.'
end
else
p 'Instalação de fonte automatica: Fonte ' + f + ' não econtrada.'
end

end
end

if success != [] # one or more fonts successfully installed
if Fonts::Notify
fonts = ''
success.each do |f|
fonts << f << ', '
end
p 'Instalação de fonte automatica: instalação completa ' + 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

Mais RPG Maker XP

Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Clique aqui e saiba como. Obrigado!

Deixe um comentário

Inscreva-se na nossa newsletter!