esse script te permite escolher com qual personagen jogar, é muito bom, pegua ai:
--feito pelo zé comeia
--feito pelo zé comeia
- Código:
para usar, use o código : $scene = Scene_Ordem.new
#---------------------------------------------------------------
#- ChangePartyPosition(Menu de Ordem) --------------------------
#- por: Sidnei Pereira (zecomeia) ------------------------------
#- 18/02/2009 --------------------------------------------------
# Descrição: Essa opção faz com que o jogador tenha a liberdade
#de trocar a posição dos Heróis no grupo. ----------------------
#---------------------------------------------------------------
class Scene_Ordem
def main
@status_window = Window_MenuStatus.new
@status_window.x = 72
@status_window.y = 0
@stlock_window = Window_MenuStatus.new
@stlock_window.x = 72
@stlock_window.y = 0
@status_window.active = true
@status_window.index = 0
@stlock_window.active = true
@stlock_window.index = 0
# Criar chaves de controle para escolha dos personagem na troca
@lock_firstchoice = nil
@next_choice = nil
# Executar transição
Graphics.transition
# Loop principal
loop do
# Atualizar a tela de jogo
Graphics.update
# Atualizar a entrada de informações
Input.update
# Atualizar Frame
update
# Abortar loop se a tela for alterada
if $scene != self
break
end
end
# Preparar para transiçõa
Graphics.freeze
# Exibição das janelas
@status_window.dispose
@stlock_window.dispose
end
def update
@status_window.update
@stlock_window.update
# Se a janela de Status estiver ativa e: call update_status
if @status_window.active and @next_choice != true
update_status
return
end
# Se a segunda escolha da troca de personagens estiver ativa: call comand_ordem
if @next_choice == true
comand_ordem
return
end
end
#-------------------------------------------------------------
#-- comand_ordem (segunda escolha da troca de posição) -------
#-------------------------------------------------------------
def comand_ordem
# Se o botão B for pressionado (Cancel)
if Input.trigger?(Input::B)
# Reproduzir SE de cancelamento
$game_system.se_play($data_system.cancel_se)
# Voltar para escolha do primeiro Herói da troca
@stlock_window.active = true
@stlock_window.index = -1
@next_choice = false
@lock_firstchoice = false
return
end
# Se o botão C for pressionado (OK)
if Input.trigger?(Input::C)
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Segunda escolha da troca de Heróis
if @status_window.index == 0 #Se for o primeiro do grupo
# Trocar posições dos personagens escolhidos
@second_choice = $game_party.actors[0]
$game_party.actors[0] = $game_party.actors[@first_choice]
$game_party.actors[@first_choice] = @second_choice
# Manter posição do cursor de escolha
@indice_position = 0
# Renovar gráficos
update_ordem
elsif @status_window.index == 1 #Se for o segundo do grupo
# Trocar posições dos personagens escolhidos
@second_choice = $game_party.actors[1]
$game_party.actors[1] = $game_party.actors[@first_choice]
$game_party.actors[@first_choice] = @second_choice
# Manter posição do cursor de escolha
@indice_position = 1
# Renovar gráficos
update_ordem
elsif @status_window.index == 2 #Se for o terceiro do grupo
# Trocar posições dos personagens escolhidos
@second_choice = $game_party.actors[2]
$game_party.actors[2] = $game_party.actors[@first_choice]
$game_party.actors[@first_choice] = @second_choice
# Manter posição do cursor de escolha
@indice_position = 2
# Renovar gráficos
update_ordem
elsif @status_window.index == 3 #Se for o quarto do grupo
# Trocar posições dos personagens escolhidos
@second_choice = $game_party.actors[3]
$game_party.actors[3] = $game_party.actors[@first_choice]
$game_party.actors[@first_choice] = @second_choice
# Manter posição do cursor de escolha
@indice_position = 3
# Renovar gráficos
update_ordem
end
end
end
#-----------------------------------------------------------------------------
#-- update_ordem (renova os gráficos da janela de status e do lider do grupo -
#-----------------------------------------------------------------------------
def update_ordem
$game_player.refresh
@status_window.dispose
@stlock_window.dispose
@status_window = Window_MenuStatus.new
@stlock_window = Window_MenuStatus.new
@status_window.x = 72
@status_window.y = 0
@stlock_window.x = 72
@stlock_window.y = 0
@stlock_window.active = true
@stlock_window.index = -1
@status_window.active = true
@status_window.index = @indice_position
@next_choice = false
@lock_firstchoice = false
return
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)
$scene = Scene_Map.new
return
end
# Se o botão C for pressionado
if Input.trigger?(Input::C)
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Escolha do primeiro personagem da troca
if @status_window.index == 0 and @lock_firstchoice != true
@first_choice = 0
# Travar um cursor de indicação da primeira escolha
@stlock_window.index = 0
@lock_firstchoice = true
elsif @status_window.index == 1 and @lock_firstchoice != true
@first_choice = 1
# Travar um cursor de indicação da primeira escolha
@stlock_window.index = 1
@lock_firstchoice = true
elsif @status_window.index == 2 and @lock_firstchoice != true
@first_choice = 2
# Travar um cursor de indicação da primeira escolha
@stlock_window.index = 2
@lock_firstchoice = true
elsif @status_window.index == 3 and @lock_firstchoice != true
@first_choice = 3
# Travar um cursor de indicação da primeira escolha
@stlock_window.index = 3
@lock_firstchoice = true
end
# Trava do cursor da primeira escolha
if @lock_firstchoice == true
@stlock_window.active = false
# Iniciar escolha do segundo personagem na troca
@next_choice = true
end
end
return
end
end