O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Monster Galery Conquest - Beta v1.5 + Monstros ilimitados

Iniciado por miguel8884, 06/07/2014 às 12:26

06/07/2014 às 12:26 Última edição: 06/07/2014 às 17:31 por miguel8884

Compatibilidade: Alta
Lag gerado: Baixo ou nulo
Configuração: Simples
Autor: miguel8884

[box class=titlebg]
O que é?[/box]

O script permite a criação de uma window que mostra monstros conquistados ativados no script por uma switch, onde mostra o nome o HP e o gráfico do mosntro.

[box class=titlebg]
Como usar[/box]

Istruções no script.

Template:

Monster[0] = [
  ID = 1,
  Graphic = "Angel",
  Img_X = 0,
  Img_Y = 10,
  Monster_resize = true,
  Monster_size_width = 100,
  Monster_size_height = 100,
  HP_text_position_y = 100,
  Name_text_position_y = 80,
  Switch = 1
  ]


[box class=titlebg]
Log[/box]

Log

  • 06/07/2014 - Tópico criado script lançado
  • 06/07/2014 - Adição no menu opcional
[close]

[box class=titlebg]
Imagens[/box]

Imagem bem simples, mas como pode-se adicionar infinitos monstros, coloquei só um ali!

Spoiler
[close]

[box class=titlebg]
Adicionais[/box]

O script está na versão Beta, por isso está sujeito a modificações, respondam a enquete e digam o que querem no script a mais na versão 2.0 definitiva!

[box class=titlebg]
Script[/box]

#===============================================================================
# ** Monster Galery Conquest - Beta v1.5
# Autor: miguel8884
#-------------------------------------------------------------------------------
# Data de lançamento: 06/07/2014
# Versão: Beta 1.5
#-------------------------------------------------------------------------------
# Descrição:
#
# O script permite a criação de uma window que mostra monstros conquistados
# ativados no script por uma switch, onde mostra o nome o HP e o gráfico do
# mosntro.
#-------------------------------------------------------------------------------
# Características:
# * Bastante personalizável!
# * Fácil configuração!
# * Prático e com código otimizado!
# * Sem lag!
# * Totalmente explicado!
#-------------------------------------------------------------------------------
# Log:
# v1.5 Beta
#   06/07/2014 - Script lançado!
#   06/07/2014 - Adição no menu opcional.
#===============================================================================
module Galery_Config
  #=============================================================================
  # Definição de array para Monster - Não Mexa
  #=============================================================================
  Monster = Array.new
  #=============================================================================
  # Configurações
  #=============================================================================
  Input_Key = :X # Tecla que será apertada para entrar e sair da scene #
  Vocab = "Galeria" # Vocabulário no menu caso seja adicionado #
  Add_on_menu = false # Será adicionado no menu? #
  Map_Access = false # Será adicionado e acessível pelo mapa? #
  #=============================================================================
  # Instruções
  #-----------------------------------------------------------------------------
  # Criando um monstro novo:
  #
  # Apenas copie o template pulando uma linha do último monstro criado.
  #-----------------------------------------------------------------------------
  # Explicações:
  # 
  # Quando já tiver colocado seu template, na primeira linha, onde estiver
  # Monster[id], substitua "id" pelo número do monstro que está criando,
  # começando pelo 0.
  #
  # Exemplo:
  #
  # Criei 4 monstros, logo o primeiro será, Monster[0], o segundo será, Monster[1],
  # o terceiro será, Monster[2] e o quarto será Monster[3], e assim infinitamente!
  #
  # ID na segunda linha, é o id do monstro no banco de dados, serve para o script
  # pegar as informações que seram mostradas no sistema.
  # 
  # Graphic na terceira linha é  nome do gráfico do monstro na pasta Battlers.
  #
  # Img_X e Img_Y são a posição X e Y do monstro dentro da tela.
  #
  # Monster_resize na quinta linha é um boolean, se estiver "true", as duas opções
  # abaixo serviram para colocar exatamente o tamanho em pixels da imagem, logo
  # se a opação estiver false, as duas linhas abaixo não faram nada.
  #
  # HP_text_position_y e Name_text_position_y são a posição y do Nome o do HP
  # do monstro, a posição x é ajustada automaticamente para você (:
  #
  # A última opção Switch é a switch que deverá estar ativada para o monstro
  # aparecer.
  #=============================================================================
  Monster[0] = [
  ID = 1,
  Graphic = "Angel",
  Img_X = 0,
  Img_Y = 10,
  Monster_resize = true,
  Monster_size_width = 100,
  Monster_size_height = 100,
  HP_text_position_y = 100,
  Name_text_position_y = 80,
  Switch = 1
  ]
  # cole o template do monstro uma linha abaixo daqui #
  #=============================================================================
  # Fim das configurações
  #=============================================================================
end
#===============================================================================
# Classe sprite modificada para redimensionar o gráfico por pixels
#===============================================================================
class Sprite
  def resize(width,height)
    self.zoom_x = width/self.width.to_f
    self.zoom_y = height/self.height.to_f
  end
end
#===============================================================================
# Classe principal que cria a window e todo o conteúdo
#===============================================================================
class Window_GaleryMonster < Window_Base
  include Galery_Config
  #=============================================================================
  # Inicialização de variáveis e execução do metodo de criar conteúdo
  #=============================================================================
  def initialize
    super(0,0,544,416)
    @monster = []
    @feature = []
    @text = []
    @switch = []
    @hp = []
    refresh
  end
  #=============================================================================
  # Criação do conteúdo executando todos os metodos de criação
  #=============================================================================
  def refresh
    create_monster_features
    check_switch
    create_monster
  end
  #=============================================================================
  # Metodo de criação dos gráficos no script
  #=============================================================================
  def create_monster
    size = Monster.size
    p size
    for m in 0...size
      p @switch[m]
      if @switch[m] == true
        @monster.push(Sprite.new)
        @monster[m].bitmap = Cache.battler(Monster[m][1],0)
        @monster[m].x = Monster[m][2]
        @monster[m].y = Monster[m][3]
        @monster[m].z = 1000
        if Monster[m][4] == true
          @monster[m].resize(Monster[m][5],Monster[m][6])
        end
        @text.push(Sprite.new)
        @text[m].bitmap = Bitmap.new(100,55)
        @text[m].bitmap.draw_text(0,0,100,55,@feature[m].name,1)
        @text[m].x = Monster[m][2]
        @text[m].y = Monster[m][8]
        @text[m].z = 9999
        @hp.push(Sprite.new)
        @hp[m].bitmap = Bitmap.new(100,55)
        @hp[m].bitmap.draw_text(0,0,100,55,"HP: #{@feature[m].hp}",1)
        @hp[m].x = Monster[m][2]
        @hp[m].y = Monster[m][7]
        @hp[m].z = 1000
      end
    end
  end
  #=============================================================================
  # Metodo que "pusha" as características do monstro para a variável @feature
  #=============================================================================
  def create_monster_features
    size = Monster.size
    for id in 0...size
      @id = Monster[id][0]
      @feature.push(Game_Enemy.new(0,@id))
    end
  end
  #=============================================================================
  # Metodo que pega switches do jogo para a switch do script
  #=============================================================================
  def check_switch
    size = Monster.size
    for s in 0...size
      @s = Monster[s][9]
      @switch.push($game_switches[@s])
    end
  end
end
#===============================================================================
# Classe intermediária que cria a scene 
#===============================================================================
class Scene_Monster < Scene_Base
  #=============================================================================
  # Metodo que incializa a classe e cria a window na scene
  #=============================================================================
  def start
    super
    @monster_galery = Window_GaleryMonster.new
  end
  #=============================================================================
  # Atualiza toda hora para ver se a tecla de sair foi apertada
  #=============================================================================
  def update
    super
    if Galery_Config::Map_Access == true
      if Input.trigger?(Galery_Config::Input_Key)
        SceneManager.goto(Scene_Map)
      end
    end
    if Galery_Config::Add_on_menu
      if Input.trigger?(:B)
        return_scene
      end
    end
  end
  #=============================================================================
  # Metodo de finalização da scene, onde apaga a window
  #=============================================================================
  def terminate
    super
    @monster_galery.dispose
  end
end
#===============================================================================
# Classe Scene Map modificada para verificar se uma tecla foi apertada para chamar a scene
#===============================================================================
class Scene_Map < Scene_Base
  alias gst_update update
  def update
    gst_update
    if Galery_Config::Map_Access == true
      if Input.trigger?(Galery_Config::Input_Key)
        SceneManager.call(Scene_Monster)
      end
    end
  end
end
#===============================================================================
# Classe que gerencia a scene do menu modificada para dar o output do novo comando
#===============================================================================
class Scene_Menu < Scene_MenuBase
  alias gst_monster create_command_window
  def create_command_window
    gst_monster
    if Galery_Config::Add_on_menu
      @command_window.set_handler(:monster, method(:monster_command))
    end
  end
  def monster_command
    SceneManager.call(Scene_Monster)
  end
end
#===============================================================================
# Classe da window do menu modificada para adicionar o comando do monstro
#===============================================================================
class Window_MenuCommand < Window_Command
  alias gst_monster_window add_main_commands
  #=============================================================================
  # Metodo que define os comandos do main modificado para adicionar o comando
  #=============================================================================
  def add_main_commands
    if Galery_Config::Add_on_menu
      add_command(Galery_Config::Vocab,:monster)
    end
    gst_monster_window
  end
end
#===============================================================================
# Fim do script
#===============================================================================

     Gostei, apesar de ser bem simples, mas é bem útil. Seria legal mais informaçõs sobre o monstro, tipo possibilidade de colocar onde ele aparece, ataque etc. Mas eu gostei muito do seu script, ótimo trabalho.

See Ya!
Mind: Até onde sua mente vai?

Hum, vlw cara, sua opinião ajuda bastante! Vou ver se coloco mais informações sobre o monstro mesmo!




Sinceramente, o script tá demais!!! :XD:
Seria ótimo se você adicionasse isso:


-fraquezas
-Imunidades
-habilidades
:ok:

Opa vlw aí! Não sei, estou pensando no que vou colocar a mais, mas estou tendo uma ideia que acho que vai resolver, enfim na versão final verão!