Arisete™

Creator
Veteran
Joined
Jul 14, 2012
Messages
231
Reaction score
63
First Language
English
Primarily Uses
RMMV
/CLOSE

SOLVED.
 
Last edited by a moderator:

MooshraKun

Making Dreams Stand Up
Veteran
Joined
Jul 11, 2012
Messages
238
Reaction score
11
First Language
Lokota
The closest I can think of is this mod by Xypher. There is an array that you input number according to actor ID so jus make a female and a male actor input their ID into he array and there you go! I know this isn't exactly what you are looking for. but might close to being a place holder for now.
 

#==============================================================================
# +++ MOG - Scene Character Select V1.0 +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Tela de seleção de personagens.
#==============================================================================
# 1 - Deverão conter as seguintes imagens na pasta GRAPHICS/SYSTEM.
#
# Background
# Char_Layout01
# Char_Layout02
# Char_Status_Layout
# Number_Char
#
# 2 - Imagem de pose. (Opcional)
# Para ativar a imagem de pose dos personagens, basta ter os arquivos de pose
# gravados na pasta (GRAPHICS/PICTURES)
# Você deverá nomear as imagens da seguinte forma.
#
# Character + ID_DO_PERSONAGEM
#
# Exemplo:
#
# Character1.png
#
#==============================================================================
# Para chamar o script use o seguinte comando.
#
# SceneManager.call(Scene_Character_Select)
#
#==============================================================================
# Edited by Xypher
#
# Change the array in the below module to include the actor's you want
# in the character select scene.
#
#==============================================================================

module CS_Setup
 
  Actors_array = [1, 2,]  
 
end


#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
 
  #--------------------------------------------------------------------------
  # ● draw_picture_number(x,y,value,file_name,align, space, frame_max ,frame_index)      
  #--------------------------------------------------------------------------
  # X - Posição na horizontal
  # Y - Posição na vertical
  # VALUE - Valor Numérico
  # FILE_NAME - Nome do arquivo
  # ALIGN - Centralizar 0 - Esquerda 1- Centro 2 - Direita  
  # SPACE - Espaço entre os números.
  # FRAME_MAX - Quantidade de quadros(Linhas) que a imagem vai ter.
  # FRAME_INDEX - Definição do quadro a ser utilizado.
  #--------------------------------------------------------------------------  
  def draw_picture_number(x,y,value, file_name,align = 0, space = 0, frame_max = 1,frame_index = 0)      
          number_image = Cache.system(file_name)
          frame_max = 1 if frame_max < 1
          frame_index = frame_max -1 if frame_index > frame_max -1
          align = 2 if align > 2
          cw = number_image.width / 10
          ch = number_image.height / frame_max
          h = ch * frame_index
          number = value.abs.to_s.split(//)
          case align
                  when 0
                         plus_x = (-cw + space) * number.size
                  when 1
                         plus_x = (-cw + space) * number.size
                         plus_x /= 2
                  when 2  
                         plus_x = 0
          end
          for r in 0..number.size - 1      
                  number_abs = number[r].to_i
                  number_rect = Rect.new(cw * number_abs, h, cw, ch)
                  self.contents.blt(plus_x + x + ((cw - space) * r), y , number_image, number_rect)             
          end
          number_image.dispose  
   end
  #--------------------------------------------------------------------------
  # ● draw_char_window_status  
  #--------------------------------------------------------------------------  
  def draw_char_window_status(x,y)
          image = Cache.system("Char_Status_Layout")    
          cw = image.width  
          ch = image.height
          src_rect = Rect.new(0, 0, cw, ch)     
          self.contents.blt(x , y , image, src_rect)
          image.dispose
  end    
end  

#===============================================================================
# ■ RPG_FileTest
#===============================================================================
module RPG_FileTest
 
  #--------------------------------------------------------------------------
  # ● RPG_FileTest.system_exist?
  #--------------------------------------------------------------------------
  def RPG_FileTest.system_exist?(filename)
          return Cache.system(filename) rescue return false
  end  
 
  #--------------------------------------------------------------------------
  # ● RPG_FileTest.picture_exist?
  #--------------------------------------------------------------------------
  def RPG_FileTest.picture_exist?(filename)
          return Cache.picture(filename) rescue return false
  end   
 
end

#==============================================================================
# ** Window_Character_Status
#==============================================================================
class Window_Character_Status < Window_Base
  attr_accessor :index
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------
  def initialize(actor)
          super(0, 0, 400, 130)
          self.opacity = 0
          actor_id = []
          @index = actor
          CS_Setup::Actors_array.each do |i|
                actor_id.push($game_actors)
          end
          @actor = actor_id[actor -1]
          refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
          self.contents.clear
          self.contents.font.bold = true
          self.contents.font.italic = true
          draw_char_window_status(0, 6)
          draw_actor_face(@actor, 0, 0)
          draw_actor_name(@actor, 140, -5)
          draw_actor_class(@actor, 60, 70)      
          draw_picture_number(155,20,@actor.mhp, "Number_char",1)   
          draw_picture_number(145,48,@actor.mmp, "Number_char",1)       
          draw_picture_number(228,28,@actor.atk, "Number_char",1)   
          draw_picture_number(297,28,@actor.def, "Number_char",1)  
          draw_picture_number(207,68,@actor.mat, "Number_char",1)  
          draw_picture_number(277,68,@actor.agi, "Number_char",1)  
  end
end


#==============================================================================
# ■ Scene Character Select
#==============================================================================
class Scene_Character_Select
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------
 def initialize
         setup
         create_layout
         create_window_status
         create_char_image
         reset_position(0)        
 end
   
 #--------------------------------------------------------------------------
 # ● Setup
 #--------------------------------------------------------------------------
 def setup
         @char_index = 1
         @char_max = CS_Setup::Actors_array.size
         @pw_x = 300
         @aw_x = 200     
         @nw_x = 100             
 end  
 
 #--------------------------------------------------------------------------
 # ● Main
 #--------------------------------------------------------------------------              
 def main
         Graphics.transition
         execute_loop
         execute_dispose
 end   
 
 #--------------------------------------------------------------------------
 # ● Execute Loop
 #--------------------------------------------------------------------------               
 def execute_loop
         loop do
                  Graphics.update
                  Input.update
                  update
                  if SceneManager.scene != self
                          break
                  end
         end
 end
 
 #--------------------------------------------------------------------------
 # ● create_background
 #--------------------------------------------------------------------------   
 def create_layout
          @background = Plane.new  
          @background.bitmap = Cache.system("Background")
          @background.z = 0
          @layout_01 = Sprite.new  
          @layout_01.bitmap = Cache.system("Char_Layout01")
          @layout_01.z = 10       
          @layout_02 = Sprite.new  
          @layout_02.bitmap = Cache.system("Char_Layout02")
          @layout_02.blend_type = 1
          @layout_02.z = 1  
  end  
 
  #--------------------------------------------------------------------------
  # ● create_window_status
  #--------------------------------------------------------------------------  
  def create_window_status
          @window_status = []
          for i in 1..CS_Setup::Actors_array.size
                  @window_status = Window_Character_Status.new(i)
                  @window_status.z = 7
          end
          check_active_window
  end  
 
  #--------------------------------------------------------------------------
  # ● create_window_status
  #--------------------------------------------------------------------------  
  def create_char_image
          @actor_picture = []
          actor_id = []
          hrm = 1
#~         for i in 1..CS_Setup::Actors_array.size
                  CS_Setup::Actors_array.each do |i|
                  actor_id.push($game_actors)
                  actor = actor_id[i - 1]
                  @actor_picture[hrm] = Sprite.new
                  file_name = "Character" + i.to_s
                  file_name = "" unless RPG_FileTest.picture_exist?(file_name)
                  @actor_picture[hrm].bitmap = Cache.picture(file_name)
                  hrm += 1
          end   
          check_active_picture
  end
  #--------------------------------------------------------------------------
  # ● check_active_window
  #--------------------------------------------------------------------------   
  def check_active_window
         for i in 1..CS_Setup::Actors_array.size
                @pw = @char_index - 1
                @pw = 1 if @pw > @char_max
                @pw_y = 32
                @pw = @char_max if @pw < 1
                @aw = @char_index
                @aw_y = 160
                @nw = @char_index + 1
                @nw = 1 if @nw > @char_max
                @nw = @char_max if @nw < 1
                @nw_y = 288
                case @window_status.index
                        when @pw,@aw,@nw
                                 @window_status.visible = true
                        else
                                 @window_status.visible = false
                end
          end  
  end
        
  #--------------------------------------------------------------------------
  # ● check_active_picture  
  #--------------------------------------------------------------------------   
  def check_active_picture  
          for i in 1..CS_Setup::Actors_array.size
                case @window_status.index
                        when @pw,@aw,@nw
                                 @actor_picture.visible = true
                                 @actor_picture[@pw].z = 4
                                 @actor_picture[@aw].z = 6   
                                 @actor_picture[@nw].z = 4        
                                 @actor_picture[@pw].opacity = 120
                                 @actor_picture[@aw].opacity = 255
                                 @actor_picture[@nw].opacity = 120                      
                        else
                                 @actor_picture.visible = false
                end      
          end
  end     
 
  #--------------------------------------------------------------------------
  # ● terminate
  #--------------------------------------------------------------------------
  def execute_dispose
          RPG::BGM.fade(2500)
          Graphics.fadeout(60)
          Graphics.wait(40)
          RPG::BGM.stop   
          for i in 1..CS_Setup::Actors_array.size
                  @window_status.dispose
                  @actor_picture.bitmap.dispose
                  @actor_picture.dispose             
          end   
          @background.bitmap.dispose
          @background.dispose
          @layout_01.bitmap.dispose     
          @layout_01.dispose
          @layout_02.bitmap.dispose     
          @layout_02.dispose    
        end
        
  #--------------------------------------------------------------------------
  # ● update
  #--------------------------------------------------------------------------
  def update
          @background.ox += 1
          update_select
          update_slide_window
          update_slide_image
  end
 
  #--------------------------------------------------------------------------
  # ● update_slide_window
  #--------------------------------------------------------------------------  
  def update_slide_window
          @window_status[@aw].x += 1 if @window_status[@aw].x < 0
          @window_status[@nw].x -= 2 if @window_status[@nw].x > -30
          @window_status[@pw].x -= 2 if @window_status[@pw].x > -30
          slide_window_y(@pw,@pw_y)
          slide_window_y(@aw,@aw_y)
          slide_window_y(@nw,@nw_y)
  end
 
  #--------------------------------------------------------------------------
  # ● update_slide_image   
  #--------------------------------------------------------------------------  
  def update_slide_image   
          slide_picture_x(@pw,@pw_x,15)
          slide_picture_x(@aw,@aw_x,5)
          slide_picture_x(@nw,@nw_x,15)
  end
 
  #--------------------------------------------------------------------------
  # ● slide_picture_x
  #--------------------------------------------------------------------------   
  def slide_picture_x(i,x_pos,speed)
          if @actor_picture.x < x_pos
                 @actor_picture.x += speed
                 @actor_picture.x = x_pos if @actor_picture.x > x_pos
          end  
          if @actor_picture.x > x_pos
                 @actor_picture.x -= speed
                 @actor_picture.x = x_pos if @actor_picture.x < x_pos             
           end                   
  end    
 
  #--------------------------------------------------------------------------
  # ● slide_window_y
  #--------------------------------------------------------------------------   
  def slide_window_y(i,y_pos)
          if @window_status.y < y_pos
                 @window_status.y += 15
                 @window_status.y = y_pos if @window_status.y > y_pos
          end  
          if @window_status.y > y_pos
                 @window_status.y -= 15
                 @window_status.y = y_pos if @window_status.y < y_pos             
           end                   
  end   
 
  #--------------------------------------------------------------------------
  # ● reset_position
  #--------------------------------------------------------------------------    
  def reset_position(diretion)
          check_active_window
          check_active_picture
          case diretion
                 when 0
                        @window_status[@pw].y = -64
                        @actor_picture[@pw].x = 100
                 when 1  
                        @window_status[@nw].y = 440
                        @actor_picture[@nw].x = 400
          end           
  end  
 
  #--------------------------------------------------------------------------
  # ● update_select
  #--------------------------------------------------------------------------
  def update_select
           if Input.trigger?(Input::DOWN) or Input.trigger?(Input::LEFT)
                  Sound.play_cursor
                  @char_index += 1
                  @char_index = 1 if @char_index > @char_max
                  if @char_max < 3                
                         reset_position(0)
                  else  
                         reset_position(1)
                  end   
           elsif Input.trigger?(Input::UP) or Input.trigger?(Input::RIGHT)
                  Sound.play_cursor
                  @char_index -= 1
                  @char_index = @char_max if @char_index < 1
                  reset_position(0)
           elsif Input.trigger?(Input::C)        
                  Sound.play_ok
                  $game_party.add_actor(@char_index)
                  SceneManager.return
           end
  end
end  

$mog_rgss3_scene_character_select = true
 

Dark Paladin

Game Designer
Veteran
Joined
Jul 10, 2012
Messages
165
Reaction score
10
First Language
English
Primarily Uses
RMMV
your dropbox gives a 404 error
 

Arisete™

Creator
Veteran
Joined
Jul 14, 2012
Messages
231
Reaction score
63
First Language
English
Primarily Uses
RMMV
Nvm, this can be closed. I got it solved.
I just forgot to post that this was solved.

/CLOSE
 

Latest Threads

Latest Posts

Latest Profile Posts

Awright ya marshmallows! :kaopride: Here's a peek of what Alice's 8-bit Gothic gonna be like! EXPECT IT! (...in 2025?) :kaoswt:

alice_gothictiles.png
SF_People3_4 added!
index.php

Finds notes for an old side project... Oh, that's right, the two tracks that sounded really cool and gave inspiration for the big bad in that game... Spends day working on cutscene from old notes, looks okay, now lets slot in the first track... um... I did have those tracks??? It was a year or so ago but I did buy them didn't I?
CA9mtHJ.gif

Everything is really confusing for me

Forum statistics

Threads
118,602
Messages
1,117,219
Members
155,672
Latest member
gruponconecta
Top