[EVO] Menu 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.

[EVO] Menu

3 participantes

Ir para baixo

[EVO] Menu Empty [EVO] Menu

Mensagem por Hatsuki Morturo Qua Jun 15, 2011 1:27 pm

Bom, esse é um novo menu que acabei de fazer, ele contém 2 scripts, sendo que um deles é uma edit do Window_MenuStatus (não sou muito bom em rgss).

Imagem:

Script 1:
Código:
#----------------------------------------------------#
# EVO Menu                |-------------------------#
#----------------------------------------------------#
# Autor  Hatsuki Morturo  |-------------------------#
# Versão  1.0              |-------------------------#
# Data    14.16.2011      |-------------------------#
#----------------------------------------------------#
 
class Scene_Menu

#----------------------------------------------------#
# Evolution Menu          |-------------------------#
#----------------------------------------------------#
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
   
  def main
    # Criar janela de comando
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Salvar"
    s6 = "Fim de Jogo"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @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 = 160
    @playtime_window.y = 0
    @steps_window = Window_Steps.new
    @steps_window.x = 320
    @steps_window.y = 0
    @gold_window = Window_Gold.new
    @gold_window.x = 480
    @gold_window.y = 0
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 95
    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
  end
   
  def update
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command
      return
    end
    if @status_window.active
      update_status
      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)
      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  # Itens
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Item.new
      when 1  # Habilidades
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # Equipamentos
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # Salvar
        # Se Salvar for proibido
        if $game_system.save_disabled
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de save
        $scene = Scene_Save.new
      when 5  # Fim de Jogo
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Fim de Jogo
        $scene = Scene_End.new
      end
      return
    end
  end
 
  #--------------------------------------------------------------------------
  # Atualização do Frame (Quando o status da Janela estiver Ativo)
  #--------------------------------------------------------------------------
 
  def update_status
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Torna a janela de comandos ativa
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Ramificação por posição do cursor na janela de comandos
      case @command_window.index
      when 1  # Habilidades
        # Se o limite de ação deste Herói for de 2 ou mais
        if $game_party.actors[@status_window.index].restriction >= 2
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Habilidades
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # Equipamento
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Equipamento
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Status
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

Script 2:
Código:
#----------------------------------------------------#
# EVO Menu_2              |-------------------------#
#----------------------------------------------------#
# Autor  Hatsuki Morturo  |-------------------------#
# Versão  1.0              |-------------------------#
# Data    14.16.2011      |-------------------------#
#----------------------------------------------------#

class Window_MenuStatus < Window_Selectable
 
  #--------------------------------------------------------------------------
  # Inicialização dos Objetos
  #--------------------------------------------------------------------------
 
  def initialize
    super(0, 0, 480, 129)
    self.contents = Bitmap.new(width - 32, height - 32)
      self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
    self.active = false
    self.index = -1
  end
 
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
 
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[0]
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end
 
  #--------------------------------------------------------------------------
  # Renovação do Retângulo de Seleção
  #--------------------------------------------------------------------------
 
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end

_________________
[EVO] Menu Asd10

[EVO] Menu Fabar10
Hatsuki Morturo
Hatsuki Morturo
Experiente
Experiente

Mensagens : 401
Créditos : 50

Ir para o topo Ir para baixo

[EVO] Menu Empty Re: [EVO] Menu

Mensagem por lordmeninoS Qua Jun 15, 2011 6:29 pm

Bem bonito Successful
qual Windows Skin usou?

_________________
Posts:
-TUDO Pokemon:
http://www.aldeiarpgbr.com/t1258-quer-criar-um-jogo-pokemon-agente-facilita-e-claro-atualizado-agora-com-battlers-icones-sons-e-ainda-animacoes
lordmeninoS
lordmeninoS
Ocasional
Ocasional

Mensagens : 226
Créditos : 17

Ir para o topo Ir para baixo

[EVO] Menu Empty Re: [EVO] Menu

Mensagem por DarkRoot Qua Jun 15, 2011 6:53 pm

Você poderia ter simplificado o sistema em apenas um script. E me dei a liberdade de inserir uma linha em seu script. Substitua o primeiro por este e veja a diferença:

Código:
#----------------------------------------------------#
# EVO Menu |-------------------------#
#----------------------------------------------------#
# Autor Hatsuki Morturo |-------------------------#
# Versão 1.0 |-------------------------#
# Data 14.16.2011 |-------------------------#
#----------------------------------------------------#

class Scene_Menu
#----------------------------------------------------#
# Evolution Menu |-------------------------#
#----------------------------------------------------#

def initialize(menu_index = 0)
@menu_index = menu_index
end

def main
background = Spriteset_Map.new
# Criar janela de comando
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status"
s5 = "Salvar"
s6 = "Fim de Jogo"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@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 = 160
@playtime_window.y = 0
@steps_window = Window_Steps.new
@steps_window.x = 320
@steps_window.y = 0
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 0
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 95
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
end

def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
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)
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 # Itens
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1 # Habilidades
$game_system.se_play($data_system.decision_se)
# Ativar o status da janela
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # Equipamentos
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Ativar o status da janela
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # Status
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Ativar o status da janela
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # Salvar
# Se Salvar for proibido
if $game_system.save_disabled
# Reproduzir SE de erro
$game_system.se_play($data_system.buzzer_se)
return
end
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Alternar para a tela de save
$scene = Scene_Save.new
when 5 # Fim de Jogo
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Alternar para a tela de Fim de Jogo
$scene = Scene_End.new
end
return
end
end

#--------------------------------------------------------------------------
# Atualização do Frame (Quando o status da Janela estiver Ativo)
#--------------------------------------------------------------------------

def update_status
# Se o botão B for pressionado
if Input.trigger?(Input::B)
# Reproduzir SE de cancelamento
$game_system.se_play($data_system.cancel_se)
# Torna a janela de comandos ativa
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# Se o botão C for pressionado
if Input.trigger?(Input::C)
# Ramificação por posição do cursor na janela de comandos
case @command_window.index
when 1 # Habilidades
# Se o limite de ação deste Herói for de 2 ou mais
if $game_party.actors[@status_window.index].restriction >= 2
# Reproduzir SE de erro
$game_system.se_play($data_system.buzzer_se)
return
end
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Alternar para a tela de Habilidades
$scene = Scene_Skill.new(@status_window.index)
when 2 # Equipamento
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Alternar para a tela de Equipamento
$scene = Scene_Equip.new(@status_window.index)
when 3 # Status
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Alternar para a tela de Status
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end

A Scene_Status ta meio estranha pois ela so é boa para um unico personagem. Os outros nao ficam selecionaveis.

_________________
[EVO] Menu Bar-1
DarkRoot
DarkRoot
Membro Ativo
Membro Ativo

Mensagens : 353
Créditos : 31

Ir para o topo Ir para baixo

[EVO] Menu Empty Re: [EVO] Menu

Mensagem por Hatsuki Morturo Qua Jun 15, 2011 8:15 pm

@LordmeninoS - A window skin que usei foi a do NP X-NP, ta no spoiler.
Spoiler:
@DarkRoot - Você criou as variáveis da satus certo?
É que como falei, eu fiz um curso (rgss) a cerca de 3 anos, e desde quando terminei não pratiquei, to voltando agora.
E a Scene_Status foi feita somente para um único personagem, porisso recomendo que na data base do jogo, deichem só um pesonagem.

_________________
[EVO] Menu Asd10

[EVO] Menu Fabar10
Hatsuki Morturo
Hatsuki Morturo
Experiente
Experiente

Mensagens : 401
Créditos : 50

Ir para o topo Ir para baixo

[EVO] Menu Empty Re: [EVO] Menu

Mensagem por DarkRoot Qui Jun 16, 2011 10:36 am

somente adicionei uma linha ao script para o fundo ser o mapa e nao aquele preto...E dá para simplificar o script mas tou com preguiça de faze-lo agora >_< De qualquer modo bom trabalho =D

_________________
[EVO] Menu Bar-1
DarkRoot
DarkRoot
Membro Ativo
Membro Ativo

Mensagens : 353
Créditos : 31

Ir para o topo Ir para baixo

[EVO] Menu Empty Re: [EVO] Menu

Mensagem por Hatsuki Morturo Qui Jun 16, 2011 6:02 pm

@DarkRoot o script que você postou está com algum erro, vou ver se consigo localiza-lo e retira-lo.

_________________
[EVO] Menu Asd10

[EVO] Menu Fabar10
Hatsuki Morturo
Hatsuki Morturo
Experiente
Experiente

Mensagens : 401
Créditos : 50

Ir para o topo Ir para baixo

[EVO] Menu Empty Re: [EVO] Menu

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