Dudas & F.A.Q sobre RPG MAKER V9 [ÚNICAMENTE AQUÍ] [No abrir temas con dudas]

Estado
Cerrado para nuevas respuestas
Mensajes
26
Reacciones
0
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola no se si me puedan ayudar, uso el rpg maker xp y cuando pongo algunos scripts no aparecen los diálogos ni las letras del menú, etc... , si alguien me puede ayudar se lo agradeceré
 
Mensajes
2.063
Reacciones
12
Puntos
0
Ubicación
Maracaibo, Venezuela.
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola no se si me puedan ayudar, uso el rpg maker xp y cuando pongo algunos scripts no aparecen los diálogos ni las letras del menú, etc... , si alguien me puede ayudar se lo agradeceré

Coloca este alias dentro del script main

Código:
class Font
  alias font_fix_initialize initialize
  def initialize
    font_fix_initialize
    self.name = "Arial" # Nombre de la fuente
    self.size = 20 # Tamaño
  end
end
 

DKNINJA

Banneado
Mensajes
658
Reacciones
0
Puntos
0
Ubicación
En lo mas oscuro del universo
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

oye amigo gabriel, gracias por esa, me ayudo mucho. ahora, aun no has conseguido la forma de crear un projectil que sea disparado por los enemigos para que te hagan daño en el RE shooting system????

Pues eso lo puedes hacer como si hicieras un engine de arco pero en el enemigo.
======================
Yo tengo una duda,¿Para que sirve la opcion de opciones de celdas cuando creas una animacion?.

Gracias al quien me responda.

Edito:Gracias grabiel.
 
Última edición:
Mensajes
2.063
Reacciones
12
Puntos
0
Ubicación
Maracaibo, Venezuela.
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Pues eso lo puedes hacer como si hicieras un engine de arco pero en el enemigo.
======================
Yo tengo una duda,¿Para que sirve la opcion de opciones de celdas cuando creas una animacion?.

Gracias al quien me responda.

1- Los eventos de enemigos del RESS tienen algunas cosas q pueden interferir D:

2- Da opciones para modificar la posición por coordenadas de las celdas (las imágenes creadas en el recuadro) o posición en el tiempo (frames).
 

Nefr0p16

Gold User
Mensajes
581
Reacciones
1
Puntos
514
Ubicación
Around Kalos
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Contesto por aqui n.n... Debe ser q el Script coloca las faces en el menu buscando los archivos por el nombre del actor... al cambiar el nombre de este.. busca una imagen con ese nombre.. como no la encuentra.. lo pone en blanco
ola grax por contestar...
si eso pasa pero no habra manera de solucionarlo??
es decir no ay manera que la imagen tenga un nombre y luego se cambie por si sola como
\N[x] como los nombres a escoger que se guarde en una variable para luego recordarla pero con distinto nombre????:icon_lol:
 
Mensajes
2.063
Reacciones
12
Puntos
0
Ubicación
Maracaibo, Venezuela.
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

ola grax por contestar...
si eso pasa pero no habra manera de solucionarlo??
es decir no ay manera que la imagen tenga un nombre y luego se cambie por si sola como
\N[x] como los nombres a escoger que se guarde en una variable para luego recordarla pero con distinto nombre????:icon_lol:

Respuesta corta: No

Respuesta larga: No... la imagen esta fuera de lo q controla el programa.. el programa meramente la usa... lo q se me viene a la mente.. es q el script leyera las img por ID del actor.. no por el nombre.. y las imgs solo se llamen 1,2,3,4... pero para eso habría q editar el script.. cual usabas? (nombre completo por favor.. no solo digas: "El de Moghunter")
 
Mensajes
2.063
Reacciones
12
Puntos
0
Ubicación
Maracaibo, Venezuela.
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Buenas, quisiera saber si alguien sabe como poner este script y donde encontrarlo


Gracias.

No se ve el video.. lo pusiste mal... pero en la cita vi el link.. y vaya q eres vago no?... En la descripción esta el link... Lo q sea... Tankentai CBS
 
Última edición por un moderador:
Mensajes
5
Reacciones
0
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

No se ve el video.. lo pusiste mal... pero en la cita vi el link.. y vaya q eres vago no?... En la descripción esta el link... Lo q sea... Tankentai CBS
Se que en la descripción esta el Link, debí explicar que me daba esto

The error returned was:
Sorry, but you do not have permission to use this feature. If you are not logged in, you may do so using the form below if available.

debo decir que esta registrado.
 
Mensajes
2.063
Reacciones
12
Puntos
0
Ubicación
Maracaibo, Venezuela.
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

debo decir que esta registrado.

q pereza hombre.. tanto te cuesta crearte una cuenta rapidito?...

No importa..

Versión Básica

Versión Kaduki
Actor5_sample.gif
 

Nefr0p16

Gold User
Mensajes
581
Reacciones
1
Puntos
514
Ubicación
Around Kalos
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Respuesta corta: No

Respuesta larga: No... la imagen esta fuera de lo q controla el programa.. el programa meramente la usa... lo q se me viene a la mente.. es q el script leyera las img por ID del actor.. no por el nombre.. y las imgs solo se llamen 1,2,3,4... pero para eso habría q editar el script.. cual usabas? (nombre completo por favor.. no solo digas: "El de Moghunter")

:surprice:
pz utilizo estos 2
1.-MOG - Scene Menu

#_______________________________________________________________________________
# MOG Main Menu V1.7
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
#Tipo de fundo.
# 0 = Imagens em movimento.
# 1 = Mapa de fundo.
MENU_BACKGROUND = 0
#Transition Time.
MNTT = 10
#Transition Type (Name)
MNTP = "006-Stripe02"
#Velocidade do cursor
CURSOR_SPEED = 12
end
$mogscript = {} if $mogscript == nil
$mogscript["MOG_Main_Menu"] = true
##############
# 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_Map #
############
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rxdata")
$mpname[@map_id].name
end
end
###############
# Window_Base #
###############
class Window_Base < Window
def nada
face = RPG::Cache.picture("")
end
def drw_face(actor,x,y)
face = RPG::Cache.picture(actor.name + "_fc") rescue nada
cw = face.width
ch = face.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)
end
def draw_maphp3(actor, x, y)
back = RPG::Cache.picture("BAR0")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("HP_Bar")
cw = meter.width * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("HP_Tx")
cw = text.width
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2)
end
def draw_mapsp3(actor, x, y)
back = RPG::Cache.picture("BAR0")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("SP_Bar")
cw = meter.width * actor.sp / actor.maxsp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("SP_Tx")
cw = text.width
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.sp.to_s, 2)
end
def draw_mexp2(actor, x, y)
bitmap2 = RPG::Cache.picture("Exp_Back")
cw = bitmap2.width
ch = bitmap2.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 30, bitmap2, src_rect)
if actor.next_exp != 0
rate = actor.now_exp.to_f / actor.next_exp
else
rate = 1
end
bitmap = RPG::Cache.picture("Exp_Meter")
if actor.level < 99
cw = bitmap.width * rate
else
cw = bitmap.width
end
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 30, bitmap, src_rect)
exp_tx = RPG::Cache.picture("Exp_tx")
cw = exp_tx.width
ch = exp_tx.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 55 , y - ch + 30, exp_tx, src_rect)
lv_tx = RPG::Cache.picture("LV_tx")
cw = lv_tx.width
ch = lv_tx.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 125 , y - ch + 35, lv_tx, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 161, y + 7, 24, 32, actor.level.to_s, 1)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 160, y + 6, 24, 32, actor.level.to_s, 1)
end
def draw_actor_state2(actor, x, y, width = 80)
text = make_battler_state_text(actor, width, true)
self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
self.contents.draw_text(x, y, width, 32, text,2)
end
end
######################
# Window_MenuStatus2 #
######################
class Window_MenuStatus2 < Window_Selectable
def initialize
super(0, 0, 415, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("")
self.opacity = 0
self.z = 15
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 20
y = i * 62
actor = $game_party.actors
self.contents.font.name = "Georgia"
if $mogscript["TP_System"] == true
draw_actor_tp(actor ,x + 285, y - 5,4)
draw_actor_state2(actor ,x + 190, y - 5)
else
draw_actor_state2(actor ,x + 220, y - 5)
end
drw_face(actor,x,y + 50)
draw_maphp3(actor,x + 40, y - 5)
draw_mapsp3(actor,x + 40, y + 20 )
draw_mexp2(actor,x + 140, y + 15 )
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(5, @index * 62, self.width - 32, 50)
end
end
end
################
# Window_Gold2 #
################
class Window_Gold2 < Window_Base
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("")
self.opacity = 0
self.z = 15
refresh
end
def refresh
self.contents.clear
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
end
end
####################
# Window_PlayTime2 #
####################
class Window_PlayTime2 < Window_Base
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("")
self.opacity = 0
self.z = 15
refresh
end
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 32, 120, 32, text, 2)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
#################
# Window_Steps2 #
#################
class Window_Steps2 < Window_Base
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("")
self.opacity = 0
self.z = 15
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2)
end
end
###################
# Window_Map_Name #
###################
class Window_Map_Name < Window_Base
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("")
self.opacity = 0
self.z = 15
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 32, 120, 32, $game_map.mpname.to_s, 1)
end
end
##############
# Scene_Menu #
##############
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = ""
s2 = ""
s3 = ""
s4 = ""
s5 = ""
s6 = ""
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
@command_window.visible = false
@command_window.x = -640
@mnlay = Sprite.new
@mnlay.bitmap = RPG::Cache.picture("Mn_lay")
@mnlay.z = 10
@mnlay.opacity = 0
@mnlay.x = -100
if MOG::MENU_BACKGROUND == 0
@mnback = Plane.new
@mnback.bitmap = RPG::Cache.picture("Mn_Back")
@mnback.blend_type = 0
@mnback.z = 5
@mnback2 = Plane.new
@mnback2.bitmap = RPG::Cache.picture("Texto")
@mnback2.blend_type = 0
@mnback2.z = 5
@mnback2.opacity = 60
else
@spriteset = Spriteset_Map.new
end
@cursor_x = -100
@cursor_y = 110
@mnsel = Sprite.new
@mnsel.bitmap = RPG::Cache.picture("Mn_Sel")
@mnsel.z = 20
@mnsel.x = @cursor_x
@mnsel.y = @cursor_y
@mnop = 150
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime2.new
@playtime_window.x = 30
@playtime_window.y = 375
@playtime_window.contents_opacity = 0
@mapname_window = Window_Map_Name.new
@mapname_window.x = 425
@mapname_window.y = 25
@mapname_window.contents_opacity = 0
@steps_window = Window_Steps2.new
@steps_window.x = 230
@steps_window.y = 375
@steps_window.contents_opacity = 0
@gold_window = Window_Gold2.new
@gold_window.x = 455
@gold_window.y = 405
@gold_window.contents_opacity = 0
@status_window = Window_MenuStatus2.new
@status_window.x = 295
@status_window.y = 110
@status_window.contents_opacity = 0

if MOG::MENU_BACKGROUND == 0
Graphics.transition(MOG::MNTT, "Graphics/Transitions/" + MOG::MNTP)
else
Graphics.transition
end
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
for i in 0..10
if MOG::MENU_BACKGROUND == 0
@mnback.oy += 1
@mnback.ox += 1
@mnback2.oy += 1
@mnback2.ox -= 1
end
@status_window.x += 20
@status_window.contents_opacity -= 25
@mnsel.opacity -= 25
@mnsel.zoom_x += 0.03
@mnlay.x -= 10
@mnlay.opacity -= 25
@mapname_window.x += 5
@mapname_window.contents_opacity -= 20
@steps_window.contents_opacity -= 25
@gold_window.contents_opacity -= 25
@playtime_window.contents_opacity -= 25
Graphics.update
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
@mnlay.dispose
if MOG::MENU_BACKGROUND == 0
@mnback.dispose
@mnback2.dispose
else
@spriteset.dispose
end
@mnsel.dispose
@mapname_window.dispose
Graphics.update
end
def update
if @mnsel.x > @cursor_x
@mnsel.x -= MOG::CURSOR_SPEED
if @mnsel.x <= @cursor_x
@mnsel.x = @cursor_x
end
elsif @mnsel.x < @cursor_x
@mnsel.x += MOG::CURSOR_SPEED
if @mnsel.x >= @cursor_x
@mnsel.x = @cursor_x
end
end
if @mnsel.y > @cursor_y
@mnsel.y -= MOG::CURSOR_SPEED
if @mnsel.y <= @cursor_y
@mnsel.y = @cursor_y
end
elsif @mnsel.y < @cursor_y
@mnsel.y += MOG::CURSOR_SPEED
if @mnsel.y >= @cursor_y
@mnsel.y = @cursor_y
end
end
if @mnsel.zoom_x <= 1.6
@mnsel.zoom_x += 0.03
@mnsel.opacity -= 10
elsif @mnsel.zoom_x > 1.6
@mnsel.zoom_x = 1.0
@mnsel.opacity = 255
end
if @mnlay.x < 0
@mnlay.opacity += 25
@mnlay.x += 10
elsif @mnlay.x >= 0
@mnlay.opacity = 255
@mnlay.x = 0
end
@command_window.update if @command_window.active
@playtime_window.update
@status_window.update if @status_window.active
if MOG::MENU_BACKGROUND == 0
@mnback.oy += 1
@mnback.ox += 1
@mnback2.oy += 1
@mnback2.ox -= 1
end
@mnop += 5
@mapname_window.contents_opacity += 15
@playtime_window.contents_opacity += 15
@gold_window.contents_opacity += 15
@playtime_window.contents_opacity += 15
@steps_window.contents_opacity += 15
if @status_window.x > 195
@status_window.x -= 10
@status_window.contents_opacity += 10
elsif @status_window.x <= 195
@status_window.x = 195
@status_window.contents_opacity = 255
end
if @mnop >= 255
@mnop = 120
end
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
def update_command
case @command_window.index
when 0
@cursor_x = 0
@cursor_y = 110
when 1
@cursor_x = 25
@cursor_y = 155
when 2
@cursor_x = 40
@cursor_y = 197
when 3
@cursor_x = 45
@cursor_y = 242
when 4
@cursor_x = 25
@cursor_y = 285
when 5
@cursor_x = 0
@cursor_y = 325
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
case @status_window.index
when 0
@cursor_x = 180
@cursor_y = 130
when 1
@cursor_x = 180
@cursor_y = 195
when 2
@cursor_x = 180
@cursor_y = 255
when 3
@cursor_x = 180
@cursor_y = 320
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end

2.-Editor De Mensajes UMS Universal

# *****************************************************************************
# * Universal Message System
# * v1.1
# * by Ccoa
# *****************************************************************************
# Manual de Comandos (Traducido por xXDarkDragonXx de VoidZone 4.7):
=begin

EN MENSAJE (CODIGOS) >>>>:

\b - Activa / Desactiva texto en negrita
\c - Cambia el color del texto (por defecto del RPG Maker)
\e - Pone caja de texto sobre evento i (0 = jugador, -1 no evento)
\face[name] - Cambia el gráfico de "face" a name.png (dejar en blanco [] para
no poner "face")
\fl - Pone la "face" a la izquierda
\font[name] - Cambia la fuente usada, dejar en blanco [] para regresar a fuen-
te por defecto
\fr - Pone la "face" a la derecha
\g - Muestra caja que te dice el dinero que tienes
\height - Alto de la caja de texto, solo funciona en Modo Normal
\i - Activa / Desactica texto en itílico
\ignr - No escribir nada en la línea en ques escribes este comando, solo
procesa los códigos, debe ser lo primero en la línea
\jc - Alínea la caja de texto al centro, ignorado si usas \e
\jl - Alínea la caja de texto a la izquierda, ignorado si usas \e
\jr - Alínea la caja de texto a la derecha, ignorado si usas \e
\m - toggle mode between normal and fit window to text
\n - Muestra el nombre del personaje i (i = ID del personaje en Base
de Datos > Personajes)
\nm[name] - Muestra nombre / texto en la caja de nombre, dejar en blanco []
para remover la caja de nombre
\oa - Muestra el icono y nombre de la armadura i (i = ID de armadura
en Base de Datos > Protectores)
\oi - Muestra el icono y nombre de un objeto i (i = ID de objeto
en Base de Datos > Objeto)
\os - Muestra el icono y nombre de la habilidad i (i = ID de habilidad
en Base de Datos > Habilidades)
\ow - Muestra el icono y nombre de la arma i (i = ID de arma
en Base de Datos > Armas)
\p - Pausa por i frames antes de escribir la letra siguiente (i = #
de frames)
\pt - Activa / Desactiva el símbolo de "pausa" en la caja de texto
\s - Activa / Desactiva texto con sombra
\shk - Pone la caja de texto a temblar, mientras más alto sea el número
reemplazado por i, mayor será el temblor
\skip - Activa / Desactiva el "salto" de texto
\t1 - Cambia un poco la caja de texto a una de comic de como si estu-
viera hablando normal (usa imagen talk1)
\t2 - Cambia un poco la caja de texto a una de comic de como si estu-
viera gritando (usa imagen talk2)
\tc - Alínea el texto al centro, este comando debe ponerse al
principio de una línea en el mensaje
\th - Cambia un poco la caja de texto a una de comic de como si estu-
viera pensando algo (usa imagen thought.png)
\tl - Alínea el texto a la izquierda, este comando debe ponerse al
principio de una línea en el mensaje
\tr - Alínea el texto a la derecha, este comando debe ponerse al prin-
cipio de una línea en el mensaje
\v - Muestra variable (el valor), reemplazar i por el mismo
\width - Ancho de la caja de texto, solo funciona en Modo Normal
\w - Espera por los frames indicados, y luego cierra ventana
\ws - Cambia la velocidad a la que sale el texto, reemplaza i por la
misma
\slv[name] - Pone esta ventana el nombre de la "ventana esclava", o muestra
el nombre de la misma

COMANDOS QUE NO SON CODIGOS EN MENSAJES (usar comando 'Llamar script...' para
estos):

$game_system.ums_mode = NORMAL_MODE - Cambia a Modo Normal
$game_system.ums_mode = FIT_WINDOW_TO_TEXT - Cambia al modo que el texto automá-
ticamente encaje en la caja de tex-
to
$game_system.text_skip = true - Activa el "salto" de texto
$game_system.text_skip = false
true - Desactiva el "salto" de texto (true es necesa-
rio ponerlo)
$game_system.text_mode = WRITE_FASTER - Cambia la velocidad en que el texto sale
a r?pido
$game_system.text_mode = WRITE_ALL - Cambia el modo de salto a que escriba todo
el texto
$game_system.write_speed = i - Cambia la velocidad a la que sale el texto, reem-
plaza i por la misma
$game_system.window_height = i - Cambia el alto de la ventana de texto a i (i =
el alto)
$game_system.window_width = i - Cambia el ancho de la ventana de texto a i (i =
el ancho)
$game_system.window_justification = RIGHT - Alínea la caja de texto a la derecha
$game_system.window_justification = LEFT - Alínea la caja de texto a la izquier-
da
$game_system.window_justification = CENTER - Alínea la caja de texto al centro
$game_system.face_graphic = "filename" - Cambia el gráfico de "face" a
filename.png (puedes cambiar nombre de
archivo, obiviamente, y puedes usar más
de una "face")
$game_system.face_graphic = "" - Cambia el gráfico de "face" a ninguno
$game_system.face_graphic_justification = LEFT - Pone la "face" a la izquierda
$game_system.face_graphic_justification = RIGHT - Pone la "face" a la derecha
$game_system.face_graphic_position = TOP - Pone la "face" arriba de la ventana
$game_system.face_graphic_position = CENTER - Pone la "face" centrada en la ven-
tana
$game_system.face_graphic_position = BOTTOM - Pone la "face" a lo más bajo de la
ventana de texto
$game_system.shadow_text = true - Activa texto con sombra
$game_system.shadow_text = false
true - Desactiva texto con sombra (true es necesario)
$game_system.shadow_color = Color.new(red, blue, green, alpha) - change shadow color
$game_system.message_event = what event to put the message over (0 = player, -1 = no event)
$game_system.comic_enabled = false
true - Desactiva lo del comic (true es necesario)
$game_system.comic_enabled = true - turn on comic thingy (only works with message_event not -1)
$game_system.comic_style = TALK1 - Cambia un poco la caja de texto a una de
comic de como si estuviera hablando normal
(usa imagen talk1)
$game_system.comic_style = TALK2 - Cambia un poco la caja de texto a una de
comic de como si estuviera gritando
(usa imagen talk2)
$game_system.comic_style = THOUGHT - Cambia un poco la caja de texto a una de
comic de como si estuviera pensando algo
(usa imagen thought.png)
$game_system.name = "name" - Cambia el nombre escrito en la ventana de nombre a
lo que escribas entre " "
$game_system.name = "" - Desactiva ventana de nombre
$game_system.font = "name" - Cambia nombre de fuente (obivamente reemplazar
"name" por nombre de fuente)
$game_system.font = "" - Cambia la fuente a por defecto
$game_system.text_justification = CENTER - Alínea texto al centro
$game_system.text_justification = LEFT - Alínea texto a la izquierda
$game_system.text_justification = RIGHT - Alínea texto a la derecha
$game_system.show_pause = true - Activa el símbolo de "pausa" en la caja de tex-
to
$game_system.show_pause = false - Desactiva el símbolo de "pausa" en la caja de
texto
$game_system.shake = 0 - Desactiva el temblor
$game_system.shake = i - Pone la caja de texto a temblar, mientras más alto sea
el número reemplazado por i, mayor será el temblor
$game_system.sound_effect = "" - Desactiva el sonido de letra-por-letra (sonido
es un SE)
$game_system.sound_effect = "sename" - Nombre de archivo del sonido a escuchar
en el letra-por-letra
$game_system.choice_position = ABOVE - Pone la caja de elecciones arriba
$game_system.choice_position = BOTTOM - Pone la caja de elecciones abajo
$game_system.choice_position = LEFT - Pone la caja de elecciones a la izquierda
$game_system.choice_position = RIGHT - Pone la caja de elecciones a la derecha

=end
# *****************************************************************************
# CONSTANTS
# *****************************************************************************

# Modos
NORMAL_MODE = 0 #Modo Normal, su ID
FIT_WINDOW_TO_TEXT = 1 #Modo de Encajar Texto a Caja de Texto, su ID

# Modos de "Salto" de Texto
WRITE_FASTER = 0
WRITE_ALL = 1

# Alineacions
RIGHT = 0
CENTER = 1
LEFT = 2

# Posiciones para las "faces", la caja de elecciones, etc.
ABOVE = 0 # Pone el objeto / lo deseado arriba, su ID
CENTER = 1 # Pone el objeto / lo deseado en el centro, su ID
BOTTOM = 2 # Pone el objeto / lo deseado a lo más bajo de la ventana de texto,
# su ID
SIDE = 3 # Pone el objeto / lo deseado a los lados (que lado depende de ali-
# neación, su ID

# Modo Comic
TALK1 = 0 # Hablando Normal
TALK2 = 1 # Gritando
THOUGHT = 2 # Pensativo


# *****************************************************************************
# Changes to Game_System. This allows any changes made to be saved when the
# game is saved.
# *****************************************************************************

class Game_System
attr_accessor :ums_mode # what mode the UMS is in
attr_accessor :text_skip # whether or not text skip is activated
attr_accessor :skip_mode # write the text faster while C is pressed, or just skip to the end
attr_accessor :write_speed # frame delay between characters

attr_accessor :window_height # default height of message window
attr_accessor :window_width # default width of message window
attr_accessor :window_justification # default justification of window

attr_accessor :face_graphic # current face graphic
attr_accessor :face_graphic_justification # justification of face graphic
attr_accessor :face_graphic_position # position of face graphic

attr_accessor :shadowed_text # whether or not to draw a shadow behind the text
attr_accessor :shadow_color # the shadow color

attr_accessor :choice_justification # where the choice window is located
attr_accessor :choice_position # prefered position of choice window

attr_accessor :message_event # what event to center the text over (0 player, -1 to not)

attr_accessor :comic_enabled # using "talk" icons?
attr_accessor :comic_style # what type of comic image to use

attr_accessor :name # the text for the name window

attr_accessor :font # the name of the font

attr_accessor :text_justification # the justification of the window text

attr_accessor :show_pause # whether or not to show the pause icon

attr_accessor :shake # the amount of shake for the window

attr_accessor :sound_effect # SE to play with each letter

attr_accessor :slave_windows # hash of slave windows
attr_accessor :indy_windows # hash of independent windows

attr_reader :shortcuts # user-defined shortcuts

alias ums_initialize initialize
def initialize
ums_initialize
@ums_mode = NORMAL_MODE

@skip_mode = WRITE_ALL
@text_skip = true
@write_speed = 2

@window_height = 128
@window_width = 480
@window_justification = CENTER

@face_graphic = ""
@face_graphic_justification = LEFT
@face_graphic_position = CENTER

@shadowed_text = false
@shadow_color = Color.new(0, 0, 0, 100)

@choice_justification = RIGHT
@choice_position = SIDE

@message_event = -1

@comic_enabled = false
@comic_style = TALK1

@name = ""

@font = ""

@text_justification = LEFT

@show_pause = true

@shake = 0

@sound_effect = ""

@slave_windows = {}
@indy_windows = {}

@used_codes = ['\v', '\n', '\c', '\g', '\skip', '\m', '\height', '\width',
'\jr', '\jc', '\jl', '\face', '\fl', '\fr', '\b', '\i', '\s',
'\e', '\t1', '\t2', '\th', '\nm', '\font', '\p', '\w', '\ws',
'\oa', '\oi', '\os', '\ow', '\tl', '\tr', '\tc', '\ignr',
'\shk', '\slv', '\ind']

@shortcuts = {}
end

def add_shortcut(shortcut, code)
text = shortcut.downcase
if !@used_codes.include?(text)
@shortcuts[shortcut] = code
end
end
end

# *****************************************************************************
# Changes to Window_Message. This is the bulk of the script
# *****************************************************************************
#==============================================================================
# ** Window_Message
#------------------------------------------------------------------------------
# This message window is used to display text.
#==============================================================================

class Window_Message < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
# x-coordinate depends on justification
if $game_system.window_justification == RIGHT
x = 640 - self.width
elsif $game_system.window_justification == LEFT
x = 0
else # center
x = (640 - $game_system.window_width) / 2
end
# y-coordinate depends on height
y = 480 - $game_system.window_height - 16
super(x, y, $game_system.window_width, $game_system.window_height)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false

# face graphic sprite
@face = Sprite.new
@face.opacity = 0
@face.z = self.z + 1
@face_offset = 0

# choice window
@choice_window = Window_Choice.new([])
@choice_window.back_opacity = 160

# comic sprite
@comic = Sprite.new
@comic.opacity = 0
@comic.z = self.z + 1
if $game_system.comic_style == TALK1
@comic.bitmap = RPG::Cache.windowskin("talk1")
# talk1 es el nombre del archivo en Graphics\Pictures que se usará para el
# modo comic que habla normal
elsif $game_system.comic_style == TALK2
@comic.bitmap = RPG::Cache.windowskin("talk2")
# talk2 es el nombre del archivo en Graphics\Pictures que se usará para el
# modo comic que grita
else # thought
@comic.bitmap = RPG::Cache.windowskin("thought")
# thought es el nombre del archivo en Graphics\Pictures que se usará para
# el modo comic que es pensativo
end

# name window
@name_window = Window_Name.new
@name_window.z = self.z + 1

@pause = 0
@wait = 0

@show = false
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
@face.dispose
@choice_window.dispose
@comic.dispose
@name_window.dispose
super
end
#--------------------------------------------------------------------------
# * Terminate Message
#--------------------------------------------------------------------------
def terminate_message
@show = false
self.active = false
self.pause = false
self.contents.clear
# Clear showing flag
@contents_showing = false
# Call message callback
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
# Clear variables related to text, choices, and number input
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
# Open gold window
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
@choice_window.visible = false
@choice_window.active = false
@comic.opacity = 0
$game_system.slave_windows.each_pair {|name, window|
if window.show == true
window.dispose
$game_system.slave_windows.delete(name)
end
}
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
@show = true
@x = @y = 0

# If waiting for a message to be displayed
if $game_temp.message_text != nil
@text = $game_temp.message_text

# replace shortcuts with original code
$game_system.shortcuts.each { |shortcut, code|
@text.gsub!(shortcut, code)
}

# VERY first thing. Check to see if this is being set up as a slave
# or independent window.
if @text.index(/\\[Ss][Ll][Vv]\[(.*?)\]/) != nil
# is this a new slave window, or a request to display it?
if !$game_system.slave_windows.has_key?($1.to_s)
# there is no such slave window yet. Set it up.
@text.gsub!(/\\[Ss][Ll][Vv]\[(.*?)\]/, "")
$game_system.slave_windows[$1.to_s] = Window_Slave.new(@text)
@text = ""
@show = false
terminate_message
return
end
end

# Control text processing
begin
last_text = @text.clone
@text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until @text == last_text
@text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end

# window mode
if @text.index(/\\[Mm]/) != nil
if $game_system.ums_mode == NORMAL_MODE
$game_system.ums_mode = FIT_WINDOW_TO_TEXT
else
$game_system.ums_mode = NORMAL_MODE
end
@text.gsub!(/\\[Mm]/) { "" }
end

# window height
@text.gsub!(/\\[Hh][Ee][Ii][Gg][Hh][Tt]\[([0-9]+)\]/) do
$game_system.window_height = $1.to_i
""
end

# window width
@text.gsub!(/\\[Ww][Ii][Dd][Tt][Hh]\[([0-9]+)\]/) do
$game_system.window_width = $1.to_i
""
end

# justification
@text.gsub!(/\\[Jj][Rr]/) do
$game_system.window_justification = RIGHT
reset_window
""
end
@text.gsub!(/\\[Jj][Cc]/) do
$game_system.window_justification = CENTER
reset_window
""
end
@text.gsub!(/\\[Jj][Ll]/) do
$game_system.window_justification = LEFT
reset_window
""
end

# face graphics
@text.gsub!(/\\[Ff][Aa][Cc][Ee]\[(.*?)\]/) do
$game_system.face_graphic = $1.to_s
if $1.to_s == ""
@face.opacity = 0
end
""
end
@text.gsub!(/\\[Ff][Ll]/) do
$game_system.face_graphic_justification = LEFT
""
end
@text.gsub!(/\\[Ff][Rr]/) do
$game_system.face_graphic_justification = RIGHT
""
end

# event centering
@text.gsub!(/\\[Ee]\[([0-9]+)\]/) do
$game_system.message_event = $1.to_i
""
end

# comic thingy
@text.gsub!(/\\[Tt]1/) do
$game_system.comic_style = TALK1
@comic.bitmap = RPG::Cache.windowskin("talk1.png")
""
end
@text.gsub!(/\\[Tt]2/) do
$game_system.comic_style = TALK2
@comic.bitmap = RPG::Cache.windowskin("talk2.png")
""
end
@text.gsub!(/\\[Tt][Hh]/) do
$game_system.comic_style = THOUGHT
@comic.bitmap = RPG::Cache.windowskin("thought.png")
""
end

# name window
@text.gsub!(/\\[Nn][Mm]\[(.*?)\]/) do
$game_system.name = $1.to_s
if $1.to_s == ""
@name_window.visible = false
end
""
end

# toggle pause
@text.gsub!(/\\[Pp][Tt]/) do
$game_system.show_pause = !$game_system.show_pause
""
end

# shaking
@text.gsub!(/\\[Ss][Hh][Kk]\[([0-9]+)\]/) do
$game_system.shake = $1.to_i
""
end

# Change "\\\\" to "\000" for convenience
@text.gsub!(/\\\\/) { "\000" }
# Change "\\C" to "\001" and "\\G" to "\002"
@text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
@text.gsub!(/\\[Gg]/) { "\002" }

# text skip code
@text.gsub!(/\\[Ss][Kk][Ii][Pp]/) { "\003" }

# ignore code
@text.gsub!(/\\[Ii][Gg][Nn][Rr]/) { "\023" }

# bold and italics
@text.gsub!(/\\[Bb]/) { "\004" }
@text.gsub!(/\\[Ii]/) { "\005" }

# slave and indy windows
@text.gsub!(/\\[Ss][Ll][Vv]\[(.*?)\]/) { "\024[#{$1}]" }

# shadow
@text.gsub!(/\\[Ss]/) { "\006" }

# font
@text.gsub!(/\\[Ff][Oo][Nn][Tt]\[(.*?)\]/) { "\007[#{$1}]" }

# pause and wait
@text.gsub!(/\\[Pp]\[([0-9]+)\]/) { "\010[#{$1}]" }
@text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\011[#{$1}]" }

# write speed
@text.gsub!(/\\[Ww][Ss]\[([0-9]+)\]/) { "\013[#{$1}]" }

# armor, items, skills, and weapons
@text.gsub!(/\\[Oo][Aa]\[([0-9]+)\]/) {
item = $data_armors[$1.to_i]
"\014[#{$1}]" + " " + item.name
}
@text.gsub!(/\\[Oo][Ii]\[([0-9]+)\]/) {
item = $data_items[$1.to_i]
"\015[#{$1}]" + " " + item.name
}
@text.gsub!(/\\[Oo][Ss]\[([0-9]+)\]/) {
item = $data_skills[$1.to_i]
"\016[#{$1}]" + " " + item.name
}
@text.gsub!(/\\[Oo][Ww]\[([0-9]+)\]/) {
item = $data_weapons[$1.to_i]
"\017[#{$1}]" + " " + item.name
}

# text justification
@text.gsub!(/\\[Tt][Cc]/) { "\020" }
@text.gsub!(/\\[Tt][Ll]/) { "\021" }
@text.gsub!(/\\[Tt][Rr]/) { "\022" }

# Resize the window to fit the contents?
if $game_system.ums_mode == FIT_WINDOW_TO_TEXT
width = 1
text = @text.split("\n")
height = 0
for line in text
# don't count this line's width if it has the ignr code
if !line.include?("\023")
width = [width, self.contents.text_size(line).width].max
height += self.contents.text_size(line).height + 6
end
end

self.width = width + 48
self.height = height + 46
self.contents = Bitmap.new(width + 16, height + 16)
self.contents.font.color = normal_color
else
if self.width != $game_system.window_height or self.height != $game_system.window_width
self.width = $game_system.window_width
self.height = $game_system.window_height
self.contents = Bitmap.new(self.width - 32, self.height - 32)
self.contents.font.color = normal_color
end
end

reset_window

get_x_value

@count = Graphics.frame_count
@pause = 0
@ignore = false
@ascending = true
@target_x = self.x + $game_system.shake
end



# If number input
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
# * Set Window Position and Opacity Level
#--------------------------------------------------------------------------
def reset_window (change_opacity = true)
# x-coordinate depends on justification
if $game_system.message_event == -1
if $game_system.window_justification == RIGHT
self.x = 640 - $game_system.window_width
elsif $game_system.window_justification == LEFT
self.x = 0
else # center
self.x = (640 - self.width) / 2
end
else
if $game_system.message_event == 0 or $game_map.events[$game_system.message_event] == nil
# center on player
event_x = $game_player.screen_x
else
# center on the event specified
event_x = $game_map.events[$game_system.message_event].screen_x
end
self.x = event_x - self.width / 2
@comic.x = self.x + (self.width / 2) + 4
end

if $game_temp.in_battle
self.y = 16
else
if $game_system.message_event == -1
case $game_system.message_position
when 0 # up
self.y = 16
when 1 # middle
self.y = (480 - $game_system.window_height) / 2
when 2 # down
self.y = 480 - $game_system.window_height - 24
end
else
if $game_system.message_event == 0 or $game_map.events[$game_system.message_event] == nil
# above player
self.y = $game_player.screen_y - self.height - 48
else
# above event specified
self.y = $game_map.events[$game_system.message_event].screen_y - self.height - 48
end
@comic.y = self.y + self.height - 2
end
end
if self.y < 0 + ($game_system.name == "" ? 0 : 16)
self.y = 0 + ($game_system.name == "" ? 0 : 16)
elsif self.y > 480 - self.height
self.y = 480 - self.height
end
if self.x < 0
self.x = 0
elsif self.x > 680 - self.width - 48
self.x = 640 - self.width
end

if change_opacity
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end

# face stuff
if $game_system.face_graphic != ""
# the player has chosen to show a face graphic
@face.bitmap = RPG::Cache.picture($game_system.face_graphic)

# picture y-coordinate
if $game_system.face_graphic_position == ABOVE
@face.y = self.y - @face.bitmap.height
@face_offset = 0
elsif $game_system.face_graphic_position == CENTER
delta = (@face.bitmap.height - self.height) / 2
@face.y = self.y - delta
@x = @face_offset = @face.bitmap.width + 16
elsif $game_system.face_graphic_position == BOTTOM
@face.y = self.y + self.height - @face.bitmap.height
@x = @face_offset = @face.bitmap.width + 16
else # side
delta = (@face.bitmap.height - self.height) / 2
@face.y = self.y - delta
@face_offset = 0
end

# picture x-coordinate
if $game_system.face_graphic_justification == LEFT
if $game_system.face_graphic_position == SIDE
@face.x = self.x - @face.bitmap.width
else
@face.x = self.x + 10
end
else
if $game_system.face_graphic_position == SIDE
@face.x = self.x + self.width
else
@face.x = self.x + self.width - @face.bitmap.width - 10
@x = @face_offset = 0
end
end
end

# name window
if $game_system.name != ""
@name_window.set_name($game_system.name)
@name_window.x = self.x
@name_window.y = self.y - 36
end

# If choice
if $game_temp.choice_max > 0
@choice_window.set_choices($game_temp.choices)
# determine x and y coords for choice window
if $game_system.choice_justification == LEFT
@choice_window.x = self.x
else
@choice_window.x = self.x + self.width - @choice_window.width
end
if $game_system.choice_position == ABOVE
# check to make sure there is enough room above the textbox
if self.y < @choice_window.height
# not enough room above, place below
@choice_window.y = self.y + self.height
else
# draw above
@choice_window.y = self.y - @choice_window.height
end
elsif $game_system.choice_position == BOTTOM
# check to make sure there is enough room below the textbox
if (480 - self.y - self.height) < @choice_window.height
# not enough room below, place above
@choice_window.y = self.y - @choice_window.height
else
# draw below
@choice_window.y = self.y + self.height
end
else # side
if $game_system.choice_justification == LEFT
# check to make sure there's room on the left side
if self.y < @choice_window.width
# not enough room on the side, check to make sure there's room below
if (480 - self.y - self.height) < @choice_window.height
# not enough room below, place above
@choice_window.y = self.y - @choice_window.height
else
# draw below
@choice_window.y = self.y + self.height
end
else
# place on the left side
@choice_window.y = self.y
@choice_window.x = self.x - @choice_window.width
end
else # right
# check to make sure there's room on the right side
if (680 - (self.y + self.width)) < @choice_window.width
# not enough room on the side, check to make sure there's room below
if (480 - self.y - self.height) < @choice_window.height
# not enough room below, place above
@choice_window.y = self.y - @choice_window.height
else
# draw below
@choice_window.y = self.y + self.height
end
else
# place on the left side
@choice_window.y = self.y
@choice_window.x = self.x + self.width
end
end
end
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super

if @contents_showing and $game_system.message_event != -1 and $game_system.shake == 0
reset_window(false)
end

if $game_system.shake != 0 # shake the window
if @ascending
if @target_x != self.x
self.x += 1
else
@ascending = false
@target_x = self.x - ($game_system.shake * 2)
end
else
if @target_x != self.x
self.x -= 1
else
@ascending = true
@target_x = self.x + ($game_system.shake * 2)
end
end
end

if @wait > 0
@wait -= 1
if @wait == 0
terminate_message
return
end
end

# If fade in
if @fade_in
self.contents_opacity += 24
if $game_system.face_graphic != ""
@face.opacity += 24
end
if $game_system.comic_enabled and $game_system.message_event != -1
@comic.opacity += 24
end
if $game_system.name != ""
@name_window.visible = true
end
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end

# write the text
if @text != nil and @text != ""
speed = $game_system.write_speed
if $game_system.text_skip
if $game_system.skip_mode == WRITE_FASTER and Input.press?(Input::C)
# the player is holding the action button, write faster
speed /= 3
elsif $game_system.skip_mode == WRITE_ALL and Input.trigger?(Input::C)
# the player pressed the action button, write all the text
while (c = @text.slice!(/./m)) != nil
write_char(c)
end
$game_system.slave_windows.each_value { |window| window.write_all }
return
end
end
while @ignore
c = @text.slice!(/./m)
if c != nil
write_char(c)
end
end
if @pause > 0
@pause -= 1
return
end
if Graphics.frame_count - @count >= speed
if $game_system.sound_effect != ""
Audio.se_play("Audio/SE/" + $game_system.sound_effect, 80, 100)
end
@count = Graphics.frame_count
c = @text.slice!(/./m)
if c != nil
write_char(c)
end
end
return
end

# If inputting number
if @input_number_window != nil
@input_number_window.update
# Confirm
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
# Dispose of number input window
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end

if @wait != 0
return
end

# If message is being displayed and contents are all written
if @contents_showing
# if choice
if $game_temp.choice_max > 0
if !@choice_window.active
@choice_window.visible = true
@choice_window.active = true
@choice_window.index = 0
end
@choice_window.update
else
# If choice isn't being displayed, show pause sign
self.pause = $game_system.show_pause
end
# Cancel
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
# Confirm
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(@choice_window.index)
end
terminate_message
end
return
end
# If display wait message or choice exists when not fading out
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
if @show
self.visible = true
end
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
# If message which should be displayed is not shown, but window is visible
if self.visible
@fade_out = true
self.opacity -= 48
@name_window.opacity -= 48
@comic.opacity -= 48
@face.opacity -= 48
if self.opacity == 0
self.visible = false
@face.opacity = 0
@choice_window.visible = false
@choice_window.active = false
@comic.opacity = 0
@name_window.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end

#--------------------------------------------------------------------------
# * Process and write the given character
#--------------------------------------------------------------------------
def write_char(c)
if c == "\000"
# Return to original text
c = "\\"
end
# If \C[n]
if c == "\001"
# Change text color
@text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
# go to next text
return
end
# If \G
if c == "\002"
# Make gold window
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
# go to next text
return
end
# If \skip
if c == "\003"
# toggle text skipping
$game_system.text_skip = !$game_system.text_skip
# go to next text
return
end
# If \b
if c == "\004"
# toggle bold
self.contents.font.bold = !self.contents.font.bold
# go to next text
return
end
# If \i
if c == "\005"
# toggle italics
self.contents.font.italic = !self.contents.font.italic
# go to next text
return
end
# If \s
if c == "\006"
# toggle shadow
$game_system.shadowed_text = !$game_system.shadowed_text
# go to next text
return
end
# If \font
if c == "\007"
# change font
@text.sub!(/\[(.*?)\]/, "")
font = $1.to_s
$game_system.font = font
if font == ""
self.contents.font.name = Font.default_name
else
self.contents.font.name = font
end
# go to next text
return
end
# If \p[n]
if c == "\010"
@text.sub!(/\[([0-9]+)\]/, "")
@pause = $1.to_i

# go to next text
return
end

# If \w[n]
if c == "\011"
@text.sub!(/\[([0-9]+)\]/, "")
@wait = $1.to_i

# go to next text
return
end

# If \ws[n]
if c == "\013"
@text.sub!(/\[([0-9]+)\]/, "")
$game_system.write_speed = $1.to_i

# go to next text
return
end
# If \oa[n]
if c == "\014"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_armors[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \oi[n]
if c == "\015"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_items[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \os[n]
if c == "\016"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_skills[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \ow[n]
if c == "\017"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_weapons[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \tc
if c == "\020"
# center justify
$game_system.text_justification = CENTER
get_x_value
# go to next text
return
end

# If \tl
if c == "\021"
# left justify
$game_system.text_justification = LEFT
get_x_value
# go to next text
return
end

# If \tr
if c == "\022"
# right justify
$game_system.text_justification = RIGHT
get_x_value
# go to next text
return
end

# If \ignr
if c == "\023"
# set ignore flage
@ignore = true
# go to next text
return
end

# if \slv
if c == "\024"
# we need to show a slave window
@text.sub!(/\[(.*?)\]/, "")
name = $1.to_s
$game_system.slave_windows[name].show = true
end

# If new line text
if c == "\n"
# Add 1 to y
if !@ignore
@y += 1
end
if @text != ""
get_x_value
end
@ignore = false

# go to next text
return
end
if @ignore
return
end
# Draw text
if $game_system.shadowed_text
old_color = self.contents.font.color.clone
self.contents.font.color = $game_system.shadow_color
self.contents.draw_text(6 + @x, 32 * @y + 2, 40, 32, c)
self.contents.font.color = old_color
end
self.contents.draw_text(4 + @x, 32 * @y, 40, 32, c)
# Add x to drawn text width
@x += self.contents.text_size(c).width
end

def get_x_value
# text justification - offset for first line
if $game_system.text_justification == CENTER
# get the length of the current line
w = self.contents.text_size(@text.split("\n")[0]).width
@x = (self.width - w - 48) / 2
elsif $game_system.text_justification == RIGHT
# get the length of the current line
w = self.contents.text_size(@text.split("\n")[0]).width
@x = self.width - w - 48
else # left
if $game_system.face_graphic == ""
@x = 0
else
@x = @face_offset
end
end
end

end

class Interpreter
#--------------------------------------------------------------------------
# * Show Text
#--------------------------------------------------------------------------
def command_101
# If other text has been set to message_text
if $game_temp.message_text != nil
# End
return false
end
# Set message end waiting flag and callback
@message_waiting = true
$game_temp.message_proc = Proc.new { @message_waiting = false }
# Set message text on first line
$game_temp.message_text = @list[@index].parameters[0] + "\n"
line_count = 1
# Loop
loop do
# If next event command text is on the second line or after
if @list[@index + 1].code == 401
# Add the second line or after to message_text
$game_temp.message_text += @list[@index + 1].parameters[0] + "\n"
line_count += 1
# If event command is not on the second line or after
else
# If next event command is show choices
if @list[@index+1].code == 102
# If choices fit on screen
#if @list[@index+1].parameters[0].size <= 4 - line_count
# Advance index
@index += 1
# Choices setup
$game_temp.choice_start = line_count
setup_choices(@list[@index].parameters)
#end
# If next event command is input number
elsif @list[@index+1].code == 103
# If number input window fits on screen
if line_count < 4
# Advance index
@index += 1
# Number input setup
$game_temp.num_input_start = line_count
$game_temp.num_input_variable_id = @list[@index].parameters[0]
$game_temp.num_input_digits_max = @list[@index].parameters[1]
end
end
# Continue
return true
end
# Advance index
@index += 1
end
end
#--------------------------------------------------------------------------
# * Setup Choices
#--------------------------------------------------------------------------
def setup_choices(parameters)
# Set choice item count to choice_max
$game_temp.choice_max = parameters[0].size
# Set choice to message_text
$game_temp.choices = parameters[0]
# Set cancel processing
$game_temp.choice_cancel_type = parameters[1]

# Set callback
current_indent = @list[@index].indent
$game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }
end

#--------------------------------------------------------------------------
# * Script
#--------------------------------------------------------------------------
def command_355
# Set first line to script
script = @list[@index].parameters[0] + "\n"
# Loop
loop do
# If next event command is second line of script or after
if @list[@index + 1].code == 655
# Add second line or after to script
script += @list[@index + 1].parameters[0] + "\n"
# If event command is not second line or after
else
# Abort loop
break
end
# Advance index
@index += 1
end
# Evaluation
result = eval(script)

# Continue
return true
end
end

#==============================================================================
# ** Window_Choice
#------------------------------------------------------------------------------
# This message window is used to display choices.
#==============================================================================
class Window_Choice < Window_Selectable
def initialize (choices)
super(0, 0, 32, choices.size * 32)
self.visible = false
self.active = false
@index = 0
@item_max = choices.size
@choices = choices
self.contents = Bitmap.new(32, 32)
end

def refresh
# determine necessary width
width = 64
for line in @choices
width = [width, (self.contents.text_size(line).width + 48)].max
end
self.width = width
self.height = @choices.size * 32 + 32
self.contents = Bitmap.new(width - 32, height - 32)

# draw choices
y = 0
for line in @choices
self.contents.draw_text(4, y * 32, width, 32, line)
y += 1
end
end

def set_choices(choices)
@choices = choices
@item_max = @choices.size
refresh
end
end

#==============================================================================
# ** Window_Name
#------------------------------------------------------------------------------
# This window is used to display names above the message window. Uncomment
# and modify the various sections to customize.
#==============================================================================
class Window_Name < Window_Base
def initialize
super(0, 0, 32, 64)
self.contents = Bitmap.new(32, 32)
self.opacity = 0
self.visible = false
end

def set_name(name)
@name = name
refresh
end

def refresh
if @name == nil
return
end
self.width = self.contents.text_size(@name).width + 48
self.contents = Bitmap.new(width - 32, height - 32)
# uncomment this and change the font to give the name window a fancy font
#self.contents.font.name = "Ariel"
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(0, 0, self.width, 32, @name)
self.contents.draw_text(0, 2, self.width, 32, @name)
self.contents.draw_text(2, 0, self.width, 32, @name)
self.contents.draw_text(2, 2, self.width, 32, @name)
# change the color to give the name window a seperate color
self.contents.font.color = normal_color
self.contents.draw_text(1, 1, self.width, 32, @name)
end
end


#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
# This class handles temporary data that is not included with save data.
# Refer to "$game_temp" for the instance of this class.
#==============================================================================
class Game_Temp
attr_accessor :choices
end

class Scene_Map
alias ums_update update
def update
$game_system.slave_windows.each_value { |window| window.update }
ums_update
end
end

#==============================================================================
# ** Window_Slave
#------------------------------------------------------------------------------
# These are slave windows to the main message window. They will close when
# the user terminates them. Initial settings are identical to the main
# message window, with one exception. When in normal mode, it will apear
# above if the main message is below, below if it is above or centered. Use
# message codes to change the settings for this window.
#==============================================================================
class Window_Slave < Window_Base
attr_accessor :show

def write_all
@write_all = true
end

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize (text)
super(0, 0, 33, 33)
@text = text

# x-coordinate depends on justification
if @justification == RIGHT
self.x = 640 - self.width
elsif @justification == LEFT
self.x = 0
else # center
self.x = (640 - self.width) / 2
end
# y-coordinate depends on height
self.y = 480 - $game_system.window_height - 16
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false

# face graphic sprite
@face = Sprite.new
@face.opacity = 0
@face.z = self.z + 1
@face_offset = 0

# choice window
@choice_window = Window_Choice.new([])
@choice_window.back_opacity = 160

@comic_style = $game_system.comic_style
@name = $game_system.name

# comic sprite
@comic = Sprite.new
@comic.opacity = 0
@comic.z = self.z + 1
if @comic_style == TALK1
@comic.bitmap = RPG::Cache.windowskin("talk1")
elsif @comic_style == TALK2
@comic.bitmap = RPG::Cache.windowskin("talk2")
else # thought
@comic.bitmap = RPG::Cache.windowskin("thought")
end



@pause = 0
@wait = 0

@mode = $game_system.ums_mode
self.height = $game_system.window_height
self.width = $game_system.window_width
@justification = $game_system.window_justification
@face_graphic = $game_system.face_graphic
@face_graphic_justification = $game_system.face_graphic_justification
@message_event = $game_system.message_event
if $game_system.message_position == 2 # down
@message_position = 0
else
@message_postion = 2
end
@face_graphic_position = $game_system.face_graphic_position
if $game_system.font == ""
@font = Font.default_name
else
@font = $game_system.font
end
@text_justification = $game_system.text_justification

@shake = $game_system.shake

refresh
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
@face.dispose
@choice_window.dispose
@comic.dispose
if @name_window != nil
@name_window.dispose
end
super
end
#--------------------------------------------------------------------------
# * Terminate Message
#--------------------------------------------------------------------------
def terminate_message
self.active = false
self.pause = false
self.contents.clear
# Clear showing flag
@contents_showing = false
# Call message callback
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
# Clear variables related to text, choices, and number input
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
# Open gold window
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
@choice_window.visible = false
@choice_window.active = false
@comic.opacity = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh

self.contents.clear
self.contents.font.color = normal_color
@x = @y = 0

# If waiting for a message to be displayed
if @text != nil
# replace shortcuts with original code
$game_system.shortcuts.each { |shortcut, code|
@text.gsub!(shortcut, code)
}

# Control text processing
begin
last_text = @text.clone
@text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until @text == last_text
@text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end

# window mode
if @text.index(/\\[Mm]/) != nil
if $game_system.ums_mode == NORMAL_MODE
@mode = FIT_WINDOW_TO_TEXT
else
@mode = NORMAL_MODE
end
@text.gsub!(/\\[Mm]/) { "" }
end

# window height
@text.gsub!(/\\[Hh][Ee][Ii][Gg][Hh][Tt]\[([0-9]+)\]/) do
self.height = $1.to_i
""
end

# window width
@text.gsub!(/\\[Ww][Ii][Dd][Tt][Hh]\[([0-9]+)\]/) do
self.width = $1.to_i
""
end

# justification
@text.gsub!(/\\[Jj][Rr]/) do
@justification = RIGHT
reset_window
""
end
@text.gsub!(/\\[Jj][Cc]/) do
@justification = CENTER
reset_window
""
end
@text.gsub!(/\\[Jj][Ll]/) do
@justification = LEFT
reset_window
""
end

# face graphics
@text.gsub!(/\\[Ff][Aa][Cc][Ee]\[(.*?)\]/) do
@face_graphic = $1.to_s
if $1.to_s == ""
@face.opacity = 0
end
""
end
@text.gsub!(/\\[Ff][Ll]/) do
@face_graphic_justification = LEFT
""
end
@text.gsub!(/\\[Ff][Rr]/) do
@face_graphic_justification = RIGHT
""
end

# event centering
@text.gsub!(/\\[Ee]\[([0-9]+)\]/) do
@message_event = $1.to_i
""
end

# comic thingy
@text.gsub!(/\\[Tt]1/) do
@comic_style = TALK1
@comic.bitmap = RPG::Cache.windowskin("talk1.png")
""
end
@text.gsub!(/\\[Tt]2/) do
@comic_style = TALK2
@comic.bitmap = RPG::Cache.windowskin("talk2.png")
""
end
@text.gsub!(/\\[Tt][Hh]/) do
@comic_style = THOUGHT
@comic.bitmap = RPG::Cache.windowskin("thought.png")
""
end

# name window
@text.gsub!(/\\[Nn][Mm]\[(.*?)\]/) do
@name = $1.to_s
if $1.to_s == "" and @name_window != nil
@name_window.visible = false
end
""
end
if @name != ""
# name window
@name_window = Window_Name.new
@name_window.z = self.z + 1
@name_window.set_name(@name)
end

# shaking
@text.gsub!(/\\[Ss][Hh][Kk]\[([0-9]+)\]/) do
@shake = $1.to_i
""
end

# Change "\\\\" to "\000" for convenience
@text.gsub!(/\\\\/) { "\000" }
# Change "\\C" to "\001" and "\\G" to "\002"
@text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
@text.gsub!(/\\[Gg]/) { "\002" }

# text skip code
@text.gsub!(/\\[Ss][Kk][Ii][Pp]/) { "\003" }

# ignore code
@text.gsub!(/\\[Ii][Gg][Nn][Rr]/) { "\023" }

# bold and italics
@text.gsub!(/\\[Bb]/) { "\004" }
@text.gsub!(/\\[Ii]/) { "\005" }

# shadow
@text.gsub!(/\\[Ss]/) { "\006" }

# font
@text.gsub!(/\\[Ff][Oo][Nn][Tt]\[(.*?)\]/) { "\007[#{$1}]" }

# pause and wait
@text.gsub!(/\\[Pp]\[([0-9]+)\]/) { "\010[#{$1}]" }
@text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\011[#{$1}]" }

# write speed
@text.gsub!(/\\[Ww][Ss]\[([0-9]+)\]/) { "\013[#{$1}]" }

# armor, items, skills, and weapons
@text.gsub!(/\\[Oo][Aa]\[([0-9]+)\]/) {
item = $data_armors[$1.to_i]
"\014[#{$1}]" + " " + item.name
}
@text.gsub!(/\\[Oo][Ii]\[([0-9]+)\]/) {
item = $data_items[$1.to_i]
"\015[#{$1}]" + " " + item.name
}
@text.gsub!(/\\[Oo][Ss]\[([0-9]+)\]/) {
item = $data_skills[$1.to_i]
"\016[#{$1}]" + " " + item.name
}
@text.gsub!(/\\[Oo][Ww]\[([0-9]+)\]/) {
item = $data_weapons[$1.to_i]
"\017[#{$1}]" + " " + item.name
}

# text justification
@text.gsub!(/\\[Tt][Cc]/) { "\020" }
@text.gsub!(/\\[Tt][Ll]/) { "\021" }
@text.gsub!(/\\[Tt][Rr]/) { "\022" }

# Resize the window to fit the contents?
if @mode == FIT_WINDOW_TO_TEXT
width = 1
text = @text.split("\n")
height = 0
for line in text
# don't count this line's width if it has the ignr code
if !line.include?("\023")
width = [width, self.contents.text_size(line).width].max
height += self.contents.text_size(line).height + 6
end
end

self.width = width + 48
self.height = height + 46
self.contents = Bitmap.new(width + 16, height + 16)
else
if self.width != $game_system.window_height or self.height != $game_system.window_width
self.width = $game_system.window_width
self.height = $game_system.window_height
self.contents = Bitmap.new(self.width - 32, self.height - 32)
end
end

reset_window

get_x_value

@count = Graphics.frame_count
@pause = 0
@ignore = false
end



# If number input
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
# * Set Window Position and Opacity Level
#--------------------------------------------------------------------------
def reset_window (change_opacity = true)
# x-coordinate depends on justification
if @message_event == -1
if @justification == RIGHT
self.x = 640 - self.width
elsif @justification == LEFT
self.x = 0
else # center
self.x = (640 - self.width) / 2
end
else
if @message_event == 0 or $game_map.events[@message_event] == nil
# center on player
event_x = $game_player.screen_x
else
# center on the event specified
event_x = $game_map.events[@message_event].screen_x
end
self.x = event_x - self.width / 2
@comic.x = self.x + (self.width / 2) + 4
end

if $game_temp.in_battle
self.y = 16
else
if @message_event == -1
case @message_position
when 0 # up
self.y = 16
when 1 # middle
self.y = (480 - self.height) / 2
when 2 # down
self.y = 480 - self.height - 24
end
else
if @message_event == 0 or $game_map.events[@message_event] == nil
# above player
self.y = $game_player.screen_y - self.height - 48
else
# above event specified
self.y = $game_map.events[@message_event].screen_y - self.height - 48
end
@comic.y = self.y + self.height - 2
end
end
if self.y < 0 + (@name == "" ? 0 : 16)
self.y = 0 + (@name == "" ? 0 : 16)
elsif self.y > 480 - self.height
self.y = 480 - self.height
end
if self.x < 0
self.x = 0
elsif self.x > 680 - self.width - 48
self.x = 640 - self.width
end

if change_opacity
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end

# face stuff
if @face_graphic != ""
# the player has chosen to show a face graphic
@face.bitmap = RPG::Cache.picture(@face_graphic)

# picture y-coordinate
if @face_graphic_position == ABOVE
@face.y = self.y - @face.bitmap.height
@face_offset = 0
elsif @face_graphic_position == CENTER
delta = (@face.bitmap.height - self.height) / 2
@face.y = self.y - delta
@x = @face_offset = @face.bitmap.width + 16
elsif @face_graphic_position == BOTTOM
@face.y = self.y + self.height - @face.bitmap.height
@x = @face_offset = @face.bitmap.width + 16
else # side
delta = (@face.bitmap.height - self.height) / 2
@face.y = self.y - delta
@face_offset = 0
end

# picture x-coordinate
if @face_graphic_justification == LEFT
if @face_graphic_position == SIDE
@face.x = self.x - @face.bitmap.width
else
@face.x = self.x + 10
end
else
if @face_graphic_position == SIDE
@face.x = self.x + self.width
else
@face.x = self.x + self.width - @face.bitmap.width - 10
@x = @face_offset = 0
end
end
end

# name window
if @name != "" and @name != nil
@name_window.set_name(@name)
@name_window.x = self.x
@name_window.y = self.y - 36
end

# If choice
if $game_temp.choice_max > 0
@choice_window.set_choices($game_temp.choices)
# determine x and y coords for choice window
if $game_system.choice_justification == LEFT
@choice_window.x = self.x
else
@choice_window.x = self.x + self.width - @choice_window.width
end
if $game_system.choice_position == ABOVE
# check to make sure there is enough room above the textbox
if self.y < @choice_window.height
# not enough room above, place below
@choice_window.y = self.y + self.height
else
# draw above
@choice_window.y = self.y - @choice_window.height
end
elsif $game_system.choice_position == BOTTOM
# check to make sure there is enough room below the textbox
if (480 - self.y - self.height) < @choice_window.height
# not enough room below, place above
@choice_window.y = self.y - @choice_window.height
else
# draw below
@choice_window.y = self.y + self.height
end
else # side
if $game_system.choice_justification == LEFT
# check to make sure there's room on the left side
if self.y < @choice_window.width
# not enough room on the side, check to make sure there's room below
if (480 - self.y - self.height) < @choice_window.height
# not enough room below, place above
@choice_window.y = self.y - @choice_window.height
else
# draw below
@choice_window.y = self.y + self.height
end
else
# place on the left side
@choice_window.y = self.y
@choice_window.x = self.x - @choice_window.width
end
else # right
# check to make sure there's room on the right side
if (680 - (self.y + self.width)) < @choice_window.width
# not enough room on the side, check to make sure there's room below
if (480 - self.y - self.height) < @choice_window.height
# not enough room below, place above
@choice_window.y = self.y - @choice_window.height
else
# draw below
@choice_window.y = self.y + self.height
end
else
# place on the left side
@choice_window.y = self.y
@choice_window.x = self.x + self.width
end
end
end
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super

if !@show
return
else
self.visible = true
if @face_graphic != ""
@face.opacity = 255
end
if $game_system.comic_enabled and @message_event != -1
@comic.opacity = 255
end
if @name != ""
@name_window.visible = true
end
if @input_number_window != nil
@input_number_window.contents_opacity = 255
end
reset_window
end


if @contents_showing and $game_system.message_event != -1 and @shake == 0
reset_window(false)
end

if $game_system.shake != 0 # shake the window
if @ascending
if @target_x != self.x
self.x += 1
else
@ascending = false
@target_x = self.x - ($game_system.shake * 2)
end
else
if @target_x != self.x
self.x -= 1
else
@ascending = true
@target_x = self.x + ($game_system.shake * 2)
end
end
end

if @wait > 0
@wait -= 1
if @wait == 0
terminate_message
return
end
end

# If fade in
if @fade_in
self.contents_opacity += 24
if @face_graphic != ""
@face.opacity += 24
end
if $game_system.comic_enabled and @message_event != -1
@comic.opacity += 24
end
if @name != ""
@name_window.visible = true
end
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end

# write the text
if @text != nil and @text != ""
speed = $game_system.write_speed
if $game_system.text_skip
if $game_system.skip_mode == WRITE_FASTER and Input.press?(Input::C)
# the player is holding the action button, write faster
speed /= 3
elsif $game_system.skip_mode == WRITE_ALL and @write_all
# the player pressed the action button, write all the text
while (c = @text.slice!(/./m)) != nil
write_char(c)
end
return
end
end
while @ignore
c = @text.slice!(/./m)
if c != nil
write_char(c)
end
end
if @pause > 0
@pause -= 1
return
end
if Graphics.frame_count - @count >= speed
if $game_system.sound_effect != ""
Audio.se_play("Audio/SE/" + $game_system.sound_effect, 80, 100)
end
@count = Graphics.frame_count
c = @text.slice!(/./m)
if c != nil
write_char(c)
end
end
return
end

# If inputting number
if @input_number_window != nil
@input_number_window.update
# Confirm
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
# Dispose of number input window
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end

if @wait != 0
return
end

# If message is being displayed and contents are all written
if @contents_showing
# if choice
if $game_temp.choice_max > 0
if !@choice_window.active
@choice_window.visible = true
@choice_window.active = true
@choice_window.index = 0
end
@choice_window.update
else
# If choice isn't being displayed, show pause sign
self.pause = true
end
return
end
end

#--------------------------------------------------------------------------
# * Process and write the given character
#--------------------------------------------------------------------------
def write_char(c)
if c == "\000"
# Return to original text
c = "\\"
end
# If \C[n]
if c == "\001"
# Change text color
@text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
# go to next text
return
end
# If \G
if c == "\002"
# Make gold window
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
# go to next text
return
end
# If \skip
if c == "\003"
# toggle text skipping
#$game_system.text_skip = !$game_system.text_skip
# go to next text
return
end
# If \b
if c == "\004"
# toggle bold
self.contents.font.bold = !self.contents.font.bold
# go to next text
return
end
# If \i
if c == "\005"
# toggle italics
self.contents.font.italic = !self.contents.font.italic
# go to next text
return
end
# If \s
if c == "\006"
# toggle shadow
#$game_system.shadowed_text = !$game_system.shadowed_text
# go to next text
return
end
# If \font
if c == "\007"
# change font
@text.sub!(/\[(.*?)\]/, "")
font = $1.to_s
@font = font
if font == ""
self.contents.font.name = Font.default_name
else
self.contents.font.name = font
end
# go to next text
return
end
# If \p[n]
if c == "\010"
@text.sub!(/\[([0-9]+)\]/, "")
@pause = $1.to_i

# go to next text
return
end

# If \w[n]
if c == "\011"
@text.sub!(/\[([0-9]+)\]/, "")
@wait = $1.to_i

# go to next text
return
end

# If \ws[n]
if c == "\013"
@text.sub!(/\[([0-9]+)\]/, "")
$game_system.write_speed = $1.to_i

# go to next text
return
end
# If \oa[n]
if c == "\014"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_armors[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \oi[n]
if c == "\015"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_items[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \os[n]
if c == "\016"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_skills[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \ow[n]
if c == "\017"
@text.sub!(/\[([0-9]+)\]/, "")
index = $1.to_i
@text.sub!(" ", "")
item = $data_weapons[index]
# draw the icon
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
@x += 24

# go to next text
return
end

# If \tc
if c == "\020"
# center justify
@text_justification = CENTER
get_x_value
# go to next text
return
end

# If \tl
if c == "\021"
# left justify
@text_justification = LEFT
get_x_value
# go to next text
return
end

# If \tr
if c == "\022"
# right justify
@text_justification = RIGHT
get_x_value
# go to next text
return
end

# If \ignr
if c == "\023"
# set ignore flage
@ignore = true
# go to next text
return
end

# If new line text
if c == "\n"
# Add 1 to y
if !@ignore
@y += 1
end
if @text != ""
get_x_value
end
@ignore = false

# go to next text
return
end
if @ignore
return
end
# Draw text
if $game_system.shadowed_text
old_color = self.contents.font.color.clone
self.contents.font.color = $game_system.shadow_color
self.contents.draw_text(6 + @x, 32 * @y + 2, 40, 32, c)
self.contents.font.color = old_color
end
self.contents.draw_text(4 + @x, 32 * @y, 40, 32, c)
# Add x to drawn text width
@x += self.contents.text_size(c).width
end

def get_x_value
# text justification - offset for first line
if @text_justification == CENTER
# get the length of the current line
w = self.contents.text_size(@text.split("\n")[0]).width
@x = (self.width - w - 48) / 2
elsif @text_justification == RIGHT
# get the length of the current line
w = self.contents.text_size(@text.split("\n")[0]).width
@x = self.width - w - 48
else # left
if @face_graphic == ""
@x = 0
else
@x = @face_offset
end
end
end
end
 
Mensajes
454
Reacciones
0
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola aqui yo de nuevo con dudas y problemas
1.-¿Pra cual script de batalla lateral me sirven estos batlers?
ah.png

¿sirve en el xp?
2.- ¿como soluciono los sig problemas con este script?
Script
#==============================================================================
# Beastairy System
#--------------------------------------------------------------------------
# Created By SephirothSpawn (11.18.05)
# Last Updated: 11.18.05
#==============================================================================
class Window_BestiaryCommand < Window_Command
def initialize(a,b)
super(a,b)
self.windowskin = RPG::Cache.windowskin("org-clear")
end
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index],1)
end
def update_cursor_rect
# If cursor position is less than 0
if @index < 0
self.cursor_rect.empty
return
end
# Get current row
row = @index / @column_max
# If current row is before top row
if row < self.top_row
# Scroll so that current row becomes top row
self.top_row = row
end
# If current row is more to back than back row
if row > self.top_row + (self.page_row_max - 1)
# Scroll so that current row becomes back row
self.top_row = row - (self.page_row_max - 1)
end
# Calculate cursor width
cursor_width = self.width / @column_max - 32
# Calculate cursor coordinates
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 32 - self.oy + 4
# Update cursor rectangle
self.cursor_rect.set(x, y, cursor_width, 24)
end
end
#==============================================================================
# ** Class Scene Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias' New Game Method
#--------------------------------------------------------------------------
alias new_game command_new_game
#--------------------------------------------------------------------------
# * Adds Beastairy Game Variables
#--------------------------------------------------------------------------
def command_new_game
# Sets Up Smithery List
$game_beastairy = Game_Beastairy.new
new_game
end
end

#==============================================================================
# ** Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :beastairy_return
#--------------------------------------------------------------------------
# * Alias Initialization
#--------------------------------------------------------------------------
alias beastairy_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
beastairy_initialize
@beastairy_return = false
end
end

#==============================================================================
# ** Class Game Beastairy
#==============================================================================
class Game_Beastairy
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :monster_groups
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@alphavetical = true
@monster_groups = []
for i in 1...$data_enemies.size
$data_enemies.beastairy_setup
unless @monster_groups.include?($data_enemies.group)
if $data_enemies.group != "No"
@monster_groups.push($data_enemies.group)
end
end
end
@monster_groups.sort! if @alphavetical
end
end

#==============================================================================
# ** Module RPG
#==============================================================================
module RPG
#=========================================================================
# ** Class Enemy
#=========================================================================
class Enemy
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
# Detectors
attr_accessor :seen, :defeated, :group
# Counters
attr_accessor :seen_times, :defeated_times
#--------------------------------------------------------------------------
# * Setup Beastairy
#--------------------------------------------------------------------------
def beastairy_setup
@seen_times, @defeated_times = 0, 0
@seen, @defeated = false, false
if @name.include?('(')
a, b = @name.index('('), @name.index(')')
@group = @name.slice!(a..b)
if @group == "(No)"
@group = "No"
else
@group.delete!('(')
@group.delete!(')')
end
else
@group = "Otros"
end
end
#--------------------------------------------------------------------------
# * See Enemy
#--------------------------------------------------------------------------
def see
@seen = true
@seen_times += 1
end
#--------------------------------------------------------------------------
# * Defeat Enemy
#--------------------------------------------------------------------------
def defeat
@defeated = true
@defeated_times += 1
end
end
end

#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Alias Save Data
#--------------------------------------------------------------------------
alias new_save write_save_data
#--------------------------------------------------------------------------
# * Write Save Data
#--------------------------------------------------------------------------
def write_save_data(file)
new_save(file)
Marshal.dump($game_beastairy, file)
Marshal.dump($data_enemies, file)
end
end

#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# * Alias Read Save Data
#--------------------------------------------------------------------------
alias new_load read_save_data
#--------------------------------------------------------------------------
# * Read Save Data
#--------------------------------------------------------------------------
def read_save_data(file)
new_load(file)
$game_beastairy = Marshal.load(file)
$data_enemies = Marshal.load(file)
end
end

#==============================================================================
# ** Class Window Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Draw Enemy Sprite
#--------------------------------------------------------------------------
def draw_enemy_sprite(x, y, enemy_name, enemy_hue, pose, frame)
bitmap = RPG::Cache.character(enemy_name, enemy_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
# Facing Direction
case pose
when 0 ;a = 0 # Down
when 1 ;a = ch # Left
when 2 ;a = ch * 3 # Up
when 3 ;a = ch * 2 # Right
end
# Current Animation Slide
case frame
when 0 ;b = 0
when 1 ;b = cw
when 2 ;b = cw * 2
when 3 ;b = cw * 3
end
# Bitmap Rectange
src_rect = Rect.new(b, a, cw, ch)
# Draws Bitmap
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end

#==============================================================================
# Window Monster Group Info
#==============================================================================
class Window_Monster_Group_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(200, 0, 440, 480)
self.windowskin = RPG::Cache.windowskin("org-clear")
self.contents = Bitmap.new(width - 32, height - 32)
refresh(0, 0, 0)
end
#--------------------------------------------------------------------------
# * Refresh
# index : Index of Group From Game_Beastairy.Groups
# pose : Enemy Character Pose
# frame : Frame of Pose
#--------------------------------------------------------------------------
def refresh(index, pose, frame)
# Clears Window
contents.clear
# Sets Up Group Name
group_name = $game_beastairy.monster_groups[index]
# Sets Up Enemies In Group
enemies = []
for i in 1...$data_enemies.size
if $data_enemies.group == group_name
enemies.push($data_enemies)
end
end
group_name = "Salir" if index == $game_beastairy.monster_groups.size
# Draws Enemy Group Name
contents.font.color = system_color
contents.draw_text(0, 0, self.width - 32, 32, group_name, 1)
unless index == $game_beastairy.monster_groups.size
# Offsets Graphics X Position
graphics_offset = contents.width / (enemies.size + 1)
# Draws Enemies Graphics
for i in 0...enemies.size

if enemies.seen
bitmape = RPG::Cache.picture("Shadow")
rect = Rect.new(0,0,bitmape.width,bitmape.height)
self.contents.blt(graphics_offset * (i + 1) - bitmape.width / 2,42,bitmape,rect)
draw_enemy_sprite(graphics_offset * (i + 1), 124, enemies.battler_name , enemies.battler_hue , pose, frame)
else
draw_enemy_sprite(graphics_offset * (i + 1), 114, "Unknown" , 0 , pose, frame)
end

end
# HP, SP, and Gold Word
hp_word = $data_system.words.hp
sp_word = $data_system.words.sp
gold_word = $data_system.words.gold
# Draws Table Headings
contents.draw_text(4, 128, width, 24, "Nombre")
contents.draw_text(0, 128, 200, 24, "#{hp_word}", 2)
contents.draw_text(0, 128, 300, 24, "#{sp_word}", 2)
contents.draw_text(-4, 128, contents.width, 24, "#{gold_word}", 2)
# Draws Enemies Stats
contents.font.color = normal_color
for i in 0...enemies.size
# Sets Enemy Stats
name, hp, sp, gold = "(?)", "(?)", "(?)", "(?)"
name, hp, sp = enemies.name, enemies.maxhp, enemies.maxsp if enemies.seen
gold = enemies.gold if enemies.defeated
# Draws Stats
contents.draw_text(4, 152 + (i * 24), width, 24, name)
contents.draw_text(0, 152 + (i * 24), 200, 24, "#{hp}", 2)
contents.draw_text(0, 152 + (i * 24), 300, 24, "#{sp}", 2)
contents.draw_text(-4, 152 + (i * 24), contents.width, 24, "#{gold}", 2)
end
end
end
end

#==============================================================================
# Window Monster Info
#==============================================================================
class Window_Monster_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(200, 0, 440, 480)
self.windowskin = RPG::Cache.windowskin("org-clear")
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------------
# * Refresh
# index : Index of enemy From $data_enemies
# pose : Enemy Character Pose
# frame : Frame of Pose
#--------------------------------------------------------------------------
def refresh(index, pose, frame)
# Clears Window
contents.clear
# Enemy
enemy = $data_enemies[index]
# Graphic Image
if enemy.seen
bitmape = RPG::Cache.picture("Shadow")
rect = Rect.new(0,0,bitmape.width,bitmape.height)
self.contents.blt(60 - bitmape.width / 2,18,bitmape,rect)
draw_enemy_sprite(60, 100, enemy.battler_name , enemy.battler_hue , pose, frame)
else
draw_enemy_sprite(60, 100, "Unknown" , 0 , pose, frame)
end
# Default Stats Set
name = "(?)"
maxhp = maxsp = str = dex = agi = int = atk = pdef = mdef = eva = "(?)"
exp = gold = item_id = weapon_id = armor_id = treasure_prob = "(?)"
item_icon = weapon_icon = armor_icon = "049-Skill06"
armor_type = 2
# If the Enemy has been seen
if enemy.seen
name = enemy.name
maxhp = enemy.maxhp.to_s
maxsp = enemy.maxsp.to_s
str = enemy.str.to_s
dex = enemy.dex.to_s
agi = enemy.agi.to_s
int = enemy.int.to_s
atk = enemy.atk.to_s
pdef = enemy.pdef.to_s
mdef = enemy.mdef.to_s
eva = enemy.eva.to_s
end
# If the Enemy has been Defeated
if enemy.defeated
exp = enemy.exp.to_s
gold = enemy.gold.to_s
if enemy.item_id == 0
item_id = "Nada"
item_icon = "032-Item01"
else
item_id = $data_items[enemy.item_id].name
item_icon = $data_items[enemy.item_id].icon_name
end
if enemy.weapon_id == 0
weapon_id = "Nada"
weapon_icon = "032-Item01"
else
weapon_id = $data_weapons[enemy.weapon_id].name
weapon_icon = $data_weapons[enemy.weapon_id].icon_name
end
if enemy.armor_id == 0
armor_id = "Nada"
armor_icon = "032-Item01"
else
armor_id = $data_armors[enemy.armor_id].name
armor_icon = $data_armors[enemy.armor_id].icon_name
armor_type = $data_armors[enemy.armor_id].type
end
treasure_prob = enemy.treasure_prob.to_s
end
# System Words
g_word = $data_system.words.gold
hp_word = $data_system.words.hp
sp_word = $data_system.words.sp
str_word = $data_system.words.str
dex_word = $data_system.words.dex
agi_word = $data_system.words.agi
int_word = $data_system.words.int
atk_word = $data_system.words.atk
pdef_word = $data_system.words.pdef
mdef_word = $data_system.words.mdef
weapon_word = $data_system.words.weapon
armor_type = "Equipo"
item_word = $data_system.words.item
# Draws Name
contents.font.color = normal_color
contents.draw_text(0, 0, contents.width, 32, name,1)
# Draws Times Seen & Defeated
contents.font.color = system_color
contents.draw_text(116, 32, contents.width - 116, 32, "Visto:")
contents.draw_text(116, 64, contents.width - 116, 32, "Derrotado:")
contents.font.color = normal_color
contents.draw_text(0, 32, contents.width, 32, "#{enemy.seen_times}", 2)
contents.draw_text(0, 64, contents.width, 32, "#{enemy.defeated_times}", 2)
# Organizes Stats
colomn_a_left = ["#{hp_word}", "#{sp_word}", str_word, dex_word,
agi_word, int_word, atk_word, pdef_word, mdef_word, "Evasión"]
colomn_a_right = [maxhp, maxsp, str,dex , agi, int, atk, pdef, mdef, eva]
# Organized Victory Settings
column_b_left = ["Experiencia:", "#{g_word} :", "#{item_word} :", "",
"#{weapon_word} :", "", "#{armor_type} :", "", "Probabilidad:"]
if item_id == nil and weapon_id == nil and armor_id == nil
treasure_prob = "0"
end
if item_id == "Nada" and weapon_id == "Nada" and armor_id == "Nada"
treasure_prob = "0"
end
column_b_right = [exp, gold, "", item_id, "", weapon_id, "", armor_id, treasure_prob]
# Draws Stats
for i in 0...colomn_a_left.size
contents.font.color = system_color
contents.draw_text(4, 160 + i * 32, 160, 32, colomn_a_left)
contents.font.color = normal_color
contents.draw_text(-4, 160 + i * 32, 160, 32, colomn_a_right, 2)
end
# Draws Victory Settings
for i in 0...column_b_left.size
contents.font.color = system_color
contents.draw_text(168, 160 + i * 32, contents.width, 32, column_b_left)
x = -4
x = -30 if i == 3 or i == 5 or i == 7
contents.font.color = normal_color
contents.draw_text(x, 160 + i * 32, contents.width, 32, column_b_right, 2)
end
# Draws Item Icons
bitmap = RPG::Cache.icon(item_icon)
self.contents.blt(contents.width - 24, 260, bitmap, Rect.new(0, 0, 24, 24))
bitmap = RPG::Cache.icon(weapon_icon)
self.contents.blt(contents.width - 24, 324, bitmap, Rect.new(0, 0, 24, 24))
bitmap = RPG::Cache.icon(armor_icon)
self.contents.blt(contents.width - 24, 388, bitmap, Rect.new(0, 0, 24, 24))
end
end

#==============================================================================
# Window Beastairy Controls
#==============================================================================
class Window_Beastairy_Controls < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 288 - 32, 200, 192 + 32)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("org-clear")
self.z = 999
refresh(0)
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh(phase)
# Clears Window
contents.clear
disabled_system_color = Color.new(192, 224, 255, 128)
contents.font.color = normal_color
contents.draw_text(0, 0, contents.width, 24, " D/I: Camiar pose")
# Main Phase Controls
contents.font.color = phase == 0 ? system_color : disabled_system_color
contents.draw_text(4, 24, contents.width, 24, "Grupos")
contents.font.color = phase == 0 ? normal_color : disabled_color
contents.draw_text(8, 48, contents.width, 24, "B : Cerrar bestiario")
contents.draw_text(8, 72, contents.width, 24, "C : Elegir Grupo")
# Enemy Select Controls
contents.font.color = phase == 1 ? system_color : disabled_system_color
contents.draw_text(4, 96, contents.width, 24, "Enemigos")
contents.font.color = phase == 1 ? normal_color : disabled_color
contents.draw_text(8, 140, contents.width, 24, "B : Ir a los Grupos")
contents.draw_text(8, 120, contents.width, 24, "C : Prueba")
contents.draw_text(8, 160, contents.width, 24, "A : Ver/Ocultar Foto")
end
end

#==============================================================================
# ** Class Scene Beastairy
#==============================================================================
class Scene_Beastairy
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Sets Main Phase
@base = Plane.new
@upper = Sprite.new
@base.bitmap = RPG::Cache.picture("Menu/Back")
@upper.bitmap = RPG::Cache.picture("Menu/Bestiary")
@upper.opacity = 200
@phase = 0
@sprite = Sprite.new
# Enemies Graphic Animation
@pose, @frame, @counting_frame= 0, 0, 0
# Current Phase Window
@dummy = Window_Base.new(0, 0, 100, 100)
@dummy.visible = false
@dummy.z = 500
@dummy.windowskin = RPG::Cache.windowskin("Photo") rescue RPG::Cache.windowskin("")
@phase_window = Window_Base.new(0, 0, width = 200, height = 64)
@phase_window.windowskin = RPG::Cache.windowskin("org-clear")
@phase_window.contents = contents = Bitmap.new(width - 32, height - 32)
@phase_window.contents.draw_text(0, 0, 168, 32, "Grupos", 1)
# Main Window (Enemy Groups)
commands = $game_beastairy.monster_groups.dup
commands.push("Salir")
@enemy_groups = Window_BestiaryCommand.new(200, commands)
@enemy_groups.y = 64
@enemy_groups.height = 224 - 32
# Controls Window
@controls = Window_Beastairy_Controls.new
# Monster Group Information Window
@monster_window = Window_Monster_Group_Info.new
@monster_window.refresh(0, 0, 0)
# Enemy Information Window
@enemy_window = Window_Monster_Info.new
@enemy_window.visible = false
# Scene Objects
@objects = [@dummy,@upper, @phase_window, @enemy_groups, @controls, @monster_window, @enemy_window, @sprite]
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Update Objects Information
@objects.each {|x| x.update} unless @dummy.visible
# Frame update
update
# Abort loop if screen is changed
break if $scene != self
end
# Prepare for transition
Graphics.freeze
# Dispose of Objects
@base.dispose

@objects.each {|x| x.dispose unless x.disposed?}
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Visiblity Changes Between Methods
@base.ox += MENU::BACKSPEED
@base.oy += MENU::BACKSPEED

case @phase
# Main Phase
when 0
[@enemy_window].each {|x| x.visible = false if x.visible}
[@enemy_groups, @monster_window].each {|x| x.visible = true unless x.visible}
@enemy_groups.active = true
when 1
unless @dummy.visible
[@enemy_window].each {|x| x.visible = true unless x.visible}
[@enemy_groups, @monster_window].each {|x| x.visible = false if x.visible}
@enemy_groups.active = false
end
end
# Updates Enemy Animation
@counting_frame += 1
if @counting_frame == 8
@counting_frame = 0
@frame += 1
@frame = 0 if @frame == 4
if @phase == 0
@monster_window.refresh(@enemy_groups.index, @pose, @frame)
else
enemy_id = @enemies[@groups_enemies.index].id
@enemy_window.refresh(enemy_id, @pose, @frame)
end
end
# Current Phase Update
case @phase
when 0; main_update
when 1; enemy_select
end
end
#--------------------------------------------------------------------------
# * Main Frame Update
#--------------------------------------------------------------------------
def main_update
# Exit Scene
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$game_temp.beastairy_return = false
$scene = Scene_End2.new(4)
# Enemy Select
elsif Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
if @enemy_groups.index == $game_beastairy.monster_groups.size
$game_temp.beastairy_return = false
$scene = Scene_End2.new(4)
else
commands, @enemies = [], []
group = $game_beastairy.monster_groups[@enemy_groups.index]
for i in 1...$data_enemies.size
if $data_enemies.group == group
if $data_enemies.seen
commands.push($data_enemies.name)
else
commands.push("(?)")
end
@enemies.push($data_enemies)
end
end
@groups_enemies = Window_BestiaryCommand.new(200, commands)
@groups_enemies.y = 64
@groups_enemies.height = 224 - 32
# Phase Window Update
@phase_window.contents.clear
@phase_window.contents.draw_text(0, 0, 168, 32, "Enemigos", 1)
# Adds Object (For Updating)
@objects.push(@groups_enemies)
# Updates Controls Window
@controls.refresh(1)
enemy_id = @enemies[@groups_enemies.index].id
@enemy_window.refresh(enemy_id, @pose, @frame)
# Changes Phase
@phase = 1
end
# Changes Pose
elsif Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@pose == 0 ? @pose = 3 : @pose -= 1
elsif Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@pose == 3 ? @pose = 0 : @pose += 1
end
end
#--------------------------------------------------------------------------
# * Enemy Frame Update
#--------------------------------------------------------------------------
def enemy_select
# Exit Phase
if Input.trigger?(Input::B)
@sprite.bitmap.dispose if @sprite.bitmap
@dummy.visible = false
$game_system.se_play($data_system.cancel_se)
@groups_enemies.dispose
@objects.delete(@groups_enemies)
# Phase Window Update
@phase_window.contents.clear
@phase_window.contents.draw_text(0, 0, 168, 32, "Grupos", 1)
# Updates Controls Window
@controls.refresh(0)
# Changes Phase
@phase = 0
# Enemy Select
elsif Input.trigger?(Input::A)
enemy = @enemies[@groups_enemies.index]
if enemy and enemy.seen
$game_system.se_play($data_system.decision_se)
unless @dummy.visible
@sprite.bitmap.dispose if @sprite.bitmap
@sprite.bitmap = RPG::Cache.battler(enemy.battler_name,enemy.battler_hue)
@sprite.x = 320 - @sprite.bitmap.width / 2
@sprite.y = 240 - @sprite.bitmap.height / 2
@sprite.z = 1000
@dummy.width = @sprite.bitmap.width + 32
@dummy.height = @sprite.bitmap.height + 32
@dummy.x = 320 - @sprite.bitmap.width / 2 - 16
@dummy.y = 240 - @sprite.bitmap.height / 2 - 16
@dummy.visible = true
else
@sprite.bitmap.dispose if @sprite.bitmap
@dummy.visible = false
end
else
$game_system.se_play($data_system.buzzer_se)
end
elsif Input.trigger?(Input::C)
enemy = @enemies[@groups_enemies.index]
if enemy.seen
$game_system.se_play($data_system.decision_se)
enemy_name = enemy.name
for i in 1...$data_troops.size
if $data_troops.name == enemy_name
$game_temp.beastairy_return = true
$game_temp.battle_troop_id = i
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
# Memorize map BGM and stop BGM
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# Play battle start SE
$game_system.se_play($data_system.battle_start_se)
# Play battle BGM
$game_system.bgm_play($game_system.battle_bgm)
# Straighten player position
$game_player.straighten
# Switch to battle screen
$scene = Scene_Battle.new
end
end
else
$game_system.se_play($data_system.buzzer_se)
end
elsif Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@pose == 0 ? @pose = 3 : @pose -= 1
elsif Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@pose == 3 ? @pose = 0 : @pose += 1
end
end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Alias Main Processing
#--------------------------------------------------------------------------
alias beastairy_main main
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
unless $game_temp.beastairy_return
@beastairy_troop = []
troop = $data_troops[$game_temp.battle_troop_id]
for i in 0...troop.members.size
enemy = $data_enemies[troop.members.enemy_id]
@beastairy_troop.push(enemy)
enemy.see
end
else
@beastairy_troop = []
end
beastairy_main
end
#--------------------------------------------------------------------------
# * Battle Ends
# result : results (0:win 1:lose 2:escape)
#--------------------------------------------------------------------------
def battle_end(result)
# Clear in battle flag
$game_temp.in_battle = false
# Clear entire party actions flag
$game_party.clear_actions
# Remove battle states
for actor in $game_party.actors
actor.remove_states_battle
end
# Clear enemies
$game_troop.enemies.clear
# Call battle callback
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
if $game_temp.beastairy_return
$scene = Scene_Beastairy.new
else
if result == 0
for enemy in @beastairy_troop
enemy.defeat
end
end
$scene = Scene_Map.new
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# If battle event is running
if $game_system.battle_interpreter.running?
# Update interpreter
$game_system.battle_interpreter.update
# If a battler which is forcing actions doesn't exist
if $game_temp.forcing_battler == nil
# If battle event has finished running
unless $game_system.battle_interpreter.running?
# Rerun battle event set up if battle continues
unless judge
setup_battle_event
end
end
# If not after battle phase
if @phase != 5
# Refresh status window
@status_window.refresh
end
end
end
# Update system (timer) and screen
$game_system.update
$game_screen.update
# If timer has reached 0
if $game_system.timer_working and $game_system.timer == 0
# Abort battle
$game_temp.battle_abort = true
end
# Update windows
@help_window.update
@party_command_window.update
@actor_command_window.update
@status_window.update
@message_window.update
# Update sprite set
@spriteset.update
# If transition is processing
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# If message window is showing
if $game_temp.message_window_showing
return
end
# If effect is showing
if @spriteset.effect?
return
end
# If game over
if $game_temp.gameover
# Switch to game over screen
if $game_temp.beastairy_return
$scene = Scene_Beastairy.new
else
$scene = Scene_Gameover.new
end
end
# If returning to title screen
if $game_temp.to_title
# Switch to title screen
$scene = Scene_Title.new
return
end
# If battle is aborted
if $game_temp.battle_abort
# Return to BGM used before battle started
$game_system.bgm_play($game_temp.map_bgm)
# Battle ends
battle_end(1)
return
end
# If waiting
if @wait_count > 0
# Decrease wait count
@wait_count -= 1
return
end
# If battler forcing an action doesn't exist,
# and battle event is running
if $game_temp.forcing_battler == nil and
$game_system.battle_interpreter.running?
return
end
# Branch according to phase
case @phase
when 1 # pre-battle phase
update_phase1
when 2 # party command phase
update_phase2
when 3 # actor command phase
update_phase3
when 4 # main phase
update_phase4
when 5 # after battle phase
update_phase5
end
end
#--------------------------------------------------------------------------
# * Start After Battle Phase
#--------------------------------------------------------------------------
def start_phase5
# Shift to phase 5
@phase = 5
# Play battle end ME
$game_system.me_play($game_system.battle_end_me)
# Return to BGM before battle started
$game_system.bgm_play($game_temp.map_bgm)
# Initialize EXP, amount of gold, and treasure
exp = 0
gold = 0
treasures = []
# Loop
for enemy in $game_troop.enemies
# If enemy is not hidden
unless enemy.hidden
unless $game_temp.beastairy_return
# Add EXP and amount of gold obtained
exp += enemy.exp
gold += enemy.gold
# Determine if treasure appears
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
end
# Treasure is limited to a maximum of 6 items
treasures = treasures[0..5]
# Obtaining EXP

@actors_level_up=[]unless @actors_level_up
@last_stats=[] unless @last_stats
@now_stats=[] unless @now_stats
@last_skills=[] unless @last_skills
@now_skills=[] unless @now_skills
for i in 0...$game_party.actors.size
actor = $game_party.actors
@last_skills[actor.id]=[]
@now_skills[actor.id]=[]
for sk in actor.skills
@last_skills[actor.id].push(sk)
end
if actor.cant_get_exp? == false
@last_stats[actor.id]=[actor.level,actor.maxhp,actor.maxsp,actor.str,actor.dex,actor.agi,actor.int]
last_level = actor.level
actor.exp += exp
if actor.level > last_level
for sk in actor.skills
@now_skills[actor.id].push(sk)
end
for sk in @last_skills[actor.id]
@now_skills[actor.id].delete(sk)
end
@now_stats[actor.id]=[actor.level,actor.maxhp,actor.maxsp,actor.str,actor.dex,actor.agi,actor.int]
@actors_level_up.push(actor)
end
end
end

# Obtaining gold
$game_party.gain_gold(gold)
# Obtaining treasure
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
# Make battle result window
@result_window = Window_BattleResult.new(exp, gold, treasures)
# Set wait count
@phase5_wait_count = 100
end
end
Problemas:
hgfh.jpg
y
132121.jpg

Lo descargue de Aqui
se llama "menu con todox"
Porfa ayudenme
Thanks and
Ciao
 
Última edición:
Mensajes
2.063
Reacciones
12
Puntos
0
Ubicación
Maracaibo, Venezuela.
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola aqui yo de nuevo con dudas y problemas
1.-¿Pra cual script de batalla lateral me sirven estos batlers?
ah.png

¿sirve en el xp?
2.- ¿como soluciono los sig problemas con este script?
Script
#==============================================================================
# Beastairy System
#--------------------------------------------------------------------------
# Created By SephirothSpawn (11.18.05)
# Last Updated: 11.18.05
#==============================================================================
class Window_BestiaryCommand < Window_Command
def initialize(a,b)
super(a,b)
self.windowskin = RPG::Cache.windowskin("org-clear")
end
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index],1)
end
def update_cursor_rect
# If cursor position is less than 0
if @index < 0
self.cursor_rect.empty
return
end
# Get current row
row = @index / @column_max
# If current row is before top row
if row < self.top_row
# Scroll so that current row becomes top row
self.top_row = row
end
# If current row is more to back than back row
if row > self.top_row + (self.page_row_max - 1)
# Scroll so that current row becomes back row
self.top_row = row - (self.page_row_max - 1)
end
# Calculate cursor width
cursor_width = self.width / @column_max - 32
# Calculate cursor coordinates
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 32 - self.oy + 4
# Update cursor rectangle
self.cursor_rect.set(x, y, cursor_width, 24)
end
end
#==============================================================================
# ** Class Scene Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias' New Game Method
#--------------------------------------------------------------------------
alias new_game command_new_game
#--------------------------------------------------------------------------
# * Adds Beastairy Game Variables
#--------------------------------------------------------------------------
def command_new_game
# Sets Up Smithery List
$game_beastairy = Game_Beastairy.new
new_game
end
end

#==============================================================================
# ** Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :beastairy_return
#--------------------------------------------------------------------------
# * Alias Initialization
#--------------------------------------------------------------------------
alias beastairy_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
beastairy_initialize
@beastairy_return = false
end
end

#==============================================================================
# ** Class Game Beastairy
#==============================================================================
class Game_Beastairy
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :monster_groups
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@alphavetical = true
@monster_groups = []
for i in 1...$data_enemies.size
$data_enemies.beastairy_setup
unless @monster_groups.include?($data_enemies.group)
if $data_enemies.group != "No"
@monster_groups.push($data_enemies.group)
end
end
end
@monster_groups.sort! if @alphavetical
end
end

#==============================================================================
# ** Module RPG
#==============================================================================
module RPG
#=========================================================================
# ** Class Enemy
#=========================================================================
class Enemy
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
# Detectors
attr_accessor :seen, :defeated, :group
# Counters
attr_accessor :seen_times, :defeated_times
#--------------------------------------------------------------------------
# * Setup Beastairy
#--------------------------------------------------------------------------
def beastairy_setup
@seen_times, @defeated_times = 0, 0
@seen, @defeated = false, false
if @name.include?('(')
a, b = @name.index('('), @name.index(')')
@group = @name.slice!(a..b)
if @group == "(No)"
@group = "No"
else
@group.delete!('(')
@group.delete!(')')
end
else
@group = "Otros"
end
end
#--------------------------------------------------------------------------
# * See Enemy
#--------------------------------------------------------------------------
def see
@seen = true
@seen_times += 1
end
#--------------------------------------------------------------------------
# * Defeat Enemy
#--------------------------------------------------------------------------
def defeat
@defeated = true
@defeated_times += 1
end
end
end

#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Alias Save Data
#--------------------------------------------------------------------------
alias new_save write_save_data
#--------------------------------------------------------------------------
# * Write Save Data
#--------------------------------------------------------------------------
def write_save_data(file)
new_save(file)
Marshal.dump($game_beastairy, file)
Marshal.dump($data_enemies, file)
end
end

#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# * Alias Read Save Data
#--------------------------------------------------------------------------
alias new_load read_save_data
#--------------------------------------------------------------------------
# * Read Save Data
#--------------------------------------------------------------------------
def read_save_data(file)
new_load(file)
$game_beastairy = Marshal.load(file)
$data_enemies = Marshal.load(file)
end
end

#==============================================================================
# ** Class Window Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Draw Enemy Sprite
#--------------------------------------------------------------------------
def draw_enemy_sprite(x, y, enemy_name, enemy_hue, pose, frame)
bitmap = RPG::Cache.character(enemy_name, enemy_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
# Facing Direction
case pose
when 0 ;a = 0 # Down
when 1 ;a = ch # Left
when 2 ;a = ch * 3 # Up
when 3 ;a = ch * 2 # Right
end
# Current Animation Slide
case frame
when 0 ;b = 0
when 1 ;b = cw
when 2 ;b = cw * 2
when 3 ;b = cw * 3
end
# Bitmap Rectange
src_rect = Rect.new(b, a, cw, ch)
# Draws Bitmap
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end

#==============================================================================
# Window Monster Group Info
#==============================================================================
class Window_Monster_Group_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(200, 0, 440, 480)
self.windowskin = RPG::Cache.windowskin("org-clear")
self.contents = Bitmap.new(width - 32, height - 32)
refresh(0, 0, 0)
end
#--------------------------------------------------------------------------
# * Refresh
# index : Index of Group From Game_Beastairy.Groups
# pose : Enemy Character Pose
# frame : Frame of Pose
#--------------------------------------------------------------------------
def refresh(index, pose, frame)
# Clears Window
contents.clear
# Sets Up Group Name
group_name = $game_beastairy.monster_groups[index]
# Sets Up Enemies In Group
enemies = []
for i in 1...$data_enemies.size
if $data_enemies.group == group_name
enemies.push($data_enemies)
end
end
group_name = "Salir" if index == $game_beastairy.monster_groups.size
# Draws Enemy Group Name
contents.font.color = system_color
contents.draw_text(0, 0, self.width - 32, 32, group_name, 1)
unless index == $game_beastairy.monster_groups.size
# Offsets Graphics X Position
graphics_offset = contents.width / (enemies.size + 1)
# Draws Enemies Graphics
for i in 0...enemies.size

if enemies.seen
bitmape = RPG::Cache.picture("Shadow")
rect = Rect.new(0,0,bitmape.width,bitmape.height)
self.contents.blt(graphics_offset * (i + 1) - bitmape.width / 2,42,bitmape,rect)
draw_enemy_sprite(graphics_offset * (i + 1), 124, enemies.battler_name , enemies.battler_hue , pose, frame)
else
draw_enemy_sprite(graphics_offset * (i + 1), 114, "Unknown" , 0 , pose, frame)
end

end
# HP, SP, and Gold Word
hp_word = $data_system.words.hp
sp_word = $data_system.words.sp
gold_word = $data_system.words.gold
# Draws Table Headings
contents.draw_text(4, 128, width, 24, "Nombre")
contents.draw_text(0, 128, 200, 24, "#{hp_word}", 2)
contents.draw_text(0, 128, 300, 24, "#{sp_word}", 2)
contents.draw_text(-4, 128, contents.width, 24, "#{gold_word}", 2)
# Draws Enemies Stats
contents.font.color = normal_color
for i in 0...enemies.size
# Sets Enemy Stats
name, hp, sp, gold = "(?)", "(?)", "(?)", "(?)"
name, hp, sp = enemies.name, enemies.maxhp, enemies.maxsp if enemies.seen
gold = enemies.gold if enemies.defeated
# Draws Stats
contents.draw_text(4, 152 + (i * 24), width, 24, name)
contents.draw_text(0, 152 + (i * 24), 200, 24, "#{hp}", 2)
contents.draw_text(0, 152 + (i * 24), 300, 24, "#{sp}", 2)
contents.draw_text(-4, 152 + (i * 24), contents.width, 24, "#{gold}", 2)
end
end
end
end

#==============================================================================
# Window Monster Info
#==============================================================================
class Window_Monster_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(200, 0, 440, 480)
self.windowskin = RPG::Cache.windowskin("org-clear")
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------------
# * Refresh
# index : Index of enemy From $data_enemies
# pose : Enemy Character Pose
# frame : Frame of Pose
#--------------------------------------------------------------------------
def refresh(index, pose, frame)
# Clears Window
contents.clear
# Enemy
enemy = $data_enemies[index]
# Graphic Image
if enemy.seen
bitmape = RPG::Cache.picture("Shadow")
rect = Rect.new(0,0,bitmape.width,bitmape.height)
self.contents.blt(60 - bitmape.width / 2,18,bitmape,rect)
draw_enemy_sprite(60, 100, enemy.battler_name , enemy.battler_hue , pose, frame)
else
draw_enemy_sprite(60, 100, "Unknown" , 0 , pose, frame)
end
# Default Stats Set
name = "(?)"
maxhp = maxsp = str = dex = agi = int = atk = pdef = mdef = eva = "(?)"
exp = gold = item_id = weapon_id = armor_id = treasure_prob = "(?)"
item_icon = weapon_icon = armor_icon = "049-Skill06"
armor_type = 2
# If the Enemy has been seen
if enemy.seen
name = enemy.name
maxhp = enemy.maxhp.to_s
maxsp = enemy.maxsp.to_s
str = enemy.str.to_s
dex = enemy.dex.to_s
agi = enemy.agi.to_s
int = enemy.int.to_s
atk = enemy.atk.to_s
pdef = enemy.pdef.to_s
mdef = enemy.mdef.to_s
eva = enemy.eva.to_s
end
# If the Enemy has been Defeated
if enemy.defeated
exp = enemy.exp.to_s
gold = enemy.gold.to_s
if enemy.item_id == 0
item_id = "Nada"
item_icon = "032-Item01"
else
item_id = $data_items[enemy.item_id].name
item_icon = $data_items[enemy.item_id].icon_name
end
if enemy.weapon_id == 0
weapon_id = "Nada"
weapon_icon = "032-Item01"
else
weapon_id = $data_weapons[enemy.weapon_id].name
weapon_icon = $data_weapons[enemy.weapon_id].icon_name
end
if enemy.armor_id == 0
armor_id = "Nada"
armor_icon = "032-Item01"
else
armor_id = $data_armors[enemy.armor_id].name
armor_icon = $data_armors[enemy.armor_id].icon_name
armor_type = $data_armors[enemy.armor_id].type
end
treasure_prob = enemy.treasure_prob.to_s
end
# System Words
g_word = $data_system.words.gold
hp_word = $data_system.words.hp
sp_word = $data_system.words.sp
str_word = $data_system.words.str
dex_word = $data_system.words.dex
agi_word = $data_system.words.agi
int_word = $data_system.words.int
atk_word = $data_system.words.atk
pdef_word = $data_system.words.pdef
mdef_word = $data_system.words.mdef
weapon_word = $data_system.words.weapon
armor_type = "Equipo"
item_word = $data_system.words.item
# Draws Name
contents.font.color = normal_color
contents.draw_text(0, 0, contents.width, 32, name,1)
# Draws Times Seen & Defeated
contents.font.color = system_color
contents.draw_text(116, 32, contents.width - 116, 32, "Visto:")
contents.draw_text(116, 64, contents.width - 116, 32, "Derrotado:")
contents.font.color = normal_color
contents.draw_text(0, 32, contents.width, 32, "#{enemy.seen_times}", 2)
contents.draw_text(0, 64, contents.width, 32, "#{enemy.defeated_times}", 2)
# Organizes Stats
colomn_a_left = ["#{hp_word}", "#{sp_word}", str_word, dex_word,
agi_word, int_word, atk_word, pdef_word, mdef_word, "Evasión"]
colomn_a_right = [maxhp, maxsp, str,dex , agi, int, atk, pdef, mdef, eva]
# Organized Victory Settings
column_b_left = ["Experiencia:", "#{g_word} :", "#{item_word} :", "",
"#{weapon_word} :", "", "#{armor_type} :", "", "Probabilidad:"]
if item_id == nil and weapon_id == nil and armor_id == nil
treasure_prob = "0"
end
if item_id == "Nada" and weapon_id == "Nada" and armor_id == "Nada"
treasure_prob = "0"
end
column_b_right = [exp, gold, "", item_id, "", weapon_id, "", armor_id, treasure_prob]
# Draws Stats
for i in 0...colomn_a_left.size
contents.font.color = system_color
contents.draw_text(4, 160 + i * 32, 160, 32, colomn_a_left)
contents.font.color = normal_color
contents.draw_text(-4, 160 + i * 32, 160, 32, colomn_a_right, 2)
end
# Draws Victory Settings
for i in 0...column_b_left.size
contents.font.color = system_color
contents.draw_text(168, 160 + i * 32, contents.width, 32, column_b_left)
x = -4
x = -30 if i == 3 or i == 5 or i == 7
contents.font.color = normal_color
contents.draw_text(x, 160 + i * 32, contents.width, 32, column_b_right, 2)
end
# Draws Item Icons
bitmap = RPG::Cache.icon(item_icon)
self.contents.blt(contents.width - 24, 260, bitmap, Rect.new(0, 0, 24, 24))
bitmap = RPG::Cache.icon(weapon_icon)
self.contents.blt(contents.width - 24, 324, bitmap, Rect.new(0, 0, 24, 24))
bitmap = RPG::Cache.icon(armor_icon)
self.contents.blt(contents.width - 24, 388, bitmap, Rect.new(0, 0, 24, 24))
end
end

#==============================================================================
# Window Beastairy Controls
#==============================================================================
class Window_Beastairy_Controls < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 288 - 32, 200, 192 + 32)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin("org-clear")
self.z = 999
refresh(0)
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh(phase)
# Clears Window
contents.clear
disabled_system_color = Color.new(192, 224, 255, 128)
contents.font.color = normal_color
contents.draw_text(0, 0, contents.width, 24, " D/I: Camiar pose")
# Main Phase Controls
contents.font.color = phase == 0 ? system_color : disabled_system_color
contents.draw_text(4, 24, contents.width, 24, "Grupos")
contents.font.color = phase == 0 ? normal_color : disabled_color
contents.draw_text(8, 48, contents.width, 24, "B : Cerrar bestiario")
contents.draw_text(8, 72, contents.width, 24, "C : Elegir Grupo")
# Enemy Select Controls
contents.font.color = phase == 1 ? system_color : disabled_system_color
contents.draw_text(4, 96, contents.width, 24, "Enemigos")
contents.font.color = phase == 1 ? normal_color : disabled_color
contents.draw_text(8, 140, contents.width, 24, "B : Ir a los Grupos")
contents.draw_text(8, 120, contents.width, 24, "C : Prueba")
contents.draw_text(8, 160, contents.width, 24, "A : Ver/Ocultar Foto")
end
end

#==============================================================================
# ** Class Scene Beastairy
#==============================================================================
class Scene_Beastairy
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Sets Main Phase
@base = Plane.new
@upper = Sprite.new
@base.bitmap = RPG::Cache.picture("Menu/Back")
@upper.bitmap = RPG::Cache.picture("Menu/Bestiary")
@upper.opacity = 200
@phase = 0
@sprite = Sprite.new
# Enemies Graphic Animation
@pose, @frame, @counting_frame= 0, 0, 0
# Current Phase Window
@dummy = Window_Base.new(0, 0, 100, 100)
@dummy.visible = false
@dummy.z = 500
@dummy.windowskin = RPG::Cache.windowskin("Photo") rescue RPG::Cache.windowskin("")
@phase_window = Window_Base.new(0, 0, width = 200, height = 64)
@phase_window.windowskin = RPG::Cache.windowskin("org-clear")
@phase_window.contents = contents = Bitmap.new(width - 32, height - 32)
@phase_window.contents.draw_text(0, 0, 168, 32, "Grupos", 1)
# Main Window (Enemy Groups)
commands = $game_beastairy.monster_groups.dup
commands.push("Salir")
@enemy_groups = Window_BestiaryCommand.new(200, commands)
@enemy_groups.y = 64
@enemy_groups.height = 224 - 32
# Controls Window
@controls = Window_Beastairy_Controls.new
# Monster Group Information Window
@monster_window = Window_Monster_Group_Info.new
@monster_window.refresh(0, 0, 0)
# Enemy Information Window
@enemy_window = Window_Monster_Info.new
@enemy_window.visible = false
# Scene Objects
@objects = [@dummy,@upper, @phase_window, @enemy_groups, @controls, @monster_window, @enemy_window, @sprite]
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Update Objects Information
@objects.each {|x| x.update} unless @dummy.visible
# Frame update
update
# Abort loop if screen is changed
break if $scene != self
end
# Prepare for transition
Graphics.freeze
# Dispose of Objects
@base.dispose

@objects.each {|x| x.dispose unless x.disposed?}
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Visiblity Changes Between Methods
@base.ox += MENU::BACKSPEED
@base.oy += MENU::BACKSPEED

case @phase
# Main Phase
when 0
[@enemy_window].each {|x| x.visible = false if x.visible}
[@enemy_groups, @monster_window].each {|x| x.visible = true unless x.visible}
@enemy_groups.active = true
when 1
unless @dummy.visible
[@enemy_window].each {|x| x.visible = true unless x.visible}
[@enemy_groups, @monster_window].each {|x| x.visible = false if x.visible}
@enemy_groups.active = false
end
end
# Updates Enemy Animation
@counting_frame += 1
if @counting_frame == 8
@counting_frame = 0
@frame += 1
@frame = 0 if @frame == 4
if @phase == 0
@monster_window.refresh(@enemy_groups.index, @pose, @frame)
else
enemy_id = @enemies[@groups_enemies.index].id
@enemy_window.refresh(enemy_id, @pose, @frame)
end
end
# Current Phase Update
case @phase
when 0; main_update
when 1; enemy_select
end
end
#--------------------------------------------------------------------------
# * Main Frame Update
#--------------------------------------------------------------------------
def main_update
# Exit Scene
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$game_temp.beastairy_return = false
$scene = Scene_End2.new(4)
# Enemy Select
elsif Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
if @enemy_groups.index == $game_beastairy.monster_groups.size
$game_temp.beastairy_return = false
$scene = Scene_End2.new(4)
else
commands, @enemies = [], []
group = $game_beastairy.monster_groups[@enemy_groups.index]
for i in 1...$data_enemies.size
if $data_enemies.group == group
if $data_enemies.seen
commands.push($data_enemies.name)
else
commands.push("(?)")
end
@enemies.push($data_enemies)
end
end
@groups_enemies = Window_BestiaryCommand.new(200, commands)
@groups_enemies.y = 64
@groups_enemies.height = 224 - 32
# Phase Window Update
@phase_window.contents.clear
@phase_window.contents.draw_text(0, 0, 168, 32, "Enemigos", 1)
# Adds Object (For Updating)
@objects.push(@groups_enemies)
# Updates Controls Window
@controls.refresh(1)
enemy_id = @enemies[@groups_enemies.index].id
@enemy_window.refresh(enemy_id, @pose, @frame)
# Changes Phase
@phase = 1
end
# Changes Pose
elsif Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@pose == 0 ? @pose = 3 : @pose -= 1
elsif Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@pose == 3 ? @pose = 0 : @pose += 1
end
end
#--------------------------------------------------------------------------
# * Enemy Frame Update
#--------------------------------------------------------------------------
def enemy_select
# Exit Phase
if Input.trigger?(Input::B)
@sprite.bitmap.dispose if @sprite.bitmap
@dummy.visible = false
$game_system.se_play($data_system.cancel_se)
@groups_enemies.dispose
@objects.delete(@groups_enemies)
# Phase Window Update
@phase_window.contents.clear
@phase_window.contents.draw_text(0, 0, 168, 32, "Grupos", 1)
# Updates Controls Window
@controls.refresh(0)
# Changes Phase
@phase = 0
# Enemy Select
elsif Input.trigger?(Input::A)
enemy = @enemies[@groups_enemies.index]
if enemy and enemy.seen
$game_system.se_play($data_system.decision_se)
unless @dummy.visible
@sprite.bitmap.dispose if @sprite.bitmap
@sprite.bitmap = RPG::Cache.battler(enemy.battler_name,enemy.battler_hue)
@sprite.x = 320 - @sprite.bitmap.width / 2
@sprite.y = 240 - @sprite.bitmap.height / 2
@sprite.z = 1000
@dummy.width = @sprite.bitmap.width + 32
@dummy.height = @sprite.bitmap.height + 32
@dummy.x = 320 - @sprite.bitmap.width / 2 - 16
@dummy.y = 240 - @sprite.bitmap.height / 2 - 16
@dummy.visible = true
else
@sprite.bitmap.dispose if @sprite.bitmap
@dummy.visible = false
end
else
$game_system.se_play($data_system.buzzer_se)
end
elsif Input.trigger?(Input::C)
enemy = @enemies[@groups_enemies.index]
if enemy.seen
$game_system.se_play($data_system.decision_se)
enemy_name = enemy.name
for i in 1...$data_troops.size
if $data_troops.name == enemy_name
$game_temp.beastairy_return = true
$game_temp.battle_troop_id = i
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
# Memorize map BGM and stop BGM
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# Play battle start SE
$game_system.se_play($data_system.battle_start_se)
# Play battle BGM
$game_system.bgm_play($game_system.battle_bgm)
# Straighten player position
$game_player.straighten
# Switch to battle screen
$scene = Scene_Battle.new
end
end
else
$game_system.se_play($data_system.buzzer_se)
end
elsif Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@pose == 0 ? @pose = 3 : @pose -= 1
elsif Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@pose == 3 ? @pose = 0 : @pose += 1
end
end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Alias Main Processing
#--------------------------------------------------------------------------
alias beastairy_main main
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
unless $game_temp.beastairy_return
@beastairy_troop = []
troop = $data_troops[$game_temp.battle_troop_id]
for i in 0...troop.members.size
enemy = $data_enemies[troop.members.enemy_id]
@beastairy_troop.push(enemy)
enemy.see
end
else
@beastairy_troop = []
end
beastairy_main
end
#--------------------------------------------------------------------------
# * Battle Ends
# result : results (0:win 1:lose 2:escape)
#--------------------------------------------------------------------------
def battle_end(result)
# Clear in battle flag
$game_temp.in_battle = false
# Clear entire party actions flag
$game_party.clear_actions
# Remove battle states
for actor in $game_party.actors
actor.remove_states_battle
end
# Clear enemies
$game_troop.enemies.clear
# Call battle callback
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
if $game_temp.beastairy_return
$scene = Scene_Beastairy.new
else
if result == 0
for enemy in @beastairy_troop
enemy.defeat
end
end
$scene = Scene_Map.new
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# If battle event is running
if $game_system.battle_interpreter.running?
# Update interpreter
$game_system.battle_interpreter.update
# If a battler which is forcing actions doesn't exist
if $game_temp.forcing_battler == nil
# If battle event has finished running
unless $game_system.battle_interpreter.running?
# Rerun battle event set up if battle continues
unless judge
setup_battle_event
end
end
# If not after battle phase
if @phase != 5
# Refresh status window
@status_window.refresh
end
end
end
# Update system (timer) and screen
$game_system.update
$game_screen.update
# If timer has reached 0
if $game_system.timer_working and $game_system.timer == 0
# Abort battle
$game_temp.battle_abort = true
end
# Update windows
@help_window.update
@party_command_window.update
@actor_command_window.update
@status_window.update
@message_window.update
# Update sprite set
@spriteset.update
# If transition is processing
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# If message window is showing
if $game_temp.message_window_showing
return
end
# If effect is showing
if @spriteset.effect?
return
end
# If game over
if $game_temp.gameover
# Switch to game over screen
if $game_temp.beastairy_return
$scene = Scene_Beastairy.new
else
$scene = Scene_Gameover.new
end
end
# If returning to title screen
if $game_temp.to_title
# Switch to title screen
$scene = Scene_Title.new
return
end
# If battle is aborted
if $game_temp.battle_abort
# Return to BGM used before battle started
$game_system.bgm_play($game_temp.map_bgm)
# Battle ends
battle_end(1)
return
end
# If waiting
if @wait_count > 0
# Decrease wait count
@wait_count -= 1
return
end
# If battler forcing an action doesn't exist,
# and battle event is running
if $game_temp.forcing_battler == nil and
$game_system.battle_interpreter.running?
return
end
# Branch according to phase
case @phase
when 1 # pre-battle phase
update_phase1
when 2 # party command phase
update_phase2
when 3 # actor command phase
update_phase3
when 4 # main phase
update_phase4
when 5 # after battle phase
update_phase5
end
end
#--------------------------------------------------------------------------
# * Start After Battle Phase
#--------------------------------------------------------------------------
def start_phase5
# Shift to phase 5
@phase = 5
# Play battle end ME
$game_system.me_play($game_system.battle_end_me)
# Return to BGM before battle started
$game_system.bgm_play($game_temp.map_bgm)
# Initialize EXP, amount of gold, and treasure
exp = 0
gold = 0
treasures = []
# Loop
for enemy in $game_troop.enemies
# If enemy is not hidden
unless enemy.hidden
unless $game_temp.beastairy_return
# Add EXP and amount of gold obtained
exp += enemy.exp
gold += enemy.gold
# Determine if treasure appears
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
end
# Treasure is limited to a maximum of 6 items
treasures = treasures[0..5]
# Obtaining EXP

@actors_level_up=[]unless @actors_level_up
@last_stats=[] unless @last_stats
@now_stats=[] unless @now_stats
@last_skills=[] unless @last_skills
@now_skills=[] unless @now_skills
for i in 0...$game_party.actors.size
actor = $game_party.actors
@last_skills[actor.id]=[]
@now_skills[actor.id]=[]
for sk in actor.skills
@last_skills[actor.id].push(sk)
end
if actor.cant_get_exp? == false
@last_stats[actor.id]=[actor.level,actor.maxhp,actor.maxsp,actor.str,actor.dex,actor.agi,actor.int]
last_level = actor.level
actor.exp += exp
if actor.level > last_level
for sk in actor.skills
@now_skills[actor.id].push(sk)
end
for sk in @last_skills[actor.id]
@now_skills[actor.id].delete(sk)
end
@now_stats[actor.id]=[actor.level,actor.maxhp,actor.maxsp,actor.str,actor.dex,actor.agi,actor.int]
@actors_level_up.push(actor)
end
end
end

# Obtaining gold
$game_party.gain_gold(gold)
# Obtaining treasure
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
# Make battle result window
@result_window = Window_BattleResult.new(exp, gold, treasures)
# Set wait count
@phase5_wait_count = 100
end
end
Problemas:
hgfh.jpg
y
132121.jpg

Lo descargue de Aqui
se llama "menu con todox"
Porfa ayudenme
Thanks and
Ciao


Solo te se responder la primera.. Esos Battlers son del Minkoff Animated Battlers
 
Mensajes
454
Reacciones
0
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Solo te se responder la primera.. Esos Battlers son del Minkoff Animated Battlers
Bueno gracias me sirve mucho el dato
Por favor si alguien tiene respuesta a mi otra duda la del script mandeme un MP
Ciao
 
Mensajes
129
Reacciones
2
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola, habra un script que pueda crear más opciones en el menú, por ejemplo quiero que se pueda selleccionar el modo de juego. y quiero poner para uqe se le puedan desbloquear trajes a los personajes. gracias!
 
OP

Angie

Heroic User
Mensajes
5.212
Reacciones
144
Puntos
1.086
Ubicación
Where despair lies
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola, habra un script que pueda crear más opciones en el menú, por ejemplo quiero que se pueda selleccionar el modo de juego. y quiero poner para uqe se le puedan desbloquear trajes a los personajes. gracias!

Mmm... Pienso que eso se hace modificando el Script del Menú...
Mira, pásate por aquí: [RMXP] Tutorial - Añadir opciones al menú principal

Es un tutorial que hizo ROXASNAMINE1 que sirve para añadirle opciones al Menú.

Espero que te sirva.

Saludos ^^
 

DKNINJA

Banneado
Mensajes
658
Reacciones
0
Puntos
0
Ubicación
En lo mas oscuro del universo
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola amigos de emudesc.
Tengo una simple duda.
En el rpgmaker xp ¿como puedo hacer para que se mueva el panorama?.
desde ahorita digo gracias al quien me responda.

Con un script de mog hunter
(buscalo en su pagina pues no recuerdo el nombre =P )

Gracias^^.
 
Última edición:
Mensajes
454
Reacciones
0
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

Hola amigos de emudesc.
Tengo una simple duda.
En el rpgmaker xp ¿como puedo hacer para que se mueva el panorama?.
desde ahorita digo gracias al quien me responda.
Con un script de mog hunter
(buscalo en su pagina pues no recuerdo el nombre =P )
 
Mensajes
9
Reacciones
0
Puntos
0
Re: Dudas sobre RPG MAKER postearla única y exclusivamente [No abrir temas con dudas]

En el titulo he puestos los botones de
Nueva partida
Continuar
Salir
asi:

Nueva Partida-Continuar-Salir

pero para moverme tengo qe darle para riba y para abajo
y qeria qe dandole a la derecha y a la izquierda se moviese
espero qe me entiendan un saludo ;)
gracias anticipadas
 
Estado
Cerrado para nuevas respuestas
Arriba Pie