Tela de Seleção Custom Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Tela de Seleção Custom

2 participantes

Ir para baixo

Tela de Seleção Custom Empty Tela de Seleção Custom

Mensagem por Merim Seg Nov 18, 2024 8:45 pm

Introdução 
O tela de seleção é bem simples de customizar , apesar de simples creio que dê para fazer algo legal 

Sobre o Script 
- O script modifica cores e layout em geral 
-Chars Centralizados 
-Coloca mais 2 slots totalizando 5 Slots (padrão é 3 )
Tudo por código não requer mudança gráfica na pasta System ,(UseChar.PNG) dispensa isso
Você pode modificar as cores por RGB , True ou False para ativar ou desativar o que bem entender
Antes de tudo faça um backup do seu projeto
Printscreen
Tela de Seleção Custom Printu10
Aqui está completa com fundo ,fase, sprite , barra, cor fundo dos nos nomes
Tela de Seleção Custom Prints10
Aqui está sem a barra do topo na seleção , ambas as barras de seleção são ativar ou desativar e podem ser trocadas de cor
Tela de Seleção Custom Prints11
Aqui sem o fundo nas faces
Tela de Seleção Custom Prints12
Aqui só os sprites , sem a face , sem fundo  e sem a barra do topo
Tela de Seleção Custom Printf10
aqui só as faces , sem fundo e sem sprite 
Tela de Seleção Custom Printf11

Aqui só modifiquei o RGB da cor do fundo dos nomes 
Tela de Seleção Custom Printm10
Aqui alterei a cor do fundo ...bem como podem ver é custom ... dá para brincar  Very Happy
E modificar outras coisas porém fique a seu critério

MUDANÇAS


1- Vamos ao script [VS]  Configs  em  # Quantidade máxima de heróis por conta coloque o número '5'
>>> MAX_ACTORS = 5


2- Procure pelo script de nome [VS]Window_UseChar e substitua ele todo por esse script abaixo
Código:
#==============================================================================
# ** Window_UseChar
#------------------------------------------------------------------------------
#  Esta classe lida com a janela de seleção de personagens.
#------------------------------------------------------------------------------
#  Autor: Valentine       Mod: Merim
#==============================================================================

# Configurações
SHOW_FACES = true        # Mostrar faces
SHOW_SPRITES = true      # Mostrar sprites
SHOW_SLOT_BACKGROUND = true  # Mostrar fundo dos slots
SHOW_TOP_BAR = true      # Mostrar barra superior
SHOW_BOTTOM_BAR = true   # Mostrar barra inferior
SLOT_BG_COLOR = Color.new(100, 100, 15)  # Cor de fundo dos slots

class Window_UseChar < Window_Base

  SLOT_WIDTH  = 96  # Tamanho do slot ajustado para 96x96 pixels
  SLOT_HEIGHT = 96  # Tamanho do slot ajustado para 96x96 pixels
  SLOT_MARGIN = 10
  NAME_BG_COLOR = Color.new(128, 0, 128)  # Cor de fundo ajustável para o nome
  NAME_TEXT_COLOR = Color.new(255, 255, 255)  # Cor do texto do nome em branco
  BAR_COLOR = Color.new(128, 0, 128)     # Cor da barra

  def initialize
    # Ajuste a largura e altura da janela para acomodar 5 slots
    super(adjust_x, adjust_y, SLOT_WIDTH * Configs::MAX_ACTORS + SLOT_MARGIN * (Configs::MAX_ACTORS - 1) + 60, 240)  # Ajuste na largura da janela
    self.closable = true
    self.title = Vocab::UseChar
    @create_button = Button.new(self, self.width - 120, 180, Vocab::Create, 97) { create_actor }  # Ajuste na posição do botão criar
    @play_button = Button.new(self, self.width - 120, 180, Vocab::Play, 97) { use_actor }  # Alinhar botão Entrar com o Criar
    @delete_button = Button.new(self, 20, 180, Vocab::Delete, 97) { remove_actor }
    @cursor_index = -1  # Índice inicial do cursor fora do slot
    refresh
  end

  def adjust_x
    Graphics.width / 2 - width / 2  # Centraliza a janela
  end

  def adjust_y
    Graphics.height / 2 - height / 2
  end

  def hide_window
    DataManager.back_login
  end

  def refresh
    contents.clear
    draw_slots if SHOW_SLOT_BACKGROUND  # Exibir slots conforme configuração
    Configs::MAX_ACTORS.times do |actor_id|
      x = 110 * actor_id + 8
      y = 40  # Desce as faces
      if $network.actors.has_key?(actor_id)
        draw_name_background(x, y - 35)  # Desce os nomes
        draw_text(x, y - 35, SLOT_WIDTH, line_height, $network.actors[actor_id].name, 1)  # Ajuste na posição e cor do texto
        draw_face($network.actors[actor_id].face_name, $network.actors[actor_id].face_index, x, y) if SHOW_FACES  # Face ajustada para centralizar
        draw_actor_graphic($network.actors[actor_id], x + SLOT_WIDTH / 2, y + SLOT_HEIGHT) if SHOW_SPRITES
      else
        draw_name_background(x, y - 35)  # Desce os nomes
        draw_text(x, y - 35, SLOT_WIDTH, line_height, Vocab::Empty, 1)  # Ajuste na posição e cor do texto
      end
    end
    draw_cursor_bar(110 * $actor_id + 8, 35) if SHOW_TOP_BAR  # Ajuste da barra roxa para ficar centralizada
    draw_bottom_bar(110 * $actor_id + 8, 137) if SHOW_BOTTOM_BAR  # Barra inferior ajustada mais para cima
    refresh_buttons
  end

  def draw_slots
    Configs::MAX_ACTORS.times do |slot_id|
      x = 110 * slot_id + SLOT_MARGIN
      y = 40  # Desce as faces
      draw_slot(x, y)
    end
  end

  def draw_slot(x, y)
    rect = Rect.new(x, y, SLOT_WIDTH, SLOT_HEIGHT)
    contents.fill_rect(rect, SLOT_BG_COLOR)  # Usa a cor configurada para o fundo do slot
  end

  def draw_name_background(x, y)
    bg_rect = Rect.new(x, y, SLOT_WIDTH, line_height)
    contents.fill_rect(bg_rect, NAME_BG_COLOR)
  end

  def draw_cursor_bar(x, y)
    rect = Rect.new(x + 8, y, SLOT_WIDTH - 16, 5)  # Ajuste da largura da barra roxa para 80 pixels e centralização
    contents.fill_rect(rect, BAR_COLOR)
  end

  def draw_bottom_bar(x, y)
    rect = Rect.new(x + 8, y, SLOT_WIDTH - 16, 5)  # Ajuste da largura da barra inferior para 80 pixels e centralização
    contents.fill_rect(rect, BAR_COLOR)
  end

  def cursor_color
    BAR_COLOR
  end

  def normal_color
    Color.new(200, 200, 200, 128)  # Fundo cinza claro
  end

  def refresh_buttons
    if $network.actors.has_key?($actor_id)
      @create_button.visible = false
      @play_button.visible = true
      @delete_button.visible = true
    else
      @create_button.visible = true
      @play_button.visible = false
      @delete_button.visible = false
    end
  end

  def remove_actor
    $windows[:password].show($actor_id)
  end

  def create_actor
    SceneManager.scene.change_background('Title3')
    $windows[:create_char].show($actor_id)
    $windows[:password].hide
    hide
  end

  def use_actor
    if Configs::LOADING_TIME == 0
      $network.send_use_actor($actor_id)
    else
      SceneManager.scene.change_background(Configs::LOADING_TITLES[rand(ConfigsLOADING_TITLES.size)])
      SceneManager.scene.config_icon.visible = false
      SceneManager.scene.loading_bar.visible = true
      $windows[:vip_time].hide
      $windows[:password].hide
      $windows[:config].hide
      hide
    end
  end

  def update
    super
    close_windows
    next_actor if Input.trigger?(:RIGHT)
    prev_actor if Input.trigger?(:LEFT)
    remove_actor if Input.trigger?(:DELETE) && $network.actors.has_key?($actor_id)
    ok if Input.trigger?(:C)
    update_cursor
  end

  def close_windows
    return unless Input.trigger?(:B)
    $windows[:config].hide
    $windows[:password].hide
    $windows[:alert].hide
  end

  def next_actor
    return if $actor_id == Configs::MAX_ACTORS - 1
    $actor_id += 1
    refresh
  end

  def prev_actor
    return if $actor_id == 0
    $actor_id -= 1
    refresh
  end

  def ok
    if !$network.actors.has_key?($actor_id)
      create_actor
    elsif $windows[:password].visible
      $windows[:password].delete
    elsif $windows[:alert].visible
      $windows[:alert].hide
    else
      use_actor
    end
  end

  def update_cursor
    return unless Mouse.click?(:L)
    Configs::MAX_ACTORS.times do |actor_id|
      if in_area?(110 * actor_id + 8, 40, SLOT_WIDTH, SLOT_HEIGHT)  # Ajuste do ponto de referência para a área de clique
        $actor_id = actor_id
        refresh
        break
      end
    end
  end

end


Qualquer bug ou algo do tipo favor reportar nesse post , até o presente momento não tive nenhum 
Grande abraço ! e bom desenvolvimento a todos.
Merim
Merim
Novato
Novato

Mensagens : 12
Créditos : 6

Valentine e Manticora gostam desta mensagem

Ir para o topo Ir para baixo

Tela de Seleção Custom Empty Re: Tela de Seleção Custom

Mensagem por Manticora Ter Nov 19, 2024 8:26 am

Ficou bem legal as mudanças na tela de seleção. Obrigado por compartilhar!
1+
Manticora
Manticora
Membro Ativo
Membro Ativo

Mensagens : 265
Créditos : 62

Ficha do personagem
Nível: 1
Experiência:
Tela de Seleção Custom Left_bar_bleue0/0Tela de Seleção Custom Empty_bar_bleue  (0/0)
Vida:
Tela de Seleção Custom Left_bar_bleue30/30Tela de Seleção Custom Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Tela de Seleção Custom Empty Re: Tela de Seleção Custom

Mensagem por Merim Ter Nov 19, 2024 7:55 pm

Manticora escreveu:Ficou bem legal as mudanças na tela de seleção. Obrigado por compartilhar!
1+
Obrigado pelo feedback  Very Happy
Merim
Merim
Novato
Novato

Mensagens : 12
Créditos : 6

Ir para o topo Ir para baixo

Tela de Seleção Custom Empty Re: Tela de Seleção Custom

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos