Dia e Noite
3 participantes
Brasil G4mes :: Scripts :: Scripts RGSS2
Página 1 de 1
Dia e Noite
Eu tava dando uma fuçada pela net, quando me deparei com este script. taí o tópico do Yoshi, da DungeonMakers:
----------------------------
Essa é a versão do Script de dia e noite do XP adaptado para o vx, nele é possível criar eventos que ocorram durante o dia, ou de noite como
preferir. Acrescenta um relógio no menu e a cada etapa do dia (manhã, tarde, noite e madrugada)tem mudança na tonalidade da tela dando um efeito bem legal mostrando que o tempo está realmente passando. Para os mapas que você quiser adicionar tal efeito, simplesmente escreva um "KTS" antes do nome do mapa (no caso deve ser um mapa denominado como "fora", por exemplo: KTSmundo).
- Como usar: Apenas cole o script na área de scripts adicionais.
- Configurações no próprio script.
- Créditos à:
. Kylock, por criar o script;
. Equipe Gemstone, por tê-lo traduzido;
. E a Yoshi, por disponibilizar
- SCRIPT:
----------------------------
Essa é a versão do Script de dia e noite do XP adaptado para o vx, nele é possível criar eventos que ocorram durante o dia, ou de noite como
preferir. Acrescenta um relógio no menu e a cada etapa do dia (manhã, tarde, noite e madrugada)tem mudança na tonalidade da tela dando um efeito bem legal mostrando que o tempo está realmente passando. Para os mapas que você quiser adicionar tal efeito, simplesmente escreva um "KTS" antes do nome do mapa (no caso deve ser um mapa denominado como "fora", por exemplo: KTSmundo).
- Como usar: Apenas cole o script na área de scripts adicionais.
- Configurações no próprio script.
- Créditos à:
. Kylock, por criar o script;
. Equipe Gemstone, por tê-lo traduzido;
. E a Yoshi, por disponibilizar
- SCRIPT:
- Spoiler:
- #
# Sistema de Tempo Kylock para VX v1.3
# 10.5.2008
# traduzido pela Equipe Gemstone
#
# Script por: Kylock
# Praticamente todo reescrito desde a versão para XP. Códigos mais limpos
# e compatíveis. Esse é o meu sistema de dia e noite. Ele adiciona uma nova janela
# ao menu, então, se você usa um CMS, cole este script acima dele.
# Eu tentei fazer esse o mais customizável possível, as configurações
# são encontrada logo em baixo. Embora as variáveis sejam opcionais, eu
# sugiro que as usem, pois poderão construtir eventos baseados nesse script
# mais facilmente.
#
# Histórico
# 1.0 - Lançamento.
# 1.1 - Corrigido a mudança de tonalidade nas batalhas. Coloque este script
# abaixo de scripts de batalha caso você note alguma erro na mesma.
# 1.2 - Corrigida a precisão de $kts.stop e $kts.go
# 1.3 - $kts.stop realmente para tudo agora. Adicionadas switches para eventos.
#
# Instruções de Mudança de Tonalidade
#
# Mapas designados como "fora" são os únicos que devem ser afetados pela
# tonalidade. Coloque um [KTS] antes do nome do mapa para criar este efeito.
#
# Chamar Funções do Script
#
# Use o comando "Chamar Script".
# $kts.stop - parar o tempo
# $kts.go - continuar o tempo
# $kts.sec(n) - avança (n) segundos
# $kts.min(n) - avança (n) minutos
# $kts.hours(n) - avança (n) horas
# $kts.days(n) - avança (n) dias.
# $kts.jump_to_hour(n) - Muda o tempo para a hora (n).
#
# Configurações do Dabatase do Jogo
#
# Esse script, por padrão, usa as seguintes variáveis e switches:
# Variáveis:
# [1] O tempio atual [4] Horas Atual
# [2] Segundo atual [5] Dia Atual
# [3] Minuto atual [6] Nome do dia atual
# Switches:
# [1] ON durante a noite (2200-0400)(10pm-4am)
# [2] ON durante a madrugada (0500-0800)( 5am-8am)
# [3] ON durante o amanhecer (0900-1800)( 9am-6pm)
# [4] ON durante o anoitecer (1900-2100)( 7pm-9pm)
#
#
# Guarda as configurações definidas.
#
module KTS
#-
# Define as configurações do relógio
#-
# Define a velocidade do relógio.
# 1 é o tempo real. O padrão é 100 (cem vezes mais rápido do que o tempo real)
SPEED = 100
#AM-PM? (True: relógio de 12 horas AM e 12 horas PM, False: relógio de 24 horas)
AMPM = false
# Define o horário inicial do jogo.
START_HOUR = 0
START_DAY = 1
#-
# Nomes dos dias
#-
DAY_NAMES = ["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]
#-
# Períodos
#-
T1 = [ 0,5 ] # Noite # Arruma os períodos para a tonalidade.
T2 = [ 6,8 ] # Madrugada # [Hora Inicial, Hora Final]
T3 = [ 9,18] # Manhã # Use termos de um relógio de 24 horas.
T4 = [19,21] # Tarde
T5 = [22,24] # Noite # <- Ex: Noite é entre 22:00 e 24:00
#-
# Configurações para as variáveis em jogo
#-
# True para colocar o tempo nas variáveis e switches definidas
DATABASE_OUTPUT = true
# Variável a ser usada
TIME = 1 #(É nesse formato: "2:48 AM" ou "02:48")
SECONDS = 2
MINUTES = 3
HOURS = 4
DAYS = 5
DAYNAME = 6
# Switches
NIGHT = 1 # Estará on nas horas definidas
DAWN = 2 # Estará on nas horas definidas
DAY = 3 # Estará on nas horas definidas
SUNSET = 4 # Estará on nas horas definidas
#-
# Configurações para a tonalidade da tela
#-
# True para habilitar essa função; false para desabilitar essa função.
USE_TONE = true
# Duração da mudança de tonalidade (em frames)
FADE_LENGTH = 120
# Definir Tonalidades para cada período
# Vermelho, Verde, Azul, Cinza
C1 = Tone.new(-187, -119, -17, 68)
C2 = Tone.new( 17, -51, -102, 0)
C3 = Tone.new( 0, 0, 0, 0)
C4 = Tone.new( -68, -136, -34, 0)
C5 = Tone.new(-187, -119, -17, 68)
end
#
# Engine do Sistema de Tempo
#
class Kylock_Time_System
# arrumas as variáveis
def initialize
$kts_map_data = load_data("Data/MapInfos.rvdata")
@event_offset = (KTS::START_HOUR * 3600) + (KTS::START_DAY * 86400)
@kts_stop = false
$kts_event_tone = false
$kts_battle_tone = true
end
# Guarda o tempo e atualiza
def update
if !@kts_stop
@total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset
@seconds = (@total_seconds) % 60
@minutes = (@total_seconds / 60) % 60
@hours = (@total_seconds / 3600) % 24
@days = (@total_seconds / 86400)
update_tint
if KTS::DATABASE_OUTPUT
update_variables
update_switches
end
end
end
def update_variables
$game_variables[KTS::TIME] = getTime
$game_variables[KTS::SECONDS] = @seconds
$game_variables[KTS::MINUTES] = @minutes
$game_variables[KTS::HOURS] = @hours
$game_variables[KTS::DAYS] = @days
$game_variables[KTS::DAYNAME] = getDayName
end
def update_switches
if @period == 1 || @period == 5
$game_switches[KTS::NIGHT] = true
else
$game_switches[KTS::NIGHT] = false
end
if @period == 2
$game_switches[KTS::DAWN] = true
else
$game_switches[KTS::DAWN] = false
end
if @period == 3
$game_switches[KTS::DAY] = true
else
$game_switches[KTS::DAY] = false
end
if @period == 4
$game_switches[KTS::SUNSET] = true
else
$game_switches[KTS::SUNSET] = false
end
end
def getTime
if KTS::AMPM
# Formats a 12-Hour Clock
if @hours > 12
hours1 = @hours - 12
if hours1 > 9
time = sprintf("%02d:%02d" + " PM", hours1, @minutes)
else
time = sprintf("%01d:%02d" + " PM", hours1, @minutes)
end
else
if @hours > 9
time = sprintf("%02d:%02d" + " AM", @hours, @minutes)
else
time = sprintf("%01d:%02d" + " AM", @hours, @minutes)
end
end
return time
else
# Formats a 24-Hour Clock
time = sprintf("%02d:%02d", @hours, @minutes)
return time
end
end
#-
# Comandos para as Funções do Script
#-
def stop
@time_stopped = @total_seconds
@kts_stop = true
end
def go
total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset
@event_offset -= (total_seconds - @time_stopped)
@kts_stop = false
end
def sec(sec = 0)
@event_offset += sec
end
def min(min = 0)
@event_offset += min * 60
end
def hours(hours = 0)
@event_offset += hours * 3600
end
def days(days = 0)
@event_offset += days * 86400
end
def jump_to_hour(jhour = 0)
while @hours != jhour
@event_offset += 1
$kts.update
end
end
#-
# Outras funções
#-
def getDayName
weekday = (@days % KTS::DAY_NAMES.length)
return KTS::DAY_NAMES[weekday]
end
#-
# Tonalidade de Tela
#-
def update_tint(duration = KTS::FADE_LENGTH)
if KTS::USE_TONE && !$kts_event_tone && $kts_map_data[$game_map.map_id].outside_tint?
if @hours >= KTS::T1[0] and @hours <= KTS::T1[1]
@period = 1
screen.start_tone_change(KTS::C1,duration)
elsif @hours >= KTS::T2[0] and @hours <= KTS::T2[1]
@period = 2
screen.start_tone_change(KTS::C2,duration)
elsif @hours >= KTS::T3[0] and @hours <= KTS::T3[1]
@period = 3
screen.start_tone_change(KTS::C3,duration)
elsif @hours >= KTS::T4[0] and @hours <= KTS::T4[1]
@period = 4
screen.start_tone_change(KTS::C4,duration)
elsif @hours >= KTS::T5[0] and @hours <= KTS::T5[1]
@period = 5
screen.start_tone_change(KTS::C5,duration)
end
else
# sem mundaça nos mapas "dentro"
if !$kts_map_data[$game_map.map_id].outside_tint?
screen.start_tone_change(Tone.new(0,0,0,0),duration)
end
end
end
def screen
if $game_temp.in_battle
return $game_troop.screen
else
return $game_map.screen
end
end
end
#
# Atualiza instantaneamente quando se teletransporta
#
class Game_Map
alias kts_setup setup
def setup(map_id)
kts_setup(map_id)
$kts_event_tone = false
$kts.update
$kts.update_tint(0)
end
end
#
# Atualiza instantaneamente quando entra na batalha
#
class Spriteset_Battle
alias kts_create_battleback create_battleback
def create_battleback
$kts.update_tint(0)
kts_create_battleback
end
end
#
# Desabilita temporariamente quando um evento muda a tonalidade
#
class Game_Interpreter
alias kts_Interpreter_command_223 command_223
def command_223
$kts_event_tone = true
kts_Interpreter_command_223
end
end
#
# Integra o sistema ao Game System
#
class Game_System
# inits a KTS object
alias kts_initialize initialize
def initialize
$kts=Kylock_Time_System.new
kts_initialize
end
# Updates kts every game frame
alias kts_update update
def update
$kts.update
kts_update
end
end
#
# Scaneia mapas para o nome
#
class RPG::MapInfo
def name # Impede que sistemas de localização leiam o [KTS]
return @name.gsub(/\[.*\]/) {""} # colchetes e os inclusos
end
def original_name
return @name
end
def outside_tint?
return @name.scan(/[\KTS]/).size > 0
end
end
#
# Configura a janela de tempo
#
class Window_KTS < Window_Base
def initialize(x, y)
super(x, y, 160, WLH + 32)
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(4, -6, 120, 32, $kts.getTime, 2)
end
def update
super
$kts.update
self.contents.clear
self.contents.draw_text(4, -6, 120, 32, $kts.getTime, 2)
end
end
#
# Adiciona a janela ao menu
#
class Scene_Menu < Scene_Base
alias kts_start start
def start
kts_start
@kts_window = Window_KTS.new(0,305)
end
alias kts_terminate terminate
def terminate
kts_terminate
@kts_window.dispose
end
alias kts_update update
def update
kts_update
@kts_window.update
end
end
#
# Para as tela de Load/Save
#
class Scene_File
alias kts_write_save_data write_save_data
def write_save_data(file)
kts_write_save_data(file)
Marshal.dump($kts, file)
end
alias kts_read_save_data read_save_data
def read_save_data(file)
kts_read_save_data(file)
$kts = Marshal.load(file)
end
end
Tyriel- Membro
- Mensagens : 566
Fama : 19
Re: Dia e Noite
*Emocionado* Uia! Meu primeiro ponto de fama!
*modo emo on* Vou chorar!
*modo emo off*
*modo emo on* Vou chorar!
*modo emo off*
Tyriel- Membro
- Mensagens : 566
Fama : 19
Re: Dia e Noite
Script muito legal mesmo cara, tá de parabéns vou te dar mais um ponto de fama também.
Off: Acabei de virar camponês \o
Off: Acabei de virar camponês \o
Brutus_BK- Membro
- Mensagens : 75
Fama : 8
Brasil G4mes :: Scripts :: Scripts RGSS2
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos