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

Eli_SuperTimer (Deixa o cronômetro mais maneiro!)

Iniciado por Eliaquim, 09/04/2020 às 18:17

09/04/2020 às 18:17 Última edição: 16/05/2020 às 22:07 por Eliaquim

Autor: Eliaquim

*** Você precisa do Eli's_Book.js para usar esse plugin***

[box2 class=titlebg title=Introdução]
Por padrão o cronômetro do Rpg Maker Mv é escasso quanto as suas funcionalidades. Você não pode mudar sua posição, cor, fonte, tamanho, adicionar ou reduzir tempo.
Este plugin visa expandir essas funcionalidades! Adicionando novas mecânicas e efeitos visuais(seis novos sprites personalizaveis) para deixar seu cronômetro único![/box2]

[box2 class=titlebg title=Funcionalidades]

    • Visuais:
    • Plano de fundo(Sprite): Defina cores(única ou gradiente)  para o plano de fundo.
    • Plano de fundo(Imagem): Defina uma imagem para ser exibida como plano de fundo.
    • Legenda/título: Defina uma frase ou título para ser exibido junto com o cronômetro, podendo alterar sua cor, fonte, posição e muito mais!
    • Números: Defina o formato do cronômetro para mostrar apenas 00:00 ou 00:00:00. Também pode customizá-lo assim como a legenda!
    • Barras(gauges-Sprites): Defina a largura e altura, cor e muito mais de uma barra retangular animada para simbolizar a contagem do seu cronômetro.
    • Barras(gauges-Imagem): O mesmo que acima, só que poderá ser feita por imagens.
    • Ícone/Personagem: Escolha um ícone ou personagem animado para ser exibido junto com o cronômetro!

    • Mecânicas:
    • Adicionar ou remover segundos, minutos ou horas do cronômetro ativo.
    • Opção de novo formato 00:00:00(horas, minutos, segundos).
    • Pausar/resumir o cronômetro(Para de trabalhar).
    • Executar evento comum quando iniciar, pausar ou expirar o cronômetro.
    • Ligar e desligar automaticamente uma switch quando o cronômetro estiver ativo/inativo.
    • Segurar a contagem(diferente de pausar, continua trabalhando). Útil para cutscenes ou tutoriais.
    • Ajuste a posição de todos os efeitos visuais a seu gosto, ou use as posições pré-definidas.
    • Ajuste a ordem da camada para cada sprite exibido.
    • Possibilidade de mudar as configurações de todos os sprites enquanto o cronômetro estiver ativo.
    • Pode escolher resetar as configurações para o padrão cada vez que iniciar o cronômetro ou manter as mudanças.
    • Comandos de plugin e script calls para ajudar a configurar o seu cronômetro![/box2]

[box2 class=titlebg title=Como usar]

Existem onze parâmetros de plugin nos quais você pode configurar as funcionalidades respectivas a cada um deles e seus sub-parâmetros.
A maioria são autoexplicativos, entretanto alguns necessitam de uma explicação:
    • Funcionalidades: Configurações pertinentes a mecânica do cronômetro.
    • Segurar a contagem > Faz com que o cronômetro não altere a contagem, porém ainda mantém o mesmo em estado de "trabalhando". A switch que liga e desliga automaticamente ainda ficará ligada e quaisquer outras condições que se baseiem no "$gameTimer.isWorking()" continuarão verdadeiras. Essa opção é diferente da opção Pausar, pois não altera as cores dos sprites. É útil no caso de uma cutscene ou uma breve apresentação do que está por vir quando um cronômetro for iniciado.
    • Sprite mestre > O que você mudar aqui valerá para todos os sprites.
    • Plano de fundo e demais sprites:
    • Ativado > Todos os sprites possuem esse sub-parâmetro. Se escolher desativá-los, não é possível ativá-los dentro do jogo.
    • Orientação das barras > Caso deseje mudar a orientação das barras esteja atento para mudar também a largura e altura.
    • Personagem/ícone > A imagem que vai representar esse sprite é semelhante as imagens dos characters. Entretanto, só pode ser composta por uma linha e os frames são da esquerda para a direita(Ex: 1, 2, 3, 4...) O parâmetro Max Frames vai determinar quantos "quadrados" de animação irão aparecer para o personagem.
    • Posições pré-definidas > Você pode escolher posições pré-definidas para o cronômetro. E, a partir dessa posição, configurar a coordenada X e Y dos outros sprites. Se escolher a posição Superior centralizada, a coordenada X = 0 começará a partir dessa posição pré-definida. Caso não queira usar uma posição pré definida e queira deixar os sprites livres pela tela, coloque na opção manual e o Master X e Master Y para 0.
    • Usando outras fontes > Por favor, verifique o arquivo "font instructions" dentro da pasta "font" para mudar a fonte do cronômetro.[/box2]

[box2 class=titlebg title=Comandos de plugin]

Spoiler
Todos podem ser escritos com letras maiúsculas ou minúsculas, caso contrário estará expresso que não.
   Todos os comandos relacionados a cores, podem ser usados com valores hex, rgb ou por nomes(em inglês). No sprite de plano de fundo mostra um exemplo de cada um deles, nos demais somente consta um comando.
    • Comandos com blend: Valores de 0 a 3.
    • Comandos com opacity: Valores de 0 a 255.
    • Comandos com scale: Valores de 1 ou maior.
    • Comandos com IMG ou FILE: Escreva os nomes dos arquivos sem a extensão. É case sensitive.
    • Comandos com FontFace: Escreva os nomes dos arquivos sem a extensão. É case sensitive.
    • Comandos com Align: Os valores podem ser Left | Center | Right
    • Comando  TIMER_CHAR_SPEED: Quanto maior o valor, mais lento.
    • Comando  TIMER_CHAR_MAX_INDEX: Determina o último index que aparecerá na animação do personagem.
    • Comando  TIMER_CHANGE: Uma forma dinâmica de mudar a contagem do tempo. Você pode usar os operadores + ou – e escolher a unidade para mudança: Segundos, minutos, horas.

Exemplos:

    • Cronômetro:
  ◆Plugin Command:TIMER_ADD_SEC 15
  ◆Plugin Command:TIMER_ADD_MIN 10
  ◆Plugin Command:TIMER_ADD_HOUR 2
  ◆Plugin Command:TIMER_REMOVE_SEC 30
  ◆Plugin Command:TIMER_REMOVE_MIN 20
  ◆Plugin Command:TIMER_REMOVE_HOUR 1
  ◆Plugin Command:TIMER_HOLD
  ◆Plugin Command:TIMER_UNHOLD
  ◆Plugin Command:TIMER_START_SEC 60
  ◆Plugin Command:TIMER_START_MIN 30
  ◆Plugin Command:TIMER_START_HOUR 1
  ◆Plugin Command:TIMER_PAUSE
  ◆Plugin Command:TIMER_RESUME
  ◆Plugin Command:TIMER_STOP
  ◆Plugin Command:TIMER_SCALE 2
  ◆Plugin Command:TIMER_POS 300 150
  ◆Plugin Command:TIMER_PRESET_POS 5
  ◆Plugin Command:TIMER_OPACITY 150
TIMER_CHANGE OPERADOR TEMPO UNIDADE
  ◆Plugin Command:TIMER_CHANGE + 10 SECONDS

    • Sprite de plano de fundo:
  ◆Plugin Command:TIMER_BACK_COLOR rgb_1_255_20
  ◆Plugin Command:TIMER_BACK_COLOR #0101FF
  ◆Plugin Command:TIMER_BACK_COLOR SALMON
  ◆Plugin Command:TIMER_BACK_DIMMED_ON
  ◆Plugin Command:TIMER_BACK_DIMMED_OFF
  ◆Plugin Command:TIMER_BACK_OPACITY 150
  ◆Plugin Command:TIMER_BACK_BLEND 1
  ◆Plugin Command:TIMER_BACK_GRADCOLOR rgb_1_255_20 rgb_1_255_20
  ◆Plugin Command:TIMER_BACK_GRADCOLOR rgb_1_255_20 GREEN
  ◆Plugin Command:TIMER_BACK_GRADCOLOR #E89223 INDIANRED
  ◆Plugin Command:TIMER_BACK_GRADCOLOR BLUE rgb_1_255_20

    • Imagem:
  ◆Plugin Command:TIMER_PICTURE_OPACITY 150
  ◆Plugin Command:TIMER_PICTURE_BLEND 2
  ◆Plugin Command:TIMER_PICTURE_IMG picLayout2

    • Legenda:
  ◆Plugin Command:TIMER_LABEL_COLOR rgb_1_255_20
  ◆Plugin Command:TIMER_LABEL_OUTCOLOR rgb_1_255_20
  ◆Plugin Command:TIMER_LABEL_OPACITY 150
  ◆Plugin Command:TIMER_LABEL_BLEND 2
  ◆Plugin Command:TIMER_LABEL_OUTWIDTH 10
  ◆Plugin Command:TIMER_LABEL_SCALE 2
  ◆Plugin Command:TIMER_LABEL_POS 0 0
  ◆Plugin Command:TIMER_LABEL_FONTSIZE 18
  ◆Plugin Command:TIMER_LABEL_FONTFACE TimerFont
  ◆Plugin Command:TIMER_LABEL_ITALIC_ON
  ◆Plugin Command:TIMER_LABEL_ITALIC_OFF
  ◆Plugin Command:TIMER_LABEL_ALIGN LEFT
  ◆Plugin Command:TIMER_LABEL_TEXT COUNTDOWN!

    • Números:
  ◆Plugin Command:TIMER_NUMBERS_COLOR rgb_1_255_20
  ◆Plugin Command:TIMER_NUMBERS_OUTCOLOR rgb_1_255_20
  ◆Plugin Command:TIMER_NUMBERS_OPACITY 150
  ◆Plugin Command:TIMER_NUMBERS_BLEND 2
  ◆Plugin Command:TIMER_NUMBERS_OUTWIDTH 10
  ◆Plugin Command:TIMER_NUMBERS_SCALE 2
  ◆Plugin Command:TIMER_NUMBERS_POS 0 10
  ◆Plugin Command:TIMER_NUMBERS_ALIGN LEFT
  ◆Plugin Command:TIMER_NUMBERS_FONTSIZE 18
  ◆Plugin Command:TIMER_NUMBERS_FONTFACE TimerFont
  ◆Plugin Command:TIMER_NUMBERS_ITALIC_ON
  ◆Plugin Command:TIMER_NUMBERS_ITALIC_OFF

    • Barras(Sprite):
  ◆Plugin Command:TIMER_GAUGE_OUTCOLOR rgb_1_255_20
  ◆Plugin Command:TIMER_GAUGE_BACKCOLOR rgb_1_255_20
  ◆Plugin Command:TIMER_GAUGE_FRONTCOLOR rgb_1_255_20
  ◆Plugin Command:TIMER_GAUGE_FRONTCOLOR #E89223 INDIANRED
  ◆Plugin Command:TIMER_GAUGE_OPACITY 155
  ◆Plugin Command:TIMER_GAUGE_BLEND 3
  ◆Plugin Command:TIMER_GAUGE_POS 0 25
  ◆Plugin Command:TIMER_GAUGE_SCALE 2

    • Barras(Imagem):
  ◆Plugin Command:TIMER_PICGAUGE_BACKIMG gaugefront2
  ◆Plugin Command:TIMER_PICGAUGE_FRONTIMG gaugeback
  ◆Plugin Command:TIMER_PICGAUGE_BLEND 2
  ◆Plugin Command:TIMER_PICGAUGE_OPACITY 150
  ◆Plugin Command:TIMER_PICGAUGE_POS 0 50
  ◆Plugin Command:TIMER_PICGAUGE_SCALE 2

    • Personagem/ícone:
  ◆Plugin Command:TIMER_CHAR_OPACITY 150
  ◆Plugin Command:TIMER_CHAR_IMG fairy
  ◆Plugin Command:TIMER_CHAR_SPEED 8
  ◆Plugin Command:TIMER_CHAR_MAX_INDEX 8
  ◆Plugin Command:TIMER_CHAR_POS 0 100
  ◆Plugin Command:TIMER_CHAR_SCALE 2
[close]
[/box2]


[box2 class=titlebg title=Script Calls]

Spoiler
Funcionalidades:

    • $gameTimer.features().startCommonEvent = número
    • $gameTimer.features().endCommonEvent = número
    • $gameTimer.features().pauseCommonEvent = número
    • $gameTimer.features().setDefault = true/false
    • $gameTimer.features().gaugesUpdFreq = "Every Frame" ou "Every Second"
    • $gameTimer.features().visibility = true/false
    • $gameTimer.features().holdCount = true/false (Começar o cronômetro no "holding")

Cronômetro(Substitua X por um número):

    • $gameTimer.start(X * 60); // Segundos
    • $gameTimer.start((X * 60) * 60); // Minutos
    • $gameTimer.start(((X * 60) * 60) * 60); // Horas
    • $gameTimer.addSeconds(X);
    • $gameTimer.addMinutes(X);
    • $gameTimer.addHours(X);
    • $gameTimer.change("operador",  valor, "unidade");
    • $gameTimer.removeSeconds(X)
    • $gameTimer.removeMinutes(X)
    • $gameTimer.removeHours(X)
    • $gameTimer.pause();
    • $gameTimer.resume();
    • $gameTimer.hold();
    • $gameTimer.unhold();
    • $gameTimer.stop();

Sprite Master(funciona em todos os sprites):

    • $gameTimer.master().scale = número
    • $gameTimer.master().opacity = 0 a 255

Sprite Background(Plano de fundo):

    • $gameTimer.background().color1 = "color"
    • $gameTimer.background().color2 = "color"
    • $gameTimer.background().dimmed = true/false
    • $gameTimer.background().opacity = 0 a 255
    • $gameTimer.background().gradient = true/false
    • $gameTimer.background().orientation = true/false (OBS: true para vertical / false para horizontal)
    • $gameTimer.background().blend = 0 a 3.

Sprite Picture:

    • $gameTimer.picture().opacity = 0 a 255
    • $gameTimer.picture().blend = 0 a 3
    • $gameTimer.picture().file = "nome do arquivo" (sem extensão e difere maiúsculas e minúsculas)

Sprite Label(Legenda):

    • $gameTimer.label().align = "left/center/right"
    • $gameTimer.label().blend = 0 a 3
    • $gameTimer.label().color = "color"
    • $gameTimer.label().fontFace = "GameFont"
    • $gameTimer.label().fontSize = número
    • $gameTimer.label().italic = true/false
    • $gameTimer.label().opacity = 0 a 255
    • $gameTimer.label().outlineColor = 'color'
    • $gameTimer.label().outlineWidth = número
    • $gameTimer.label().scale = número
    • $gameTimer.label().text = "SuperTimer"

Sprite Numbers:

    • $gameTimer.numbers().align = "left/center/right"
    • $gameTimer.numbers ().blend = 0 a 3
    • $gameTimer.numbers ().color = "color"
    • $gameTimer.numbers ().fontFace = "GameFont"
    • $gameTimer.numbers ().fontSize = número
    • $gameTimer.numbers ().italic = true/false
    • $gameTimer.numbers ().opacity = 0 a 255
    • $gameTimer.numbers ().outlineColor = 'color'
    • $gameTimer.numbers ().outlineWidth = número
    • $gameTimer.numbers ().scale = número

Sprite Gauge(barra):

    • $gameTimer.gauge().backBlend = 0 a 3
    • $gameTimer.gauge().backColor = "color"
    • $gameTimer.gauge().backOpacity = 0 a 255
    • $gameTimer.gauge().outBlend = 0 a 3
    • $gameTimer.gauge().outColor = "color"
    • $gameTimer.gauge().outOpacity = 0 a 255
    • $gameTimer.gauge().outlineSize = número
    • $gameTimer.gauge().frontBlend = 0 a 3
    • $gameTimer.gauge().frontColor1 = "color"
    • $gameTimer.gauge().frontColor2 = "color"
    • $gameTimer.gauge().frontOpacity = 0 a 255
    • $gameTimer.gauge().gradient = true/false
    • $gameTimer.gauge().scale = número

Sprite picture gauge(barra usando imagens):

    • $gameTimer.picGauge().backImg = "nome do arquivo" - sem extensão.
    • $gameTimer.picGauge().frontImg = "nome do arquivo" - sem extensão.
    • $gameTimer.picGauge().opacity = 0 a 255
    • $gameTimer.picGauge().scale = número
    • $gameTimer.picGauge().blend = 0 a 3

Sprite character(personagem/ícone):

    • $gameTimer.char().blend = 0 a 3
    • $gameTimer.char().opacity = 0 a 255
    • $gameTimer.char().file = "nome do arquivo" - sem extensão
    • $gameTimer.char().frames = número
    • $gameTimer.char().speed = número
    • $gameTimer.char().scale = número

Sprite positions:

    • $gameTimer.positions().charX = X
    • $gameTimer.positions().charY = Y
    • $gameTimer.positions().gaugeX = X
    • $gameTimer.positions().gaugeY = Y
    • $gameTimer.positions().labelX = X
    • $gameTimer.positions().labelY = Y
    • $gameTimer.positions().masterX = X
    • $gameTimer.positions().masterY = Y
    • $gameTimer.positions().numbersX = X
    • $gameTimer.positions().numbersY = Y
    • $gameTimer.positions().picGaugeX = X
    • $gameTimer.positions().picGaugeY = Y
    • $gameTimer.positions().preset = 0 a 9(veja os parâmetros de plugin)


Todos esses comandos devem ser escritos da mesma forma acima. Incluindo maiúsculas e minúsculas.

Depois que você inserir na script call todos os comandos que desejar, basta iniciar o cronômetro.
Caso o cronômetro já esteja ativo, você deve usar no final um desses comandos para que a atualização seja feita:

$gameTimer.requestUpdate().position = true;
$gameTimer.requestUpdate().visibility = true;
$gameTimer.requestUpdate().settings = true;
$gameTimer.requestUpdate().colors = true;
[close]
[/box2]

Imagens(Visual)
Spoiler





[close]

Imagens(Parâmetros de plugin)
Spoiler




[close]

[box2 class=titlebg title=Termos de uso]

1. Dê os créditos para Eliaquim na seção de créditos do seu jogo.
2. Pode ser usado em jogos gratuitos e comerciais.
3. Não venda e nem diga que foi você que fez esse plugin.
4. Não redistribua esse plugin. Ao invés disso, dê o link deste post para download.
[/box2]


DOWNLOAD
Não é gratuito. Você pode comprar o plugin no link abaixo($6,00 - dólares).

Eli_SuperTimer.js
Como eu sei que o dólar está bem alto para nós, eu fiz um preço especial para os BR! R$ 15,00 por transferência bancária.
Entretanto você deve cumprir alguns requisitos:
1 - Ter um projeto sério em andamento.
2 - Este projeto precisa ter uma publicação aqui.
3 - Ter uma conta aqui no fórum que tenha no mínimo 100 posts.


Atualizações
Spoiler

Versão 1.2 - 16/05/2020
- Adicionado dependência com Eli's Book.
- Adicionado método dinâmico de mudança do cronômetro.
- Script calls mais fáceis de usar(ver arquivo de ajuda).
- Limpeza no código.
- Melhoria de performance.
- Mudança nos parâmetros que configurava as cores dos sprites.
- Adição de comando de plugin para ativar ou desativar o gradiente.
- Mudança no comando de plugin pertinente a atribuição de cores rgb.
- Movido o parâmetro de altura e largura do sprite background para o sprite master.
- Removido o comando de plugin GRAD_COLOR. Agora você pode atribuir duas cores pelo comando de cor padrão.
Versão 1.1 - 13/04/2020
- Corrigido o problema no qual várias mudanças feitas nos sprites não permaneciam após entrar e sair do menu.
- Removido o comando de plugin PICTURE TONE, pois é mais viável o usuário trocar a picture por outro arquivo de imagem.
- Limpeza no código.
Versão 1.0 - 09/04/2020
- Lançado!
[close]

Atualizado!
Versão 1.1 - 13/04/2020

- Corrigido o problema no qual várias mudanças feitas nos sprites não permaneciam após entrar e sair do menu.
- Removido o comando de plugin PICTURE TONE, pois é mais viável o usuário trocar a picture por outro arquivo de imagem.
- Limpeza no código.

Versão 1.2 - 16/05/2020
- Adicionado dependência com Eli's Book.
- Adicionado método dinâmico de mudança do cronômetro.
- Script calls mais fáceis de usar(ver arquivo de ajuda).
- Limpeza no código.
- Melhoria de performance.
- Mudança nos parâmetros que configurava as cores dos sprites.
- Adição de comando de plugin para ativar ou desativar o gradiente.
- Mudança no comando de plugin pertinente a atribuição de cores rgb.
- Movido o parâmetro de altura e largura do sprite background para o sprite master.
- Removido o comando de plugin GRAD_COLOR. Agora você pode atribuir duas cores pelo comando de cor padrão.