Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - elmangakac

1
Script Troubleshooting / Help with teleport
September 06, 2016, 12:47:38 am
Hello friends. I do not know if I'm putting this in the right place, but worth a try, since I am having a problem that threatens to stop my project.

From a day ago I've been having a problem with teleportation events. When I set coordinates on the map to which the character must appear after activate a teleportation event, initially the character reaches the right place in the right way ...

The problem starts when I compile the entire game from the TEST GAME RPGMAKERXP button, I close the project and open it again. When I do, many of this coordinates have moved one tile up. This makes the character gets stuck on the door and not outside it.

For example, when leaving a house, stay in the same outer door without allowing their movement.

I want the character teleports right here ...




But when I compile the game and restart RPG MAKER XP appears teleporting here ...



Someone could solve this problem? Thank you very much for the great help.
2
Script Requests / This VX Script to XP????
April 11, 2011, 01:59:28 am
Hello guys... Anyonw knows how can convert this VX script in XP??


#===============================================================================
#  Script Simple de Día y Noche
#
#  Versión : 0.3.2 - 28.03.08
#  Creado por: hellMinor
#  Descripción: Un simple script que cambia el tono de la pantalla para emular
#               el día o la noche. Se basa en los pasos o la hora del sistema.
#
#===============================================================================

#===============================================================================
# Map-Detection F.A.Q.
#===============================================================================
# Si tienes un mapa interior en el que no se muestran efectos de día y noche
# simplemente pon [int] al comienzo del nombre del mapa.
# Al entrar a este tipo de mapas, el script cambiará inmediatamente el
# tono de pantalla a $daytone y todos los cambios hechos por el scrip serán
# ignorados.
#
# Algunos mapas interiores necesitan ser oscuros,como cuevas. Sólo pon [dint]
# al comienzo del nombre dle mapa para marcarlo como mapa interior oscuro.
# El script cambiará el tono a $nighttone en vez de $daytone
#
# Mientras, el tiempo sigue pasando en el mapa interior, y cuando salgas del
# interior se cambiará al tono de tiempo actual del juego.
#===============================================================================
# Get-Time F.A.Q.
#===============================================================================
# Si necesitas obtener el tiempo actual, puedes usar esto en Llamar Script:
# para obtener el tiempo actual:
# $game_variables[0001] = $dayandnight.getTime
# para obtener la hora actual:
# $game_variables[0001] = $dayandnight.getHour
# o para obtener el minuto actual:
# $game_variables[0001] = $dayandnight.getMinute
#
# $game_variables[0001] será la primera variable en la base de datos.
# Para usar otra variable, cambia el 0001 a algo >5000
#
#===============================================================================

class DayAndNight < Game_Screen
#===============================================================================
# Configuración Principal
#------------------------------------------------------------------------------
  $active = true        # Activa/Desactiva el script
  $timesystem = 1       # Determina qué tipo de sistema está activo
                        # 0 = Sistema por Pasos
                        # 1 = Sistema por Hora
  $fadingtime = 4       # Velocidad a la que cambia el tono (en segundos)
#-------------------------------------------------------------------------------
  $dusktone = Tone.new(-68, -51, -9, 25)      # Tono al Anochecer
  $nighttone = Tone.new(-136, -102, -17, 51)  # Tono por la Noche
  $dawntone = Tone.new(-20, -51, -68, 0)      # Tono al Amanecer
  $daytone = Tone.new(0, 0, 0, 0)             # Tono por el Día
#-------------------------------------------------------------------------------
# Timesystem config
#-------------------------------------------------------------------------------
$starting_time = "night" # Determina la fase de inicio
                          # "day" para día ,"dusk" para anochecer
                          # "dawn" para amanecer y "night" para noche.
                          # Notas: Por defecto es "night".
                          # ¡¡Cualquier otro cambiará TODOS los cálculos
                          # hechos con Graphics.frame_counter!!
                         
  $divider = 1            # Decide la velocidad a la que corre l Sistema Temporal
                          # Ej: 2 = Doble velocidad (30 segundos = 1 hora)
                          # Ej: 0,5 = Mitad de Velocidad (2 minutos = 1 hora)
  $dusktime =   7         # Cambia al anochecer en $dusktime
  $daytime =    8         # Cambia al día en $daytime
  $dawntime =   19        # Cambia al amanecer en $dawntime
  $nighttime =  20        # Cambia a la noche en $nighttime
#------------------------------------------------------------------------------
# Configuración de los Pasos
#------------------------------------------------------------------------------
  $count = 0            # Cuenta cuántos pasos hay entre un periodo
  $maxsteps = 200       # Cuántos pasos hay entre el cambio día/noche
#-------------------------------------------------------------------------------
# Comprobaciones
#------------------------------------------------------------------------------
  $day = true           # Comprueba si es de día
  $dusk = false         # Comprueba si anochece
  $dawn = false         # Comprueba si amanece
  $night = false        # Comprueba si es de noche
#-------------------------------------------------------------------------------
def change?
   if $count >= $maxsteps
     if $day
       doDusk
     end
     if $dusk
       doNight
     end
     if $night
       doDawn
     end
     if $dawn
       doDay
     end
   end
end
#-------------------------------------------------------------------------------
def doNight
   if $dayandnight.exterior?
     $game_map.screen.start_tone_change($nighttone,$fadingtime*60)
   end
   $count = 0
   $day = false
   $dusk = false
   $dawn = false
   $night = true
end
#-------------------------------------------------------------------------------
def doDay
   if $dayandnight.exterior?
     $game_map.screen.start_tone_change($daytone,$fadingtime*60)
   end
   $count = 0
   $day = true
   $night = false
   $dawn = false
   $dusk = false
end
#-------------------------------------------------------------------------------
def doDawn
   if $dayandnight.exterior?
     $game_map.screen.start_tone_change($dawntone,$fadingtime*60)
   end
   $count = 0
   $day = false
   $night = false
   $dusk = false
   $dawn = true
end
#-------------------------------------------------------------------------------
def doDusk
   if $dayandnight.exterior?
     $game_map.screen.start_tone_change($dusktone,$fadingtime*60)
   end
   $count = 0
   $day = false
   $night = false
   $dusk = true
   $dawn = false
end
#-------------------------------------------------------------------------------
def updateclock
   clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
   hour = clocktime / 60 % 24
   minutes = clocktime % 60
   if hour == $dawntime && minutes == 0
     doDawn
   end
   if hour == $daytime && minutes == 0
     doDay
   end
   if hour == $dusktime && minutes == 0
     doDusk
   end
   if hour == $nighttime && minutes == 0
     doNight
   end
end
#-------------------------------------------------------------------------------
def interior?
   if($game_map.name.to_s.index("[int]") != nil)
     return true
   end
end
#-------------------------------------------------------------------------------
def exterior?
   if($game_map.name.to_s.index("[int]") == nil &&
     $game_map.name.to_s.index("[dint]") == nil)
     return true
   end
end
#------------------------------------------------------------------------------- 
def dark_interior?
   if($game_map.name.to_s.index("[dint]") != nil)
     return true
   end
end
#-------------------------------------------------------------------------------
def get_state_tone
   if $dawn
     return $dawntone
   end
   if $day
     return $daytone
   end
   if $dusk
     return $dusktone
   end
   if $night
     return $nighttone
   end
end
#-------------------------------------------------------------------------------
def getTime
   clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
   hour = clocktime / 60 % 24
   minutes = clocktime % 60
   return hour.to_s+":"+minutes.to_s
end
#------------------------------------------------------------------------------- 
def getHour
   clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
   hour = clocktime / 60 % 24
   return hour
end
#------------------------------------------------------------------------------- 
def getMinute
   clocktime = Graphics.frame_count / (Graphics.frame_rate/$divider)
   minutes = clocktime % 60
   return minutes
end

end
#===============================================================================

class Game_Character
#===============================================================================

def increase_steps
   @stop_count = 0
   if $active && $timesystem == 0
     $count += 1
     $dayandnight = DayAndNight.new
     $dayandnight.change?
   end
   update_bush_depth
end

end
#===============================================================================

class Game_Map
#===============================================================================

def initialize
   @screen = Game_Screen.new
   if $active && $timesystem == 1
     $dayandnight = DayAndNight.new
   end
   @interpreter = Game_Interpreter.new(0, true)
   @map_id = 0
   @display_x = 0
   @display_y = 0
   create_vehicles
end
#-------------------------------------------------------------------------------
def update
   refresh if $game_map.need_refresh
   update_scroll
   update_events
   update_vehicles
   update_parallax
   if $active && $timesystem == 1
     $dayandnight.updateclock
   end
   @screen.update
end

def name
   $data_mapinfos[@map_id]
end
   
end
#===============================================================================

class Scene_Map
#===============================================================================

def fadein(duration)
   Graphics.transition(0)
   if $active && $dayandnight.interior?
     $game_map.screen.start_tone_change($daytone,1)
   else if $active && $dayandnight.dark_interior?
     $game_map.screen.start_tone_change($nighttone,1)
   else if $active && $dayandnight.exterior?
       $game_map.screen.start_tone_change($dayandnight.get_state_tone,1)
     end
     end
   end
   for i in 0..duration-1
     Graphics.brightness = 255 * i / duration
     update_basic
   end
   Graphics.brightness = 255
end

end
#===============================================================================

class Scene_Title
#===============================================================================

alias load_database_additions load_database
def load_database
   load_database_additions
   $data_mapinfos      = load_data("Data/MapInfos.rvdata")
   for key in $data_mapinfos.keys
     $data_mapinfos[key] = $data_mapinfos[key].name
   end
end

alias command_new_game_additions command_new_game
def command_new_game
   command_new_game_additions
   Graphics.frame_count += 25200/$divider if $starting_time == "dawn"
   Graphics.frame_count += 28800/$divider if $starting_time == "day"
   Graphics.frame_count += 68400/$divider if $starting_time == "dusk"
end

end

#===============================================================================
# Game-Time-Hotfix
#===============================================================================

#===============================================================================

class Window_SaveFile < Window_Base
#===============================================================================

def load_gamedata
   @time_stamp = Time.at(0)
   @file_exist = FileTest.exist?(@filename)
   if @file_exist
     file = File.open(@filename, "r")
     @time_stamp = file.mtime
     begin
       @characters     = Marshal.load(file)
       @frame_count    = Marshal.load(file)
       @last_bgm       = Marshal.load(file)
       @last_bgs       = Marshal.load(file)
       @game_system    = Marshal.load(file)
       @game_message   = Marshal.load(file)
       @game_switches  = Marshal.load(file)
       @game_variables = Marshal.load(file)
       case $starting_time
         when "night"
           @total_sec = @frame_count / Graphics.frame_rate
         when "dawn"
           @total_sec = @frame_count-(25200/$divider) / Graphics.frame_rate
         when "day"
           @total_sec = @frame_count-(28800/$divider) / Graphics.frame_rate
         when "dusk"
           @total_sec = @frame_count-(68400/$divider) / Graphics.frame_rate
       end
     rescue
       @file_exist = false
     ensure
       file.close
     end
   end
end

end

3
Hello people...

Well this script its in spanish..... the author is Falcao... its a script that creates a virtual clock and let you change into morning, day, sunset and night, with some sounds and with a picture of light rays...

Like ---


Its looks like very simple... Let you set the maps id where the light ray image dont appear.... well im going to  translate a little the script comments for you...


#=======================================================================#
#=======================================================================#
#  #*****************#          ADVANCED_TIME_FALMT                     #
#  *  By Falcao y    *          Noche, dia, atardecer y sol real script #
#  *  mondo_trasho   *          Permite diferentes efectos segun        #     
#  #*****************#          transcurra un reloj virtual.            #
#         RMXP                          V 1.1                           #
# makerpalace.onlinegoo.com                                             #
#=======================================================================#

#------------------------------------------------------------------------
# * Instructions
# Put above Main, save the image called "Luz" in your picture folder
# , with Q button the counter dissapear
#-----------------------------------------------------------------------

module FALMT_time

#------------------------------------------------------------------------
# Configuration
#--------------------

# Star Year
ANOS = 2000

# Night hour
HoraOscurece = 19     

# Morning Hour
HoraAmanece = 1

# Sunset Hour
HoraOcaso = 14

# ID to enable counter (ON = Disable, OFF = Enable)
WindowDisable = 50

# ID of maps where the light image dissapear.
# Example: LuzDisable = [2,4,7,9]

LuzDisable = [ ]

#----------------------
# * Sounds & Image
#----------------------

# Morning Sound
SonidoAmanecer = "075-Small02"

# Night Sound
SonidoAnochecer = "076-Small03"

# Image in Pictures
Picture = "Luz"

WindowBoton = Input::L

#-----------------------------------------------------------------------------
# Day, Month, Year config (Optional)
#---

DIAS = 7 # Days at week
DIA_1 = "Domingo"
DIA_2 = "Lunes"
DIA_3 = "Martes"
DIA_4 = "Miércoles"
DIA_5 = "Jueves"
DIA_6 = "Viernes"
DIA_7 = "Sábado"

#
#----
# MES
#----
MESES = 12 # Month at year
MES_1 = "Enero"
MES_2 = "Febrero"
MES_3 = "Marzo"
MES_4 = "Abril"
MES_5 = "Mayo"
MES_6 = "Junio"
MES_7 = "Julio"
MES_8 = "Agosto"
MES_9 = "Septiembre"
MES_10 = "Octubre"
MES_11 = "Noviembre"
MES_12 = "Diciembre"

#----
#
#----.
DIAS_POR_MES = 30 # Days in a month
HORAS = 24 # Hours in a Day
MINUTOS = 2 # Minutes in a Hour
SEGUNDOS = 5 # Seconds in a Minute

end

class Window_AdvancedMapTime < Window_Base

  def initialize
    super(505, 0, 135, 105)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 100
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    $hora = @total_sec / FALMT_time::SEGUNDOS / FALMT_time::MINUTOS % FALMT_time::HORAS
    $minuto = @total_sec / FALMT_time::SEGUNDOS % FALMT_time::MINUTOS
    $segundo = @total_sec % FALMT_time::SEGUNDOS

# CAMBIOS DE DÍA SEGÚN LAS HORAS PASADAS (contador automático):
#-----------------
if $hora == 0 and $hora_cambio == nil
$dia_cantidad = FALMT_time::DIAS
if $dia_numero == nil or $dia_numero == $dia_cantidad
$dia_numero = 1
if $dias_por_mes == nil
  $dias_por_mes = 1
else
$dias_por_mes +=1
end
else
$dia_numero+=1
$dias_por_mes +=1
end
#MODIFICACIÓN DE LOS DÍAS (cantidad 7 por defecto):
case $dia_numero
when 1 # Cuando es el día número 1
$dia = FALMT_time::DIA_1 # Es Domingo
when 2 # Día número 2
$dia = FALMT_time::DIA_2 # Es lunes
when 3 # Etcétera...
$dia = FALMT_time::DIA_3
when 4
$dia = FALMT_time::DIA_4
when 5
$dia = FALMT_time::DIA_5
when 6
$dia = FALMT_time::DIA_6
when 7
$dia = FALMT_time::DIA_7
end
end

if $hora == 0
$hora_cambio = false
else $hora != 0
$hora_cambio = nil
end

#-----------------
# CAMBIOS DE MES SEGÚN LOS DÍAS PASADOS (contador automático):
#-----------------
if $mes_cambio == nil
$meses_cantidad = FALMT_time::MESES
if $mes_numero == nil or $mes_numero == $meses_cantidad
$mes_numero = 1
if $ano == nil
$ano = FALMT_time::ANOS
else
$ano += 1
end
else
$mes_numero+=1
end
#MODIFICACIÓN DE LOS MESES (cantidad 12 por defecto):
case $mes_numero
when 1 # Cuando es el día número 1
$mes = FALMT_time::MES_1 # Es Domingo
when 2 # Día número 2
$mes = FALMT_time::MES_2 # Es lunes
when 3 # Etcétera...
$mes = FALMT_time::MES_3
when 4
$mes = FALMT_time::MES_4
when 5
$mes = FALMT_time::MES_5
when 6
$mes = FALMT_time::MES_6
when 7
$mes = FALMT_time::MES_7
when 8
$mes = FALMT_time::MES_8
when 9
$mes = FALMT_time::MES_9
when 10
$mes = FALMT_time::MES_10
when 11
$mes = FALMT_time::MES_11
when 12
$mes = FALMT_time::MES_12
end
end

$dias_pormes = FALMT_time::DIAS_POR_MES

if $mes_cambiando == true
$mes_cambio = false
$dias_por_mes = 1
end

if $dias_pormes != $dias_por_mes
$mes_cambio = false
$mes_cambiando = nil
else $dias_pormes == $dias_por_mes
if $mes_cambiando == nil
$mes_cambio = nil
$mes_cambiando = true
end
end

#-----------------

dia = ["Día: ",$dia]
mes = ["Mes: ",$mes]
ano = ["Año: ",$ano]
   
    hora_minuto_segundo = sprintf("%02d:%02d:%02d", $hora, $minuto, $segundo)
    self.contents.font.color = normal_color
    self.contents.font.size = 19
    self.contents.font.name = "Times New Roman"
    self.contents.draw_text(0, -9, 120, 32, dia.to_s,0)
    self.contents.draw_text(0, 10, 150, 32, mes.to_s,0)
    self.contents.draw_text(0, 29, 150, 32, ano.to_s,0)
    self.contents.draw_text(50, 50, 120, 32, hora_minuto_segundo)
  end

  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
    refresh
  end
    end
  end
 
class Game_System
  attr_accessor :opa
  attr_accessor :ocaso
  attr_accessor :fshow
  alias falcaoluz_initialize initialize
  def initialize
    falcaoluz_initialize
    @opa = 0
    @ocaso = 0
    @fshow = 0
  end
end

class Scene_Map
  include FALMT_time
  alias falcaotrasho_main main
  def main
    @AMT = Window_AdvancedMapTime.new
    if $game_system.fshow == 0
      @AMT.x = 505
      @AMT.y = -104
      $game_system.fshow = 1
    end
    if $game_switches[WindowDisable] == false
      @AMT.visible = true
    else
      @AMT.visible = false
    end
    #$game_screen.start_tone_change(Tone.new(-110, -110, -110, 0), 20)
    falcaotrasho_main
    @AMT.dispose
  end
  alias falcaotrasho_update update
  def update
    @AMT.refresh
    # Nuevo update
    if Input.trigger?(WindowBoton)
      if @AMT.y == -104
        $game_system.fshow = 1
      elsif @AMT.y == 0
         $game_system.fshow = 2
      end
    end
    if $game_system.fshow == 1
      @AMT.y += 2 if @AMT.y < 0
    elsif $game_system.fshow == 2
        @AMT.y -= 2 if @AMT.y > -104
    end
    if $game_switches[WindowDisable] == false
      @AMT.visible = true
    else
      @AMT.visible = false
    end
    if $hora >= HoraAmanece  and $hora <= HoraOscurece - 1
      command_amanece
    elsif $hora <= HoraAmanece or $hora >= HoraOscurece - 1
      command_oscurece
    end
    command_ocaso if $hora >= HoraOcaso and $hora <= HoraOscurece - 1
    falcaotrasho_update
  end
  # comando amanece
  def command_amanece
    if $game_system.opa < 75
      $game_system.opa += 1
      unless FALMT_time::LuzDisable.include?($game_map.map_id)
        $game_screen.start_tone_change(Tone.new(0, 0, 0, 0),200)
        $game_screen.pictures[50].show(Picture,0,0, 0,100,100,$game_system.opa,0)
      end
      Audio.se_play("Audio/Se/" + SonidoAmanecer) if $game_system.opa == 75
    end
  end
  #comando oscurece
  def command_oscurece
    if $game_system.opa > 0
      $game_system.opa -= 1
      unless FALMT_time::LuzDisable.include?($game_map.map_id)
        $game_screen.start_tone_change(Tone.new(-110, -110, -110, 0), 200)
        $game_screen.pictures[50].show(Picture,0,0,0,100,100, $game_system.opa, 0)
      else
        $game_screen.pictures[50].show(Picture,0 , 0, 0, 100, 100,0, 0)
      end
      Audio.se_play("Audio/Se/" + SonidoAnochecer) if $game_system.opa == 0
    end
  end
  #-comando ocaso
  def command_ocaso
    if $game_system.ocaso < 10
      $game_system.ocaso += 1
      $game_screen.start_tone_change(Tone.new(10, -17, -17, 0), 100)
      $game_system.ocaso = 0 if $game_system.ocaso == 10
    end
  end
  #------------
  # Housing system
  alias falcaotrasho_transfer_player transfer_player
  def transfer_player
    falcaotrasho_transfer_player
    if FALMT_time::LuzDisable.include?($game_map.map_id)
      $game_screen.pictures[50].erase
      $game_screen.start_tone_change(Tone.new(0, 0, 0, 0),10)
      ## si esta de dia
    elsif $hora >= HoraAmanece  and $hora <= HoraOscurece
      $game_screen.pictures[50].show(Picture,0,0,0,100,100, $game_system.opa, 0)
      if $hora >= HoraOcaso
        $game_screen.start_tone_change(Tone.new(0, -17, -17, 0), 10)
      end
    elsif $hora <= HoraAmanece  or $hora >= HoraOscurece
      $game_screen.start_tone_change(Tone.new(-110, -110, -110, 0), 10)
    end
  end
end

class Scene_Save 
  alias falcaotrasho_write_data write_save_data
  def write_save_data(file)
    falcaotrasho_write_data(file)
    Marshal.dump($hora, file)
    Marshal.dump($minuto, file)
    Marshal.dump($segundo, file)
    Marshal.dump($mes, file)
    Marshal.dump($dia, file)
  end
end

class Scene_Load
  alias falcaotrasho_read_data read_save_data
  def read_save_data(file)
    falcaotrasho_read_data(file)
    $hora    = Marshal.load(file)
    $minuto    = Marshal.load(file)
    $segundo    = Marshal.load(file)
    $mes    = Marshal.load(file)
    $dia    = Marshal.load(file)
  end
end



Heres a Demo (In Spanish)

http://www.4shared.com/file/122985152/a43eb762/NocheDia_atardecer_FalTras.html

QUESTIONS:

- Anyone knows how to edit this script to also disable the tint (in night & sunset) when you are inside a house with some kinf of switch or with the...

# ID of maps where the light image dissapear.
# Example: LuzDisable = [2,4,7,9]
LuzDisable = [ ]


O_O ????. Please help me.... This Day&Night script its the only that works good with my game...

THANKS TO ALL... AGAIN


4
RMXP Script Database / [XP] Clive's Hero Database
April 06, 2011, 03:04:41 am
Clive's Hero Database
Authors: SephirothSpawn
Version: 1.0
Type: Hero Database
Key Term: Misc System



Introduction

This script shows a full data of the actors of the game, and if the actors dont appear shows like a "unknow" one



Features


  • Setting Up Hero's Biography

  • Complete Details of Parameters and Equipment

  • Shows a Character Battler and Character Sprite

  • This Version dont requires SDK (Thanks to game_guy)




Screenshots





Demo

Just test it


Script


Spoiler: ShowHide
 

#==============================================================================
# Clive's Hero Database
#==============================================================================
# SephirothSpawn
# Version 1
# 22.02.06
#==============================================================================
# Instructions:
#   ~ Setting Up Hero's Bio
#         Find the line HERO_BIO = {
#         Below That, have a x=>[] for each actor in your database
#         Withing the array, have up to 3 lines of 'text'
#   ~ Calling the Scene
#         Use: $scene = Scene_Hero_DataBase.new
#==============================================================================
#==============================================================================
# ** Window_Clive_HeroStatus
#==============================================================================
class Window_Clive_HeroStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Hero Biography Constant
  #--------------------------------------------------------------------------
  HERO_BIO = {
    1=>["Here's a neat fact:", 'Arshes is the most used sprite in the rmxp community'],
    2=>['I thought Basil was something for cooking?'],
    3=>['I am thor!', 'Fear My Axe!'],
    4=>['Watch out fellas,', 'She will steal your hearts', '[/chessy]'],
    5=>['I still do not understant', 'whats up with the end of here bow...'],
    6=>['Bang Bang!'],
    7=>['Only for healing...'],
    8=>['Woot Woot!', 'Kill those Ghost with Fire', 'The secret to beat Sephs Demos']
    }
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(actor, index)
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor, @index, @frame = actor, index, 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # Information Arrays
    main_info = ['Name:', 'Class:', 'Level:', 'Experience:', 'Next Level:']
    stat_info = ['hp', 'sp', 'str', 'dex', 'agi', 'int'].collect! {|x| (eval "$data_system.words.#{x}") + ':'}
    stat_info.push('Evasion:', 'Hit %:')
    equip_info = ['atk', 'pdef', 'mdef'].collect! {|x| (eval "$data_system.words.#{x}") + ':'}
    # Draws Page
    self.contents.font.color = system_color
    self.contents.draw_text(192, 0, 224, 24, "Page : #{@index} / #{$data_actors.size - 1}", 1)
    # Draws Stat Words
    for i in 0...stat_info.size
      self.contents.draw_text(4, 144 + i * 24, 284, 24, stat_info[i])
    end
    # Draws Equipment Words
    for i in 0...equip_info.size
      self.contents.draw_text(324, 144 + i * 24, 284, 24, equip_info[i])
    end
    # Draws Biography Heading
    self.contents.font.color = @actor.nil? ? disabled_color : normal_color
    self.contents.draw_text(20, 336, contents.width, 24, 'Biography:')
    # If Actor isn't nil
    unless @actor.nil?
      # Draws Actor Sprite
      refresh_sprite
      # Draws Actor Battler
      self.contents.scale_blt(Rect.new(400, 0, 192, 144),
        bitmap = RPG::Cache.battler(@actor.battler_name, @actor.battler_hue),
        Rect.new(0, 0, bitmap.width, bitmap.height))     
      # Gets Actor Main Information
      info = ['name', 'class_name', 'level', 'exp', 'next_rest_exp_s'].collect! {|x| eval "@actor.#{x}"}
      # Draws Main Information
      self.contents.font.color = system_color
      for i in 0...info.size
        self.contents.draw_text(192, (i + 1) * 24, 224, 24, "#{main_info[i]} #{info[i]}", 1)
      end
      # Gets Acor Stat Information
      info = ["#{@actor.hp} / #{@actor.maxhp}", "#{@actor.sp} / #{@actor.maxsp}"]
      info << ['str', 'dex', 'agi', 'int', 'eva', 'hit'].collect! {|x| eval "@actor.#{x}"}
      # Draws Actor Stat Information
      self.contents.font.color = normal_color
      for i in 0...info.flatten!.size
        self.contents.draw_text(- 4, 144 + i * 24, 284, 24, info[i].to_s, 2)
      end
      # Gets Actor Base Equip Information
      info = ['atk', 'pdef', 'mdef'].collect! {|x| eval "@actor.#{x}"}
      for i in 0..info.size
        self.contents.draw_text(316, 144 + i * 24, 284, 24, info[i].to_s, 2)
      end
      # Gets Equipment IDs
      equipment = ['weapon_id', 'armor1_id', 'armor2_id', 'armor3_id', 'armor4_id'].collect! {|x| eval "@actor.#{x}"}
      # Gets Equipment
      for i in 0..4
        equipment[i] = i == 0 ? $data_weapons[equipment[i]] : $data_armors[equipment[i]]
      end
      # Draws Equipment
      for i in 0..4
        draw_equipment(equipment[i], 324, 216 + i * 24, 284, 1, i)
      end
      # Gets Bio
      bio = HERO_BIO[@index]
      # Draws bio
      self.contents.font.color = normal_color
      for i in 0...bio.size
        self.contents.draw_text(36, 336 + (i + 1) * 24, contents.width - 72, 24, bio[i], 1)
      end
    # If Actor is nil
    else
      # Draws Main Information
      self.contents.font.color = system_color
      for i in 0..4
        self.contents.draw_text(192, (i + 1) * 24, 224, 24, "#{main_info[i]} ??????", 1)
      end
      # Draws Actor Stat Information
      self.contents.font.color = normal_color
      for i in 0..7
        text = i == 0 ? '???? / ????' : i == 1 ? '??? / ???' : '???'
        self.contents.draw_text(- 4, 144 + i * 24, 284, 24, text, 2)
      end
      # Gets Actor Base Equip Information
      for i in 0..2
        self.contents.draw_text(316, 144 + i * 24, 284, 24, '???', 2)
      end
      # Draws Equipment
      for i in 0..4
        draw_equipment(nil, 324, 216 + i * 24, 284, 1, i, false)
      end
      # Draws Empty Bio
      self.contents.font.color = disabled_color
      self.contents.draw_text(36, 360, contents.width - 72, 24, 'Unknown Bio', 1)
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh Sprite
  #--------------------------------------------------------------------------
  def refresh_sprite
    # Clears Bitmap Area
    self.contents.fill_rect(Rect.new(0, 0, 192, 144), Color.new(0, 0, 0, 0))
    # Draws Actor Sprite
    draw_sprite(0, 0, 192, 144, @actor.character_name, @actor.character_hue, 0, @frame)
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    super
    # Checks to Refresh Sprite
    if Graphics.frame_count % 10 == 0
      @frame == 3 ? @frame = 0 : @frame += 1
      refresh_sprite unless @actor.nil?
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment
  #     item : item
  #     x    : draw spot x-coordinate
  #     y    : draw spot y-coordinate
  #     width : draw text width
  #     align  : text align
  #--------------------------------------------------------------------------
  def draw_equipment(item, x, y, width = 212, align = 0, type = 0, unknown = true)
    if item.nil?
      case type
      when 0  # Weapon
        bitmap = RPG::Cache.icon("001-Weapon01")
      when 1  # Shield
        bitmap = RPG::Cache.icon("009-Shield01")
      when 2  # Helmet
        bitmap = RPG::Cache.icon("010-Head01")
      when 3  # Armor
        bitmap = RPG::Cache.icon("014-Body02")
      when 4  # Accessory
        bitmap = RPG::Cache.icon("016-Accessory01")
      end
      contents.font.color, alpha = disabled_color, disabled_color.alpha
      txt = unknown ? 'Nothing' : 'Unknown'
    else
      bitmap = RPG::Cache.icon(item.icon_name)
      contents.font.color, alpha, txt = normal_color, 255, item.name
    end
    # Draws Icon
    self.contents.blt(x, y, bitmap, Rect.new(0, 0, 24, 24), alpha)
    self.contents.draw_text(x + 28, y, width - 28, 24, txt, align)
  end
  #--------------------------------------------------------------------------
  # * Draw Sprite
  #--------------------------------------------------------------------------
  def draw_sprite(x, y, w, h, name, hue, stance, frame)
    # Gets Bitmap
    bitmap = RPG::Cache.character(name, hue)
    # Bitmap Division
    cw, ch = bitmap.width / 4,  bitmap.height / 4
    # Gets Animation Offsets
    x_off, y_off = cw * frame, ch * stance
    # Draws Bitmap
    self.contents.scale_blt(Rect.new(x, y, w, h), bitmap, Rect.new(x_off, y_off, cw, ch))
  end
end

#==============================================================================
# ** Bitmap
#==============================================================================
class Bitmap
  #--------------------------------------------------------------------------
  # * Scale Blt
  #--------------------------------------------------------------------------
  def scale_blt(dest_rect, src_bitmap, src_rect, opacity = 255)
    w, h = src_rect.width, src_rect.height
    scale = [w / dest_rect.width.to_f, h / dest_rect.height.to_f].max
    ow, oh = (w / scale).to_i, (h / scale).to_i
    ox, oy = (dest_rect.width - ow) / 2, (dest_rect.height - oh) / 2
    stretch_blt(Rect.new(ox + dest_rect.x, oy + dest_rect.y, ow, oh),
      src_bitmap, src_rect )
  end
end

#==============================================================================
# ** Game_Actors
#==============================================================================
class Game_Actors
  #--------------------------------------------------------------------------
  # * Public Instance Variabeles
  #--------------------------------------------------------------------------
  attr_reader :data
end

#==============================================================================
# ** Scene_Hero_DataBase
#==============================================================================
class Scene_Hero_DataBase
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(actor_index = 1)
    @actor_index = actor_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Sets Actor
    @actor = $game_actors.data[@actor_index].nil? ? nil : @actor = $game_actors[@actor_index]
    # Creates Database Profile Window
    @actor_profile_window = Window_Clive_HeroStatus.new(@actor, @actor_index)
    # Draws Blank Sprites if Actor isn't in you actors database
    if @actor.nil?
      # Starts Frame Count
      @frame = 0
      # Creates Actor Character Sprite
      @actor_c_sprite = Sprite.new
        @actor_c_sprite.x, @actor_c_sprite.y = 16, 16
        @actor_c_sprite.z, @actor_c_sprite.opacity = 999, 160
      # Refreshes Sprite
      refresh_character_sprite
      # Creates Actor Battle Sprite
      @actor_b_sprite = Sprite.new
        @actor_b_sprite.x, @actor_b_sprite.y = 416, 16
        @actor_b_sprite.z, @actor_b_sprite.opacity = 999, 160
        @actor_b_sprite.bitmap = Bitmap.new(192, 144)
        actor = $data_actors[@actor_index]
        bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
        @actor_b_sprite.bitmap.scale_blt(Rect.new(0, 0, 192, 144), bitmap,
          Rect.new(0, 0, bitmap.width, bitmap.height))
        @actor_b_sprite.tone = Tone.new(- 255, - 255, - 255, 160)
    end
    # Execute transition
    Graphics.transition
    # Main loop
    while $scene == self
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of Database Profile Window
    @actor_profile_window.dispose
    # Disposes nil actor sprites
    if @actor.nil?
      @actor_c_sprite.dispose
      @actor_b_sprite.dispose
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update Profile Window
    @actor_profile_window.update
    # If L button is pressed
    if Input.trigger?(Input::L)
      # Play Cursor SE
      $game_system.se_play($data_system.cursor_se)
      # Changes Index
      @actor_index == 1 ? @actor_index = $data_actors.size - 1 : @actor_index -= 1
      # Changes Actor
      $scene = Scene_Hero_DataBase.new(@actor_index)
    end
    # If R button is pressed
    if Input.trigger?(Input::R)
      # Play Cursor SE
      $game_system.se_play($data_system.cursor_se)
      # Changes Index
      @actor_index == $data_actors.size - 1 ? @actor_index = 1 : @actor_index += 1
      # Changes Actor
      $scene = Scene_Hero_DataBase.new(@actor_index)
    end
    # If b button is pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Proceeds to Menu Screen
      $scene = Scene_Menu.new
    end
    # If nil actor
    if @actor.nil?
      # Checks to Refresh Contents
      if Graphics.frame_count % 10 == 0
        @frame == 3 ? @frame = 0 : @frame += 1
        refresh_character_sprite
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh Character Sprite
  #--------------------------------------------------------------------------
  def refresh_character_sprite
    # Sets Blank Bitmap
    @actor_c_sprite.bitmap = Bitmap.new(192, 144)
    # Gets Actor
    actor = $data_actors[@actor_index]
    # Gets Bitmap
    bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
    # Draws Bitmap
    @actor_c_sprite.bitmap.scale_blt(Rect.new(0, 0, 192, 144),
      bitmap,
      Rect.new(bitmap.width / 4 * @frame, 0, bitmap.width / 4, bitmap.height / 4))
    # Adjust Sprite Tone
    @actor_c_sprite.tone = Tone.new(- 255, - 255, - 255, 160)
  end
end



Instructions

-Put Above Main and call with $scene = Scene_Hero_DataBase.new


Compatibility

I dont know issues yet



Credits and Thanks


  • Created By - SephirothSpawn

  • Edited by - game_guy




Author's Notes

Bye Bye
5
Hello people, me again...

I found another awesome script... called Clive's Hero Database made it by SephirothSpawn... Creates a data of all the heros of the game and show in black all the heros that you dont meet yet...

The problem is that this use the SDK what causes some compatibility issues with my other scripts... Exist a way to do that this script dont need the SDK???

O_O

Bye bYe


#==============================================================================
# Clive's Hero Database
#==============================================================================
# SephirothSpawn
# Version 1
# 22.02.06
#==============================================================================
# Instructions:
#   ~ Setting Up Hero's Bio
#         Find the line HERO_BIO = {
#         Below That, have a x=>[] for each actor in your database
#         Withing the array, have up to 3 lines of 'text'
#   ~ Calling the Scene
#         Use: $scene = Scene_Hero_DataBase.new
#==============================================================================

#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log("Clive's Hero Database", 'SephirothSpawn', 1, '22.02.06')

#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------

if SDK.state("Clive's Hero Database") == true

  #==============================================================================
# ** Window_Clive_HeroStatus
#==============================================================================
class Window_Clive_HeroStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Hero Biography Constant
  #--------------------------------------------------------------------------
  HERO_BIO = {
    1=>["Here's a neat fact:", 'Arshes is the most used sprite in the rmxp community'],
    2=>['I thought Basil was something for cooking?'],
    3=>['I am thor!', 'Fear My Axe!'],
    4=>['Watch out fellas,', 'She will steal your hearts', '[/chessy]'],
    5=>['I still do not understant', 'whats up with the end of here bow...'],
    6=>['Bang Bang!'],
    7=>['Only for healing...'],
    8=>['Woot Woot!', 'Kill those Ghost with Fire', 'The secret to beat Sephs Demos']
    }
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(actor, index)
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor, @index, @frame = actor, index, 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # Information Arrays
    main_info = ['Name:', 'Class:', 'Level:', 'Experience:', 'Next Level:']
    stat_info = ['hp', 'sp', 'str', 'dex', 'agi', 'int'].collect! {|x| (eval "$data_system.words.#{x}") + ':'}
    stat_info.push('Evasion:', 'Hit %:')
    equip_info = ['atk', 'pdef', 'mdef'].collect! {|x| (eval "$data_system.words.#{x}") + ':'}
    # Draws Page
    self.contents.font.color = system_color
    self.contents.draw_text(192, 0, 224, 24, "Page : #{@index} / #{$data_actors.size - 1}", 1)
    # Draws Stat Words
    for i in 0...stat_info.size
      self.contents.draw_text(4, 144 + i * 24, 284, 24, stat_info[i])
    end
    # Draws Equipment Words
    for i in 0...equip_info.size
      self.contents.draw_text(324, 144 + i * 24, 284, 24, equip_info[i])
    end
    # Draws Biography Heading
    self.contents.font.color = @actor.nil? ? disabled_color : normal_color
    self.contents.draw_text(20, 336, contents.width, 24, 'Biography:')
    # If Actor isn't nil
    unless @actor.nil?
      # Draws Actor Sprite
      refresh_sprite
      # Draws Actor Battler
      self.contents.scale_blt(Rect.new(400, 0, 192, 144),
        bitmap = RPG::Cache.battler(@actor.battler_name, @actor.battler_hue),
        Rect.new(0, 0, bitmap.width, bitmap.height))     
      # Gets Actor Main Information
      info = ['name', 'class_name', 'level', 'exp', 'next_rest_exp_s'].collect! {|x| eval "@actor.#{x}"}
      # Draws Main Information
      self.contents.font.color = system_color
      for i in 0...info.size
        self.contents.draw_text(192, (i + 1) * 24, 224, 24, "#{main_info[i]} #{info[i]}", 1)
      end
      # Gets Acor Stat Information
      info = ["#{@actor.hp} / #{@actor.maxhp}", "#{@actor.sp} / #{@actor.maxsp}"]
      info << ['str', 'dex', 'agi', 'int', 'eva', 'hit'].collect! {|x| eval "@actor.#{x}"}
      # Draws Actor Stat Information
      self.contents.font.color = normal_color
      for i in 0...info.flatten!.size
        self.contents.draw_text(- 4, 144 + i * 24, 284, 24, info[i].to_s, 2)
      end
      # Gets Actor Base Equip Information
      info = ['atk', 'pdef', 'mdef'].collect! {|x| eval "@actor.#{x}"}
      for i in 0..info.size
        self.contents.draw_text(316, 144 + i * 24, 284, 24, info[i].to_s, 2)
      end
      # Gets Equipment IDs
      equipment = ['weapon_id', 'armor1_id', 'armor2_id', 'armor3_id', 'armor4_id'].collect! {|x| eval "@actor.#{x}"}
      # Gets Equipment
      for i in 0..4
        equipment[i] = i == 0 ? $data_weapons[equipment[i]] : $data_armors[equipment[i]]
      end
      # Draws Equipment
      for i in 0..4
        draw_equipment(equipment[i], 324, 216 + i * 24, 284, 1, i)
      end
      # Gets Bio
      bio = HERO_BIO[@index]
      # Draws bio
      self.contents.font.color = normal_color
      for i in 0...bio.size
        self.contents.draw_text(36, 336 + (i + 1) * 24, contents.width - 72, 24, bio[i], 1)
      end
    # If Actor is nil
    else
      # Draws Main Information
      self.contents.font.color = system_color
      for i in 0..4
        self.contents.draw_text(192, (i + 1) * 24, 224, 24, "#{main_info[i]} ??????", 1)
      end
      # Draws Actor Stat Information
      self.contents.font.color = normal_color
      for i in 0..7
        text = i == 0 ? '???? / ????' : i == 1 ? '??? / ???' : '???'
        self.contents.draw_text(- 4, 144 + i * 24, 284, 24, text, 2)
      end
      # Gets Actor Base Equip Information
      for i in 0..2
        self.contents.draw_text(316, 144 + i * 24, 284, 24, '???', 2)
      end
      # Draws Equipment
      for i in 0..4
        draw_equipment(nil, 324, 216 + i * 24, 284, 1, i, false)
      end
      # Draws Empty Bio
      self.contents.font.color = disabled_color
      self.contents.draw_text(36, 360, contents.width - 72, 24, 'Unknown Bio', 1)
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh Sprite
  #--------------------------------------------------------------------------
  def refresh_sprite
    # Clears Bitmap Area
    self.contents.fill_rect(Rect.new(0, 0, 192, 144), Color.new(0, 0, 0, 0))
    # Draws Actor Sprite
    draw_sprite(0, 0, 192, 144, @actor.character_name, @actor.character_hue, 0, @frame)
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    super
    # Checks to Refresh Sprite
    if Graphics.frame_count % 10 == 0
      @frame == 3 ? @frame = 0 : @frame += 1
      refresh_sprite unless @actor.nil?
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment
  #     item : item
  #     x    : draw spot x-coordinate
  #     y    : draw spot y-coordinate
  #     width : draw text width
  #     align  : text align
  #--------------------------------------------------------------------------
  def draw_equipment(item, x, y, width = 212, align = 0, type = 0, unknown = true)
    if item.nil?
      case type
      when 0  # Weapon
        bitmap = RPG::Cache.icon("001-Weapon01")
      when 1  # Shield
        bitmap = RPG::Cache.icon("009-Shield01")
      when 2  # Helmet
        bitmap = RPG::Cache.icon("010-Head01")
      when 3  # Armor
        bitmap = RPG::Cache.icon("014-Body02")
      when 4  # Accessory
        bitmap = RPG::Cache.icon("016-Accessory01")
      end
      contents.font.color, alpha = disabled_color, disabled_color.alpha
      txt = unknown ? 'Nothing' : 'Unknown'
    else
      bitmap = RPG::Cache.icon(item.icon_name)
      contents.font.color, alpha, txt = normal_color, 255, item.name
    end
    # Draws Icon
    self.contents.blt(x, y, bitmap, Rect.new(0, 0, 24, 24), alpha)
    self.contents.draw_text(x + 28, y, width - 28, 24, txt, align)
  end
  #--------------------------------------------------------------------------
  # * Draw Sprite
  #--------------------------------------------------------------------------
  def draw_sprite(x, y, w, h, name, hue, stance, frame)
    # Gets Bitmap
    bitmap = RPG::Cache.character(name, hue)
    # Bitmap Division
    cw, ch = bitmap.width / 4,  bitmap.height / 4
    # Gets Animation Offsets
    x_off, y_off = cw * frame, ch * stance
    # Draws Bitmap
    self.contents.scale_blt(Rect.new(x, y, w, h), bitmap, Rect.new(x_off, y_off, cw, ch))
  end
end

#==============================================================================
# ** Bitmap
#==============================================================================
class Bitmap
  #--------------------------------------------------------------------------
  # * Scale Blt
  #--------------------------------------------------------------------------
  def scale_blt(dest_rect, src_bitmap, src_rect, opacity = 255)
    w, h = src_rect.width, src_rect.height
    scale = [w / dest_rect.width.to_f, h / dest_rect.height.to_f].max
    ow, oh = (w / scale).to_i, (h / scale).to_i
    ox, oy = (dest_rect.width - ow) / 2, (dest_rect.height - oh) / 2
    stretch_blt(Rect.new(ox + dest_rect.x, oy + dest_rect.y, ow, oh),
      src_bitmap, src_rect )
  end
end

#==============================================================================
# ** Game_Actors
#==============================================================================
class Game_Actors
  #--------------------------------------------------------------------------
  # * Public Instance Variabeles
  #--------------------------------------------------------------------------
  attr_reader :data
end

#==============================================================================
# ** Scene_Hero_DataBase
#==============================================================================
class Scene_Hero_DataBase
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(actor_index = 1)
    @actor_index = actor_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Sets Actor
    @actor = $game_actors.data[@actor_index].nil? ? nil : @actor = $game_actors[@actor_index]
    # Creates Database Profile Window
    @actor_profile_window = Window_Clive_HeroStatus.new(@actor, @actor_index)
    # Draws Blank Sprites if Actor isn't in you actors database
    if @actor.nil?
      # Starts Frame Count
      @frame = 0
      # Creates Actor Character Sprite
      @actor_c_sprite = Sprite.new
        @actor_c_sprite.x, @actor_c_sprite.y = 16, 16
        @actor_c_sprite.z, @actor_c_sprite.opacity = 999, 160
      # Refreshes Sprite
      refresh_character_sprite
      # Creates Actor Battle Sprite
      @actor_b_sprite = Sprite.new
        @actor_b_sprite.x, @actor_b_sprite.y = 416, 16
        @actor_b_sprite.z, @actor_b_sprite.opacity = 999, 160
        @actor_b_sprite.bitmap = Bitmap.new(192, 144)
        actor = $data_actors[@actor_index]
        bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
        @actor_b_sprite.bitmap.scale_blt(Rect.new(0, 0, 192, 144), bitmap,
          Rect.new(0, 0, bitmap.width, bitmap.height))
        @actor_b_sprite.tone = Tone.new(- 255, - 255, - 255, 160)
    end
    # Execute transition
    Graphics.transition
    # Main loop
    while $scene == self
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of Database Profile Window
    @actor_profile_window.dispose
    # Disposes nil actor sprites
    if @actor.nil?
      @actor_c_sprite.dispose
      @actor_b_sprite.dispose
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update Profile Window
    @actor_profile_window.update
    # If L button is pressed
    if Input.trigger?(Input::L)
      # Play Cursor SE
      $game_system.se_play($data_system.cursor_se)
      # Changes Index
      @actor_index == 1 ? @actor_index = $data_actors.size - 1 : @actor_index -= 1
      # Changes Actor
      $scene = Scene_Hero_DataBase.new(@actor_index)
    end
    # If R button is pressed
    if Input.trigger?(Input::R)
      # Play Cursor SE
      $game_system.se_play($data_system.cursor_se)
      # Changes Index
      @actor_index == $data_actors.size - 1 ? @actor_index = 1 : @actor_index += 1
      # Changes Actor
      $scene = Scene_Hero_DataBase.new(@actor_index)
    end
    # If b button is pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Proceeds to Menu Screen
      $scene = Scene_Menu.new
    end
    # If nil actor
    if @actor.nil?
      # Checks to Refresh Contents
      if Graphics.frame_count % 10 == 0
        @frame == 3 ? @frame = 0 : @frame += 1
        refresh_character_sprite
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh Character Sprite
  #--------------------------------------------------------------------------
  def refresh_character_sprite
    # Sets Blank Bitmap
    @actor_c_sprite.bitmap = Bitmap.new(192, 144)
    # Gets Actor
    actor = $data_actors[@actor_index]
    # Gets Bitmap
    bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
    # Draws Bitmap
    @actor_c_sprite.bitmap.scale_blt(Rect.new(0, 0, 192, 144),
      bitmap,
      Rect.new(bitmap.width / 4 * @frame, 0, bitmap.width / 4, bitmap.height / 4))
    # Adjust Sprite Tone
    @actor_c_sprite.tone = Tone.new(- 255, - 255, - 255, 160)
  end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end

6
Hello everybody... i found this script made by Toby Zerner. Moves the camara when character walks in a cool smooth effect...

But have a little problem... If you put it in your game, the scroll screen default command in RPGXP doesnt work...

Anybody knows how can be compatible???





#==============================================================================
# ** Smooth_Scrolling
#------------------------------------------------------------------------------
#  Script by Toby Zerner
#  Gives scrolling a 'smooth' effect (deceleration).
#==============================================================================

class Game_Map
  attr_accessor :deceleration_start
  attr_accessor :deceleration_speed
  #--------------------------------------------------------------------------
  # * Setup
  #     map_id : map ID
  #--------------------------------------------------------------------------
  alias ss_setup setup
  def setup(map_id)
   
    # -- CONFIGURATION VARIABLES
    # When to start decelerating (bigger numbers mean earlier on) [default: 4]
    @deceleration_start = 4
    # How fast to decelerate (bigger numbers mean quicker) [default: 4]
    @deceleration_speed = 4
    # -- END CONFIGURATION VARIABLES
   
    # Call the old setup method
    ss_setup(map_id)
    # Initialize smooth scrolling variables
    # scroll_remain: the number of pixels * 4 the still need to be scrolled
    @scroll_remain_x = 0
    @scroll_remain_y = 0
    # scroll_take: the number of pixels * 4 that are being scrolled every frame
    #   i.e. scrolling speed
    @scroll_take_x = 0
    @scroll_take_y = 0
    # scroll_decel: variables for calculating decelaration
    @scroll_decel_x = 0
    @scroll_decel_y = 0
  end
  #--------------------------------------------------------------------------
  # * Scroll Down
  #     distance : scroll distance
  #--------------------------------------------------------------------------
  def scroll_down(distance)
    # Ceil the distance
    distance = distance.ceil
    # If the map is scrolling from an event command, then use that scroll speed
    if scrolling? then @scroll_take_y = 2 ** @scroll_speed
    # If the map is not scrolling
    else
      # Make sure the distance is always divisible by 4
      if distance.ceil % 4 == 0 then @scroll_take_y = distance.ceil
      elsif distance.ceil % 4 <= 2 then @scroll_take_y = distance.ceil - distance.ceil % 4
      else @scroll_take_y = distance.ceil + (4 - (distance.ceil % 4)) end
    end
    # If scrolling coordinates are inside the map's boundaries
    unless @display_y + @scroll_remain_y + distance > (self.height - 15) * 128
      # Add onto the amount left to be scrolled
      @scroll_remain_y += distance
    end
  end
  #--------------------------------------------------------------------------
  # * Scroll Left
  #     distance : scroll distance
  #--------------------------------------------------------------------------
  def scroll_left(distance)
    # Ceil the distance
    distance = distance.ceil
    # If the map is scrolling from an event command, then use that scroll speed
    if scrolling? then @scroll_take_x = 2 ** @scroll_speed
    # If the map is not scrolling
    else
      # Make sure the distance is always divisible by 4
      if distance.ceil % 4 == 0 then @scroll_take_x = distance.ceil
      elsif distance.ceil % 4 <= 2 then @scroll_take_x = distance.ceil - distance.ceil % 4
      else @scroll_take_x = distance.ceil + (4 - (distance.ceil % 4)) end
    end
    # If scrolling coordinates are inside the map's boundaries
    unless @display_x - @scroll_remain_x - distance < 0
      # Add onto the amount left to be scrolled
      @scroll_remain_x -= distance
    end
  end
  #--------------------------------------------------------------------------
  # * Scroll Right
  #     distance : scroll distance
  #--------------------------------------------------------------------------
  def scroll_right(distance)
    # Ceil the distance
    distance = distance.ceil
    # If the map is scrolling from an event command, then use that scroll speed
    if scrolling? then @scroll_take_x = 2 ** @scroll_speed
    # If the map is not scrolling
    else
      # Make sure the distance is always divisible by 4
      if distance.ceil % 4 == 0 then @scroll_take_x = distance.ceil
      elsif distance.ceil % 4 <= 2 then @scroll_take_x = distance.ceil - distance.ceil % 4
      else @scroll_take_x = distance.ceil + (4 - (distance.ceil % 4)) end
    end
    # If scrolling coordinates are inside the map's boundaries
    unless @display_x + @scroll_remain_x + distance > (self.width - 20) * 128
      # Add onto the amount left to be scrolled
      @scroll_remain_x += distance
    end
  end
  #--------------------------------------------------------------------------
  # * Scroll Up
  #     distance : scroll distance
  #--------------------------------------------------------------------------
  def scroll_up(distance)
    # Ceil the distance
    distance = distance.ceil
    # If the map is scrolling from an event command, then use that scroll speed
    if scrolling? then @scroll_take_y = 2 ** @scroll_speed
    # If the map is not scrolling
    else
      # Make sure the distance is always divisible by 4
      if distance.ceil % 4 == 0 then @scroll_take_y = distance.ceil
      elsif distance.ceil % 4 <= 2 then @scroll_take_y = distance.ceil - distance.ceil % 4
      else @scroll_take_y = distance.ceil + (4 - (distance.ceil % 4)) end
    end
    # If scrolling coordinates are inside the map's boundaries
    unless @display_y - @scroll_remain_y - distance < 0
      # Add onto the amount left to be scrolled
      @scroll_remain_y -= distance
    end
  end
  #--------------------------------------------------------------------------
  # * Start Scroll
  #     direction : scroll direction
  #     distance  : scroll distance
  #     speed     : scroll speed
  #--------------------------------------------------------------------------
  def start_scroll(direction, distance, speed)
    # Set scrolling variables
    distance          = distance.ceil * 128
    @scroll_direction = direction
    @scroll_speed     = speed
    @scroll_rest      = distance
    # Execute scrolling
    case @scroll_direction
    when 2  # Down
      scroll_down(@scroll_rest)
    when 4  # Left
      scroll_left(@scroll_rest)
    when 6  # Right
      scroll_right(@scroll_rest)
    when 8  # Up
      scroll_up(@scroll_rest)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  # This method could not be aliased because the scrolling part of the old
  # method has been rewritten.
  #--------------------------------------------------------------------------
  def update
    # Refresh map if necessary
    if $game_map.need_refresh
      refresh
    end
   
    #--------------------------------------------------------
    # If the map is still scrolling
    if @scroll_rest > 0 then @scroll_rest -= 2 ** @scroll_speed end
   
    # If the x axis needs to be scrolled to the right
    if @scroll_remain_x > 0
      # If the amount to be scrolled is close enough to 0 to decelerate
      if @scroll_remain_x <= @scroll_take_x * @deceleration_start
        old_display_x = @display_x
        # Add onto the deceleration variable
        @scroll_decel_x += @deceleration_speed
        # Work out how much to scroll
        distance = [@scroll_take_x - @scroll_decel_x, 4].max
        # If the scrolling coordinates are within the map's boundaries
        unless @display_x + distance > (self.width - 20) * 128
          @display_x += distance
        end
        # Subtract the amount that was scrolled
        @scroll_remain_x += old_display_x - @display_x
        if @scroll_remain_x < 0 then @scroll_remain_x = 0 end
      # Otherwise, scroll at a normal speed
      else
        # Reset the deceleration variable
        @scroll_decel_x = 0
        # If the scrolling coordinates are out of range
        if @display_x + @scroll_take_x > (self.width - 20) * 128
          @display_x = (self.width - 20) * 128
          @scroll_remain_x = 0
        # Otherwise, scroll normally
        else
          @display_x += @scroll_take_x
          @scroll_remain_x -= @scroll_take_x
        end
      end
     
    # If the x axis needs to be scrolled to the left
    elsif @scroll_remain_x < 0
      # If the amount to be scrolled is close enough to 0 to decelerate
      if @scroll_remain_x >= -@scroll_take_x * @deceleration_start
        old_display_x = @display_x
        # Add onto the deceleration variable
        @scroll_decel_x += @deceleration_speed
        # Work out how much to scroll
        distance = [@scroll_take_x - @scroll_decel_x, 4].max
        # If the scrolling coordinates are within the map's boundaries
        unless @display_x - distance < 0
          @display_x -= distance
        end
        # Subtract the amount that was scrolled
        @scroll_remain_x += old_display_x - @display_x
        if @scroll_remain_x > 0 then @scroll_remain_x = 0 end
      # Otherwise, scroll at a normal speed
      else
        # Reset the deceleration variable
        @scroll_decel_x = 0
        # If the scrolling coordinates are out of range
        if @display_x - @scroll_take_x < 0
          @display_x = 0
          @scroll_remain_x = 0
        # Otherwise, scroll normally
        else
          @display_x -= @scroll_take_x
          @scroll_remain_x += @scroll_take_x
        end
      end
   
    # If no x scrolling needs to be done, reset the deceleration variable
    else @scroll_decel_x = 0 end
   
    # If the y axis needs to be scrolled downwards
    if @scroll_remain_y > 0
      # If the amount to be scrolled is close enough to 0 to decelerate
      if @scroll_remain_y <= @scroll_take_y * @deceleration_start
        old_display_y = @display_y
        # Add onto the deceleration variable
        @scroll_decel_y += @deceleration_speed
        # Work out how much to scroll
        distance = [@scroll_take_y - @scroll_decel_y, 4].max
        # If the scrolling coordinates are within the map's boundaries
        unless @display_y + distance > (self.height - 15) * 128
          @display_y += distance
        end
        # Subtract the amount that was scrolled
        @scroll_remain_y += old_display_y - @display_y
        if @scroll_remain_y < 0 then @scroll_remain_y = 0 end
      # Otherwise, scroll at a normal speed
      else
        # Reset the deceleration variable
        @scroll_speed_accel_y = 0
        # If the scrolling coordinates are out of range
        if @display_y + @scroll_take_y > (self.height - 15) * 128
          @display_y = (self.height - 15) * 128
          @scroll_remain_y = 0
        # Otherwise, scroll normally
        else
          @display_y += @scroll_take_y
          @scroll_remain_y -= @scroll_take_y
        end
      end
   
    # If the y axis needs to be scrolled downwards
    elsif @scroll_remain_y < 0
      # If the amount to be scrolled is close enough to 0 to decelerate
      if @scroll_remain_y >= -@scroll_take_y * @deceleration_start
        old_display_y = @display_y
        # Add onto the deceleration variable
        @scroll_decel_y += @deceleration_speed
        # Work out how much to scroll
        distance = [@scroll_take_y - @scroll_decel_y, 4].max
        # If the scrolling coordinates are within the map's boundaries
        unless @display_y - distance < 0
          @display_y -= distance
        end
        # Subtract the amount that was scrolled
        @scroll_remain_y += old_display_y - @display_y
        if @scroll_remain_y > 0 then @scroll_remain_y = 0 end
      # Otherwise, scroll at a normal speed
      else
        # Reset the deceleration variable
        @scroll_speed_accel_y = 0
        # If the scrolling coordinates are out of range
        if @display_y - @scroll_take_y < 0
          @display_y = 0
          @scroll_remain_y = 0
        # Otherwise, scroll normally
        else
          @display_y -= @scroll_take_y
          @scroll_remain_y += @scroll_take_y
        end
      end
   
    # If no y scrolling needs to be done, reset the deceleration variable
    else @scroll_decel_y = 0 end
    #--------------------------------------------------------
   
    # Update map event
    for event in @events.values
      event.update
    end
    # Update common event
    for common_event in @common_events.values
      common_event.update
    end
    # Manage fog scrolling
    @fog_ox -= @fog_sx / 8.0
    @fog_oy -= @fog_sy / 8.0
    # Manage change in fog color tone
    if @fog_tone_duration >= 1
      d = @fog_tone_duration
      target = @fog_tone_target
      @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
      @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
      @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
      @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
      @fog_tone_duration -= 1
    end
    # Manage change in fog opacity level
    if @fog_opacity_duration >= 1
      d = @fog_opacity_duration
      @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
      @fog_opacity_duration -= 1
    end
  end
end





Goodbye ^_^
7
Resource Requests / Hq2x or Scale2x
March 21, 2011, 03:04:36 pm
Like the title says...

Anybody know how i can apply any of this effect to my tilesets??? where i can found it and how i can use it??

Thnak you very much!!!
8
Hello guys... i found a script that let you know when a character learn a new skill if this levels up!... But have a little issue with BLIZZABS when the actor going to open a range in a new skill... anybody know how that can be solved???

The author of script are: Kyonides-Arkanthos alias Kyonides, Shadowball




#============================
#  *  New Skills List
#     por Kyonides-Arkanthos alias Kyonides, Shadowball
#     v 1.0.0 - 19.01.2008 (New Skill Script)
#     v 1.0.1 - 06.02.2010
#============================
module KyoSkillMod
  APRENDER = ' Learn '
  @@new_skill = []
  @@time, @@index, @@max_index = 60, 0, 0
 
  def self.actor(actor, skill)
    @@new_skill[@@index] = [actor, skill]
    @@max_index = @@index
    @@index += 1
  end

  def new_skill(index)
    actor, skill = @@new_skill[index][0], @@new_skill[index][1]
    actor + APRENDER + skill if index <= @@max_index
  end
 
  def show_new_skills
    if !@no_new_skill and !@@new_skill.empty?
      if @index == @@max_index+1
        @skills_window.visible = false
        @no_new_skill = true
        return
      end
      @wait_count = @@time
      @skills_window.visible = true
      set_next_skill
    end
  end
 
  def set_next_skill
    @skills_window.set_text(new_skill(@index), 1)
    @index += 1
  end
 
  def clear_all
    @@new_skill, @@index, @@max_index = [], 0, 0
  end
end
#============================
#  *  Game_Actor Mod
class Game_Actor 
  def learn_skill(skill_id)
    if skill_id > 0 and not skill_learn?(skill_id)
      @skills.push(skill_id)
      @skills.sort!
      # Si el héroe aprende habilidades, estás se agrupan en un listado
      # Funciona tanto en el Mapa como en Batalla
      if Graphics.frame_count / Graphics.frame_rate != 0
        skill = $data_skills[skill_id].name
        KyoSkillMod.actor(self.name, skill)
      end
    end
  end
end
#============================
#  *  Window_Help2
class Window_Help2 < Window_Base
  def initialize
    x = 320 - 360 / 2
    super(x, 0, 360, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 160
  end
 
  def set_text(text, align)
    self.contents.clear
    self.contents.draw_text(0, 0, width - 32, 32, text, align)
  end
end
#============================
#  *  Scene_Map Modificado
class Scene_Map
  include KyoSkillMod
  alias :kyon_skill_smap_main :main
  alias :kyon_skill_smap_up :update
 
  def main
    @wait_count, @index = 0, 0
    @skills_window = Window_Help2.new
    @skills_window.visible = false
    kyon_skill_smap_main
    @skills_window.dispose
  end
 
  def update
    if @wait_count > 0
      @wait_count -= 1
      return
    end
    show_new_skills
    clear_all if @no_new_skill or @@new_skill.empty?
    kyon_skill_smap_up
  end
end
#============================
#  *  Scene_Battle Mod
class Scene_Battle
  include KyoSkillMod
  alias :kyon_skill_battle_main :main
  def main
    @skills_window = Window_Help2.new
    @skills_window.visible = false
    @no_new_skill = false
    @index = 0
    kyon_skill_battle_main
    @skills_window.dispose
  end
  def update_phase5
    @status_window.refresh
    $game_temp.battle_main_phase = false if $game_temp.battle_main_phase
    @result_window.visible = true if !@result_window.visible
    if Input.trigger?(Input::C)
      clear_all
      battle_end(0) if @@new_skill.empty?
    end
    show_new_skills
  end
end
#=begin
class Scene_Battle
  alias :kyon_skill_battle_sb_event :setup_battle_event
  def setup_battle_event
    kyon_skill_battle_sb_event
    $game_troop.enemies.each {|e| e.hp = 0}
  end
end
#=end



9
General Discussion / I Need a little opinion
March 17, 2011, 12:49:40 am
Hello guys... Here a little little little sample... of my game off course...

I Use Blizzabs. (Thats why i give credit to stormtronic)...eum... That shows a little simple battle (Unarmed actor and simple enemies) and a few things in menu....

http://www.youtube.com/watch?v=MF0Zvp96GN0

Thanks to all!!
10
Author: Cold Strong


Description:
This script creates a Bestiary and Items Book that is possible to see information of monsters and items. It have also a system the monsters drop limitless items. And also a system of treasures.

Script:

Put This Above Main
Code:

################################################################################
################################################################################
########################### Cold Module ########################################
################################################################################
################################################################################
#===============================================================================
# By Cold Strong
#===============================================================================
# Cold Module
#-------------------------------------------------------------------------------
# This script count some functions used by my scripts
# Obs: It is some imcomplete...
#===============================================================================

class Customs_Data
 
  attr_accessor   :actors       
  attr_accessor   :classes     
  attr_accessor   :skills       
  attr_accessor   :items         
  attr_accessor   :weapons       
  attr_accessor   :armors       
  attr_accessor   :enemies       
  attr_accessor   :troops       
  attr_accessor   :states       
  attr_accessor   :animations   
  attr_accessor   :tilesets     
  attr_accessor   :common_events
  attr_accessor   :system
  attr_accessor   :map_infos
  attr_accessor   :maps
 
  def initialize
    @actors        = load_data("Data/Actors.rxdata")
    @classes       = load_data("Data/Classes.rxdata")
    @skills        = load_data("Data/Skills.rxdata")
    @items         = load_data("Data/Items.rxdata")
    @weapons       = load_data("Data/Weapons.rxdata")
    @armors        = load_data("Data/Armors.rxdata")
    @enemies       = load_data("Data/Enemies.rxdata")
    @troops        = load_data("Data/Troops.rxdata")
    @states        = load_data("Data/States.rxdata")
    @animations    = load_data("Data/Animations.rxdata")
    @tilesets      = load_data("Data/Tilesets.rxdata")
    @common_events = load_data("Data/CommonEvents.rxdata")
    @system        = load_data("Data/System.rxdata")
    @maps = {}
    for i in 1..999
      number = sprintf("%03d", i)
      if FileTest.exist?("Data/Map#{number}.rxdata")
        @maps[i] = load_data("Data/Map#{number}.rxdata")
      else
        break
      end
    end
    @map_infos     = load_data("Data/MapInfos.rxdata")
  end
 
  def [](str)
    return @customs_data[str]
  end
 
end

module Cold
   
  $data = Customs_Data.new
 
end

class Window_Base < Window
 
 
  #--------------------------------------------------------------------------
  # - Desenhar Gráfico
  #
  #     t     : Texto a ser feita as linhas
  #     width : Largura máxima da linha
  #     
  #     - Ele retorna uma array, em que cada elemento é uma string
  #       com a largura desejada.
  #--------------------------------------------------------------------------
 
  def lines(t, width)
    text = t.clone
    x = self.contents.text_size(text).width / width
    x += 1 if self.contents.text_size(text).width % width > 0
    texts = []
    for i in 0...x
      texts.push("")
    end
    for i in 0...texts.size
      words = text.split(" ")
      return_text = ""
      for w in 0...words.size
        word = words[w]
        x = "!@$%¨&*()"
        return_text += word + x + " "
        return_text2 = return_text.gsub(x,"")
        t_width = self.contents.text_size(return_text2).width
        if t_width > width
          texts[i] = return_text.gsub(" "+word+x, "")
          text.gsub!(texts[i], "")
          break
        elsif w == words.size - 1
          texts[i] = return_text.gsub(x+" ", "")
          text.gsub!(texts[i], "")
          break
        else
          return_text.gsub!(word+x, word)
        end
      end
    end
    return texts
  end
 
  def draw_text_in_lines(x, y_initial, width, height, text)
    lines = lines(text, width)
    y = y_initial
    for text_line in lines
      self.contents.draw_text(x, y, width, height, text_line)
      y += height
    end
  end
   
end


And Below....this



################################################################################
################################################################################
######################## Cold Books System #####################################
################################################################################
################################################################################
#===============================================================================
# By Cold Strong
#===============================================================================
# Bestiary and Item Book Script
#-------------------------------------------------------------------------------
# ***Necessary Cold Module
#===============================================================================
# How to use:
# To call the Items Menu:
#   - $scene = Scene_ItemsBook.new
# To call the Bestiary Menu:
#   - $scene = Scene_Bestiary.new
#-------------------------------------------------------------------------------
# Bugs: cold.strong@hotmail.com
#===============================================================================

$ColdScript ||= {}
$ColdScript["Books System"] = true

if $ColdScript["Books System"]
#===============================================================================
# Overall Customization
#===============================================================================
module Options
  #-----------------------------------------------------------------------------
  # Scope Information
  #-----------------------------------------------------------------------------
  SCOPE_INFO = ["Nothing", "Enemies", "All Enemies", "Ally", "All Alies",
  "Ally (HP 0)", "All Allies (HP 0)", "Hero"]
  #-----------------------------------------------------------------------------
  # Treasure System Active? It's important that you disable if you'll not use it.
  #-----------------------------------------------------------------------------
  TREASURE_ACTIVE = true
  #-----------------------------------------------------------------------------
  # Name of the Atribute that the Treasure item have to has.
  #-----------------------------------------------------------------------------
  TREASURE_ATRIBUTE = "Treasure"
  #-----------------------------------------------------------------------------
  # Animated Background Picture (It must be in past: Graphics/Pictures)
  #-----------------------------------------------------------------------------
  COLD_MENU_PLANE = ""
 
  #=============================================================================
  # Don't touch here
  ENEMY_ITEMS = []
  for i in 1... $data.enemies.size
    ENEMY_ITEMS[i] = []
  end
  #=============================================================================

  #-----------------------------------------------------------------------------
  # Items dropped by monsters, to add a new item you have
  # to use this code:
  # Enemy_items[enemy_id].push([type, id, prob])
  # -------------------------------
  # enemy_id    : ID of the enemy
  # type        : Kind of item (0:Item, 1:Weapon, 2:Armor)
  # id          : ID of the item
  # prob        : Probability of being dropped (%)
  #-----------------------------------------------------------------------------
  ENEMY_ITEMS[1].push( [0, 10, 50] )
 
  #=============================================================================
  # Don't touch here
  ENEMY_DESCRIPTION = []
  for i in 1...$data.enemies.size
    ENEMY_DESCRIPTION[i] = ""
  end
  #=============================================================================

  #-----------------------------------------------------------------------------
  # Enemy Description, to customize:
  # ENEMY_DESCRIPTION[enemy_id] = description
  # -------------------------------
  # enemy_id    : ID of the enemy
  # description : String with the description
  #-----------------------------------------------------------------------------
  ENEMY_DESCRIPTION[1] = "Dangerous ghost that lives in the darkness."
 
  #=============================================================================
  # CUSTOMIZATION END
  #=============================================================================
  ENEMIES_ORDER = {}
  ENEMIES_ORDER["By type"] = []
  for i in 1...$data.enemies.size
    ENEMIES_ORDER["By type"].push(i)
  end
  order = []
  for i in 1...$data.enemies.size
    order.push($data.enemies[i].name)
  end
  ENEMIES_ORDER["Alphabetical"] = order.sort
  for i in 0...ENEMIES_ORDER["Alphabetical"].size
    ENEMIES_ORDER["Alphabetical"][i] = order.index(ENEMIES_ORDER["Alphabetical"][i]) + 1
  end
  ITEMS_ORDER = {}
  order = []
  t_order = []
  for i in 1...$data.items.size
    t_order.push([0,i])
    order.push($data.items[i].name)
  end
  for i in 1...$data.weapons.size
    t_order.push([1,i])
    order.push($data.weapons[i].name)
  end
  for i in 1...$data.armors.size
    t_order.push([2,i])
    order.push($data.armors[i].name)
  end
  ITEMS_ORDER["By type"] = t_order
  order_i = order.sort
  for i in 0...order_i.size
    index = order.index(order_i[i])
    if index >= $data.items.size + $data.weapons.size - 2
      type = 2
      id = order.index(order_i[i]) + 3 - $data.items.size - $data.weapons.size
    elsif index >= $data.items.size - 1
      type = 1
      id = order.index(order_i[i]) + 2 - $data.items.size
    else
      type = 0
      id = order.index(order_i[i]) + 1
    end
    order[order.index(order_i[i])] = "nil!@$%"
    order_i[i] = [type,id]
  end
  ITEMS_ORDER["Alphabetical"] = order_i
  LAYOUTB = true
end

#==============================================================================
# Modulo RPG
#==============================================================================

module RPG
 
  class Item
    def treasure
      treasure_i = $data.system.elements.index(Options::TREASURE_ATRIBUTE)
      if @element_set.include?(treasure_i)
        return true
      end
      return false   
    end
  end
 
  class Weapon
    def treasure
      treasure_i = $data.system.elements.index(Options::TREASURE_ATRIBUTE)
      if @element_set.include?(treasure_i)
        return true
      end
      return false   
    end
  end
 
  class Armor
    def treasure
      treasure_i = $data.system.elements.index(Options::TREASURE_ATRIBUTE)
      if @guard_element_set.include?(treasure_i)
        return true
      end
      return false   
    end
  end
 
  class Enemy
    def items
      @items ||= []
      return @items
    end
  end
 
end

#==============================================================================
# Modulo Opções
#==============================================================================

module Options
 
  for i in 1...$data.enemies.size
    if $data.enemies[i].item_id > 0
      item_id = $data.enemies[i].item_id
      prob = $data.enemies[i].treasure_prob
      $data.enemies[i].items.push([0,item_id,prob])
    end
    if $data.enemies[i].weapon_id > 0
      item_id = $data.enemies[i].weapon_id
      prob = $data.enemies[i].treasure_prob
      $data.enemies[i].items.push([1,item_id,prob])
    end
    if $data.enemies[i].armor_id > 0
      item_id = $data.enemies[i].armor_id
      prob = $data.enemies[i].treasure_prob
      $data.enemies[i].items.push([1,item_id,prob])
    end
    unless ENEMY_ITEMS[i].nil?
      for item in ENEMY_ITEMS[i]
        $data.enemies[i].items.push(item)
      end
    end
  end
 
end

#==============================================================================
# Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
 
  #--------------------------------------------------------------------------
  # - Selecionar items que podem dropar
  #--------------------------------------------------------------------------
 
  def items
    return $data.enemies[@enemy_id].items
  end
 
  #--------------------------------------------------------------------------
  # - Informação para o Bestiário
  #--------------------------------------------------------------------------
 
  def info
    if @info.new
      @info = Game_Info_Enemy.new(id)
    end
  end
end

#==============================================================================
# Window_BattleResult
#------------------------------------------------------------------------------
# Esta janela exibe os tesouros e o dinheiro ganho após uma batalha.
#==============================================================================

class Window_BattleResult < Window_Base
 
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #
  #     exp       : EXP
  #     gold      : quantidade de dinheiro
  #     treasures : tesouros
  #--------------------------------------------------------------------------
 
  def initialize(exp, gold, treasures)
    @exp = exp
    @gold = gold
    @treasures = treasures
    x = treasures.uniq
    super(0, 0, 320, [x.size, 7].min * 32 + 64)
    self.width = [(x.size + 7) / 7 * 320, 640].min
    self.x = (640 - self.width) / 2
    self.contents = Bitmap.new(width - 32, height - 32)
    self.y = 160 - height / 2
    self.back_opacity = 160
    self.visible = false
    refresh
  end
 
  #--------------------------------------------------------------------------
  # - Atualização
  #--------------------------------------------------------------------------
 
  def refresh
    self.contents.clear
    x = ((self.width - 32) - 246) / 2
    self.contents.font.color = normal_color
    cx = contents.text_size(@exp.to_s).width
    self.contents.draw_text(x, 0, cx, 32, @exp.to_s)
    x += cx + 4
    self.contents.font.color = system_color
    cx = contents.text_size("EXP").width
    self.contents.draw_text(x, 0, 64, 32, "EXP")
    x += cx + 16
    self.contents.font.color = normal_color
    cx = contents.text_size(@gold.to_s).width
    self.contents.draw_text(x, 0, cx, 32, @gold.to_s)
    x += cx + 4
    self.contents.font.color = system_color
    self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold)
    i = 0
    t = @treasures.uniq
    for item in t
      number = @treasures.rindex(item) + 1
      @treasures.delete(item)
      x = i / 7 * (320 - 16) + 4
      y = i % 7 * 32 + 32
      draw_item_name(item, x, y)
      self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
      self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
      i += 1
    end
  end
end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle   
 
  #--------------------------------------------------------------------------
  # - Processamento Principal
  #--------------------------------------------------------------------------
 
  alias cold_menu_main main
  def main
    troop = $data.troops[$game_temp.battle_troop_id]
    map_name = $data.map_infos[$game_map.map_id].name
    $game_system.maps_battled.push(map_name)
    for enemy in troop.members
      $game_system.info_enemy(enemy.enemy_id).battled += 1
      unless $game_system.info_enemy(enemy.enemy_id).habitat.include?(map_name)
        $game_system.info_enemy(enemy.enemy_id).habitat.push(map_name)
      end
    end
    cold_menu_main
  end
 
  #--------------------------------------------------------------------------
  # - Fim da Batalha
  #
  #     result : resultado (0=vitória, 1=derrota e 2=fuga)
  #--------------------------------------------------------------------------
 
  alias cold_menu_battle_end battle_end
  def battle_end(result)
    for enemy in $game_troop.enemies
      if enemy.dead?
        $game_system.info_enemy(enemy.id).killed += 1
      end
    end
    $actor_index = nil
    cold_menu_battle_end(result)
  end
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
 
  alias cold_menu_update update
  def update
    $actor_index = @actor_index
    unless @active_battler.nil?
      $actor_index = @active_battler.index
    end
    cold_menu_update
  end
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Fase de Pós-Batalha)
  #--------------------------------------------------------------------------
 
  def start_phase5
    # Alternar para a fase 5
    @phase = 5
    # Reproduzir ME de fim de Batalha
    $game_system.me_play($game_system.battle_end_me)
    # Retornar para BGM de antes da Batalha ser iniciada
    $game_system.bgm_play($game_temp.map_bgm)
    # Inicializar EXP, quantidade de dinheiro e tesouros
    exp = 0
    gold = 0
    treasures = []
    # Loop
    for enemy in $game_troop.enemies
      # Se o Inimigo não estiver escondido
      unless enemy.hidden
        # Adicionar a EXP e a quantidade de dinheiro obtidos
        exp += enemy.exp
        gold += enemy.gold
        # Determinar se aparece algum tesouro
        for item in enemy.items
          if rand(100) < item[2]
            case item[0]
            when 0
              treasures.push($data_items[item[1]])
              $game_system.info_enemy(enemy.id).gained_item(item[1])
            when 1
              treasures.push($data_weapons[item[1]])
              $game_system.info_enemy(enemy.id).gained_weapon(item[1])
            when 2
              treasures.push($data_armors[item[1]])
              $game_system.info_enemy(enemy.id).gained_armor(item[1])
            end
          end
        end
      end
    end
    old_treasures = [] + treasures
    treasures.clear
    i = 0
    for treasure in old_treasures
      treasures[i] = Array.new(old_treasures.rindex(treasure), treasure)
      old_treasures.delete(treasure)
      i += 1
    end
    # o Limite de tesouros é de 14 Itens
    treasures = treasures[0..13]
    treasures.flatten!
    # Obtendo a EXP
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          @status_window.level_up(i)
        end
      end
    end
    # Obtendo o dinheiro
    $game_party.gain_gold(gold)
    # Obtendo os tesouros
    for item in treasures
      case item
      when RPG::Item
        $game_party.gain_item(item.id, 1)
      when RPG::Weapon
        $game_party.gain_weapon(item.id, 1)
      when RPG::Armor
        $game_party.gain_armor(item.id, 1)
      end
    end
    # Criar janela de resultado de Batalha
    @result_window = Window_BattleResult.new(exp, gold, treasures)
    # Definir Espera
    @phase5_wait_count = 100
  end
end

#==============================================================================
# Game_Info_Enemy
#==============================================================================

class Game_Info_Enemy
 
  attr_accessor :battled
  attr_accessor :killed
  attr_reader   :id
  attr_reader   :name
  attr_reader   :items
  attr_reader   :armors
  attr_reader   :weapons
  attr_accessor :habitat
  attr_reader   :description
 
  def initialize(id)
    @battled = 0
    @killed = 0
    @enemy = $data_enemies[id]
    @name = @enemy.name
    @id = id
    @items = {}
    for i in 1...$data.items.size
      @items[i] = 0
    end
    @weapons = {}
    for i in 1...$data.weapons.size
      @weapons[i] = 0
    end
    @armors = {}
    for i in 1...$data.armors.size
      @armors[i] = 0
    end
    @habitat = []
  end

  def exp
    return @enemy.exp if @killed
  end
 
  def gold
    return @enemy.gold if @killed
  end
 
  def gained_item(id)
    @items[id] = @items[id] + 1
  end
 
  def gained_weapon(id)
    @weapons[id] = @weapons[id] + 1
  end
 
  def gained_armor(id)
    @armors[id] = @armors[id] + 1
  end
end

#==============================================================================
# Game_System
#==============================================================================

class Game_System
 
  #--------------------------------------------------------------------------
  # - Mapas que ocorreram batalhas
  #--------------------------------------------------------------------------
 
  def maps_battled
    @maps_battled ||= []
    return @maps_battled
  end
 
  #--------------------------------------------------------------------------
  # - info_enemy(id)
  #
  #     retorna as informações de um inimigo para ser usado no bestiario.
  #--------------------------------------------------------------------------
 
  def info_enemy(id)
    if id > 999 or $data_enemies[id].nil?
      return nil
    end
    @info_enemies ||= []
    if @info_enemies[id].nil?
      @info_enemies[id] = Game_Info_Enemy.new(id)
    end
    return @info_enemies[id]
  end
 
  #--------------------------------------------------------------------------
  # - Item Obtidos
  #--------------------------------------------------------------------------
 
  def items_obtained
    if @items_obtained.nil?
      @items_obtained = []
      for i in 1...$data_items.size
        @items_obtained[i] = false
      end
    end
    return @items_obtained
  end
 
  #--------------------------------------------------------------------------
  # - Equipamentos de def. obtidos
  #--------------------------------------------------------------------------
 
  def armors_obtained
    if @armors_obtained.nil?
      @armors_obtained = []
      for i in 1...$data_armors.size
        @armors_obtained[i] = false
      end
    end
    return @armors_obtained
  end
 
  #--------------------------------------------------------------------------
  # - Armas obtidas
  #--------------------------------------------------------------------------
 
  def weapons_obtained
    if @weapons_obtained.nil?
      @weapons_obtained = []
      for i in 1...$data_weapons.size
        @weapons_obtained[i] = false
      end
    end
    return @weapons_obtained
  end
 
  #--------------------------------------------------------------------------
  # - Hash para armazenar dados
  #--------------------------------------------------------------------------
 
  def save_hash
    @save_hash ||= {}
    return @save_hash
  end
end

#==============================================================================
# Game_Party
#==============================================================================

class Game_Party
 
  alias cold_bs_gain_item gain_item
  def gain_item(id, n)
    $game_system.items_obtained[id] = true
    cold_bs_gain_item(id, n)
  end
 
  alias cold_bs_gain_armor gain_armor
  def gain_armor(id, n)
    $game_system.armors_obtained[id] = true
    cold_bs_gain_armor(id, n)
  end
 
  alias cold_bs_gain_weapon gain_weapon
  def gain_weapon(id, n)
    $game_system.weapons_obtained[id] = true
    cold_bs_gain_weapon(id, n)
  end
end

#==============================================================================
# Game_Actor
#==============================================================================

class Game_Actor
 
  alias cold_bs_setup setup
  def setup(id)
    cold_bs_setup(id)
    $game_system.weapons_obtained[@weapon_id] = true
    $game_system.armors_obtained[armor1_id] = true
    $game_system.armors_obtained[armor2_id] = true
    $game_system.armors_obtained[armor3_id] = true
    $game_system.armors_obtained[armor4_id] = true
  end
 
end

#==============================================================================
# Window_BookCommand
#==============================================================================

class Window_BookCommand < Window_Base
 
  attr_reader   :index
 
  def initialize
    super(0,0,128+32,64)
    self.contents = Bitmap.new(640-32,480-32)
    self.contents.font.size = 14
    self.contents.font.color = normal_color
    self.z = 999999
    self.opacity = 0
    @line_max = 12
    @column_max = 2
    @index = 0
    @type_index = 0
    @item_max = 0
    @type_max = 0
  end
 
  def command
    return @commands[@index]
  end
 
  def type
    return @types[@type_index]
  end
 
  def refresh(text,types, commands)
    self.contents.clear
    self.height = commands.size*22 + 86 + 24
    self.x = (640-self.width)/2
    if Options::LAYOUTB
      self.y = 50+48
    else
      self.y = (480-self.height)/2
    end
    self.contents = Bitmap.new(128, commands.size*22+54+24)
    self.contents.font.size = 14
    self.contents.font.color = normal_color
    @types = types
    @commands = commands
    @item_max = commands.size
    @type_max = types.size
    for i in 0...commands.size
      x = 0
      y = i * 22 + 32 + 24
      self.contents.draw_text(x,y,128,22,@commands[i],1)
    end
    width = define_width(@types)
    x = (128-width)/2
    self.contents.draw_text(x-22, 24, 14, 22, "??")
    self.contents.draw_text(x+width+8, 24, 14, 22, "??")
    self.contents.draw_text(x-22, 0, width - 20, 24, text,2)
    draw_type
  end
 
  def define_width(array)
    contents = Bitmap.new(640,480)
    contents.font.size = 14
    width = 0
    for command in array
      p_width = contents.text_size(command).width
      if p_width > width
        width = p_width
      end
    end
    return [width, 128-44].max
  end
 
  def draw_type
    if @type_index != @last_t_index
      @last_t_index = @type_index
      width = define_width(@types)
      x = (128-width)/2
      rect = Rect.new(x, 24, width, 22)
      self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      self.contents.draw_text(rect, @types[@type_index],1)
    end
  end
 
  def update
    super
    if self.active and @item_max > 0 and @index >= 0
      if Input.repeat?(Input::DOWN)
        if Input.trigger?(Input::DOWN) or @index < @item_max - 1
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + 1) % @item_max
        end
      end
      if Input.repeat?(Input::UP)
        if Input.trigger?(Input::UP) or @index >= 1
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - 1 + @item_max) % @item_max
        end
      end
      if Input.repeat?(Input::RIGHT)
        $game_system.se_play($data_system.cursor_se)
        @type_index = (@type_index + 1) % @type_max
      end
      if Input.repeat?(Input::LEFT)
        $game_system.se_play($data_system.cursor_se)
        @type_index = (@type_index - 1) % @type_max
      end
    end
    draw_type
    update_cursor_rect
  end
 
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.clear
      return
    end
    y = @index * 22 + 32 + 24
    self.cursor_rect.set(0, y, self.width-32, 22)
  end
end

#==============================================================================
# Window_Book
#==============================================================================

class Window_Book < Window_Base
 
  attr_reader   :index
 
  def initialize
    super(0,0,160*2+32,12*22+37+32)
    self.contents = Bitmap.new(640-32,480-32)
    self.contents.font.size = 14
    self.contents.font.color = normal_color
    self.opacity = 0
    self.x = (640 - self.width) / 2
    self.y = (480 - (12*22+32)) / 2
    self.z = 999999
    self.active = false
    self.visible = false
    @line_max = 12
    @column_max = 2
    @item_max = 1
    @page = 0
    self.index = 0
    commands = []
    for i in 1..500
      if $data.items[i].nil?
        commands.push("???")
      else
        commands.push($data.items[i].name)
      end
    end
    #refresh(commands)
  end
 
  def define_width(array)
    contents = Bitmap.new(640,480)
    contents.font.size = 14
    width = 0
    for command in array
      p_width = contents.text_size(command).width
      if p_width > width
        width = p_width
      end
    end
    return [width, 128-44].max
  end
 
  def index=(index)
    @index = index
    self.page = (@index/item_max_per_pag) if index >= 0
    self.page = 0 if index < 0
    if self.active and @help_window != nil
      update_help
    end
    update_cursor_rect
  end
 
  def page=(page)
    @page = page
  end
 
  def page_max
    page = (@item_max / (@column_max * @line_max))
    page += 1 if (@item_max % (@column_max * @line_max)) > 0
    return page
  end
 
  def item_max_per_pag
    return (@column_max * @line_max)
  end
 
  def column_total
    column_total = (@column_max * (page_max - 1))
    i = [@item_max - item_max_per_pag, @column_max].min
    column_total += i
    return column_total
  end
 
  def show_page
    self.ox = @page * (self.width - 32)
  end

  def help_window=(help_window)
    @help_window = help_window
    if self.active and @help_window != nil
      update_help
    end
  end
 
  def refresh(commands)
    self.contents.clear
    @commands = commands
    @item_max = commands.size
    self.contents = Bitmap.new(160*2*[page_max, 1].max,height-32)
    self.contents.font.size = 14
    self.contents.font.color = normal_color
    for i in 0...commands.size
      x = i / 12 * 160
      y = i % 12 * 22
      self.contents.draw_text(x+4,y+4,160,18,@commands[i])
    end
    for pag in 0...page_max
      rect = Rect.new(pag*320, 22*12+4, 320, 1)
      self.contents.fill_rect(rect, normal_color)
      x = (self.width-32)/2 + pag*320
      y = 22*12+5
      self.contents.draw_text(x-28-22, y, 14, 32, "??")
      self.contents.draw_text(x+28, y, 14, 32, "??")
      p = pag + 1
      text = "Pag  " + p.to_s + "/" + page_max.to_s
      self.contents.draw_text(x-32, y, 56, 32, text, 1)
    end
  end
 
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    show_page
    x = @index / 12 * 160 - self.ox
    y = @index % 12 * 22
    self.cursor_rect.set(x, y, 160, 22)
  end
 
  def update
    super
    if self.active and @item_max > 0 and @index >= 0
      x = @index - ((item_max_per_pag) * @page)
      if Input.repeat?(Input::DOWN)
        if @index % @line_max < @line_max - 1 and
          @index + 1 < @item_max
          $game_system.se_play($data_system.cursor_se)
          @index += 1
        end
      end
      if Input.repeat?(Input::UP)
        if @index > 0 and @index % @line_max > 0
          $game_system.se_play($data_system.cursor_se)
          @index -= 1
        end
      end
      if Input.repeat?(Input::RIGHT)
        if @index + @line_max < (@page+1) * item_max_per_pag and
          @index / 24 == @page and @index + @line_max < @item_max
          $game_system.se_play($data_system.cursor_se)
          @index += @line_max
        elsif ((@index / @line_max) % @column_max == @column_max - 1 and Input.trigger?(Input::RIGHT)) or
              ((@index / @line_max) % @column_max == @column_max - 1 and @page < page_max - 1)
          $game_system.se_play($data_system.cursor_se)
          if @page == page_max - 1
            self.index = (@index + item_max_per_pag) % (page_max * item_max_per_pag)
          else
            self.index = [@index + item_max_per_pag, @item_max-1].min
          end
        end
      end
      if Input.repeat?(Input::LEFT)
        if @index - @line_max >= @page * item_max_per_pag
          $game_system.se_play($data_system.cursor_se)
          @index -= @line_max
        elsif ((@index / @line_max) % @column_max == 0 and Input.trigger?(Input::LEFT)) or
              ((@index / @line_max) % @column_max == 0 and @page > 0)
          $game_system.se_play($data_system.cursor_se)
          if @page == 0
            #x = @index - 24
            self.index = [@index + ((page_max - 1) * item_max_per_pag), @item_max-1].min
            #self.index = [(page_max - 1) * item_max_per_pag - x, @item_max-1].min
          else
            self.index = [@index - item_max_per_pag, 0].max
          end
        end
      end
    end
    if self.active and @help_window != nil
      update_help
    end
    update_cursor_rect
  end
end

#==============================================================================
# Window_Enemy
#==============================================================================

class Window_Enemy < Window_Base
 
  attr_reader   :enemy_id
 
  def initialize(enemy_id)
    super(124,52,416,398-32)
    self.opacity = 0
    self.z = 1000
    @self_active = true
    self.active = false
    self.visible = false
    refresh(enemy_id)
  end
 
  def need_refresh?(killed)
    return (@need_refresh[0] != killed)
  end
 
  def visible=(value)
    super(value)
    @view.visible = value unless @view.nil?
  end
 
  def dispose
    super
    @view.dispose = value unless @view.nil?
  end
 
  def refresh(enemy_id)
    @enemy_id = enemy_id
    @enemy = $game_system.info_enemy(enemy_id)
    @index = 0
    @items = []
    for i in 1...$data.items.size
      if @enemy.items[i] > 0
        @items.push($data_items[i])
      end
    end
    for i in 1...$data.weapons.size
      if @enemy.weapons[i] > 0
        @items.push($data_weapons[i])
      end
    end
    for i in 1...$data.armors.size
      if @enemy.armors[i] > 0
        @items.push($data_armors[i])
      end
    end
    @maps = @enemy.habitat
    i_m = [@items.size, 6 - [@maps.size, 3].min].min
    @max_items = [[[@items.size, 0].max, 6].min - @maps.size, i_m].max
    m_m = [@maps.size, 6 - @max_items].min
    @max_maps = [[[@maps.size, 0].max, 6].min - @items.size, m_m].max
    @need_refresh = [0 + @enemy.killed,0 + @enemy.battled]
    self.contents = Bitmap.new(416-32,398-64)
    self.contents.font.size = 14
    self.contents.font.color = normal_color
    draw_name(0, 0)
    draw_battler(0,22)
    draw_exp(260, 22)
    draw_gold(260, 44)
    draw_killed(260, 66)
    self.contents.draw_text(260, 88, 124, 18, "Obtained Items :")
    rect = Rect.new(256,106,130,1)
    self.contents.fill_rect(rect, normal_color)
    draw_items(256, 107)
    i_size = @max_items*21
    self.contents.draw_text(260, 110+i_size, 124, 18, "Habitat:")
    rect = Rect.new(256,128+i_size,130,1)
    self.contents.fill_rect(rect, normal_color)
    draw_maps(256, 129+i_size)
    y = 67+67+23+23+88+4
    if Options::ENEMY_DESCRIPTION[@enemy.id] != ""
      self.contents.draw_text(4, y-20, 68, 22, "Description:")
      rect = Rect.new(0, y-1, 68, 1)
      self.contents.fill_rect(rect, normal_color)
    end
    draw_description(0,y)
  end

  def draw_name(x,y)
    id = sprintf("%03d", @enemy.id.to_s)
    name = id + ": " + @enemy.name
    width = self.contents.text_size(name).width
    self.contents.draw_text(x + 4, y, width, 22, name)
    rect = Rect.new(x,y+19,width+8,1)
    self.contents.fill_rect(rect, normal_color)
  end
 
  def draw_exp(x,y)
    self.contents.draw_text(x, y, 64, 22, "Exp: ")
    if @enemy.killed > 0
      exp = @enemy.exp.to_s
      self.contents.draw_text(x + 64, y, 60, 22, exp, 2)
    else
      self.contents.draw_text(x + 64, y, 60, 22, "???", 2)
    end
  end
 
  def draw_gold(x,y)
    g = $data_system.words.gold
    self.contents.draw_text(x, y, 64, 22, g)
    if @enemy.killed > 0
      gold = @enemy.gold.to_s
      self.contents.draw_text(x + 64, y, 60, 22, gold, 2)
    else
      self.contents.draw_text(x + 64, y, 60, 22, "???", 2)
    end
  end
 
  def draw_killed(x,y)
    self.contents.draw_text(x, y, 64, 22, "Defeated:")
    #if @enemy.killed > 0
    self.contents.draw_text(x + 64, y, 60, 22, @enemy.killed.to_s, 2)
    #end
  end
 
  def draw_items(x,y)
    @items_x = x
    @items_y = y
    @items_index = 0
    @items_active = false
    @items_oy = 0
    y2 = 0
    z = [@items.size * 21, (@max_items - 1)*21].min
    for item in @items
      if y2.between?(@items_oy, z)
        draw_item(item, x+4, y + y2)
        y2 += 21
      end
    end
  end
 
  def draw_item(item, x, y)
    rect = Rect.new(x, y, 124, 21)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    name = item.name
    self.contents.draw_text(x+2, y, 100, 20, name)
    case item
    when RPG::Item
      number = @enemy.items[item.id]
    when RPG::Weapon
      number = @enemy.weapons[item.id]
    when RPG::Armor
      number = @enemy.armors[item.id]
    end
    self.contents.draw_text(x+104, y, 18, 20, number.to_s, 2)
    rect = Rect.new(x, y + 20, 124, 1)
    self.contents.fill_rect(rect, normal_color)
  end
 
  def refresh_items
    row = @items_index
    if row < @items_oy / 21
      @items_oy = self.top_row(row, @items.size)
    end
    if row > @items_oy / 21 + (@max_items - 1)
      @items_oy = self.top_row(row - (@max_items - 1), @items.size)
    end
    x = @items_x
    y = @items_y
    y2 = 0
    y3 = 0
    z = [@items.size * 21, (@max_items - 1)*21].min + @items_oy
    for item in @items
      if y2.between?(@items_oy, z)
        draw_item(item, x+4, y + y3)
        y3 += 21
      end
      y2 += 21
    end
  end
 
  def draw_maps(x,y)
    @maps_x = x
    @maps_y = y
    @maps_index = 0
    @maps_active = false
    @maps_oy = 0
    y2 = 0
    z = [@maps.size * 21, (@max_maps - 1)*21].min
    for map in @maps
      if y2.between?(@maps_oy, z)
        draw_map(map, x, y + y2)
        y2 += 21
      end
    end
  end
 
  def draw_map(map, x, y)
    rect = Rect.new(x + 4, y, 124, 21)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(x + 6, y, 122, 20, map)
    rect = Rect.new(x + 4, y + 20, 124, 1)
    self.contents.fill_rect(rect, normal_color)
  end
 
  def refresh_maps
    row = @maps_index
    if row < @maps_oy / 21
      @maps_oy = self.top_row(row, @maps.size)
    end
    if row > @maps_oy / 21 + (@max_maps - 1)
      @maps_oy = self.top_row(row - (@max_maps - 1), @maps.size)
    end
    x = @maps_x
    y = @maps_y
    y2 = 0
    y3 = 0
    z = [@maps.size * 21, (@max_maps - 1)*21].min + @maps_oy
    for map in @maps
      if y2.between?(@maps_oy, z)
        draw_map(map, x, y + y3)
        y3 += 21
      end
      y2 += 21
    end
  end
 
  def draw_description(x, y)
    e_description = Options::ENEMY_DESCRIPTION[@enemy.id]
    description = lines(e_description, self.width - 32)
    for i in 0...description.size
      self.contents.draw_text(x+4, y+2+i*20, self.width - 32, 20, description[i])
    end
  end
 
  def line(text)
    words = text.split(" ")
    return_text = ""
    for word in words
      x = "!@$%¨&*()"
      return_text += word + x + " "
      return_text2 = return_text.gsub(x,"")
      t_width = self.contents.text_size(return_text2).width
      if t_width > self.width - 32
        return return_text.gsub(" "+word+x, "")
      else
        return_text.gsub!(word+x, word)
      end
    end
  end
 
  def draw_battler(x, y)
    enemy = $data.enemies[@enemy.id]
    bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
    @view = Viewport.new(0, 0, 640, 480)
    @view.z = self.z - 10
    @view.visible = self.visible
    @sprite = Sprite.new(@view)
    @sprite.bitmap =  bitmap
    w = bitmap.width
    h = bitmap.height
    @sprite.x = x + (256 - w)/2 + self.x + 16
    @sprite.y = y + (256 - h)/2 + self.y + 16
  end
 
  def update
    super
    if @self_active and self.active
      if Input.repeat?(Input::DOWN)
        $game_system.se_play($data_system.cursor_se)
        @index = (@index + 1) % 2
      end
      if Input.repeat?(Input::UP)
        $game_system.se_play($data_system.cursor_se)
        @index = (@index - 1 + 2) % 2
      end
      if Input.repeat?(Input::RIGHT)
        case @index
        when 0
          if @items.size > 0
            $game_system.se_play($data_system.cursor_se)
            @self_active = false
            @items_active = true
          end
        when 1
          if @maps.size > 0
            $game_system.se_play($data_system.cursor_se)
            @self_active = false
            @maps_active = true
          end
        end
      end
    elsif @items_active and self.active and @items.size > 0
      if Input.repeat?(Input::DOWN)
        $game_system.se_play($data_system.cursor_se)
        @items_index = (@items_index + 1) % @items.size
        refresh_items
      end
      if Input.repeat?(Input::UP)
        $game_system.se_play($data_system.cursor_se)
        @items_index = (@items_index - 1 + @items.size) % @items.size
        refresh_items
      end
      if Input.repeat?(Input::LEFT)
        $game_system.se_play($data_system.cursor_se)
        @self_active = true
        @items_active = false
      end
    elsif @maps_active and self.active and @maps.size > 0
      if Input.repeat?(Input::DOWN)
        $game_system.se_play($data_system.cursor_se)
        @maps_index = (@maps_index + 1) % @maps.size
        refresh_maps
      end
      if Input.repeat?(Input::UP)
        $game_system.se_play($data_system.cursor_se)
        @maps_index = (@maps_index - 1 + @maps.size) % @maps.size
        refresh_maps
      end
      if Input.repeat?(Input::LEFT)
        $game_system.se_play($data_system.cursor_se)
        @self_active = true
        @maps_active = false
      end
    end
    update_cursor
  end
 
  def update_cursor
    if @self_active and self.active
      i_size = @max_items * 21 + 22
      y = 88 + i_size * @index
      self.cursor_rect.set(256, y, 128, 18)
    elsif @items_active and self.active
      y = 88 + 21*@items_index + 19 - @items_oy
      self.cursor_rect.set(260, y, 124, 20)
    elsif @maps_active and self.active
      i_size = @max_items * 21 + 22
      y = 88 + 21*@maps_index + 19 - @maps_oy + i_size
      self.cursor_rect.set(260, y, 124, 20)
    elsif !self.active
      self.cursor_rect.empty
    end
  end
 
  def top_row(row, row_max)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
    end
    return row * 21
  end
end


#==============================================================================
# Window_Enemies
#==============================================================================

class Window_Enemies
 
  attr_accessor :active
 
  def initialize
    @index = 0
    @windows = []
    @last_index = 0
    @active = false
    self.visible = false
  end
   
  def visible=(value)
    @visible = value
    @windows[@index].visible = value if @windows[@index].is_a?(Window)
  end
 
  def refresh(windows)
    @windows[@index].visible = false if @windows[@index].is_a?(Window)
    @windows[@index].active = false if @windows[@index].is_a?(Window)
    @windows = windows
    @index = 0
    @windows[@index].visible = true if @windows[@index].is_a?(Window)
  end
&nbs

11
Script Requests / HUD Modification
February 19, 2011, 02:13:54 am
 :'( Hello everybody... I Found this awesome Active HUD script... The author is Moghunter... but have a problem.... its make it only for one actor... exist a way to do that the images of expressions change if other actor is the leader???

Here is the website...

http://www.atelier-rgss.com/RGSS/Menu/XP_Menu15.html

And heres is the demo

http://www.atelier-rgss.com/RGSS/Demos/XP_Active_Hud.exe



#_______________________________________________________________________________
# MOG - Active Hud 1.1     
#_______________________________________________________________________________
# Por Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# - Presenta el status deñ héroe en el mapa.
#   (HP,SP,Condición,Exp,level) en imágenes.
#
# ARQUIVOS NECESSÁRIOS
#
# Hud_Exp_Meter.png
# Hud_Exp_Number
# Hud_Face
# Hud_HP_Meter
# Hud_HP_Number
# Hud_Layout
# Hud_SP_Meter
# Hud_SP_Number
#
# las imágenes deben estar en la carpeta Windowskins
#
# FACES ANIMADAS
#   Es preciso tener una imagen con el nombre. " Hud_Face.png "
#   La imagen debe contener 5 faces una al lado de la otra en el siguiente
#   orden.
#   1 - Normal 2 - Alegre 3 - triste 4 - Acción 5 - Cansado.
#
# MEDIDORES ANIMADOS
#   Cree una imagen en gradiente y cree otra imagen con un tamaño
#   de ancho 3 veces mayor que la imagen original.
#   Ahora coloque en este archivo 3 imagenes originales una al lado de la otra
#   con la dirección opuesta a la de la imagen anterior.
#   Ese será su medidor en gradiente animado.
#
#_______________________________________________________________________________
module MOG
  #Posición general de HUD
  HUD_X = 0
  HUD_Y = 400 
 
  #Posición del Medidor de HP
  HP_METER_X = 73
  HP_METER_Y = 42   
  #Posición del numero de HP
  HP_NUMBER_X = 95
  HP_NUMBER_Y = 30 
  #Posición del Medidor de SP
  SP_METER_X = 33
  SP_METER_Y = 64 
  #Posición del numero de SP
  SP_NUMBER_X = 55
  SP_NUMBER_Y = 53     
  #Posición del medidor de EXP
  EXP_METER_X = 60
  EXP_METER_Y = 26
  #Posición del Level.
  EXP_NUMBER_X = 60
  EXP_NUMBER_Y = 5
  #Posición del diseño
  LAYOUT_X = 5
  LAYOUT_Y = 10
  #Posición de la face
  FACE_X = 5
  FACE_Y = 10
  #Posición del Dinero
  GOLD_X = 130
  GOLD_Y = 55
  #Activar posición de las condiciones en relación al personaje
  STATES_POS_CHARACTER = false
  #Presenta las condiciones con efecto elevado.
  FLOAT_STATES = true
  #Posición de las condiciones
  STATES_X = 150
  STATES_Y = 50
  #Definición de % cuando el HP está bajo. Esta influencia
  #en color de HP y SP
  LOWHP = 30
  #ID del switch que deshabilita el HUD
  DISABLE_HUD_SWITCH = 5
end
#==============================================================================
# Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
def now_exp
    return @exp - @exp_list[@level]
end
def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
    end
end
#==============================================================================
# Game_Temp
#==============================================================================
class Game_Temp
  attr_accessor :hud_face_type
  attr_accessor :hud_face_time
  attr_accessor :hud_face_time2
  attr_accessor :hud_face_refresh
  alias active_hud_initialize initialize
  def initialize
    active_hud_initialize
    @hud_face_type = 0
    @hud_face_time = 0
    @hud_face_time2 = 0
    @hud_face_refresh = false
  end   
end
#==============================================================================
# Active_Hud
#==============================================================================
class Active_Hud < Sprite 
  include MOG
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(viewport)
    super(viewport)
    @actor = $game_party.actors[0]
    return if @actor == nil
    @low_sp = LOWHP
    @low_hp = LOWHP
    @hp = @actor.hp
    @sp = @actor.sp
    @exp = @actor.exp
    @level = @actor.level
    @hp_old = @actor.hp
    @hp_ref = @hp_old
    @hp_refresh = false
    @sp_old = @actor.sp
    @sp_ref = @sp_old
    @sp_refresh = false
    # Layout -------------------------------------------------------------------
    @layout_image = RPG::Cache.windowskin("Hud_Layout")
    @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
    @layout_sprite = Sprite.new
    @layout_sprite.bitmap = @layout_bitmap
    @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
    @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)     
    @layout_sprite.z = 5007
    @layout_sprite.x = HUD_X + LAYOUT_X
    @layout_sprite.y = HUD_Y + LAYOUT_Y     
    # Layout -------------------------------------------------------------------
    @face_image = RPG::Cache.windowskin("Hud_Face")
    @face_bitmap = Bitmap.new(@face_image.width,@face_image.height)
    @face_sprite = Sprite.new
    @face_sprite.bitmap = @face_bitmap
    @face_cw = @face_bitmap.width / 5
    @face_ch = @face_bitmap.height
    @face_src_rect_back = Rect.new(@face_cw * $game_temp.hud_face_type, 0,@face_cw , @face_ch)
    @face_bitmap.blt(0,0, @face_image, @face_src_rect_back)     
    @face_sprite.z = 5007
    @face_sprite.x = HUD_X + FACE_X
    @face_sprite.y = HUD_Y + FACE_Y       
    if @actor.hp < @actor.maxhp * @low_hp / 100
       $game_temp.hud_face_type = 4             
    else
       $game_temp.hud_face_type = 0
    end           
    $game_temp.hud_face_time = 10
    # States -------------------------------------------------------------------
    @states_max = 0
    @states = Sprite.new
    @states.bitmap = Bitmap.new(104,24)
    @states_x = @actor.states.size
    @states_y = 0
    @states_f = false
    sta = []
      for i in @actor.states
        unless @states_max > 3
          sta.push($data_states[i].name)
          image = RPG::Cache.icon(sta[@states_max])
          cw = image.width
          ch = image.height
          @states.bitmap.blt(26 * @states_max, 0, image, Rect.new(0, 0, cw, ch))
          @states_max += 1
         end
       end 
    if STATES_POS_CHARACTER == true 
      @states.x = 5 -(13 * @states_x) + $game_player.screen_x
      @states.y = @states_y + $game_player.screen_y
    else
      @states.x = HUD_X + STATES_X
      @states.y = @states_y + HUD_Y + STATES_Y
    end
    @states.z = 5009
    # HP ---------------------------------------------------------------------
    @hp_number_image = RPG::Cache.windowskin("Hud_HP_Number")
    @hp_number_bitmap = Bitmap.new(@hp_number_image.width,@hp_number_image.height)
    @hp_number_sprite = Sprite.new
    @hp_number_sprite.bitmap = @hp_number_bitmap
    @hp_number_sprite.z = 5009
    @hp_number_sprite.x = HUD_X + HP_NUMBER_X
    @hp_number_sprite.y = HUD_Y + HP_NUMBER_Y
    @im_cw = @hp_number_image.width / 10
    @im_ch = @hp_number_image.height / 2   
    @hp_src_rect = Rect.new(@im_cw,0, @im_cw, @im_ch)
    @hp_number_text = @actor.hp.abs.to_s.split(//)
      lowhp2 = @actor.maxhp * 30 / 100
      if @actor.hp < lowhp2
      @health2 = @im_ch
      else
      @health2 = 0
      end
      @hp_health = @health2
      for r in 0..@hp_number_text.size - 1         
         @hp_number_abs = @hp_number_text[r].to_i
         @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, @hp_health, @im_cw, @im_ch)
         @hp_number_bitmap.blt(20 + ((@im_cw - 7) *  r), 0, @hp_number_image, @hp_src_rect)       
      end 
    @hp_flow = 0
    @hp_damage_flow = 0
    @hp_image = RPG::Cache.windowskin("Hud_HP_Meter")
    @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
    @hp_range = @hp_image.width / 3
    @hp_width = @hp_range  * @actor.hp / @actor.maxhp 
    @hp_height = @hp_image.height / 2
    @hp_width_old = @hp_width
    @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
    @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
    @hp_sprite = Sprite.new
    @hp_sprite.bitmap = @hp_bitmap
    @hp_sprite.z = 5008
    @hp_sprite.x = HUD_X + HP_METER_X
    @hp_sprite.y = HUD_Y + HP_METER_Y
    hp_flow_update
    hp_number_refresh
    # SP ---------------------------------------------------------------------
    @sp_number_image = RPG::Cache.windowskin("Hud_SP_Number")
    @sp_number_bitmap = Bitmap.new(@sp_number_image.width,@sp_number_image.height)
    @sp_number_sprite = Sprite.new
    @sp_number_sprite.bitmap = @sp_number_bitmap
    @sp_number_sprite.z = 5009
    @sp_number_sprite.x = HUD_X + SP_NUMBER_X
    @sp_number_sprite.y = HUD_Y + SP_NUMBER_Y
    @sp_im_cw = @sp_number_image.width / 10
    @sp_im_ch = @sp_number_image.height / 2   
    @sp_src_rect = Rect.new(@sp_im_cw,0, @sp_im_cw, @sp_im_ch)
    @sp_number_text = @actor.sp.abs.to_s.split(//)
    for r in 0..@sp_number_text.size - 1
       @sp_number_abs = @sp_number_text[r].to_i
       @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, 0, @sp_im_cw, @sp_im_ch)
       @sp_number_bitmap.blt(20 + ((@sp_im_cw - 7) *  r), 0, @sp_number_image, @sp_src_rect)       
    end     
    @sp_flow = 0
    @sp_damage_flow = 0
    @sp_image = RPG::Cache.windowskin("Hud_SP_Meter")
    @sp_bitmap = Bitmap.new(@sp_image.width,@sp_image.height)
    @sp_range = @sp_image.width / 3
    @sp_width = @sp_range  * @actor.sp / @actor.maxsp 
    @sp_height = @sp_image.height / 2
    @sp_width_old = @sp_width
    @sp_src_rect = Rect.new(@sp_range, 0, @sp_width, @sp_height)
    @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
    @sp_sprite = Sprite.new
    @sp_sprite.bitmap = @sp_bitmap
    @sp_sprite.z = 5008
    @sp_sprite.x = HUD_X + SP_METER_X
    @sp_sprite.y = HUD_Y + SP_METER_Y
    sp_flow_update
    sp_number_refresh
    # Level ---------------------------------------------------------------------
    @level_image = RPG::Cache.windowskin("Hud_Exp_Meter")
    @level_bitmap = Bitmap.new(@level_image.width,@level_image.height)
    @level_sprite = Sprite.new   
    if @actor.next_exp != 0
    rate = @actor.now_exp.to_f / @actor.next_exp
    else
    rate = 1
    end
    if @actor.level < 99
    @level_cw = @level_image.width * rate
    else
    @level_cw = @level_image.width
    end       
    @level_src_rect_back = Rect.new(0, 0,@level_cw, @level_image.height)
    @level_bitmap.blt(0,0, @level_image, @level_src_rect_back)
    @level_sprite.bitmap = @level_bitmap
    @level_sprite.z = 5007
    @level_sprite.x = HUD_X + EXP_METER_X
    @level_sprite.y = HUD_Y + EXP_METER_Y   
    # Level Number ---------------------------------------------------------------------
    @level_number_image = RPG::Cache.windowskin("Hud_Exp_Number")
    @level_number_bitmap = Bitmap.new(@level_number_image.width,@level_number_image.height)
    @level_number_sprite = Sprite.new
    @level_number_sprite.bitmap = @level_number_bitmap
    @level_number_sprite.z = 5000
    @level_number_sprite.x = HUD_X + EXP_NUMBER_X
    @level_number_sprite.y = HUD_Y + EXP_NUMBER_Y
    @level_im_cw = @level_number_image.width / 10
    @level_im_ch = @level_number_image.height     
    @level_number_text = @actor.level.abs.to_s.split(//)
    for r in 0..@level_number_text.size - 1
       @level_number_abs = @level_number_text[r].to_i
       @level_src_rect = Rect.new(@level_im_cw * @level_number_abs, 0, @level_im_cw, @level_im_ch)
       @level_number_bitmap.blt(13 + ((@level_im_cw - 12) *  r), 0, @level_number_image, @level_src_rect)       
    end 
    #Visible
    if $game_switches[MOG::DISABLE_HUD_SWITCH] == true
         @hp_number_sprite.visible = false   
         @hp_sprite.visible = false 
         @sp_number_sprite.visible = false
         @sp_sprite.visible = false   
         @states.visible = false
         @level_sprite.visible = false
         @level_number_sprite.visible = false
         @layout_sprite.visible = false
         @face_sprite.visible = false
    else   
         @hp_number_sprite.visible = true
         @hp_sprite.visible = true   
         @sp_number_sprite.visible = true
         @sp_sprite.visible = true   
         @states.visible = true
         @level_sprite.visible = true
         @level_number_sprite.visible = true
         @layout_sprite.visible = true
         @face_sprite.visible = true
    end   
   
   
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    return if @actor == nil
    #Hp Number Dispose
    @hp_number_sprite.bitmap.dispose
    @hp_number_sprite.bitmap = nil
    @hp_number_sprite.dispose
    @hp_number_sprite = nil
    @hp_number_bitmap.dispose
    @hp_number_bitmap = nil
    #HP Meter Dispose
    @hp_sprite.bitmap.dispose
    @hp_sprite.bitmap = nil
    @hp_sprite.dispose
    @hp_sprite = nil 
    @hp_bitmap.dispose
    @hp_bitmap = nil
    #SP Number Dispose
    @sp_number_sprite.bitmap.dispose
    @sp_number_sprite.bitmap = nil
    @sp_number_sprite.dispose
    @sp_number_sprite = nil
    @sp_number_bitmap.dispose
    @sp_number_bitmap = nil
    #SP Meter Dispose
    @sp_sprite.bitmap.dispose
    @sp_sprite.bitmap = nil
    @sp_sprite.dispose
    @sp_sprite = nil   
    @sp_bitmap.dispose
    @sp_bitmap = nil
    #States Dispose
    @states.bitmap.dispose
    @states.bitmap = nil
    @states.dispose
    @states = nil
    #Level Meter Dispose
    @level_sprite.bitmap.dispose
    @level_sprite.bitmap = nil
    @level_sprite.dispose
    @level_sprite = nil   
    @level_bitmap.dispose
    @level_bitmap = nil     
    #Level Number Dispose
    @level_number_sprite.bitmap.dispose
    @level_number_sprite.bitmap = nil
    @level_number_sprite.dispose
    @level_number_sprite = nil   
    @level_number_bitmap.dispose
    @level_number_bitmap = nil
    #Layout Dispose
    @layout_sprite.bitmap.dispose
    @layout_sprite.bitmap = nil
    @layout_sprite.dispose
    @layout_sprite = nil   
    @layout_bitmap.dispose
    @layout_bitmap = nil     
    #Face Dispose
    @face_sprite.bitmap.dispose
    @face_sprite.bitmap = nil
    @face_sprite.dispose
    @face_sprite = nil   
    @face_bitmap.dispose
    @face_bitmap = nil   
  end
  #--------------------------------------------------------------------------
  # * Visible_on
  #--------------------------------------------------------------------------
  def visible_on
    #Visible
    if $game_switches[MOG::DISABLE_HUD_SWITCH] == true
         @hp_number_sprite.visible = false   
         @hp_sprite.visible = false 
         @sp_number_sprite.visible = false
         @sp_sprite.visible = false   
         @states.visible = false
         @level_sprite.visible = false
         @level_number_sprite.visible = false
         @layout_sprite.visible = false
         @face_sprite.visible = false
    else   
         @hp_number_sprite.visible = true
         @hp_sprite.visible = true   
         @sp_number_sprite.visible = true
         @sp_sprite.visible = true   
         @states.visible = true
         @level_sprite.visible = true
         @level_number_sprite.visible = true
         @layout_sprite.visible = true
         @face_sprite.visible = true
    end       
  end
  #--------------------------------------------------------------------------
  # * Updade
  #--------------------------------------------------------------------------
  def update
     return if @actor == nil
     visible_on
     hp_number_update if @hp_old != @actor.hp
     hp_number_refresh if @hp_refresh == true or @actor.hp == 0
     sp_number_update if @sp_old != @actor.sp
     sp_number_refresh if @sp_refresh == true
     level_update if @level != @actor.level
     level_up_effect if @level_number_sprite.zoom_x > 1.00 
     exp_update if @exp != @actor.exp
     states_effect if @states.zoom_x > 1.00 
     face_chance if $game_temp.hud_face_refresh == true or $game_temp.hud_face_time == 1
     face_normal if $game_temp.hud_face_time2 == 1
     face_effect
     states_update
     hp_flow_update
     sp_flow_update
     $game_temp.hud_face_time -= 1 if $game_temp.hud_face_time > 0
     $game_temp.hud_face_time2 -= 1 if $game_temp.hud_face_time2 > 0
   end
  #--------------------------------------------------------------------------
  # * face_normal
  #--------------------------------------------------------------------------
  def face_normal
    $game_temp.hud_face_refresh = false
    if @actor.hp < @actor.maxhp * @low_hp / 100
       $game_temp.hud_face_type = 4
    else 
       $game_temp.hud_face_type = 0
    end
    $game_temp.hud_face_time2 = 0
    @face_sprite.bitmap.clear
    @face_src_rect_back = Rect.new(@face_cw * $game_temp.hud_face_type, 0,@face_cw , @face_ch)
    @face_bitmap.blt(0,0, @face_image, @face_src_rect_back)   
    @face_sprite.x = HUD_X + FACE_X
  end 
  #--------------------------------------------------------------------------
  # * Face Chance
  #--------------------------------------------------------------------------
   def face_chance     
    $game_temp.hud_face_refresh = false
    @face_sprite.bitmap.clear
    @face_src_rect_back = Rect.new(@face_cw * $game_temp.hud_face_type, 0,@face_cw , @face_ch)
    @face_bitmap.blt(0,0, @face_image, @face_src_rect_back)
    @face_sprite.x = HUD_X + FACE_X
   end
  #--------------------------------------------------------------------------
  # * Face Effect
  #--------------------------------------------------------------------------
  def face_effect
    if $game_temp.hud_face_type == 2
       @face_sprite.x = HUD_X + FACE_X + rand(10)
       if $game_temp.hud_face_time == 2
         if @actor.hp < @actor.maxhp * @low_hp / 100
            $game_temp.hud_face_type = 4
         else             
            $game_temp.hud_face_type = 0
         end
       end
    end
  end 
  #--------------------------------------------------------------------------
  # * States_Update
  #--------------------------------------------------------------------------
  def states_update
    if STATES_POS_CHARACTER == true 
      @states.x = 5 -(13 * @states_x) + $game_player.screen_x
      @states.y = @states_y + $game_player.screen_y
    else
      @states.x = HUD_X + STATES_X
      @states.y = @states_y + HUD_Y + STATES_Y
    end
    if FLOAT_STATES == true
     if @states_f == false
        @states_y += 1
        @states_f = true if @states_y > 10
     else   
        @states_y -= 1
        @states_f = false if @states_y < -10               
      end 
     end
     @states.opacity = 155 + rand(100)
     if @states_x != @actor.states.size
        @states_x = @actor.states.size
        @states.bitmap.clear
        @states_max = 0
        sta = []
        for i in @actor.states
           unless @states_max > 3
             sta.push($data_states[i].name)
             image = RPG::Cache.icon(sta[@states_max])
             cw = image.width
             ch = image.height
             @states.bitmap.blt(26 * @states_max, 0, image, Rect.new(0, 0, cw, ch))
             @states_max += 1
           end
         end 
       sta = nil
       @states.zoom_x = 2
       @states.zoom_y = 2
     end
   end
  #--------------------------------------------------------------------------
  # * States_Effect
  #--------------------------------------------------------------------------
   def states_effect
       @states.zoom_x -= 0.02
       @states.zoom_y -= 0.02
    if @states.zoom_x <= 1.00     
       @states.zoom_x = 1.00
       @states.zoom_y = 1.00
    end 
   end
  #--------------------------------------------------------------------------
  # * hp_number_update
  #--------------------------------------------------------------------------
  def hp_number_update
       @hp_refresh = true
       if @hp_old < @actor.hp
           @hp_ref = 5 * (@actor.hp - @hp_old) / 100
           @hp_ref = 1 if @hp_ref < 1
           @hp += @hp_ref     
           if $game_temp.hud_face_type != 1
              $game_temp.hud_face_type = 1
              $game_temp.hud_face_refresh = true
              @face_sprite.x = HUD_X + FACE_X
           end           
           if @hp >= @actor.hp
              @hp_old = @actor.hp
              @hp = @actor.hp   
              @hp_ref = 0
             if @actor.hp < @actor.maxhp * @low_hp / 100 and
                $game_temp.hud_face_type != 4
                $game_temp.hud_face_type = 4
                $game_temp.hud_face_time = 30               
             elsif $game_temp.hud_face_type != 0
                $game_temp.hud_face_type = 0
                $game_temp.hud_face_time = 30
             end   
           end 
           
        elsif @hp_old > @actor.hp   
           @hp_refresh = true
           @hp_ref = 5 * (@hp_old - @actor.hp) / 100
           @hp_ref = 1 if @hp_ref < 1
           @hp -= @hp_ref               
           if $game_temp.hud_face_type != 2
              $game_temp.hud_face_type = 2
              $game_temp.hud_face_refresh = true             
           end
           if @hp <= @actor.hp
              @hp_old = @actor.hp
              @hp = @actor.hp   
              @hp_ref = 0
            if $game_temp.hud_face_type != 0
                $game_temp.hud_face_time = 30
             end   
           end           
        end 
   end 
  #--------------------------------------------------------------------------
  # * hp_number_refresh
  #--------------------------------------------------------------------------
  def hp_number_refresh
      @hp_number_sprite.bitmap.clear
      @hp_number_text = @hp.abs.to_s.split(//)
      lowhp2 = @actor.maxhp * @low_hp / 100
      if @actor.hp < lowhp2
      @health2 = @im_ch
      else
      @health2 = 0
      end
      @hp_health = @health2
      for r in 0..@hp_number_text.size - 1         
         @hp_number_abs = @hp_number_text[r].to_i
         @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, @hp_health, @im_cw, @im_ch)
         @hp_number_bitmap.blt(20 + ((@im_cw - 7) *  r), 0, @hp_number_image, @hp_src_rect)       
       end 
       @hp_refresh = false if @hp == @actor.hp
  end
  #--------------------------------------------------------------------------
  # * Hp Flow Update
  #--------------------------------------------------------------------------
  def hp_flow_update
      @hp_sprite.bitmap.clear
      @hp_width = @hp_range  * @actor.hp / @actor.maxhp

          #HP Damage---------------------------------
          if @hp_width_old != @hp_width
          @hp_width_old -= 0.5 if @hp_width_old > @hp_width 
          if @hp_width_old < @hp_width
             @hp_width_old = @hp_width
          end     
          @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
          @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)       
          end
       
      #HP Real------------------------------------
      @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
      @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
         
      @hp_flow += 5 
      if @hp_flow >= @hp_image.width - @hp_range
         @hp_flow = 0 
      end
  end     
  #--------------------------------------------------------------------------
  # * Sp_number_update
  #--------------------------------------------------------------------------
  def sp_number_update
    @sp_refresh = true
    if @sp_old < @actor.sp
       @sp_refresh = true
       @sp_ref = 5 * (@actor.sp - @sp_old) / 100
       @sp_ref = 1 if @sp_ref < 1
       @sp += @sp_ref 
           if $game_temp.hud_face_type != 1
              $game_temp.hud_face_type = 1
              $game_temp.hud_face_refresh = true
              @face_sprite.x = HUD_X + FACE_X
           end           
       if @sp >= @actor.sp
          @sp_old = @actor.sp
          @sp = @actor.sp   
          @sp_ref = 0
             if @actor.hp < @actor.maxhp * @low_hp / 100 and
                $game_temp.hud_face_type != 4
                $game_temp.hud_face_type = 4
                $game_temp.hud_face_time = 30               
             elsif $game_temp.hud_face_type != 0
                $game_temp.hud_face_type = 0
                $game_temp.hud_face_time = 30
             end           
       end 
    elsif @sp_old >= @actor.sp   
       @sp_ref = 5 * (@sp_old - @actor.sp) / 100
       @sp_ref = 1 if @sp_ref < 1
       @sp -= @sp_ref     
           if $game_temp.hud_face_type != 3
              $game_temp.hud_face_type = 3
              $game_temp.hud_face_refresh = true
           end       
       if @sp <= @actor.sp
          @sp_old = @actor.sp
          @sp = @actor.sp   
          @sp_ref = 0
             if @actor.hp < @actor.maxhp * @low_hp / 100 and
                $game_temp.hud_face_type != 4
                $game_temp.hud_face_type = 4
                $game_temp.hud_face_time = 35               
             elsif $game_temp.hud_face_type != 0
                $game_temp.hud_face_type = 0
                $game_temp.hud_face_time = 35
             end             
        end         
    end     
  end 
  #--------------------------------------------------------------------------
  # * sp_number_refresh
  #--------------------------------------------------------------------------
  def sp_number_refresh
    @sp_number_sprite.bitmap.clear
    @s = @actor.sp * 100 / @actor.maxsp
    @sp_number_text = @sp.abs.to_s.split(//)
      for r in 0..@sp_number_text.size - 1         
         @sp_number_abs = @sp_number_text[r].to_i
         if @actor.sp <= @actor.maxsp * @low_sp / 100
         @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, @sp_im_ch, @sp_im_cw, @sp_im_ch) 
         else 
         @sp_src_rect = Rect.new(@sp_im_cw * @sp_number_abs, 0, @sp_im_cw, @sp_im_ch)
         end
       @sp_number_bitmap.blt(20 + ((@sp_im_cw - 7) *  r), 0, @sp_number_image, @sp_src_rect)       
     end 
     @sp_refresh = false if @sp == @actor.sp
  end       
  #--------------------------------------------------------------------------
  # * Sp Flow Update
  #--------------------------------------------------------------------------
  def sp_flow_update
      @sp_sprite.bitmap.clear
      @sp_width = @sp_range  * @actor.sp / @actor.maxsp
          #SP Damage---------------------------------
          if @sp_width_old != @sp_width
          @sp_width_old -= 0.5 if @sp_width_old > @sp_width 
          if @sp_width_old < @sp_width
             @sp_width_old = @sp_width
          end     
          @sp_src_rect_old = Rect.new(@sp_flow, @sp_height,@sp_width_old, @sp_height)
          @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect_old)
          end
      #SP Real------------------------------------
      @sp_src_rect = Rect.new(@sp_flow, 0,@sp_width, @sp_height)
      @sp_bitmap.blt(0,0, @sp_image, @sp_src_rect)
      @sp_flow += 5 
      if @sp_flow >= @sp_image.width - @sp_range
         @sp_flow = 0 
      end
    end 
  #--------------------------------------------------------------------------
  # * level_update
  #--------------------------------------------------------------------------
  def level_update
    @level_number_sprite.bitmap.clear
    @level_number_text = @actor.level.abs.to_s.split(//)
    for r in 0..@level_number_text.size - 1
       @level_number_abs = @level_number_text[r].to_i
       @level_src_rect = Rect.new(@level_im_cw * @level_number_abs, 0, @level_im_cw, @level_im_ch)
       @level_number_bitmap.blt(13 + ((@level_im_cw - 12) *  r), 0, @level_number_image, @level_src_rect)       
    end       
    @level = @actor.level
    @level_number_sprite.zoom_x = 2
    @level_number_sprite.zoom_y = 2
  end
  #--------------------------------------------------------------------------
  # * level_update
  #--------------------------------------------------------------------------
  def level_up_effect
    @level_number_sprite.zoom_x -= 0.02
    @level_number_sprite.zoom_y -= 0.02
    if @level_number_sprite.zoom_x <= 1.00     
       @level_number_sprite.zoom_x = 1.00
       @level_number_sprite.zoom_y = 1.00
    end
  end 
  #--------------------------------------------------------------------------
  # * exp_update
  #--------------------------------------------------------------------------
  def exp_update
    @level_sprite.bitmap.clear   
    if @actor.next_exp != 0
    rate = @actor.now_exp.to_f / @actor.next_exp
    else
    rate = 1
    end
    if @actor.level < 99
    @level_cw = @level_image.width * rate
    else
    @level_cw = @level_image.width
    end       
    @level_src_rect_back = Rect.new(0, 0,@level_cw, @level_image.height)
    @level_bitmap.blt(0,0, @level_image, @level_src_rect_back) 
    @exp = @actor.exp
  end 
end
#-------------------------------------------------------------------------------
# Scene_Map
#-------------------------------------------------------------------------------
class Scene_Map 
  alias acthud_main main
  def main
      @viewport = Viewport.new(0, 0, 640, 480)
      @viewport.z = 99999     
      @acthud = Active_Hud.new(@viewport)
    acthud_main   
      @acthud.dispose
      @acthud = nil
      @viewport.dispose
      @viewport = nil
  end 
  alias acthud_update update
  def update
    acthud_update
    @acthud.update
  end 
end
$mog_rgss_active_hud = true






^_^
12
Script Requests / A party sequence...
February 09, 2011, 08:15:35 pm
Anybody know a script that let me do this???

Check this video at 00:14 ...

http://www.youtube.com/watch?v=fadBXGf1xto&feature=related

when the party appears in the map, even when its a no caterpillar game... anyone knows how i can do that, like in a dialog sequences that need all the party members in the map??? or a event system... i dont know.... i use BlizzAbs and my game dont use Caterpillar... ^_^

Thank you so much!!
13
 :^_^': Hello guys... well.... when  i create an enemy.... i want that the enemy moves with a normal attack almost all the time and only a few times use the skill against the player...

Well in database/actions... how i have to put the actions to do that?... im only know how make that the enemy use a simple attack or a Skill attack, but no both... im using BLIZZabs 2.79 ^_^

Thank you...

PD: Maybe its a idiota doubt...but...i dont know!!

14
 :huh: Well, i dont know if somebody wants to do it, but i see this Item & Monter Book and i like it so much, pretty fancy and methodic, just like the bestiary of Dragon Quest...
Maybe someone knows how it can be compatible with Blizzabs...

This scripts its made it by Cold Strong and requires his module to work....

i made a demo to all of you !!!

http://rapidshare.com/files/390720934/Itemymonsterbook.rar.html

15
Script Requests / Image and level related
May 22, 2010, 06:21:01 pm
 :^_^': Hello guys!

Well, im searching a way to show a certain image with a sound, every time that a certain character adquire certain level...

Example:

If Hero 4 of the database , adquire 25 level, show the "_png" image (& Plays a sound) & then remove the image if the player hit the action button.

im looking for this because i want to show a draw of a technique that character learn in a certain level, i try to do this with common events and variables.... but i didnt make it.... so, if somebody can help me i aprecciate so much ^_^

PD: If somebody knows a way to do it with common events ill be very happy ^_^
16
 :^_^': Hello guys...


Introduction:
For a problem with others script, i have to desactivate the demage showing in battle of Blizz Abs...Know, if my character hit a enemy, only reduce his hp but dont show the demage % in the map....


Request:
Somebody knows a way to implement other way to show the % or maybe the "MISS" message...

i think in something more simple.... like.....

if my character hit a enemy shows a "OK" image in the corner of the screen, if MISS show other that says "Miss", but not whit porcentages or numbers (My Game also use a HUD without a number showing)

I hope you understand me besides the bad english T_T

Thank you to all!
17
 :roll:
Hello everyone.... i have a little request....

Somebody knows how i can do that a single event follow you around the map, but when this event it close to the character move a few tiles away , in that way the event dont block your way. Like a Pet or a Dog o_O

Thank You very Much
18
Well, hello everybody.... i have a new request.... i dont know if it possible but....well

here i go....

With Blizzabs when you use the select button, the leader change in other character right?

well, its possible that appear a window that let me select the character that i want, between the characters that i have in my party in that moment?...

example:

If i push select button, open a window.....


And the leader change....

its only that...

i ask you this like a alternative for the simply SELECT BUTTON CHANGE in BLIZZABS.

Another thing

Exist a script called MOG-CHARACTER SELECT

Download here--- http://www.atelier-rgss.com/RGSS/Demos/MOG_Char_Select.exe

This let you change the initial character, or select the character that you want to add in you party.

Maybe (i hope so T_T) this script can be simply modificated to do that i say???... will be great great great, and very nice looking too

Is that, you are the experts guys ^_^, sorry again for my horrible english, im from CHILE, and i give you all my greetings and good vibres to you...thank you very much...

19
 :^_^':

Hello everybody.....

Well this nice script makes a cool menú for the end of the game... Shows The Number of Battles, The Number of Saves, Loads, Dead Enemies, and Dead actors.

The Author is MOGHUNTER....

well this is my request....

Maybe the script can modified to show the number of Dead Enemies in a Map with Blizzabs (because the only thing that counts is the killed enemies in default rpgmaker battle system).... i dont know.... is that possible???
:(

DEMO HERE --- http://www.atelier-rgss.com/RGSS/Demos/MOG_Scene_End.exe
20
Hello everybody... i hope dont disturb you with my little ask...

Its a favor that realy really need


Its possible change a Option of the PRE-Menú of BLIZZ ABS???

I want change the AI TRIGGERS command by only one of the commands of ST CMS - Hybrid moded Script (Option Menú)....

Example....

i want to change this



for ST CMS - Hybrid moded Script option menú...




Please.... i know that you can help me T_T


21
Script Requests / Hurt Sprite for Blizz ABS?
March 28, 2010, 07:40:31 pm
 :^_^': Well...hello again.... maybe this is possible to do.... i dont know... but anyway...take like a little suggestion...

Its possible that Blizz abs can show a special sprite when the character its been hit by a enemy???  :huh:

Anyway... Thanks to all.... you are very useful and intelligent people ^_^

22
Script Requests / Coin Case?
March 26, 2010, 01:11:55 am
 :^_^': Hello again

Well... I have a little request...

Maybe its possible create a sistem that allows change some Items for another one ? Like buying things but not whit money.... like Coin Case in Pokemon

Example:

I found 30 Flags and i can "buy" a weapon with a 50 flags...

or

I win 30 coins in a mini-game and i can change for a prize
23
 :haha:

Hello people.... i have a little suggestion....
Its possible that BLIZZ ABS let use a few more random sprites for certain weapons???

Example: If the character use a MARTIAL ARTS weapon, maybe the sprite can change randomly when the weapon attack.... like in this video?

http://www.youtube.com/watch?v=y1-YKQRRvKs

or maybe like

http://www.youtube.com/watch?v=VxUpNksgT-s  :naughty:
24
 :haha: Hello everybody...
I have a little question...

By default... When a allie dies in BLIZZ abs start a little shining and keep moving close to the leader right?

well... its possible that the character dont move...and stay without moving in the same place that dies?

(My english sock! Sorry)
25
Script Troubleshooting / A question abour uplevel
September 06, 2009, 10:46:46 am
Well...here its my doubt...
:^_^':

emmm....well i use BlizzAbs and when i start the game...... appear the four characters of my party activated....even if i create just one!!!..... if i start the game with that character,,,,, and this character fight in a map.... the experience make the 4 characters up a level and no just the character that are fighting!!!

what can i do?
26
 :naughty: Just like sound..... Exist a way to do a skill that can stop the movement of the enemies? for few seconds?
27
Script Requests / an ALchemy Script?
August 12, 2009, 06:26:01 pm
 :^_^': Hello!
i have a little request.....somebody have a good ALCHEMY SCRIPT?....That can create 1 item qith 2 or more ingredients???
28
Script Troubleshooting / Help with Alchemy Script
August 12, 2009, 10:46:20 am
 :^_^': Hello guys.... here is the deal...

 #-------------------------------------------------------------------------
# Script de alquimia
#-------------------------------------------------------------------------
#  - Versión: 1.1
#  - Autor: Alnain (no son necesarios créditos)
#  - Creado: 11 - 9 - 08 (dd - mm - aa)
#  - Instrucciones:
#     · Pegar encima de main.
#     · Para ir a la pantalla de alquimia usa lo siguiente en un llamar
#     script: $scene = Scene_Alquimia.new.
#     · Selecciona el atributo ingrediente para los objetos que quieras que
#     combinables
#     · Edita la parte editabe a tu gusto.

class Scene_Alquimia # no editar esta línea
  #-------------------------------------------------------------------------
  #----EDITABLE DESDE AQUI -------------------------------------------------
  #-------------------------------------------------------------------------
  def initialize
   
  # Id del atributo "Ingrediente" (editable)
  $atr_ingrediente = 17
 
  #---Combinaciones-----
  @combinaciones = { # no editar esta línea
 
  # Las comabinaciones se definen así:
  #
  # [ingrediente, ingrediente, ingrediente] => [resultado, resultado],
  #
  # La última combinación no debe llevar la coma al final.
  # Ingrediente y resultado son IDs de objetos en la base de datos.
  # Puedes crear tantas combinaciones como quieras.
  # Puedes añadir tantos ingredientes como quieras a cada combinación.
  # Puedes añadir tantos resultados como quieras a cada combinación.
 
  [33, 34] => [11, 11],
  [35, 37] => [15, 22],
  [34, 38, 39] => [12],
  [35, 37, 40] => [13]
 
  } # no editar esta línea
 
  #-------------------------------------------------------------------------
  #----EDITABLE HASTA AQUI -------------------------------------------------
  #-------------------------------------------------------------------------
end
  def main
   @items_window = Window_Items.new
   @items_window.y = 64
   @mezcla_window = Window_Mezcla.new
   @mezcla_window.x = 320
   @mezcla_window.y = 64
   @mezcla_window.active = false
   @command_window = Window_Inst.new
   @command_window.x = 320
   @command_window.y = 384
   @info_window = Window_Info.new
   @info_window.x = 320 - @info_window.width / 2
   @info_window.y = 240 - @info_window.height / 2
   @info_window.z = 9999
   @info_window.visible = false
   @info_window.set_info
   @description_window = Window_Help.new
   if not @items_window.item.nil?
     @description_window.set_text (@items_window.item.description)
   end

   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
      break
     end
   end
   Graphics.freeze
   #disposes
   @items_window.dispose
   @mezcla_window.dispose
   @command_window.dispose
   @description_window.dispose
  end
 
  def update
   @items_window.update
   @mezcla_window.update
   
     if @items_window.active
      if not @items_window.item.nil?
        @description_window.set_text (@items_window.item.description)
      else
        @description_window.set_text ("")
      end
     else
      if not @mezcla_window.item.nil?
        item = $data_items[@mezcla_window.item]
        @description_window.set_text (item.description)
      else
        @description_window.set_text ("")
      end
     end

   if Input.trigger? (Input::LEFT)
     if @mezcla_window.active
      @mezcla_window.active = false
      @items_window.active = true
     end
   elsif Input.trigger? (Input::RIGHT)
     if @items_window.active
      @mezcla_window.active = true
      @items_window.active = false
     end
   end
   
   if Input.trigger? (Input::C)
     if @items_window.active and not @items_window.item.nil?
      @mezcla_window.añadir_ingrediente (@items_window.item.id)
      @mezcla_window.refresh
      $game_party.lose_item (@items_window.item.id, 1)
      @items_window.index = [0, @items_window.index - 1].max
      @items_window.refresh
     elsif @mezcla_window.active and not @mezcla_window.item.nil?
      $game_party.gain_item (@mezcla_window.item, 1)
      @items_window.refresh
      @mezcla_window.quitar_ingrediente
      @mezcla_window.index = [0, @mezcla_window.index - 1].max
      @mezcla_window.refresh
     else
      @items_window.active = true
      @info_window.visible = false
     end
   end
   
   if Input.trigger? (Input::X)
     vaciar (true)
   elsif Input.trigger? (Input::A)
     mezclar
   end
   
   if Input.trigger? (Input::B)
     vaciar (true)
     $scene = Scene_Map.new
   end
   
  end
 
  def vaciar (devolver)
   items = @mezcla_window.items
   for item in items
     $game_party.gain_item (item, 1) if devolver
     @mezcla_window.quitar_ingrediente
   end
   @mezcla_window.refresh
   @items_window.refresh
  end
 
  def mezclar
   existe = false
   for combinacion in @combinaciones.keys
     if @mezcla_window.items == combinacion.sort
      existe = true
     end
   end
   if existe
     resultado = @combinaciones[@mezcla_window.items]
     for item in resultado
      $game_party.gain_item (item, 1)
     end
   else
     resultado = []
   end
   vaciar (false)
   @items_window.active = false
   @mezcla_window.active = false
   @info_window.visible = true
   @info_window.set_info (resultado)
  end
 
end


class Window_Info < Window_Base
 
  def initialize
   super (0, 0, 320, 128)
   self.contents = Bitmap.new (width - 32, height - 32)
   self.contents.font.size = 20
  end
  #--------------------------------------------------------------------------
  def set_info (info = [])
   self.contents.clear
#   self.contents.fill_rect (0, 0, self.width, self.height, Color.new (0, 0, 0, 0))
   if info.empty?
     txt = "Combinación equivocada"
     self.contents.draw_text (0, 0, self.width - 32, 32, txt, 1)
     txt = "Has perdido los ingredientes"
     self.contents.draw_text (0, 48, self.width - 32, 32, txt, 1)
     return
   end
   resultados = {}
   for item in info
     if resultados.has_key? (item)
      resultados[item] += 1
     else
      resultados[item] = 1
     end
   end
   self.height = resultados.keys.size * 32 + 32 + 32 + 16
   self.contents = Bitmap.new (width - 32, height - 32)
   txt = "Has obtenido:"
   self.contents.draw_text (0, 0, self.width - 32, 32, txt, 1)
   for i in 0...resultados.keys.size
     item_id = resultados.keys[i]
     item = $data_items[item_id]
     number = resultados[item_id]
     x = 0
     y = 32 + 16 + 32 * i
     bitmap = RPG::Cache.icon(item.icon_name)
     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
   end
  end
  #--------------------------------------------------------------------------
  def draw_item(data, pos)
  end
  #--------------------------------------------------------------------------
end


class Window_Inst < Window_Base
 
  def initialize
   super (0, 0, 320, 96)
   self.contents = Bitmap.new (width - 32, height - 32)
   refresh
  end
 
  def refresh
   self.contents.clear
   self.contents.draw_text (0, 0, self.width - 32, 32, "A: Vaciar")
   self.contents.draw_text (0, 32, self.width - 32, 32, "Z: Mezclar")
  end
 
end

#==============================================================================
# ââ€"  Window_Item
#------------------------------------------------------------------------------

class Window_Mezcla < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize
   super(0, 0, 320, 320)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   @items = {}
   @column_max = 1
   refresh
   self.index = 0
  end
  #--------------------------------------------------------------------------
  def añadir_ingrediente (item)
   if @items[item].nil?
     @items[item] = 1
   else
     @items[item] += 1
   end
  end
  #--------------------------------------------------------------------------
  def quitar_ingrediente
   @items[item] -= 1
   if @items[item] == 0
     @items.delete (item)
   end
  end
  #--------------------------------------------------------------------------
  def refresh
   self.contents.clear
   @item_max = @items.keys.size
     for i in 0...@items.keys.size
      if not @items.keys[i].nil?
        draw_item(@items.keys[i], i)
      end
     end
  end
  #--------------------------------------------------------------------------
  def draw_item(data, pos)
   item = $data_items[data]
   number = @items[item.id]
   x = 0
   y = 32 * pos
   bitmap = RPG::Cache.icon(item.icon_name)
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
   self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
   self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  def items
   items = []
   for item in @items.keys
     for g in 1..@items[item]
      items.push (item)
     end
   end
   return items
  end
  #--------------------------------------------------------------------------
  def item
   return @items.keys[self.index]
  end
  #--------------------------------------------------------------------------
end

#==============================================================================
# ââ€"  Window_Item
#------------------------------------------------------------------------------

class Window_Items < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize
   super(0, 0, 320, 416)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   @column_max = 1
   refresh
   self.index = 0
  end
  #--------------------------------------------------------------------------
  def refresh
   self.contents.clear
   @data = []
   for i in 1...$data_items.size
     if $game_party.item_number(i) > 0 and
      $data_items[i].element_set.include? ($atr_ingrediente)
      @data.push($data_items[i])
     end
   end
   @item_max = @data.size
   if @item_max > 0
     for i in 0...@data.size
      draw_item(@data[i], i) if not @data[i].nil?
     end
   end
  end
  #--------------------------------------------------------------------------
  def draw_item(data, pos)
   item = data
   number = $game_party.item_number(item.id)
   x = 0
   y = 32 * pos
   bitmap = RPG::Cache.icon(item.icon_name)
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
   self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
   self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
   self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  def item
   return @data[self.index]
  end
  #--------------------------------------------------------------------------
end   


Here is an ALCHEMY script that can create a new item using 2 old items as a ingredientes.... Well i want you ask a little little modification....

How can i do to change the Z button (for the mix) for other one....... like the F Button??? o_o in that way the script makes compatible with BLIZZ ABS ^_^

29
 :'( My computer restart suddenly.... and i try to open my project again and gives me this error "Failed to load actor data" ... All the files is in data & graphics correctly..... what can id o????? i can´t lose my project!!!! Please help help!!!
30
Script Requests / A simple simple script
June 27, 2009, 05:30:16 pm
 :'(

hello guys....

i have a little little request....

(i use Blizz ABS in RPG MAKER XP)

somebody have a script that let me show icons in the message panel???? only that....