Forums » RGSS

Lendo comentários por scripts - Aula 2

    • 683 posts
    4 de junho de 2015 13h15min44s ART

    Introdução

     

    Se você ainda não leu a aula 1, Clique Aqui.
    Galera, na aula passada começamos a mecher com o Regex, agora vamos nos aprofundar. 
    Sempre que forem fazer um Regex nos seus scripts, usem esse comparador de códigos: Este. Nele você digita o Regex e ele verifica se é valido, já que estas espressões podem ser bem chatinhas.

    Ah, e para completar, quando quer fazer uma condição em RGSS, de que um Regex seja lido, deve usar:
    if comment =~ (Regex)

     

    Mais sobre: Regex

     

    Regex vem de: Regular Expressions, ou expressões regulares.
    Para quem está boiando, leia a aula 1 de novo.

     

    Comandos de Regex

     

    Retirado Aqui. Vou só postar alguns códigos:

    ^
    Busca somente no início da string
    /^The/ encontra "The" em "The night" mas não em "In The Night" 

    $
    Busca somente no fim da string
    /and$/ encontra "and" em "Land" mas não em "landing" 

    \b
    Encontra em qualquer parte da string
    /ly\b/ encontra "ly" em "This is really cool."

    \B
    Encontra qualquer parte que não esteja limitada
    /\nor/ encontra “or” em "normal" mas não em "origami."

    \n
    Encontra o caractere de nova linha

    \f
    Encontra o caractere de nova página

    \r
    Encontra o caractere de retorno de carro

    \t
    Encontra o caractere de tabulação horizontal 

    \v
    Encontra o caractere de tabulação vertical


    Enfim, existem muitos outros comandos de Regex que eu não postei aqui por falta de espaço. Se ficarem curiosos, dem uma olhada no site do qual eu peguei esses códigos.

     

    Exemplos

     

    Este é um que eu fiz antes de postar a aula:

    ([\n(p)])

    O que ele faz? Ele acha qualquer palavra entre iphone, ipod e ipad na primeira linha, desde que essas palvras tenham alguma letra seguida da letra p. Confuso?

    iphone - Funciona
    ison - Não, pois não tem nnhum letra seguida de P, como em Iphone

    Isso é feito pelo comando \n(), que procura uma letra ou palavra seguida pelo texto em parênteses.

    Imagine, você poderia fazer uma condição, para que uma música começasse com Ipod go, e terminasse com Ipod stop, legal né?

    Agora, imagine, com um pouco de trabalho, poderiamos não usar nenhum comando por eventos, exceto o comando "comentário", o que reduziria muito a lag causada por eventos grandes.

     

    Considerações

     

    Nesta aula aprendemos a dizer ao Regex para procurar em uma palavra um letra seguida de um texto.

    \n

    Lembre-se, o que estiver como condição deve estar entre [], sendo assim:

    [\n(texto)]


    E é importante lembrar que o comando \n é especial para cada frase, ou seja, na frase que eu fiz, ele procurava a letra P em qualquer linha, vai ter casos que ele vai procurar a palavra somente na determinada linha.
    E ele está pegando a letra P naquelas palvras por causa de outros comandos inseridos na frase.



    Tema

     

    Crie um script que como condição tenha o seguinte comentário:


    Olá,
    Meu nome é (seu nick)


    Sendo que, a palavra nome deve ter uma letra seguida da letra O.

    Difícil? Pensem um pouco!
    Vocês não viram nada! Muaaha

    Até,
    Mendesx

     

    Aula Passada

     

    A resposta para o tema da aula passada era:

     

    classGame_Systemalias primeiro initialize def initialize   primeiro   @initial_value=""endendclassGame_Event<Game_Characteralias segundo update def update   segundo     for cmd in@list     if cmd.code ==108or cmd.code ==408         comment = cmd.parameters[0]       end       if comment =~/(hp)/i         $game_actors[1].hp +=100       end   endendend