¿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.
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!