¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [XP] Cambio de personajes en el grupo el Jue Jul 14, 2011 8:26 pm

~Doku


Nombre: Cambio de personajes en el grupo
Autor: GTOnizuka
Versión: 1.0.1

Explicación:
Este script hace que puedas cambiar los personajes de tu grupo y su posición, junto a la información de sus estados.

Instrucciones:
  1. Copiar el script encima de 'Main'.
  2. Para usarlo deben llamar el siguiente script:
    $scene = Cambia_Party.new
    Es aconsejable crear un evento en 'Proceso paralelo' y añadir:
    • 'Condiciones y efectos'
    • 'Pulsar tecla X (la que sea)'.
    • Llamar script: $scene = Cambia_Party.new
De esta manera, al pulsar dicha tecla podréis cambiar los personajes del grupo cuando queráis.

Imágenes:


Script:

Código:
###############################################################################
#                          Script di Cambio Party                            #
#                                                                            #
# Versione: 1.0.1                                                            #
# Creato ed Ideato da: GTOnizuka © 2006                                      #
###############################################################################
#                                                                            #
#                          Numero Massimo Personaggi: 9                      #
#                                                                            #
###############################################################################
#                                                                            #                                   
#  Features:                                                                  #
#    - Possibilità di cambiare i mebri del party con tutti i personaggi      #
#      del database                                                          #
#    - Non si può uscire dalla schermata se non c'è almeno un personaggio    #
#    - Il numero dei personaggi da aggiungere nel party si può decidere      #
#                                                                            #
#  Bug Fix:                                                                  #
#    - Corretto un piccolo bug che permetteva di selezionare più volte      #
#      lo stesso personaggio                                                #
#  Installazione: crea una classe sopra main e kiamala come ti pare e ci      #
#                inserisci dentro lo script. Per richiamare lo script devi  #
#                scrivere "$scene = Cambia_Party.new" senza virgolette.      #
#  (Istruzioni per installazione create da Obi-Wan [ma da qualke parte mi    #
#    kiamo nitrol1luigi])                                                    #
#                                                                            #
###############################################################################

####################
# Modulo variabili
####################
module Valori_Vari
HP = "HP:"                        #HP
MP = "MP:"                        #MP
NOME = "Nome:"                    #Nome
LIVELLO = "Livello:"              #Livello
EXP_LVL_UP = "Exp Lvl Up:"        #Esperienza al prossimo livello
STR = "STR:"                      #Forza
DEX = "DEX:"                      #Destrezza
AGI = "AGI:"                      #Agilità
INT = "INT:"                      #Intelligenza
ATK = "ATK:"                      #Attacco
PDEF = "PDEF:"                    #Difesa Fisica
MDEF = "MDEF:"                    #Difesa Magica
EVA = "EVA:"                      #Evasione
TITOLO = "Cambio Party"            #Titolo schermata
FONT_TYPE = "Arial"                #Font della schermata
NUMERO_PG = 8                      #Numero dei personaggi totali
NUM_PG_MIN = 1                    #Numero dei personaggi del party minimo...
                                #...per uscire dalla schermata
NUM_PG_MAX = 4                    #Numero dei personaggi che si possono...
                                #...inserire nella schermata
end

#################################
# Ottengo lo sprite del battler
#################################
class Fig_PG < RPG::Sprite
def initialize
 super()
end
def mostra_fig(id_pg,x,y)
 #Ottengo l'immagine
  @nome = $data_actors[id_pg].battler_name
  @tonalita = $data_actors[id_pg].battler_hue
  self.bitmap = RPG::Cache.battler(@nome, @tonalita)
  @width = bitmap.width
  @height = bitmap.height
  self.ox = @width / 2
  self.oy = @height
 #Setto l'opacità
  self.opacity = 255
 #Coordinate
 # Set sprite coordinates
  self.x = x
  self.y = y
  self.z = 100
end
def del_fig
  self.bitmap.dispose
end
end
           
###############################################
# Creo il riquadro con scritto "Cambio Party"
###############################################
class Nome_Finestra < Window_Base
def initialize
#Creo il riquadro
super(0,0,636,70)
#Settaggi di bitmap, nome font e dimensione font
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = Valori_Vari::FONT_TYPE
self.contents.font.size = 22
self.contents.font.bold = true
#Setto l'opacità della finestra
self.back_opacity = 255
#Pulisco il riquadro
self.contents.clear
#Imposto come colore del font quello di sistema
self.contents.font.color = normal_color
#Disegno la scritta
self.contents.draw_text(240, 0, 150, 30, Valori_Vari::TITOLO)
end
end

################################################
# Creo la schermata con i personaggi del party
################################################
class Party_Attuale < Window_Base
def initialize
 #Creo il riquadro
 super(0,71,160,180)
 #Settaggi di bitmap, nome font e dimensione font
 self.contents = Bitmap.new(width - 32, height - 32)
 self.contents.font.name = Valori_Vari::FONT_TYPE
 self.contents.font.size = 18
end
def add_pg(id_pg,x,y)
 draw_actor_graphic($game_actors[id_pg],x,y)
end
end

##############################################
# Creo la schermata con tutti i pg rimanenti
##############################################
class PG_Rimanenti < Window_Selectable
def initialize
 #Creo il riquadro
 super(161,71,476,180)
 #Settaggi di bitmap, nome font e dimensione font
 self.contents = Bitmap.new(width - 32, height - 32)
 self.contents.font.name = Valori_Vari::FONT_TYPE
 self.contents.font.size = 18
 #Disposizione Griglia
 @item_max = Valori_Vari::NUMERO_PG
 @row_max = 1
 @column_max = Valori_Vari::NUMERO_PG
end
def refresh
 self.contents.clear
 @x=20
 @y=55
 for i in 1..Valori_Vari::NUMERO_PG
  if (i==1)
    draw_actor_graphic($game_actors[i],@x,@y)
  elsif(i>=2 and i<=9)
    @x += 50
    draw_actor_graphic($game_actors[i],@x,@y)
  end
 end
end
def update_cursor_rect
if @index < 0
  self.cursor_rect.empty
else
  self.cursor_rect.set(@index * 50, 0, 40, 56)
end
end
end

#########################################################
# Crea la schermata con tutti i dati del pg selezionato
#########################################################
class Status_PG < Window_Base
def initialize
 #Creo il riquadro
 super(0,251,636,226)
 #Settaggi di bitmap, nome font e dimensione font
 self.contents = Bitmap.new(width - 32, height - 32)
 self.contents.font.name = Valori_Vari::FONT_TYPE
 self.contents.font.size = 18
 @pg_sprite=Fig_PG.new
end
def refresh(id_pg)
 self.contents.clear
 @altezza=0
 @sinistra_col1=200
 @sinistra_col2=400
 #Mostro la figura del pg
 @pg_sprite.mostra_fig($data_actors[id_pg].id,80,460)
 #Imposto il colore del font
 self.contents.font.color = normal_color
 #Scrivo le statistiche del pg
 ######################### COLONNA 1 ################################
 #Nome
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col1,@altezza,80,50,Valori_Vari::NOME)
 #Nome - Valore
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col1+105,@altezza,100,50,$data_actors[$data_actors[id_pg].id].name)
 #HP
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col1,@altezza+20,50,50,Valori_Vari::HP)
 #HP - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col1+80,@altezza+20,70,50,$game_actors[$data_actors[id_pg].id].hp.to_s,2)
 #MP
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col1,@altezza+40,50,50,Valori_Vari::MP)
 #MP - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col1+80,@altezza+40,70,50,$game_actors[$data_actors[id_pg].id].sp.to_s,2)
 #Livello
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col1,@altezza+60,100,50,Valori_Vari::LIVELLO)
 #Livello - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col1+100,@altezza+60,50,50,$game_actors[$data_actors[id_pg].id].level.to_s,2)
 #EXP Rimanente
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col1,@altezza+80,150,50,Valori_Vari::EXP_LVL_UP)
 #EXP Rimanente - Valore
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col1+50,@altezza+80,100,50,$data_actors[$data_actors[id_pg].id].exp_basis.to_s,2)
 ######################### COLONNA 2 ################################
 #Forza
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza,50,50,Valori_Vari::STR)
 #Forza - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza,100,50,$game_actors[$data_actors[id_pg].id].str.to_s,2)
 #Destrezza
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+20,50,50,Valori_Vari::DEX)
 #Destrezza - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+20,100,50,$game_actors[$data_actors[id_pg].id].dex.to_s,2)
 #Agilità
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+40,50,50,Valori_Vari::AGI)
 #Agilità - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+40,100,50,$game_actors[$data_actors[id_pg].id].agi.to_s,2)
 #Intelligenza
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+60,50,50,Valori_Vari::INT)
 #Intelligenza - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+60,100,50,$game_actors[$data_actors[id_pg].id].int.to_s,2)
 #Attacco
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+80,50,50,Valori_Vari::ATK)
 #Attacco - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+80,100,50,$game_actors[$data_actors[id_pg].id].atk.to_s,2)
 #Difesa Fisica
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+100,70,50,Valori_Vari::PDEF)
 #Difesa Fisica - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+100,100,50,$game_actors[$data_actors[id_pg].id].pdef.to_s,2)
 #Difesa Magica
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+120,70,50,Valori_Vari::MDEF)
 #Difesa Magica - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+120,100,50,$game_actors[$data_actors[id_pg].id].mdef.to_s,2)
 #Evasione
 self.contents.font.bold = true
 self.contents.draw_text(@sinistra_col2,@altezza+140,50,50,Valori_Vari::EVA)
 #Evasione - Numero
 self.contents.font.bold = false
 self.contents.draw_text(@sinistra_col2+15,@altezza+140,100,50,$game_actors[$data_actors[id_pg].id].eva.to_s,2)
end
def del_fig
 @pg_sprite.del_fig
end
end

#########################
# Inizializzazione Menù
#########################
class Cambia_Party
def initialize
 #Inizializzo la variabile dei membri del party
 @in_party=0
 #Inizializzo il vettore contentente l'id del personaggio che è già nel party
 @party=[nil,nil,nil,nil]
 #Inizializzo la variabile di ok per l'aggiunta
 @ok=0
end
def main
 #Tolgo tutti i personaggi dal party
 for i in 0...$game_party.actors.size
  $game_party.remove_actor($game_party.actors[i].id)
end
for i in 0...$game_party.actors.size
  $game_party.remove_actor($game_party.actors[i].id)
end
for i in 0...$game_party.actors.size
  $game_party.remove_actor($game_party.actors[i].id)
end
for i in 0...$game_party.actors.size
  $game_party.remove_actor($game_party.actors[i].id)
end
 
 #Creo le varie finestre e inizializzo la variabile di index
 @win_nome=Nome_Finestra.new
 @win_membri=Party_Attuale.new
 @win_altri_pg=PG_Rimanenti.new
 @win_altri_pg.index = 0
 @win_altri_pg.refresh
 @win_status=Status_PG.new
 
 #Effetto di transizione dalla schermata di scena alla schermata del menù
 Graphics.transition
 loop do
  Graphics.update
  Input.update
  update
  if $scene != self
    break
  end
 end
 #Cancellazione finestre
 @win_nome.dispose
 @win_membri.dispose
 @win_altri_pg.dispose
 @win_status.dispose
end
def update
 #Aggiorno le finestre
 @win_membri.update
 @win_altri_pg.update
 #Aggiorno la finestra di status del personaggio selezionato
 @win_status.refresh(@win_altri_pg.index+1)
 #Se il tasto è il Cancel e il numero dei personaggi minimi è stato raggiunto
 if Input.trigger?(Input::B) and @in_party>=Valori_Vari::NUM_PG_MIN
  #Cancella bitmap e...
  @win_status.del_fig
  #..torna alla scena che ha chiamato questo menu
  $scene = Scene_Map.new
 #Altrimenti se è il tasto Ok e il numero dei personaggi aggunti è minore
 #del massimo permesso
 elsif Input.trigger?(Input::C) and @in_party<Valori_Vari::NUM_PG_MAX
  #Controllo se è già presente nel party(per evitare i doppioni)
  for i in 0..4
    if(@win_altri_pg.index == @party[i])
      @ok=0
      break
    else
      @ok=1
    end
  end
  #Quindi se è tutto ok aggiungo il personaggio alla schermata
  #sistemando le coordinate per lo sprite
  if @ok == 1
    case @in_party
      when 0
        @x = 20
        @y = 55
      when 1
        @x = 100
        @y = 55
      when 2
        @x = 20
        @y = 130
      when 3
        @x = 100
        @y = 130
      end
      #Disegno il personaggio
      @win_membri.add_pg(@win_altri_pg.index+1,@x,@y)
      #Lo aggiungo nel party
      $game_party.add_actor(@win_altri_pg.index+1)
      #Lo aggiungo al vettore del party
      @party[@in_party] = @win_altri_pg.index
      #Aggiorno la variabile del numero dei personaggi nel party
      @in_party += 1
  end
 end
end
end

Saludos.

#2 Re: [XP] Cambio de personajes en el grupo el Sáb Jul 16, 2011 6:13 pm

D.A.C.

avatar
¡Un script muy útil! Lo he corregido y añadido al Índice de scripts. Queda pendiente su traducción en castellano, ya que el menú del cambio de personajes estará íntegramente en italiano (como 'Nome' o 'Livello'). [+15 Makedas]

#3 Re: [XP] Cambio de personajes en el grupo el Mar Feb 28, 2012 4:11 pm

cloudstrife108

avatar
Este script esta muy bueno, pero sabes que tendria que cambiarle para que se mantenga el protagonista en el grupo y se puedan cambiar solo los demas personajes. Estoy buscando hace rato un script asi y este esta muy cerca.

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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