Bem eu tava precisando criar um sistema de cooldown para meu projeto e espero que ajude outras pessoas que também estejam precisando disso.
O sistema em si e simples, a gente vai usar uma variável um evento no mapa um evento comum e um script.
1. Vá no seu Banco de Dados(F9) > Itens, seleciona uma porção qualquer que tenha no seu jogo, tire todos os efeitos de recuperação de hp, mp, etc... Deixe só o custo de mana, faça isso para todas as suas poções mas de agora deixe só uma desse jeito.
2. Em Eventos Comuns crie o total de eventos equivalente ao total de poções que você tem no seu jogo, por exemplo no meu projeto tem 10 poções vou criar 10 eventos comuns.
3. Deixe seu evento com uma condição de variável, seleciona algum numero de algum nome para essa variável e deixe em constante o numero 2, também pode deixar selecionado Igual a
4. Na condição coloque a opção Mudar Item > Adicionar > Nome da sua Poção, explicando, assim que seu personagem usar a poção e tiver no cooldown ela irá gastar se não tiver essa parte, então acho meio chato o player usar a poção não ter efeito e mesmo assim ele perder ela no inventário então essa e uma "gambiarra" que eu fiz pra não acontecer isso.
4.1. Em excecão coloque o efeito que a poção irá ter, seja cura ou aumentar algum status enfim isso ai e com você, e logo abaixo coloque uma Opção de Variável, nessa opção de variável coloque a variável que você selecionou na condição logo acima. em Operação deixe marcado Substituir, em Operando deixe Constante e o numero é 2.
O sistema funcionará da seguinte forma, estamos usando uma variável pra saber se ele usou a poção se ele usou mudamos o valor dessa variável para 2, e se ainda tiver em cooldown e ele usar mais uma poção não irá ter efeito e ele "continuará" com ela no inventario
5 Vamos para o script, adicione o script acima do Main
Depois que você adicionou esse script vá no Main, aperte Ctrl + F, e cole isso Graphics.freeze, depois aperte Proximo, assim que você achar a linha que está escrito isso cole logo abaixo dessa linha adicione
Deve ficar assim
Depois disso, volte no script que adicionamos, você vai vê as seguintes linhas
Em $game_variables[13] no lugar desse 13 você coloca o numero da variável que você selecionou quando estávamos fazendo o evento comum, o meu está 13 porque e este que selecionei em evento comum
Em RPG::Cache.icon("CDPotion.png") Em "CDPotion.png" e o nome da imagem que você quer que apareça quando estiver em cooldown, o formato da minha imagem é em PNG mas acho que pode ser também em JPEG.
O super(575, 13, 55, 54) É a posição e tamanho da janela com a imagem que irá aparecer.
Tudo isso que citei e que você precisa trocar no seu jogo por que isso eu adaptei para o meu e cada um é cada um.
Agora vamos no seu mapa, essa é parte mais chata se você tem um projeto com muitos mapas
6. Crie um evento no seu mapa, tire o nome, não precisa nem de imagem, la em baixo em Iniciar Quando marque a opção processo paralelo. Agora no evento adicione uma condição de variável e deixe a variável que você usou no evento comum. Da mesma forma que no evento comum, Constante, 2, Igual a.
6.1. Na condição você adiciona um Esperar, nesse esperar você coloca a quantidade de frames que você quer que o player espere até usar a outra poção o tempo do cooldown.
OBS: 60 frames = 1 segundo.
Depois desse esperar coloque uma Opção de Variável, marque a variável que está usando para tudo(Evento Comum, Script), em Operação coloque Substituir, e em Operando deixe Constante só mude o numeral, coloque o numero 1.
7. No mesmo script no ultimo <>, Adicione um Chamar Script que fica na 3° Aba, nesse chamar script escreva o seguinte código:
OBS: Se não der certo faça isso em outro evento em Processo paralelo também.
8. Oitavo e ultimo passo, o mais simples, volte no Banco de Dados(F9) > Itens, agora naqueles itens que você tirou todos efeitos, em Evento Comum marque o efeito que você criou para aquela determinada poção e pronto agora e só testas.
OBS: O Evento que criamos tem que ter em todos os mapas, Todos, pois o cooldown só conta no mapa em que existe esse evento.
Para deixar o fundo transparente e só adicionar a linha de código
Depois de
O sistema em si e simples, a gente vai usar uma variável um evento no mapa um evento comum e um script.
- Como vai Ficar:
1. Vá no seu Banco de Dados(F9) > Itens, seleciona uma porção qualquer que tenha no seu jogo, tire todos os efeitos de recuperação de hp, mp, etc... Deixe só o custo de mana, faça isso para todas as suas poções mas de agora deixe só uma desse jeito.
2. Em Eventos Comuns crie o total de eventos equivalente ao total de poções que você tem no seu jogo, por exemplo no meu projeto tem 10 poções vou criar 10 eventos comuns.
3. Deixe seu evento com uma condição de variável, seleciona algum numero de algum nome para essa variável e deixe em constante o numero 2, também pode deixar selecionado Igual a
- Imagem:
4. Na condição coloque a opção Mudar Item > Adicionar > Nome da sua Poção, explicando, assim que seu personagem usar a poção e tiver no cooldown ela irá gastar se não tiver essa parte, então acho meio chato o player usar a poção não ter efeito e mesmo assim ele perder ela no inventário então essa e uma "gambiarra" que eu fiz pra não acontecer isso.
4.1. Em excecão coloque o efeito que a poção irá ter, seja cura ou aumentar algum status enfim isso ai e com você, e logo abaixo coloque uma Opção de Variável, nessa opção de variável coloque a variável que você selecionou na condição logo acima. em Operação deixe marcado Substituir, em Operando deixe Constante e o numero é 2.
- Imagem:
O sistema funcionará da seguinte forma, estamos usando uma variável pra saber se ele usou a poção se ele usou mudamos o valor dessa variável para 2, e se ainda tiver em cooldown e ele usar mais uma poção não irá ter efeito e ele "continuará" com ela no inventario
5 Vamos para o script, adicione o script acima do Main
- Código:
#-----------------------------#
# Author: InpuT #
# Version: 1.00 #
# Date: 01/08/2015 #
#-----------------------------#
class CooldownIMG < Window_Base
def initialize
if $game_variables[13] == 2 #Numero da variável que você selecionou no Evento Comum
super(575, 13, 55, 54) #Posição
self.contents = Bitmap.new(width - 32, height - 32)
icone = RPG::Cache.icon("CDPotion.png") #Nome do Ícone
rect = Rect.new(0, 0, icone.width, icone.height)
self.contents.blt(0, 0, icone, rect)
self.opacity = 50
end
end
end
Depois que você adicionou esse script vá no Main, aperte Ctrl + F, e cole isso Graphics.freeze, depois aperte Proximo, assim que você achar a linha que está escrito isso cole logo abaixo dessa linha adicione
- Código:
$janela = []
Deve ficar assim
- Código:
Graphics.freeze
$janela = []
Depois disso, volte no script que adicionamos, você vai vê as seguintes linhas
- Código:
if $game_variables[13] == 2
...
icone = RPG::Cache.icon("CDPotion.png")
...
super(575, 13, 55, 54)
Em $game_variables[13] no lugar desse 13 você coloca o numero da variável que você selecionou quando estávamos fazendo o evento comum, o meu está 13 porque e este que selecionei em evento comum
Em RPG::Cache.icon("CDPotion.png") Em "CDPotion.png" e o nome da imagem que você quer que apareça quando estiver em cooldown, o formato da minha imagem é em PNG mas acho que pode ser também em JPEG.
O super(575, 13, 55, 54) É a posição e tamanho da janela com a imagem que irá aparecer.
Tudo isso que citei e que você precisa trocar no seu jogo por que isso eu adaptei para o meu e cada um é cada um.
Agora vamos no seu mapa, essa é parte mais chata se você tem um projeto com muitos mapas
6. Crie um evento no seu mapa, tire o nome, não precisa nem de imagem, la em baixo em Iniciar Quando marque a opção processo paralelo. Agora no evento adicione uma condição de variável e deixe a variável que você usou no evento comum. Da mesma forma que no evento comum, Constante, 2, Igual a.
6.1. Na condição você adiciona um Esperar, nesse esperar você coloca a quantidade de frames que você quer que o player espere até usar a outra poção o tempo do cooldown.
OBS: 60 frames = 1 segundo.
Depois desse esperar coloque uma Opção de Variável, marque a variável que está usando para tudo(Evento Comum, Script), em Operação coloque Substituir, e em Operando deixe Constante só mude o numeral, coloque o numero 1.
7. No mesmo script no ultimo <>, Adicione um Chamar Script que fica na 3° Aba, nesse chamar script escreva o seguinte código:
- Código:
$janela = CooldownIMG.new
OBS: Se não der certo faça isso em outro evento em Processo paralelo também.
8. Oitavo e ultimo passo, o mais simples, volte no Banco de Dados(F9) > Itens, agora naqueles itens que você tirou todos efeitos, em Evento Comum marque o efeito que você criou para aquela determinada poção e pronto agora e só testas.
OBS: O Evento que criamos tem que ter em todos os mapas, Todos, pois o cooldown só conta no mapa em que existe esse evento.
Para deixar o fundo transparente e só adicionar a linha de código
- Código:
self.windowskin = RPG::Cache.windowskin("blank")
Depois de
- Código:
icone = RPG::Cache.icon("CDPotion.png") #Nome do Ícone