Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin
- #===============================================================================
- Titulo: Bônus Diario
- Autor: Math
- Data: 11/08/2018
- --------------------------------------------------------------------------------
- ** Termos de Uso
- * Uso livre para jogos não comerciais
- * Entre em contato comigo para uso comercial
- * O script é fornecido como está, não darei suporte
- * Creditos a mim, Math, por criar o script
- --------------------------------------------------------------------------------
- ** Descrição
- Este script fornece um simples mecanismo de "bônus diário", permitindo que os
- jogadores recebam recompensas de bônus uma vez por dia.
- Ele assume que você pode obter um bônus por dia, mas você pode escrever
- suas condições para usar períodos diferentes se quer.
- Serve para jogos offline e utiliza o tempo do computador do jogador para
- dar um bônus e determinar se as recompensas podem ser resgatadas.
- Para fornecer aos desenvolvedores mais controle sobre as recompensas, as
- chamadas de script são fornecidos. Cabe ao desenvolvedor determinar como
- configurá-lo para seu jogo.
- --------------------------------------------------------------------------------
- ** Instalação
- Cole esse script acima do Main (Principal) e abaixo dos outros scripts
- --------------------------------------------------------------------------------
- ** Uso
- As seguintes chamadas de script são essas:
- daily_bonus_available?
- Isso verifica se você é elegível para bônus de login, com base no dia atual.
- Quando um bônus foi resgatado, você pode querer atualizar quando o próximo
- bônus pode ser resgatado colocando usando esta chamada de script:
- update_bonus_time(seconds)
- Tenha em mente que estes são especificados em segundos. Se não houver tempo
- especificado, presume-se que seja um dia, que é 86400 segundos
- --------------------------------------------------------------------------------
- ** Exemplo
- Suponha que você tenha decidido criar um evento que sirva como recompensa do
- NPC. Use uma variável para determinar quantas vezes você recebeu recompensas.
- Você faria uma condição que verifica se os bônus de login são acessíveis.
- Se sim, você passaria por uma série de verificações de variáveis para
- determinar qual recompensa dar a eles.
- Nesse caso, coloque assim na opção de "chamar script"
- "update_bonus_time" para registrar a recompensa real.
- --------------------------------------------------------------------------------
- ** Notas
- Um simples cálculo de diferença de dias é usado para determinar a diferença
- entre o último dia de reivindicação de recompensa e o dia atual.
- Isso não conta corretamente para o horário de verão.
- Os jogadores podem simplesmente mudar a hora do seu sistema para frente se
- quiserem receber recompensas mais rápido se quisessem.
- #===============================================================================
- =end
- $imported = {} if $imported.nil?
- $imported[:TH_DailyBonus] = true
- #===============================================================================
- # ** Configuração
- #===============================================================================
- module TH
- module Daily_Bonus
- end
- end
- #===============================================================================
- # ** Resto do Script
- #===============================================================================
- class Game_System
- attr_reader :last_reward_time
- attr_reader :next_reward_time
- alias :th_daily_bonus_initialize :initialize
- def initialize
- th_daily_bonus_initialize
- @last_reward_time = Time.at(0)
- @next_reward_time = Time.at(0)
- end
- #-----------------------------------------------------------------------------
- # Checagem simples
- #-----------------------------------------------------------------------------
- def daily_bonus_available?
- current_time = Time.now
- return current_time > @next_reward_time
- end
- def update_bonus_time(seconds)
- @last_reward_time = Time.now
- @next_reward_time = Time.now + seconds
- end
- end
- class Game_Interpreter
- def daily_bonus_available?
- $game_system.daily_bonus_available?
- end
- # Adiciona um tempo bonus em segundos (Por padrão, um dia vai ser assim:
- # 60 x 60 x 24 = 86400 segundos)
- def update_bonus_time(seconds=86400)
- $game_system.update_bonus_time(seconds)
- end
- def last_reward_time
- $game_system.last_reward_time
- end
- def next_reward_time
- $game_system.next_reward_time
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment