Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt

» Craftage Engine (Eclipse Origins totalmente modificado e sem bugs)
Seg 27 Abr 2015, 18:24 por pigot98


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Script de Dia e Noite em Sex 21 Set 2012, 12:03

Carlos

avatar
Administrador
Administrador
Esse é um script que faz com que, depois de um certo tempo, comece a anoitecer, Apos um tempo, amanhece novamente.

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

Créditos:
Kylock


__________________________________________
[Você precisa estar registrado e conectado para ver esta imagem.]


[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver esta imagem.]
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

2 Re: Script de Dia e Noite em Sex 21 Set 2012, 12:46

LeonScottKennedy

avatar
Administrador
Administrador
Parece ser legal o script,mas poderia ter postado umas imagens né?Obrigado por disponibilizar +1


__________________________________________
[Você precisa estar registrado e conectado para ver esta imagem.]

"Quando não houver mais espaço no inferno os mortos andaram na Terra" - Nem sei o autor :]
Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum