Makisso Aspirante
| Assunto: [RM VX]-Script de dia e noite Qua Out 07, 2009 4:19 pm | |
| Sistema de Tempo Kylock para VX v1.3 por Kylock tradução Equipe Gemstone IntroduçãoEsse é um script que faz com que, depois de um certo tempo, comece a anoitecer. Após algum tempo, amanhece novamente. Como Usar 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) Script - Código:
-
# # 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 Espero ter ajudado ^.^ |
|
Caio Mx2 Tenente-Coronel
Registro : Mx2 : Humano :
| Assunto: Re: [RM VX]-Script de dia e noite Qua Out 07, 2009 7:58 pm | |
| Hummm.... interessante, já vi muita gente usando sistemas por eventos, script até que parece legal mais por eventos vc pode personalizar melhor tipo colocar um contador diferente sei lá. Talvez eu use esse script em algum projeto futuro. Vlw por postar aqui o/
Fui na velocidade da LUZ* |
|