Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Problema con medidas al crear un nuevo menú

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Problema con medidas al crear un nuevo menú

Mensaje por KLAUDAS el 2013-09-12, 22:02

¡Buenas, compañeros!

Estoy diseñando el nuevo menú de mi juego y me he encontrado con un problema que no puedo solucionar.





Como veis, uso el script de MogHunter y aún me quedan por editar las barras de vida, no quedarán así al final. El problema es que el cuadrado del personaje de arriba del todo se corta. He probado moviendo las coordenadas de todos los elementos, pero no doy con la clave para conseguir que no se me corte.¿Una ayudita? Sweat
avatar
KLAUDAS
Novato
Novato

0/3

Créditos 77

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Problema con medidas al crear un nuevo menú

Mensaje por orochii el 2013-09-13, 01:27

El "error" muy posiblemente se deba al tamaño de la ventana de estados, ya que intuyo que los cuadros y eso se dibujan dentro de una ventana. La cosa es agrandarla un poco, y mover todos los cuadros enteros unos pixeles para abajo (todo, osea, barras de vida, datos, cuadro de fondo, etc). ¿No tendrás el script por ahí?, es un trabajo sencillo, tan sólo es ajustar unos cuantos números .-. (pero me da pereza buscar 8D). También en caso que hayas configurado/hecho algún cambiecillo o algo.

Salut,
OZ
avatar
orochii
Reportero

0/3

Créditos 7760

Gracias : 456

Volver arriba Ir abajo

RPG Maker XP Re: Problema con medidas al crear un nuevo menú

Mensaje por KLAUDAS el 2013-09-13, 14:35

Por aquí te dejo el script (¡Has cambiado tu imagen jajjaa la otra me daba siempre pena, ese muñeco llorón :P, este me gusta más)
Script:
Código:
#_______________________________________________________________________________
# MOG Main Menu V1.7            
#_______________________________________________________________________________
# Por Moghunter  
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
#Tipo de fondo.
# 0 = Imagenes en movimento.
# 1 = Mapa de fondo.
MENU_BACKGROUND = 0
#Tiempo de Transición.
MNTT = 10
#Tipo de Transición (Nombre)
MNTP = "006-Stripe02"
#Velocidad del 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("Cayan_Fc.png,Rip_Dc.png,Nai_Fc.png,Enra_Fc.png,Leoh_Fc.png")
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, 420, 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 = 50
y = i * 62
actor = $game_party.actors[i]
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_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
#################
# 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
##############
# Scene_Menu #
##############
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = ""
s2 = ""
s3 = ""
s4 = ""
s5 = ""
s6 = ""
s7 = ""
@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("Mn_back")
@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
when 6
$game_system.se_play($data_system.decision_se)
$scene=Scene_Skill_Selection.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
avatar
KLAUDAS
Novato
Novato

0/3

Créditos 77

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Problema con medidas al crear un nuevo menú

Mensaje por orochii el 2013-09-13, 19:16

Ok, prueba con ésto. Me tomé un rato acomodándolo porque mis ojos lloraban sangre al verlo x'D. Incluso empecé a arreglar tonterías, pero luego me bofeteé e hice lo que se necesitaba xD... 8'D...
Código:
#_______________________________________________________________________________
# MOG Main Menu V1.7
#_______________________________________________________________________________
# Por Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
  #Tipo de fondo.
  # 0 = Imagenes en movimento.
  # 1 = Mapa de fondo.
  MENU_BACKGROUND = 0
  #Tiempo de Transición.
  MNTT = 10
  #Tipo de Transición (Nombre)
  MNTP = "006-Stripe02"
  #Velocidad del 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 #
############
$mpname = load_data("Data/MapInfos.rxdata")

class Game_Map
  
  attr_reader :map_id
  
  def mpname
    $mpname[@map_id].name
  end
  
end
###############
# Window_Base #
###############
class Window_Base < Window
  
  def drw_face(actor,x,y)
    face = RPG::Cache.picture(actor.name + "_fc") rescue { }
    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)
    rate = (actor.next_exp != 0) ? (actor.now_exp.to_f / actor.next_exp) : 1
    bitmap = RPG::Cache.picture("Exp_Meter")
    cw = bitmap.width
    cw *= rate if actor.level < 99
    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, 420, 288)
    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
    (0...$game_party.actors.size).each{|i|
      x = 50
      y = (i * 62)+8
      actor = $game_party.actors[i]
      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
  
  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
    refresh if (Graphics.frame_count / Graphics.frame_rate != @total_sec)
  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
#################
# 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
##############
# Scene_Menu #
##############
class Scene_Menu
  
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end

  def main
    s1 = s2 = s3 = s4 = s5 = s6 = s7 = ""
    @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("Mn_back")
      @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 = 102
    
    @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
      when 6
        $game_system.se_play($data_system.decision_se)
        $scene=Scene_Skill_Selection.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
Debería servir, ahí dices qué tal,
Orochii Zouveleki


Última edición por orochii el 2013-09-13, 19:18, editado 1 vez (Razón : fail al cambiar la Y x'D, sumé 8 dentro de la multiplicación, así que las cosas habrían ido quedando super desfazadas xd...)
avatar
orochii
Reportero

0/3

Créditos 7760

Gracias : 456

Volver arriba Ir abajo

RPG Maker XP Re: Problema con medidas al crear un nuevo menú

Mensaje por KLAUDAS el 2013-09-13, 22:17

Está perfecto. El script es el Moghunter, ¿es que está mal el uso del código? Ya por curiosidad jeje

Mil gracias, Orochii, eres mi caballero de brillante armadura que siempre me ayuda (toma, hasta me inspiras poesía <3)
avatar
KLAUDAS
Novato
Novato

0/3

Créditos 77

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Problema con medidas al crear un nuevo menú

Mensaje por orochii el 2013-09-13, 22:34

Ya bueno, con mi hermosa cabellera, mi brillante barba de sabiduría, y... todo lo demás, yo inspiraría a 20 bardos, 5 iletrados y 60 abogados a escribirse 30 tomos de poesía (?).
===
Bueno es que supongo hay que tomar en consideración que es uno de los primeros scripts de MOG. Hay tonterías como definir una variable global dentro de un método que retorna un valor...
Código:
#ESTO NO SE HACE FOR MOTHER OF GOD.
def mpname
$mpname = load_data("Data/MapInfos.rxdata")
$mpname[@map_id].name
end
Luego alguna que otra cosa que puede optimizarse, o que es un poco redundante. Supongo lo dejaría ahí para que otros lo acomodaran a su gusto, pero con esa estructura quién encuentra nada en esos scripts xD.

En fin, cositas por aquí y por allá que sólo le interesan sea a scripters exigentes, o a pardillos en entrenamiento (como yo 8D!).

Salut,
OZ
avatar
orochii
Reportero

0/3

Créditos 7760

Gracias : 456

Volver arriba Ir abajo

RPG Maker XP Re: Problema con medidas al crear un nuevo menú

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.