Forums » RGSS

Deixando scripts mais editáveis

    • 683 posts
    4 de junho de 2015 13h23min49s ART

    Module

    O comando module cria um módulo (não brinca?), que depois pode ser acessado.
    Mas o que é um módulo? 

    É um lugar onde é definido o valor de algumas informações, que depois podem ser acessadas, tornando mais fácil para pessoas não experientes editarem o seus scripts.

    Para começar

    Primeiro, use o código abaixo para fazer uma janela padrão. Obs: Para chamar a janela, use o comando chamar script, e o código: $window = Window_Aula.new

    Script 

    Use um template normal de janela, que nesse caso, exibirá o hp do personagem. Obs: Podem haver erros na sintaxe, pois estou sem o maker.

    classWindow_Aula<Window_Base   def initialize     super(0,0,100,100)     self.contents =Bitmap.new(width -32, height -32)     refresh   end   def initialize     self.contents.clear     @hp= $game_actors[1].hp     self.contents.draw_text(0,0,256,32,"Hp: "+@hp.to_s)   endend

    É aí que começa o problema. Vai que um cara pouco experiente pega esse script, e quer mudar o texto hp para vida?
    É só um exemplo, mas em alguns casos, ele não consegue fazer isso. Por isso usamos o module.

    Sintaxe do Modulo

    Use o código abaixo: 

    module MRM   # Texto que vai aoarecer na janela   TEXTO ={   1=>["Hp"],   }end

    Observação: O modulo pode e deve ser adicionado antes da classe, ou seja, deve ser a primeira coisa do script.

    Vamos aprender um pouco sobre o módulo que criamos.

    module MRM - Aqui iniciamos o módulo, e damos o nome de MRM
    TEXTO ={ - Aqui criamos uma Hash, chamado TEXTO.
    1=> "Hp", - Assim definimos que o TEXTO nº 1 é igual a "hp".
    } - Terminamos a Hash TEXTO
    end - Terminamos o módulo
    Aplicando o módulo na janela

    Para que a janela possa acessar a informação do módulo, temos que inserir um nova linha logo abaixo de "class Window_Aula < Window_Base".

    Nesta linha, escreva:

    include MRM

    O include serve para incluir o modulo na classe, e MRM é o nome do módulo.

    Agora, vamos na linha que esta escrito o HP.

    Substitua:

    self.contents.draw_text(0,0,256,32,"Hp: "+@hp.to_s)

    Por:

    self.contents.draw_text(0,0,256,32, TEXTO[1]+@hp.to_s)


    Assim, acessamos o conjunto TEXTO, e onde está 1] é o Nº do texto.

    Seu script deve estar assim:

    module MRM   # Texto que vai ser escrito   TEXTO ={   1=>["Hp: "],   }endclassWindow_Aula<Window_Base   include MRM   def initialize     super(0,0,100,100)     self.contents =Bitmap.new(width -32, height -32)     refresh   end   def initialize     self.contents.clear     @hp= $game_actors[1].hp     self.contents.draw_text(0,0,256,32, TEXTO[1]+@hp.to_s)   endend

    Assim fica mais fácil para os iniciantes para configurar o seu script. É claro que este foi só um exemplo, você pode fazer muito mais com um módulo.


    Eu vou dar uma editada no tópico caso tenha algum erro... até mais peaple, postem suas dúvidas aí!