Aportes de Scripts RPG-Maker

Estado
Cerrado para nuevas respuestas
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
¿Sabes si está este script para el XP? No me vendría mal tenerlo.

aqui tienes:

PHS (ESTILO: FF7)

Explicación (Dummy)
Esto ayuda para cambiar a los personajes que están en el banquillo por los que están activos en el juego. Este script resiste 8 personajes.

Explicacion (Inteligente)
Pues nada empiezas tu juego con un prota (1) ... blablabla ves a otro prota se une.
usas el evento agregar actor. lalalala. a medida que pasa el juego se unen 2 más
ya completaríamos los 4. ahora los cuatro que le siguen se van para el banquillo xDD
siempre usando el evento de agregar actor.
ya cuando tengas más de 4 y máximo 8.
Puedes llamar el PHS, para usar su función:

Código:
$scene = Scene_PHS.new

ahi veras estas Screens.

phs0jp9.jpg

phs1yd6.jpg

phs2vo9.jpg

phs3mv4.jpg


y bueno sales y sigues tu aventura...

Script:


Código:
#==============================================================================
# PHS (Sistema de llamada a cambio de pj`s)
#------------------------------------------------------------------------------
# Creado By: Alexus  
# Es la versión: v1.0 
# Info:
# Resiste: 8 pj 
# Prohibido: Sacar al prota inicial
#==============================================================================
class Game_Party
 #------------------------------ 
  attr_accessor :party_max
  attr_accessor :party_min
  attr_accessor :must_actors
 #------------------------------ 
  alias party_phs_initialize initialize
  def initialize
    party_phs_initialize
    @party_max = 4
    @party_min = 1
    @must_actors = [1]
  end
  def must_actor_include?(actor)
    return @must_actors.include?(actor.id)
  end
end

class Window_Comentario < Window_Base
#--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 30)
   end
 end
 
  
class Window_PHS_Select < Window_Selectable
  #--------------------------------------------------------------------------
  # - Inicializar Objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 96, 400, 450) 
    self.x = 240
    self.y = 30
    @party_cambio = party_cambio
    @item_max = party_cambio.size
    @column_max = 2
    self.contents = Bitmap.new(width - 32, row_max * 88)
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # Cambio
  #--------------------------------------------------------------------------
  def cambio
    return @party_cambio[self.index]
  end
  #--------------------------------------------------------------------------
  # Actor presionar? = cambio
  #--------------------------------------------------------------------------
  def party_cambio
    cambio = []
    cambio.push($game_actors[1])  
    cambio.push($game_actors[2])  if $game_switches[1]
    cambio.push($game_actors[3])  if $game_switches[2]
    cambio.push($game_actors[4])  if $game_switches[3]
    cambio.push($game_actors[5])  if $game_switches[4]
    cambio.push($game_actors[6])  if $game_switches[5]
    cambio.push($game_actors[7])  if $game_switches[6]
    cambio.push($game_actors[8])  if $game_switches[7]
    return cambio
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@party_cambio.size
      draw_cambio(i)
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def draw_cambio(index)
    actor = @party_cambio[index]
    x = 4 + index % @column_max * (500 / @column_max) # 640
    y = index / @column_max * 88
    if $game_party.must_actor_include?(actor)
      color = text_color(3)
      opacity = 255
    elsif $game_party.actors.include?(actor)
      color = normal_color
      opacity = 255
    else
      color = disabled_color
      opacity = 128
    end
    self.contents.font.color = color
    self.contents.draw_text(x, y, 120, 32, actor.name)
    bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
    cw = bitmap.width / 4
    ch = bitmap.height / 4
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x+32 - cw / 2, y+64+16 - ch, bitmap, src_rect, opacity)
  end # x + 32
  #--------------------------------------------------------------------------
  # Row Maximo
  #--------------------------------------------------------------------------
  def row_max
    return (@item_max + @column_max - 1) / @column_max 
  end
  #--------------------------------------------------------------------------
  # Tope (Row)
  #--------------------------------------------------------------------------
  def top_row
    return self.oy / 88
  end
  #--------------------------------------------------------------------------
  # Row
  #--------------------------------------------------------------------------
  def top_row=(row)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
      if row < 0
        row = 0
      end
    end
    self.oy = row * 88
  end
  #--------------------------------------------------------------------------
  # Row Maximo
  #--------------------------------------------------------------------------
  def page_row_max
    return (self.height - 32) / 88  #32) / 88
  end
  #--------------------------------------------------------------------------
  # Updatear Cursor
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    cursor_width = 200 / @column_max # 512
    x = @index % @column_max * (cursor_width + 150)#(640 / @column_max) # 32
    y = @index / @column_max * 88 - self.oy # 88
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
end

class Window_PHS_Cambio< Window_Base
  #--------------------------------------------------------------------------
  # - Inicializar Objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 96, 240, 450)#(0, 0, 640, 96)
    self.y = 30
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # Refrescar
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
    x = 8 # 94
    y = i * 110
    actor = $game_party.actors[i]
    draw_actor_name(actor, x, y)
    draw_actor_class(actor, x + 80, y)
    draw_actor_level(actor, x, y + 18)
    draw_actor_state(actor, x + 200, y)
    draw_actor_hp(actor, x, y + 38)
    draw_actor_sp(actor, x, y + 58)
  end
end
  #--------------------------------------------------------------------------
  # Dibujar Cambio
  #--------------------------------------------------------------------------
  def draw_cambio(index)
    actor = $game_party.actors[index]
    x = 4 + index * (640 / $game_party.party_max)
    y = 0
    draw_actor_graphic(actor, 48, y + 65)
  end
end

class Window_PHS_Status < Window_Base
  #--------------------------------------------------------------------------
  # - Inicializar Objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 288, 640, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh(actor)
    self.contents.clear
    draw_actor_name(actor, 4, 0)
    draw_actor_class(actor, 4 + 144, 0)
    draw_actor_level(actor, 4, 32)
    draw_actor_state(actor, 4 + 72, 32)
    draw_actor_hp(actor, 4, 64, 172)
    draw_actor_sp(actor, 4, 96, 172)
    draw_actor_parameter(actor, 218, 32, 0)
    draw_actor_parameter(actor, 218, 64, 1)
    draw_actor_parameter(actor, 218, 96, 2)
    draw_actor_parameter(actor, 430, 32, 3)
    draw_actor_parameter(actor, 430, 64, 4)
    draw_actor_parameter(actor, 430, 96, 5)
    draw_actor_parameter(actor, 430, 128, 6)
    
  end
end

class Scene_PHS
  #--------------------------------------------------------------------------
  # - Inicializar Scene
  #--------------------------------------------------------------------------
  def main
    @comentario_window = Window_Comentario.new
    @main_window = Window_PHS_Select.new
    @change_window = Window_PHS_Cambio.new
    @status_window = Window_PHS_Status.new
    @status_window.opacity = 192
    @status_window.z += 10
    @show_index = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @comentario_window.dispose
    @main_window.dispose
    @change_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # Updatear
  #--------------------------------------------------------------------------
  def update
    @main_window.update
    if @status_window.visible and @show_index != @main_window.index
      status_window_position
      @status_window.refresh(@main_window.cambio)
      @show_index = @main_window.index
    end
    if Input.trigger?(Input::B)
      if $game_party.actors.size < $game_party.party_min
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      if $game_party.must_actor_include?(@main_window.cambio)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if $game_party.actors.include?(@main_window.cambio)
        $game_party.remove_actor(@main_window.cambio.id)
      else
        if $game_party.actors.size == $game_party.party_max
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_party.add_actor(@main_window.cambio.id)
      end
      $game_system.se_play($data_system.decision_se)
      @main_window.refresh
      @change_window.refresh
      return
    end
    if Input.trigger?(Input::A)
      #$game_system.se_play($data_system.decision_se)
      if @status_window.visible
        @status_window.visible = false
      else
        status_window_position
        @status_window.refresh(@main_window.cambio)
        @status_window.visible = false
        @show_index = @main_window.index
      end
      return
    end
  end
  def status_window_position
    if @main_window.cursor_rect.y < 176
      @status_window.y = 288
    else
      @status_window.y = 96
    end
  end
end

Arreglado el script... ahora en vez de usar el evento agregar actor debes activar el swith 1 a 8 para que se agrege al PHS.
cada switch del 1 al 8 sera para un personaje (No incluye el prota inicial)
si quieres que el prota se vaya a los activos y salga el char en el PHS
debes activar el switch y agregar actor xD

Creditos: Alexus

cya!
 
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
Trataré de modificarlo para hacerlo de 10 o 12

no es necesario...
busca esta linea en el script:

alias party_phs_initialize initialize
def initialize
party_phs_initialize
@party_max = 4
@party_min = 1
@must_actors = [1]
end

donde dice @party_max = 4 editen por el # de máximo en el party que quieran ejemplo:
@party_max = 8

cya! :)



EDITO:

Para no hacer spam aqui otro script:


Menú Star Ocean

Descripción:
Este script hace que el RMXP adopte un menú similar al del videojuego "Star Ocean: Till the End of Time" (PS2)

Screens:
menaf0.jpg

d7cliaswwm_Estado.JPG

Demo:
Descargar Demo (MegaUpload)
Descargar Demo (SkyDrive)
Descargar Demo (FileFront)

Créditos:
Script creado por:
StupidStormy36 (Creador)
Squall y MasterMind5823 (Iconos de Comandos)
SephirothSpawn (Barras)
 
Última edición:
Mensajes
7
Reacciones
0
Puntos
0
no es necesario...
busca esta linea en el script:



donde dice @party_max = 4 editen por el # de máximo en el party que quieran ejemplo:
@party_max = 8

cya! :)



Pero si pongo mas de 8 no decia que no se recomendaba? Supongo que si pongo mas de 8, no entrarán las imagenes y los parametros en la ventana, por lo que si que habria que editar estos parametros para añadir el hueco de los otros 4 y reducir el de los otros 8.

de todas formas, voy a probarlo ahora y ya cuento que me salió

Un saludo
 
Mensajes
68
Reacciones
0
Puntos
0
hay algun script ¨¨(co muchos detalles para no estar mal) y q este bueno para aser intros buenos q ila otra bes akatsuky paso un escript de intros y al final salia error el la ultima linea don de dice end y dice q no se puede entrar
 
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
Dudas aqui - http://www.emudesc.net/foros/rpg-ma...ca-y-exclusivamente-no-abrir-temas-dudas.html

=====================================================

Grafico de Defensa Elemental RPG XP

Descripción:
En la pantalla de Estado, permite ver un gráfico que muestra la defensa del personaje a cada elemento.

Script:
+ Pega este script sobre Main:
Código:
#============================ 
# Graph_Def_Elem 
#============================ 
class Window_Base 
FONT_SIZE = 18 
WORD_ELEMENT_GUARD = "Def. Elemental" 
NUMBER_OF_ELEMENTS = 8 
ELEMENT_ORDER = [1,3,8,5,2,4,7,6] 
GRAPH_SCALINE_COLOR = Color.new(255, 255, 255, 128) 
GRAPH_SCALINE_COLOR_SHADOW = Color.new( 0, 0, 0, 192) 
GRAPH_LINE_COLOR = Color.new(255, 255, 64, 255) 
GRAPH_LINE_COLOR_MINUS = Color.new( 64, 255, 255, 255) 
GRAPH_LINE_COLOR_PLUS = Color.new(255, 64, 64, 255) 
end 
#============================ 
# �¡ Window_Status 
#============================ 
class Window_Status < Window_Base 
alias xrxs_mp4_refresh refresh 
def refresh 
xrxs_mp4_refresh 
draw_actor_element_radar_graph(@actor, 320, 240) 
end 
#----------------------------
def draw_actor_element_radar_graph(actor, x, y, radius = 56) 
cx = x + radius + FONT_SIZE + 48 
cy = y + radius + FONT_SIZE + 32 
self.contents.font.color = system_color 
self.contents.draw_text(x, y, 104, 32, WORD_ELEMENT_GUARD) 
for loop_i in 0..NUMBER_OF_ELEMENTS 
if loop_i == 0 
#----------------------------
else 
@pre_x = @now_x 
@pre_y = @now_y 
@pre_ex = @now_ex 
@pre_ey = @now_ey 
@color1 = @color2 
end 
if loop_i == NUMBER_OF_ELEMENTS 
eo = ELEMENT_ORDER[0] 
else 
eo = ELEMENT_ORDER[loop_i] 
end 
er = actor.element_rate(eo) 
estr = $data_system.elements[eo] 
@color2 = er < 0 ? GRAPH_LINE_COLOR_MINUS : er > 100 ? GRAPH_LINE_COLOR_PLUS : GRAPH_LINE_COLOR 
er = er.abs 
th = Math::PI * (0.5 - 2.0 * loop_i / NUMBER_OF_ELEMENTS) 
@now_x = cx + (radius * Math.cos(th)).floor 
@now_y = cy - (radius * Math.sin(th)).floor 
@now_wx = cx + ((radius+FONT_SIZE*2/2) * Math.cos(th)).floor - FONT_SIZE 
@now_wy = cy - ((radius+FONT_SIZE*1/2) * Math.sin(th)).floor - FONT_SIZE/2 
@now_vx = cx + ((radius+FONT_SIZE*6/2) * Math.cos(th)).floor - FONT_SIZE 
@now_vy = cy - ((radius+FONT_SIZE*3/2) * Math.sin(th)).floor - FONT_SIZE/2 
@now_ex = cx + (er*radius/100 * Math.cos(th)).floor 
@now_ey = cy - (er*radius/100 * Math.sin(th)).floor 
if loop_i == 0 
@pre_x = @now_x 
@pre_y = @now_y 
@pre_ex = @now_ex 
@pre_ey = @now_ey 
@color1 = @color2 
else 
#----------------------------
end 
next if loop_i == 0 
self.contents.draw_line(cx+1,cy+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW) 
self.contents.draw_line(@pre_x+1,@pre_y+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW) 
self.contents.draw_line(cx,cy, @now_x,@now_y, GRAPH_SCALINE_COLOR) 
self.contents.draw_line(@pre_x,@pre_y, @now_x,@now_y, GRAPH_SCALINE_COLOR) 
self.contents.draw_line(@pre_ex,@pre_ey, @now_ex,@now_ey, @color1, 2, @color2) 
self.contents.font.size = FONT_SIZE 
self.contents.font.color = system_color 
self.contents.draw_text(@now_wx,@now_wy, FONT_SIZE*2, FONT_SIZE, estr, 1) 
self.contents.font.color = Color.new(255,255,255,128) 
self.contents.draw_text(@now_vx,@now_vy, FONT_SIZE*2, FONT_SIZE, er.to_s + "%", 2) 
end 
end 
end 
#============================ 
# �ž Å O•â€￾ƒ‰ƒCÆ’uƒ‰ƒŠ 
#============================ 
class Bitmap 
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color) 
distance = (start_x - end_x).abs + (start_y - end_y).abs 
if end_color == start_color 
for i in 1..distance 
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i 
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i 
if width == 1 
self.set_pixel(x, y, start_color) 
else 
self.fill_rect(x, y, width, width, start_color) 
end 
end 
else 
for i in 1..distance 
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i 
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i 
r = start_color.red * (distance-i)/distance + end_color.red * i/distance 
g = start_color.green * (distance-i)/distance + end_color.green * i/distance 
b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance 
a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance 
if width == 1 
self.set_pixel(x, y, Color.new(r, g, b, a)) 
else 
self.fill_rect(x, y, width, width, Color.new(r, g, b, a)) 
end 
end 
end 
end 
end

+ Reemplaza Window_Status con:
Código:
#============================ 
# ■ Window_Status 
#---------------------------- 
# &# 
#============================ 

class Window_Status < Window_Base 
#---------------------------- 
# ● オブジェクト初期化 
# actor : アクター 
#---------------------------- 
def initialize(actor) 
super(0, 0, 640, 480) 
self.contents = Bitmap.new(width - 32, height - 32) 
self.contents.font.name = $fontface 
self.contents.font.size = $fontsize 
@actor = actor 
refresh 
end 
#---------------------------- 
# ● リフレッシュ 
#---------------------------- 
def refresh 
self.contents.clear 
draw_actor_graphic(@actor, 40, 112) 
draw_actor_name(@actor, 4, 0) 
draw_actor_class(@actor, 4 + 144, 0) 
draw_actor_level(@actor, 80, 32) 
draw_actor_hp(@actor, 80, 112, 172) 
draw_actor_sp(@actor, 80, 144, 172) 
draw_actor_parameter(@actor, 80, 192, 0) 
draw_actor_parameter(@actor, 80, 224, 1) 
draw_actor_parameter(@actor, 80, 256, 2) 
draw_actor_parameter(@actor, 80, 304, 3) 
draw_actor_parameter(@actor, 80, 336, 4) 
draw_actor_parameter(@actor, 80, 368, 5) 
draw_actor_parameter(@actor, 80, 400, 6) 
self.contents.font.color = system_color 
self.contents.draw_text(80, 55, 110, 32, "Experiencia: ") 
self.contents.draw_text(80, 75, 130, 32, "Siguiente: ") 
self.contents.font.color = normal_color 
self.contents.draw_text(100 + 85, 55, 84, 32, @actor.exp_s, 2) 
self.contents.draw_text(100 + 79, 75, 84, 32, @actor.next_rest_exp_s, 2) 
self.contents.font.color = system_color 
self.contents.draw_text(320, 25, 196, 32, "Equipo: ") 
draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 50) 
draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 80) 
draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 110) 
draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 140) 
draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 170) 
end 
def dummy 
self.contents.font.color = system_color 
self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon) 
self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1) 
self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2) 
self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3) 
self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4) 
draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 50) 
draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 80) 
draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 110) 
draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 140) 
draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 170) 
end 
end

Instrucciones:
El script opera en cuanto lo coloques xD
 
Última edición:
Mensajes
7
Reacciones
0
Puntos
0
Puedes poner un pantallazo Akatsuki?

¿Qué tipos de Scripts tiene (Lo mas importantes) el pack, yerko 522, podias haber sido mas especifico

Un saludo, lo digo de buen rollo. Es mas que nada por saber si lo que se postea me interesa, y supongo que a los demas les pasara
 
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
Puedes poner un pantallazo Akatsuki?

¿Qué tipos de Scripts tiene (Lo mas importantes) el pack, yerko 522, podias haber sido mas especifico

Un saludo, lo digo de buen rollo. Es mas que nada por saber si lo que se postea me interesa, y supongo que a los demas les pasara

cuando pueda coloco una imagen xD


-------------------------------------------

Cambio de tono de la windowskin (RPGXP)


DESCRIPCIóN

Este script permite añadir una función gracias a la cual el jugador puede cambiar a su gusto el color de la windowskin, de forma parecida al Golden Sun. Ahora que sé utilizar el alias (gracias a un tutorial de TDS) intentaré mejorarlo para que sea más cómodo

SCREENSHOT

No disponible

DEMO

En proceso...

SCRIPT


[codebox]
#***************************************************************************
# - Cambio de tono de la windowskin v1.0
#***************************************************************************

# - Descripción: Este script permite añadir una función gracias a la cual
# el jugador puede cambiar a su gusto el color de la windowskin.
# - Autor: Alnain (no son necesarios créditos)
# - Publicado por primera vez en: Planeta RPG, a 22/06/08 (dd/mm/aa)
# - Instrucciones: Pegar entre Main y Window_Base. Para cambiar el tono de
# la windowskin, hay que cambiar el valor de la variable $windowskin_tono.
# Para ello, puedes hacerlo con un llamar script utilizando $windowskin_tono
# más un operador matemàtico más un valor:
#
# - Para sumar: $windowskin_tono += valor
# - Para restar: $windowskin_tono -= valor
# - Para dividir: $windowskin_tono /= valor
# - Para multiplicar: $windowskin_tono *= valor
# - Para potencias: $windowskin_tono **= valor
# - Para sustituir: $windowskin_tono = valor
# Si quieres que el valor sea una variable del juego usa $game_variables[X]
# donde X es la ID de la variable
#---------------------------
# Para que cada partida tenga un tono de windowskin individual, ve a Scene_Save
# y añade esta línea (sin el #):
#
# Marshal.dump($windowskin_tono, file)
#
# debajo de Marshal.dump($game_player, file), en las últimas lineas del script
#
# Y luego, ve a Scene_Load y añade esto (sin el #):
#
# $windowskin_tono = Marshal.load(file)
#
#debajo de $game_player = Marshal.load(file), en las últimas líneas del script
#
#===========================
# - Editable desde aquí...
#---------------------------
# Aquí puedes definir el valor máximo y e mínimo de la variable del tono:

$TONO_MAX = 600 # máximo
$TONO_MIN = -595 # minimo

#---------------------------
# ...hasta aquí.
#===========================

#===========================
#Comienzo del script
#---------------------------
class Window_Base < Window
# modificamos algunos métodos de window_Base
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super()
@windowskin_name = $game_system.windowskin_name
$windowskin_tono = 0 if $windowskin_tono == nil
@windowskin_tono = $windowskin_tono
@windowskin_ruta = "..\\Windowskins\\" + @windowskin_name
@windowskin_bitmap = RPG::Cache.character(@windowskin_ruta, @windowskin_tono)
self.windowskin = @windowskin_bitmap
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
end
#--------------------------------------------------------------------------
def update # - Método de actualización
super
if $game_system.windowskin_name != @windowskin_name
self.windowskin = RPG::Cache.character(@windowskin_ruta, @windowskin_tono)
end
# Estó hará que se actualize la ventana si el tono no es el correcto
if $windowskin_tono != @windowskin_tono
$windowskin_tono = $TONO_MAX if $windowskin_tono > $TONO_MAX
$windowskin_tono = $TONO_MIN if $windowskin_tono < $TONO_MIN
@windowskin_tono = $windowskin_tono
self.windowskin = RPG::Cache.character(@windowskin_ruta, @windowskin_tono)
end
end
#--------------------------------------------------------------------------
end
[/codebox]


Y como me aburro, aquí os dejo un Scene_Menu que incluye la opción para modificar el tono de la windowskin


[codebox]
#***************************************************************************
# - Scene_Menu modificado por Alnain
#***************************************************************************
# Para aumentar o disminuir el tono de la windowskin, selecciona "tono" y
# utiliza las flechas

class Scene_Menu
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
def main
# コマンドウィンドウを作成
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Estado"
s5 = "Guardar"
s6 = "Tono"
s7 = "Salir"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
@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
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 256
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 336
@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0
@wstono_window = Window_Wstono.new
@wstono_window.x = 320 - @wstono_window.width/2
@wstono_window.y = 240 - @wstono_window.height/2
@wstono_window.visible = false
@wstono_window.z = 9999
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
@wstono_window.dispose
end
#--------------------------------------------------------------------------
def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
@wstono_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
if @wstono_window.visible
update_wstono
return
end
end
#--------------------------------------------------------------------------
def update_wstono
if Input.repeat? (Input::DOWN)
$windowskin_tono -= 1
elsif Input.repeat?(Input::UP)
$windowskin_tono += 1
elsif Input.repeat?(Input::RIGHT)
$windowskin_tono += 10
elsif Input.repeat?(Input::LEFT)
$windowskin_tono -= 10
elsif Input.trigger?(Input::B)
desactivar_ventata_tono
elsif Input.trigger?(Input::C)
desactivar_ventata_tono
end

end

#--------------------------------------------------------------------------
def update_command
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)
activar_ventata_tono
when 6
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
def activar_ventata_tono
@wstono_window.visible = true
@command_window.opacity = 100
@playtime_window.opacity = 100
@steps_window.opacity = 100
@status_window.opacity = 100
@gold_window.opacity = 100
@command_window.active = false
end
#--------------------------------------------------------------------------
def desactivar_ventata_tono
@wstono_window.visible = false
@command_window.opacity = 255
@playtime_window.opacity = 255
@steps_window.opacity = 255
@status_window.opacity = 255
@gold_window.opacity = 255
@command_window.active = true
end
#--------------------------------------------------------------------------
# - Método de actualización
#--------------------------------------------------------------------------
def update_status
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

#***************************************************************************
# - Ventana de tono
#***************************************************************************
class Window_Wstono < Window_Base
def initialize
super(0, 0, 350, 150)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
end
def refresh

self.contents.clear
cx = contents.text_size($windowskin_tono.to_s).width
self.contents.font.color = normal_color
self.contents.draw_text(0, 4, self.width-32, 32, "Utiliza las flechas", 1)
self.contents.draw_text(0, 36, self.width-32, 32, "para cambiar el", 1)
self.contents.draw_text(0, 68, self.width-32, 32, "tono de la ventana", 1)
end
end

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

class Window_PlayTime < Window_Base
#--------------------------------------------------------------------------
# - Inicio de Objetos...
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 80)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = 20
refresh
end
#--------------------------------------------------------------------------
# - Actualizacion
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 120, 16, "Tiempo Jugado")
@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, 24, 120, 16, text, 2)
end
#--------------------------------------------------------------------------
# - Renovacion del frame
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end

#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
#  Esta es la venta que muestra el dinero
#==============================================================================

class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# - Inicio de Objetos...
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
end
#--------------------------------------------------------------------------
# - Actualizacion
#--------------------------------------------------------------------------
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_Steps
#------------------------------------------------------------------------------
#  Esta ventana muestra el numero de pasos en el menu
#==============================================================================

class Window_Steps < Window_Base
#--------------------------------------------------------------------------
# - Inicio de Objetos...
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 80)#
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = 20#
refresh
end
#--------------------------------------------------------------------------
# - Actualizacion
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 120, 32, "Nº de Pasos")
self.contents.font.color = normal_color
self.contents.draw_text(4, 24, 120, 32, $game_party.steps.to_s, 2) #
end
end

[/codebox]


INSTRUCCIONES

Pegar entre Main y Window_Base. Para cambiar el tono de la windowskin, hay que cambiar el valor de la variable $windowskin_tono. Para ello, puedes hacerlo con un llamar script utilizando $windowskin_tono más un operador matemàtico más un valor:

- Para sumar: $windowskin_tono += valor
- Para restar: $windowskin_tono -= valor
- Para dividir: $windowskin_tono /= valor
- Para multiplicar: $windowskin_tono *= valor
- Para potencias: $windowskin_tono **= valor
- Para sustituir: $windowskin_tono = valor
Si quieres que el valor sea una variable del juego usa $game_variables[X], donde X es la ID de la variable
---------------------------
Para que cada partida tenga un tono de windowskin individual, ve a Scene_Save y añade esta línea:

Código:
 Marshal.dump($windowskin_tono, file)

debajo de:

Código:
Marshal.dump($game_player, file)

(en las últimas lineas del script)

Y luego, ve a Scene_Load y añade esto:

Código:
$windowskin_tono  = Marshal.load(file)

debajo de


Código:
 $game_player         = Marshal.load(file)[code]

 (en las últimas lineas del script)
[size=3][b]CREDITOS[/b][/size]

El autor es Alnain (yo), pero no son necesarios créditos
 
Mensajes
68
Reacciones
0
Puntos
0
MI APORTE BANCO RGSS

Este es un script para crear un banco completo, que guarde y devuelva items y dinero. Esta aun un poco verde y apreciaría comentarios:



Hay que incluir en game_Temp.:

Lo que está entre las lineas donde pone #banco-----.. es lo que hay que añadir. Solo teneis que usar buscar para localizar las lineas de arriba y abajo.



................
attr_accessor :battle_main_phase # Flag de Fase Principal
attr_accessor :battleback_name # Nombre del Archivo "BattleBack"
attr_accessor :forcing_battler # Forzar Personaje de Batalla
attr_accessor :shop_calling # Llamar tienda
#Banco-------------------------------------------------------------------
attr_accessor :bank_calling # Llamar banco
#Banco-------------------------------------------------------------------
attr_accessor :shop_goods # Lista del Genero en venta y compra
attr_accessor :name_calling # Intr. nombre de Flag de llamada
attr_accessor :name_actor_id # Intr. nombre de ID de personaje
attr_accessor :name_max_char # Intr. Num. de caracteres maximos
attr_accessor :menu_calling # Flag de Llamar Menu
.................................


...................................
@forcing_battler = nil
@shop_calling = false
@shop_id = 0
#Banco-------------------------------------------------------------------
@bank_calling = false
@bank_id = 0
#Banco-------------------------------------------------------------------
@name_calling = false
@name_actor_id = 0
@name_max_char = 0
#-----------------------------------------------------


En game_party cambiar def inicialice entero por:




def initialize
@actors = []
@gold = 0
@steps = 0
@items = {}
@weapons = {}
@armors = {}
#Añadir depósito de Oro adicional para el banco
@gold2 = 0
#Añadir depósito de items adicional para el banco
@items2 = {}
@weapons2 = {}
@armors2 = {}
end
#--------------------------


y añadir al final de la misma clase, después del resto de métodos:




#--------------------------------------------------------------------------
# Métodos adicionales de control de oro e items para el banco
#--------------------------------------------------------------------------
def gain_gold2(n)
@gold2 = [[@gold2 + n, 0].max, 9999999].min
end
#--------------------------------------------------------------------------
def lose_gold2(n)
gain_gold2(-n)
end
#--------------------------------------------------------------------------
def item_number2(item_id)
return @items2.include?(item_id) ? @items2[item_id] : 0
end
#--------------------------------------------------------------------------
def weapon_number2(weapon_id)
return @weapons2.include?(weapon_id) ? @weapons2[weapon_id] : 0
end
#--------------------------------------------------------------------------
def armor_number2(armor_id)
return @armors2.include?(armor_id) ? @armors2[armor_id] : 0
end
#--------------------------------------------------------------------------
def gain_item2(item_id, n)
if item_id > 0
@items2[item_id] = [[item_number2(item_id) + n, 0].max, 99].min
end
end
#--------------------------------------------------------------------------
def gain_weapon2(weapon_id, n)
if weapon_id > 0
@weapons2[weapon_id] = [[weapon_number2(weapon_id) + n, 0].max, 99].min
end
end
#--------------------------------------------------------------------------
def gain_armor2(armor_id, n)
if armor_id > 0
@armors2[armor_id] = [[armor_number2(armor_id) + n, 0].max, 99].min
end
end
#--------------------------------------------------------------------------
def lose_item2(item_id, n)
gain_item2(item_id, -n)
end
#--------------------------------------------------------------------------
def lose_weapon2(weapon_id, n)
gain_weapon2(weapon_id, -n)
end
#--------------------------------------------------------------------------
def lose_armor2(armor_id, n)
gain_armor2(armor_id, -n)
end
#--------------------------------------------------------------------------
# Fin de las funciones de banco
#--------------------------------------------------------------------------


Luego hay que añadir estas clases a la lista, preferentemente después de Shopstatus:



#------------------------------------------------------------------------------
# Window_BankCommand
#------------------------------------------------------------------------------
# Es la ventana que elige el negocio a realizar en una banco
#------------------------------------------------------------------------------

class Window_BankCommand < Window_Selectable
#--------------------------------------------------------------------------
# - Inicializar Objeto
#--------------------------------------------------------------------------
def initialize
super(0, 64, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@item_max = 4
@column_max = 4
@commands = ["Retirar", "Depositar", "Dinero", "Salir"]
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# - Refrescar
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# - Dibujado del objeto
# index : número del objeto
#--------------------------------------------------------------------------
def draw_item(index)
x = 4 + index * 160
self.contents.draw_text(x, 0, 128, 32, @commands[index])
end
end






#------------------------------------------------------------------------------
# Window_Bank_Removeitem
#------------------------------------------------------------------------------
# Aqui es donde eliges los objetos que vas a retirar del banco
#------------------------------------------------------------------------------

class Window_Bank_Removeitem < Window_Selectable
#--------------------------------------------------------------------------
# - Inicializar Objeto
#--------------------------------------------------------------------------
def initialize
super(0, 128, 320, 352)
@column_max = 1
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# - Adquisición del Objeto
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
#- Refrescar
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 1...$data_items.size
if $game_party.item_number2(i) > 0
@data.push($data_items)
end
end
for i in 1...$data_weapons.size
if $game_party.weapon_number2(i) > 0
@data.push($data_weapons)
end
end
for i in 1...$data_armors.size
if $game_party.armor_number2(i) > 0
@data.push($data_armors)
end
end
# El número de objetos. Si no es cero, se dibujara un mapa de bits y se dibujaran los objetos.
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize - 5
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
# - Dibujado del Objeto
# index : Número de Objeto
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number2(item.id)
when RPG::Weapon
number = $game_party.weapon_number2(item.id)
when RPG::Armor
number = $game_party.armor_number2(item.id)
end
=begin
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
=end

x = 4
y = index * 32
rect = Rect.new(x, y, self.width - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
#--------------------------------------------------------------------------
# - Renovación del texto de ayuda
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end






#------------------------------------------------------------------------------
# Window_Bank_Additem
#------------------------------------------------------------------------------
# Aqui es donde eliges los objetos que vas a retirar del banco
#------------------------------------------------------------------------------

class Window_Bank_Additem < Window_Selectable
#--------------------------------------------------------------------------
# - Inicializar Objeto
#--------------------------------------------------------------------------
def initialize
super(320, 128, 320, 352)
@column_max = 1
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# - Adquisición del Objeto
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
#- Refrescar
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 1...$data_items.size
if $game_party.item_number(i) > 0
@data.push($data_items)
end
end
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0
@data.push($data_weapons)
end
end
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0
@data.push($data_armors)
end
end
# El número de objetos. Si no es cero, se dibujara un mapa de bits y se dibujaran los objetos.
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize - 5
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
# - Dibujado del Objeto
# index : Número de Objeto
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
x = 4
y = index * 32
rect = Rect.new(x, y, self.width - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
#--------------------------------------------------------------------------
# - Renovación del texto de ayuda
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end





#==============================================================================
# Window_BankNumber
#------------------------------------------------------------------------------
# Es la ventana donde se elige el número de objetos a comprar o a vender en una tienda.
#==============================================================================

class Window_BankNumber < Window_Base
#--------------------------------------------------------------------------
# - Inicializar Objeto
#--------------------------------------------------------------------------
def initialize
super(130, 250, 378, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@item = nil
@max = 1
@number = 1
end
#--------------------------------------------------------------------------
# - Elección de objeto, número máximo y precio
#--------------------------------------------------------------------------
def set(item, max)
@item = item
@max = max
@number = 1
refresh
end
#--------------------------------------------------------------------------
# - Elegir número de entrada
#--------------------------------------------------------------------------
def number
return @number
end
#--------------------------------------------------------------------------
#- Refrescar
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_item_name(@item, 4, 50)
self.contents.font.color = normal_color
self.contents.draw_text(272, 50, 32, 32, "~")
self.contents.draw_text(308, 50, 24, 32, @number.to_s, 2)
self.cursor_rect.set(304, 50, 32, 32)
end
#--------------------------------------------------------------------------
# - Renovar Frame
#--------------------------------------------------------------------------
def update
super
if self.active
# Cursor Derecha (+1)
if Input.repeat?(Input::RIGHT) and @number < @max
$game_system.se_play($data_system.cursor_se)
@number += 1
refresh
end
# Cursor Izquierda (-1)
if Input.repeat?(Input::LEFT) and @number > 1
$game_system.se_play($data_system.cursor_se)
@number -= 1
refresh
end
# En cursor (+10)
if Input.repeat?(Input::UP) and @number < @max
$game_system.se_play($data_system.cursor_se)
@number = [@number + 10, @max].min
refresh
end
# Bajo Cursor (-10)
if Input.repeat?(Input::DOWN) and @number > 1
$game_system.se_play($data_system.cursor_se)
@number = [@number - 10, 1].max
refresh
end
end
end
end




#------------------------------------------------------------------------------
# ? Window_InputNumber
#------------------------------------------------------------------------------



class Window_Inputbank< Window_Base
#--------------------------------------------------------------------------

#Banco.......................
attr_accessor :maxi
#Banco.......................
def initialize(digits_max)
@digits_max = digits_max
#Banco.......................
$maxm = maxi
if $maxm = nil
@number = 0
else
@number = $maxm
end
#Banco.......................
@number = 0
dummy_bitmap = Bitmap.new(32, 32)
@cursor_width = dummy_bitmap.text_size("0").width + 20
dummy_bitmap.dispose
super(150, 214, @cursor_width * @digits_max + 32, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.z += 9999
self.opacity = 255
@index = 0
refresh
update_cursor_rect
end
#--------------------------------------------------------------------------
def number
return @number
end
#--------------------------------------------------------------------------
def dispose
super
end
#--------------------------------------------------------------------------
def number=(number)
@number = [[number, 0].max, $maxm].min
refresh
end
#--------------------------------------------------------------------------
def update_cursor_rect
self.cursor_rect.set(@index * @cursor_width, 0, @cursor_width, 32)
end
#--------------------------------------------------------------------------
def update
super
if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
place = 10 ** (@digits_max - 1 - @index)
n = @number / place % 10
@number -= n * place
n = (n + 1) % 10 if Input.repeat?(Input::UP)
n = (n + 9) % 10 if Input.repeat?(Input::DOWN)
@number += n * place
refresh
end
if Input.repeat?(Input::RIGHT)
if @digits_max >= 2
$game_system.se_play($data_system.cursor_se)
@index = (@index + 1) % @digits_max
end
end
if Input.repeat?(Input::LEFT)
if @digits_max >= 2
$game_system.se_play($data_system.cursor_se)
@index = (@index + @digits_max - 1) % @digits_max
end
end
update_cursor_rect
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.back_opacity = 255 #Comentar esta línea para que el mensaje sea translúcido
s = sprintf("%0*d", @digits_max, @number)
for i in 0...@digits_max
self.contents.draw_text(i * @cursor_width + 4, 0, 32, 32, s[i,1])
end
end
end







#------------------------------------------------------------------------------
# Window_MoneyCommand
#------------------------------------------------------------------------------
# Es la ventana que elige el negocio a realizar en una banco
#------------------------------------------------------------------------------

class Window_MoneyCommand < Window_Selectable
#--------------------------------------------------------------------------
# - Inicializar Objeto
#--------------------------------------------------------------------------
def initialize
super(150, 278, 370, 130)
self.contents = Bitmap.new(width, height)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@item_max = 2
@column_max = 1
@commands = ["Retirar", "Ingresar"]
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# - Refrescar
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# - Dibujado del objeto
# index : número del objeto
#--------------------------------------------------------------------------
def draw_item(index)
x = 4
y = index * 30
self.contents.draw_text(x, y, 128, 32, @commands[index])
end
end




Luego teneis que cambiar esto en game_map

De nuevo, lo que está entre las lineas donde pone #banco-----.. es lo que hay que añadir. Solo teneis que usar buscar para localizar las lineas de arriba y abajo.






if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
#Banco-------------------------------------------------------------------
elsif $game_temp.bank_calling
call_Bank
#Banco-------------------------------------------------------------------
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
end


En penúltimo lugar, hay que añadir una nueva clase justo después de Scene_shop, que es esta:




#------------------------------------------------------------------------------
# ? Scene_Bank
#------------------------------------------------------------------------------
class Scene_Bank
# ------------------------------------
def main
@help_window = Window_Help.new
@command_window = Window_BankCommand.new
@dummy_window = Window_Base.new(0, 128, 640, 352)
@buy_window = Window_Bank_Removeitem.new
@buy_window.help_window = @help_window
@sell_window = Window_Bank_Additem.new
@sell_window.help_window = @help_window
@number_window = Window_BankNumber.new
@Money_window = Window_MoneyCommand.new
@input_window = Window_Inputbank.new(6)
@buy_window.active = false
@buy_window.visible = true
@sell_window.active = false
@sell_window.visible = true
@number_window.active = false
@number_window.visible = false
@Money_window.active = false
@Money_window.visible = false
@input_window.active = false
@input_window.visible = false
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@help_window.dispose
@command_window.dispose
@dummy_window.dispose
@buy_window.dispose
@sell_window.dispose
@number_window.dispose
@Money_window.dispose
@input_window.dispose
end
# ------------------------------------
def update
@help_window.update
@command_window.update
@dummy_window.update
@buy_window.update
@sell_window.update
@number_window.update
@Money_window.update
@input_window.update
if @command_window.active
update_command
return
end
if @Money_window.active
update_command2
return
end
if @buy_window.active
update_buy
return
end
if @sell_window.active
update_sell
return
end
if @number_window.active
update_number
return
end
if @input_window.active
update_input
return
end
end
# ------------------------------------
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@sell_window.active = false
@Money_window.active = false
@Money_window.visible = false
update
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@dummy_window.visible = false
@sell_window.active = true
@sell_window.visible = true
@sell_window.refresh
@buy_window.active = false
@Money_window.active = false
@Money_window.visible = false
update
when 2
@command_window.active = false
@buy_window.active = false
@sell_window.active = false
@command_window.active = false
@buy_window.active = false
@sell_window.active = false
@Money_window.refresh
@Money_window.visible = true
@Money_window.active = true
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Map.new
end
return
end
end
# ------------------------------------
def update_command2
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = true
@sell_window.active = false
@sell_window.visible = true
@Money_window.active = false
@Money_window.visible = false
@help_window.set_text("")
return
end
if Input.trigger?(Input::C)
case @Money_window.index
when 0
@help_window.set_text("El banco dispone de " + $game_party.gold2.to_s + " " + $data_system.words.gold)
@Money_window.active = false
@input_window.visible = true
@input_window.max = $game_party.gold
@input_window.active = true
when 1
@help_window.set_text("El grupo dispone de " + $game_party.gold.to_s + " " + $data_system.words.gold)
@input_window.visible = true
@Money_window.active = false
@input_window.max = $game_party.gold2
@input_window.active = true
end
return
end
end
#--------------------------------------------------------------
def update_buy
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = true
@help_window.set_text("")
return
end
if Input.trigger?(Input::C)
@item = @buy_window.item
if @item == nil
$game_system.se_play($data_system.buzzer_se)
return
end
case @item
when RPG::Item
number = $game_party.item_number2(@item.id)
when RPG::Weapon
number = $game_party.weapon_number2(@item.id)
when RPG::Armor
number = $game_party.armor_number2(@item.id)
end
max = number
$game_system.se_play($data_system.decision_se)
@buy_window.active = false
@buy_window.visible = true
@number_window.set(@item, max)
@number_window.active = true
@number_window.visible = true
end
end
# ------------------------------------
def update_sell
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@dummy_window.visible = true
@sell_window.active = false
@sell_window.visible = true
@help_window.set_text("")
return
end
if Input.trigger?(Input::C)
@item = @sell_window.item
if @item == nil or @item.price == 0
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
when RPG::Armor
number = $game_party.armor_number(@item.id)
end
max = number
@sell_window.active = false
@sell_window.visible = true
@Money_window.active = false
@Money_window.visible = false
@number_window.set(@item, max)
@number_window.active = true
@number_window.visible = true
end
end
# ------------------------------------
def update_number
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@number_window.active = false
@number_window.visible = false

case @command_window.index
when 0
@buy_window.active = true
@buy_window.visible = true
when 1
@sell_window.active = true
@sell_window.visible = true
end
return
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.shop_se)
@number_window.active = false
@number_window.visible = false
@Money_window.active = false
@Money_window.visible = false
case @command_window.index
when 0
case @item
when RPG::Item
$game_party.gain_item(@item.id, @number_window.number)
$game_party.lose_item2(@item.id, @number_window.number)
when RPG::Weapon
$game_party.gain_weapon(@item.id, @number_window.number)
$game_party.lose_weapon2(@item.id, @number_window.number)
when RPG::Armor
$game_party.gain_armor(@item.id, @number_window.number)
$game_party.lose_armor2(@item.id, @number_window.number)
end
@buy_window.refresh
@sell_window.refresh
@buy_window.active = true
@buy_window.visible = true
@sell_window.active =false
@sell_window.visible = true
@Money_window.active = false
@Money_window.visible = false
when 1
case @item
when RPG::Item
$game_party.lose_item(@item.id, @number_window.number)
$game_party.gain_item2(@item.id, @number_window.number)
when RPG::Weapon
$game_party.lose_weapon(@item.id, @number_window.number)
$game_party.gain_weapon2(@item.id, @number_window.number)
when RPG::Armor
$game_party.lose_armor(@item.id, @number_window.number)
$game_party.gain_armor2(@item.id, @number_window.number)
end
@buy_window.refresh
@sell_window.refresh
@buy_window.active = false
@buy_window.visible = true
@sell_window.active = true
@sell_window.visible = true
@Money_window.active = false
@Money_window.visible = false
end
return
end
end
end
#-------------------------------------------------------------------------
def update_input
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@input_window.active = false
@input_window.visible = false
@Money_window.active = true
@Money_window.visible = true
@buy_window.active = false
@buy_window.visible = true
@sell_window.active = false
@sell_window.visible = true
return
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.shop_se)
@input_window.active = false
@input_window.visible = false
@Money_window.active = false
@Money_window.visible = true
case @Money_window.index
when 0
$game_party.gain_gold(@input_window.number)
$game_party.lose_gold2(@input_window.number)
@buy_window.refresh
@sell_window.refresh
@buy_window.active = false
@buy_window.visible = false
@sell_window.active =false
@sell_window.visible = false
@input_window.active = false
@input_window.visible = false
@Money_window.active = false
@Money_window.visible = false
@command_window.active = true
@help_window.set_text("")
when 1
$game_party.gain_gold2(@input_window.number)
$game_party.lose_gold(@input_window.number)
@buy_window.refresh
@sell_window.refresh
@buy_window.active = false
@buy_window.visible = false
@sell_window.active =false
@sell_window.visible = false
@input_window.active = false
@input_window.visible = false
@Money_window.active = false
@Money_window.visible = false
@command_window.active = true
@help_window.set_text("")
end
return
end
end


Si todo está bien puesto, para que aparezca el menú, solo debeis hace esta llamada a script desde cualquier evento:


$game_temp.bank_calling = true


Espero que os valla bien, necesito ayuda para corregir todos los errores. Que haberlos, los hay ^^U.gif

Un saludo
 
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
Inventario Avanzado

Descripción
Crea un menú de objetos (inventario) más complejo dividido por categorías de objetos y con opciones de descarte de objetos y organización.

Screens:
yh9yt_inventario.jpg

r83o_opciones.jpg

Script:
Código:
=begin
[   ===================================================================   ]
[   ===================================================================   ]
[   =============   ]        SCRIPT CREADO POR:       [   =============   ]
[   =============   ]                                 [   =============   ]
[   =============   ]        >>> Dark Chocobo         [   =============   ]
[   =============   ]                                 [   =============   ]
[   =============   ]                                 [   =============   ]
[   =============   ]         > Menú Objetos <        [   =============   ]
[   =============   ]                                 [   =============   ]
[   ===================================================================   ]
[   ============   ]   Más scripts de Dark Chocobo en: [   ============   ]
[   ============   ]   DarkChocoboScripts.4shared.com  [   ============   ]
[   ===================================================================   ]
[   ===============   ] : Comunidad RPG Maker VX : [     ==============   ]
[   =====   ] http://www.orkut.com/Community.aspx?cmm=40232098 [   ====   ]
[   ===================================================================   ]
[   ===================================================================   ]

Resumen:
- Crea un menú de objetos más complejo dividido por categorías de objetos y
    con opciones de descarte de objetos y organización.
Instrucciones:
- Puedes renombrar las opciones en las líneas 33 a 36.
- Puedes configurar la velocidad con la que el menú pasa entre las
    categorias y las opciones en la línea 37.
=end

  # Crea las configuraciones iniciales del script.
  $DarkChocoboScripts = {} if $DarkChocoboScripts.nil?
  $DarkChocoboScripts["Menu de Itens"] = {}
  $DarkChocoboScripts["Menu de Itens"]["Categorias"] = []
  $DarkChocoboScripts["Menu de Itens"]["Categorias"][0] = "General"
  $DarkChocoboScripts["Menu de Itens"]["Categorias"][1] = "Raros"
  $DarkChocoboScripts["Menu de Itens"]["Categorias"][2] = "Equipo"
  $DarkChocoboScripts["Menu de Itens"]["Categorias"][3] = "Todos"
  $DarkChocoboScripts["Menu de Itens"]["Speed"] = 2 # Velocidad de cambio de menú de categorías a menu de opciones (1~5)
  
class DC_Menu_de_Itens_Check
  def draw_item?(item, index)
    return true unless $scene.is_a?(Scene_Item)
    case index
    when 0
      return false unless item.is_a?(RPG::Item)
      return item.consumable
    when 1
      return false unless item.is_a?(RPG::Item)
      return item.price == 0
    when 2
      return true unless item.is_a?(RPG::Item)
      return false
    else
      return true
    end
  end
end
$DarkChocoboScripts["Menu de Itens"]["Check"] = DC_Menu_de_Itens_Check.new
class Scene_Item < Scene_Base
  def return_scene
    @item_window.active = false
    @item_window.index = -1
    @command_window.active = true
  end
  alias dc_menu_de_itens_start start
  def start
    dc_menu_de_itens_start
    @item_window.active = false
    @command_window = Window_Command.new(544, ["Usar", "Descartar", "Organizar"], 3)
    @command_window.active = false
    @command_window.y = 112
    @command_window.height = 0
    @command_window.viewport = @viewport
    @category_window = Window_Command.new(544, $DarkChocoboScripts["Menu de Itens"]["Categorias"], $DarkChocoboScripts["Menu de Itens"]["Categorias"].size)
    @category_window.y = 56
    @item_window.y += 56
    @item_window.height -= 56
    @item_window.index = -1
    @item_window.refresh(@category_window.index)
  end
  alias dc_menu_de_itens_terminate terminate
  def terminate
    dc_menu_de_itens_terminate
    @category_window.dispose
    @command_window.dispose
  end
  alias dc_menu_de_itens_update update
  def update
    dc_menu_de_itens_update
    refresh_item_window = @category_window.index
    @category_window.update
    @item_window.refresh(@category_window.index) if refresh_item_window != @category_window.index
    @command_window.update
    if @category_window.active
      dc_update_category_selection
    elsif @command_window.active
      dc_update_command_selection
    end
  end
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      if @item != nil
        $game_party.last_item_id = @item.id
      end
      if @command_window.index == 0
        if $game_party.item_can_use?(@item)
          Sound.play_decision
          determine_item
        else
          Sound.play_buzzer
        end
      elsif @command_window.index == 1
        discart_item
      end
    end
  end
  def discart_item
    if @item_window.item == nil
      Sound.play_buzzer
      return
    end
    $game_party.gain_item(@item_window.item, -1)
    Audio.se_play("Audio/SE/Equip", 70, 100)
    @item_window.refresh(@category_window.index)
  end
  def dc_update_category_selection
    if Input.trigger?(Input::C)
      Sound.play_decision
      loop do
        Graphics.update
        @category_window.height -= $DarkChocoboScripts["Menu de Itens"]["Speed"]
        @command_window.height += $DarkChocoboScripts["Menu de Itens"]["Speed"]
        @command_window.y -= $DarkChocoboScripts["Menu de Itens"]["Speed"]
        break if @command_window.height >= 56 or @category_window.height <= 0
      end
      @command_window.height = 56
      @command_window.y = 56
      @command_window.active = true
      @category_window.height = 0
      @category_window.active = false
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Menu.new(0)
    end
  end
  def dc_update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      loop do
        Graphics.update
        @category_window.height += $DarkChocoboScripts["Menu de Itens"]["Speed"]
        @command_window.height -= $DarkChocoboScripts["Menu de Itens"]["Speed"]
        @command_window.y += $DarkChocoboScripts["Menu de Itens"]["Speed"]
        break if @command_window.height <= 0 or @category_window.height >= 56
      end
      @command_window.height = 0
      @command_window.y = 118
      @command_window.active = false
      @category_window.height = 56
      @category_window.active = true
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      case @command_window.index
      when 0, 1
        @item_window.active = true
        @item_window.index = 0
        @command_window.active = false
      when 2
        $game_party.dc_sort_items
        @item_window.refresh(@category_window.index)
      end
    end
  end
end
class Window_Item < Window_Selectable
  def refresh(index = nil)
    @data = []
    for item in $game_party.dc_item_order#items
      unless $scene.is_a?(Scene_Item)
        next unless include?(item)
        @data.push(item)
        next
      end
      if $DarkChocoboScripts["Menu de Itens"]["Check"].draw_item?(item, index)
        @data.push(item)
      end
      if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id then self.index = @data.size - 1 end
    end
    @data.push(nil) if include?(nil)
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
end
class Game_Party < Game_Unit
  alias dc_menu_de_itens_initialize initialize
  def initialize
    dc_menu_de_itens_initialize
    @dc_item_order = []
  end
  def dc_item_order
    return @dc_item_order
  end
  def gain_item(item, n, include_equip = false)
    number = item_number(item)
    case item
    when RPG::Item
      if @items[item.id] == 0 or @items[item.id] == nil then @dc_item_order.push(item) end
      @items[item.id] = [[number + n, 0].max, 99].min
      if @items[item.id] == 0 or @items[item.id] == nil then @dc_item_order.delete(item) end
    when RPG::Weapon
      if @weapons[item.id] == 0 or @weapons[item.id] == nil then @dc_item_order.push(item) end
      @weapons[item.id] = [[number + n, 0].max, 99].min
      if @weapons[item.id] == 0 or @weapons[item.id] == nil then @dc_item_order.delete(item) end
    when RPG::Armor
      if @armors[item.id] == 0 or @armors[item.id] == nil then @dc_item_order.push(item) end
      @armors[item.id] = [[number + n, 0].max, 99].min
      if @armors[item.id] == 0 or @armors[item.id] == nil then @dc_item_order.delete(item) end
    end
    n += number
    if include_equip and n < 0
      for actor in members
        while n < 0 and actor.equips.include?(item)
          actor.discard_equip(item)
          n += 1
        end
      end
    end
  end
  def dc_sort_items
    @dc_item_order = items
  end
end
Instrucciones:
1.- El script comenzará a funcionar en cuanto lo pongas sobre Main.
2.- Puedes renombrar las opciones en las líneas 33 a 36.
3.- Puedes configurar la velocidad con la que el menú pasa entre las categorias y las opciones (entre 1 y 5) en la línea 37.

Créditos:
Script creado por Dark Chocobo.
 
Mensajes
249
Reacciones
0
Puntos
0
Ubicación
me muevo
aqui tienes:

PHS (ESTILO: FF7)

Explicación (Dummy)
Esto ayuda para cambiar a los personajes que están en el banquillo por los que están activos en el juego. Este script resiste 8 personajes.

Explicacion (Inteligente)
Pues nada empiezas tu juego con un prota (1) ... blablabla ves a otro prota se une.
usas el evento agregar actor. lalalala. a medida que pasa el juego se unen 2 más
ya completaríamos los 4. ahora los cuatro que le siguen se van para el banquillo xDD
siempre usando el evento de agregar actor.
ya cuando tengas más de 4 y máximo 8.
Puedes llamar el PHS, para usar su función:

Código:
$scene = Scene_PHS.new

ahi veras estas Screens.

phs0jp9.jpg

phs1yd6.jpg

phs2vo9.jpg

phs3mv4.jpg


y bueno sales y sigues tu aventura...

Script:


Código:
#==============================================================================
# PHS (Sistema de llamada a cambio de pj`s)
#------------------------------------------------------------------------------
# Creado By: Alexus  
# Es la versión: v1.0 
# Info:
# Resiste: 8 pj 
# Prohibido: Sacar al prota inicial
#==============================================================================
class Game_Party
 #------------------------------ 
  attr_accessor :party_max
  attr_accessor :party_min
  attr_accessor :must_actors
 #------------------------------ 
  alias party_phs_initialize initialize
  def initialize
    party_phs_initialize
    @party_max = 4
    @party_min = 1
    @must_actors = [1]
  end
  def must_actor_include?(actor)
    return @must_actors.include?(actor.id)
  end
end

class Window_Comentario < Window_Base
#--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 30)
   end
 end
 
  
class Window_PHS_Select < Window_Selectable
  #--------------------------------------------------------------------------
  # - Inicializar Objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 96, 400, 450) 
    self.x = 240
    self.y = 30
    @party_cambio = party_cambio
    @item_max = party_cambio.size
    @column_max = 2
    self.contents = Bitmap.new(width - 32, row_max * 88)
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # Cambio
  #--------------------------------------------------------------------------
  def cambio
    return @party_cambio[self.index]
  end
  #--------------------------------------------------------------------------
  # Actor presionar? = cambio
  #--------------------------------------------------------------------------
  def party_cambio
    cambio = []
    cambio.push($game_actors[1])  
    cambio.push($game_actors[2])  if $game_switches[1]
    cambio.push($game_actors[3])  if $game_switches[2]
    cambio.push($game_actors[4])  if $game_switches[3]
    cambio.push($game_actors[5])  if $game_switches[4]
    cambio.push($game_actors[6])  if $game_switches[5]
    cambio.push($game_actors[7])  if $game_switches[6]
    cambio.push($game_actors[8])  if $game_switches[7]
    return cambio
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@party_cambio.size
      draw_cambio(i)
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def draw_cambio(index)
    actor = @party_cambio[index]
    x = 4 + index % @column_max * (500 / @column_max) # 640
    y = index / @column_max * 88
    if $game_party.must_actor_include?(actor)
      color = text_color(3)
      opacity = 255
    elsif $game_party.actors.include?(actor)
      color = normal_color
      opacity = 255
    else
      color = disabled_color
      opacity = 128
    end
    self.contents.font.color = color
    self.contents.draw_text(x, y, 120, 32, actor.name)
    bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
    cw = bitmap.width / 4
    ch = bitmap.height / 4
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x+32 - cw / 2, y+64+16 - ch, bitmap, src_rect, opacity)
  end # x + 32
  #--------------------------------------------------------------------------
  # Row Maximo
  #--------------------------------------------------------------------------
  def row_max
    return (@item_max + @column_max - 1) / @column_max 
  end
  #--------------------------------------------------------------------------
  # Tope (Row)
  #--------------------------------------------------------------------------
  def top_row
    return self.oy / 88
  end
  #--------------------------------------------------------------------------
  # Row
  #--------------------------------------------------------------------------
  def top_row=(row)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
      if row < 0
        row = 0
      end
    end
    self.oy = row * 88
  end
  #--------------------------------------------------------------------------
  # Row Maximo
  #--------------------------------------------------------------------------
  def page_row_max
    return (self.height - 32) / 88  #32) / 88
  end
  #--------------------------------------------------------------------------
  # Updatear Cursor
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    cursor_width = 200 / @column_max # 512
    x = @index % @column_max * (cursor_width + 150)#(640 / @column_max) # 32
    y = @index / @column_max * 88 - self.oy # 88
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
end

class Window_PHS_Cambio< Window_Base
  #--------------------------------------------------------------------------
  # - Inicializar Objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 96, 240, 450)#(0, 0, 640, 96)
    self.y = 30
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # Refrescar
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
    x = 8 # 94
    y = i * 110
    actor = $game_party.actors[i]
    draw_actor_name(actor, x, y)
    draw_actor_class(actor, x + 80, y)
    draw_actor_level(actor, x, y + 18)
    draw_actor_state(actor, x + 200, y)
    draw_actor_hp(actor, x, y + 38)
    draw_actor_sp(actor, x, y + 58)
  end
end
  #--------------------------------------------------------------------------
  # Dibujar Cambio
  #--------------------------------------------------------------------------
  def draw_cambio(index)
    actor = $game_party.actors[index]
    x = 4 + index * (640 / $game_party.party_max)
    y = 0
    draw_actor_graphic(actor, 48, y + 65)
  end
end

class Window_PHS_Status < Window_Base
  #--------------------------------------------------------------------------
  # - Inicializar Objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 288, 640, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh(actor)
    self.contents.clear
    draw_actor_name(actor, 4, 0)
    draw_actor_class(actor, 4 + 144, 0)
    draw_actor_level(actor, 4, 32)
    draw_actor_state(actor, 4 + 72, 32)
    draw_actor_hp(actor, 4, 64, 172)
    draw_actor_sp(actor, 4, 96, 172)
    draw_actor_parameter(actor, 218, 32, 0)
    draw_actor_parameter(actor, 218, 64, 1)
    draw_actor_parameter(actor, 218, 96, 2)
    draw_actor_parameter(actor, 430, 32, 3)
    draw_actor_parameter(actor, 430, 64, 4)
    draw_actor_parameter(actor, 430, 96, 5)
    draw_actor_parameter(actor, 430, 128, 6)
    
  end
end

class Scene_PHS
  #--------------------------------------------------------------------------
  # - Inicializar Scene
  #--------------------------------------------------------------------------
  def main
    @comentario_window = Window_Comentario.new
    @main_window = Window_PHS_Select.new
    @change_window = Window_PHS_Cambio.new
    @status_window = Window_PHS_Status.new
    @status_window.opacity = 192
    @status_window.z += 10
    @show_index = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @comentario_window.dispose
    @main_window.dispose
    @change_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # Updatear
  #--------------------------------------------------------------------------
  def update
    @main_window.update
    if @status_window.visible and @show_index != @main_window.index
      status_window_position
      @status_window.refresh(@main_window.cambio)
      @show_index = @main_window.index
    end
    if Input.trigger?(Input::B)
      if $game_party.actors.size < $game_party.party_min
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      if $game_party.must_actor_include?(@main_window.cambio)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if $game_party.actors.include?(@main_window.cambio)
        $game_party.remove_actor(@main_window.cambio.id)
      else
        if $game_party.actors.size == $game_party.party_max
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_party.add_actor(@main_window.cambio.id)
      end
      $game_system.se_play($data_system.decision_se)
      @main_window.refresh
      @change_window.refresh
      return
    end
    if Input.trigger?(Input::A)
      #$game_system.se_play($data_system.decision_se)
      if @status_window.visible
        @status_window.visible = false
      else
        status_window_position
        @status_window.refresh(@main_window.cambio)
        @status_window.visible = false
        @show_index = @main_window.index
      end
      return
    end
  end
  def status_window_position
    if @main_window.cursor_rect.y < 176
      @status_window.y = 288
    else
      @status_window.y = 96
    end
  end
end

Arreglado el script... ahora en vez de usar el evento agregar actor debes activar el swith 1 a 8 para que se agrege al PHS.
cada switch del 1 al 8 sera para un personaje (No incluye el prota inicial)
si quieres que el prota se vaya a los activos y salga el char en el PHS
debes activar el switch y agregar actor xD

Creditos: Alexus

cya!

Oye, yo hice un objeto para que funcionara, le puse un evento comun en que llamo el script, pero cuando pongo el objeto, solo me sale un personaje, intente usar todos los botones del teclado, y solo el X hace algo, me sale del menu ¿Cómo soluciono esto?
 
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
Oye, yo hice un objeto para que funcionara, le puse un evento comun en que llamo el script, pero cuando pongo el objeto, solo me sale un personaje, intente usar todos los botones del teclado, y solo el X hace algo, me sale del menu ¿Cómo soluciono esto?

n_n solo create un evento y busca la opción llamar script... en ella pones esto:

$scene = Scene_PHS.new

y listo...
 
Mensajes
9.007
Reacciones
224
Puntos
0
Ubicación
00 Qan[T]
GoldenSun Intro Script v1.2

screengs.jpg


screengs2.jpg


este script te permite que al iniciar el juego tenga un pequeña presentación al estilo GoldenSun xD


Código:
#==============================================================================
# Main
#==============================================================================

begin
# to have full screen true, to not false
  Full_Screen = true
  
case Full_Screen
when true
  $showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), ''
$showm.call(18,0,0,0)
$showm.call(13,0,0,0)
$showm.call(13,0,2,0)
$showm.call(18,0,2,0)
end
# Font used in windows
$defaultfonttype = $fontface = $fontname = Font.default_name = "Tahoma"
# Font size used
$defaultfontsize = $fontsize = Font.default_size =  22
# トランジション準備
Graphics.freeze
# シーンオブジェクト (タイトル画面) を作成
$scene = Scene_Title.new
# $scene が有効な限り main メソッドを呼び出す
while $scene != nil
$scene.main
  end
# フェードアウト
Graphics.transition(20)
rescue Errno::ENOENT
# 例外 Errno::ENOENT を補足
# ファイルがオープンできなかった場合、メッセージを表示�
�て終了する
  filename = $!.message.sub("No such file or directory - ", "")
  print("File #{filename} not found.")
end


=begin
=============================================================
Golden sun intro script v1.2 By AZZY9
=============================================================
if you would like to use any of my scripts please give credit
  
Since there have been requests, i have made a Golden Sun
Intro.
Note : the menu only appears if there is a save game, if
there isnt then straight after the intro it would begin a
new game automatically as it does in the real game.

New features
  I have created a erase save game script which is working in this
  edited window skin to make it more golden sun like
  better icon
  
Problems
  When you copy a save game, the duration of you selecting it will be added onto the time of the saved
  game that you will create by copying


If you would like yo import this script into your game this is how you do it.
                         WARNING! MAY INTERFEAR WITH OTHER SCRIPTS
1. Replace scripts "Main" and "Scene_Load" in your game with the one in the script
2. Delete the script called "Scene_title"
3. copy the script "Golden Sun Intro" into your game above main.
4. copy the script "Scene_Copy" and "Scene_Erase" into your game above main.
5. copy the contents of "\Golden sun intro\Graphics\Pictures\" into your game's directory
6. copy the contents of "\Golden sun intro\Audio\BGM" into your game's directory
7. copy the contents of "\Golden sun intro\Audio\SE" into your game's directory
=end

class Scene_Title

  def main

    if $BTEST
      battle_test
      return
    end

    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")

    $game_system = Game_System.new

    
    @Background = Sprite.new
     @Background.bitmap = RPG::Cache.picture("Nintendo")
     Audio.se_play("Audio/SE/" + "Start", 100, 100)
    @Background.opacity = 255
    @Background_c = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @Background.dispose
      Audio.bgm_stop
  end
end
  def update
    @Background.update
    @Background_c = (@Background_c + 1)
  case @Background_c  
when 50
@Background.bitmap = RPG::Cache.picture("Blank")
@Background.opacity = 255
when 60
@Background.bitmap = RPG::Cache.picture("CSP")
@Background.opacity = 255
when 110
@Background.bitmap = RPG::Cache.picture("Blank")
@Background.opacity = 255
Audio.bgm_play("Audio/BGM/" + "Intro", 100, 100)
when 120
@Background.bitmap = RPG::Cache.picture("Main")
@Background.opacity = 255
when 150
@Background.bitmap = RPG::Cache.picture("Mains")
@Background.opacity = 255
when 180
@Background_c = 119
end
    if Input.trigger?(Input::C)
   for i in 0..3
    if FileTest.exist?("Save#{i+1}.sav")
    @continue_enabled = true
    end
end
if @continue_enabled
    $scene = Menubgm.new
    else
$scene = Menunew.new
    end
  end
end

#============================================================
class Menubgm
  def main
Audio.bgm_play("Audio/BGM/" + "Menu", 100, 100)
    $scene = Menu.new
  end
end

class Menunew
def main

      $game_system.se_play($data_system.decision_se)
    Audio.bgm_stop
    Graphics.frame_count = 0
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    $game_party.setup_starting_members
    $game_map.setup($data_system.start_map_id)
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $game_map.autoplay
    $game_map.update
    $scene = Scene_Map.new
  end
end
#============================================================

  class Menu

  def main

    @Background = Sprite.new
     @Background.bitmap = RPG::Cache.picture("Newgames")
    @Background.opacity = 255
    @Background_c = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @Background.dispose
  end
  def update
    @Background.update
    @Background_c = (@Background_c + 1)
  case @Background_c  
when 20
@Background.bitmap = RPG::Cache.picture("Newgame")
@Background.opacity = 255
when 40
@Background.bitmap = RPG::Cache.picture("Newgames")
@Background.opacity = 255
when 60
@Background_c = 19
end
    if Input.trigger?(Input::C)
$scene = Menunew.new
Audio.bgm_stop
end
if Input.trigger?(Input::RIGHT)
$scene = Continue.new
    end
  end
  end

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

  class Continue

  def main

    @Background = Sprite.new
    @Background.bitmap = RPG::Cache.picture("Continues")
    @Background.opacity = 255
    @Background_c = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @Background.dispose
  end
  def update
    @Background.update
    @Background_c = (@Background_c + 1)
  case @Background_c  
when 20
@Background.bitmap = RPG::Cache.picture("Continue")
@Background.opacity = 255
when 40
@Background.bitmap = RPG::Cache.picture("Continues")
@Background.opacity = 255
when 60
@Background_c = 19
end
    if Input.trigger?(Input::C)
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Load.new
end
if Input.trigger?(Input::LEFT)
$scene = Menu.new
end
if Input.trigger?(Input::RIGHT)
$scene = Copy.new
    end
  end
  end


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

  class Copy

  def main

    @Background = Sprite.new
     @Background.bitmap = RPG::Cache.picture("Copys")
    @Background.opacity = 255
    @Background_c = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @Background.dispose
  end
  def update
    @Background.update
    @Background_c = (@Background_c + 1)
  case @Background_c  
when 20
@Background.bitmap = RPG::Cache.picture("Copy")
@Background.opacity = 255
when 40
@Background.bitmap = RPG::Cache.picture("Copys")
@Background.opacity = 255
when 60
@Background_c = 19
end
    if Input.trigger?(Input::C)
$scene = Scene_Copy.new
end
if Input.trigger?(Input::LEFT)
$scene = Continue.new
end
if Input.trigger?(Input::RIGHT)
$scene = Erase.new
    end
  end
      end

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

  class Erase

  def main

    @Background = Sprite.new
     @Background.bitmap = RPG::Cache.picture("Erases")
    @Background.opacity = 255
    @Background_c = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @Background.dispose
  end
  def update
    @Background.update
    @Background_c = (@Background_c + 1)
  case @Background_c  
when 20
@Background.bitmap = RPG::Cache.picture("Erase")
@Background.opacity = 255
when 40
@Background.bitmap = RPG::Cache.picture("Erases")
@Background.opacity = 255
when 60
@Background_c = 19
end
if Input.trigger?(Input::C)
    $scene = Scene_Erase.new
end
if Input.trigger?(Input::LEFT)
$scene = Copy.new
end
end
end

  def battle_test

    $data_actors        = load_data("Data/BT_Actors.rxdata")
    $data_classes       = load_data("Data/BT_Classes.rxdata")
    $data_skills        = load_data("Data/BT_Skills.rxdata")
    $data_items         = load_data("Data/BT_Items.rxdata")
    $data_weapons       = load_data("Data/BT_Weapons.rxdata")
    $data_armors        = load_data("Data/BT_Armors.rxdata")
    $data_enemies       = load_data("Data/BT_Enemies.rxdata")
    $data_troops        = load_data("Data/BT_Troops.rxdata")
    $data_states        = load_data("Data/BT_States.rxdata")
    $data_animations    = load_data("Data/BT_Animations.rxdata")
    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
    $data_system        = load_data("Data/BT_System.rxdata")
    
    Graphics.frame_count = 0
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    $game_party.setup_battle_test_members
    $game_temp.battle_troop_id = $data_system.test_troop_id
    $game_temp.battle_can_escape = true
    $game_map.battleback_name = $data_system.battleback_name
    $game_system.se_play($data_system.battle_start_se)
    $game_system.bgm_play($game_system.battle_bgm)
    $scene = Scene_Battle.new
  end


#==============================================================================
#  Copy save Files By AZZY9 V1.0
#==============================================================================

class Scene_Copy < Scene_File
  def initialize
    $game_temp = Game_Temp.new
    $game_temp.last_file_index = 0
    latest_time = Time.at(0)
    for i in 0..3
      filename = make_filename(i)
      if FileTest.exist?(filename)
        file = File.open(filename, "r")
        if file.mtime > latest_time
          latest_time = file.mtime
          $game_temp.last_file_index = i
        end
        file.close
      end
    end
    super("Copy from which file")
  end
  def on_decision(filename)
    unless FileTest.exist?(filename)
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.load_se)
    file = File.open(filename, "rb")
    read_save_data(file)
    file.close
    $scene = Scene_Copy2.new
  end
  def on_cancel
    $scene = Copy.new
  end
  def read_save_data(file)
    characters = Marshal.load(file)
    Graphics.frame_count = Marshal.load(file)
    $game_system        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables     = Marshal.load(file)
    $game_self_switches = Marshal.load(file)
    $game_screen        = Marshal.load(file)
    $game_actors        = Marshal.load(file)
    $game_party         = Marshal.load(file)
    $game_troop         = Marshal.load(file)
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
  end
end


class Scene_Copy2 < Scene_File
  def initialize
    super("Copy to which file?")
  end
  def on_decision(filename)
    $game_system.se_play($data_system.save_se)
    file = File.open(filename, "wb")
    write_save_data(file)
    file.close
    if $game_temp.save_calling
      $game_temp.save_calling = false
      $scene = Scene_Copy.new
      return
    end
    $scene = Scene_Copy.new
  end
  def on_cancel
    $game_system.se_play($data_system.cancel_se)
    if $game_temp.save_calling
      $game_temp.save_calling = false
      return
    end
    $scene = Copy.new
  end
  def write_save_data(file)
    characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      characters.push([actor.character_name, actor.character_hue])
    end
    Marshal.dump(characters, file)
    Marshal.dump(Graphics.frame_count, file)
    $game_system.save_count += 1
    $game_system.magic_number = $data_system.magic_number
    Marshal.dump($game_system, file)
    Marshal.dump($game_switches, file)
    Marshal.dump($game_variables, file)
    Marshal.dump($game_self_switches, file)
    Marshal.dump($game_screen, file)
    Marshal.dump($game_actors, file)
    Marshal.dump($game_party, file)
    Marshal.dump($game_troop, file)
    Marshal.dump($game_map, file)
    Marshal.dump($game_player, file)
  end
end

#==============================================================================
#  Erase save Files By AZZY9 V1.0
#==============================================================================

class Scene_Erase < Scene_File
  def initialize
    $game_temp = Game_Temp.new
    $game_temp.last_file_index = 0
    latest_time = Time.at(0)
    for i in 0..3
      filename = make_filename(i)
if FileTest.exist?(filename)
        file = File.open(filename, "r")
        if file.mtime > latest_time
          latest_time = file.mtime
          $game_temp.last_file_index = i
        end
        file.close
      end
    end
    super("Erase which file")
  end
  def on_decision(filename)
    unless FileTest.exist?(filename)
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.load_se)
    File.delete(filename)
  $scene = Scene_Erase.new
  end
  def on_cancel
    $scene = Erase.new
  end
end

#==============================================================================
#  Scene_Load
#==============================================================================

class Scene_Load < Scene_File
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    # テンポラリオブジェクトを再作成
    $game_temp = Game_Temp.new
    # タイムスタンプが最新のファイルを選択
    $game_temp.last_file_index = 0
    latest_time = Time.at(0)
    for i in 0..3
      filename = make_filename(i)
      if FileTest.exist?(filename)
        file = File.open(filename, "r")
        if file.mtime > latest_time
          latest_time = file.mtime
          $game_temp.last_file_index = i
        end
        file.close
      end
    end
    super("Load from which file")
  end
  #--------------------------------------------------------------------------
  # ● 決定時の処理
  #--------------------------------------------------------------------------
  def on_decision(filename)
    # ファイルが存在しない場合
    unless FileTest.exist?(filename)
      # ブザー SE を演奏
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # ロード SE を演奏
    $game_system.se_play($data_system.load_se)
    # セーブデータの書き込み
    file = File.open(filename, "rb")
    read_save_data(file)
    file.close
    # BGM、BGS を復帰
    $game_system.bgm_play($game_system.playing_bgm)
    $game_system.bgs_play($game_system.playing_bgs)
    # マップを更新 (並列イベント実行)
    $game_map.update
    # マップ画面に切り替え
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ● キャンセル時の処理
  #--------------------------------------------------------------------------
  def on_cancel
    # キャンセル SE を演奏
    $game_system.se_play($data_system.cancel_se)
    # タイトル画面に切り替え
    $scene = Menubgm.new
  end
  #--------------------------------------------------------------------------
  # ● セーブデータの読み込み
  #     file : 読み込み用ファイルオブジェクト (オープン済み)
  #--------------------------------------------------------------------------
  def read_save_data(file)
    # セーブファイル描画用のキャラクターデータを読み込む
    characters = Marshal.load(file)
    # プレイ時間計測用のフレームカウントを読み込む
    Graphics.frame_count = Marshal.load(file)
    # 各種ゲームオブジェクトを読み込む
    $game_system        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables     = Marshal.load(file)
    $game_self_switches = Marshal.load(file)
    $game_screen        = Marshal.load(file)
    $game_actors        = Marshal.load(file)
    $game_party         = Marshal.load(file)
    $game_troop         = Marshal.load(file)
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
    if $game_system.magic_number != $data_system.magic_number
      # マップをリロード
      $game_map.setup($game_map.map_id)
      $game_player.center($game_player.x, $game_player.y)
    end
    $game_party.refresh
  end
end

demo:
http://www.megaupload.com/?d=XO5S597W

mirror:
http://rapidshare.com/files/23171085/Golden_sun_intro_v1.2.zip.html
 
Estado
Cerrado para nuevas respuestas
Arriba Pie