Phangon

Bônus Diario

Aug 11th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.64 KB | None | 0 0
  1. =begin
  2. #===============================================================================
  3. Titulo: Bônus Diario
  4. Autor: Math
  5. Data: 11/08/2018
  6. --------------------------------------------------------------------------------
  7. ** Termos de Uso
  8. * Uso livre para jogos não comerciais
  9. * Entre em contato comigo para uso comercial
  10. * O script é fornecido como está, não darei suporte
  11. * Creditos a mim, Math, por criar o script
  12. --------------------------------------------------------------------------------
  13. ** Descrição
  14.  
  15. Este script fornece um simples mecanismo de "bônus diário", permitindo que os
  16. jogadores recebam recompensas de bônus uma vez por dia.
  17. Ele assume que você pode obter um bônus por dia, mas você pode escrever
  18. suas condições para usar períodos diferentes se quer.
  19.  
  20.   Serve para jogos offline e utiliza o tempo do computador do jogador para
  21. dar um bônus e determinar se as recompensas podem ser resgatadas.
  22.  
  23.   Para fornecer aos desenvolvedores mais controle sobre as recompensas, as
  24. chamadas de script são fornecidos. Cabe ao desenvolvedor determinar como
  25. configurá-lo para seu jogo.
  26.  
  27. --------------------------------------------------------------------------------
  28. ** Instalação
  29.  
  30. Cole esse script acima do Main (Principal) e abaixo dos outros scripts
  31.  
  32. --------------------------------------------------------------------------------
  33. ** Uso
  34.  
  35.   As seguintes chamadas de script são essas:
  36.  
  37. daily_bonus_available?
  38.  
  39. Isso verifica se você é elegível para bônus de login, com base no dia atual.
  40.  
  41. Quando um bônus foi resgatado, você pode querer atualizar quando o próximo
  42. bônus pode ser resgatado colocando usando esta chamada de script:
  43.  
  44. update_bonus_time(seconds)
  45.  
  46. Tenha em mente que estes são especificados em segundos. Se não houver tempo
  47.  especificado, presume-se que seja um dia, que é 86400 segundos
  48.  
  49. --------------------------------------------------------------------------------
  50. ** Exemplo
  51.  
  52. Suponha que você tenha decidido criar um evento que sirva como recompensa do
  53. NPC. Use uma variável para determinar quantas vezes você recebeu recompensas.
  54.  
  55.   Você faria uma condição que verifica se os bônus de login são acessíveis.
  56.   Se sim, você passaria por uma série de verificações de variáveis para
  57.   determinar qual recompensa dar a eles.
  58.  
  59.   Nesse caso, coloque assim na opção de "chamar script"
  60. "update_bonus_time" para registrar a recompensa real.
  61.  
  62. --------------------------------------------------------------------------------
  63. ** Notas
  64. Um simples cálculo de diferença de dias é usado para determinar a diferença
  65.   entre o último dia de reivindicação de recompensa e o dia atual.
  66.  
  67.   Isso não conta corretamente para o horário de verão.
  68.  
  69.   Os jogadores podem simplesmente mudar a hora do seu sistema para frente se
  70. quiserem receber recompensas mais rápido se quisessem.
  71.  
  72. #===============================================================================
  73. =end
  74. $imported = {} if $imported.nil?
  75. $imported[:TH_DailyBonus] = true
  76. #===============================================================================
  77. # ** Configuração
  78. #===============================================================================
  79. module TH
  80. module Daily_Bonus
  81.  
  82. end
  83. end
  84. #===============================================================================
  85. # ** Resto do Script
  86. #===============================================================================
  87. class Game_System
  88.  
  89. attr_reader :last_reward_time
  90. attr_reader :next_reward_time
  91.  
  92. alias :th_daily_bonus_initialize :initialize
  93. def initialize
  94. th_daily_bonus_initialize
  95. @last_reward_time = Time.at(0)
  96. @next_reward_time = Time.at(0)
  97. end
  98.  
  99. #-----------------------------------------------------------------------------
  100. # Checagem simples
  101. #-----------------------------------------------------------------------------
  102. def daily_bonus_available?
  103. current_time = Time.now
  104. return current_time > @next_reward_time
  105. end
  106.  
  107. def update_bonus_time(seconds)
  108. @last_reward_time = Time.now
  109. @next_reward_time = Time.now + seconds
  110. end
  111. end
  112.  
  113. class Game_Interpreter
  114.  
  115. def daily_bonus_available?
  116. $game_system.daily_bonus_available?
  117. end
  118.  
  119. # Adiciona um tempo bonus em segundos (Por padrão, um dia vai ser assim:
  120. # 60 x 60 x 24 = 86400 segundos)
  121. def update_bonus_time(seconds=86400)
  122. $game_system.update_bonus_time(seconds)
  123. end
  124.  
  125. def last_reward_time
  126. $game_system.last_reward_time
  127. end
  128.  
  129. def next_reward_time
  130. $game_system.next_reward_time
  131. end
  132. end
Advertisement
Add Comment
Please, Sign In to add comment