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

[Script XP] NumPad Dinamic Window 0.1[BETA]

Iniciado por NumPaD, 21/02/2013 às 21:52

21/02/2013 às 21:52 Última edição: 30/07/2019 às 01:14 por Victor Sena
Introdução
Olá, escolhi a CRM para ser o único fórum que vou disponibilizar essa versão do meu segundo script feito inteiramente por mim!
Ele ta muito simples ainda, mas resolvi mostrar para vocês opinarem, e dizer onde é possível usar ele.
Baixe o sistema, e de sua critica, pois ela é importante para o desenvolvimento do sistema.

Descrição
Sistema de janela dinâmica(nem tanto). Da para clicar nos botões Abrir e Fechar ela. Eu fiz inspirado nas dos netplays(mas o código não tem nada parecido) mas não sei fazer ela ser 'arrastável'.

Olhe a screen:


Download
Está no anexo.

Créditos
A ninguém. Todos os sistemas feitos por mim, nunca irão precisar de créditos. E podem ser usados em jogos comerciais e não-comerciais. Lembre-se disso.

Paz e Tédio a todos.

[Anexo excluído pelo administrador]

21/02/2013 às 22:33 #1 Última edição: 21/02/2013 às 22:35 por Raizen
Pow achei bem legal, ainda não está utilizável para quem é eventer, porém já está mostrando que você está aprendendo bastante scripts :D, parabéns.

Bom como todo chato, vou fazer umas observações, eu achei umas coisas para serem melhoradas no code, por exemplo.
    if $scene.is_a?(Scene_Map)
      if Mouse.in_area?(@buttonRect)
        if Mouse.press?(Mouse::MOUSE_LEFT)
          $game_switches[1] = false
        end
      end
    end


Você tem uma sequencia de 3 ifs, dá para chama-los todos juntos, melhorando o desempenho assim
if $scene.is_a?(Scene_Map) and Mouse.in_area?(@buttonRect) and Mouse.press?(Mouse::MOUSE_LEFT)
          $game_switches[1] = false
    end


ou
if $scene.is_a?(Scene_Map) && Mouse.in_area?(@buttonRect) && Mouse.press?(Mouse::MOUSE_LEFT)
          $game_switches[1] = false
    end

e por último
$game_switches[1] = false if $scene.is_a?(Scene_Map) && Mouse.in_area?(@buttonRect) && Mouse.press?(Mouse::MOUSE_LEFT)


quando tem sequencias de ifs, o ideal é junta-los com as conjunções and(&&), or(||)


Segunda coisa x].
    if $game_switches[1] == false
      self.visible = true
      @lol.visible = true
    else
      self.visible = false
      @lol.visible = false
    end

Veja que tudo isso pode ser simplificado por isso daqui.
self.visible = @lol.visible = !$game_switches[1]

o ! na frente inverte o resultado, evite usa-lo em condições e talz, mas nesse caso simplifica bastante :D, eu fiz isso ai no code de cima, porque as switches já são booleans, então elas tem true/false, logo ao invés de colocar condições das switches para fazer algo ficar true ou false, eu jogo direto na equação, o que economiza condições e talz.

Citação de: Raizen online 21/02/2013 às 22:33
Pow achei bem legal, ainda não está utilizável para quem é eventer, porém já está mostrando que você está aprendendo bastante scripts :D, parabéns.

Bom como todo chato, vou fazer umas observações, eu achei umas coisas para serem melhoradas no code, por exemplo.
Segunda coisa x].
    if $game_switches[1] == false
      self.visible = true
      @lol.visible = true
    else
      self.visible = false
      @lol.visible = false
    end

Veja que tudo isso pode ser simplificado por isso daqui.
self.visible = @lol.visible = !$game_switches[1]

o ! na frente inverte o resultado, evite usa-lo em condições e talz, mas nesse caso simplifica bastante :D, eu fiz isso ai no code de cima, porque as switches já são booleans, então elas tem true/false, logo ao invés de colocar condições das switches para fazer algo ficar true ou false, eu jogo direto na equação, o que economiza condições e talz.
Não entendi essa parte.. Primeiro que eu não entendi, e por motivos secretos, não posso abrir o maker agora.
Bom, self.visible = @lol.visible = !$game_switches[1]
É isso mesmo funciona? Não seria self.visible && @lol.visible = !$game_switches[1]
?

Off: Maldito Scripter Ninja! Mal posso ver seus movimentos!

Nops é igual mesmo, veja o seguinte exemplo.
a tem true ou false

if a == true
variavel1 = true
else 
variavel1 = false
end


Perceba que você está fazendo uma condição booleana(true/false) e depois atribuindo true/false, então eu ao invés de colocar a condição poderia fazer apenas isso
variavel1 = a

é o que eu fiz praticamente.
Sobre o algo1 = algo2 = valor

Isso é mais ou menos isso daqui.
a = 2
b = 2
c = 2


você pode atribuir tudo de uma vez.
a = b = c = 2

Todas as variáveis ficam igualados com o último valor sempre :D.

Citação de: Raizen online 22/02/2013 às 14:26
Nops é igual mesmo, veja o seguinte exemplo.
a tem true ou false

if a == true
variavel1 = true
else 
variavel1 = false
end


...
...
Todas as variáveis ficam igualados com o último valor sempre :D.
Sim, sim deu certo. To modificando ele agora, e tentando adicionar mais funções. Só que quanto + coisa eu boto, mais buga! Heheheh coisas da vida. Mas to evoluindo, até o fim do ano, irei me chamar de scripter! Porque, oque eu estou fazendo 'secretamente' aqui.. É coisa de louco! Muitos começam fazendo Hud.. Mas eu não.. Estou fazendo algo muitooo grande em relação a scripts. Nem vou falar aqui.. É capaz de tu me achar tão louco, e me banir do fórum para se prevenir. Heheheheheh