Hora do Servidor
LOG |
Script |
- Código:
#================================================================
#================================================================
#===================== Hora do Servidor =========================
#================================================================
#=======BY:Gladistony Silva======================================
#======= Small Edit by: Darkmel ===================================
#=======Criada para o forum: Aldeiarpgbr ========================
#=======NÃO POSTA EM OUTRO FORUM SEM AUTORIZAÇÃO=================
#================================================================
#================================================================
module User_Time
AUTO_INSTAL = true
SEMANA_PORT = true
end
#======================Não Edite================================
module Hora_Serve
$data = "00/00/0000"
$dia = ""
$hora = ""
$minuto = ""
$atualhora = false
def self.data(op=0)
return 0 unless $atualhora
b = $data.split('/')
return b[op].to_i
end
def self.receber(data)
a = data.split(' ')
$hora = a[0]
$minuto = a[1]
$data = a[2]
$dia = a[3]
$atualhora = true
if User_Time::SEMANA_PORT
case $dia
when 'Mon'
$dia = 'Segunda'
when 'Tue'
$dia = 'Terça'
when 'Wed'
$dia = 'Quarta'
when 'Thu'
$dia = 'Quinta'
when 'Fri'
$dia = 'Sexta'
when 'Sat'
$dia = 'Sabado'
when 'Sun'
$dia = 'Domingo'
end
b = $data.split('/')
$data = b[1].to_s+'/'+b[0].to_s+'/'+b[2].to_s
end
end
end
class Scene_Map
alias update_hora_gladis update
def update
Network::Main.socket.send("<00> Solicitar hora </00>\n") if Graphics.frame_count % (200) == 0
update_hora_gladis
end
end
if User_Time::AUTO_INSTAL
module Network
class Main
def self.update
return unless @socket.ready?
for line in @socket.recv(0xfff).split("\n")
@nooprec += 1 if line.include?("\000\000\000\000")
return if line.include?("\000\000\000\000")
p "#{line}" unless line.include?("<5>") or line.include?("<6>")or not $DEBUG or not User_Edit::PRINTLINES
updatebool = false
case line when /<00>(.*)<\/00>/
Hora_Serve.receber($1.to_s)
updatebool = false
return
end
updatebool = self.update_walking(line) if @login and $game_map != nil
updatebool = self.update_ingame(line) if updatebool == false and @login and $game_map != nil
updatebool = self.update_system(line) if updatebool == false
updatebool = self.update_admmod(line) if updatebool == false
updatebool = self.update_outgame(line) if updatebool == false
end
end
end
end
end
- Código:
--------------------------------
-- Data e hora do serve(25) --
--------------------------------
elseif cmd == "<00>" then
do NP():SendToUser(user.id,"<00> "..os.date("%H %M %x %a").." </00>") end
Instalação |
Caso prefira, baixe o arquivo functions.lua pelo link abaixo e substitua.
http://www.4shared.com/file/ceFZuNT_/functions.html
Ou vc pode utilizar esse servidor aki que ja foi editado
http://www.4shared.com/rar/neqEExic/Servidor.html
Para quem quiser abaixo também segue o netplay master ja editado
http://www.4shared.com/rar/gTLk4yJy/netplay_master_v407data_e_hora.html
Configuração |
A outra opção é para caso vc queira inseri a edição no network manualmente.
Notas |
- Código:
$data = (Informa a Data atual)
$dia = (Informa o dia da semana)
$hora = (Informa a Hora)
$minuto = (Informa os minutos)
$atualhora = (Informa se os demais atributos estão atualizados)
- Usando o Sistema em Eventos:
Caso queira verificar uma determinada hora/data/dia da semana em um evento, utilize opção script da 4ª aba da opção condições e faça uma igualdade da variável do script com a opção desejada.
Por exemplo:
Eu quero fazer 1 evento especial que ocorre toda a segunda feira, então eu coloco a condição
$dia == 'Segunda'
O mesmo serve para Datas e horas:
$data == '10/05/2013'
$hora == 0
$minuto == 50
- Evitando Bug inicial:
Quando o jogo inicia, por alguns segundos a data fica fora de sincronia, isso porque a data é hora não é sincronizada a todo instante. Para evitar resultados indesejáveis existe a variável $atualhora. Quando a primeira sincronização for feita ela se torna verdade, impedindo possíveis bugs. Para usa-la basta verificar na condição se ela é verdadeira:
$atualhora and ($hora == 19)
- Exemplo de Codigos:
Todos esses códigos devem ser usados na opção script da opção condição, ou diretamente em um if usando os script
$atualhora and ($hora == 19) --> Fara um evento ficar ativo enquanto for 19 horas
$atualhora and ($hora >= 19) --> Fara um evento ficar ativo das 19 horas ate meia noite
$atualhora and (($hora >= 8) or ($hora <= 19)) --> Fara o evento ficar ativo das 8 horas ate as 19 da manha.[Ideal para fazer lojas]
$atualhora and ($minuto == 50) --> Fara o evento ativar de hora em hora quando o relógio marca 50 minutos
$data == '25/12/2013' --> Ativa o evento em uma data especificada, no caso o natal desse ano
$dia == 'Segunda' --> Ativa o evento toda segunda feira
- Trabalhando com a data:
A data vem em forma de uma string e não pode ser comparada diretamente com outra, para trabalhar de forma mais eficiente com utilizamos uma função que vem embutida no script, a função Hora_Serve.data()
Usando:
Hora_Serve.data(0) --> para receber o dia
Hora_Serve.data(1) --> para o mes
Hora_Serve.data(2) --> Para o ano
Exemplo: Um evento que ative apenas se ative no dia 13 de cada mes, para isso eu uso
Hora_Serve.data(0) == 13
Para um evento que ira funcionar durante o mes de setembro
Hora_Serve.data(1) == 09
Bugs |
Compatibilidade |
Créditos |
>Darkmel [Correção de bugs]
Última edição por gladistony em Seg maio 13, 2013 3:46 pm, editado 4 vez(es)