O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[Script]Menu de Opções

Iniciado por singelinho, 14/02/2014 às 10:11


Primeiro de tudo, quero informar que sou iniciante ainda em ruby(RGSS) mais esta script eu fiz com carinho e tentei por uns códigos que muitos membros podem querer utiliza-los. Prosseguindo... a script é simples, podem melhora-las como quiser, qualquer erro peço que os relate aqui. Ela é um menu com botão, que possuem funções bem legais, como por exemplo: "Sair do Jogo", "Selecionar Boneco", "Tutorial do Jogo", "Configurações" e "Ajuda". 

<div>Descrição de tudo
:

Sair do Jogo -> Nome diz tudo, salva o jogo e sai
Selecionar Boneco -> Volta para a seleção de personagem
Tutorial do Jogo -> Teletransporta usuário para um mapa, coordenadas especifica.
Configurações -> Abre uma janela, para ativar e desativar musica/sons
Ajuda -> Abre um sprite informando tudo na tela
 - Será adicionado mais coisas -</div>

Spoiler

Screens:


OBS: Foi adicionado outra check_box > "Sons"
New
 

[close]

"Download de tudo que vamos utilizar





Se quiser utilizar uma demo:
(Seria melhor você próprio instalar)
[close]

Bem vamos lá !! Crie uma script nova e nela adicione:
#================================================================
#|Autor: Singelinho|      Menu de Opções                        =
#================================================================
# Version: 1.4                                                  =
# Menu simples, com diversas funções.                           =
#================================================================
class Opções < Window_Base
 def initialize
   super(254,154,160,160)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 200
   self.z = 50000
   self.visible = false
   self.active = false
   @dragable = false
   @closable = true
   #Sprites
   @sprite = Sprite.new
   @sprite.bitmap = (RPG::Cache.picture("Ajuda"))
   @sprite.visible = false
   #Widgets
   @button1 = Button.new(self, 35, 25, "Sair do Jogo") {click1}
   @button2 = Button.new(self, 20, 50, "Selecionar Boneco") {click2}
   @button3 = Button.new(self, 26, 75, "Tutorial do Jogo") {click3}
   @button4 = Button.new(self, 30, 98, "Configurações") {click4}
   @button5 = Button.new(self, 53, 120, "Ajuda") {click5}
 end
 
 #======= Métodos =======
 def click1
   autosave
   Network::Main.close_socket
   exit
 end
 
 def click2
   $scene = Scene_Title.new
 end
 
 def click3
   $scene.TutorialG.visible = true
   $scene.TutorialG.active = true
 end
 
 def click4
   $scene.Configurações.visible = true
   $scene.Configurações.active = true
 end
 
 def click5
   @sprite.visible = !@sprite.visible
 end
 #======================
 #======================
 def show
   self.visible = true
   refresh
 end
 
 def hide
   self.visible = false
   self.active = false
 end
 #=======================
end
class Scene_Map
 attr_accessor('Opções')
 alias cal main_draw
 def main_draw
   cal
   @Opções = Opções.new
 end
 alias cali update
 def update
   cali
   @Opções.update
   #Input para abrir e fecha menu, neste caso é Esc
   if Input.triggerd?(Input::Esc)
     if @Opções.visible
       @Opções.visible = false
     else
       @Opções.visible = true
     end
   end
 end
end


Após criar a script "opções", crie outra e adicione:

#================================================================
#|Autor: Singelinho|      Menu de Teletransporte Tutu           =
#================================================================
# Version: 1.0                                                  =
# Para alterar o mapa e as cordenadas Linha -> 31, 34, 35, 36   =
#================================================================
class TutorialG < Window_Base
 def initialize
   super(423,154,179,85)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 200
   self.z = 50000
   self.visible = false
   self.active = false
   @dragable = false
   @closable = true
   #Widgets
   @button1 = Button.new(self, 35, 50, "Sim") {click1}
   @button2 = Button.new(self, 90, 50, "Não") {click2}
   refresh
 end
 
 #======= Métodos ======
 def refresh
   @txt1 = self.contents.draw_text(0, 0, 480-32, 32, "Deseja mesmo ir ao tutorial?")
 end
 
 def click1
   #Teletransporta para tal mapa e tal coordenadas (ID, X, Y)
   if $game_temp.player_new_map_id == $game_temp.player_new_map_id = 1
     p 'Você já esta no mapa'
   else
     $game_temp.player_new_map_id = 1
     $game_temp.player_new_x = 12
     $game_temp.player_new_y = 12
     $game_temp.player_transferring = true
     $game_map.update
     $scene = Scene_Map.new
     Network::Main.send_start
     $game_temp.chat_log.push("Sistema: Bem Vindo ao tutorial, que seja bem útil.")
   end
 end
 
 def click2
   self.close
 end
 #======================
end
class Scene_Map
 attr_accessor('TutorialG')
 alias edca main_draw
 def main_draw
   edca
   @TutorialG = TutorialG.new
 end
 alias edup update
 def update
   edup
   @TutorialG.update
   #Fechar com ESC
   if Input.triggerd?(Input::Esc)
     if @TutorialG.visible
       @TutorialG.visible = false
     end
   end
 end
end


Ultima > Tendo criada as duas acima, adicione mais uma script e nela ponha isto:

#================================================================
#|Autor: Singelinho|    Menu de Configurações do Jogo           =
#================================================================
# Version: 1.0                                                  =
#================================================================
class Configurações < Window_Base
 def initialize
   super(70,154,179,130)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 200
   self.z = 50000
   self.visible = false
   self.active = false
   @dragable = false
   @closable = true
   #Widgets
   @button1 = Button.new(self, 35, 93, "Aplicar") {click1}
   @button2 = Button.new(self, 100, 93, "Fechar") {click2}
   @check1 = Check_Box.new(self, 30, 45)
   @check2 = Check_Box.new(self, 30, 65)
   refresh
 end
 
 #======= Métodos ======
 def refresh
   @txt1 = self.contents.draw_text(0, 0, 480-32, 32, "Menu de Configurações")
   @txt2 = self.contents.draw_text(40, 20, 480-32, 32, "Musica")
   @txt3 = self.contents.draw_text(40, 40, 480-32, 32, "Sons")
 end
 
 def click1
   if @check1.checked
     Audio.bgm_play("Audio/BGM/Base1")
     $game_temp.chat_log.push("Sistema: Musica (ON)")
   else
     Audio.bgm_stop
     $game_temp.chat_log.push("Sistema: Musica (OFF)")
   end
   if @check2.checked
     Audio.bgm_play("Audio/BGM/Base2")
   else
     Audio.bgm_stop
     $game_temp.chat_log.push("Sistema: Son desativado")
   end
 end
 
 def click2
   self.close
 end
 #======================
end
class Scene_Map
 attr_accessor('Configurações')
 alias edc main_draw
 def main_draw
   edc
   @Configurações = Configurações.new
 end
 alias edu update
 def update
   edu
   @Configurações.update
   #Fechar com ESC
   if Input.triggerd?(Input::Esc)
     if @Configurações.visible
       @Configurações.visible = false
     end
   end
 end
end


Pronto o sistema foi devidamente instalado !!
Qualquer bug, error, alguma coisa que seria legal de por... Podem falar, quero que esta script vocês possam utilizar e abusar dela xD 

créditos - Singelinho

Atualizações feitas(A pedidos de alguns membros), mas é opcional use se quiser. Para adquiri-la confira o tópico http://www.aldeiarpg.com/t9569-scriptmenu-de-opcoes.

[hs width=480 height=200]http://i.imgur.com/VMscx1Q.png[/hs]

Oi singelinho! Não nos falaremos lá na ARM, mas aqui sim :=|:. Ainda não testei, mas achei bem legal.
1 ouro para você