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

Mega Lista de comandos por scripts para seus sistemas por eventos!

Iniciado por Raizen, 15/02/2013 às 19:41

[box class=windowbg2]
Mega Lista de comandos por scripts
[/box]

[box class=catbg4]
Introdução
[/box]
  Antes de falarem que era para estar na seção de scripts, devo lhes informar algo, o que vou colocar aqui pode ser usado por scripters sim, mas essa lista especificamente é para os Eventers e são para auxiliar na montagem de sistemas, com comandos cujo não foram disponibilizados pelos eventos, porém podem ser facilmente acessados pelo Chamar Script! E como o Chamar Script é um comando por evento, nada mais justo do que mostrar aqui :). Por isso qualquer scripter que quiser implementar a lista, o faça que será de grande ajuda a todos!

[box class=catbg4]
O básico
[/box]
   Antes de mostrar os vários comandos por scripts para usarem no Chamar Script, devo falar algumas coisas, os eventos e o Chamar script funcionam da seguinte maneira, eles criam um código embutido no executável do maker, e esse código é inserido na classe Game_Interpreter dentro dessa classe, acontece toda a programação por eventos, então mexer nessa classe, costuma mexer diretamente com os comandos por eventos.

[box class=catbg4]
A lista
[/box]

Variável: a variável dos eventos quando vai pro Game_Interpreter é chamado de $game_variables[n], aonde o n é o número da variável. Logo eu posso fazer isso facilmente no chamar script.
Chamar Script:
$game_variables[5] = 4
façam o teste :), apenas estou mostrando esse antes porque será MUITO útil em vários daqui da lista ^^.

Esperar: O comando esperar, como sabem tem um GRANDE problema, que é que não podemos colocar uma variável e sempre é um número constante, o comando dele é
wait(t)
mas, espera se eu pegar o valor lá em cima que citei da variável será que...
Exatamente isso :), você pode colocar o wait de acordo com uma variável bastando, Chamar Script:
wait($game_variables[3])
Nesse código vou dar um Esperar com Frames igual ao valor da variável de ID 3 dos eventos xD.

Estão pegando a ideia certo? Agora daqui para frente será mais fácil :)

Tamanho da Tela: Para alterar o tamanho da tela o comando é bem simples.
Graphics.resize_screen(x, y)

x = tamanho da tela em pixels em x
y = tamanho da tela em pixels em y

Input.trigger O Condição tecla pressionada, serve justamente apenas para isso, verificar se a tecla está pressionada, e para fazer a verificação de clique, sabe como em vários jogos que para atacar tem que clicar e não segurar, pois bem não deixaram esse comando por eventos, mas é fácil!
Condição, Script:
Input.trigger?(:Key)

Tem que manter o : na frente do nome da tecla, e o nome é em maiusculo e de acordo com as teclas do RPG Maker aquele X, Y... Exemplo
Input.trigger?(:L)


Load:
SceneManager.call(Scene_Load)


Qualquer Scene: olhe na lista de scripts com o nome Scene, você pode usar aquele nome para chamar qualquer scene do RMVXAce, seguindo a regra.
SceneManager.call(nome_da_scene)


Fadein Fadeout: Outro que não é configurável por padrão, o comando para isso é
    Fiber.yield while $game_message.visible
    screen.start_fadein(t)
    wait(t)

    Fiber.yield while $game_message.visible
    screen.start_fadein(t)
    wait(t)

aonde t é o tempo em frames, então você pode mudar o t para qualquer valor, inclusive a variável do modo que citei no começo da aula, lembrando que se olharem para o código, vão ver que ele tem o wait também!
Exemplos:
    Fiber.yield while $game_message.visible
    screen.start_fadein($game_variables[7])
    wait($game_variables[7])

    Fiber.yield while $game_message.visible
    screen.start_fadein(48)
    wait(48)


Fonte: Você pode mudar muita coisa na fonte no meio do jogo.
Font.default_name = "nome da fonte"
O nome da fonte sempre dentro das aspas.
Font.default_size = n
n é o número do tamanho da fonte.
Font.default_italic = true/false
coloque ou true ou false, para se for ou não italico.
Font.default_bold = true/false
coloque ou true ou false, para se for ou não bold.
Font.default_color = Color.new(R, G, B)
R, G, B são os números das cores, veja a tabela RGB na internet para mudar a cor da fonte para o que desejar.

Switch Local:
key = [@map_id, @event_id,switch]
$game_self_switches[key] = true/false
Basicamente, key = [n do id do mapa, n do id do evento, e a switch]
A switch tem que estar entre aspas por exemplo a switch A, vou desligar essa switch local do evento de ID 3 do Mapa de ID 4.
key = [4, 3, 'A']
$game_self_switches[key] = false



Classe Math:
A classe Math é uma que contém vários "corta caminhos" para cálculos matemáticos, por exemplo é muito fácil obter uma raiz quadrada de um número, cosseno, entre outros, vou colocar os mais simples e úteis.
Constantes:
As constantes são 2, elas tem um número muito preciso do .
PI => Math::PI      e do
E => Math::E
Então é bem simples utiliza-los, exemplo
Chamar Script:
$game_variables[3] = $game_variables[3] * Math::PI

MAS, cuidado, ao usar um número quebrado para fazer operações com as variáveis, como sabem as variáveis são números inteiros, vai fazer com que aquela variável deixe de ser inteira, então use com cautela.
Para os mais avançados, colocar .to_i depois de uma variável faz ela ficar inteira de novo por exemplo.
Chamar Script:
Citar$game_variables[3] = $game_variables[3].to_i
Ele vai igualar a ele mesmo, porém ao valor inteiro dele.

Math.cos(x), Math.sin(x), Math.tan(x)
Aonde x é em radianos, então pode ser uma boa ideia usar aquela constante Math::PI que citei lá em cima.
Por exemplo, usando tudo que citei aqui.
Chamar Script:
$game_variables[2] = Math.cos(Math::PI/3)

Aqui eu faço a variável 2, ter o valor do cosseno de Pi dividido por 3.

Chamar Script:
$game_variables[2] = $game_variables[2] * 10)

Aqui eu multiplico por 10, porque o resultado de um cosseno sempre será entre -1 e 1 oque não seria legal deixa-lo inteiro assim.

Chamar Script:
$game_variables[2] = $game_variables[2].to_i)

Aqui retorno a variável 2 para um número inteiro.

Math.hypot(x, y):
Retorna o valor da seguinte maneira
Raiz quadrada de x², y²
Então é muito útil para achar distancias entre 2 pontos que podem ser variáveis de coordenadas por exemplo.
Chamar Script:
x2 = $game_variables[4]
x1 = $game_variables[3]
y2 = $game_variables[2]
y1 = $game_variables[1]
$game_variables[5] = Math.hypot(x2 - x1, y2 - y1)

Veja que eu fiz x2 =... porque a porcaria do editor de scripts do Ace pula linhas sozinho  :facepalm: , e precisa fazer isso para que fique tudo bonitinho. Então a diferença de 2 coordenadas em x e a diferença de 2 coordenadas em y, vão resultar em um valor que será atribuido a uma nova variável.

Math.log(num, base), Math.log10(num), Math.log2(num)(x, y):
Retorna o valor do logaritmo tal, exemplo.
$game_variables[2] = Math.log10(10)

Fará com que a variável 2 tenha o valor 1.

$game_variables[5] = Math.log(400, 20)

Fará com que a variável 5 tenha o valor 2.

Comandos de Imagem:
Mostrar Imagem:
$game_map.screen.pictures[numero_da_imagem].show("Nome da Imagem", origem, x, y, zoom_x, zoom_y, opacidade, sinteticidade)

então não darei exemplo aqui xD, todo lugar aonde tem um número nesse código, pode ser substituido por uma variável, e o mais interessante seria o zoom_x e zoom_y que você pode manipular com uma variável.

Mover Imagem:
Mesmo que acima, porém com esse código.
$game_map.screen.pictures[numero_da_imagem].move(origem, x, y, zoom_x, zoom_y, opacidade, sinteticidade, duração)


Rotacionar Imagem (girar imagem):
$game_map.screen.pictures[numero_da_imagem].rotate(velocidade)

você pode manipular a velocidade de rotação de acordo com uma variável, o que é especialmente útil para sistemas que mudam a velocidade da rotação.
Exemplo, Chamar Script:
$game_map.screen.pictures[2].rotate($game_variables[3])

Vou rodar a imagem 2 na velocidade da variável de ID 3

Mudar Tonalidade da Imagem:
Mesmo que os acima.
$game_map.screen.pictures[numero_da_imagem].start_tone_change(novo_tom, duração)


Deletar Imagem:
$game_map.screen.pictures[numero_da_imagem].erase

Especialmente interessante para deletar uma imagem de acordo com o valor de uma variável :).

[box class=catbg4]
O básico
[/box]
A lista será atualizada com mais comandos, mas o que mandei aqui é para que não pensei aah não gosto de scripts e não vou usá-los! E sim que os 2 foram feitos para trabalharem juntos, os eventos pela sua rapidez de criação, facilidade e com a maioria dos comandos importantes é muito importante no RPG Maker, e os scripts para adicionarem e facilitarem a vida dos makers u_u. Qualuqer dúvida, ou código que queira adicionar, fique a vontade :).

Está aí um tópico com conteúdo formidável  :<3:

Estes comandos podem ser úteis em diversas situações quando estamos programando por eventos, obrigado por compartilhar Raizen! Ótimo tutorial.

+gull

Ainda falta mais uns, vou levar para a MRM >.>, assim que eu lembrar de mais alguns k, vlws ai o comment force :D, se lembrar de algum pode falar aqui que eu adiciono xD.

Citação de: Raizen online 15/02/2013 às 23:07
Ainda falta mais uns, vou levar para a MRM >.>, assim que eu lembrar de mais alguns k, vlws ai o comment force :D, se lembrar de algum pode falar aqui que eu adiciono xD.

O de mostrar imagem costuma a ser bem útil e utilizado. \o. Aproveita pra acrescentar os métodos relacionados a imagens :B

Posta lá sim =)

Muito boa a lista.
Raizen, adicione isso:
$game_map.setup(id_mapa)
$game_player.moveto(x_mapa,y_mapa)


O teleporte sem os fade in, out.
Travaremos uma batalha, e depois descansaremos. Vivos ou mortos, descansaremos - Jon Snow

Quer trabalhar nesse projeto? Então entre nessa equipe e ajude!

Duelo Maker!


Uia, aí sim hein.
Realmente isso ajuda muito a vida de um eventer, muita coisa
pode ser feita por um atalho via um comando de scriptzinho...
Os que eu acho mais interessantes colocar mesmo, como o
cristiano citou, são os de imagens, depois que comecei a
usá-los... hummmm... é muito melhor.

Hum que eu até uso bem também, para colocar uma barrinha
de experiência é o da variável de experiência necessária para o
próximo level.

E esse, pra colocar contorno na fonte:


Font.default_outline = true/false


Não sei se tem como usar ele via "Chamar script"



Mas isso ajuda bem mano. Bom trabalho!  :ok:

Ufa, agora sim a lista está atualizada e pode ser chamada de Mega lista k, coloquei tudo que eu sabia e o que eu não sabia xD

Citação de: Ureca online 16/02/2013 às 00:45
Muito boa a lista.
Raizen, adicione isso:
$game_map.setup(id_mapa)
$game_player.moveto(x_mapa,y_mapa)


O teleporte sem os fade in, out.

Obrigado pela dica, mas antes de eu colocar no tópico xD, esse não seria a mesma coisa que no teleport colocar o "Desvanecer" Nenhum x]? só perguntando porque eu mesmo não tenho certeza.

kkkkkkkkkkk é mesmo, nem tinha visto/percebido essa função no Ace.
Travaremos uma batalha, e depois descansaremos. Vivos ou mortos, descansaremos - Jon Snow

Quer trabalhar nesse projeto? Então entre nessa equipe e ajude!

Duelo Maker!


Caraca isso é bem útil. Tanto para quem está começando a estudar RGSS, quanto pra galera que quer fazer um sistema mais flexível. Tentarei usá-los.
E espero que a galera aumente essa lista. *-*

Aliás, daria para fazer uma calculadora com aqueles comando Math. ? Talvez isso me ajude nas aulas de informática. -q

Safety and peace, brothers. \o
ALGUÉM FALOU EM JAIMES DESING?!

// -> cHEAT .exeKUTIVE OFF-ice ~~//


Citação de: Dias Anders online 23/02/2013 às 18:55
Caraca isso é bem útil. Tanto para quem está começando a estudar RGSS, quanto pra galera que quer fazer um sistema mais flexível. Tentarei usá-los.
E espero que a galera aumente essa lista. *-*

Aliás, daria para fazer uma calculadora com aqueles comando Math. ? Talvez isso me ajude nas aulas de informática. -q

Safety and peace, brothers. \o
Sim sim :D, aliás tem bem mais coisas se quiser, vou deixar o link aqui, todos podem ser usados no Chamar Script: Math.

http://www.ruby-doc.org/core-1.9.3/Math.html


Belo Post @Raizen! :ok:
Vai nos ajudar muito na criação e otimização dos sistemas por eventos!

ei @Raizen quando tiver um tempo atualiza a lista : )
Muito util esses codigos.



Muito útil, já havia visto na MRM. Só uma coisa, você devia colocar alguns códigos extras, do tipo armazenar ID de Região e blabla bla. E algum tutorial daqueles que resolvem o problema de linhas do chamar script...