Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Receber Hora do Servidor
+4
DeaN
lovins
Paulo Soreto
gladistony
8 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 2
Página 1 de 2 • 1, 2
Receber Hora do Servidor
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)
_________________
Re: Receber Hora do Servidor
Só tem um bug, por exemplo se a hora for 17:05 ele mostra assim:
17:5, nos minutos quando é apenas um algarismo ele nao colcoa o 0 na frente, mas fora isso ta bom demais +1.
Como está para ".to_i" no $minuto então como está integer o zero a esquerda nao vale nada, temos de transformar o "$minuto = a[1].to_i" em "$minuto = a[1].to_s" para que o zero a esquerda passe a ser reconhecido.
script já editado:
17:5, nos minutos quando é apenas um algarismo ele nao colcoa o 0 na frente, mas fora isso ta bom demais +1.
Como está para ".to_i" no $minuto então como está integer o zero a esquerda nao vale nada, temos de transformar o "$minuto = a[1].to_i" em "$minuto = a[1].to_s" para que o zero a esquerda passe a ser reconhecido.
script já editado:
- 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 = 12
$minuto = 0
$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].to_i
$minuto = a[1].to_s
$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
_________________
Re: Receber Hora do Servidor
Obg Darkmel pela edição, mudei o script original pelo que vc fez e vo te add na parte de créditos
_________________
Re: Receber Hora do Servidor
Muito bom Man. '-'
1+
1+
_________________
Dean, Programador Geral :)
Contato: Skype:matucarvalho e Facebook
The Enze - Vulzt
Shield Block
Contato: Skype:matucarvalho e Facebook
The Enze - Vulzt
Shield Block
Anti-Cheat para jogos de FPS, agora vou adaptar para jogos de RPG principalmente para o RMXP.
www.shieldblock.net
fb.com/shieldblockoficial
Re: Receber Hora do Servidor
Outra coisa, quando você for mostrar a hora com "$hora" ele tambem não mostra o 0, então no momento que for colocar esse código, coloque assim:
$hora.to_s
Exemplo:
Também fiz um script de relogio baseado nesse ai.
http://pastebin.com/fwN9KBrV
$hora.to_s
Exemplo:
self.contents.draw_text(1, 11, 200, 32, $hora.to_s + ":" + $minuto.to_s)
Também fiz um script de relogio baseado nesse ai.
http://pastebin.com/fwN9KBrV
- Código:
[list=1]
# Sistema de relogio criado por Darkmel
# Baseado no script de horas on server do Gladistony
module Relogio
#Mostrar dia/mes/ano?
Dia = false
#Posicao x
X = 350
#Posicao y
Y = 8
#Mostrar Windowskin?
Window = true
end
class Window_Relogio < Window_Base
def initialize
super(Relogio::X,Relogio::Y,100,65)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 99999999
self.opacity = 200
if Relogio::Window = true
self.windowskin = RPG::Cache.windowskin("WindskinA")
else
self.windowskin = RPG::Cache.windowskin("")
end
refresh
end
def refresh
self.contents.clear
self.contents.font.name = "Segoe UI"
self.contents.font.color = Color.new(0, 0, 0)
if Relogio::Dia = true
self.contents.draw_text(1, -11, 200, 32, $data.to_s)
end
self.contents.draw_text(1, 11, 200, 32, $hora.to_s + ":" + $minuto.to_s)
#Sombras
self.contents.font.color = Color.new(255, 255, 255)
if Relogio::Dia = true
self.contents.draw_text(0, -12, 200, 32, $data.to_s)
end
self.contents.draw_text(0, 10, 200, 32, $hora.to_s + ":" + $minuto.to_s)
end
def update
super
return if Graphics.frame_count % (10 * 10) != 0
$relogio.refresh
end
end
[/list]
_________________
Re: Receber Hora do Servidor
maninho o script é ótimo , porém está com erro! não sei se você testou não sei se foi o lek que tirou o '' bug '' mais ele da ERROR na linha 71 eu to tentando usa-lo para NETPLAY 4.9 , ok se não funcionar porfavor atualize para que funcione pois esse script é MT MAIS MMMT Útil para mim e creio que para outros também , esse são um dos script que necessito muito e nunca consigo! =/
bielmegatrinf- Iniciante
- Mensagens : 75
Créditos : 3
Re: Receber Hora do Servidor
aqui esta el script sin bugs :
- 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 Config::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_outgame(line) if updatebool == false
end
end
end
end
end
_________________
- Spoiler:
Página 1 de 2 • 1, 2
Tópicos semelhantes
» [VB6]Pegando hora de um servidor
» [Help]Ajuda no Script Data e Hora do Servidor!
» Script que faz "receber dano"
» [Dúvida] Receber dano sem equip.
» Código para receber comando do server
» [Help]Ajuda no Script Data e Hora do Servidor!
» Script que faz "receber dano"
» [Dúvida] Receber dano sem equip.
» Código para receber comando do server
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos