<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-5363999679499377237</atom:id><lastBuildDate>Tue, 20 Mar 2012 14:34:33 +0000</lastBuildDate><category>TutorialRGSS12</category><category>ScriptRGSS</category><category>ProjetosRMXP</category><category>ScriptRGSS2</category><category>TutorialEventos</category><category>ScriptRGSS12</category><category>Novidades</category><title>Colméia do Zé</title><description></description><link>http://www.colmeia-do-ze.co.cc/</link><managingEditor>noreply@blogger.com (zecomeia)</managingEditor><generator>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-1261693973559564619</guid><pubDate>Sun, 12 Jun 2011 22:43:00 +0000</pubDate><atom:updated>2011-06-12T19:43:29.165-03:00</atom:updated><title>BLOG OFICIALMENTE FECHADO</title><description>É isso aí pessoal, o blog está oficialmente fechandoa as portas. Espero que o conteúdo tenha ajudado bastante gente e que continue ajudando, pois o blog continuará no ar, só não terá mais novidades: nada de posts, novo layout, etc, etc, etc. XD&lt;br /&gt;&lt;br /&gt;Abraços do "falecido" ZC. XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-1261693973559564619?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/06/blog-oficialmente-fechado.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-5138295302149787405</guid><pubDate>Sun, 27 Mar 2011 20:37:00 +0000</pubDate><atom:updated>2011-03-27T17:56:55.608-03:00</atom:updated><title>Blog Aranha de Programa</title><description>Hoje o blog Aranha de Programa está abrindo as portas para os estudantes e entusiastas do mundo da eletrônica e da informática. Acessem:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aranhadeprograma.blogspot.com" target="_blank"&gt;&lt;br /&gt;&lt;img border="0" width="80%" src="http://1.bp.blogspot.com/-z4r4S8sYWXE/TYWAOp_P42I/AAAAAAAAADU/wQY_MxiffuY/s1600/zcbanner2.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aranhadeprograma.blogspot.com/" &gt;http://aranhadeprograma.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Trata-se de um blog de dois estudantes formados em eletrônica e que resolveram compartilhar o conhecimento, divulgar suas capacidades profissionais e se aprimorarem nessas áreas enquanto escrevem.&lt;br /&gt;&lt;br /&gt;Os escritores são:&lt;br /&gt;&lt;br /&gt;Sidnei Pereira, formado como Técnico em Eletroeletrônica na escola ITB Brasílio Flores de azevedo, e estudante de Análise de Sistemas e Tecnologia da Informação na FATEC Carapicuíba.&lt;br /&gt;&lt;br /&gt;Marcus Vinicius, também formado como Técnico em Eletroeletrônica na escola ITB Brasílio Flores de azevedo.&lt;br /&gt;&lt;br /&gt;Ajude a divulgá-los:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aranhadeprograma.blogspot.com" target="_blank"&gt;&lt;br /&gt;&lt;img border="0" src="http://i55.tinypic.com/qs15rk.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;textarea cols="30" rows="3"&gt;&lt;a href="http://www.aranhadeprograma.blogspot.com" target="_blank"&gt;&lt;br /&gt;&lt;img border="0" src="http://i55.tinypic.com/qs15rk.jpg" /&gt;&lt;/a&gt;&lt;/textarea&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-5138295302149787405?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/03/blog-aranha-de-programa.html</link><author>noreply@blogger.com (zecomeia)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-z4r4S8sYWXE/TYWAOp_P42I/AAAAAAAAADU/wQY_MxiffuY/s72-c/zcbanner2.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-121435867901174526</guid><pubDate>Fri, 04 Feb 2011 17:28:00 +0000</pubDate><atom:updated>2011-02-08T15:07:13.166-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS</category><title>RTP Extractor</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;RTP Extractor&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Extrai para o seu projeto os arquivos do RTP que estão em uso no projeto. Isso evita ter que copiar o RTP inteiro para o seu projeto na hora da criação do disco de jogo, ou que o jogador precise ter o RTP instalado para poder jogar.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li type="disc"&gt;Não sobre escreve arquivo de mesmo nome que exista na pasta do projeto.&lt;/li&gt;&lt;li type="disc"&gt;O processo é rápido e pode ser acompanhado por uma barra de progresso.&lt;/li&gt;&lt;li type="disc"&gt;Um arquivo(extract_log.txt) listando todos os arquivos copiados e seus respectivos tamanhos é gerado na pasta raiz do projeto.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong class="bbc"&gt;Histórico&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong class="bbc"&gt;04/02/2011 v1.0.0&lt;/strong&gt;&lt;br /&gt;- Lançado o script&lt;br /&gt;&lt;br /&gt;&lt;strong class="bbc"&gt;05/02/2011 v1.0.1&lt;/strong&gt;&lt;br /&gt;- Leitura do nome da DLL do projeto consertado&lt;br /&gt;- Bug quando há mais de dois comandos "mover evento" na mesma página consertado&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Como Usar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li type="disc"&gt;cole acima de Main&lt;/li&gt;&lt;li type="disc"&gt;salve e execute o projeto&lt;/li&gt;&lt;li type="disc"&gt;espere o processo de extração terminar&lt;/li&gt;&lt;li type="disc"&gt;agora você já pode retirar o script do projeto&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;*O ideal é usá-lo antes de criar o disco de jogo, ou seja, quando o projeto estiver pronto para jogar, porque daí, teoricamente, nesse ponto o projeto não precisa mais ser alterado.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="15"&gt;#======================================================&lt;br /&gt;# RTP Extractor&lt;br /&gt;#------------------------------------------------------&lt;br /&gt;#version: 1.0.1&lt;br /&gt;#by:      zecomeia&lt;br /&gt;#date:    05/01/2011&lt;br /&gt;#for:     RGSS&lt;br /&gt;#credits and thanks:&lt;br /&gt;#- vgvgf (get path function from Aleworks Library)&lt;br /&gt;#- Farenheight (justname and extension File methods&lt;br /&gt;#[modified by me])&lt;br /&gt;#- Rafidelis (get RGSS dll name funcion)&lt;br /&gt;#- PLM (reported a bug)&lt;br /&gt;#------------------------------------------------------&lt;br /&gt;#more infos: http://colmeia-do-ze.co.cc&lt;br /&gt;#tags: RTP, Extractor, RGSS&lt;br /&gt;#------------------------------------------------------&lt;br /&gt;#how to use:&lt;br /&gt;#- paste above of Main script&lt;br /&gt;#- save and play the project&lt;br /&gt;#- wait exctraction end&lt;br /&gt;#- now you can remove the script from your project&lt;br /&gt;#&lt;br /&gt;#*in project root folder will be generated an extract&lt;br /&gt;#log(extract_log.txt) listing all files copied to the&lt;br /&gt;#project&lt;br /&gt;#==============http://colmeia-do-ze.co.cc==============&lt;br /&gt;&lt;br /&gt;class File&lt;br /&gt; &lt;br /&gt;  def self.ext(fname)&lt;br /&gt;    fname = basename(fname)&lt;br /&gt;    parts = fname.sub(/[^\.]*\./,'')&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def self.justname(fname)&lt;br /&gt;    basename(fname, "." + ext(fname))&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def self.fcopy(src, dest)&lt;br /&gt;    src = File.open(src, "rb")&lt;br /&gt;    dest = File.new(dest,"wb")&lt;br /&gt;    src.each_byte do |x|&lt;br /&gt;      dest.putc(x)&lt;br /&gt;    end&lt;br /&gt;    dest.close&lt;br /&gt;    src.close&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;fini = File.open('Game.ini', 'r')&lt;br /&gt;for line in fini.readlines&lt;br /&gt;  if line =~ /Library=/&lt;br /&gt;    GameDLL = File.justname($')&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;fini.close&lt;br /&gt;&lt;br /&gt;####vgvgf&lt;br /&gt;RGSSGetRTPPath = Win32API.new(GameDLL, 'RGSSGetRTPPath', 'L', 'L')&lt;br /&gt;RGSSGetPathWithRTP = Win32API.new(GameDLL, 'RGSSGetPathWithRTP', 'L', 'P')&lt;br /&gt;def get_rtp_path(rtp = 0)&lt;br /&gt;  RGSSGetPathWithRTP.call(RGSSGetRTPPath.call(rtp))&lt;br /&gt;end&lt;br /&gt;RGSSRTP_PATH = get_rtp_path(1)&lt;br /&gt;####&lt;br /&gt;&lt;br /&gt;module RTP_EXTRACTOR&lt;br /&gt;  Data_actors        = load_data("Data/Actors.rxdata")&lt;br /&gt;  Data_classes       = load_data("Data/Classes.rxdata")&lt;br /&gt;  Data_skills        = load_data("Data/Skills.rxdata")&lt;br /&gt;  Data_items         = load_data("Data/Items.rxdata")&lt;br /&gt;  Data_weapons       = load_data("Data/Weapons.rxdata")&lt;br /&gt;  Data_armors        = load_data("Data/Armors.rxdata")&lt;br /&gt;  Data_enemies       = load_data("Data/Enemies.rxdata")&lt;br /&gt;  Data_troops        = load_data("Data/Troops.rxdata")&lt;br /&gt;  Data_states        = load_data("Data/States.rxdata")&lt;br /&gt;  Data_animations    = load_data("Data/Animations.rxdata")&lt;br /&gt;  Data_tilesets      = load_data("Data/Tilesets.rxdata")&lt;br /&gt;  Data_common_events = load_data("Data/CommonEvents.rxdata")&lt;br /&gt;  Data_system        = load_data("Data/System.rxdata")&lt;br /&gt;  Data_mapinfos      = load_data("Data/MapInfos.rxdata")&lt;br /&gt;&lt;br /&gt;  #Coisa de Preguiçoso XD&lt;br /&gt;  ls = []&lt;br /&gt;  Dir.foreach(RGSSRTP_PATH + "\\Graphics") { |x| ls.push(x) }&lt;br /&gt;  ls.delete('.')&lt;br /&gt;  ls.delete('..')&lt;br /&gt;  ls.each do |x|&lt;br /&gt;    str_eval = "#{x} = RGSSRTP_PATH + \"\\\\Graphics\\\\#{x}\""&lt;br /&gt;    eval(str_eval)&lt;br /&gt;  end&lt;br /&gt;  ls = []&lt;br /&gt;  Dir.foreach(RGSSRTP_PATH + "\\Audio") { |x| ls.push(x) }&lt;br /&gt;  ls.delete('.')&lt;br /&gt;  ls.delete('..')&lt;br /&gt;  ls.each do |x|&lt;br /&gt;    str_eval = "#{x} = RGSSRTP_PATH + \"\\\\Audio\\\\#{x}\""&lt;br /&gt;    eval(str_eval)&lt;br /&gt;  end&lt;br /&gt;  #Coisa de preguiçoso END&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class RTP_Extractor&lt;br /&gt; &lt;br /&gt;  include RTP_EXTRACTOR&lt;br /&gt; &lt;br /&gt;  attr_reader :files_size&lt;br /&gt;  attr_reader :list&lt;br /&gt; &lt;br /&gt;  def initialize()&lt;br /&gt;    @files_size = 0&lt;br /&gt;    @list = []&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #list files in a folder&lt;br /&gt;  #if ext = true the file extension print together&lt;br /&gt;  def list_files(dir,ext=true)&lt;br /&gt;    ls = []&lt;br /&gt;    Dir.foreach(dir) {|x| ls.push(x) }&lt;br /&gt;    ls.delete('.')&lt;br /&gt;    ls.delete('..')&lt;br /&gt;    if ext&lt;br /&gt;      return(ls)&lt;br /&gt;    else&lt;br /&gt;      ls_noext = []&lt;br /&gt;      ls.each { |x| ls_noext.push(File.justname(x)) }&lt;br /&gt;      return(ls_noext)&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def map_events(map, file_list, command, move_command=[], parameter_204_0=false)&lt;br /&gt;    code = command[0]&lt;br /&gt;    parameter = command[1]&lt;br /&gt;    misc_name = command[2]&lt;br /&gt;    str_eval = "command.parameters\[#{parameter}\]#{misc_name}"&lt;br /&gt;    unless move_command.empty?&lt;br /&gt;      move_code = move_command[0]&lt;br /&gt;      move_parameter = move_command[1]&lt;br /&gt;      move_misc_name = move_command[2]&lt;br /&gt;      move_str_eval = "mv_command.parameters\[#{move_parameter}\]#{move_misc_name}"&lt;br /&gt;    end&lt;br /&gt;    for event in map.events&lt;br /&gt;      for page in event[1].pages&lt;br /&gt;        if page.move_type == 3&lt;br /&gt;          for pre_mv_command in page.move_route.list&lt;br /&gt;            if pre_mv_command.code == move_code and !move_command.empty?&lt;br /&gt;              fname = eval("pre_"+move_str_eval)&lt;br /&gt;              unless file_list.include?(fname)&lt;br /&gt;                file_list.push(fname)&lt;br /&gt;              end&lt;br /&gt;            end&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;        for command in page.list&lt;br /&gt;          if command.code == 204&lt;br /&gt;            if command.parameters[0] == parameter_204_0&lt;br /&gt;              fname = eval(str_eval)&lt;br /&gt;              unless file_list.include?(fname)&lt;br /&gt;                file_list.push(fname)&lt;br /&gt;              end&lt;br /&gt;            end&lt;br /&gt;          elsif command.code == 209 and !move_command.empty?&lt;br /&gt;            for mv_command in command.parameters[1].list&lt;br /&gt;              if mv_command.code == move_code&lt;br /&gt;                fname = eval(move_str_eval)&lt;br /&gt;                unless file_list.include?(fname)&lt;br /&gt;                  file_list.push(fname)&lt;br /&gt;                end&lt;br /&gt;              end&lt;br /&gt;            end&lt;br /&gt;          elsif command.code == code&lt;br /&gt;            fname = eval(str_eval)&lt;br /&gt;            unless file_list.include?(fname)&lt;br /&gt;              file_list.push(fname)&lt;br /&gt;            end&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def commons_events(file_list, command, move_command=[], parameter_204_0=false)&lt;br /&gt;    code = command[0]&lt;br /&gt;    parameter = command[1]&lt;br /&gt;    misc_name = command[2]&lt;br /&gt;    str_eval = "command.parameters\[#{parameter}\]#{misc_name}"&lt;br /&gt;    unless move_command.empty?&lt;br /&gt;      move_code = move_command[0]&lt;br /&gt;      move_parameter = move_command[1]&lt;br /&gt;      move_misc_name = move_command[2]&lt;br /&gt;      move_str_eval = "mv_command.parameters\[#{move_parameter}\]#{move_misc_name}"&lt;br /&gt;    end&lt;br /&gt;    for command in Data_common_events[1].list     &lt;br /&gt;      if command.code == 204&lt;br /&gt;        if command.parameters[0] == parameter_204_0&lt;br /&gt;          fname = eval(str_eval)&lt;br /&gt;          unless file_list.include?(fname)&lt;br /&gt;            file_list.push(fname)&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      elsif command.code == 209 and !move_command.empty?&lt;br /&gt;        for mv_command in command.parameters[1].list&lt;br /&gt;          if mv_command.code == move_code&lt;br /&gt;            fname = eval(move_str_eval)&lt;br /&gt;            unless file_list.include?(fname)&lt;br /&gt;              file_list.push(fname)&lt;br /&gt;            end&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      elsif command.code == code&lt;br /&gt;        fname = eval(str_eval)&lt;br /&gt;        unless file_list.include?(fname)&lt;br /&gt;          file_list.push(fname)&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def troops_events(file_list, command, move_command=[], parameter_204_0=false)&lt;br /&gt;    code = command[0]&lt;br /&gt;    parameter = command[1]&lt;br /&gt;    misc_name = command[2]&lt;br /&gt;    str_eval = "command.parameters\[#{parameter}\]#{misc_name}"&lt;br /&gt;    unless move_command.empty?&lt;br /&gt;      move_code = move_command[0]&lt;br /&gt;      move_parameter = move_command[1]&lt;br /&gt;      move_misc_name = move_command[2]&lt;br /&gt;      move_str_eval = "mv_command.parameters\[#{move_parameter}\]#{move_misc_name}"&lt;br /&gt;    end&lt;br /&gt;    for troop in Data_troops&lt;br /&gt;      next if troop.nil?&lt;br /&gt;      for page in troop.pages&lt;br /&gt;        for command in page.list&lt;br /&gt;          if command.code == 204&lt;br /&gt;            if command.parameters[0] == parameter_204_0&lt;br /&gt;              fname = eval(str_eval)&lt;br /&gt;              unless file_list.include?(fname)&lt;br /&gt;                file_list.push(fname)&lt;br /&gt;              end&lt;br /&gt;            end&lt;br /&gt;          elsif command.code == 209 and !move_command.empty?&lt;br /&gt;            for mv_command in command.parameters[1].list&lt;br /&gt;              if mv_command.code == move_code&lt;br /&gt;                fname = eval(move_str_eval)&lt;br /&gt;                unless file_list.include?(fname)&lt;br /&gt;                  file_list.push(fname)&lt;br /&gt;                end&lt;br /&gt;              end&lt;br /&gt;            end&lt;br /&gt;          elsif command.code == code&lt;br /&gt;            fname = eval(str_eval)&lt;br /&gt;            unless file_list.include?(fname)&lt;br /&gt;              file_list.push(fname)&lt;br /&gt;            end&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def push_in(file_list, data, misc_name)&lt;br /&gt;    for d in data&lt;br /&gt;      next if d.nil?&lt;br /&gt;      fname = eval("d#{misc_name}")&lt;br /&gt;      unless file_list.include?(fname)&lt;br /&gt;        file_list.push(fname)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #add to general file list&lt;br /&gt;  def add2list(file_list, folder_in_path)&lt;br /&gt;    ls = list_files(folder_in_path)&lt;br /&gt;    ls_noext = list_files(folder_in_path, false)&lt;br /&gt;    for name in file_list&lt;br /&gt;      if ls_noext.include?(name)&lt;br /&gt;        file_name = ls[ls_noext.index(name)]&lt;br /&gt;        file = folder_in_path + "\\#{file_name}"&lt;br /&gt;        @list.push(file)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;   &lt;br /&gt;  #prepare the list os files to extract&lt;br /&gt;  def extract_list()&lt;br /&gt;     #######&lt;br /&gt;    # AUDIO #&lt;br /&gt;     #######&lt;br /&gt;     &lt;br /&gt;    #############################################&lt;br /&gt;    #BGMs&lt;br /&gt;   &lt;br /&gt;    bgms = []   &lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      bgms.push(map.bgm.name)&lt;br /&gt;      map_events(map, bgms, [132, 0, '.name'])&lt;br /&gt;      map_events(map, bgms, [241, 0, '.name'])&lt;br /&gt;    end&lt;br /&gt;    commons_events(bgms, [132, 0, '.name'])&lt;br /&gt;    commons_events(bgms, [241, 0, '.name'])&lt;br /&gt;    troops_events(bgms, [132, 0, '.name'])&lt;br /&gt;    troops_events(bgms, [241, 0, '.name'])&lt;br /&gt;    bgms.push(Data_system.title_bgm.name)&lt;br /&gt;    bgms.push(Data_system.battle_bgm.name)&lt;br /&gt;    add2list(bgms, BGM)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #BGSs&lt;br /&gt;   &lt;br /&gt;    bgss = []&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      bgss.push(map.bgs.name)&lt;br /&gt;      map_events(map, bgss, [245, 0, '.name'])&lt;br /&gt;    end&lt;br /&gt;    commons_events(bgss, [245, 0, '.name'])&lt;br /&gt;    troops_events(bgss, [245, 0, '.name'])   &lt;br /&gt;    add2list(bgss, BGS)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #MEs&lt;br /&gt;   &lt;br /&gt;    mes = []   &lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      map_events(map, mes, [133, 0, '.name'])&lt;br /&gt;      map_events(map, mes, [249, 0, '.name'])&lt;br /&gt;    end&lt;br /&gt;    commons_events(mes, [133, 0, '.name'])&lt;br /&gt;    commons_events(mes, [249, 0, '.name'])&lt;br /&gt;    troops_events(mes, [133, 0, '.name'])&lt;br /&gt;    troops_events(mes, [249, 0, '.name'])&lt;br /&gt;    mes.push(Data_system.battle_end_me.name)&lt;br /&gt;    mes.push(Data_system.gameover_me.name)&lt;br /&gt;    add2list(mes, ME)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #SEs&lt;br /&gt;   &lt;br /&gt;    ses = []&lt;br /&gt;    push_in(ses, Data_items, ".menu_se.name")&lt;br /&gt;    push_in(ses, Data_skills, ".menu_se.name")&lt;br /&gt;    animations = Data_animations&lt;br /&gt;    for i in 1...animations.size     &lt;br /&gt;      for j in 0...animations[i].timings.size&lt;br /&gt;        unless ses.include?(animations[i].timings[j].se.name)&lt;br /&gt;          ses.push(animations[i].timings[j].se.name)&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end   &lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      map_events(map, ses, [250, 0, '.name'], [44, 0, '.name'])&lt;br /&gt;    end&lt;br /&gt;    commons_events(ses, [250, 0, '.name'], [44, 0, '.name'])&lt;br /&gt;    troops_events(ses, [250, 0, '.name'], [44, 0, '.name'])&lt;br /&gt;    ses.push(Data_system.cursor_se.name)&lt;br /&gt;    ses.push(Data_system.decision_se.name)&lt;br /&gt;    ses.push(Data_system.cancel_se.name)&lt;br /&gt;    ses.push(Data_system.buzzer_se.name)&lt;br /&gt;    ses.push(Data_system.equip_se.name)&lt;br /&gt;    ses.push(Data_system.shop_se.name)&lt;br /&gt;    ses.push(Data_system.save_se.name)&lt;br /&gt;    ses.push(Data_system.load_se.name)&lt;br /&gt;    ses.push(Data_system.battle_start_se.name)&lt;br /&gt;    ses.push(Data_system.escape_se.name)&lt;br /&gt;    ses.push(Data_system.actor_collapse_se.name)&lt;br /&gt;    ses.push(Data_system.enemy_collapse_se.name)&lt;br /&gt;    add2list(ses, SE)&lt;br /&gt;&lt;br /&gt;     ##########&lt;br /&gt;    # GRAPHICS #&lt;br /&gt;     ##########&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Animations&lt;br /&gt;   &lt;br /&gt;    animations_names = []&lt;br /&gt;    push_in(animations_names, Data_animations, ".animation_name")&lt;br /&gt;    add2list(animations_names, Animations)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Autotiles&lt;br /&gt;   &lt;br /&gt;    autotiles_names = []&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      tileset = Data_tilesets[map.tileset_id]&lt;br /&gt;      push_in(autotiles_names, tileset.autotile_names , "")&lt;br /&gt;    end&lt;br /&gt;    add2list(autotiles_names, Autotiles)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Battlebacks&lt;br /&gt;   &lt;br /&gt;    battlebacks_names = []&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      tileset = Data_tilesets[map.tileset_id]&lt;br /&gt;      unless battlebacks_names.include?(tileset.battleback_name)&lt;br /&gt;        battlebacks_names.push(tileset.battleback_name)&lt;br /&gt;      end&lt;br /&gt;      map_events(map, battlebacks_names, [204, 1, ''], [], 2)&lt;br /&gt;    end&lt;br /&gt;    commons_events(battlebacks_names, [204, 1, ''], [], 2)&lt;br /&gt;    troops_events(battlebacks_names, [204, 1, ''], [], 2)&lt;br /&gt;    add2list(battlebacks_names, Battlebacks)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Battlers&lt;br /&gt;   &lt;br /&gt;    battlers = []   &lt;br /&gt;    push_in(battlers, Data_actors, ".battler_name")&lt;br /&gt;    push_in(battlers, Data_enemies, ".battler_name")&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      map_events(map, battlers, [322, 3, ''])&lt;br /&gt;    end&lt;br /&gt;    commons_events(battlers, [322, 3, ''])&lt;br /&gt;    troops_events(battlers, [322, 3, ''])&lt;br /&gt;    add2list(battlers, Battlers)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Characters&lt;br /&gt;   &lt;br /&gt;    characters = []&lt;br /&gt;    push_in(characters, Data_actors, ".character_name")&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      for event in map.events&lt;br /&gt;        for page in event[1].pages&lt;br /&gt;          unless characters.include?(page.graphic.character_name)&lt;br /&gt;            characters.push(page.graphic.character_name)&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;      map_events(map, characters, [322, 1, ''], [41, 0, ''])&lt;br /&gt;    end&lt;br /&gt;    commons_events(characters, [322, 1, ''], [41, 0, ''])&lt;br /&gt;    troops_events(characters, [322, 1, ''], [41, 0, ''])&lt;br /&gt;    add2list(characters, Characters)&lt;br /&gt;&lt;br /&gt;    #############################################&lt;br /&gt;    #Fogs&lt;br /&gt;   &lt;br /&gt;    fogs_names = []&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      tileset = Data_tilesets[map.tileset_id]&lt;br /&gt;      unless fogs_names.include?(tileset.fog_name)&lt;br /&gt;        fogs_names.push(tileset.fog_name)&lt;br /&gt;      end&lt;br /&gt;      map_events(map, fogs_names, [204, 1, ''], [], 1)&lt;br /&gt;    end&lt;br /&gt;    commons_events(fogs_names, [204, 1, ''], [], 1)&lt;br /&gt;    troops_events(fogs_names, [204, 1, ''], [], 1)&lt;br /&gt;    add2list(fogs_names, Fogs)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Gameovers&lt;br /&gt;   &lt;br /&gt;    gameover = [Data_system.gameover_name]&lt;br /&gt;    add2list(gameover, Gameovers)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Icons&lt;br /&gt;   &lt;br /&gt;    icons = []&lt;br /&gt;    push_in(icons, Data_skills, ".icon_name")&lt;br /&gt;    push_in(icons, Data_items, ".icon_name")&lt;br /&gt;    push_in(icons, Data_weapons, ".icon_name")&lt;br /&gt;    push_in(icons, Data_armors, ".icon_name")&lt;br /&gt;    add2list(icons, Icons)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Panoramas&lt;br /&gt;   &lt;br /&gt;    panoramas_names = []&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      tileset = Data_tilesets[map.tileset_id]&lt;br /&gt;      unless panoramas_names.include?(tileset.panorama_name)&lt;br /&gt;        panoramas_names.push(tileset.panorama_name)&lt;br /&gt;      end&lt;br /&gt;      map_events(map, panoramas_names, [204, 1, ''], [], 0)&lt;br /&gt;    end&lt;br /&gt;    commons_events(panoramas_names, [204, 1, ''], [], 0)&lt;br /&gt;    troops_events(panoramas_names, [204, 1, ''], [], 0)&lt;br /&gt;    add2list(panoramas_names, Panoramas)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Tilesets&lt;br /&gt;   &lt;br /&gt;    tilesets_names = []&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      tileset = Data_tilesets[map.tileset_id]&lt;br /&gt;      unless tilesets_names.include?(tileset.tileset_name)&lt;br /&gt;        tilesets_names.push(tileset.tileset_name)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    add2list(tilesets_names, Tilesets)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Titles&lt;br /&gt;   &lt;br /&gt;    title = [Data_system.title_name]&lt;br /&gt;    add2list(title, Titles)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Transitions&lt;br /&gt;   &lt;br /&gt;    transitions = []&lt;br /&gt;    transitions.push(Data_system.battle_transition)&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      map_events(map, transitions, [222, 0, ''])&lt;br /&gt;    end&lt;br /&gt;    commons_events(transitions, [222, 0, ''])&lt;br /&gt;    troops_events(transitions, [222, 0, ''])&lt;br /&gt;    add2list(transitions, Transitions)&lt;br /&gt;   &lt;br /&gt;    #############################################&lt;br /&gt;    #Windowskins&lt;br /&gt;   &lt;br /&gt;    windowskins = []&lt;br /&gt;    windowskins.push(Data_system.windowskin_name)&lt;br /&gt;    for i in 1..Data_mapinfos.size&lt;br /&gt;      map = load_data(sprintf("Data/Map%03d.rxdata", i))&lt;br /&gt;      map_events(map, windowskins, [131, 0, ''])&lt;br /&gt;    end&lt;br /&gt;    commons_events(windowskins, [131, 0, ''])&lt;br /&gt;    troops_events(windowskins, [131, 0, ''])&lt;br /&gt;    add2list(windowskins, Windowskins)&lt;br /&gt;   &lt;br /&gt;    #delete match file between RTP and project&lt;br /&gt;    #calculate the list data size&lt;br /&gt;    for i in 0...@list.size&lt;br /&gt;      dest = @list[i].dup&lt;br /&gt;      dest.sub!("#{RGSSRTP_PATH}",'')&lt;br /&gt;      if FileTest.exist?( ".#{dest}" )&lt;br /&gt;        @list[i] = nil&lt;br /&gt;      else       &lt;br /&gt;        @files_size += FileTest.size(@list[i])&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    #delete nil, empty and repeated from list&lt;br /&gt;    @list.delete('')&lt;br /&gt;    @list.compact!&lt;br /&gt;    @list.uniq!&lt;br /&gt;   &lt;br /&gt;    return @list&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Window_Progress &lt; Window_Base&lt;br /&gt; &lt;br /&gt;  def initialize(total_files_size)&lt;br /&gt;    super(320-125, 240-60, 250, 110)&lt;br /&gt;    self.contents = Bitmap.new(width - 32, height - 32)&lt;br /&gt;        self.contents.font.name = 'Arial'&lt;br /&gt;    self.contents.font.size = 20&lt;br /&gt;    self.opacity = 0&lt;br /&gt;    @total_files_size = total_files_size&lt;br /&gt;    refresh()&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def refresh(progress_string='', progress_files_size=0)&lt;br /&gt;    return if @total_files_size == 0&lt;br /&gt;    self.contents.clear&lt;br /&gt;    self.contents.draw_text(4, 15, 220, 24, progress_string)&lt;br /&gt;    self.contents.fill_rect(5,0,202,10,Color.new(200,200,200,200))&lt;br /&gt;    self.contents.fill_rect(6,1,progress_files_size*200/@total_files_size,8,Color.new(0,0,200,200))&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;rtp_extract = RTP_Extractor.new&lt;br /&gt;print 'start'&lt;br /&gt;flist = rtp_extract.extract_list()&lt;br /&gt;total_files_size = rtp_extract.files_size&lt;br /&gt;progress_files_size = 0&lt;br /&gt;$game_system = load_data("Data/System.rxdata")&lt;br /&gt;window_progress = Window_Progress.new(total_files_size)&lt;br /&gt;$game_system = nil&lt;br /&gt;n_files = 0&lt;br /&gt;flog = File.new('extract_log.txt', 'a')&lt;br /&gt;flog.puts('start...')&lt;br /&gt;for src in flist&lt;br /&gt;  dest = src.dup&lt;br /&gt;  progress_string = 'copying ' + File.basename(dest)&lt;br /&gt;  file_size = FileTest.size(dest)&lt;br /&gt;  dest.sub!("#{RGSSRTP_PATH}",'')&lt;br /&gt;  next if FileTest.exist?( ".#{dest}" )&lt;br /&gt;  progress_files_size += file_size&lt;br /&gt;  n_files += 1 &lt;br /&gt;  window_progress.refresh(progress_string, progress_files_size)&lt;br /&gt;  Graphics.update()&lt;br /&gt;  File.fcopy(src, ".#{dest}" )&lt;br /&gt;  str_log = ".#{dest} #{progress_files_size/1000} KB"&lt;br /&gt;  flog.puts(str_log)&lt;br /&gt;end&lt;br /&gt;str_log = n_files.to_s+" files\n"+(progress_files_size/1000000).to_s+' MB('+(progress_files_size/1000).to_s+" KB)"&lt;br /&gt;flog.puts(str_log)&lt;br /&gt;flog.close&lt;br /&gt;window_progress.dispose&lt;br /&gt;print str_log&lt;br /&gt;exit(0)&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;Feito por zecomeia&lt;/i&gt;&lt;/li&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;vgvgf pela função para obter o path do RTP(retirado de seu script Aleworks Library)&lt;/i&gt;&lt;/li&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;Farenheight pelos métodos #justname e #extension(editei) da classe File&lt;/i&gt;&lt;/li&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;aos criadores do RMTool(programa que faz algo do tipo no RM2k) pela ideia&lt;/i&gt;&lt;/li&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;Rafidelis pelo código melhorado para obter o nome da dll do jogo&lt;/i&gt;&lt;/li&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;PLM por repotar bugs.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-121435867901174526?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/02/rtp-extractor.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-2306717188517140408</guid><pubDate>Tue, 11 Jan 2011 15:27:00 +0000</pubDate><atom:updated>2011-02-04T14:52:28.192-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>TutorialRGSS12</category><title>Usando o BMP writer num processor paralelo</title><description>BMP writer é um script que criei com a função de escrever imagens do tipo BMP true color de 24 bits a partir do objeto Bitmap do RGSS. Mais detalhes visite:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.colmeia-do-ze.co.cc/2010/11/bmp-writer-por-zecomeia-introducao.html" target="blank"&gt;BMP writer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O script não utliza bibliotecas externas. Foi escrito totalmente em Ruby baseando-se no objeto Bitmap usado em RGSS/2. Mesmo sendo feito para ter um bom desempenho com relação ao tempo de escrita de arquivo, para empregá-lo em jogos o tempo de escrita pode acabar sendo longo. Por exemplo, em uma máquina com Core 2 Duo o script levou 2 segundos para gravar um bitmap de 640x480, o que parece rápidos, mas pode ser um incmodo no meio de um jogo.&lt;br /&gt;&lt;br /&gt;Então resolvi usar o metodo de escrita em um processo paralelo para não ocorrer aquela pausa no jogo enquanto a gravação do arquivo está em andamento. O problema é que leva mais tempo para o arquivo ser salvo(seguindo mesmo exemplo anterior, levou 1 minuto e meio para a gravação), isso significa que não é possível visualizar/utilizar o arquivo gerao enquanto não terminar essa gravação, e também caso o jogo seja fechado antes do término o arquivo fica corrompido.&lt;br /&gt;&lt;br /&gt;Para criar nosso processo paralelo usaremos uma Thread. Basicamente uma thread é um bloco de código que é executado em paralelo com o programa principal. A técnica não é muito complicada nem ocupa muito espaço. Primeiro vamos carregar um Bitmap para usar na gravação:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;data_system        = load_data("Data/System.rxdata")&lt;br /&gt;aBitmap_obj = RPG::Cache.title(data_system.title_name)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As linhas acima irão carregar a imagem de título na variável aBitmap_obj.&lt;br /&gt;&lt;br /&gt;Agora vamos à Thread:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;thread_bmp = Thread.new(aBitmap_obj) do&lt;br /&gt;begin&lt;br /&gt;file = File.new('image.bmp','wb')&lt;br /&gt;file.bmp_write(aBitmap_obj)&lt;br /&gt;file.close&lt;br /&gt;rescue&lt;br /&gt;print 'Erro ao gravar um bitmap'&lt;br /&gt;end&lt;br /&gt;end&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;a linha:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;thread_bmp = Thread.new(aBitmap_obj) do&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Cria nossa Thread. Observe que já passamos como argumentoda Thread o Bitmap que criamos antes. O "do" define o nosso bloco de código que termina no último "end".&lt;br /&gt;&lt;br /&gt;O "begin" é um outro bloco que criei dentro da threadsó para poder usar o tratamentos de exceções(erros) da clausula "rescue". Isso porque quando ocorre um erro dentro da Thread o Game.exe fecha sem nem um aviso. Então se acontecer algum erro na Thread o que está entre o recue e o end será executado. No exemplo só cooquei uma mensagem, o que não é muito correto, porque se aconteceu algum erro a thread para mas o programa continua sem tratar do problema.&lt;br /&gt;&lt;br /&gt;Entre o begin e o rescue deve entrar aquelas três linhas que já usavamos para gravar o arquivo antes.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;file = File.new('image.bmp','wb')&lt;br /&gt;file.bmp_write(aBitmap_obj)&lt;br /&gt;file.close&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Abre o arquivo para leitura, escreve o BMP no arquivo e fecha o arquivo quando terminar a escrita.&lt;br /&gt;&lt;br /&gt;Basicamente é isso. Teste a técnica e qualquer dúvida fique a vontade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-2306717188517140408?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/01/usando-o-bmp-writer-num-processor.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-4942192606779505596</guid><pubDate>Fri, 07 Jan 2011 11:11:00 +0000</pubDate><atom:updated>2011-01-07T09:15:11.903-02:00</atom:updated><title>Rubular - Editor de expresões regulares para Ruby</title><description>O &lt;b&gt;Rubular&lt;/b&gt; é um editor de expressões regulares para ruby. Simples e prático, com ele fica muito mais fácil e rápido na hora de estudar e trabalhar as RegExp.&lt;br /&gt;O programa funciona na própria página do site, então não precisa baixar nada. Basta escrever a RegExp no campo reservado, adicionar alguma opção à ela caso necessite e então escrever alguma coisa no campo chamado "test string". Esse campo último campo servirá para testar sua RegExp, o programa irá procurar ocorrências do padrão e se encontrar irá destacar as partes do texto que batem.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/%20http://rubular.com/"&gt;&lt;br /&gt;http://rubular.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-4942192606779505596?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/01/rubular-editor-de-expresoes-regulares.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-3249404042266617465</guid><pubDate>Thu, 06 Jan 2011 11:51:00 +0000</pubDate><atom:updated>2011-01-07T09:06:21.459-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Forjada Pelo Dragão - Atualização</title><description>Depois de um tempo trabalhando no projeto, estamos trazendo um pouco do nosso trabalho para atualizar que nos acompanha. O Forjada deu uma turbinada com a equipe toda trabalhando com mais empolgação. Esperamos que gostem das atualizações e que se preparem porque Fevereiro já vem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a class="bbc_link new_win" href="http://www.colmeia-do-ze.co.cc/2011/01/forjada-pelo-dragao.html" &gt;&lt;img alt="" border="0" class="bbc_img" src="http://img843.imageshack.us/img843/1240/logoforjada.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.colmeia-do-ze.co.cc/2011/01/forjada-pelo-dragao.html" &gt;Forjada Pelo Dragão&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-3249404042266617465?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/01/forjada-pelo-dragao-atualizacao.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-7878869653225566965</guid><pubDate>Sun, 02 Jan 2011 22:58:00 +0000</pubDate><atom:updated>2011-01-03T16:09:59.098-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Selo Kreativ blogger</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_V3iYFJvJmvE/S61cbT_joHI/AAAAAAAAAtk/xenwKMxkOQ4/s1600/premio1.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_V3iYFJvJmvE/S61cbT_joHI/AAAAAAAAAtk/xenwKMxkOQ4/s320/premio1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Isso já é notícia antiga mas não divulgada, então antes tarde do que nunca. Fui indicado ao Selo Kreativ blogger pelo querido amigo Crazy Nero do blog &lt;a href="http://crazynerostudio.blogspot.com/" target='blank'&gt;Crazy Nero Studio&lt;/a&gt;.&lt;br /&gt;Existem algumas regrinhas para os ganhadores do selo, e elas são:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS',Trebuchet,Verdana,sans-serif; font-size: 13px; line-height: 14px;"&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;*Copiar o logo do premio em seu blog.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;*Por o link da pessoa que indicou o premio.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;*Dizer 7 coisas interessantes sobre ti.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;*Dar a outros 7 bloggers criativos, por o link de seus blogs.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #666666;"&gt;*Avisar ao indicados sobre o premio no seus blogs.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Então...&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Sete coisas interessantes sobre mim:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #cccccc; font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1- Minha área é eletrônica;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2- Pretendo iniciar em um curso de jogos digiais na faculdade;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3- Eu não gosto do personagem Zé Colméia;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4- Eu não gosto de mel;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5- Adoro judô;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;6- Pretendo montar um SNES portátil ainda esse ano;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;7- "Nunca julgue um livro pela capa"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;Indico:&lt;br /&gt;&lt;br /&gt;Blog sensacional de um policial nerd e "photoshopeiro" do BOPE:&lt;br /&gt;&lt;a href="http://www.mataleonebr.blogspot.com/"&gt;Mataleone&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Humor criativo e non-sense. Adoro perder meu tempo lendo as crônicas desses excêntricos escritores:&lt;br /&gt;&lt;a href="http://www.contosdebar.com/"&gt;Contos de Bar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Skate, bike, música e tudo mais que curto sempre encontrei com esse cara:&lt;br /&gt;&lt;a href="http://magrelusblog.blogspot.com/"&gt;Magrelus&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nerds ou não, esses "pecadores" expoem coisas interessantes e as vezes engraçadas em seu blog:&lt;br /&gt;&lt;a href="http://os-setes.blogspot.com/"&gt;The Seven&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blog de uma grande professora e mestra em história que sabe cativar seus alunos e não se limita a sala de aula:&lt;br /&gt;&lt;a href="http://documentoshistoricosnasaladeaula.blogspot.com/"&gt;Documentos Históricos na Sala de Aula&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blog do amigão akime que vem se empenhando muito com os scripts e fazendo a alegria dos makers:&lt;br /&gt;&lt;a href="http://ateliercross.6te.net/"&gt;Atelier Cross&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apesar de não curtir muito o gênero do blog adimito que tem tudo pra dar certo, simples, bonito, bem cuidado e amplo em suas "futícias":&lt;br /&gt;&lt;a href="http://thisisreallyfail.blogspot.com/"&gt;This is #Fail&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No começo achei que nã conseguiria completar a lista de 7 blogs, mas agora vejo que falto espaço pra minha lista(vagabundo que só vive em blogs XD).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-7878869653225566965?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/01/selo-kreativ-blogger.html</link><author>noreply@blogger.com (zecomeia)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_V3iYFJvJmvE/S61cbT_joHI/AAAAAAAAAtk/xenwKMxkOQ4/s72-c/premio1.jpg' height='72' width='72'/><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-2233151404288451337</guid><pubDate>Sun, 02 Jan 2011 19:53:00 +0000</pubDate><atom:updated>2011-01-06T09:54:57.809-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ProjetosRMXP</category><title>Forjada Pelo Dragão</title><description>&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/9338/equipeq.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div align="center"&gt;&lt;img alt="Projeto do mês de junho - SRM" border="0" class="bbc_img" src="http://img718.imageshack.us/img718/1773/2010junho.png" /&gt;&lt;img alt="Projeto do mês de dezembro - Dungeons maker" border="0" class="bbc_img" src="http://img135.imageshack.us/img135/5686/2010dezembro.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Ficha Técnica&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Nome do Projeto:&lt;/b&gt; Forjada Pelo Dragão&lt;br /&gt;&lt;b&gt;Engine:&lt;/b&gt; RPG Maker XP&lt;br /&gt;&lt;b&gt;Criador:&lt;/b&gt; Equipe MasterBee Games&lt;br /&gt;&lt;b&gt;Versão:&lt;/b&gt; 0.1&lt;br /&gt;&lt;b&gt;Data de Ínicio:&lt;/b&gt; Início de 2009&lt;br /&gt;&lt;b&gt;Data de Término Demo:&lt;/b&gt; Previsão para Fevereiro de 2011&lt;br /&gt;&lt;b&gt;Data de Término Full Version:&lt;/b&gt; Sem previsão&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Ultimas Atualizações&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;i&gt;05/01/2011&lt;/i&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Projeto do mês Dungeons Maker.&lt;/li&gt;&lt;li&gt;Reforma no design do tópico.&lt;/li&gt;&lt;li&gt;Reforma nos textos do tópico.&lt;/li&gt;&lt;li&gt;Novas screens.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Outras Matérias&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://pt-br.makerpedia.wikia.com/wiki/Forjada_Pelo_Drag%C3%A3o" target="_blank"&gt;Matéria na RPG Maker Wiki&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.reinorpg.com/forum/index.php?topic=16197.msg151021#msg151021" target="_blank"&gt;Tópico na Reino RPG&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.mundorpgmaker.com/forum/index.php?topic=20199.msg169350#msg169350" target="_blank"&gt;Tópico na Mundo RPG Maker&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.acavernadodragao.com.br/forum/index.php/topic,2348.msg29237/topicseen.html#msg29237" target="_blank"&gt;Tópico na Caverna do Dragão&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.dungeonmakers.com.br/forum/index.php?topic=5140.msg50731;topicseen#msg50731" target="_blank"&gt;Tópico na Dungeons Makers&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://rapidshare.com/#%21download%7C949l36%7C439567989%7CLivro_Maker_-_Cap._2_-_Forjada_Pelo_Drag__o.doc%7C169" target="_blank"&gt;Livro Maker: Cap. 02 - Forjada pelo Dragão&lt;/a&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;b&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;Introdução&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img843.imageshack.us/img843/1240/logoforjada.png" /&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Um  jovem bastante incomum, viveu excluído pelos habitantes de sua aldeia.  Contudo, ao descobrir uma espada, sua vida mudaria para sempre.&lt;br /&gt;&amp;nbsp;Tales estava destinado a se tornar um Coletor de Almas.&lt;br /&gt;&amp;nbsp;Novos amigos surgirão em sua vida, uma incrível jornada surtirá em grandes rivais.&lt;br /&gt;&amp;nbsp;Desvende os mistérios da espada forjada pelo dragão e escute seu nome ser cantado atrávez dos tempos no mundo de Mirounir.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img827.imageshack.us/img827/4504/aequipe.png" /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;A equipe sofreu várias mudanças, muitas desfraguimentações, mas alguns de nós ainda &lt;br /&gt;estamos únidos para terminar o projeto:&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Jeff MasterBee -&lt;/b&gt; Game Level Design;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Vifibi -&lt;/b&gt; Roteirista;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Sakami -&lt;/b&gt; Ilustrador;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Requiem -&lt;/b&gt; Ilustrador;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Zé Coméia -&lt;/b&gt; Scripter;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Nader -&lt;/b&gt; Pixel Art; &lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Luko -&lt;/b&gt; Pixel Art;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;b&gt;Alangato -&lt;/b&gt; Sonoplasta.&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://i64.servimg.com/u/f64/12/54/07/30/mapa_m10.jpg" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img135.imageshack.us/img135/8286/aguerra.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Em toda Era, existe um evento que a define para sempre nos anais da  história, marcando-a de tal forma que a Era seguinte se molda em sua  experiência passada até que atinja seu próprio evento. Tal é o caminho  da humanidade, tal é o caminho da vida.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Há muitas eras passadas,  uma raça anciã de Dragões reinava suprema sobre todas as outras  espécies. Em seus primórdios, os reinados eram marcados por justiça,  bondade, ternura. Mas como tudo que é mortal, aquilo havia de acabar.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img339.imageshack.us/img339/8066/dragofoda.png" /&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Os  Reis-Dragões tornaram-se cruéis e mesquinhos, escravizando a raça  humana, outrora seus valorosos aliados. Durante incontáveis éons,&amp;nbsp; todas  as raças não passavam de servos, sem direito à fala, ou à própria vida.  Mas como tudo que é mortal, aquilo também havia de acabar.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Uma  rebelião, tão cheia com o inflamado ódio e desejo por liberdade humano  que seu poder abalou os próprios alicerces do mundo. Um entre todos, um  capitão escravo chamado Luthel Kir, liderou os exércitos improvisados  contra seus antigos opressores, atingindo vitória com um esplendor  jamais visto novamente após seu tempo.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Os Dragões Mestres,  deixados sem escolha, renunciaram seu trono esculpido em ouro, um  símbolo até hoje abolido pelos humanos. Porém, antes de partir, membros  mais luminosos da raça Draconiana forjaram um pacto com o novo rei,  Luthel. Forjá-lo-iam uma arma capaz dos poderes dracônicos, em troca de  um lugar para viverem em paz no Novo Reino.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;A espada, capaz de  ganhar força com cada inimigo derrotado, fora denominada “Kirin Loren”  por Luthel, que a brandiu em batalha até sua morte. O nome significava  na língua recém-criada para o novo reino “Protetor do Povo”.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img830.imageshack.us/img830/9907/espada.png" /&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Éons  se passaram, e a espada, outrora abençoada e regida pela família real,  fora perdida ao tempo e ao esquecimento. Os dragões luminosos tomaram  formas humanas, e passaram a viver entre humanos, sem nunca revelar sua  verdadeira identidade — muitos recém-nascidos nem sabiam que eram  dragões. A paz, que foi instituída pelo sangue e pela espada, perdurou  durante muito tempo.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;No entanto, tudo que é mortal, há de  acabar. Os reis humanos seguiram os antigos mestres Dragões, tornando-se  tiranos em sua hipócrita canção de liberdade. Matavam quando queriam,  mudavam as leis como desejavam, e aquele que ousasse levantar a voz era  imediatamente punido. O mesmo sangue que trouxe à raça sabedoria e  liberdade, trouxe-lhe o fim de tudo pelo que haviam lutado.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Mas  longe do punho tirânico de reis tolos e hedonistas, outras comunidades  floresciam com suas próprias instituições, suas próprias leis e  liberdades. Uma raça em particular, os Tílios, moravam em harmonia com a  terra, cultivando e plantando com toda a felicidade que um poderia ter  de uma vida bucólica.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img692.imageshack.us/img692/3566/70128098.png" /&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Mas  um garoto, no entanto, era diferente. Um garoto sofria. Um garoto que  não podia levantar a voz, não podia argumentar por liberdade, ou mesmo  chorar sem punição. Seu nome é Tales. Esse garoto, não é um Tílio  qualquer.&lt;/div&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img710.imageshack.us/img710/6838/omundo.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img192.imageshack.us/img192/1434/mapamirounir.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img402.imageshack.us/img402/2002/mapaminiatura.png" /&gt;&lt;/a&gt;&lt;a class="bbc_link new_win" href="http://i64.servimg.com/u/f64/12/54/07/30/mapa_m10.jpg" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center" class="spoiler"&gt;Spoiler: &lt;input onclick="showSpoiler(this);" type="button" value="Mostrar/Esconder" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;pre&gt;&lt;div align="left"&gt;&lt;b&gt;Montanhas Onagard -&lt;/b&gt; Lar dos extintos dragões, raramente alguém sobe as &lt;br /&gt;montanhas, já que em tempos atuais sem os dragões o local virou morada &lt;br /&gt;de monstros terríveis.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pântano Runnes -&lt;/b&gt; Neste local a terra é podre e cheira a morte, habitada &lt;br /&gt;por criaturas nojentas e extremamente venenosas, este é um local que &lt;br /&gt;muitos evitam, e os poucos que o encara geralmente não conseguem sair.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Vila dos Tilios -&lt;/b&gt; Seu paradeiro para todos os humanos é desconhecido, &lt;br /&gt;quando os tilios foram expulsos de Kirin Zhun, arrumaram um lar nas &lt;br /&gt;florestas, este local é muito bem camuflado, e sempre passado por &lt;br /&gt;despercebido a qualquer explorador.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Floresta Agnil -&lt;/b&gt; Lar dos animais e um local onde muitos se perdem com &lt;br /&gt;facilidade, A Floresta Agnil sempre foi a maior fonte de madeira para &lt;br /&gt;Mirounir, sendo explorada pela vila de Agnil.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Agnil -&lt;/b&gt; Em Agnil vivem os melhores construtores de pontes e grandes &lt;br /&gt;construções em madeira, também é o local onde mais se encontra caçadores.&lt;br /&gt;&amp;nbsp;Agnil é uma vila que gosta de manter tradição a seus costumes, e raramente &lt;br /&gt;fazem acordos com Kirin Zhun.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ponte Agnil -&lt;/b&gt; Local protegido pelos grandes protetores de Agnil, eles possuem &lt;br /&gt;permição para não deixar ninguém passar pela ponte, sem autorização dos &lt;br /&gt;superiores de Agnil.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ollding -&lt;/b&gt; Morada dos tritões, seres aquáticos que possuem grandes habilidades &lt;br /&gt;na arte da transformação e magia, sendo o reino mais belo e predominado pela &lt;br /&gt;magia.&lt;br /&gt;&amp;nbsp;O rei deste local é o Tritão Enzo, fundador do palácio, e criador de centenas &lt;br /&gt;de magias.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Templo Taliod - &lt;/b&gt;Taliod foi um dos grandes reis de Mirounir, era o grande &lt;br /&gt;senhor das feras, quando morreu construiram um templo a qual seu corpo foi &lt;br /&gt;guardado e permanece até os tempos atuais.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kirin Zhun -&lt;/b&gt; O reino mais poderoso de Mirounir, é comandado pelo rei Kriziun, &lt;br /&gt;lar dos humanos, e local de grande poder ofensivo, onde existe centenas de &lt;br /&gt;tropas prontas para proteger Kriziundor e seu rei, neste lugar a presença de &lt;br /&gt;feras foi proibida, é um local de grandes torneios que são realizados de &lt;br /&gt;ano em ano, única oportunidade de feras e outras criaturas do mundo de conhecer &lt;br /&gt;a grande cidade.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cavera Onagard -&lt;/b&gt;&amp;nbsp; Uma caverna que da acesso direto ao centro das montanhas, não &lt;br /&gt;se sabê muito deste local, mas se sabê que habita várias criaturas perigosas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Torre Agna -&lt;/b&gt; Esta torre esta no meio de um deserto, é a maior defesa de Agna, &lt;br /&gt;sendo que dá visão de todas terras de mirounir, sendo perfeita para ver grandes &lt;br /&gt;batalhões e futuros problemas a Agna.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Agna -&lt;/b&gt; Agna é a líder deste local, irmã gemea de Agnil, ela conseguiu &lt;br /&gt;todo o poder da grande cidade quando traiu sua familia e expulsou seu irmão do &lt;br /&gt;titulo de rei.&lt;br /&gt;&amp;nbsp;Agna é um local de grande poder e que sempre apoia os feitos de Kirin Zhun, &lt;br /&gt;em Agna, vivem os sábios, humanos que foram capazes de dominar a magia e &lt;br /&gt;aprenderam a arte da vida eterna.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ruggvar -&lt;/b&gt; Lar dos Anões, existe um grande palácio e grandes contruções neste &lt;br /&gt;local, mas a maior parte da habitação deste local, esta no subterraneo. Todas as &lt;br /&gt;grandes contruções em pedra, ferro ou barro, são feitas pelos Anões de Ruggvar.&lt;br /&gt;&amp;nbsp;O rei deste local é desconhecido por todos, embora seja de conhecimento de todos &lt;br /&gt;que Ruggvar possui um grande lider.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ilha Perdida -&lt;/b&gt; No meio mar de Mirounir, existe uma ilha, a qual poucos chegaram a vê-la, &lt;br /&gt;dizem que nas proximidades deste local, mora um monstro que impede que qualquer chegue &lt;br /&gt;perto o bastante da ilha. Os bardos cantam a existência de grandes tesouros, por isto muitos &lt;br /&gt;naviões partem até este destino, uma pena nunca ninguém conseguir a encontrar.&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img89.imageshack.us/img89/7492/asraas.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center" class="spoiler"&gt;Spoiler: &lt;input onclick="showSpoiler(this);" type="button" value="Mostrar/Esconder" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;pre&gt;&lt;div align="left"&gt;No mundo de Mirounir, existem diversas raças de seres que trazem a estas terras &lt;br /&gt;um grande ciclo de vida, sendo cada espécie importante para um equilíbrio natural, dentre tantos &lt;br /&gt;seres, alguns são de extrema importância no decorrer desta aventura, dentre as clássicas raças estão &lt;br /&gt;presentes os:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Humanos –&lt;/b&gt; Possuem corpos frágeis, e necessitam de auxilio de armas para combater inimigos; &lt;br /&gt;Os humanos vivem em grandes colônias, a quais são chamadas de Comunidades, estas comunidades de &lt;br /&gt;humanos concentram-se em 3 grandes cidades Agna, Agnil e grande fortaleza de Kirin Zhun.&lt;br /&gt;&amp;nbsp;Os humanos possuem grande habilidade em manuseio de ferramentas, e são responsáveis pelas grandes &lt;br /&gt;construções no mundo de Mirounir.&lt;br /&gt;&amp;nbsp;O grande senhor dos humanos esta sempre atrás da grande fortaleza do reino Kirin Zhun, seu nome é &lt;br /&gt;Krizium herdeiro do trono de Lhutel fundador da grande Fortaleza.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Anões –&lt;/b&gt; Os anões são pequenos e não muito ágeis, porém são seres de incrível força em seus &lt;br /&gt;braços; Os anos são mineradores desde pequenos, quase todos anões crescem e viram mineradores; Embora &lt;br /&gt;sejam tão habilidosos quanto os humanos em relação as ferramentas, eles também &lt;br /&gt;construíram grandes monumentos, porém todos estes monumentos são construídos dentro de Ruggvar &lt;br /&gt;reino dos anões e nunca fora dele.&lt;br /&gt;&amp;nbsp;Existe uma lei no reino de Ruggvar, nenhum anão pode sair de dentro do reino, e nenhum ser que &lt;br /&gt;pertence a outra raça pode entrar em Ruggvar sem ser convidado pelo Senhor Anão.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dragões –&lt;/b&gt; Dragões no mundo Mirounir, são vulgarmente chamados pelos humanos de Serpentes do &lt;br /&gt;Vulcão, estas poderosas criaturas sempre foram respeitadas e tratadas como Deuses, até Lhutel assumir &lt;br /&gt;o posto de &lt;br /&gt;rei dos homens e banir os dragões do trono escupido em ouro.&lt;br /&gt;&amp;nbsp;Com uma guerra que durou décadas, esta poderosa raça foi extinta de Mirounir, e isto trouxe grandes &lt;br /&gt;conseqüências ao ciclo natural.&lt;br /&gt;&amp;nbsp;Os dragões sempre foram devotos a um único líder, o mestre dragão Onagard, este dragão representou &lt;br /&gt;o início da espécie em Mirounir, e sua morte representou o fim dos dragões no mundo.&lt;br /&gt;&amp;nbsp;Uma  grande lenda conta que um dragão filho de Onagard, nasceu com maldade  em seu coração, plantando &lt;br /&gt;o mal em sua espécie e aprisionando seu  próprio pai, colocando os humanos a escravidão.&lt;br /&gt;&amp;nbsp;Antes do fim dessa espécie, as Montanhas eram dominadas por eles, e até hoje as montanhas são &lt;br /&gt;conhecidas como o lar dos dragões, foram denominadas então de Montanhas Onagard.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tritões –&lt;/b&gt; seres submarinos, são especialistas na arte da alquimia, porém são seres &lt;br /&gt;extremamente pacíficos e raramente são vistos longe de Ollding o templo do oceano, Existem rumores &lt;br /&gt;de que nos mares de Mirounir exista uma ilha fantasma, onde os humanos e tritões compartilham os &lt;br /&gt;segredos da magia, com isto se prova a existência dos humanos habilidosos em magias, também &lt;br /&gt;conhecidos como Magos.&lt;br /&gt;&amp;nbsp;Os tritões possuem um rei, mas não são seres de regras, porém os Tritões são capazes de prever as&lt;br /&gt;conseqüências de seus atos, portanto um tritão nunca faz uma escolha não sábia e estão sempre&lt;br /&gt;ajudando uns aos outros, para que o ciclo natural dos mares seja sempre preservado.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mortos-vivos –&lt;/b&gt; Existe um local em Mirounir chamado de Pântano Runnes, seu nome se deve a&lt;br /&gt;maldição lançada nesta parte do mundo por um antigo sábio, conhecido como Runnes, graças a maldição&lt;br /&gt;de Runnes, a terra neste local apodreceu, e toda vida que neste local se perder terá seu espírito&lt;br /&gt;mantido preso nestas terras e se tornará um morto-vivo.&lt;br /&gt;&amp;nbsp;Os mortos-vivos variam em sua aparência, porém todos possuem o mesmo extinto, todos são seres&lt;br /&gt;violentos e carentes de amigos, porém a única maneira de se tornar amigo de um morto-vivo e ser&lt;br /&gt;um morto-vivo, isto explica o porque dos mortos-vivos atacarem visitantes no pântano, tudo que eles&lt;br /&gt;desejam é dividir seu lar com novos companheiros.&lt;br /&gt;&lt;br /&gt;Porém no mundo de Mirounir, existe uma raça bem diferente das que já estamos acostumados, uma raça&lt;br /&gt;que desapareu dos olhos dos outros seres de Mirounir, uma raça chamada Tílios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tílios -&lt;/b&gt; Uma raça de humanos não muito comum foi julgada e rejeitada pelos homens pela&lt;br /&gt;aparência esquisita e por seus atos insuportáveis, expulsa do reino de Kirin Zhun há muito tempo, esta&lt;br /&gt;raça foi viver escondida em meio às florestas.&lt;br /&gt;&amp;nbsp;Tilios foram denominados, pois lembravam os Tilitios, pequenos gnomos de cabelos vermelhos.&lt;br /&gt;&amp;nbsp;Os tílios são criaturas curiosas para os outros seres no mundo de Mironir, vivem a fazer travessuras,&lt;br /&gt;é da natureza de todo Tilio ser travesso, e mesmos velhos e pais de família continuam a fazer suas&lt;br /&gt;travessuras, embora sejam travessos são medrosos e pacíficos. Os Tílios tem uma aparência engraçada,&lt;br /&gt;são pequenos e nascem com os cabelos avermelhados, grossas sobrancelhas escuras, pele branca e olhos&lt;br /&gt;cor de ameixa.&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img153.imageshack.us/img153/911/osherois.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="bbc_table"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img alt="" border="0" class="bbc_img" src="http://i64.servimg.com/u/f64/12/54/07/30/tales10.png" /&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Nome:&lt;/b&gt; Tales;&lt;br /&gt;&lt;b&gt;Idade:&lt;/b&gt; 14 anos;&lt;br /&gt;&lt;b&gt;Classe:&lt;/b&gt; Mestre das Feras;&lt;br /&gt;&lt;b&gt;Habilidades Principais:&lt;/b&gt; Coletar a alma do monstro a qual derrotar;&lt;br /&gt;&lt;b&gt;Características:&lt;/b&gt; Cabelos Verdes, Olhos Negros, na cabeça um chifre;&lt;br /&gt;&lt;b&gt;Raça:&lt;/b&gt; Tílio;&lt;br /&gt;&lt;b&gt;Relatório do Personagem: &lt;/b&gt; Tales é um pequeno e diferente tílio será o protagonista do projeto, &lt;br /&gt;portador  da espada forjada pelo dragão, sempre foi rejeitado pela sua vila, e  com a espada em suas mãos, deseja se tornar um grande guerreiro e poder  levar sua raça de volta ao mundo, sem precisarem se esconder, com isto,  Tales pretende ser respeitado por todos em sua vila, conseguindo o afeto  que nunca teve por ninguém.&lt;br /&gt;&lt;b&gt;O Protagonista sempre precisa de algo mais...&amp;nbsp; &amp;nbsp;&lt;img alt=":SRM 75:" border="0" class="smiley" src="http://www.santuariorpgmaker.com/forum/Smileys/santuario/Armina-%2875%29.gif" title="la" /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img19.imageshack.us/img19/7083/15545278.png" target="_blank"&gt;Clique aqui!!!&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://rekkiem.deviantart.com/art/Tales-Forjada-pelo-Dragao-186645576" target="_blank"&gt;Clique aqui!!!&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;table class="bbc_table"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img alt="" border="0" class="bbc_img" src="http://i64.servimg.com/u/f64/12/54/07/30/dragan10.png" /&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Nome:&lt;/b&gt; Dragano;&lt;br /&gt;&lt;b&gt;Idade:&lt;/b&gt; Aparentemente um menino de 14 anos;&lt;br /&gt;&lt;b&gt;Classe:&lt;/b&gt; Discípulo do Dragão;&lt;br /&gt;&lt;b&gt;Habilidades Principais:&lt;/b&gt; Baforar fogo;&lt;br /&gt;&lt;b&gt;Características:&lt;/b&gt; Aparência de menino, mas com o tempo vai ganhando forma de dragão.&lt;br /&gt;&lt;b&gt;Raça:&lt;/b&gt; Dragão.&lt;br /&gt;&lt;b&gt;Relatório do Personagem:&lt;/b&gt; De um ovo nasce uma criança que parece humana, mas quanto mais ganha &lt;br /&gt;nível de batalha, mais se torna um dragão. Vai ganhando garras, escamas, asas, baforada até se tornar um &lt;br /&gt;dragão que pode virar humanóide e vice versa.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;table class="bbc_table"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img alt="" border="0" class="bbc_img" src="http://i64.servimg.com/u/f64/12/54/07/30/melani10.png" /&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Nome:&lt;/b&gt; Melani;&lt;br /&gt;&lt;b&gt;Idade:&lt;/b&gt; 13 anos;&lt;br /&gt;&lt;b&gt;Classe:&lt;/b&gt; Alquimista;&lt;br /&gt;&lt;b&gt;Habilidades Principais:&lt;/b&gt; Recuperar o HP e SP de Tales e Dragano;&lt;br /&gt;&lt;b&gt;Características:&lt;/b&gt; Corpo pequeno, Cabeleos vermelhos, Olhos Roxos;&lt;br /&gt;&lt;b&gt;Raça:&lt;/b&gt; Tília;&lt;br /&gt;&lt;b&gt;Relatório do Personagem:&lt;/b&gt; Melani é uma jovem Tília que segue Tales em busca de aventuras, esta &lt;br /&gt;sempre causando confusão por não se conter e sempre fazer travessuras com tudo e com todos, sua principal &lt;br /&gt;característica é cuidar dos Itens nas batalhas, e por distrair os inimigos causando explosões e tumultos &lt;br /&gt;sendo assim é a responsável pela vantagem dos guerreiros em batalha.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;table class="bbc_table"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img alt="" border="0" class="bbc_img" src="http://i64.servimg.com/u/f64/12/54/07/30/rutez10.png" /&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Nome:&lt;/b&gt; Rutes;&lt;br /&gt;&lt;b&gt;Idade:&lt;/b&gt; 17 anos;&lt;br /&gt;&lt;b&gt;Classe:&lt;/b&gt; Mago Branco;&lt;br /&gt;&lt;b&gt;Habilidades Principais:&lt;/b&gt; Baixar os Status dos Inimigos;&lt;br /&gt;&lt;b&gt;Características:&lt;/b&gt; Pele azulada, Longos cabelos loiros, em sua pele existem escamas e barbatanas.&lt;br /&gt;&lt;b&gt;Raça:&lt;/b&gt; Tritão;&lt;br /&gt;&lt;b&gt;Relatório do Personagem: &lt;/b&gt; Rutes é um tritão um pouco convencido de mais, se acha o bonitão e se &lt;br /&gt;aproveita de suas habilidades de transformação, para sempre conquistar garotas, porém sua aparência real, &lt;br /&gt;mostra que ele não passa de um tritão magro e feio. Segue Tales e seus companheiros, com o pensamento de &lt;br /&gt;conhecer garotas no mundo, e encontrar um grande amor.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Na versão Beta 0.1 só haverá três personagens jogáveis, serão eles:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img813.imageshack.us/img813/6163/demoz.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img263.imageshack.us/img263/4835/miniaturam10.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Screenshots&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O projeto ainda esta em crescimento, por isto nenhuma das imagens estão em suas formas finais.&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;table class="bbc_table"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a class="bbc_link new_win" href="http://img834.imageshack.us/img834/9748/18721180.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img521.imageshack.us/img521/7092/03miniatura.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="bbc_link new_win" href="http://img192.imageshack.us/img192/6558/91107165.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img641.imageshack.us/img641/7445/04miniatura.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="bbc_link new_win" href="http://img210.imageshack.us/img210/6862/74976402.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img403.imageshack.us/img403/1227/05miniatura.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;table class="bbc_table"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a class="bbc_link new_win" href="http://img813.imageshack.us/img813/461/55864873.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img407.imageshack.us/img407/7231/06miniatura.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="bbc_link new_win" href="http://img816.imageshack.us/img816/9827/80428104.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img26.imageshack.us/img26/6281/07miniatura.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Videos&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Música 01 - Lendas de Miorunir - by Alangato.&lt;br /&gt;Música 02 - Aventuras e Desafios - by Alangato.&lt;/b&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gVze9Ve5ZwQ?fs=1&amp;amp;hl=en_US&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gVze9Ve5ZwQ?fs=1&amp;amp;hl=en_US&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;/div&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Concept Arts.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img833.imageshack.us/img833/824/forjadapelodragoartwork.png" /&gt;&lt;/div&gt;&lt;br /&gt;Fizemos  vários esboços até encontrar o desing ideal dos heróis do projeto,  Sakami e eu tivemos muitos problemas para alcançar o ponto desejado,  segue abaixo algumas das ilustrações que fizemos, e a transformação dos  personagens até o ponto que temos hoje, coisa que só irei revelar mais  tarde.&lt;br /&gt;&lt;br /&gt;&lt;div align="center" class="spoiler"&gt;Spoiler: &lt;input onclick="showSpoiler(this);" type="button" value="Mostrar/Esconder" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;pre&gt;&lt;div align="left"&gt;&lt;div class="alt2" style="border: 1px inset; margin: 0px; padding: 6px;"&gt;&lt;div&gt;&lt;div align="center"&gt;&lt;a class="bbc_link new_win" href="http://img42.imageshack.us/img42/8341/esboo001.png" target="_blank"&gt;http://img42.imageshack.us/img42/8341/esboo001.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img530.imageshack.us/img530/9398/esboo002.png" target="_blank"&gt;http://img530.imageshack.us/img530/9398/esboo002.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img136.imageshack.us/img136/2088/esboo003.png" target="_blank"&gt;http://img136.imageshack.us/img136/2088/esboo003.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img42.imageshack.us/img42/7100/esboos004.png" target="_blank"&gt;http://img42.imageshack.us/img42/7100/esboos004.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img42.imageshack.us/img42/5012/esboos005.png" target="_blank"&gt;http://img42.imageshack.us/img42/5012/esboos005.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img136.imageshack.us/img136/5673/esboos006.png" target="_blank"&gt;http://img136.imageshack.us/img136/5673/esboos006.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img136.imageshack.us/img136/1438/esboos007.png" target="_blank"&gt;http://img136.imageshack.us/img136/1438/esboos007.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img530.imageshack.us/img530/2152/esboos008.png" target="_blank"&gt;http://img530.imageshack.us/img530/2152/esboos008.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img689.imageshack.us/img689/5293/esboos009.png" target="_blank"&gt;http://img689.imageshack.us/img689/5293/esboos009.png&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://img145.imageshack.us/img145/6138/esboos010.png" target="_blank"&gt;http://img145.imageshack.us/img145/6138/esboos010.png&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img412.imageshack.us/img412/685/sistemasl.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="bbc_color" style="color: teal;"&gt;۞ Finalizado&lt;/span&gt;&lt;br /&gt;۞ Sendo Desenvolvido&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="bbc_color" style="color: teal;"&gt;-Menu FPD - by Zé Coméia&lt;/span&gt;;&lt;br /&gt;&lt;div align="left" class="spoiler"&gt;Spoiler: &lt;input onclick="showSpoiler(this);" type="button" value="Mostrar/Esconder" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;pre&gt;&lt;div align="left"&gt;&lt;a class="bbc_link new_win" href="http://img524.imageshack.us/img524/120/41077034.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img51.imageshack.us/img51/1476/01miniatura.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;-ACBS - by Atoa;&lt;br /&gt;&lt;span class="bbc_color" style="color: teal;"&gt;-Sistema de coletar almas dos inimigos para utilizar em batalhas;&lt;br /&gt;-Introdução animada;&lt;br /&gt;-Tela de títulos FPD por eventos;&lt;/span&gt;&lt;br /&gt;&lt;div align="left" class="spoiler"&gt;Spoiler: &lt;input onclick="showSpoiler(this);" type="button" value="Mostrar/Esconder" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;pre&gt;&lt;div align="left"&gt;&lt;a class="bbc_link new_win" href="http://img809.imageshack.us/img809/1104/26502072.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img535.imageshack.us/img535/9933/00miniatura.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="bbc_color" style="color: teal;"&gt;-Alquimia para bombas;&lt;br /&gt;-Item Mapa (evento que possibilita ver a localização do herói no mundo);&lt;br /&gt;-Bestiário FPD por eventos;&lt;/span&gt;&lt;br /&gt;&lt;div align="left" class="spoiler"&gt;Spoiler: &lt;input onclick="showSpoiler(this);" type="button" value="Mostrar/Esconder" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;pre&gt;&lt;div align="left"&gt;&lt;a class="bbc_link new_win" href="http://img26.imageshack.us/img26/3669/40591924.png" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img31.imageshack.us/img31/664/02miniatura.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="bbc_color" style="color: teal;"&gt;-Key Itens - by Zé Coméia;&lt;br /&gt;-Tempo real;&lt;/span&gt;&lt;br /&gt;-Dia e noite;&lt;br /&gt;-Monstros por horário;&lt;br /&gt;&lt;span class="bbc_color" style="color: teal;"&gt;-3 tipos de moedas (Moedas FPD) - by Akimenerus / Jeff MasterBee / Zé Coméia;&lt;br /&gt;-Limitação de volume de moedas- by Akimenerus / Jeff MasterBee;&lt;br /&gt;-Show Item - Zé Coméia;&lt;/span&gt;&lt;br /&gt;-Dentre outros sistemas e recursos exclusivos do projeto, que estamos criando ou que ainda iremos criar.&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Scripts Adicionais.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;fieldset class="box_bbcode"&gt;&lt;legend&gt;Scripts&lt;/legend&gt;&lt;b&gt;ACBS -&lt;/b&gt; Atoa&lt;br /&gt;&lt;b&gt;Icones na batalha -&lt;/b&gt; by Momo&lt;br /&gt;&lt;b&gt;New Particle Engine -&lt;/b&gt; by Everulopapo&lt;br /&gt;&lt;b&gt;UMS -&lt;/b&gt; by CCoa&lt;br /&gt;&lt;b&gt;Cura ao passar de LV -&lt;/b&gt; by Slipknot&lt;br /&gt;&lt;b&gt;Cure for Time -&lt;/b&gt; by Dodoop&lt;br /&gt;&lt;b&gt;Clima Avançado -&lt;/b&gt; by CCOA&lt;br /&gt;&lt;b&gt;Audio Cript Demo -&lt;/b&gt; by Renan Tsuneo Hangai Junior&lt;br /&gt;&lt;b&gt;MOG Scene Story V1.0 -&lt;/b&gt; by Moghunter&lt;br /&gt;&lt;b&gt;Anti Event Lag System -&lt;/b&gt; by Zeriab&lt;br /&gt;&lt;b&gt;MOG_Location_Name V1.4 -&lt;/b&gt; by Moghunter&lt;br /&gt;&lt;b&gt;Menu de Opções Ver. 1.0 -&lt;/b&gt; by Serial Killer&lt;br /&gt;&lt;b&gt;HL-Auto Equip -&lt;/b&gt; by Lennon / HugoLinux&lt;br /&gt;&lt;b&gt;SHIFT para Correr -&lt;/b&gt; by Marlos Gama&lt;br /&gt;&lt;b&gt;Level UP XRXS -&lt;/b&gt; by XRXS&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img716.imageshack.us/img716/1618/almas.png" /&gt;&lt;/div&gt;&lt;br /&gt;O principal sistema do projeto, é a absorção de almas dos monstros derrotados.&lt;br /&gt;&amp;nbsp;Quanto  mais almas o jogador conseguir coletar, mais variedade de ataques Tales  terá, com&amp;nbsp; isso o jogador sempre teria vantagens contra os fortes  inimigos, utilizando almas a qual o monstro possui fraquesas.&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img815.imageshack.us/img815/8104/almavermelha.gif" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Existem &lt;b&gt;4 tipos de almas&lt;/b&gt; cada uma com sua habilidade especial, segue abaixo uma breve explicação:&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img151.imageshack.us/img151/8158/ballblue.png" /&gt;&lt;span class="bbc_color" style="color: red;"&gt;&lt;b&gt;Almas Vermelhas:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;As  almas vermelhas são ataques diretamente com uso da espada, ao desferir  um ataque com&amp;nbsp; a arma, a energia da alma é colocada para fora lançando  um ataque especial de curto alcance.&lt;br /&gt;Geralmente as almas vermelhas  dão diferentes atributos elementais a espada, sendo que ela podera  desferir ataques de chamas, raio, gelo e etc...E aumentando danos contra  inimigos que possuem desvantagem, o gasto de energia destas almas, são  baixos e o dano causado só perde para as almas de invocação, porém a  resistência e esquiva do jogador é colocada em risco, por estar muito  próximo aos inimigos.&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img812.imageshack.us/img812/7915/almapreta.png" /&gt;&lt;b&gt;Almas Pretas:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;Almas  poderosas e de grande consumo de energia, com as almas pretas Tales  pode invocar o monstro na batalha, onde grandes danos afetam diretamente  o inimigo atacado.&lt;br /&gt;Almas de invocação são extremamente dificeis de  conseguir, mas são habilidades importantes para quem gosta de ataques de  grande dano para esmagar os inimigos.&lt;br /&gt;É necessario no mínimo 2 rodadas para atacar com uma invocação, pois Tales precisa consentrar grande energia.&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img545.imageshack.us/img545/248/almaverde.png" /&gt;&lt;span class="bbc_color" style="color: green;"&gt;&lt;b&gt;Almas Verdes:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Estas  são almas de habilidades especiais, geramelte são ataques de longa  distância, onde ataques são lançados sem a precisão do heróis estar  perto do inimigo.&lt;br /&gt;Estes ataques dão ligeira vantagem em defesa, porém  não causam danos tão extensos quanto os danos das almas vermelhas e  pretas e seu gasto de energia só perde para o das almas pretas.&lt;br /&gt;Quanto mais utilizadas em batalha, mais fraco o dano de seus golpes fica na batalha e menas vantagem de defesa é adquirida.&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img145.imageshack.us/img145/5618/almaazul.png" /&gt;&lt;span class="bbc_color" style="color: blue;"&gt;&lt;b&gt;Almas Azuis:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Almas utilizadas para dar vantagens, geralmente seus ataques afetam diretamente o campo causando baixas nos status dos monstros.&lt;br /&gt;Estas são almas que podem ser utilizadas fora de batalha, e que ajudariam os heróis a passar por caminhos de dificil acesso.&lt;br /&gt;Almas  azuis possuem gastos de energia medianos, porém o jogador tem de ser  esperto ao usalas, pois com isto pode se perder um turno e tomar um  ataque direto sem chances de defesa.&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img441.imageshack.us/img441/9017/trilhasonora.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;A  Trilha Sonora do game se destaca, com músicas produzidas pela equipe,  visando sempre a importância da melodia ao ambiente proposto. Esta é uma  area esquecida em muitos projetos, mas em Forjada pelo Dragão, este é  um fator fundamental para um bom jogo.&lt;br /&gt;&lt;br /&gt;A area sonoplasta do projeto esta sendo conduzida por Jeff MasterBee e Alangato.&lt;br /&gt;&lt;br /&gt;&lt;span class="bbc_color" style="color: red;"&gt;&lt;b&gt;IMPORTANTE!!!&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Nenhuma  destas músicas que estão em download podem ser utilizadas, são  trabalhos exclusivos da equipe MasterBee Games para Forjada pelo dragão.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MP3&amp;nbsp; -&lt;/b&gt; Power Of The Imp - &lt;b&gt;compositor:&lt;/b&gt; Jeff MasterBee, &lt;b&gt;Mix:&lt;/b&gt; Erick Paladium;&lt;br /&gt;download aqui: &lt;a class="bbc_link new_win" href="http://www.4shared.com/file/0v8cd8c_/Power_Of_The_Imp.html" target="_blank"&gt;http://www.4shared.com/file/0v8cd8c_/Power_Of_The_Imp.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MIDI -&lt;/b&gt; O filho de Onagard - &lt;b&gt;compositor:&lt;/b&gt; Jeff MasterBee.&lt;br /&gt;download aqui: &lt;a class="bbc_link new_win" href="http://www.4shared.com/audio/srlfdsJC/03-O_filho_de_Onagard.html" target="_blank"&gt;http://www.4shared.com/audio/srlfdsJC/03-O_filho_de_Onagard.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MIDI -&lt;/b&gt; A Marcha - &lt;b&gt;compositor:&lt;/b&gt; Alangato.&lt;br /&gt;download aqui: &lt;a class="bbc_link new_win" href="http://www.4shared.com/audio/0_od9YcR/07-_A_Marcha.html" target="_blank"&gt;http://www.4shared.com/audio/0_od9YcR/07-_A_Marcha.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Os softwares utilizados para a composição são:&lt;br /&gt;&lt;br /&gt;&lt;span class="bbc_u"&gt;Guitar Pro 5.2 -&lt;/span&gt;&lt;/b&gt; Sequênciador sonoro;&lt;br /&gt;&lt;b&gt;&lt;span class="bbc_u"&gt;Fruit Loops 8 -&lt;/span&gt;&lt;/b&gt; Mixagem das músicas dando maior qualidade sonora.&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/8721/barrr.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Download.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Infelizmente  ainda não possuimos uma versão para download, estamos trabalhando nisto  para trazer uma ótima beta aos curiosos de plantão.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Barras.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img713.imageshack.us/img713/9926/basica.png" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;form name="bn1"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="80" name="code" readonly="readonly" rows="2"&gt;[url=http://www.santuariorpgmaker.com/forum/galeria-de-projetos/forjada-pelo-dragao/][img]http://i64.servimg.com/u/f64/12/54/07/30/basica10.png[/img][/url]&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img138.imageshack.us/img138/3600/tales.png" /&gt;&lt;/div&gt;&lt;form name="bn2"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="80" name="code" readonly="readonly" rows="2"&gt;[url=http://www.santuariorpgmaker.com/forum/galeria-de-projetos/forjada-pelo-dragao/][img]http://i64.servimg.com/u/f64/12/54/07/30/tales11.png[/img][/url]&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img22.imageshack.us/img22/8755/dragano.png" /&gt;&lt;/div&gt;&lt;form name="bn3"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="80" name="code" readonly="readonly" rows="2"&gt;[url=http://www.santuariorpgmaker.com/forum/galeria-de-projetos/forjada-pelo-dragao/][img]http://i64.servimg.com/u/f64/12/54/07/30/dragan11.png[/img][/url]&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img138.imageshack.us/img138/6519/melani.png" /&gt;&lt;/div&gt;&lt;form name="bn4"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="80" name="code" readonly="readonly" rows="2"&gt;[url=http://www.santuariorpgmaker.com/forum/galeria-de-projetos/forjada-pelo-dragao/][img]http://i64.servimg.com/u/f64/12/54/07/30/melani11.png[/img][/url]&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img22.imageshack.us/img22/427/rutes.png" /&gt;&lt;/div&gt;&lt;form name="bn5"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="80" name="code" readonly="readonly" rows="2"&gt;[url=http://www.santuariorpgmaker.com/forum/galeria-de-projetos/forjada-pelo-dragao/][img]http://i64.servimg.com/u/f64/12/54/07/30/rutes10.png[/img][/url]&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img143.imageshack.us/img143/7347/menusozai05.png" /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;b&gt;Créditos &amp;amp; Agradecimentos.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;A todos que participaram da equipe &lt;b&gt;MasterBee Games&lt;/b&gt; e que deixaram suas idéias e trabalhos, como &lt;b&gt;TAXD, Dark Luar, Poiugo, Dark Paladium, Feu [Kaname]&lt;/b&gt; e &lt;b&gt;Shepher&lt;/b&gt;.&lt;br /&gt;&amp;nbsp;Agradeço tbm à &lt;b&gt;Kiin&lt;/b&gt;,  uma grande amiga que fez o maravilhoso logo da equipe... Também ao  Megalukes que nos apoia e nos apresentou o ACBS e toda sua grandiosidade  e principalmente ao Atoa que criou o ACBS.&lt;br /&gt;&amp;nbsp;Também agradeço ao &lt;b&gt;Akimenerus&lt;/b&gt; pelas ajudas nos sistemas, ao &lt;b&gt;Crazy Nero&lt;/b&gt; e ao &lt;b&gt;Tunico&lt;/b&gt; por sempre estarem nos apoiando, sempre sendo os maiores companheiros em relação as críticas construtívas.&lt;br /&gt;&amp;nbsp;Ao &lt;b&gt;CristianoForce&lt;/b&gt; da comunidade MRM, por ser um grande colaborador em relação aos novos sistemas por eventos.&lt;br /&gt;&amp;nbsp;A &lt;b&gt;Erick Paladium&lt;/b&gt; pelo ótimo &lt;b&gt;Mix&lt;/b&gt; da faixa &lt;b&gt;Power Of The Imp&lt;/b&gt;.&lt;br /&gt;&amp;nbsp;Ao &lt;b&gt;Gitz&lt;/b&gt; por ser um amigo que esta sempre apoiando a idéia do projeto e conferindo de perto as novidades.&lt;br /&gt;&amp;nbsp;E a todos que ainda estão me ajudando um agradecimento em especial, se esqueci de alguém por favor mil perdões.&lt;br /&gt;&amp;nbsp;A &lt;b&gt;Santuário RPG Maker&lt;/b&gt; pelo espaço que oferece a nós criadores de games amadores, e a &lt;b&gt;você&lt;/b&gt;, futuro jogador.&lt;br /&gt;&amp;nbsp;Em especial &lt;b&gt;nós da equipe&lt;/b&gt; gostariamos de agradecer &lt;b&gt;aos nossos pais&lt;/b&gt;, que em resultado de uma boa noite de sexo, deu origem a estes moribundos.&lt;br /&gt;&amp;nbsp;Obrigado .&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div align="center"&gt;&lt;b&gt;PS:&lt;/b&gt; Estamos em busca de um eventer experiente e um scripter em RMXP.&lt;br /&gt;&amp;nbsp;Aqueles que se interessarem pelas vagas, por favor me comunicar via MP.&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a class="bbc_link new_win" href="http://creativecommons.org/licenses/by-nc-nd/3.0/br/" target="_blank"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Forjada Pelo Dragão de &lt;a class="bbc_link new_win" href="http://www.santuariorpgmaker.com/forum/index.php?action=profile;u=208" target="_blank"&gt;MasterBee Games&lt;/a&gt; é licenciado sob uma &lt;a class="bbc_link new_win" href="http://creativecommons.org/licenses/by-nc-nd/3.0/br/" target="_blank"&gt;Licença Creative Commons Atribuição-Uso não-comercial-Vedada a criação de obras derivadas 3.0 Brasil.&lt;/a&gt;&lt;br /&gt;Based on a work at &lt;a class="bbc_link new_win" href="http://www.santuariorpgmaker.com/forum/index.php?topic=1414.msg9192#msg9192" target="_blank"&gt;www.santuariorpgmaker.com.&lt;/a&gt;&lt;br /&gt;Permissions beyond the scope of this license may be available at &lt;a class="bbc_link new_win" href="http://www.mundorpgmaker.com/" target="_blank"&gt;www.mundorpgmaker.com&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" border="0" class="bbc_img" src="http://img593.imageshack.us/img593/6522/talesfinaltpico.png" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-2233151404288451337?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2011/01/forjada-pelo-dragao.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-2198042812903057007</guid><pubDate>Mon, 01 Nov 2010 20:08:00 +0000</pubDate><atom:updated>2011-02-04T15:57:17.584-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS12</category><title>BMP writer</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;BMP writer&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Método implementado na classe IO para escrever um arquivo de imagem do tipo bmp truecolor de 24bits a partir de um objeto da classe Bitmap usada no RGSS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li type="disc"&gt;bmp truecolor 24bits&lt;/li&gt;&lt;li type="disc"&gt;resolução vertical e horizontal de 96dpi&lt;/li&gt;&lt;li type="disc"&gt;utiliza um objeto da classe Bitmap do RGSS para gerar o arquivo de imagem&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Como Usar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;*Ao abrir o arquivo para a escrita, use o modo BINÁRIO.&lt;br /&gt;&lt;code&gt;file = File.new('image.bmp','wb')&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Para gravar a imagem no arquivo, use o metodo bmp_write após abrir o arquivo.&lt;br /&gt;&lt;code&gt;file.bmp_write(aBitmap_obj)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Feche o arquivo.&lt;br /&gt;&lt;code&gt;file.close&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;OBS: A escrita é um pouco demorada, dependendo tamanho da imagem pode levar alguns segundos. Veja a técnica de uso do script a seguir para resolver o problema.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Usando o BMP writer num processor paralelo &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;O script não utliza bibliotecas externas. Foi escrito totalmente em Ruby baseando-se no objeto Bitmap usado em RGSS/2. Mesmo sendo feito para ter um bom desempenho com relação ao tempo de escrita de arquivo, para empregá-lo em jogos o tempo de escrita pode acabar sendo longo. Por exemplo, em uma máquina com Core 2 Duo o script levou 2 segundos para gravar um bitmap de 640x480, o que parece rápidos, mas pode ser um incmodo no meio de um jogo.&lt;br /&gt;&lt;br /&gt;Então resolvi usar o metodo de escrita em um processo paralelo para não ocorrer aquela pausa no jogo enquanto a gravação do arquivo está em andamento. O problema é que leva mais tempo para o arquivo ser salvo(seguindo mesmo exemplo anterior, levou 1 minuto e meio para a gravação), isso significa que não é possível visualizar/utilizar o arquivo gerao enquanto não terminar essa gravação, e também caso o jogo seja fechado antes do término o arquivo fica corrompido.&lt;br /&gt;&lt;br /&gt;Para criar nosso processo paralelo usaremos uma Thread. Basicamente uma thread é um bloco de código que é executado em paralelo com o programa principal. A técnica não é muito complicada nem ocupa muito espaço. Primeiro vamos carregar um Bitmap para usar na gravação:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;data_system        = load_data("Data/System.rxdata")&lt;br /&gt;aBitmap_obj = RPG::Cache.title(data_system.title_name)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As linhas acima irão carregar a imagem de título na variável aBitmap_obj.&lt;br /&gt;&lt;br /&gt;Agora vamos à Thread:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;thread_bmp = Thread.new(aBitmap_obj) do&lt;br /&gt;begin&lt;br /&gt;file = File.new('image.bmp','wb')&lt;br /&gt;file.bmp_write(aBitmap_obj)&lt;br /&gt;file.close&lt;br /&gt;rescue&lt;br /&gt;print 'Erro ao gravar um bitmap'&lt;br /&gt;end&lt;br /&gt;end&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;a linha:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;thread_bmp = Thread.new(aBitmap_obj) do&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Cria nossa Thread. Observe que já passamos como argumentoda Thread o Bitmap que criamos antes. O "do" define o nosso bloco de código que termina no último "end".&lt;br /&gt;&lt;br /&gt;O "begin" é um outro bloco que criei dentro da threadsó para poder usar o tratamentos de exceções(erros) da clausula "rescue". Isso porque quando ocorre um erro dentro da Thread o Game.exe fecha sem nem um aviso. Então se acontecer algum erro na Thread o que está entre o recue e o end será executado. No exemplo só cooquei uma mensagem, o que não é muito correto, porque se aconteceu algum erro a thread para mas o programa continua sem tratar do problema.&lt;br /&gt;&lt;br /&gt;Entre o begin e o rescue deve entrar aquelas três linhas que já usavamos para gravar o arquivo antes.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;file = File.new('image.bmp','wb')&lt;br /&gt;file.bmp_write(aBitmap_obj)&lt;br /&gt;file.close&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Abre o arquivo para leitura, escreve o BMP no arquivo e fecha o arquivo quando terminar a escrita.&lt;br /&gt;&lt;br /&gt;Basicamente é isso. Teste a técnica e qualquer dúvida fique a vontade.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="15"&gt;#========================================&lt;br /&gt;# BMP writer&lt;br /&gt;#----------------------------------------&lt;br /&gt;#by:      zecomeia&lt;br /&gt;#date:    01/11/2010&lt;br /&gt;#for:     RGSS/RGSS2&lt;br /&gt;#version: 1.0&lt;br /&gt;#www.colmeia-do-ze.blogspot.com&lt;br /&gt;#----------------------------------------&lt;br /&gt;=begin&lt;br /&gt;IO's method to write a BMP truecolor(24bits) file &lt;br /&gt;from a RGSS's Bitmap object.&lt;br /&gt;&lt;br /&gt;-bmp truecolor 24bits&lt;br /&gt;-resolution vertical and horizontal = 96dpi&lt;br /&gt;-use a RGSS's Bitmap object to write the image file&lt;br /&gt;&lt;br /&gt;*To open file to write, use BINARY mode.&lt;br /&gt;file = File.new('image.bmp','wb')&lt;br /&gt;To write use the bmp_write method after open file&lt;br /&gt;file.bmp_write(aBitmap_obj)&lt;br /&gt;Close file&lt;br /&gt;file.close&lt;br /&gt;=end&lt;br /&gt;&lt;br /&gt;class IO&lt;br /&gt;  &lt;br /&gt;  def bmp_write(bitmap)&lt;br /&gt;    self.write_FileHeader(bitmap)&lt;br /&gt;    self.write_ImageHeader(bitmap)&lt;br /&gt;    self.write_Bitmap(bitmap)    &lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def write_FileHeader(bitmap)    &lt;br /&gt;    #sign&lt;br /&gt;    self.putc(0x42)&lt;br /&gt;    self.putc(0x4D)&lt;br /&gt;    #file size&lt;br /&gt;    w = bitmap.width&lt;br /&gt;    h = bitmap.height&lt;br /&gt;    img_size = w * h * 3 + 56 # 3bytes/pixel(true color 24bits)&lt;br /&gt;    hexa = sprintf("%x",img_size)&lt;br /&gt;    length = hexa.size&lt;br /&gt;    hexa_byte = []    &lt;br /&gt;    if length%2 != 0&lt;br /&gt;    hexa = '0' + hexa&lt;br /&gt;    length +=1&lt;br /&gt;    end&lt;br /&gt;    pointer_byte = 0&lt;br /&gt;    for i in 0...length/2&lt;br /&gt;      pointer_byte += 1&lt;br /&gt;      hexa_byte[i] = hexa.unpack('a2')&lt;br /&gt;      hexa.sub!(hexa_byte[i].to_s,'')&lt;br /&gt;    end &lt;br /&gt;    for byte in hexa_byte.reverse&lt;br /&gt;      self.putc(sh_i(byte.to_s))&lt;br /&gt;    end&lt;br /&gt;    (4 - pointer_byte).times { self.putc(0x00) }&lt;br /&gt;    #reserved area&lt;br /&gt;    4.times { self.putc(0x00) }&lt;br /&gt;    #offset bits&lt;br /&gt;    self.putc(0x36)&lt;br /&gt;    3.times { self.putc(0x00) }&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def write_ImageHeader(bitmap)&lt;br /&gt;    #image header size&lt;br /&gt;    self.putc(0x28)&lt;br /&gt;    3.times { self.putc(0x00) }&lt;br /&gt;    #width&lt;br /&gt;    w = bitmap.width&lt;br /&gt;    hexa = sprintf("%x",w)&lt;br /&gt;    length = hexa.size&lt;br /&gt;    hexa_byte = []&lt;br /&gt;    if length%2 != 0&lt;br /&gt;    hexa = '0' + hexa&lt;br /&gt;    length +=1&lt;br /&gt;    end&lt;br /&gt;    pointer_byte = 0&lt;br /&gt;    for i in 0...length/2&lt;br /&gt;      pointer_byte += 1&lt;br /&gt;      hexa_byte[i] = hexa.unpack('a2')&lt;br /&gt;      hexa.sub!(hexa_byte[i].to_s,'')&lt;br /&gt;    end &lt;br /&gt;    for byte in hexa_byte.reverse&lt;br /&gt;      self.putc(sh_i(byte.to_s))&lt;br /&gt;    end&lt;br /&gt;    (4 - pointer_byte).times { self.putc(0x00) }&lt;br /&gt;    #height&lt;br /&gt;    h = bitmap.height&lt;br /&gt;    hexa = sprintf("%x",h)&lt;br /&gt;    length = hexa.size&lt;br /&gt;    hexa_byte = []&lt;br /&gt;    if length%2 != 0&lt;br /&gt;    hexa = '0' + hexa&lt;br /&gt;    length +=1&lt;br /&gt;    end&lt;br /&gt;    pointer_byte = 0&lt;br /&gt;    for i in 0...length/2&lt;br /&gt;      pointer_byte += 1&lt;br /&gt;      hexa_byte[i] = hexa.unpack('a2')&lt;br /&gt;      hexa.sub!(hexa_byte[i].to_s,'')&lt;br /&gt;    end &lt;br /&gt;    for byte in hexa_byte.reverse&lt;br /&gt;      self.putc(sh_i(byte.to_s))&lt;br /&gt;    end&lt;br /&gt;    (4 - pointer_byte).times { self.putc(0x00) }&lt;br /&gt;    #planes&lt;br /&gt;    self.putc(0x01)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    #bits per pixel&lt;br /&gt;    self.putc(0x18) # 3bytes/pixel(true color 24bits)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    #compression&lt;br /&gt;    4.times { self.putc(0x00) }&lt;br /&gt;    #image size&lt;br /&gt;    w = bitmap.width&lt;br /&gt;    h = bitmap.height&lt;br /&gt;    img_size = w*h*4&lt;br /&gt;    hexa = sprintf("%x",img_size)&lt;br /&gt;    length = hexa.size&lt;br /&gt;    hexa_byte = []&lt;br /&gt;    if length%2 != 0&lt;br /&gt;    hexa = '0' + hexa&lt;br /&gt;    length +=1&lt;br /&gt;    end&lt;br /&gt;    pointer_byte = 0&lt;br /&gt;    for i in 0...length/2&lt;br /&gt;      pointer_byte += 1&lt;br /&gt;      hexa_byte[i] = hexa.unpack('a2')&lt;br /&gt;      hexa.sub!(hexa_byte[i].to_s,'')&lt;br /&gt;    end &lt;br /&gt;    for byte in hexa_byte.reverse&lt;br /&gt;      self.putc(sh_i(byte.to_s))&lt;br /&gt;    end&lt;br /&gt;    (4 - pointer_byte).times { self.putc(0x00) }&lt;br /&gt;    #XPP meter&lt;br /&gt;    #(0ED8)HEX = (3800)DEC  = 96dpi&lt;br /&gt;    self.putc(0xD8)&lt;br /&gt;    self.putc(0x0E)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    #YPP meter&lt;br /&gt;    #(0ED8)HEX = (3800)DEC  = 96dpi&lt;br /&gt;    self.putc(0xD8)&lt;br /&gt;    self.putc(0x0E)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    self.putc(0x00)&lt;br /&gt;    #number of colors used&lt;br /&gt;    4.times { self.putc(0x00) }&lt;br /&gt;    #number of important colors&lt;br /&gt;    4.times { self.putc(0x00) }&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def write_Squad&lt;br /&gt;    &lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def write_Bitmap(bitmap)&lt;br /&gt;    for y in 1..bitmap.height&lt;br /&gt;      for x in 0...bitmap.width&lt;br /&gt;        color = bitmap.get_pixel(x, bitmap.height - y)&lt;br /&gt;        self.putc(color.blue)&lt;br /&gt;        self.putc(color.green)        &lt;br /&gt;        self.putc(color.red)&lt;br /&gt;        #complete line with random bytes if necessary&lt;br /&gt;        if (r = bitmap.width % 4) != 0 and x == (bitmap.width - 1)&lt;br /&gt;          (4 - r).times { 3.times { self.putc(0xFF) } }&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;module Kernel&lt;br /&gt;  &lt;br /&gt;  #Convert a string with hex number to a integer&lt;br /&gt;  #sh_i("FF") returns 255&lt;br /&gt;  def sh_i(sh)&lt;br /&gt;    eval("0x#{sh}")&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li type="disc"&gt;&lt;i style="font-style: italic;"&gt;Feito por zecomeia&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-2198042812903057007?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2010/11/bmp-writer-por-zecomeia-introducao.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-4272032619222003851</guid><pubDate>Thu, 01 Apr 2010 18:30:00 +0000</pubDate><atom:updated>2010-05-01T19:36:43.060-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Updates!</title><description>Mais um novo script para nossa lista de scripts para RGSS, o &lt;b&gt;XP Wave Effect&lt;/b&gt;. Com ele agora é possível que os programadores do RGSS consigam usar efeito que exclusivo do RGSS conhecido como "wave".&lt;br /&gt;Na verdade já tinha feito esse script e inclusive usado ele em um dos scripts aqui já postados, mas resolvi postar o script do efeito wave separado e percebi que ele precisava de melhorias e que estava "distante" de ser realmente igual ao efeito original no VX. Agora alem de estar muito masi parecido(eu pelo menos não vi diferença), também retirei algumas coisas que estavam causando lag(quando era usada apenas uma imagem como o efeito tudo bem, mas se usasse mais imagens ficava um inferno!).&lt;br /&gt;Sem mais enrolação, segue o link para o script:&lt;br /&gt;&lt;br /&gt;&lt;a href="/2010/04/xp-wave-effect.html"&gt;XP Wave Effect&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Como citado acima, um de meus scripts(na verdade uma conversão) já tinha usado o wave effect, portanto aí segue o link deste script agora com a atualização do XP Wave Effect:&lt;br /&gt;&lt;br /&gt;&lt;a href="/2009/12/mog-title-miria-xp-version.html"&gt;MOG Title Miria - XP version&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;*Ando muito ocupado ultimamente, então continuaram raras minhas postagens de conteudo aqui no blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-4272032619222003851?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2010/04/updates.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-1226308653536125691</guid><pubDate>Thu, 01 Apr 2010 18:05:00 +0000</pubDate><atom:updated>2010-04-01T15:14:05.340-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS</category><title>XP Wave Effect</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;XP Wave Effect&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Modificações na classe Sprite para usar o efeito "wave" existente apenas no RGSS2.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Muito fiel ao efeito do RMVX&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Screen Shot&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img33.imageshack.us/i/xpeaveeffectss.png/" target="_blank" title="ImageShack - Image And Video Hosting"&gt;&lt;img border="0" height="312" src="http://img33.imageshack.us/img33/69/xpeaveeffectss.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Como Usar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Cole o script acima de main;&lt;/li&gt;&lt;li&gt;Use da mesma forma como é usado no RGSS2, se não souber procure pelo manual de referencia ao RGSS no próprio arquivo de help do RMVX.&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/254625210/c7640781/XP_Wave_Effect.html" target="_blank"&gt;Dowload da demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="15"&gt;#========================================&lt;br /&gt;# XP Wave Effect&lt;br /&gt;#----------------------------------------&lt;br /&gt;#by:      zecomeia&lt;br /&gt;#date:    01/03/2010&lt;br /&gt;#for:     RGSS&lt;br /&gt;#version: 1.0&lt;br /&gt;#www.colmeia-do-ze.blogspot.com&lt;br /&gt;#----------------------------------------&lt;br /&gt;=begin&lt;br /&gt;Reproduction of the VX's wave effect&lt;br /&gt;(see the help file of the RPGMaker VX &lt;br /&gt;in the RGSS manual reference topic)&lt;br /&gt;=end&lt;br /&gt;&lt;br /&gt;#==============#&lt;br /&gt;# Sprite class #&lt;br /&gt;#==============#&lt;br /&gt;class Sprite&lt;br /&gt;  &lt;br /&gt;  include Math&lt;br /&gt;  &lt;br /&gt;  attr_accessor   :wave_amp&lt;br /&gt;  attr_accessor   :wave_length&lt;br /&gt;  attr_accessor   :wave_speed&lt;br /&gt;  attr_accessor   :wave_phase&lt;br /&gt;  attr_accessor   :temp_bitmap&lt;br /&gt;  &lt;br /&gt;  alias initialize default_initialize rescue nil&lt;br /&gt;  alias default_initialize initialize&lt;br /&gt;  def initialize(viewport=nil)&lt;br /&gt;    @wave_amp = 0&lt;br /&gt;    @wave_length = 180&lt;br /&gt;    @wave_speed = 360&lt;br /&gt;    @wave_phase = 0.0&lt;br /&gt;    default_initialize(viewport)&lt;br /&gt;    @temp_bitmap = nil&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  alias update default_update rescue nil&lt;br /&gt;  alias default_update update  &lt;br /&gt;  def update()&lt;br /&gt;    # the wave effect only works if wave_amp&lt;br /&gt;    # propertie is a number more than zero&lt;br /&gt;    wave_effect if @wave_amp &amp;gt; 0&lt;br /&gt;    default_update()&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  # Return the width of image, because when use&lt;br /&gt;  # obj.bitmap.width the value will be more than&lt;br /&gt;  # the original value(because effect)&lt;br /&gt;  def width()&lt;br /&gt;    return (self.bitmap.width - @wave_amp * 2)&lt;br /&gt;  end&lt;br /&gt;    &lt;br /&gt;  #---------------&lt;br /&gt;  # Wave Effect&lt;br /&gt;  #---------------&lt;br /&gt;  def wave_effect()&lt;br /&gt;    return if self.bitmap.nil?&lt;br /&gt;    @temp_bitmap = self.bitmap if @temp_bitmap.nil?&lt;br /&gt;    cw = @temp_bitmap.width + (@wave_amp * 2)&lt;br /&gt;    ch = @temp_bitmap.height&lt;br /&gt;    # Follow the VX wave effect, each horizontal line&lt;br /&gt;    # has 8 pixel of height. This device provides less&lt;br /&gt;    # lag in game.&lt;br /&gt;    divisions = @temp_bitmap.height / 8&lt;br /&gt;    divisions += 1 if @temp_bitmap.height % 8 != 0&lt;br /&gt;    self.bitmap = Bitmap.new(cw, ch)&lt;br /&gt;    for i in 0..divisions&lt;br /&gt;      x = @wave_amp * Math.sin(i * 2 * PI / (@wave_length / 8).to_i + Math.deg_to_rad(@wave_phase))&lt;br /&gt;      src_rect = Rect.new(0, i*8, @temp_bitmap.width, 8)&lt;br /&gt;      dest_rect = Rect.new(@wave_amp + x, i * 8, @temp_bitmap.width, 8)&lt;br /&gt;      self.bitmap.stretch_blt(dest_rect, @temp_bitmap, src_rect)&lt;br /&gt;    end&lt;br /&gt;    # frame rate: VX = 60 | XP = 40&lt;br /&gt;    # wave speed compatibility VX to XP: wave_speed * 60/40&lt;br /&gt;    # then: wave_speed * 1.5&lt;br /&gt;    @wave_phase += @wave_speed * 1.5 / @wave_length&lt;br /&gt;    @wave_phase -= 360 if @wave_phase &amp;gt; 360&lt;br /&gt;    @wave_phase += 360 if @wave_phase &amp;lt; 0&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#=============#&lt;br /&gt;# module Math #&lt;br /&gt;#=============#&lt;br /&gt;module Math&lt;br /&gt;  &lt;br /&gt;  #-------------------------------&lt;br /&gt;  # Conversion Degree to Radian&lt;br /&gt;  #-------------------------------&lt;br /&gt;  def Math.deg_to_rad(deg)&lt;br /&gt;    return (deg * PI) / 180.0&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;i&gt;zecomeia&lt;/i&gt; pela versão para XP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-1226308653536125691?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2010/04/xp-wave-effect.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-4595250426573419391</guid><pubDate>Sun, 28 Feb 2010 19:27:00 +0000</pubDate><atom:updated>2010-03-02T20:20:20.833-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS12</category><title>Module VirtualKeys</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;Module VirtualKeys&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Além de habilitar todas as teclas para o uso no RPGMaker, também é acompanhado de métodos que ajudaram na utilização das teclas, alguns tentam baseados em métodos já existentes no módulo Input, e outros totalmente novo ou incrementados.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Características&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;método #press?;&lt;/li&gt;&lt;li&gt;método #trigger?;&lt;/li&gt;&lt;li&gt;método #repeat?;&lt;/li&gt;&lt;li&gt;método #dir4 com algumas novidades;&lt;/li&gt;&lt;li&gt;método #dir8 com algumas novidades;&lt;/li&gt;&lt;li&gt;métodos para manipulação das funções GetKeyState e GetAsyncKeyState, usados na construção dos outros;&lt;/li&gt;&lt;li&gt;método #get_char que retorna a tecla pressionada(seguindo o padrão ABNT);&lt;/li&gt;&lt;li&gt;todas as características anteriores foram construídas em um módulo à parte e são totalmente independentes do módulo Input.&lt;/li&gt;&lt;li&gt;Não precisar usar um método de atualização como o módulo Input.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Como usar&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Instale o script acima de qualquer script que o use.&lt;br /&gt;&lt;br /&gt;*Caso use funções desse script em uma scene, de preferência não use atualize módulo Input no loop principal de sua scene, para evitar conflitos ou má performance deste script. Para isso, basta não colocar o método de módulo #update no loop da scene, veja:&lt;br /&gt;&lt;br /&gt;RGSS:&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="12"&gt;def main&lt;br /&gt;  #&lt;br /&gt;  #inicialização dos objetos da scene&lt;br /&gt;  #&lt;br /&gt;  Graphics.transition&lt;br /&gt;  loop do&lt;br /&gt;    Graphics.update&lt;br /&gt;    #Input.update &amp;lt;---- apague essa linha que aqui foi comentada&lt;br /&gt;    update&lt;br /&gt;    if $scene != self&lt;br /&gt;      break&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  Graphics.freeze&lt;br /&gt;  #&lt;br /&gt;  #dispose&lt;br /&gt;  #&lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;br /&gt;Como no RGSS2 o método #main fica na superclasse de todas scenes, Scene_Base, então será preciso alterar o método #main na própria scene ao invés de modificar o método #main em Scene_Base(para não interferir nas outras, a menos que queira isso). Veja como ficaria:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="12"&gt;def main&lt;br /&gt;  start&lt;br /&gt;  perform_transition&lt;br /&gt;  post_start&lt;br /&gt;  #Input.update &amp;lt;---- apague essa linha que aqui foi comentada&lt;br /&gt;  loop do&lt;br /&gt;    Graphics.update&lt;br /&gt;    #Input.update  &amp;lt;---- apague essa linha que aqui foi comentada&lt;br /&gt;    update&lt;br /&gt;    break if $scene != self&lt;br /&gt;  end&lt;br /&gt;  Graphics.update&lt;br /&gt;  pre_terminate&lt;br /&gt;  Graphics.freeze&lt;br /&gt;  terminate&lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;br /&gt;Para usar os métodos de verificação #press?, #trigger?, #repeat? siga o exemplo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="3"&gt;if VirtualKeys.press?(Virtual::VK_T)&lt;br /&gt;print 'você pressionou a letra T'&lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;br /&gt;*O argumento é um número inteiro, e segue a tabela das Virtual Keys encontrada no próprio módulo com todas as contantes definidas(seguindo valores hexadecimais).&lt;br /&gt;&lt;br /&gt;Veja um exemplo do método #get_char :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="12"&gt;char = VirtualKeys.get_char()&lt;br /&gt;if char[0] == true or char.size == 2 # se for um acento...&lt;br /&gt;case $Acento&lt;br /&gt;when 1 ; print "você pressionou ~"&lt;br /&gt;when 2 ; print "você pressionou ^"&lt;br /&gt;when 3 ; print "você pressionou ´"&lt;br /&gt;when 4 ; print "você pressionou `"&lt;br /&gt;when 5 ; print "você pressionou ¨"&lt;br /&gt;end&lt;br /&gt;elsif char[0] != nil #se for qualquer outro caractere...&lt;br /&gt;print "você pressionou #{char[0]}"&lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;br /&gt;Os métodos #dir4 e #dir8 têm o mesmo comportamento, porem, enquanto #dir4 analiza apenas as 4 direcionais para retornar um valor, #dir8 analiza também combinações entre as direções desde que não sejam opostas. Até aí sem novidades. Mas no módulo VirtualKeys ele agora recebeu 2 parâmetros de entrada, &lt;b&gt;type&lt;/b&gt; e &lt;b&gt;ignore_numpad&lt;/b&gt;. O primeiro pode ter 2 possíveis valores: 0=#press? ou 1=#trigger?. Isso vai mudar o método usado para analizar as teclas que movimentam o personagem. o argumento &lt;b&gt;ignore_numpad&lt;/b&gt; quando true, não avaliará as teclas direcionais que compartilham espaço com os números no teclado numérico(1,2,3,4,6,7,8 e 9). Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="12"&gt;case VirtualKeys.dir8(0,true)&lt;br /&gt;when 1 ; print('down left')&lt;br /&gt;when 2 ; print('down')&lt;br /&gt;when 3 ; print('down right')&lt;br /&gt;when 4 ; print('left')&lt;br /&gt;when 6 ; print('right')&lt;br /&gt;when 7 ; print('up left')&lt;br /&gt;when 8 ; print('up')&lt;br /&gt;when 9 ; print('up right')&lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;br /&gt;*Os valores padrões dos argumentos são (0,false).&lt;br /&gt;&lt;br /&gt;Os métodos que chamam as funções GetKeyState e GetAsyncKeyState são, respectivamente, #gks e #gaks, onde #gks analisa o estado da tecla levando em consideração que pressionar a tecla uma vez ativa a tecla e outra desativa(ex: CAPS LOCK), enquanto #gaks analisan se a tecla está sendo pressionada(segurando a tecla). Para ambos, quando a tecla não está ativa o valor retornado é 0, caso contráro será retornado um número qualquer que não é possível prever.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/232304215/80006a05/Module_Virtual_Keys.html" target="_blank"&gt;RMVX&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/232304810/fdfd1b5c/_3__Module_Virtual_Keys.html" target="_blank"&gt;RMXP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Script&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="15"&gt;#========================================&lt;br /&gt;# Module VirtualKeys&lt;br /&gt;#----------------------------------------&lt;br /&gt;#by:      zecomeia&lt;br /&gt;#date:    28/02/2010&lt;br /&gt;#for:     RGSS &amp;amp; RGSS2&lt;br /&gt;#version: 1.1&lt;br /&gt;#www.colmeia-do-ze.blogspot.com&lt;br /&gt;#----------------------------------------&lt;br /&gt;=begin&lt;br /&gt;&lt;br /&gt;*NOTE: recommended don't update the inputs using Input.update&lt;br /&gt;on the main loop of the scene to use functions of the script.&lt;br /&gt;para evitar conflitos, for to avoid conflicts.&lt;br /&gt;&lt;br /&gt;Module Methods:&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;VirtualKeys#press?(key)&lt;br /&gt;&lt;br /&gt;Determines whether the button num is currently being&lt;br /&gt;pressed.&lt;br /&gt;If the button is being pressed, returns TRUE. If not,&lt;br /&gt;returns FALSE.&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;VirtualKeys#trigger?(key)&lt;br /&gt;&lt;br /&gt;Determines whether the button "key" is being pressed again.&lt;br /&gt;"Pressed again" is seen as time having passed between the&lt;br /&gt;button being not pressed and being pressed.&lt;br /&gt;If the button is being pressed, returns TRUE. If not,&lt;br /&gt;returns FALSE.&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;VirtualKeys#repeat?(key)&lt;br /&gt;&lt;br /&gt;Determines whether the button "key" is being pressed again.&lt;br /&gt;Unlike trigger?, takes into account the repeat input of a&lt;br /&gt;button being held down continuously.&lt;br /&gt;If the button is being pressed, returns TRUE. If not,&lt;br /&gt;returns FALSE.&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;VirtualKeys#dir4(type=0, ignore_numpad=false)&lt;br /&gt;&lt;br /&gt;Checks the status of the directional buttons, translates the&lt;br /&gt;data into a specialized 4-direction input format, and returns&lt;br /&gt;the number pad equivalent (2, 4, 6, 8).&lt;br /&gt;If no directional buttons are being pressed (or the equivalent),&lt;br /&gt;returns 0.&lt;br /&gt;&lt;br /&gt;Arguments&lt;br /&gt;&lt;br /&gt;type: defines the method that will evaluate the inputs&lt;br /&gt;(#press?(key) or #trigger?(key)).&lt;br /&gt;0=#press?(key)&lt;br /&gt;1=#trigger?(key)&lt;br /&gt;&lt;br /&gt;ignore_numpad: if true ignore inputs of the numpad, else don't.&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;VirtualKeys#dir8(type=0, ignore_numpad=false)&lt;br /&gt;&lt;br /&gt;Checks the status of the directional buttons, translates the&lt;br /&gt;data into a specialized 8-direction input format, and returns&lt;br /&gt;the number pad equivalent (1, 2, 3, 4, 6, 7, 8, 9).&lt;br /&gt;If no directional buttons are being pressed (or the equivalent),&lt;br /&gt;returns 0.&lt;br /&gt;&lt;br /&gt;Arguments&lt;br /&gt;&lt;br /&gt;type: defines the method that will evaluate the inputs&lt;br /&gt;(#press?(key) or #trigger?(key)).&lt;br /&gt;0=#press?(key)&lt;br /&gt;1=#trigger?(key)&lt;br /&gt;&lt;br /&gt;ignore_numpad: if true ignore inputs of the numpad, else don't.&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;VirtualKeys#get_char()&lt;br /&gt;&lt;br /&gt;Returns the character in a array corresponding to the&lt;br /&gt;pressed key.&lt;br /&gt;*Keys corresponding to the accents ( ' `^ ¨ ~ ) return 1 size&lt;br /&gt;array with true and change the value of the variable "$Acento"&lt;br /&gt;with a corresponding number on the first click.The second&lt;br /&gt;click, the method returns an 2 size array with the accents.&lt;br /&gt;~: $Acento=1&lt;br /&gt;^: $Acento=2&lt;br /&gt;´: $Acento=3&lt;br /&gt;`: $Acento=4&lt;br /&gt;¨: $Acento=5&lt;br /&gt;Else&lt;br /&gt;$Acento=0&lt;br /&gt;&lt;br /&gt;*NOTE: to ABNT.&lt;br /&gt;*NOTE: all characters and "symbols"(@ # $ %...) returned as&lt;br /&gt;string objects within the array.&lt;br /&gt;*NOTE: numpad numbers are returned as string objects within&lt;br /&gt;the array, while the other numbers are returned in the array&lt;br /&gt;as objects of type integer.&lt;br /&gt;-------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;*"key" should be replaced by a constant of module "VirtualKeys"&lt;br /&gt;*See the constants in module "VirtualKeys"&lt;br /&gt;&lt;br /&gt;Sample:&lt;br /&gt;if VirtualKeys.trigger?(VirtualKeys::VK_A)&lt;br /&gt;  print "\"A\" is being pressed"&lt;br /&gt;end&lt;br /&gt;=end&lt;br /&gt;&lt;br /&gt;module VirtualKeys&lt;br /&gt;GetAsyncKeyState = Win32API.new("user32","GetAsyncKeyState",'i','i')&lt;br /&gt;GetKeyState = Win32API.new("user32","GetKeyState",'i','i')&lt;br /&gt;$LastKey=0&lt;br /&gt;$CallsCounter=0&lt;br /&gt;$Acento=0&lt;br /&gt;&lt;br /&gt;#Constants copied:&lt;br /&gt;#http://msdn.microsoft.com/en-us/library/ms927178.aspx&lt;br /&gt;#http://www.kbdedit.com/manual/low_level_vk_list.html&lt;br /&gt;&lt;br /&gt;VK_LBUTTON=0x01 #Left mouse button&lt;br /&gt;VK_RBUTTON=0x02 #Right mouse button&lt;br /&gt;VK_CANCEL=0x03 #Control-break processing&lt;br /&gt;VK_MBUTTON=0x04 #Middle mouse button on a three-button mouse&lt;br /&gt;VK_BACK=0x08 #BACKSPACE key&lt;br /&gt;VK_TAB=0x09 #TAB key&lt;br /&gt;VK_CLEAR=0x0C #CLEAR key&lt;br /&gt;VK_RETURN=0x0D #ENTER key&lt;br /&gt;VK_SHIFT=0x10 #SHIFT key&lt;br /&gt;VK_CONTROL=0x11 #CTRL key&lt;br /&gt;VK_MENU=0x12 #ALT key&lt;br /&gt;VK_PAUSE=0x13 #PAUSE key&lt;br /&gt;VK_CAPITAL=0x14 #CAPS LOCK key&lt;br /&gt;VK_ESCAPE=0x1B #ESC key&lt;br /&gt;VK_SPACE=0x20 #SPACEBAR&lt;br /&gt;VK_PRIOR=0x21 #PAGE UP key&lt;br /&gt;VK_NEXT=0x22 #PAGE DOWN key&lt;br /&gt;VK_END=0x23 #END key&lt;br /&gt;VK_HOME=0x24 #HOME key&lt;br /&gt;VK_LEFT=0x25 #LEFT ARROW key&lt;br /&gt;VK_UP=0x26 #UP ARROW key&lt;br /&gt;VK_RIGHT=0x27 #RIGHT ARROW key&lt;br /&gt;VK_DOWN=0x28 #DOWN ARROW key&lt;br /&gt;VK_SELECT=0x29 #SELECT key&lt;br /&gt;VK_EXECUTE=0x2B #EXECUTE key&lt;br /&gt;VK_SNAPSHOT=0x2C #PRINT SCREEN key&lt;br /&gt;VK_INSERT=0x2D #INS key&lt;br /&gt;VK_DELETE=0x2E #DEL key&lt;br /&gt;VK_HELP=0x2F #HELP key&lt;br /&gt;&lt;br /&gt;VK_0=0x30 #0 key&lt;br /&gt;VK_1=0x31 #1 key&lt;br /&gt;VK_2=0x32 #2 key&lt;br /&gt;VK_3=0x33 #3 key&lt;br /&gt;VK_4=0x34 #4 key&lt;br /&gt;VK_5=0x35 #5 key&lt;br /&gt;VK_6=0x36 #6 key&lt;br /&gt;VK_7=0x37 #7 key&lt;br /&gt;VK_8=0x38 #8 key&lt;br /&gt;VK_9=0x39 #9 key&lt;br /&gt;&lt;br /&gt;VK_A=0x41 #A key&lt;br /&gt;VK_B=0x42 #B key&lt;br /&gt;VK_C=0x43 #C key&lt;br /&gt;VK_D=0x44 #D key&lt;br /&gt;VK_E=0x45 #E key&lt;br /&gt;VK_F=0x46 #F key&lt;br /&gt;VK_G=0x47 #G key&lt;br /&gt;VK_H=0x48 #H key&lt;br /&gt;VK_I=0x49 #I key&lt;br /&gt;VK_J=0x4A #J key&lt;br /&gt;VK_K=0x4B #K key&lt;br /&gt;VK_L=0x4C #L key&lt;br /&gt;VK_M=0x4D #M key&lt;br /&gt;VK_N=0x4E #N key&lt;br /&gt;VK_O=0x4F #O key&lt;br /&gt;VK_P=0x50 #P key&lt;br /&gt;VK_Q=0x51 #Q key&lt;br /&gt;VK_R=0x52 #R key&lt;br /&gt;VK_S=0x53 #S key&lt;br /&gt;VK_T=0x54 #T key&lt;br /&gt;VK_U=0x55 #U key&lt;br /&gt;VK_V=0x56 #V key&lt;br /&gt;VK_W=0x57 #W key&lt;br /&gt;VK_X=0x58 #X key&lt;br /&gt;VK_Y=0x59 #Y key&lt;br /&gt;VK_Z=0x5A #Z key&lt;br /&gt;&lt;br /&gt;VK_LWIN=0x5B #Left Windows key on a Microsoft Natural Keyboard&lt;br /&gt;VK_RWIN=0x5C #Right Windows key on a Microsoft Natural Keyboard&lt;br /&gt;VK_APPS=0x5D #Applications key on a Microsoft Natural Keyboard&lt;br /&gt;VK_NUMPAD0=0x60 #Numeric keypad 0 key&lt;br /&gt;VK_NUMPAD1=0x61 #Numeric keypad 1 key&lt;br /&gt;VK_NUMPAD2=0x62 #Numeric keypad 2 key&lt;br /&gt;VK_NUMPAD3=0x63 #Numeric keypad 3 key&lt;br /&gt;VK_NUMPAD4=0x64 #Numeric keypad 4 key&lt;br /&gt;VK_NUMPAD5=0x65 #Numeric keypad 5 key&lt;br /&gt;VK_NUMPAD6=0x66 #Numeric keypad 6 key&lt;br /&gt;VK_NUMPAD7=0x67 #Numeric keypad 7 key&lt;br /&gt;VK_NUMPAD8=0x68 #Numeric keypad 8 key&lt;br /&gt;VK_NUMPAD9=0x69 #Numeric keypad 9 key&lt;br /&gt;VK_MULTIPLY=0x6A #Multiply key&lt;br /&gt;VK_ADD=0x6B #Add key&lt;br /&gt;VK_SEPARATOR=0x6C #Separator key&lt;br /&gt;VK_SUBTRACT=0x6D #Subtract key&lt;br /&gt;VK_DECIMAL=0x6E #Decimal key&lt;br /&gt;VK_DIVIDE=0x6F #Divide key&lt;br /&gt;VK_F1=0x70 #F1 key&lt;br /&gt;VK_F2=0x71 #F2 key&lt;br /&gt;VK_F3=0x72 #F3 key&lt;br /&gt;VK_F4=0x73 #F4 key&lt;br /&gt;VK_F5=0x74 #F5 key&lt;br /&gt;VK_F6=0x75 #F6 key&lt;br /&gt;VK_F7=0x76 #F7 key&lt;br /&gt;VK_F8=0x77 #F8 key&lt;br /&gt;VK_F9=0x78 #F9 key&lt;br /&gt;VK_F10=0x79 #F10 key&lt;br /&gt;VK_F11=0x7A #F11 key&lt;br /&gt;VK_F12=0x7B #F12 key&lt;br /&gt;VK_F13=0x7C #F13 key&lt;br /&gt;VK_F14=0x7D #F14 key&lt;br /&gt;VK_F15=0x7E #F15 key&lt;br /&gt;VK_F16=0x7F #F16 key&lt;br /&gt;VK_F17=0x80 #F17 key&lt;br /&gt;VK_F18=0x81 #F18 key&lt;br /&gt;VK_F19=0x82 #F19 key&lt;br /&gt;VK_F20=0x83 #F20 key&lt;br /&gt;VK_F21=0x84 #F21 key&lt;br /&gt;VK_F22=0x85 #F22 key (PPC only) Key used to lock device.&lt;br /&gt;VK_F23=0x86 #F23 key&lt;br /&gt;VK_F24=0x87 #F24 key&lt;br /&gt;VK_NUMLOCK=0x90 #NUM LOCK key&lt;br /&gt;VK_SCROLL=0x91 #SCROLL LOCK key&lt;br /&gt;VK_LSHIFT=0xA0 #Left SHIFT&lt;br /&gt;VK_RSHIFT=0xA1 #Right SHIFT&lt;br /&gt;VK_LCONTROL=0xA2 #Left CTRL&lt;br /&gt;VK_RCONTROL=0xA3 #Right CTRL&lt;br /&gt;VK_LMENU=0xA4 #Left ALT&lt;br /&gt;VK_RMENU=0xA5 #Right ALT&lt;br /&gt;VK_PACKET=0xE7 #Used to pass Unicode characters as if they were keystrokes.&lt;br /&gt;#If VK_PACKET is used with SendInput, ; the Unicode character to be delivered&lt;br /&gt;#should be placed into the lower 16 bits of the scan code. If a keyboard message&lt;br /&gt;#is removed from the message queue and the virtual key is VK_PACKET, ; the&lt;br /&gt;#Unicode character will be the upper 16 bits of the lparam.&lt;br /&gt;VK_ATTN=0xF6 #ATTN key&lt;br /&gt;VK_CRSEL=0xF7 #CRSEL key&lt;br /&gt;VK_EXSEL=0xF8 #EXSEL key&lt;br /&gt;VK_EREOF=0xF9 #Erase EOF key&lt;br /&gt;VK_PLAY=0xFA #PLAY key&lt;br /&gt;VK_ZOOM=0xFB #ZOOM key&lt;br /&gt;VK_NONAME=0xFC #Reserved for future use&lt;br /&gt;VK_PA1=0xFD #PA1 key&lt;br /&gt;VK_OEM_CLEAR=0xFE #CLEAR key&lt;br /&gt;VK_KEYLOCK=0xF22 #Key used to lock device&lt;br /&gt;&lt;br /&gt;VK_OEM_SCROLL=0x91 #None&lt;br /&gt;VK_OEM_1=0xBA #";:" for US --- "ç" no padrão ABNT&lt;br /&gt;VK_OEM_PLUS=0xBB #"+" any country/region&lt;br /&gt;VK_OEM_COMMA=0xBC #"," any country/region&lt;br /&gt;VK_OEM_MINUS=0xBD #"-" any country/region&lt;br /&gt;VK_OEM_PERIOD=0xBE #"." any country/region&lt;br /&gt;VK_OEM_2=0xBF #"/?" for US --- ";:" no padrão ABNT&lt;br /&gt;VK_OEM_3=0xC0 #"`~" for US --- " '" " no padrão ABNT&lt;br /&gt;VK_OEM_4=0xDB #"[{" for US --- "´`" no padrão ABNT&lt;br /&gt;VK_OEM_5=0xDC #"\|" for US --- "]" no padrão ABNT&lt;br /&gt;VK_OEM_6=0xDD #"]}" for US --- "[" no padrão ABNT&lt;br /&gt;VK_OEM_7=0xDE #"'"" for US --- "~^" no padrão ABNT&lt;br /&gt;VK_OEM_8=0xDF #None&lt;br /&gt;VK_OEM_AX=0xE1 #AX key on Japanese AX keyboard&lt;br /&gt;VK_OEM_102=0xE2 #"&amp;lt;&amp;gt;" or "\|" on RT 102-key keyboard --- "\|" no padrão ABNT&lt;br /&gt;VK_ABNT_C1 = 0xC1 #"?/°" no padrão ABNT&lt;br /&gt;VK_ABNT_C2 = 0xC2 #"." no padrão ABNT&lt;br /&gt;&lt;br /&gt;VK_DBE_ALPHANUMERIC=0x0f0 #Changes the mode to alphanumeric.&lt;br /&gt;VK_DBE_KATAKANA=0x0f1 #Changes the mode to Katakana.&lt;br /&gt;VK_DBE_HIRAGANA=0x0f2 #Changes the mode to Hiragana.&lt;br /&gt;VK_DBE_SBCSCHAR=0x0f3 #Changes the mode to single-byte characters.&lt;br /&gt;VK_DBE_DBCSCHAR=0x0f4 #Changes the mode to double-byte characters.&lt;br /&gt;VK_DBE_ROMAN=0x0f5 #Changes the mode to Roman characters.&lt;br /&gt;VK_DBE_NOROMAN=0x0f6 #Changes the mode to non-Roman characters.&lt;br /&gt;VK_DBE_ENTERWORDREGISTERMODE=0x0f7 #Activates the word registration dialog box.&lt;br /&gt;VK_DBE_ENTERIMECONFIGMODE=0x0f8 #Activates a dialog box for setting up an IME environment.&lt;br /&gt;VK_DBE_FLUSHSTRING=0x0f9 #Deletes the undetermined string without determining it.&lt;br /&gt;VK_DBE_CODEINPUT=0x0fa #Changes the mode to code input.&lt;br /&gt;VK_DBE_NOCODEINPUT=0x0fb #Changes the mode to no-code input.&lt;br /&gt;&lt;br /&gt;  #===========================&lt;br /&gt;  # GetAsyncKeyState function&lt;br /&gt;  #===========================&lt;br /&gt;  def self.gaks(key)&lt;br /&gt;    GetAsyncKeyState.call(key)&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #======================&lt;br /&gt;  # GetKeyState function&lt;br /&gt;  #======================&lt;br /&gt;  def self.gks(key)&lt;br /&gt;    GetKeyState.call(key)&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #============================================================&lt;br /&gt;  # VirtualKeys#press?(key)&lt;br /&gt;  #============================================================&lt;br /&gt;  def self.press?(key)&lt;br /&gt;    getState = self.gaks(key)&lt;br /&gt;    return(true) if getState != 0&lt;br /&gt;    false&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #============================================================&lt;br /&gt;  # VirtualKeys#trigger?(key)&lt;br /&gt;  #============================================================&lt;br /&gt;  def self.trigger?(key)&lt;br /&gt;    getState = self.gaks(key)&lt;br /&gt;    getState2 = 0&lt;br /&gt;    getState2 = self.gaks($LastKey) if $LastKey != 0&lt;br /&gt;    return($LastKey = 0;false) if getState == 0 and getState2 == 0&lt;br /&gt;    return(false) if key == $LastKey and getState != 0&lt;br /&gt;    $LastKey = key if getState != 0&lt;br /&gt;    return false if getState == 0&lt;br /&gt;    true&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #============================================================&lt;br /&gt;  # VirtualKeys#repeat?(key)&lt;br /&gt;  #============================================================&lt;br /&gt;  def self.repeat?(key)&lt;br /&gt;    return ($CallsCounter -= 1;false) if $CallsCounter &amp;gt; 0&lt;br /&gt;    ($CallsCounter = 5;return(true)) if self.gaks(key) != 0&lt;br /&gt;    false&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #============================================================&lt;br /&gt;  # VirtualKeys#dir4(type=0, ignore_numpad=false)&lt;br /&gt;  #============================================================&lt;br /&gt;  def self.dir4(type=0,ignore_numpad=false)&lt;br /&gt;    case type&lt;br /&gt;    when 0&lt;br /&gt;      if self.press?(VK_DOWN) or (!ignore_numpad &amp;amp;&amp;amp; self.press?(VK_NUMPAD2)) ; return(2)&lt;br /&gt;      elsif self.press?(VK_LEFT) or (!ignore_numpad &amp;amp;&amp;amp; self.press?(VK_NUMPAD4)) ; return(4)&lt;br /&gt;      elsif self.press?(VK_RIGHT) or (!ignore_numpad &amp;amp;&amp;amp; self.press?(VK_NUMPAD6)) ; return(6)&lt;br /&gt;      elsif self.press?(VK_UP) or (!ignore_numpad &amp;amp;&amp;amp; self.press?(VK_NUMPAD8)) ; return(8)&lt;br /&gt;      end&lt;br /&gt;    when 1&lt;br /&gt;      if self.trigger?(VK_DOWN) or (!ignore_numpad &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD2)) ; return(2)&lt;br /&gt;      elsif self.trigger?(VK_LEFT) or (!ignore_numpad &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD4)) ; return(4)&lt;br /&gt;      elsif self.trigger?(VK_RIGHT) or (!ignore_numpad &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD6)) ; return(6)&lt;br /&gt;      elsif self.trigger?(VK_UP) or (!ignore_numpad &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD8)) ; return(8)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    0&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #============================================================&lt;br /&gt;  # VirtualKeys#dir8(type=0, ignore_numpad=false)&lt;br /&gt;  #============================================================&lt;br /&gt;  def self.dir8(type=0,ignore_numpad=false)&lt;br /&gt;    case type&lt;br /&gt;    when 0&lt;br /&gt;      if (self.press?(VK_DOWN) &amp;amp;&amp;amp; self.press?(VK_LEFT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.press?(VK_NUMPAD2) &amp;amp;&amp;amp; self.press?(VK_NUMPAD4))) ; return(1)&lt;br /&gt;      elsif (self.press?(VK_DOWN) &amp;amp;&amp;amp; self.press?(VK_RIGHT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.press?(VK_NUMPAD2) &amp;amp;&amp;amp; self.press?(VK_NUMPAD6))) ; return(3)&lt;br /&gt;      elsif (self.press?(VK_UP) &amp;amp;&amp;amp; self.press?(VK_LEFT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.press?(VK_NUMPAD8) &amp;amp;&amp;amp; self.press?(VK_NUMPAD4))) ; return(7)&lt;br /&gt;      elsif (self.press?(VK_UP) &amp;amp;&amp;amp; self.press?(VK_RIGHT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.press?(VK_NUMPAD2) &amp;amp;&amp;amp; self.press?(VK_NUMPAD6))) ; return(9)&lt;br /&gt;      end&lt;br /&gt;    when 1&lt;br /&gt;      if (self.trigger?(VK_DOWN) &amp;amp;&amp;amp; self.trigger?(VK_LEFT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.trigger?(VK_NUMPAD2) &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD4))) ; return(1)&lt;br /&gt;      elsif (self.trigger?(VK_DOWN) &amp;amp;&amp;amp; self.trigger?(VK_RIGHT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.trigger?(VK_NUMPAD2) &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD6))) ; return(3)&lt;br /&gt;      elsif (self.trigger?(VK_UP) &amp;amp;&amp;amp; self.trigger?(VK_LEFT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.trigger?(VK_NUMPAD8) &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD4))) ; return(7)&lt;br /&gt;      elsif (self.trigger?(VK_UP) &amp;amp;&amp;amp; self.trigger?(VK_RIGHT)) or \&lt;br /&gt;        (!ignore_numpad &amp;amp;&amp;amp; (self.trigger?(VK_NUMPAD2) &amp;amp;&amp;amp; self.trigger?(VK_NUMPAD6))) ; return(9)&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    self.dir4(type,ignore_numpad)&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;if self.gks(VK_CAPITAL) == 0&lt;br /&gt;  $CAPITAL = false&lt;br /&gt;else $CAPITAL = true&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;  #============================================================&lt;br /&gt;  # VirtualKeys#get_char()&lt;br /&gt;  #============================================================&lt;br /&gt;  def self.get_char()&lt;br /&gt;    if self.gaks(VK_SPACE) != 0&lt;br /&gt;      char = ' '&lt;br /&gt;    end&lt;br /&gt;    if self.gaks(VK_OEM_7) != 0&lt;br /&gt;      case $Acento&lt;br /&gt;      when 0&lt;br /&gt;        $Acento = 1&lt;br /&gt;        $Acento = 2 if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        return([true])&lt;br /&gt;      when 1&lt;br /&gt;        char = "~"&lt;br /&gt;        c = "~"&lt;br /&gt;        c = "^" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 2&lt;br /&gt;        char = "^"&lt;br /&gt;        c = "~"&lt;br /&gt;        c = "^" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 3&lt;br /&gt;        char = "´"&lt;br /&gt;        c = "~"&lt;br /&gt;        c = "^" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 4&lt;br /&gt;        char = "`"&lt;br /&gt;        c = "~"&lt;br /&gt;        c = "^" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 5&lt;br /&gt;        char = "¨"&lt;br /&gt;        c = "~"&lt;br /&gt;        c = "^" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      end&lt;br /&gt;      $Acento = 0 ; return(char)&lt;br /&gt;    elsif self.gaks(VK_OEM_4) != 0&lt;br /&gt;      case $Acento&lt;br /&gt;      when 0&lt;br /&gt;        $Acento = 3&lt;br /&gt;        $Acento = 4 if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        return([true])&lt;br /&gt;      when 1&lt;br /&gt;        char = "~"&lt;br /&gt;        c = "´"&lt;br /&gt;        c = "`" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 2&lt;br /&gt;        char = "^"&lt;br /&gt;        c = "´"&lt;br /&gt;        c = "`" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 3&lt;br /&gt;        char = "´"&lt;br /&gt;        c = "´"&lt;br /&gt;        c = "`" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 4&lt;br /&gt;        char = "`"&lt;br /&gt;        c = "´"&lt;br /&gt;        c = "`" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 5&lt;br /&gt;        char="¨"&lt;br /&gt;        c = "~"&lt;br /&gt;        c = "^" if self.gaks(VK_SHIFT) != 0&lt;br /&gt;        char = [char,c]&lt;br /&gt;      end&lt;br /&gt;      $Acento = 0 ; return(char)&lt;br /&gt;    elsif self.gaks(VK_6) != 0 and self.gaks(VK_SHIFT) != 0&lt;br /&gt;      case $Acento&lt;br /&gt;      when 0&lt;br /&gt;        $Acento = 5&lt;br /&gt;        return([true])&lt;br /&gt;      when 1&lt;br /&gt;        char = "~"&lt;br /&gt;        c = "¨"&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 2&lt;br /&gt;        char = "^"&lt;br /&gt;        c = "¨"&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 3&lt;br /&gt;        char = "´"&lt;br /&gt;        c = "¨"&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 4&lt;br /&gt;        char = "`"&lt;br /&gt;        c = "¨"&lt;br /&gt;        char = [char,c]&lt;br /&gt;      when 5&lt;br /&gt;        char = "¨"&lt;br /&gt;        c = "¨"&lt;br /&gt;        char = [char,c]&lt;br /&gt;      end&lt;br /&gt;      $Acento = 0 ; return(char)&lt;br /&gt;    end&lt;br /&gt;    if self.gks(VK_CAPITAL) == 0&lt;br /&gt;      $CAPITAL = false&lt;br /&gt;    else $CAPITAL = true end&lt;br /&gt;    if self.gaks(VK_A) != 0 ; char = 'a'&lt;br /&gt;    elsif self.gaks(VK_B) != 0 ; char = 'b'&lt;br /&gt;    elsif self.gaks(VK_C) != 0 ; char = 'c'&lt;br /&gt;    elsif self.gaks(VK_D) != 0 ; char = 'd'&lt;br /&gt;    elsif self.gaks(VK_E) != 0 ; char = 'e'&lt;br /&gt;    elsif self.gaks(VK_F) != 0 ; char = 'f'&lt;br /&gt;    elsif self.gaks(VK_G) != 0 ; char = 'g'&lt;br /&gt;    elsif self.gaks(VK_H) != 0 ; char = 'h'&lt;br /&gt;    elsif self.gaks(VK_I) != 0 ; char = 'i'&lt;br /&gt;    elsif self.gaks(VK_J) != 0 ; char = 'j'&lt;br /&gt;    elsif self.gaks(VK_K) != 0 ; char = 'k'&lt;br /&gt;    elsif self.gaks(VK_L) != 0 ; char = 'l'&lt;br /&gt;    elsif self.gaks(VK_M) != 0 ; char = 'm'&lt;br /&gt;    elsif self.gaks(VK_N) != 0 ; char = 'n'&lt;br /&gt;    elsif self.gaks(VK_O) != 0 ; char = 'o'&lt;br /&gt;    elsif self.gaks(VK_P) != 0 ; char = 'p'&lt;br /&gt;    elsif self.gaks(VK_Q) != 0 ; char = 'q'&lt;br /&gt;    elsif self.gaks(VK_R) != 0 ; char = 'r'&lt;br /&gt;    elsif self.gaks(VK_S) != 0 ; char = 's'&lt;br /&gt;    elsif self.gaks(VK_T) != 0 ; char = 't'&lt;br /&gt;    elsif self.gaks(VK_U) != 0 ; char = 'u'&lt;br /&gt;    elsif self.gaks(VK_V) != 0 ; char = 'v'&lt;br /&gt;    elsif self.gaks(VK_W) != 0 ; char = 'w'&lt;br /&gt;    elsif self.gaks(VK_X) != 0 ; char = 'x'   &lt;br /&gt;    elsif self.gaks(VK_Y) != 0 ; char = 'y'&lt;br /&gt;    elsif self.gaks(VK_Z) != 0 ; char = 'z'&lt;br /&gt;    elsif self.gaks(VK_OEM_1) != 0 ; char = 'ç'&lt;br /&gt;    elsif (self.gaks(VK_0)!=0) ; char = 0&lt;br /&gt;    elsif (self.gaks(VK_1)!=0) ; char = 1&lt;br /&gt;    elsif (self.gaks(VK_2)!=0) ; char = 2&lt;br /&gt;    elsif (self.gaks(VK_3)!=0) ; char = 3&lt;br /&gt;    elsif (self.gaks(VK_4)!=0) ; char = 4&lt;br /&gt;    elsif (self.gaks(VK_5)!=0) ; char = 5&lt;br /&gt;    elsif (self.gaks(VK_6)!=0) ; char = 6&lt;br /&gt;    elsif (self.gaks(VK_7)!=0) ; char = 7&lt;br /&gt;    elsif (self.gaks(VK_8)!=0) ; char = 8&lt;br /&gt;    elsif (self.gaks(VK_9)!=0) ; char = 9&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD0)!=0) ; char = '0'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD1)!=0) ; char = '1'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD2)!=0) ; char = '2'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD3)!=0) ; char = '3'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD4)!=0) ; char = '4'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD5)!=0) ; char = '5'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD6)!=0) ; char = '6'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD7)!=0) ; char = '7'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD8)!=0) ; char = '8'&lt;br /&gt;    elsif (self.gaks(VK_NUMPAD9)!=0) ; char = '9'     &lt;br /&gt;    elsif (self.gaks(VK_OEM_COMMA)!=0) or (self.gaks(VK_DECIMAL)!=0) ; char = ','&lt;br /&gt;    elsif self.gaks(VK_OEM_PERIOD) != 0 ; char = '.'   &lt;br /&gt;    elsif self.gaks(VK_OEM_PLUS) != 0 ; char = '='&lt;br /&gt;    elsif (self.gaks(VK_OEM_MINUS)!=0) or (self.gaks(VK_SUBTRACT)!=0) ; char = '-'&lt;br /&gt;    elsif self.gaks(VK_ABNT_C2) != 0 ; return (['.'])&lt;br /&gt;    elsif self.gaks(VK_ADD) != 0 ; return (['+'])&lt;br /&gt;    elsif self.gaks(VK_DIVIDE) != 0 ; return (['/'])   &lt;br /&gt;    elsif self.gaks(VK_MULTIPLY) != 0 ; return (['*'])&lt;br /&gt;    elsif self.gaks(VK_ABNT_C1) != 0 ; char = '/'&lt;br /&gt;    elsif self.gaks(VK_OEM_102) != 0 ; char = "\\"&lt;br /&gt;    elsif self.gaks(VK_OEM_2) != 0 ; char = ";"&lt;br /&gt;    elsif self.gaks(VK_OEM_3) != 0 ; char = "\'"&lt;br /&gt;    elsif self.gaks(VK_OEM_5) != 0 ; char = ']'&lt;br /&gt;    elsif self.gaks(VK_OEM_6) != 0 ; char = '['&lt;br /&gt;    end&lt;br /&gt;    if self.gaks(VK_SHIFT) != 0 and char != nil and char.is_a?(Integer) == false&lt;br /&gt;      case char&lt;br /&gt;      when ',' ;  char = '&amp;lt;'&lt;br /&gt;      when '.' ;  char = '&amp;gt;'&lt;br /&gt;      when '=' ;  char = '+'&lt;br /&gt;      when '-' ;  char = '_'&lt;br /&gt;      when "\\" ; char = '|'&lt;br /&gt;      when ';' ;  char = ':'&lt;br /&gt;      when '/' ;  char = '?'&lt;br /&gt;      when "\'" ; char = "\""&lt;br /&gt;      when ']' ;  char = '}'&lt;br /&gt;      when '[' ;  char = '{'&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    if (self.gaks(VK_SHIFT) != 0 or $CAPITAL == true) and char != nil and \&lt;br /&gt;      char.is_a?(Integer) == false&lt;br /&gt;      char=char.upcase&lt;br /&gt;      char='Ç' if char=='ç'&lt;br /&gt;    end&lt;br /&gt;    if self.gaks(VK_SHIFT) != 0 and char != nil and char.is_a?(Integer) == true&lt;br /&gt;      case char&lt;br /&gt;      when 0 ; char = ')'&lt;br /&gt;      when 1 ; char = '!'&lt;br /&gt;      when 2 ; char = '@'&lt;br /&gt;      when 3 ; char = '#'&lt;br /&gt;      when 4 ; char = '$'&lt;br /&gt;      when 5 ; char = '%'&lt;br /&gt;      when 7 ; char = '&amp;amp;'&lt;br /&gt;      when 8 ; char = '*'&lt;br /&gt;      when 9 ; char = '('&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    if self.gaks(VK_MENU) != 0 and char != nil and char.is_a?(Integer) == true&lt;br /&gt;      case char&lt;br /&gt;      when 1 ; char = '¹'&lt;br /&gt;      when 2 ; char = '²'&lt;br /&gt;      when 3 ; char = '³'&lt;br /&gt;      when 4 ; char = '£'&lt;br /&gt;      when 5 ; char = '¢'&lt;br /&gt;      when 6 ; char = '¬'     &lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    if self.gaks(VK_MENU) != 0 and char != nil and char.is_a?(Integer) == false&lt;br /&gt;      case char&lt;br /&gt;      when '/' ; char = '°'&lt;br /&gt;      when ']' ; char = 'º'&lt;br /&gt;      when '[' ; char = 'ª'&lt;br /&gt;      when '=' ; char = '§'&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    if $Acento != 0 and char == ' '&lt;br /&gt;      case $Acento&lt;br /&gt;      when 1 ; char = '~'&lt;br /&gt;      when 2 ; char = '^'&lt;br /&gt;      when 3 ; char = '´'&lt;br /&gt;      when 4 ; char = '`'&lt;br /&gt;      when 5 ; char = '¨'&lt;br /&gt;      end&lt;br /&gt;      $Acento = 0&lt;br /&gt;    end&lt;br /&gt;    if $Acento != 0 and char =~ /[\w]/i&lt;br /&gt;      case $Acento&lt;br /&gt;      when 1&lt;br /&gt;        if char == 'A' ; char = 'Ã'&lt;br /&gt;        elsif char == 'a' ; char = 'ã'&lt;br /&gt;        elsif char == 'O' ; char = 'Õ'&lt;br /&gt;        elsif char == 'o' ; char = 'õ'&lt;br /&gt;        elsif char == 'N' ; char = 'Ñ'&lt;br /&gt;        elsif char == 'n' ; char = 'ñ'&lt;br /&gt;        end&lt;br /&gt;      when 2&lt;br /&gt;        if char == 'A' ; char = 'Â'&lt;br /&gt;        elsif char == 'a' ; char = 'â'&lt;br /&gt;        elsif char == 'E' ; char = 'Ê'&lt;br /&gt;        elsif char == 'e' ; char = 'ê'&lt;br /&gt;        elsif char == 'I' ; char = 'Î'&lt;br /&gt;        elsif char == 'i' ; char = 'î'&lt;br /&gt;        elsif char == 'O' ; char = 'Ô'&lt;br /&gt;        elsif char == 'o' ; char = 'ô'&lt;br /&gt;        elsif char == 'U' ; char = 'Û'&lt;br /&gt;        elsif char == 'u' ; char = 'û'&lt;br /&gt;        end&lt;br /&gt;      when 3&lt;br /&gt;        if char == 'A' ; char = 'Á'&lt;br /&gt;        elsif char == 'a' ; char = 'á'&lt;br /&gt;        elsif char == 'E' ; char = 'É'&lt;br /&gt;        elsif char == 'e' ; char = 'é'&lt;br /&gt;        elsif char == 'I' ; char = 'Í'&lt;br /&gt;        elsif char == 'i' ; char = 'í'&lt;br /&gt;        elsif char == 'O' ; char = 'Ó'&lt;br /&gt;        elsif char == 'o' ; char = 'ó'&lt;br /&gt;        elsif char == 'U' ; char = 'Ú'&lt;br /&gt;        elsif char == 'u' ; char = 'ú'&lt;br /&gt;        end&lt;br /&gt;      when 4&lt;br /&gt;        if char == 'A' ; char = 'À'&lt;br /&gt;        elsif char == 'a' ; char = 'à'&lt;br /&gt;        elsif char == 'E' ; char = 'È'&lt;br /&gt;        elsif char == 'e' ; char = 'è'&lt;br /&gt;        elsif char == 'I' ; char = 'Ì'&lt;br /&gt;        elsif char == 'i' ; char = 'ì'&lt;br /&gt;        elsif char == 'O' ; char = 'Ò'&lt;br /&gt;        elsif char == 'o' ; char = 'ò'&lt;br /&gt;        elsif char == 'U' ; char = 'Ù'&lt;br /&gt;        elsif char == 'u' ; char = 'ù'&lt;br /&gt;        end&lt;br /&gt;      when 5&lt;br /&gt;        if char == 'A' ; char = 'Ä'&lt;br /&gt;        elsif char == 'a' ; char = 'ä'&lt;br /&gt;        elsif char == 'E' ; char = 'Ë'&lt;br /&gt;        elsif char == 'e' ; char = 'ë'&lt;br /&gt;        elsif char == 'I' ; char = 'Ï'&lt;br /&gt;        elsif char == 'i' ; char = 'ï'&lt;br /&gt;        elsif char == 'O' ; char = 'Ö'&lt;br /&gt;        elsif char == 'o' ; char = 'ö'&lt;br /&gt;        elsif char == 'U' ; char = 'Ü'&lt;br /&gt;        elsif char == 'u' ; char = 'ü'&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;      $Acento = 0&lt;br /&gt;    elsif $Acento != 0 and char != nil&lt;br /&gt;      case $Acento&lt;br /&gt;      when 1 ; char = ['~',char]&lt;br /&gt;      when 2 ; char = ['^',char]&lt;br /&gt;      when 3 ; char = ['´',char]&lt;br /&gt;      when 4 ; char = ['`',char]&lt;br /&gt;      end&lt;br /&gt;      $Acento = 0&lt;br /&gt;      return(char)&lt;br /&gt;    end&lt;br /&gt;    [char]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;Feito por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;&lt;span style="font-weight: normal;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;&lt;i&gt;&lt;span style="font-weight: normal;"&gt;Constantes retiradas/pesquisadas de:&lt;br /&gt;http://msdn.microsoft.com/en-us/library/ms927178.aspx&lt;br /&gt;http://www.kbdedit.com/manual/low_level_vk_list.html &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-4595250426573419391?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2010/02/module-virtualkeys.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-8342986150249912086</guid><pubDate>Mon, 01 Feb 2010 16:47:00 +0000</pubDate><atom:updated>2010-05-01T19:43:44.709-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Novidades</title><description>&lt;b&gt;&lt;i&gt;Interface do blog&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;O blog sofreu pequenas, mas consideráveis, modificações visuais e na organização.&lt;br /&gt;A organização da sessão "Parceiros" foi mudada, posição das sessões também foram modificadas. E agora na sessão "Menu", para ficar algo mais discreto e compacto, para visualizar os tópicos é preciso expandir o menu clicando no menu desejado.&lt;br /&gt;Também foi adicionados uma sessão para destaques no topo da página, onde serão colocadas imagens com hiperligações para os respectivos itens. Lá serão colocadas, não apenas conteúdo criado aqui no blog, mas também conteúdo alheio que mereça destaque. Sempre que possível essa sessão será atualizada, portanto algumas destaques podem ser tirados para dar lugar a outros.&lt;br /&gt;Fora isto, o restante são apenas consertos na parte visual, mas pouco perceptíveis ainda.&lt;br /&gt;Aos poucos mais atualizações serão feitas com relação a interface do blog.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Parcerias&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A mais nova parceria da &lt;b&gt;Colméia do Zé&lt;/b&gt;, é o blog &lt;b&gt;&lt;i&gt;Crazy Nero Studio&lt;/i&gt;&lt;/b&gt; que expõem os trabalhos de Felipe, um &lt;b&gt;gamer mais que amador&lt;/b&gt;(humilde, não?)  e desenhista.&lt;br /&gt;Com certeza vale a pena conferir os ótimos trabalhos do Nero!&lt;br /&gt;&lt;br /&gt;&lt;sub&gt;acesse:&lt;/sub&gt;&lt;br /&gt;&lt;a href="http://crazynerostudio.blogspot.com/" target="blank"&gt;http://crazynerostudio.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Atualizações e novidade nas sessões de scripts&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;O script &lt;b&gt;C-3DSR&lt;/b&gt; foi atualizado. Alem de consertar alguns Bugs, ele traz algumas novidades sendo a primeira delas pelo nome, que agora se chama &lt;b&gt;C-RS(Colméia - Rotate Sprite)&lt;/b&gt;.&lt;br /&gt;Confira as novidades nesses scripts no link abaixo.&lt;br /&gt;&lt;br /&gt;&lt;a href="/2009/12/c-3dsrcolmeia-3d-sprite-rotation.html"&gt;C-RS(Colméia - Rotate Sprite)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Inaugurando o indíce de scripts para RGSS2, o script &lt;b&gt;C-TT(Colméia - Transition to Teleport)&lt;/b&gt; permite adicionar transições de tela ao usar o comando &lt;b&gt;Teletransporte&lt;/b&gt; da aba de eventos de forma simples e compacta. Confira!&lt;br /&gt;&lt;br /&gt;&lt;a href="/2010/01/c-ttcolmeia-transition-to-teleport.html"&gt;C-TT(Colméia - Transition to Teleport)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-8342986150249912086?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2010/02/novidades.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-44594373693052227</guid><pubDate>Sun, 31 Jan 2010 18:27:00 +0000</pubDate><atom:updated>2010-02-02T11:26:43.499-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS2</category><title>C-TT(Colméia - Transition to Teleport)</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;C-TT(Colméia - Transition to Teleport)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Permite executar uma transição ao teleportar.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Características&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;configuração de duração e ambiguidade. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Como usar&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Instale o script acima de main.&lt;br /&gt;&lt;br /&gt;Crie uma pasta com o nome Transitions para os arquivos de transição. &lt;br /&gt;&lt;br /&gt;Use o comando chamar script e coloque:&lt;br /&gt;&lt;br /&gt;$game_temp.transition = [duração,"nome do arquivo",ambiguidade]&lt;br /&gt;&lt;br /&gt;OBS1:O nome do arquivo deve estar entre aspas e não é preciso colocar a extensão do arquivo.&lt;br /&gt;OBS2:Se não quiser usar transição em um teleporte use:&lt;br /&gt;&lt;br /&gt;$game_temp.transition = [0,"",0]&lt;br /&gt;&lt;br /&gt;Após o chamar script, basta usar o comando de teleporte normalmente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/212353273/282bd802/C-TT.html" target="_blank"&gt;Download  da demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Script&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="15"&gt;#===============================================================&lt;br /&gt;# C-TT(Colméia - Transition to Teleport)&lt;br /&gt;#---------------------------------------------------------------&lt;br /&gt;#by:    zecomeia&lt;br /&gt;#date:  28//12/2009&lt;br /&gt;#for:   RGSS2&lt;br /&gt;#http://colmeia-do-ze.blogspot.com/&lt;br /&gt;#---------------------------------------------------------------&lt;br /&gt;#Crie uma pasta com o nome Transitions para os arquivos de&lt;br /&gt;#transição.&lt;br /&gt;#&lt;br /&gt;#Use o comando chamar script e coloque:&lt;br /&gt;#&lt;br /&gt;#$game_temp.transition = [duração,"nome do arquivo",ambiguidade]&lt;br /&gt;#&lt;br /&gt;#OBS1:O nome do arquivo deve estar entre aspas e não é preciso&lt;br /&gt;#colocar a extensão do arquivo.&lt;br /&gt;#OBS2:Se não quiser usar transição em um teleporte use:&lt;br /&gt;#&lt;br /&gt;#$game_temp.transition = [0,"",0]&lt;br /&gt;#&lt;br /&gt;#Após o chamar script, basta usar o comando de teleporte &lt;br /&gt;#normalmente.&lt;br /&gt;#===============================================================&lt;br /&gt;class Game_Temp&lt;br /&gt;  attr_accessor :transition&lt;br /&gt;  alias default_initialize initialize&lt;br /&gt;  def initialize()&lt;br /&gt;    @transition = Array.new&lt;br /&gt;    @transition = [0,'',0]&lt;br /&gt;    default_initialize()&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;class Scene_Map &amp;lt; Scene_Base&lt;br /&gt;  def update_transfer_player&lt;br /&gt;    return unless $game_player.transfer?&lt;br /&gt;    fade = (Graphics.brightness &amp;gt; 0)    &lt;br /&gt;    fadeout(30) if fade and $game_temp.transition[1] == ''&lt;br /&gt;    Graphics.freeze&lt;br /&gt;    @spriteset.dispose&lt;br /&gt;    $game_player.perform_transfer&lt;br /&gt;    $game_map.autoplay &lt;br /&gt;    $game_map.update&lt;br /&gt;    if $game_temp.transition[1] == ''&lt;br /&gt;      Graphics.wait(15)&lt;br /&gt;    else&lt;br /&gt;      #$game_map.interpreter.update&lt;br /&gt;      Graphics.transition($game_temp.transition[0], "Graphics/Transitions/"+$game_temp.transition[1],$game_temp.transition[2])&lt;br /&gt;    end&lt;br /&gt;    @spriteset = Spriteset_Map.new &lt;br /&gt;    fadein(30) if fade&lt;br /&gt;    Input.update&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;Feito por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;&lt;span style="font-weight: normal;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-44594373693052227?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2010/01/c-ttcolmeia-transition-to-teleport.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-6627101794754489557</guid><pubDate>Thu, 31 Dec 2009 11:52:00 +0000</pubDate><atom:updated>2009-12-31T09:53:29.385-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Aviso - Objetos 3D</title><description>Iniciei um sistema para &lt;b&gt;montagem&lt;/b&gt; de "objetos" em 3D apartir de sprites. Ainda está longe de ser terminado, mas estou empolgado com o mesmo. O sistema já teve um bom ponta pé inicial, porém, nada que valha a pena ser mostrado &lt;b&gt;ainda&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-6627101794754489557?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/aviso-objetos-3d.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-6764720788077139938</guid><pubDate>Thu, 31 Dec 2009 11:47:00 +0000</pubDate><atom:updated>2009-12-31T09:53:16.403-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Aviso - Atualizações no C-3DSR</title><description>Talvez alguns sistemas receberam atualizações e/ou consertos. Um deles com certeza será o C-3DSR, que já teve um pequeno bug consertado(erro que acontecia ao resetar o jogo por F12), e também terá uma atualização em suas funções, podendo mudá-lo totalmente ou apenas complementá-lo, mas a idéia continua a mesma, porém melhorada. Nenhuma dessas alterações foram adicionadas ao script no blog, portanto aguardem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-6764720788077139938?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/noticias.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-8626063167557659899</guid><pubDate>Tue, 22 Dec 2009 12:29:00 +0000</pubDate><atom:updated>2009-12-31T09:48:43.220-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Blog inscrito no top MakersBrasil</title><description>O blog agora está inscrito no top da &lt;a href="http://www.makersbrasil.com/topsite/"&gt;MakersBrasil&lt;/a&gt;. Então para o pessoal que acompanha o blog e acha que merece um voto, acesse:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.makersbrasil.com/topsite/index.php?a=in&amp;u=zecomeia" target="blank"&gt;&lt;img border="0" alt="MakersBrasil - Top Sites, Top Projetos!" src="http://www.makersbrasil.com/topsite/button.php?u=zecomeia"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-8626063167557659899?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/blog-inscrito-no-top-makersbrasil.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-1663607567774875630</guid><pubDate>Sun, 20 Dec 2009 19:36:00 +0000</pubDate><atom:updated>2010-02-01T10:54:57.719-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS12</category><title>C-RS(Colméia - Rotate Sprite)</title><description>&lt;style type='text/css'&gt;body,input     {     font-family:&amp;quot;Trebuchet ms&amp;quot;,arial;font-size:0.9em;     color:#204063;     } .spoiler     {     border:0px solid #ddd;     padding:0px;     } .spoiler .inner     {     &lt;!-- border:1px solid #eee; --&gt;    &lt;!-- padding:1px;margin:1px; --&gt;    }     &lt;/style&gt;&lt;br /&gt;&lt;script type='text/javascript'&gt;function showSpoiler(obj)     {     var inner = obj.parentNode.getElementsByTagName(&amp;quot;div&amp;quot;)[0];     if (inner.style.display == &amp;quot;none&amp;quot;)         inner.style.display = &amp;quot;&amp;quot;;     else         inner.style.display = &amp;quot;none&amp;quot;;     } &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;C-RS(Colméia - Rotate Sprite)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Este script é direcionado à scripters, porque adiciona uma função à classe sprite que pode ser usado na criação de scripts.&lt;br /&gt;O efeito que ele oferece é de "rotação 3D" para a imagem. É preciso definir um segundo bitmap alem do padrão(explicações a seguir) que servirá como imagem de verso, ou seja, dará a impressão da imagem ter dois lados.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Possibilidade de inverter a imagem de verso também;&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Velocidade do "giro" controlável.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;atualização 31/01/2010&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; * O efeito está mais fiel(sem excentricidade, a menos que o usuário queira alterar a propriedade ox2) independente do RPGMaker usado;&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Consertado para pode modificar a posição X, o zoom horizontal e a origem do mapa;&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Consertado o erro que gerava ao reiniciar o jogo(apertar F12);&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Modificação na opção de invertar horizontalmente(agora funciona ao contrário e teve mudança no nome);&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Agora o script não altera a classe Sprite, mas sim cria uma classe chamada Rotate que estende a classe Sprite para evitar de fazer modificações em uma classe importante como essa;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Videos&lt;/b&gt;&lt;br /&gt;&lt;div class="spoiler"&gt;&lt;input onclick="showSpoiler(this);" type="button" value="RMVX" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="320" height="262"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/xc2f2w&amp;colors=background:DEDEDE;&amp;related=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.dailymotion.com/swf/xc2f2w&amp;colors=background:DEDEDE;&amp;related=0" type="application/x-shockwave-flash" width="320" height="262" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/video/xc2f2w_crscolmeia-rotate-sprite-rmvx_videogames"&gt;C-RS(Colm&amp;eacute;ia - Rotate Sprite) RMVX&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Enviado por &lt;a href="http://www.dailymotion.com/ze_sherek"&gt;ze_sherek&lt;/a&gt;. - &lt;a href="http://www.dailymotion.com/br/channel/videogames"&gt;Veja reviews de games, trailers e seus melhores momentos jogando&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="spoiler"&gt;&lt;input onclick="showSpoiler(this);" type="button" value="RMXP" /&gt;&lt;br /&gt;&lt;div class="inner" style="display: none;"&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="320" height="255"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/xc28r7&amp;colors=background:DEDEDE;&amp;related=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.dailymotion.com/swf/xc28r7&amp;colors=background:DEDEDE;&amp;related=0" type="application/x-shockwave-flash" width="320" height="255" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/video/xc28r7_crscolmeia-rotate-sprite-rmxp_videogames"&gt;C-RS(Colm&amp;eacute;ia - Rotate Sprite) RMXP&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Enviado por &lt;a href="http://www.dailymotion.com/ze_sherek"&gt;ze_sherek&lt;/a&gt;. - &lt;a href="http://www.dailymotion.com/br/channel/videogames"&gt;Clique aqui para ver mais videos de games&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Como usar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Coloque o script acima de main.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para que o efeito funcione corretamente é preciso usar o método update.&lt;br /&gt;Também é preciso definir o parâmetro "bitmap2" que recebe um bitmap para a imagem de verso, e definir o parâmetro "ppf", que define a velocidade do "giro". Configure a situação inicial dos parâmetros(se precisar) x2, ox2 e zoom_x2 antes de definir bitmap2 para evitar transtornos com o efeitos no seu primeiro frame.&lt;br /&gt;&lt;br /&gt;*OBS: "ppf" = pixels per frame&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/212332823/6f373b54/Rotate_Sprite.html" target="_blank"&gt;Download da demo RMXP&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/212378846/d33a2ef9/_2__Rotate_Sprite.html" target="_blank"&gt;Download da demo RMVX&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script&lt;/b&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input onclick="javascript:this.form.code.focus();this.form.code.select();" type="button" value="Selecionar Código" /&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea cols="52" name="code" readonly="readonly" rows="15"&gt;#======================================&lt;br /&gt;# C-RS(Colméia - Rotate Sprite)&lt;br /&gt;#--------------------------------------&lt;br /&gt;#by:    zecomeia&lt;br /&gt;#date:  20/12/2009&lt;br /&gt;#for: RGSS and RGSS2&lt;br /&gt;#http://colmeia-do-ze.blogspot.com&lt;br /&gt;#--------------------------------------&lt;br /&gt;=begin&lt;br /&gt;updates:&lt;br /&gt;------------------------------------------------&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[31/01/2010]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;- Now the script uses the Sprite class as&lt;br /&gt;superclass instead of changing it.&lt;br /&gt;- The property "not_reverse" now called &lt;br /&gt;"mirror2", and its operation is the reverse of &lt;br /&gt;what it was.&lt;br /&gt;- Added the property "x2", "ox2" and "zoom_x2"&lt;br /&gt;to replace the properties "x", "ox" and "zoom_x"&lt;br /&gt;because they are used to cause the effect of the&lt;br /&gt;script, and thus preventing change them.&lt;br /&gt;------------------------------------------------&lt;br /&gt;&lt;br /&gt;about the script:&lt;br /&gt;-------------------------------------------------&lt;br /&gt;A class that inherits from the Sprite class that&lt;br /&gt;adds the effects of rotation on the images giving&lt;br /&gt;the impression the image has depth.&lt;br /&gt;-------------------------------------------------&lt;br /&gt;&lt;br /&gt;manual:&lt;br /&gt;---------------------------------------------&lt;br /&gt;self.bitmap2: back image for effect.&lt;br /&gt;Is a Bitmap object&lt;br /&gt;&lt;br /&gt;self.mirro2: if true,&lt;br /&gt;the back image will be draw flip &lt;br /&gt;horizontally, if false(default), not.&lt;br /&gt;Is a Boolean type&lt;br /&gt;&lt;br /&gt;self.ppf: "pixels per frame" define&lt;br /&gt;the velocity of the effect.&lt;br /&gt;Is a Integer object&lt;br /&gt;&lt;br /&gt;self.x2 = X coordenate of sprite&lt;br /&gt;Is a Integer object&lt;br /&gt;&lt;br /&gt;self.ox2 = X coordenate of the sprite's origin&lt;br /&gt;Is a Integer object&lt;br /&gt;&lt;br /&gt;self.zoom_x2 = horizontal zoom on the sprite&lt;br /&gt;1=100%&lt;br /&gt;Is a Integer object&lt;br /&gt;----------------------------------------------&lt;br /&gt;=end&lt;br /&gt;#======================================&lt;br /&gt;class Rotate &amp;lt; Sprite&lt;br /&gt;  &lt;br /&gt;  attr_accessor   :bitmap2&lt;br /&gt;  attr_accessor   :mirror2&lt;br /&gt;  attr_accessor   :ppf&lt;br /&gt;  attr_accessor   :x2&lt;br /&gt;  attr_accessor   :ox2&lt;br /&gt;  attr_accessor   :zoom_x2&lt;br /&gt;  &lt;br /&gt;  def initialize(viewport=nil)&lt;br /&gt;    @bitmap2 = nil&lt;br /&gt;    @mirror2 = false&lt;br /&gt;    @ppf = 0&lt;br /&gt;    @x2 = 0&lt;br /&gt;    @ox2 = 0&lt;br /&gt;    @zoom_x2 = 1&lt;br /&gt;    @rotate = false&lt;br /&gt;    @stage = true&lt;br /&gt;    super(viewport)&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def bitmap2=(bitmap2)&lt;br /&gt;    @bitmap2=bitmap2&lt;br /&gt;    self.ox = @ox2 + self.bitmap.width.to_f/2&lt;br /&gt;    self.x = @x2 + self.bitmap.width.to_f/2&lt;br /&gt;    self.zoom_x = @zoom_x2&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def update&lt;br /&gt;    super&lt;br /&gt;    rotate() unless @bitmap2.nil?&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def rotate()    &lt;br /&gt;    @img_front = bitmap if @img_front.nil?    &lt;br /&gt;    if self.zoom_x &amp;lt;= 0 &amp;amp;&amp;amp; @stage == true&lt;br /&gt;      if @rotate == false&lt;br /&gt;        @rotate = true&lt;br /&gt;        self.mirror = true if @mirror2 == true&lt;br /&gt;        self.bitmap = @bitmap2&lt;br /&gt;      else&lt;br /&gt;        @rotate = false&lt;br /&gt;        self.mirror = false if @mirror2 == true&lt;br /&gt;        self.bitmap = @img_front&lt;br /&gt;      end      &lt;br /&gt;      @stage = false&lt;br /&gt;    elsif self.zoom_x &amp;gt;= @zoom_x2 &amp;amp;&amp;amp; @stage == false&lt;br /&gt;      @stage = true&lt;br /&gt;    end&lt;br /&gt;    self.ox = @ox2 + self.bitmap.width.to_f/2&lt;br /&gt;    self.x = @x2 + self.bitmap.width.to_f/2&lt;br /&gt;    self.zoom_x-=@ppf/self.bitmap.width.to_f if @stage == true&lt;br /&gt;    self.zoom_x+=@ppf/self.bitmap.width.to_f if @stage == false&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Feito por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-1663607567774875630?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/c-3dsrcolmeia-3d-sprite-rotation.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-4300846346178789160</guid><pubDate>Sat, 19 Dec 2009 20:05:00 +0000</pubDate><atom:updated>2009-12-20T10:43:44.502-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>TutorialEventos</category><title>HUD Totalmente por eventos</title><description>&lt;b&gt;&lt;span style="font-size: 1.45em;"&gt;HUD Totalmente por eventos&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Barra de HP;&lt;/li&gt;&lt;li&gt;Barra de MP;&lt;/li&gt;&lt;li&gt;Barra de EXP;&lt;/li&gt;&lt;li&gt;Barra de EXP para próximo level;&lt;/li&gt;&lt;li&gt;Level do personagem;&lt;/li&gt;&lt;li&gt;Face com nome do personagem;&lt;/li&gt;&lt;li&gt;Estado do herói(evenenado, cego, etc.);&lt;/li&gt;&lt;li&gt;"Level UP!" e "Level Down!".&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;ScreenShot:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://img16.imageshack.us/img16/6628/sshud.jpg"&gt;&lt;img alt="" border="0" class="bbc_img" height="315" id="ncode_imageresizer_container_1" onload="NcodeImageResizer.createOn(this);" src="http://img16.imageshack.us/img16/6628/sshud.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download:&lt;/b&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/176812902/306eb185/_2__HUD.html" target="_blank"&gt;Clique Aqui&lt;/a&gt;(download via 4shared)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos:&lt;/b&gt;&lt;br /&gt;Aero por fazer as imagens usadas nessa demo&lt;br /&gt;zecomeia por programar o sistema&lt;br /&gt;Thibra pela solução pra facilitar o calculo da barra&lt;br /&gt;Linkei pela dica interessante sobre as barras de experiência e próximo level &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Informações sobre como utilizar:&lt;/b&gt;&lt;br /&gt;Caso for usar esta HUD do jeito em que está mudando apenas as imagens tenha em mente as seguintes informações sobre cada imagem da mesma(para ajudar use como template as imagens na pasta picture da demo):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;10 imagens com os números de 0 a 9(para mostrar o nível do personagem);&lt;/li&gt;&lt;li&gt;1 imagem/icone de "level up" e 1 de "level down";&lt;/li&gt;&lt;li&gt;Icones para mostrar cada estado do herói(envenenado,cego,morto,etc);&lt;/li&gt;&lt;li&gt;Um fundo para a HUD(porque se não nos movimentos de barras,etc, o fundo vai ficar como cenário);&lt;/li&gt;&lt;li&gt;Uma imagem com a face e nome do herói devidamente posicionados(siga o template).Envolto à face não deixe transparente porque as barras poderam aparecer por traz, mas deixe tranparente o resto, se não as barras podem ser cobertas por causa que a face com o nome esta em um layer acima(SIGA O TEMPLATE!).&lt;/li&gt;&lt;li&gt;4 imagens para as barras(pode usar a mesma imagem paras as quatro se preferir).O essencial ao fazer a barra é que ela tenha 100pixeis de comprimento na horizontal(largura,eixo X), já na vertical não importa.&lt;/li&gt;&lt;li&gt;Uma imagem para ser a "capa" HUD, ou seja, estará no layer de maior prioridade, portanto lembre-se de fazer "furos"(deixar transparente) onde estão localizados os outros gráficos se não os mesmo vão ficar cobertos pela capa da HUD e não aparecerão.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Tutorial:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Começando pelas barras&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;O calculo de todas as barras são muito simples e seguem quase em todos os casos a mesma forma.&lt;br /&gt;Acho que muitos devem conhecer o velho, bom e simples calculo de porcentagem?Então é ele mesmo que foi usado.Lembram que foi dito na descrição das imagens que as barras tem que ter 100pixeis na horizontal?O motivo é deixar a precisão da barra no deslocamento de 1 pixel para cada 1% do estato em questão(HP, MP,etc).Então seria o seguinte:&lt;br /&gt;&lt;br /&gt;no caso do HP&lt;br /&gt;variavel_HP = HP do personagem&lt;br /&gt;variavel_HP *= Largura da barra&lt;br /&gt;variavel_HP /= HP maximo do personagem&lt;br /&gt;&lt;br /&gt;Após o calculo pegamos o valor da variavel_HP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_HP para melhor posiciona-la.&lt;br /&gt;&lt;br /&gt;no caso do MP&lt;br /&gt;variavel_MP = MP do personagem&lt;br /&gt;variavel_MP *= Largura da barra&lt;br /&gt;variavel_MP /= MP maximo do personagem&lt;br /&gt;&lt;br /&gt;Após o calculo pegamos o valor da variavel_MP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_MP para melhor posiciona-la.&lt;br /&gt;&lt;br /&gt;Já no caso da experiência, se olhar no controle de variaveis verá que não existe um "EXP max", portanto foi preciso fazer um pré calculo para descobrirmos qual o valor máximo.&lt;br /&gt;&lt;br /&gt;[001]EXP_Calc_Bar1 = EXP do personagem&lt;br /&gt;Mudar nível: Todo o grupo +1 nivel&lt;br /&gt;&lt;br /&gt;[002]EXP_Calc_Bar4 = EXP do personagem&lt;br /&gt;Mudar nível: Todo o grupo -1 nivel&lt;br /&gt;[003]EXP_Calc_Bar2 = EXP do personagem&lt;br /&gt;[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2&lt;br /&gt;[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3&lt;br /&gt;Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1&lt;br /&gt;#Comentario: Aqui já começa o simples calculo de porcentagem&lt;br /&gt;[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2&lt;br /&gt;[001]EXP_Calc_Bar1 *= Largura da barra&lt;br /&gt;[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4&lt;br /&gt;&lt;br /&gt;*OBS: para a barra de próximo level, faça o mesmo calculo acima porém será acrecentado algo mais. Veja:&lt;br /&gt;&lt;br /&gt;[001]EXP_Calc_Bar1 = EXP do personagem&lt;br /&gt;Mudar nível: Todo o grupo +1 nivel&lt;br /&gt;&lt;br /&gt;[002]EXP_Calc_Bar4 = EXP do personagem&lt;br /&gt;Mudar nível: Todo o grupo -1 nivel&lt;br /&gt;[003]EXP_Calc_Bar2 = EXP do personagem&lt;br /&gt;[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2&lt;br /&gt;[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3&lt;br /&gt;Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1&lt;br /&gt;#Comentario: Aqui já começa o simples calculo de porcentagem&lt;br /&gt;[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2&lt;br /&gt;[001]EXP_Calc_Bar1 *= Largura da barra&lt;br /&gt;[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4&lt;br /&gt;&lt;br /&gt;Next_exp_bar = [001]EXP_Calc_Bar1&lt;br /&gt;Next_exp_bar += 1&lt;br /&gt;Next_exp_bar *= -1&lt;br /&gt;Next_exp_bar += 1 &lt;br /&gt;&lt;br /&gt;Após o calculo pegamos o valor da EXP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a EXP para melhor posiciona-la.&lt;br /&gt;&lt;br /&gt;Bem simples agora certo.No meio dos calculos da experiência foi colocado uma instrução dizendo para fazer condições para as habilidades, isso porque se você parar pra pensar perceberá que caso o personagem esteja no level 8 por exemplo, e aprenda uma magia no level 9 então essa magia já será aprendida no level 8 por causa do comando de subir +1 level.Existe outra forma de driblar isso simplesmente aumentando um no level de cada magia que vai ser aprendida no Database do seu jogo, mas aí pode parecer gambiarra alem de possível privação de utilizar o level 99 para aprender uma habilidade, ainda não pensei na possibilidade.Use a imaginação, combine as idéias, talvez poupe seu trabalho fazendo a condição apenas para uma magia no level 99.&lt;br /&gt;&lt;br /&gt;&lt;span class="bbc_u"&gt;&lt;strong&gt;DICA:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Usar a barra de experiência e de próximo level na HUD pode ficar meio estranho porque a diferença está apenas na direção que a barra se move, quando uma está no máximo outra está no mínimo e vice versa.Uma idéia proposta por Linkei é fazer a barra de experiência como uma barra total, ou seja, de toda esperiência ganha no jogo sendo que só chegaria ao máximo no ultimo level, enquanto a de próximo level continua no mesmo equema.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;O Contador de level&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;É bem simples fazer este contador também.Como foi dito no começo, são usadas 10 imagens, cada imagem contem um número de 0 a 9.Como o level no database só vai até 99 então faremos um contador de apenas 2 digitos, que são as:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Unidades&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Como o no database o level vai até 99(2 digitos) então para pegarmos a casa das unidades pegamos o resto do LV divido por 10.&lt;br /&gt;&lt;br /&gt;variavel_LV = Level do personagem&lt;br /&gt;variavel_LV %= 10&lt;br /&gt;variavel_LV(unidades) = variavel_LV&lt;br /&gt;&lt;br /&gt;Agora a variável "variavel_LV(unidades)" tem o valor das unidades do level, então basta criar 10 condições onde cada uma verifica se "variavel_LV(unidades)" é igual a um número de 0 a 9, e então no corpo da condição colocamos o comando de mostrar imagem com a imagem do número correspondente(use o mesmo número para todas as imagens).Vamos colocar uma condição na exceção da outra(com exceção da ultima) para amenizar possiveis problemas com lag.&lt;br /&gt;&lt;br /&gt;se variavel_LV(unidades) == 0&lt;br /&gt;&amp;nbsp;mostrar imagem(10, "numero0", x, y)&lt;br /&gt;exceção&lt;br /&gt;&amp;nbsp;se variavel_LV(unidades) == 1&lt;br /&gt;&amp;nbsp; mostrar imagem(10, "numero1", x, y)&lt;br /&gt;&amp;nbsp;exceção&lt;br /&gt;&amp;nbsp; se variavel_LV(unidades) == 2&lt;br /&gt;&amp;nbsp; &amp;nbsp;mostrar imagem(10, "numero2", x, y)&lt;br /&gt;&amp;nbsp; exceção&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;... até chegar ao 9&lt;br /&gt;&lt;br /&gt;Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dezenas&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;É feito da mesma forma das unidades, porem ao invez de pegarmos o resto da divisão por 10, apenas dividimos por, veja:&lt;br /&gt;&lt;br /&gt;variavel_LV = Level do personagem&lt;br /&gt;variavel_LV /= 10&lt;br /&gt;variavel_LV(dezenas) = variavel_LV&lt;br /&gt;&lt;br /&gt;O resto do procedimento também é o mesmo, basta trocar o número da imagem, a posição(X,Y).&lt;br /&gt;&lt;br /&gt;se variavel_LV(dezenas) == 0&lt;br /&gt;&amp;nbsp;mostrar imagem(11, "numero0", x, y)&lt;br /&gt;exceção&lt;br /&gt;&amp;nbsp;se variavel_LV(dezenas) == 1&lt;br /&gt;&amp;nbsp; mostrar imagem(11, "numero1", x, y)&lt;br /&gt;&amp;nbsp;exceção&lt;br /&gt;&amp;nbsp; se variavel_LV(dezenas) == 2&lt;br /&gt;&amp;nbsp; &amp;nbsp;mostrar imagem(11, "numero2", x, y)&lt;br /&gt;&amp;nbsp; exceção&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;... até chegar ao 9&lt;br /&gt;&lt;br /&gt;Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Level UP/Level Down&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Basicamente existem duas variaveis que ambas contem o valor do level do herói, porém uma é atualizada constantemente ja a outra apenas quando o herói subir/descer o level.Essa pate do sistema é dividido uma parte para o level up e e outra para o level down, a diferença fundamental entre os dois é apenas a primeira condição onde uma comprar se a variavel que é atualizada constantemente é maior que a outra, e no caso do level down a comparação é o inverso, ou seja, é comparado se a variavel constantemente atualizada é menor que a outra.&lt;br /&gt;Fora isso o resto se trata de eventos visuais/audiveis para indicar o level up ou level down.E outra coisa também importante é que são atualizados alguns valores para evitar bugs, etc.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Estados&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Essa indiscutivelmente é a parte mais básica desta HUD.Simplesmente é criada uma variavel que vai ser usada para fazermos as condições onde cada condição, em seu corpo, tem um comando para mostrar a imagem do icone do estado na HUD e atribuir aquele estado ao herói.Foram colcadas algumas bobagensinhas a mais como causar "Game Over" quando o personagem chegar a HP=0(estado morto), e antes do game over mudar o gráfico do herói para deixa-lo deitado indicando que está morto.&lt;br /&gt;&lt;br /&gt;Aqui acaba a resumida explicação desta HUD, em caso de duvidas/bugs contate&amp;nbsp; &lt;b&gt;&lt;a class="bbc_email" href="mailto:sj-pereira@hotmail.com"&gt;sj-pereira@hotmail.com&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;***Na demo eu posso ter usado, sem necessidade, variaveis a mais entre outras coisas, isso aconteceu porque teve coisas que passaram despercebidas quando terminei o sistema(coisas de testes)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-4300846346178789160?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/hud-totalmente-por-eventos.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-3825572321304426193</guid><pubDate>Fri, 18 Dec 2009 18:42:00 +0000</pubDate><atom:updated>2009-12-19T18:11:30.813-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Novidades</category><title>Blog inaugurado!</title><description>Finalmente o blog tem alguma coisa para expor, então está oficialmente inaugurado.&lt;br /&gt;Em breve vou disponibilizar mais conteudo.&lt;br /&gt;&lt;br /&gt;T+&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-3825572321304426193?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/blog-inaugurado.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-2061263738655497610</guid><pubDate>Fri, 18 Dec 2009 17:14:00 +0000</pubDate><atom:updated>2010-09-24T16:02:45.835-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS12</category><title>BUG do Pulo</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;BUG do Pulo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Conserta um BUG do comando de pulo. Na verdade é apenas uma trava de segurança, porque no RMVX não existe essa trava que impeça o jogador pular em cima de um tile não passável e ficar preso, ou pular perto dos limites do mapa ultrapassando esses limites também fazendo com que o jogador fique preso. No RMXP a trava impede que o evento de pular aconteça nas situações descritas anteriormente, já com esse script para qualquer um dos doi (RMVX ou RMXP), caso as coordenadas de destino do pulo causem problemas, as mesmas são recauculadas de forma a diminuir a distância do pulo em 1 quadro até ser possível o evento de pulo ser concretizado sem possíveis problemas. Alguns costumam aproveitar deste "BUG" para fazer cut scenes "passando por cima" de tiles não passáveis, pensando nisso o script te dá a opção de ativar ou desativar o script de conserto a qualquer momento.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Conserta o BUG do pulo do RMVX&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Causa o mesmo efeito para o RMXP, mesmo não havendo BUG&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Screenshots&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Nenhuma&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Como usar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Coloque o script acima de main.&lt;br /&gt;&lt;br /&gt;Para deixar o BUG use o código, no comando "chamar script":&lt;br /&gt;&lt;div class="codeheader"&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;$BUGpulo = true&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Para retirar o BUG use o código, no comando "chamar script":&lt;br /&gt;&lt;div class="codeheader"&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;$BUGpulo = nil&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Sinta-se à vontade para colocar ou tirar o BUG quando quiser.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.santuariorpgmaker.com/forum/index.php?action=dlattach;topic=3084.0;attach=2520" target="_blank"&gt;Download da demo RMXP&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.santuariorpgmaker.com/forum/index.php?action=dlattach;topic=3084.0;attach=2519" target="_blank"&gt;Download da demo RMVX&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input type="button" value="Selecionar Código" onClick="javascript:this.form.code.focus();this.form.code.select();"&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea rows="15" cols="52" name="code" readonly="readonly"&gt;&lt;br /&gt;#========================&lt;br /&gt;#BUG do pulo&lt;br /&gt;#========================&lt;br /&gt;#Autor: zecomeia&lt;br /&gt;#Data:  12/11/2009&lt;br /&gt;#http://colmeia-do-ze.blogspot.com/&lt;br /&gt;#------------------------&lt;br /&gt;#Descrição:&lt;br /&gt;#Este script impede que o&lt;br /&gt;#personagem fique preso&lt;br /&gt;#em tiles quando usado&lt;br /&gt;#o comando de pulo.&lt;br /&gt;#Pensando em quem costuma&lt;br /&gt;#usar o comando de pulo&lt;br /&gt;#mesmo em lugares não&lt;br /&gt;#passáveis existe uma&lt;br /&gt;#forma de ligar/desligar&lt;br /&gt;#o efeito do script.&lt;br /&gt;#Para manter o bug:&lt;br /&gt;#$BUGpulo = true&lt;br /&gt;#Para retirar o bug:&lt;br /&gt;#$BUGpulo = false&lt;br /&gt;if $TEST == true or (File.stat("Game.rgss2a").file? rescue false) or&lt;br /&gt;  (File.stat("Game.rvproj").file? rescue false)&lt;br /&gt;  $PLATFORM = 'VX'&lt;br /&gt;elsif $DEBUG == true or (File.stat("Game.rgssad").file? rescue false) or&lt;br /&gt;  (File.stat("Game.rxproj").file? rescue false)&lt;br /&gt;  $PLATFORM = 'XP'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;$BUGpulo = true&lt;br /&gt;class Game_Character&lt;br /&gt;  def jump(x_plus, y_plus)&lt;br /&gt;    unless $BUGpulo == true&lt;br /&gt;      if x_plus.abs &gt; y_plus.abs&lt;br /&gt;        x_plus &lt; 0 ? turn_left : turn_right&lt;br /&gt;      elsif x_plus.abs &gt; y_plus.abs&lt;br /&gt;        y_plus &lt; 0 ? turn_up : turn_down&lt;br /&gt;      end&lt;br /&gt;      until ($PLATFORM.eql?('VX') ? map_passable?(@x + x_plus, @y + y_plus) : passable?(@x + x_plus, @y + y_plus,0))&lt;br /&gt;        break if x_plus==0 and y_plus==0&lt;br /&gt;        if x_plus &gt; 0&lt;br /&gt;          x_plus -= 1&lt;br /&gt;        elsif x_plus &lt; 0&lt;br /&gt;          x_plus += 1&lt;br /&gt;        end&lt;br /&gt;        if y_plus &gt; 0&lt;br /&gt;          y_plus -= 1&lt;br /&gt;        elsif y_plus &lt; 0&lt;br /&gt;          y_plus += 1&lt;br /&gt;        end&lt;br /&gt;      end     &lt;br /&gt;      @x += x_plus&lt;br /&gt;      @y += y_plus&lt;br /&gt;      distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round&lt;br /&gt;      @jump_peak = 10 + distance - @move_speed&lt;br /&gt;      @jump_count = @jump_peak * 2&lt;br /&gt;      @stop_count = 0&lt;br /&gt;      straighten&lt;br /&gt;    else   &lt;br /&gt;      if x_plus.abs &gt; y_plus.abs&lt;br /&gt;        x_plus &lt; 0 ? turn_left : turn_right&lt;br /&gt;      elsif x_plus.abs &gt; y_plus.abs&lt;br /&gt;        y_plus &lt; 0 ? turn_up : turn_down&lt;br /&gt;      end&lt;br /&gt;      @x += x_plus&lt;br /&gt;      @y += y_plus&lt;br /&gt;      distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round&lt;br /&gt;      @jump_peak = 10 + distance - @move_speed&lt;br /&gt;      @jump_count = @jump_peak * 2&lt;br /&gt;      @stop_count = 0&lt;br /&gt;      straighten&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Feito por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-2061263738655497610?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/bug-do-pulo.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-4885332571600026964</guid><pubDate>Fri, 18 Dec 2009 17:09:00 +0000</pubDate><atom:updated>2010-09-11T10:17:46.742-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS</category><title>C-SIZ(Colméia - Show Item Zelda)</title><description>&lt;div align="center"&gt;&lt;span class="bbc_size" style="font-size: 1.45em;"&gt;&lt;strong&gt;C-SIZ(Colméia - Show Item Zelda)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;por &lt;em&gt;zecomeia&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Introdução&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Mostra um item que foi pego igual/parecido ao jogo Zelda de SNES.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Características&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Mostra a imagem do icone do item que foi pego&lt;/li&gt;&lt;li&gt;Muda o gráfico do personagem ao pegar o item&lt;/li&gt;&lt;li&gt;Toca uma SE ao pegar o item&lt;/li&gt;&lt;li&gt;Pode ser ligado/desligado, até porque aparecer a animação ao pegar qualquer item pode ficar chato dependendo da jogabilidade do seu jogo.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Screen Shot&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="bbc_img" height="315" id="ncode_imageresizer_container_4" onload="NcodeImageResizer.createOn(this);" src="http://img6.imageshack.us/img6/6763/ssshowitemzelda.jpg" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Como Usar&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list" style="list-style-type: decimal;"&gt;&lt;li&gt;Coloque o script acima de main&lt;/li&gt;&lt;li&gt;Veja no script como configurar e configure&lt;/li&gt;&lt;li&gt;Faça o charset do personagem ganhando item(siga o exemplo da demo) e nomeio conforme configurado ao colocar na pasta de charsets.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Coloque o arquivo de audio a ser tocado ao pegar o item, na pasta SE e nomeio como configurado no script&lt;/li&gt;&lt;li&gt;Faça o teste e em caso de dúvida pergunte aqui ou contate &lt;a class="bbc_email" href="mailto:sj-pereira@hotmail.com"&gt;sj-pereira@hotmail.com&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Para ligar/desligar o efeito use "chamar script" em um evento e use os códigos abaixo:&lt;br /&gt;&lt;br /&gt;&lt;div class="codeheader"&gt;&lt;/div&gt;&lt;code&gt;&amp;nbsp; #&amp;nbsp; Para ligar:&lt;br /&gt;&amp;nbsp; $CSIZ = true&lt;br /&gt;&amp;nbsp; #&amp;nbsp; Para desligar:&lt;br /&gt;&amp;nbsp; $CSIZ = nil&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Demo&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/H3ziieM8/_2__Zelda.html" target="_blank"&gt;Download da demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Script&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input type="button" value="Selecionar Código" onClick="javascript:this.form.code.focus();this.form.code.select();"&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea rows="15" cols="52" name="code" readonly="readonly"&gt;&lt;br /&gt;#=============================================&lt;br /&gt;# C-SIZ(Colméia - Show Item Zelda)&lt;br /&gt;#---------------------------------------------&lt;br /&gt;# por zecomeia&lt;br /&gt;# 06/05/2009&lt;br /&gt;# update(11/09/2010)&lt;br /&gt;#- bug da posição da imagem corrigido&lt;br /&gt;#- mudança na forma de ligar/desligar script&lt;br /&gt;#---------------------------------------------&lt;br /&gt;#Descrição: Mostra o item que foi pego igual&lt;br /&gt;#ao jogo Zelda de SNES.&lt;br /&gt;#=============================================&lt;br /&gt;&lt;br /&gt;#====================&lt;br /&gt;#   Configuração&lt;br /&gt;#====================&lt;br /&gt;&lt;br /&gt;#Ligar/Desligar(true/nil) o efeito de mostrar o item.&lt;br /&gt;$CSIZ = nil #true/nil&lt;br /&gt;#OBS:para liga/desligar a função durante o jogo faça um evento com:&lt;br /&gt;#  Para ligar:&lt;br /&gt;#$CSIZ = true&lt;br /&gt;#  Para desligar:&lt;br /&gt;#$CSIZ = nil&lt;br /&gt;module Config_ItemShowZelda_ZC&lt;br /&gt;  #Nome do arquivo do charset do personagem mostrando que ganhou o item.&lt;br /&gt;  #O nome colocado abaixo tem que ser adicionado ao nome de arquivo&lt;br /&gt;  #do charset original, e não substir sobre o original.&lt;br /&gt;  #Ex: zelda.png -&gt; zelda(show_item_zelda).png&lt;br /&gt;  #OBS:Uma é p charset normal do personagem e a outra é o charset&lt;br /&gt;  #mostrando que ganhou o item.&lt;br /&gt;  GRAPHIC_ARQ_NAME = "(show_item)"&lt;br /&gt;  #Nome do arquivo de SE que é tocado ao ganhar o item.&lt;br /&gt;  SOUND_ARQ_NAME = "LTTP_ItemFanfare"  &lt;br /&gt;end&lt;br /&gt; &lt;br /&gt;class Window_ItemShow &lt; Window_Base&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Inicialização dos Objetos&lt;br /&gt;  #&lt;br /&gt;  #     ator : Objeto&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def initialize(x, y, item)&lt;br /&gt;    super(x - 28, y - 88, 64, 72)&lt;br /&gt;    self.contents = Bitmap.new(width - 36, height - 36)&lt;br /&gt;    self.contents.font.name = $fontface&lt;br /&gt;    self.contents.font.size = $fontsize&lt;br /&gt;    @item = item&lt;br /&gt;    refresh&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Atualizar&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def refresh&lt;br /&gt;    self.contents.clear&lt;br /&gt;    draw_item_name(@item, 0, 0)&lt;br /&gt;  end &lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Game_Player &lt; Game_Character&lt;br /&gt; &lt;br /&gt;#--Inclusão das configurações--&lt;br /&gt;include Config_ItemShowZelda_ZC&lt;br /&gt;#------------------------------&lt;br /&gt; &lt;br /&gt;  def refresh_gain_object_zelda&lt;br /&gt;    # Se o número de membros no Grupo de Heróis for 0&lt;br /&gt;    if $game_party.actors.size == 0&lt;br /&gt;      # Limpar o nome do arquivo e a tonalidade do Herói&lt;br /&gt;      @character_name = ""&lt;br /&gt;      @character_hue = 0&lt;br /&gt;      # Fim do método&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    # Selecionar o Herói líder&lt;br /&gt;    actor = $game_party.actors[0]&lt;br /&gt;    # Selecionar o nome do arquivo e a tonalidade do Herói&lt;br /&gt;    @character_name = actor.character_name + GRAPHIC_ARQ_NAME&lt;br /&gt;    @character_hue = actor.character_hue&lt;br /&gt;    # Inicializar a opacidade e a sinteticidade&lt;br /&gt;    @opacity = 255&lt;br /&gt;    @blend_type = 0&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Atualização do Frame&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def update&lt;br /&gt;    # Memorizar, se estiver movendo ou não, nas variáveis locais&lt;br /&gt;    last_moving = moving?&lt;br /&gt;    # Se estiver movendo, um evento ocorrendo, uma rota pré-determinada, ou&lt;br /&gt;    # se estiver exibindo uma mensagem&lt;br /&gt;    # Mostrar tudo como se não estivessem ocorrendo&lt;br /&gt;    unless moving? or $game_system.map_interpreter.running? or&lt;br /&gt;           @move_route_forcing or $game_temp.message_window_showing&lt;br /&gt;      # Mover o Jogador na direção que o direcional for pressionado&lt;br /&gt;    if $wait_itemshow_zelda == 0 &lt;br /&gt;       case Input.dir4&lt;br /&gt;       when 2&lt;br /&gt;         move_down&lt;br /&gt;       when 4&lt;br /&gt;         move_left&lt;br /&gt;       when 6&lt;br /&gt;         move_right&lt;br /&gt;       when 8&lt;br /&gt;         move_up&lt;br /&gt;       end&lt;br /&gt;     end&lt;br /&gt;    end&lt;br /&gt;    # Memorizar as coordenadas nas variáveis locais&lt;br /&gt;    last_real_x = @real_x&lt;br /&gt;    last_real_y = @real_y&lt;br /&gt;    super&lt;br /&gt;    # Se o Herói for movido para baixo e tenha ficado abaixo do centro da tela&lt;br /&gt;    if @real_y &gt; last_real_y and @real_y - $game_map.display_y &gt; CENTER_Y&lt;br /&gt;      # Rolar o mapa para baixo&lt;br /&gt;      $game_map.scroll_down(@real_y - last_real_y)&lt;br /&gt;    end&lt;br /&gt;    # Se o Herói for movido para a esquerda e tenha ficado a esquerda do centro&lt;br /&gt;    # da tela&lt;br /&gt;    if @real_x &lt; last_real_x and @real_x - $game_map.display_x &lt; CENTER_X&lt;br /&gt;      # Rolar o mapa para a esquerda&lt;br /&gt;      $game_map.scroll_left(last_real_x - @real_x)&lt;br /&gt;    end&lt;br /&gt;    # Se o Herói for movido para a direita e tenha ficado a direita do centro da&lt;br /&gt;    # tela&lt;br /&gt;    if @real_x &gt; last_real_x and @real_x - $game_map.display_x &gt; CENTER_X&lt;br /&gt;      # Rolar o mapa para a direita&lt;br /&gt;      $game_map.scroll_right(@real_x - last_real_x)&lt;br /&gt;    end&lt;br /&gt;    # Se o Herói for movido para cima e tenha ficado acima do centro da tela&lt;br /&gt;    if @real_y &lt; last_real_y and @real_y - $game_map.display_y &lt; CENTER_Y&lt;br /&gt;      # rolar o mapa para cima&lt;br /&gt;      $game_map.scroll_up(last_real_y - @real_y)&lt;br /&gt;    end&lt;br /&gt;    # Se não estiver movendo&lt;br /&gt;    unless moving?&lt;br /&gt;      # Se o jogador estava se movendo&lt;br /&gt;      if last_moving&lt;br /&gt;        # Se a determinante de incialização for por toque ou mesma posição&lt;br /&gt;        result = check_event_trigger_here([1,2])&lt;br /&gt;        # Se o Evento que foi iniciado não existir&lt;br /&gt;        if result == false&lt;br /&gt;          # Desconsiderar se o Modo de Depuração estiver ON e a tecla Ctrl&lt;br /&gt;          # pressionada&lt;br /&gt;          unless $DEBUG and Input.press?(Input::CTRL)&lt;br /&gt;            # Diminuir 1 do contador de encontros&lt;br /&gt;            if @encounter_count &gt; 0&lt;br /&gt;              @encounter_count -= 1&lt;br /&gt;            end&lt;br /&gt;          end&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;      # Se o botão C for pressionado&lt;br /&gt;      if Input.trigger?(Input::C)&lt;br /&gt;        # Determinantes de mesma posição e na frente do Evento&lt;br /&gt;        check_event_trigger_here([0])&lt;br /&gt;        check_event_trigger_there([0,1,2])&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;end &lt;br /&gt;&lt;br /&gt;class Game_Party&lt;br /&gt;&lt;br /&gt;#--Inclusão das configurações--&lt;br /&gt;include Config_ItemShowZelda_ZC&lt;br /&gt;#------------------------------&lt;br /&gt;&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Ganhou ou Perder Itens&lt;br /&gt;  #&lt;br /&gt;  #     item_id : iD do Item&lt;br /&gt;  #     n       : quantidade&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def gain_item(item_id, n)&lt;br /&gt;    if $CSIZ == true&lt;br /&gt;     $wait_itemshow_zelda = 80&lt;br /&gt;     $game_player.turn_down&lt;br /&gt;     $game_player.refresh_gain_object_zelda&lt;br /&gt;     Audio.se_play("Audio/SE/" + SOUND_ARQ_NAME, 100, 100)&lt;br /&gt;     $window_itemshow_zelda = Window_ItemShow.new($game_player.screen_x, $game_player.screen_y, $data_items[item_id]) &lt;br /&gt;     $window_itemshow_zelda.opacity = 0&lt;br /&gt;    end&lt;br /&gt;    # Atualizar a quantidade nesta divisão&lt;br /&gt;    if item_id &gt; 0&lt;br /&gt;      @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Ganhar ou Perder Armas&lt;br /&gt;  #&lt;br /&gt;  #     weapon_id : ID da Arma&lt;br /&gt;  #     n         : quantidade&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def gain_weapon(weapon_id, n)&lt;br /&gt;    if $CSIZ == true&lt;br /&gt;     $wait_itemshow_zelda = 80&lt;br /&gt;     $game_player.turn_down&lt;br /&gt;     $game_player.refresh_gain_object_zelda&lt;br /&gt;     Audio.se_play("Audio/SE/" + SOUND_ARQ_NAME, 100, 100)&lt;br /&gt;     $window_itemshow_zelda = Window_ItemShow.new($game_player.screen_x, $game_player.screen_y, $data_weapons[weapon_id])&lt;br /&gt;     $window_itemshow_zelda.opacity = 0&lt;br /&gt;    end&lt;br /&gt;    # Atualizar a quantidade nesta divisão&lt;br /&gt;    if weapon_id &gt; 0&lt;br /&gt;      @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Ganhar ou Perder Armaduras&lt;br /&gt;  #&lt;br /&gt;  #     armor_id : ID da Armadura&lt;br /&gt;  #     n        : quantidade&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def gain_armor(armor_id, n)&lt;br /&gt;    if $CSIZ == true&lt;br /&gt;     $wait_itemshow_zelda = 80&lt;br /&gt;     $game_player.turn_down&lt;br /&gt;     $game_player.refresh_gain_object_zelda&lt;br /&gt;     Audio.se_play("Audio/SE/" + SOUND_ARQ_NAME, 100, 100)&lt;br /&gt;     $window_itemshow_zelda = Window_ItemShow.new($game_player.screen_x, $game_player.screen_y, $data_armors[armor_id])&lt;br /&gt;     $window_itemshow_zelda.opacity = 0&lt;br /&gt;    end&lt;br /&gt;    # Atualizar a quantidade nesta divisão&lt;br /&gt;    if armor_id &gt; 0&lt;br /&gt;      @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;end &lt;br /&gt;&lt;br /&gt;class Scene_Map&lt;br /&gt; &lt;br /&gt;  alias new_main main&lt;br /&gt; &lt;br /&gt;  def main&lt;br /&gt;    $wait_itemshow_zelda = 0&lt;br /&gt;    $window_itemshow_zelda = Window_ItemShow.new($game_player.screen_x, $game_player.screen_y, $data_items[0])&lt;br /&gt;    $window_itemshow_zelda.opacity = 0&lt;br /&gt;    new_main&lt;br /&gt;    $window_itemshow_zelda.dispose&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  alias new_update update&lt;br /&gt; &lt;br /&gt;  def update&lt;br /&gt;    if $wait_itemshow_zelda &gt; 0&lt;br /&gt;      $game_player.turn_down&lt;br /&gt;      $game_player.refresh_gain_object_zelda&lt;br /&gt;      $window_itemshow_zelda.visible = true&lt;br /&gt;      $wait_itemshow_zelda -= 1&lt;br /&gt;    else&lt;br /&gt;      $window_itemshow_zelda.visible = false&lt;br /&gt;      $game_player.refresh&lt;br /&gt;      $wait_itemshow_zelda = 0&lt;br /&gt;    end &lt;br /&gt;  new_update&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Créditos e Agradecimentos&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&lt;em&gt;zecomeia&lt;/em&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;&lt;span style="font-weight: normal;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-4885332571600026964?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/c-sizcolmeia-show-item-zelda.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-7245871300115303306</guid><pubDate>Fri, 18 Dec 2009 17:05:00 +0000</pubDate><atom:updated>2009-12-22T09:55:36.619-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS</category><title>Scene_Logotipo 1.2</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;Scene_Logotipo 1.2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Mostra uma imagem com efeito de fade in/out na apresentação do jogo(antes da tela de titulo).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Características&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;configuracão da velocidade do efeito de fade;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;configuração de uma tecla para pular a introdução caso desejado.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Screenshots&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Não necessita.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Como usar&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Instale o script acima de main e procure a linha a seguir no script de main do seu jogo(provavelmente na linha 31):&lt;br /&gt;&lt;div class="codeheader"&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;&amp;nbsp; $scene = Scene_Title.new&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;e então troque por:&lt;br /&gt;&lt;div class="codeheader"&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;&amp;nbsp; $scene = Scene_Logotipo.new&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Mais informações no começo do script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/101120867/12585cbf/Project3.html" target="_blank"&gt;Download  da demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;Script&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input type="button" value="Selecionar Código" onClick="javascript:this.form.code.focus();this.form.code.select();"&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea rows="15" cols="52" name="code" readonly="readonly"&gt;&lt;br /&gt;#-------------------------------------------------------------&lt;br /&gt;#-------------------Scene_Logotipo----------------------------&lt;br /&gt;#--------------------versão: 1.2 (RMXP)-----------------------&lt;br /&gt;#-------------------------------------------------------------&lt;br /&gt;#-por: zecomeia----------------------&lt;br /&gt;#-19/12/2008--------------------------------------------------&lt;br /&gt;#http://colmeia-do-ze.blogspot.com/&lt;br /&gt;#-------------------------------------------------------------&lt;br /&gt;#-------------------------------------------------------------&lt;br /&gt;#---Mostra uma Logo Marca com efeito Fade, antes do Title-----&lt;br /&gt;#-------------------------------------------------------------&lt;br /&gt;#-Leia as instruções para instalar o script no final do mesmo-&lt;br /&gt;#-------------------------------------------------------------&lt;br /&gt;&lt;br /&gt; #--------------------------------------&lt;br /&gt; #---Configurações----------------------&lt;br /&gt; #--------------------------------------&lt;br /&gt;&lt;br /&gt;module ConfigIntroScene&lt;br /&gt;#Defina o nome da imagem que será usada.Lembre-se de coloca-la na pasta picture do projeto&lt;br /&gt;  IMAGE_NAME = "logo"&lt;br /&gt;#Defina a velocidade do efeito de fade.Nunca coloque zero &lt;br /&gt;  SPEED_FADE = 1&lt;br /&gt;#Escolha uma tecla que servirá para pular a introdução.A tecla pode ser:&lt;br /&gt;# Input::LEFT  Input::UP Input::RIGHT Input::DOWN&lt;br /&gt;# Input::SHIFT Input::CTRL Input::ALT&lt;br /&gt;# Input::F5 Input::F6 Input::F7 Input::F8 Input::F9&lt;br /&gt;# Input::A Input::B Input::C Input::X Input::Y Input::Z Input::L Input::R&lt;br /&gt;#OBS:Copie e cole o botão que quiser acima, assim é mais fácil.&lt;br /&gt;#Caso não queira que tenha um botão que pule a intro deixe escrito&lt;br /&gt;# nil&lt;br /&gt;  INPUT_SKIP_INTRO = nil&lt;br /&gt;end &lt;br /&gt; &lt;br /&gt; #--------------------------------------&lt;br /&gt; #---Definindo a classe Scene_Logotipo--&lt;br /&gt; #--------------------------------------&lt;br /&gt;&lt;br /&gt;class Scene_Logotipo&lt;br /&gt; &lt;br /&gt;include ConfigIntroScene&lt;br /&gt; &lt;br /&gt;  #---------------------------&lt;br /&gt;  #--------Main da Classe-----&lt;br /&gt;  #---------------------------&lt;br /&gt; &lt;br /&gt;  def main&lt;br /&gt;        # Se estiver em Teste de Batalha&lt;br /&gt;    if $BTEST&lt;br /&gt;      battle_test&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    # Criação do gráfico da Logo Marca&lt;br /&gt;    $data_system = load_data("Data/System.rxdata")&lt;br /&gt;    $data_system = Game_System.new&lt;br /&gt;    @logo = Sprite.new&lt;br /&gt;    @logo.bitmap = RPG::Cache.picture(IMAGE_NAME)&lt;br /&gt;    @logo.opacity = 0&lt;br /&gt;    @opacity = 0&lt;br /&gt;    # Variavel de troca de Fades&lt;br /&gt;    fade = 0&lt;br /&gt;    # Executa a Transição&lt;br /&gt;    Graphics.transition&lt;br /&gt;    # Loop principal&lt;br /&gt;    loop do&lt;br /&gt;      # Atualiza a tela do jogo&lt;br /&gt;      Graphics.update&lt;br /&gt;      # Atualiza entradas&lt;br /&gt;      Input.update&lt;br /&gt;      # Reconhece se C foi pressionado&lt;br /&gt;      if INPUT_SKIP_INTRO != nil&lt;br /&gt;       update&lt;br /&gt;      end&lt;br /&gt;     &lt;br /&gt; #--------------------------&lt;br /&gt; #---Fade In----------------&lt;br /&gt; #--------------------------&lt;br /&gt; &lt;br /&gt;  if fade == 0&lt;br /&gt;  @opacity += SPEED_FADE&lt;br /&gt;  @logo.opacity = @opacity&lt;br /&gt;  if @opacity &gt; 255&lt;br /&gt;    fade = 1&lt;br /&gt;    end&lt;br /&gt; end&lt;br /&gt; &lt;br /&gt; #--------------------------&lt;br /&gt; #---Fade Out---------------&lt;br /&gt; #--------------------------&lt;br /&gt; &lt;br /&gt; if fade == 1 &lt;br /&gt;  @opacity -= SPEED_FADE&lt;br /&gt;  @logo.opacity = @opacity&lt;br /&gt;  if @opacity &lt; 0&lt;br /&gt;     $scene = Scene_Title.new&lt;br /&gt;     end&lt;br /&gt;   end&lt;br /&gt;  # Interrompe os loops de transição de tela&lt;br /&gt;      if $scene != self&lt;br /&gt;        break&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    # Prepara a Transição&lt;br /&gt;    Graphics.freeze&lt;br /&gt;    # Dispose&lt;br /&gt;    @logo.dispose&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #---------------------------&lt;br /&gt;  #--------Update-------------&lt;br /&gt;  #---------------------------&lt;br /&gt; &lt;br /&gt;  def update&lt;br /&gt;  # Se apertar a tecla C&lt;br /&gt;    if Input.trigger?(INPUT_SKIP_INTRO)&lt;br /&gt;    # Vai para a Tela de Título&lt;br /&gt;      $scene = Scene_Title.new&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Teste de Batalha&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def battle_test&lt;br /&gt;    # Carregar Banco de Dados para o Teste de Batalha&lt;br /&gt;    $data_actors        = load_data("Data/BT_Actors.rxdata")&lt;br /&gt;    $data_classes       = load_data("Data/BT_Classes.rxdata")&lt;br /&gt;    $data_skills        = load_data("Data/BT_Skills.rxdata")&lt;br /&gt;    $data_items         = load_data("Data/BT_Items.rxdata")&lt;br /&gt;    $data_weapons       = load_data("Data/BT_Weapons.rxdata")&lt;br /&gt;    $data_armors        = load_data("Data/BT_Armors.rxdata")&lt;br /&gt;    $data_enemies       = load_data("Data/BT_Enemies.rxdata")&lt;br /&gt;    $data_troops        = load_data("Data/BT_Troops.rxdata")&lt;br /&gt;    $data_states        = load_data("Data/BT_States.rxdata")&lt;br /&gt;    $data_animations    = load_data("Data/BT_Animations.rxdata")&lt;br /&gt;    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")&lt;br /&gt;    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")&lt;br /&gt;    $data_system        = load_data("Data/BT_System.rxdata")&lt;br /&gt;    # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo&lt;br /&gt;    Graphics.frame_count = 0&lt;br /&gt;    # Criar cada tipo de objetos do jogo&lt;br /&gt;    $game_temp          = Game_Temp.new&lt;br /&gt;    $game_system        = Game_System.new&lt;br /&gt;    $game_switches      = Game_Switches.new&lt;br /&gt;    $game_variables     = Game_Variables.new&lt;br /&gt;    $game_self_switches = Game_SelfSwitches.new&lt;br /&gt;    $game_screen        = Game_Screen.new&lt;br /&gt;    $game_actors        = Game_Actors.new&lt;br /&gt;    $game_party         = Game_Party.new&lt;br /&gt;    $game_troop         = Game_Troop.new&lt;br /&gt;    $game_map           = Game_Map.new&lt;br /&gt;    $game_player        = Game_Player.new&lt;br /&gt;    # Configurar Grupo para o Teste de Batalha&lt;br /&gt;    $game_party.setup_battle_test_members&lt;br /&gt;    # Definir o ID do Grupo de Inimigos, a possibilidade de fuga e o Fundo de&lt;br /&gt;    # Batalha&lt;br /&gt;    $game_temp.battle_troop_id = $data_system.test_troop_id&lt;br /&gt;    $game_temp.battle_can_escape = true&lt;br /&gt;    $game_map.battleback_name = $data_system.battleback_name&lt;br /&gt;    # Reproduzri SE de início de batalha&lt;br /&gt;    $game_system.se_play($data_system.battle_start_se)&lt;br /&gt;    # Reproduzir BGM de batalha&lt;br /&gt;    $game_system.bgm_play($game_system.battle_bgm)&lt;br /&gt;    # Mudar para a tela de batalha&lt;br /&gt;    $scene = Scene_Battle.new&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------&lt;br /&gt;#---Instalando o Scene_Logotipo------------------------------------&lt;br /&gt;#------------------------------------------------------------------&lt;br /&gt;#-Apenas cole este script acima de Main.Após feito isso,vá em Main-&lt;br /&gt;#e altere a linha n°32 de "$scene = Scene_Scene_Title.new" para----&lt;br /&gt;#"$scene = Scene_Scene_Logotipo.new".Agore coloque a imagem de sua-&lt;br /&gt;#Logo Marca na pasta system de seu jogo como nome de "logo.png".---&lt;br /&gt;#------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;span style="font-size: 1em;"&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;Feito por &lt;i&gt;zecomeia&lt;/i&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-size: 1em;"&gt;&lt;span style="font-weight: normal;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-7245871300115303306?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/scenelogotipo-12.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-3216044960387370662</guid><pubDate>Fri, 18 Dec 2009 17:02:00 +0000</pubDate><atom:updated>2009-12-22T09:46:54.190-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS</category><title>C-CPP(Colméia - Change Party Position)</title><description>&lt;div align="center"&gt;&lt;span style="font-size: 1.45em;"&gt;&lt;b&gt;C-CPP(Colméia - Change Party Position)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;por &lt;i&gt;zecomeia&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Introdução&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Com este script o jogador pode trocar a ordem dos personagens do grupo.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;trocar ordem dos personagens&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Screen Shot&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img13.imageshack.us/img13/4049/sceneordem.png"&gt;&lt;img alt="" border="0" class="bbc_img" height="315" id="ncode_imageresizer_container_3" onload="NcodeImageResizer.createOn(this);" src="http://img13.imageshack.us/img13/4049/sceneordem.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Como Usar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Cole acima de main&lt;/li&gt;&lt;li&gt;Para chamar o script vá em "chamar script" em um evento e coloque:&lt;/li&gt;&lt;/ul&gt;&lt;div class="codeheader"&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;$scene = Scene_Ordem.new&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.4shared.com/file/101111807/bb1ee68c/Ordem.html" target="_blank"&gt;Download da demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Script&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input type="button" value="Selecionar Código" onClick="javascript:this.form.code.focus();this.form.code.select();"&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea rows="15" cols="52" name="code" readonly="readonly"&gt;&lt;br /&gt;#---------------------------------------------------------------&lt;br /&gt;#- ChangePartyPosition(Menu de Ordem) --------------------------&lt;br /&gt;#- por: zecomeia ------------------------------&lt;br /&gt;#- 18/02/2009 --------------------------------------------------&lt;br /&gt;# Descrição: Essa opção faz com que o jogador tenha a liberdade&lt;br /&gt;#de trocar a posição dos Heróis no grupo. ----------------------&lt;br /&gt;#---------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;class Scene_Ordem&lt;br /&gt; &lt;br /&gt;  def main&lt;br /&gt;    @status_window = Window_MenuStatus.new&lt;br /&gt;    @status_window.x = 72&lt;br /&gt;    @status_window.y = 0&lt;br /&gt;    @stlock_window = Window_MenuStatus.new&lt;br /&gt;    @stlock_window.x = 72&lt;br /&gt;    @stlock_window.y = 0&lt;br /&gt;    @status_window.active = true&lt;br /&gt;    @status_window.index = 0&lt;br /&gt;    @stlock_window.active = true&lt;br /&gt;    @stlock_window.index = 0&lt;br /&gt;    # Criar chaves de controle para escolha dos personagem na troca&lt;br /&gt;    @lock_firstchoice = nil&lt;br /&gt;    @next_choice = nil&lt;br /&gt;    # Executar transição&lt;br /&gt;    Graphics.transition&lt;br /&gt;    # Loop principal&lt;br /&gt;    loop do&lt;br /&gt;      # Atualizar a tela de jogo&lt;br /&gt;      Graphics.update&lt;br /&gt;      # Atualizar a entrada de informações&lt;br /&gt;      Input.update&lt;br /&gt;      # Atualizar Frame&lt;br /&gt;      update&lt;br /&gt;      # Abortar loop se a tela for alterada&lt;br /&gt;      if $scene != self&lt;br /&gt;        break&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    # Preparar para transiçõa&lt;br /&gt;    Graphics.freeze&lt;br /&gt;    # Exibição das janelas&lt;br /&gt;    @status_window.dispose&lt;br /&gt;    @stlock_window.dispose&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def update&lt;br /&gt;    @status_window.update&lt;br /&gt;    @stlock_window.update&lt;br /&gt;    # Se a janela de Status estiver ativa e: call update_status&lt;br /&gt;    if @status_window.active and @next_choice != true&lt;br /&gt;      update_status&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    # Se a segunda escolha da troca de personagens estiver ativa: call comand_ordem&lt;br /&gt;    if @next_choice == true &lt;br /&gt;      comand_ordem&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #-------------------------------------------------------------&lt;br /&gt;  #-- comand_ordem (segunda escolha da troca de posição) -------&lt;br /&gt;  #-------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def comand_ordem&lt;br /&gt;    # Se o botão B for pressionado (Cancel)&lt;br /&gt;    if Input.trigger?(Input::B)&lt;br /&gt;      # Reproduzir SE de cancelamento&lt;br /&gt;      $game_system.se_play($data_system.cancel_se)&lt;br /&gt;      # Voltar para escolha do primeiro Herói da troca&lt;br /&gt;      @stlock_window.active = true&lt;br /&gt;      @stlock_window.index = -1&lt;br /&gt;      @next_choice = false&lt;br /&gt;      @lock_firstchoice = false&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    # Se o botão C for pressionado (OK)&lt;br /&gt;    if Input.trigger?(Input::C)&lt;br /&gt;      # Reproduzir SE de OK&lt;br /&gt;      $game_system.se_play($data_system.decision_se)&lt;br /&gt;      # Segunda escolha da troca de Heróis&lt;br /&gt;      if @status_window.index == 0 #Se for o primeiro do grupo&lt;br /&gt;        # Trocar posições dos personagens escolhidos&lt;br /&gt;        @second_choice = $game_party.actors[0]&lt;br /&gt;        $game_party.actors[0] = $game_party.actors[@first_choice]&lt;br /&gt;        $game_party.actors[@first_choice] = @second_choice&lt;br /&gt;        # Manter posição do cursor de escolha&lt;br /&gt;        @indice_position = 0&lt;br /&gt;        # Renovar gráficos&lt;br /&gt;        update_ordem&lt;br /&gt;      elsif @status_window.index == 1 #Se for o segundo do grupo&lt;br /&gt;        # Trocar posições dos personagens escolhidos&lt;br /&gt;        @second_choice = $game_party.actors[1]&lt;br /&gt;        $game_party.actors[1] = $game_party.actors[@first_choice]&lt;br /&gt;        $game_party.actors[@first_choice] = @second_choice&lt;br /&gt;        # Manter posição do cursor de escolha&lt;br /&gt;        @indice_position = 1&lt;br /&gt;        # Renovar gráficos&lt;br /&gt;        update_ordem&lt;br /&gt;      elsif @status_window.index == 2 #Se for o terceiro do grupo&lt;br /&gt;        # Trocar posições dos personagens escolhidos&lt;br /&gt;        @second_choice = $game_party.actors[2]&lt;br /&gt;        $game_party.actors[2] = $game_party.actors[@first_choice]&lt;br /&gt;        $game_party.actors[@first_choice] = @second_choice&lt;br /&gt;        # Manter posição do cursor de escolha&lt;br /&gt;        @indice_position = 2 &lt;br /&gt;        # Renovar gráficos&lt;br /&gt;        update_ordem&lt;br /&gt;      elsif @status_window.index == 3 #Se for o quarto do grupo&lt;br /&gt;        # Trocar posições dos personagens escolhidos&lt;br /&gt;        @second_choice = $game_party.actors[3]&lt;br /&gt;        $game_party.actors[3] = $game_party.actors[@first_choice]&lt;br /&gt;        $game_party.actors[@first_choice] = @second_choice&lt;br /&gt;        # Manter posição do cursor de escolha&lt;br /&gt;        @indice_position = 3&lt;br /&gt;        # Renovar gráficos&lt;br /&gt;        update_ordem&lt;br /&gt;      end       &lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #-----------------------------------------------------------------------------&lt;br /&gt;  #-- update_ordem (renova os gráficos da janela de status e do lider do grupo -&lt;br /&gt;  #-----------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def update_ordem&lt;br /&gt;        $game_player.refresh&lt;br /&gt;        @status_window.dispose&lt;br /&gt;        @stlock_window.dispose&lt;br /&gt;        @status_window = Window_MenuStatus.new&lt;br /&gt;        @stlock_window = Window_MenuStatus.new&lt;br /&gt;        @status_window.x = 72&lt;br /&gt;        @status_window.y = 0&lt;br /&gt;        @stlock_window.x = 72&lt;br /&gt;        @stlock_window.y = 0&lt;br /&gt;        @stlock_window.active = true&lt;br /&gt;        @stlock_window.index = -1&lt;br /&gt;        @status_window.active = true&lt;br /&gt;        @status_window.index = @indice_position&lt;br /&gt;        @next_choice = false&lt;br /&gt;        @lock_firstchoice = false&lt;br /&gt;        return&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # - Atualização do Frame (Quando o status da Janela estiver Ativo)&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def update_status&lt;br /&gt;    # Se o botão B for pressionado&lt;br /&gt;    if Input.trigger?(Input::B)&lt;br /&gt;      # Reproduzir SE de cancelamento&lt;br /&gt;      $game_system.se_play($data_system.cancel_se)&lt;br /&gt;      $scene = Scene_Map.new&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    # Se o botão C for pressionado&lt;br /&gt;    if Input.trigger?(Input::C)&lt;br /&gt;        # Reproduzir SE de OK&lt;br /&gt;        $game_system.se_play($data_system.decision_se)&lt;br /&gt;        # Escolha do primeiro personagem da troca&lt;br /&gt;        if @status_window.index == 0 and @lock_firstchoice != true&lt;br /&gt;        @first_choice = 0&lt;br /&gt;        # Travar um cursor de indicação da primeira escolha&lt;br /&gt;        @stlock_window.index = 0&lt;br /&gt;        @lock_firstchoice = true &lt;br /&gt;        elsif @status_window.index == 1 and @lock_firstchoice != true&lt;br /&gt;        @first_choice = 1&lt;br /&gt;        # Travar um cursor de indicação da primeira escolha&lt;br /&gt;        @stlock_window.index = 1&lt;br /&gt;        @lock_firstchoice = true&lt;br /&gt;        elsif @status_window.index == 2 and @lock_firstchoice != true&lt;br /&gt;        @first_choice = 2&lt;br /&gt;        # Travar um cursor de indicação da primeira escolha&lt;br /&gt;        @stlock_window.index = 2&lt;br /&gt;        @lock_firstchoice = true&lt;br /&gt;        elsif @status_window.index == 3 and @lock_firstchoice != true&lt;br /&gt;        @first_choice = 3&lt;br /&gt;        # Travar um cursor de indicação da primeira escolha&lt;br /&gt;        @stlock_window.index = 3&lt;br /&gt;        @lock_firstchoice = true &lt;br /&gt;        end       &lt;br /&gt;        # Trava do cursor da primeira escolha&lt;br /&gt;        if @lock_firstchoice == true&lt;br /&gt;        @stlock_window.active = false&lt;br /&gt;        # Iniciar escolha do segundo personagem na troca&lt;br /&gt;        @next_choice = true&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;b&gt;Créditos e Agradecimentos&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;i&gt;zecomeia&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-3216044960387370662?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/c-cppcolmeia-change-party-position.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5363999679499377237.post-714610827947582986</guid><pubDate>Fri, 18 Dec 2009 16:58:00 +0000</pubDate><atom:updated>2009-12-22T09:53:57.473-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ScriptRGSS</category><title>Horror_Menu 2.0</title><description>&lt;div align="center"&gt;&lt;span class="bbc_size" style="font-size: 1.45em;"&gt;&lt;strong&gt;Horror_Menu 2.0&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;por zecomeia&lt;/em&gt;&lt;br /&gt;&lt;em&gt;design aero&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Introdução&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Scene de Title por imagens com sistema de creditos e extras.O sistema&lt;br /&gt;de creditos e extras simplesmente salva duas variáveis&amp;nbsp; junto ao arquivo&lt;br /&gt;de save e lê todos os arquivos quando o jogo é executado e se essa(as) variaveis&lt;br /&gt;estiverem ligadas liberam sua opção.Existem algumas configurações no script.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;Características&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;Scene de titulo toda por imagens;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sistema de extras e creditos;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;Screenshots&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img32.imageshack.us/img32/4178/horrormenu.jpg"&gt;&lt;img alt="" border="0" class="bbc_img" height="315" id="ncode_imageresizer_container_22" onload="NcodeImageResizer.createOn(this);" src="http://img32.imageshack.us/img32/4178/horrormenu.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;Como usar&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Coloque o script acima de main.&lt;br /&gt;&lt;br /&gt;Outras instruções no próprio script e na demo. &lt;br /&gt;&lt;br /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Demo&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link new_win" href="http://www.santuariorpgmaker.com/forum/exposicao-de-scripts/horror-menu/?action=dlattach;attach=288" target="_blank"&gt;Download da demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;Script&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;form name="select_all"&gt;&lt;input type="button" value="Selecionar Código" onClick="javascript:this.form.code.focus();this.form.code.select();"&gt;&lt;br /&gt;&lt;pre&gt;&lt;textarea rows="15" cols="52" name="code" readonly="readonly"&gt;&lt;br /&gt;#================================================================&lt;br /&gt;#             Horror_Menu 2.0&lt;br /&gt;#----------------------------------------------------------------&lt;br /&gt;# por: zecomeia&lt;br /&gt;# data: 13/04/2009&lt;br /&gt;#http://colmeia-do-ze.blogspot.com/&lt;br /&gt;# Desgin por Aero&lt;br /&gt;=begin&lt;br /&gt;Explicação:&lt;br /&gt;O sistema de extras e creditos que vem com este menu é uito simples de usar.&lt;br /&gt;Você pode, por exemplo, abilitar só a opção de extras ou de creditos ou ambas&lt;br /&gt;quando chegar em determinada parte do jogo, ou ate mesmo quando&lt;br /&gt;acabar o jogo para liberar mini-games, curiosidades, etc.A parte&lt;br /&gt;do script fixada no menu lê todos os arquivos de saves para ver se estão&lt;br /&gt;ativadas as variavéis que abilitam a opção de extras e/ou creditos.&lt;br /&gt;Mas para todo esse sistema funcionar precisa saber utilizar a intrução abaixo:&lt;br /&gt;&lt;br /&gt;1º No evento em que irá ativar estas opções para o jogador, use o comando&lt;br /&gt;"chamar script" do menu de eventos e coloque o script abaixo:&lt;br /&gt;&lt;br /&gt;$extras_enabled = true #true = abilitar extras - false = desabilitar extras&lt;br /&gt;$credits_enabled = true #true = abilitar creditos - false = desabilitar creditos&lt;br /&gt;save_infos = Scene_Save.new&lt;br /&gt;save_infos.save_extras&lt;br /&gt;&lt;br /&gt;2º Pronto, não precisa de mais nada.Desta forma são definidos os valores&lt;br /&gt;e já são salvos automaticamente.&lt;br /&gt;&lt;br /&gt;Mas existe a possibilidade de apenas definir o valor e deixe que só sejam salvos&lt;br /&gt;quando o jogador salvar o jogo.Para isso basta:&lt;br /&gt;&lt;br /&gt;1º No evento em que irá ativar estas opções para o jogador, use o comando&lt;br /&gt;"chamar script" do menu de eventos e coloque o script abaixo:&lt;br /&gt;&lt;br /&gt;$extras_enabled = true #true = abilitar extras - false = desabilitar extras&lt;br /&gt;$credits_enabled = true #true = abilitar creditos - false = desabilitar creditos&lt;br /&gt;&lt;br /&gt;2º Pronto.Desta forma os valores foram definidos e só serão salvos quando&lt;br /&gt;o jogador o fizer(salvar).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dúvidas visite o Site  www.santuariorpgmaker.com/forum&lt;br /&gt;e procure por zecomeia&lt;br /&gt;&lt;br /&gt;=end&lt;br /&gt;#================================================================&lt;br /&gt;&lt;br /&gt;#================================================================&lt;br /&gt;#CONFIGURAÇÕES&lt;br /&gt;#================================================================&lt;br /&gt;module ConfigExtrasData&lt;br /&gt; # Informações do mapa para opção "Creditos",respectivamente&lt;br /&gt; #"ID do mapa", "Posição inicial X do heroi","Posição inicial Y do heroi"&lt;br /&gt; MapaCredId = 2&lt;br /&gt; MapaCredX = 5&lt;br /&gt; MapaCredY = 5&lt;br /&gt; # Informações do mapa para opção "Extras",respectivamente&lt;br /&gt; #"ID do mapa", "Posição inicial X do heroi","Posição inicial Y do heroi"&lt;br /&gt; MapaExtId = 3&lt;br /&gt; MapaExtX = 6&lt;br /&gt; MapaExtY = 6&lt;br /&gt; #Se por algum motivo não quiser usar o sistema de extras e creditos&lt;br /&gt; # acionaveis no jogo então coloque o valor como true nas variaveis&lt;br /&gt; #abaixo, em qual decidir&lt;br /&gt; CREDITS_ENABLE = false #ou true&lt;br /&gt; EXTRAS_ENABLE = false #ou true&lt;br /&gt;end&lt;br /&gt;#=====FIM========================================================&lt;br /&gt;&lt;br /&gt;#==============================================================================&lt;br /&gt;# Scene_Title&lt;br /&gt;#------------------------------------------------------------------------------&lt;br /&gt;# Esta classe trata da Tela de Título&lt;br /&gt;#==============================================================================&lt;br /&gt;&lt;br /&gt;class Scene_Title&lt;br /&gt; &lt;br /&gt;  include ConfigExtrasData&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Processamento Principal&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def main&lt;br /&gt;    # Se estiver em Teste de Batalha&lt;br /&gt;    if $BTEST&lt;br /&gt;      battle_test&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    # Carregar o Banco de Dados&lt;br /&gt;    $data_actors        = load_data("Data/Actors.rxdata")&lt;br /&gt;    $data_classes       = load_data("Data/Classes.rxdata")&lt;br /&gt;    $data_skills        = load_data("Data/Skills.rxdata")&lt;br /&gt;    $data_items         = load_data("Data/Items.rxdata")&lt;br /&gt;    $data_weapons       = load_data("Data/Weapons.rxdata")&lt;br /&gt;    $data_armors        = load_data("Data/Armors.rxdata")&lt;br /&gt;    $data_enemies       = load_data("Data/Enemies.rxdata")&lt;br /&gt;    $data_troops        = load_data("Data/Troops.rxdata")&lt;br /&gt;    $data_states        = load_data("Data/States.rxdata")&lt;br /&gt;    $data_animations    = load_data("Data/Animations.rxdata")&lt;br /&gt;    $data_tilesets      = load_data("Data/Tilesets.rxdata")&lt;br /&gt;    $data_common_events = load_data("Data/CommonEvents.rxdata")&lt;br /&gt;    $data_system        = load_data("Data/System.rxdata")&lt;br /&gt;    # Criar um Sistema&lt;br /&gt;    $game_system = Game_System.new&lt;br /&gt;    # Verificação de creditos e extras&lt;br /&gt;    ext_on = false&lt;br /&gt;    cre_on = false&lt;br /&gt;    verify = Scene_Load.new&lt;br /&gt;    $extras_enabled = false&lt;br /&gt;    $credits_enabled = false&lt;br /&gt;    for i in 0..3&lt;br /&gt;     if FileTest.exist?("Save#{i+1}.rxdata")&lt;br /&gt;       filename = "Save#{i+1}.rxdata"&lt;br /&gt;       file = File.open(filename, "r")&lt;br /&gt;       verify.read_extras_data(file)&lt;br /&gt;       if $extras_enabled == true or ext_on == true&lt;br /&gt;         ext_on = true&lt;br /&gt;         $extras_enabled = true&lt;br /&gt;       end&lt;br /&gt;       if $credits_enabled == true or cre_on == true&lt;br /&gt;         cre_on = true&lt;br /&gt;         $credits_enabled = true&lt;br /&gt;       end&lt;br /&gt;       file.close&lt;br /&gt;       ext_on = false&lt;br /&gt;       cre_on = false&lt;br /&gt;     end&lt;br /&gt;    end&lt;br /&gt;    if $extras_enabled == nil&lt;br /&gt;      $extras_enabled = false&lt;br /&gt;    end&lt;br /&gt;    if $credits_enabled == nil&lt;br /&gt;      $credits_enabled = false&lt;br /&gt;    end&lt;br /&gt;    # Informações para efeito de confirmação&lt;br /&gt;    @oy = 1&lt;br /&gt;    @z_x = 1&lt;br /&gt;    @z_y = 1&lt;br /&gt;    @a = false&lt;br /&gt;    @x = 0&lt;br /&gt;    @y = 0&lt;br /&gt;    #######&lt;br /&gt;    # Informações do mapa para opção "Creditos",respectivamente&lt;br /&gt;    #"ID do mapa", "Posição inicial X do heroi","Posição inicial Y do heroi"&lt;br /&gt;    #***Configure no modulo no inicio do script&lt;br /&gt;    @mapa_creditos = MapaCredId&lt;br /&gt;    @mapa_creditos_x = MapaCredX&lt;br /&gt;    @mapa_creditos_y = MapaCredY&lt;br /&gt;    # Informações do mapa para opção "Extras",respectivamente&lt;br /&gt;    #"ID do mapa", "Posição inicial X do heroi","Posição inicial Y do heroi"&lt;br /&gt;    #***Configure no modulo no inicio do script &lt;br /&gt;    @mapa_extras = MapaExtId&lt;br /&gt;    @mapa_extras_x = MapaExtX&lt;br /&gt;    @mapa_extras_y = MapaExtY&lt;br /&gt;    #&lt;br /&gt;    #&lt;br /&gt;    if CREDITS_ENABLE == true&lt;br /&gt;      $credits_enabled = true&lt;br /&gt;    end &lt;br /&gt;    if EXTRAS_ENABLE == true&lt;br /&gt;      $extras_enabled = true&lt;br /&gt;    end &lt;br /&gt;    #######&lt;br /&gt;    # Posição inicial do cursor&lt;br /&gt;    @indice = 1&lt;br /&gt;    # Abilitação das setas de controle(cima/baixo)&lt;br /&gt;    @enable_cursor = true&lt;br /&gt;    # Estado dos comandos de efeito da troca de opções&lt;br /&gt;    @down_command = false&lt;br /&gt;    @up_command = false&lt;br /&gt;    # Variaveis que definem a ordem inicial do cursor de opções,&lt;br /&gt;    #e que são redefinidas ao lono do script para o funcionamento do script&lt;br /&gt;    # Caso não saiba nada de programção não tente alterar estes valores,&lt;br /&gt;    #porque precisam ser alterados em outros pontos&lt;br /&gt;    @back = "sair"&lt;br /&gt;    @main = "novo jogo"&lt;br /&gt;    @near = "carregar"&lt;br /&gt;    # Criar um Sistema&lt;br /&gt;    $game_system = Game_System.new&lt;br /&gt;    # Graficos do sistema do menu de titulo&lt;br /&gt;    @back_option = Sprite.new&lt;br /&gt;    @main_option = Sprite.new&lt;br /&gt;    @near_option = Sprite.new&lt;br /&gt;    @background = Sprite.new&lt;br /&gt;    grafics&lt;br /&gt;    @background.x  = 1&lt;br /&gt;    @background.oy = 1&lt;br /&gt;    # Aqui é checado se existe algum arquivo de save&lt;br /&gt;    # Se estiver habilitado, tornar @continue_enabled verdadeiro; se estiver&lt;br /&gt;    # desabilitado, tornar falso&lt;br /&gt;    $continue_enabled = false&lt;br /&gt;    for i in 0..3&lt;br /&gt;      if FileTest.exist?("Save#{i+1}.rxdata")&lt;br /&gt;        $continue_enabled = true&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    # Ativa(true)/Desativa(false) a opção de creditos no menu de titulo&lt;br /&gt;    #$credits_enabled = true&lt;br /&gt;    # Ativa(true)/Desativa(false) a opção de extras no menu de titulo&lt;br /&gt;    #$extras_enabled = true&lt;br /&gt;    #OBS:Mesmo desativada a opção continua la, só que com  uma opacidade menor&lt;br /&gt;    #para indicar que está desativada, e sua função também não funciona.&lt;br /&gt;    ##########################&lt;br /&gt;    # Reproduzir BGM de Título&lt;br /&gt;    $game_system.bgm_play($data_system.title_bgm)&lt;br /&gt;    # Parar de reproduzir BGS e ME&lt;br /&gt;    Audio.me_stop&lt;br /&gt;    Audio.bgs_stop&lt;br /&gt;    # Executar transição&lt;br /&gt;    Graphics.transition&lt;br /&gt;    # Loop principal&lt;br /&gt;    loop do&lt;br /&gt;      # Atualizar a tela de jogo&lt;br /&gt;      Graphics.update&lt;br /&gt;      # Atualizar a entrada de informações&lt;br /&gt;      Input.update&lt;br /&gt;      # Atualizar o frame&lt;br /&gt;      update&lt;br /&gt;      # Abortar o loop caso a tela tenha sido alterada&lt;br /&gt;      if $scene != self&lt;br /&gt;        break&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    # Preparar para transição&lt;br /&gt;    Graphics.freeze&lt;br /&gt;    # Exibir a janela de comandos&lt;br /&gt;    @back_option.dispose&lt;br /&gt;    @main_option.dispose&lt;br /&gt;    @near_option.dispose&lt;br /&gt;    # Exibir o gráfico de Título&lt;br /&gt;    @background.bitmap.dispose&lt;br /&gt;    @background.dispose&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #----------------------------------------------------&lt;br /&gt;  #-- grafics(define e atualiza os graficos do menu) --&lt;br /&gt;  #----------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def grafics&lt;br /&gt;    back = @back&lt;br /&gt;    main = @main&lt;br /&gt;    near = @near&lt;br /&gt;    @back_option.bitmap = RPG::Cache.picture(back.to_s)&lt;br /&gt;    @back_option.x = 50&lt;br /&gt;    @back_option.y = 155&lt;br /&gt;    @main_option.bitmap = RPG::Cache.picture(main.to_s)&lt;br /&gt;    @main_option.x = 50&lt;br /&gt;    @main_option.y = 207&lt;br /&gt;    @near_option.bitmap = RPG::Cache.picture(near.to_s)&lt;br /&gt;    @near_option.x = 50&lt;br /&gt;    @near_option.y = 259&lt;br /&gt;    @background.bitmap = RPG::Cache.picture("backgrund")&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------&lt;br /&gt;  #-- indice_updt(atualiza os graficos das opções e sua ordem) --&lt;br /&gt;  #--------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def indice_updt&lt;br /&gt;    # Atualizar a janela de comandos&lt;br /&gt;    case @indice&lt;br /&gt;    when 1&lt;br /&gt;    @back = "sair"&lt;br /&gt;    @main = "novo jogo"&lt;br /&gt;    @near = "carregar"&lt;br /&gt;    grafics&lt;br /&gt;    when 2&lt;br /&gt;    @back = "novo jogo"&lt;br /&gt;    @main = "carregar"&lt;br /&gt;    @near = "extras"&lt;br /&gt;    grafics&lt;br /&gt;    when 3&lt;br /&gt;    @back = "carregar"&lt;br /&gt;    @main = "extras"&lt;br /&gt;    @near = "creditos"&lt;br /&gt;    grafics&lt;br /&gt;    when 4&lt;br /&gt;    @back = "extras"&lt;br /&gt;    @main = "creditos"&lt;br /&gt;    @near = "sair"&lt;br /&gt;    grafics&lt;br /&gt;    when 5&lt;br /&gt;    @back = "creditos"&lt;br /&gt;    @main = "sair"&lt;br /&gt;    @near = "novo jogo"&lt;br /&gt;    grafics&lt;br /&gt;    end&lt;br /&gt;    # Atualiza os gráficos das opções no frame&lt;br /&gt;    @back_option.update&lt;br /&gt;    @main_option.update&lt;br /&gt;    @near_option.update&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Atualização do Frame&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def update&lt;br /&gt;    if @zoom_effect == true&lt;br /&gt;       @back_option.x = -100&lt;br /&gt;       @near_option.x = -100&lt;br /&gt;       @x -= 20&lt;br /&gt;       @background.x = @x&lt;br /&gt;       @y -= 80&lt;br /&gt;       @background.y = @y&lt;br /&gt;       @z_x += 0.0164 * 20&lt;br /&gt;       @background.zoom_x = @z_x&lt;br /&gt;       @z_y += 0.0164 * 20&lt;br /&gt;       @background.zoom_y = @z_y&lt;br /&gt;       @background.opacity -= 15&lt;br /&gt;       @main_option.zoom_x += 0.0164 * 20&lt;br /&gt;       @main_option.zoom_y += 0.0164 * 20&lt;br /&gt;       @main_option.x -= 4&lt;br /&gt;       @main_option.y -= 12&lt;br /&gt;       if @background.zoom_x &gt;= 0.0164 * 500&lt;br /&gt;       @a = true&lt;br /&gt;        if @novo_conf == true&lt;br /&gt;         command_new_game&lt;br /&gt;        elsif @continue_conf == true&lt;br /&gt;         command_continue&lt;br /&gt;        elsif @credito_conf == true&lt;br /&gt;         command_creditos&lt;br /&gt;        elsif @extra_conf == true&lt;br /&gt;         command_extras&lt;br /&gt;        elsif @sair_conf == true&lt;br /&gt;         command_shutdown&lt;br /&gt;        end&lt;br /&gt;       end&lt;br /&gt;    end&lt;br /&gt;    ########Inicio###################&lt;br /&gt;    # Comandos de efeito de deslocamento das imagens de opções&lt;br /&gt;    if @down_command == true&lt;br /&gt;     @back_option.y += 3&lt;br /&gt;     @main_option.y += 3&lt;br /&gt;     if @back_option.y &gt; 206 and @main_option.y &gt; 258&lt;br /&gt;     @indice -= 1&lt;br /&gt;     if @indice &lt; 1&lt;br /&gt;        @indice = 5&lt;br /&gt;     end&lt;br /&gt;     @down_command = false&lt;br /&gt;     @enable_cursor = true&lt;br /&gt;     indice_updt&lt;br /&gt;     end&lt;br /&gt;    end&lt;br /&gt;    if @up_command == true&lt;br /&gt;     @near_option.y -= 3&lt;br /&gt;     @main_option.y -= 3&lt;br /&gt;     if @near_option.y &lt; 208 and @main_option.y &lt; 156     &lt;br /&gt;     @indice += 1&lt;br /&gt;     if @indice &gt; 5&lt;br /&gt;        @indice = 1&lt;br /&gt;     end&lt;br /&gt;     @up_command = false&lt;br /&gt;     @enable_cursor = true&lt;br /&gt;     indice_updt&lt;br /&gt;     end&lt;br /&gt;    end&lt;br /&gt;    #########Fim############&lt;br /&gt;    ############Inicio########################&lt;br /&gt;    # Reconhecimento de opção ativada/desativada para "Carregar","Extras","Creditos"&lt;br /&gt;    # Se estiver desabilitado o texto será mostrado em cinza&lt;br /&gt;case @indice&lt;br /&gt;when 1&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;    if $continue_enabled == false&lt;br /&gt;      @near_option.opacity = 100&lt;br /&gt;    end&lt;br /&gt;when 2 #########################&lt;br /&gt;    if $continue_enabled == false &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 100&lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == true   &lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 100&lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255 &lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == true&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 100 &lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == true&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 100&lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255 &lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == true &lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;   end&lt;br /&gt;when 3 #########################&lt;br /&gt;    if $continue_enabled == false &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 100&lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == true   &lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 100 &lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == true&lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 100 &lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == true&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 100 &lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == true &lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;   end&lt;br /&gt;when 4 ###########################&lt;br /&gt;    if $continue_enabled == false &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == true   &lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255 &lt;br /&gt;elsif $continue_enabled == false &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == true&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255 &lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == false &amp;&amp; $credits_enabled == true&lt;br /&gt;    @back_option.opacity = 100&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == false&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 100&lt;br /&gt;    @near_option.opacity = 255 &lt;br /&gt;elsif $continue_enabled == true &amp;&amp; $extras_enabled == true &amp;&amp; $credits_enabled == true &lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;   end&lt;br /&gt;when 5&lt;br /&gt;    @back_option.opacity = 255&lt;br /&gt;    if $credits_enabled == false&lt;br /&gt;      @back_option.opacity = 100&lt;br /&gt;    end &lt;br /&gt;    @main_option.opacity = 255&lt;br /&gt;    @near_option.opacity = 255&lt;br /&gt;end  ######################&lt;br /&gt;&lt;br /&gt;    ##############Fim####################&lt;br /&gt;    # Se o botão C for pressionado&lt;br /&gt;    if Input.trigger?(Input::C) and @enable_cursor == true&lt;br /&gt;      # ramificação pela posição do cursor&lt;br /&gt;      case @indice&lt;br /&gt;      when 1  # Novo Jogo&lt;br /&gt;        command_new_game&lt;br /&gt;      when 2  # Carregar&lt;br /&gt;        command_continue&lt;br /&gt;      when 3  # Extras&lt;br /&gt;        command_extras&lt;br /&gt;      when 4  # Creditos&lt;br /&gt;        command_creditos&lt;br /&gt;      #when 5  # Son&lt;br /&gt;       # command_son&lt;br /&gt;      when 5  # Sair&lt;br /&gt;        command_shutdown&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    # Se o botão Down for pressionado&lt;br /&gt;    if Input.trigger?(Input::DOWN) and @enable_cursor == true&lt;br /&gt;      # Som de deslocamento do cursor (definida na linha abaixo, e não no database)&lt;br /&gt;      Audio.se_play("Audio/SE/" + "039-Switch08", 100, 100)&lt;br /&gt;      @down_command = true #Iniciar efeito de deslocamento das imagens das opções&lt;br /&gt;      @enable_cursor = false #travar movimento de escolha&lt;br /&gt;    end &lt;br /&gt;    # Se o botão Up for pressionado&lt;br /&gt;    if Input.trigger?(Input::UP) and @enable_cursor == true&lt;br /&gt;      # Som de deslocamento do cursor (definida na linha abaixo, e não no database)&lt;br /&gt;      Audio.se_play("Audio/SE/" + "039-Switch08", 100, 100)&lt;br /&gt;      @up_command = true  #Iniciar efeito de deslocamento das imagens das opções&lt;br /&gt;      @enable_cursor = false #travar movimento de escolha&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Comando: Novo Jogo&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def command_new_game&lt;br /&gt;    if @a == false&lt;br /&gt;    # Reproduzir SE de OK (definida na linha abaixo, e não no database)&lt;br /&gt;    Audio.se_play("Audio/SE/" + "034-Switch03", 100, 100)&lt;br /&gt;    # Parar BGM&lt;br /&gt;    Audio.bgm_stop&lt;br /&gt;    @zoom_effect = true&lt;br /&gt;    @enable_cursor = false&lt;br /&gt;    @novo_conf = true&lt;br /&gt;    end&lt;br /&gt;    if @a == true&lt;br /&gt;    # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo&lt;br /&gt;    Graphics.frame_count = 0&lt;br /&gt;    # Criar cada tipo de objetos do jogo&lt;br /&gt;    $game_temp          = Game_Temp.new&lt;br /&gt;    $game_system        = Game_System.new&lt;br /&gt;    $game_switches      = Game_Switches.new&lt;br /&gt;    $game_variables     = Game_Variables.new&lt;br /&gt;    $game_self_switches = Game_SelfSwitches.new&lt;br /&gt;    $game_screen        = Game_Screen.new&lt;br /&gt;    $game_actors        = Game_Actors.new&lt;br /&gt;    $game_party         = Game_Party.new&lt;br /&gt;    $game_troop         = Game_Troop.new&lt;br /&gt;    $game_map           = Game_Map.new&lt;br /&gt;    $game_player        = Game_Player.new&lt;br /&gt;    # Configurar Grupo Inicial&lt;br /&gt;    $game_party.setup_starting_members&lt;br /&gt;    # Configurar posição inicial no mapa&lt;br /&gt;    $game_map.setup($data_system.start_map_id)&lt;br /&gt;    # Aqui o Jogador é movido até a posição inical configurada&lt;br /&gt;    $game_player.moveto($data_system.start_x, $data_system.start_y)&lt;br /&gt;    # Atualizar Jogador&lt;br /&gt;    $game_player.refresh&lt;br /&gt;    # Rodar, de acordo com o mapa, a BGM e a BGS&lt;br /&gt;    $game_map.autoplay&lt;br /&gt;    # Atualizar mapa (executar processos paralelos)&lt;br /&gt;    $game_map.update&lt;br /&gt;    # Mudar para a tela do mapa&lt;br /&gt;    $scene = Scene_Map.new&lt;br /&gt;    @zoom_effect = false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Comando: Continuar&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def command_continue&lt;br /&gt;    # Se Continuar estiver desabilitado&lt;br /&gt;    unless $continue_enabled&lt;br /&gt;      # Reproduzir SE de erro (definida na linha abaixo, e não no database)&lt;br /&gt;       Audio.se_play("Audio/SE/" + "138-Darkness01", 100, 100)&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    if @a == false&lt;br /&gt;    # Reproduzir SE de OK (definida na linha abaixo, e não no database)&lt;br /&gt;    Audio.se_play("Audio/SE/" + "034-Switch03", 100, 100)&lt;br /&gt;    @zoom_effect = true&lt;br /&gt;    @enable_cursor = false&lt;br /&gt;    @continue_conf = true&lt;br /&gt;    end&lt;br /&gt;    if @a == true&lt;br /&gt;    # Mudar para a tela de Carregar arquivos&lt;br /&gt;    $scene = Scene_Load.new&lt;br /&gt;    @zoom_effect = false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Comando: Extras&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;   &lt;br /&gt;  def command_extras# Se Creditos estiver desabilitado&lt;br /&gt;    unless $extras_enabled&lt;br /&gt;      # Reproduzir SE de erro (definida na linha abaixo, e não no database)&lt;br /&gt;      Audio.se_play("Audio/SE/" + "138-Darkness01", 100, 100)&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    if @a == false&lt;br /&gt;    # Reproduzir SE de OK (definida na linha abaixo, e não no database)&lt;br /&gt;    Audio.se_play("Audio/SE/" + "034-Switch03", 100, 100)&lt;br /&gt;    # Parar BGM&lt;br /&gt;    Audio.bgm_stop&lt;br /&gt;    @zoom_effect = true&lt;br /&gt;    @enable_cursor = false&lt;br /&gt;    @extra_conf = true&lt;br /&gt;    end&lt;br /&gt;    if @a == true&lt;br /&gt;    # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo&lt;br /&gt;    Graphics.frame_count = 0&lt;br /&gt;    # Criar cada tipo de objetos do jogo&lt;br /&gt;    $game_temp          = Game_Temp.new&lt;br /&gt;    $game_system        = Game_System.new&lt;br /&gt;    $game_switches      = Game_Switches.new&lt;br /&gt;    $game_variables     = Game_Variables.new&lt;br /&gt;    $game_self_switches = Game_SelfSwitches.new&lt;br /&gt;    $game_screen        = Game_Screen.new&lt;br /&gt;    $game_actors        = Game_Actors.new&lt;br /&gt;    $game_party         = Game_Party.new&lt;br /&gt;    $game_troop         = Game_Troop.new&lt;br /&gt;    $game_map           = Game_Map.new&lt;br /&gt;    $game_player        = Game_Player.new&lt;br /&gt;    # Configurar Grupo Inicial&lt;br /&gt;    $game_party.setup_starting_members&lt;br /&gt;    # Configurar posição inicial no mapa&lt;br /&gt;    $game_map.setup(@mapa_extras)&lt;br /&gt;    # Aqui o Jogador é movido até a posição inical configurada&lt;br /&gt;    $game_player.moveto(@mapa_extras_x , @mapa_extras_y)&lt;br /&gt;    # Atualizar Jogador&lt;br /&gt;    $game_player.refresh&lt;br /&gt;    # Rodar, de acordo com o mapa, a BGM e a BGS&lt;br /&gt;    $game_map.autoplay&lt;br /&gt;    # Atualizar mapa (executar processos paralelos)&lt;br /&gt;    $game_map.update&lt;br /&gt;    # Mudar para a tela do mapa&lt;br /&gt;    $scene = Scene_Map.new&lt;br /&gt;    @zoom_effect = false&lt;br /&gt;    end&lt;br /&gt;end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Comando: Creditos&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def command_creditos&lt;br /&gt;    # Se Creditos estiver desabilitado&lt;br /&gt;    unless $credits_enabled&lt;br /&gt;      # Reproduzir SE de erro (definida na linha abaixo, e não no database)&lt;br /&gt;      Audio.se_play("Audio/SE/" + "138-Darkness01", 100, 100)&lt;br /&gt;      return&lt;br /&gt;    end&lt;br /&gt;    if @a == false&lt;br /&gt;    # Reproduzir SE de OK (definida na linha abaixo, e não no database)&lt;br /&gt;    Audio.se_play("Audio/SE/" + "034-Switch03", 100, 100)&lt;br /&gt;    # Parar BGM&lt;br /&gt;    Audio.bgm_stop&lt;br /&gt;    @zoom_effect = true&lt;br /&gt;    @enable_cursor = false&lt;br /&gt;    @credito_conf = true&lt;br /&gt;    end&lt;br /&gt;    if @a == true&lt;br /&gt;    # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo&lt;br /&gt;    Graphics.frame_count = 0&lt;br /&gt;    # Criar cada tipo de objetos do jogo&lt;br /&gt;    $game_temp          = Game_Temp.new&lt;br /&gt;    $game_system        = Game_System.new&lt;br /&gt;    $game_switches      = Game_Switches.new&lt;br /&gt;    $game_variables     = Game_Variables.new&lt;br /&gt;    $game_self_switches = Game_SelfSwitches.new&lt;br /&gt;    $game_screen        = Game_Screen.new&lt;br /&gt;    $game_actors        = Game_Actors.new&lt;br /&gt;    $game_party         = Game_Party.new&lt;br /&gt;    $game_troop         = Game_Troop.new&lt;br /&gt;    $game_map           = Game_Map.new&lt;br /&gt;    $game_player        = Game_Player.new&lt;br /&gt;    # Configurar Grupo Inicial&lt;br /&gt;    $game_party.setup_starting_members&lt;br /&gt;    # Configurar posição inicial no mapa&lt;br /&gt;    $game_map.setup(@mapa_creditos)&lt;br /&gt;    # Aqui o Jogador é movido até a posição inical configurada&lt;br /&gt;    $game_player.moveto(@mapa_creditos_x , @mapa_creditos_y)&lt;br /&gt;    # Atualizar Jogador&lt;br /&gt;    $game_player.refresh&lt;br /&gt;    # Rodar, de acordo com o mapa, a BGM e a BGS&lt;br /&gt;    $game_map.autoplay&lt;br /&gt;    # Atualizar mapa (executar processos paralelos)&lt;br /&gt;    $game_map.update&lt;br /&gt;    # Mudar para a tela do mapa&lt;br /&gt;    $scene = Scene_Map.new&lt;br /&gt;    @zoom_effect = false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Comando: Sair&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def command_shutdown&lt;br /&gt;    if @a == false&lt;br /&gt;    # Reproduzir SE de OK (definida na linha abaixo, e não no database)&lt;br /&gt;    Audio.se_play("Audio/SE/" + "034-Switch03", 100, 100)&lt;br /&gt;    @zoom_effect = true&lt;br /&gt;    @enable_cursor = false&lt;br /&gt;    @sair_conf = true&lt;br /&gt;    end&lt;br /&gt;    if @a == true&lt;br /&gt;    # Diminuir o volume de BGM, BGS e ME&lt;br /&gt;    Audio.bgm_fade(800)&lt;br /&gt;    Audio.bgs_fade(800)&lt;br /&gt;    Audio.me_fade(800)&lt;br /&gt;    # Sair&lt;br /&gt;    $scene = nil&lt;br /&gt;    @zoom_effect = false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Teste de Batalha&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def battle_test&lt;br /&gt;    # Carregar Banco de Dados para o Teste de Batalha&lt;br /&gt;    $data_actors        = load_data("Data/BT_Actors.rxdata")&lt;br /&gt;    $data_classes       = load_data("Data/BT_Classes.rxdata")&lt;br /&gt;    $data_skills        = load_data("Data/BT_Skills.rxdata")&lt;br /&gt;    $data_items         = load_data("Data/BT_Items.rxdata")&lt;br /&gt;    $data_weapons       = load_data("Data/BT_Weapons.rxdata")&lt;br /&gt;    $data_armors        = load_data("Data/BT_Armors.rxdata")&lt;br /&gt;    $data_enemies       = load_data("Data/BT_Enemies.rxdata")&lt;br /&gt;    $data_troops        = load_data("Data/BT_Troops.rxdata")&lt;br /&gt;    $data_states        = load_data("Data/BT_States.rxdata")&lt;br /&gt;    $data_animations    = load_data("Data/BT_Animations.rxdata")&lt;br /&gt;    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")&lt;br /&gt;    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")&lt;br /&gt;    $data_system        = load_data("Data/BT_System.rxdata")&lt;br /&gt;    # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo&lt;br /&gt;    Graphics.frame_count = 0&lt;br /&gt;    # Criar cada tipo de objetos do jogo&lt;br /&gt;    $game_temp          = Game_Temp.new&lt;br /&gt;    $game_system        = Game_System.new&lt;br /&gt;    $game_switches      = Game_Switches.new&lt;br /&gt;    $game_variables     = Game_Variables.new&lt;br /&gt;    $game_self_switches = Game_SelfSwitches.new&lt;br /&gt;    $game_screen        = Game_Screen.new&lt;br /&gt;    $game_actors        = Game_Actors.new&lt;br /&gt;    $game_party         = Game_Party.new&lt;br /&gt;    $game_troop         = Game_Troop.new&lt;br /&gt;    $game_map           = Game_Map.new&lt;br /&gt;    $game_player        = Game_Player.new&lt;br /&gt;    # Configurar Grupo para o Teste de Batalha&lt;br /&gt;    $game_party.setup_battle_test_members&lt;br /&gt;    # Definir o ID do Grupo de Inimigos, a possibilidade de fuga e o Fundo de&lt;br /&gt;    # Batalha&lt;br /&gt;    $game_temp.battle_troop_id = $data_system.test_troop_id&lt;br /&gt;    $game_temp.battle_can_escape = true&lt;br /&gt;    $game_map.battleback_name = $data_system.battleback_name&lt;br /&gt;    # Reproduzri SE de início de batalha&lt;br /&gt;    $game_system.se_play($data_system.battle_start_se)&lt;br /&gt;    # Reproduzir BGM de batalha&lt;br /&gt;    $game_system.bgm_play($game_system.battle_bgm)&lt;br /&gt;    # Mudar para a tela de batalha&lt;br /&gt;    $scene = Scene_Battle.new&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;&lt;br /&gt;#===========================================&lt;br /&gt;# Scene_Save e Scene_Load (editado)&lt;br /&gt;#-------------------------------------------&lt;br /&gt;# edição por: zecomeia&lt;br /&gt;# 13/04/2009&lt;br /&gt;# agradecimentos: br_lemes&lt;br /&gt;#-------------------------------------------&lt;br /&gt;# Comentario:este é um script bem especifico&lt;br /&gt;# portanto tendo mais utilidade para estudo&lt;br /&gt;# ou simplesmente para utilizar o menu que&lt;br /&gt;# o acompanha.&lt;br /&gt;#-------------------------------------------&lt;br /&gt;# descrição: Adicionado duas variaveis&lt;br /&gt;#globais ao arquivo de Save, com o objetivo&lt;br /&gt;#de utiliza-las para habilitar Extras no&lt;br /&gt;#jogo.&lt;br /&gt;#===========================================&lt;br /&gt;=begin&lt;br /&gt;Variaveis adicionadas ao save&lt;br /&gt;$extras_enabled   &lt;br /&gt;$credits_enabled&lt;br /&gt;&lt;br /&gt;Os metodos acresentados são os seguintes, e com suas respectivas&lt;br /&gt;funções:&lt;br /&gt;&lt;br /&gt;class Scene_Save&lt;br /&gt;&lt;br /&gt;save_extras &lt;br /&gt;#este metodo ao ser chamado pela classe Scene_Save, grava as&lt;br /&gt;informações que já são salvadas normalmentes pelo save original&lt;br /&gt;e mais a informação das duas variaveis globais citadas, lembrando&lt;br /&gt;que usando este metodo será salvado o arquivo por cima do ultimo&lt;br /&gt;arquivo escolhido(caso não tenha escolhido nenhum salvará por cima&lt;br /&gt;primeiro).&lt;br /&gt;&lt;br /&gt;write_save_data(file)&lt;br /&gt;#na verdade esse metodo ja existe na classe de Scene_Save, mas&lt;br /&gt;foi acrescentada a informação das duas variaveis globais citadas&lt;br /&gt;&lt;br /&gt;class Scene_Load&lt;br /&gt;&lt;br /&gt;read_extras_data(file)&lt;br /&gt;#este metodo foi feito apenas para não necessitar editar o metodo&lt;br /&gt;read_save_data(file) original, isso para manter o metodo original&lt;br /&gt;da classe Scene_Load com suas caracteristicas intaquitas dando&lt;br /&gt;a possibilidade do usuario escolher quando quer que seja lidas as&lt;br /&gt;informações das duas variaveis globais adicionais ao inves de ser&lt;br /&gt;resgatado o valor de ambas a todo comando de Load.&lt;br /&gt; &lt;br /&gt;=end&lt;br /&gt;&lt;br /&gt;class Scene_Save &lt; Scene_File&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Gravando&lt;br /&gt;  #     file : Gravando um arquivo&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  alias copy_write_save_data write_save_data&lt;br /&gt;  def write_save_data(file)&lt;br /&gt;    copy_write_save_data(file)&lt;br /&gt;    Marshal.dump($extras_enabled, file)&lt;br /&gt;    Marshal.dump($credits_enabled, file)&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;  def save_extras()&lt;br /&gt;    @file_index = $game_temp.last_file_index&lt;br /&gt;    filename = make_filename(@file_index)&lt;br /&gt;    file = File.open(filename, "wb")&lt;br /&gt;    write_save_data(file)&lt;br /&gt;    file.close&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Scene_Load &lt; Scene_File&lt;br /&gt; &lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt;  # Ler Dados do Arquivo&lt;br /&gt;  #     file : arquivo que será lido (aberto)&lt;br /&gt;  #--------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;  def read_extras_data(file)&lt;br /&gt;    read_save_data(file)&lt;br /&gt;    $extras_enabled = Marshal.load(file)&lt;br /&gt;    $credits_enabled = Marshal.load(file)&lt;br /&gt;  end&lt;br /&gt; &lt;br /&gt;end&lt;br /&gt;&lt;/textarea&gt;&lt;/pre&gt;&lt;/form&gt;&lt;br /&gt;&lt;span class="bbc_size" style="font-size: 1em;"&gt;&lt;strong&gt;&lt;span class="bbc_u"&gt;Créditos e Agradecimentos&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li&gt;&lt;em&gt;Feito por zecomeia&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Desenhado por aero&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Ajuda indireta de br_lemes&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5363999679499377237-714610827947582986?l=www.colmeia-do-ze.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.colmeia-do-ze.co.cc/2009/12/horrormenu-20.html</link><author>noreply@blogger.com (zecomeia)</author><thr:total>0</thr:total></item></channel></rss>
