Dia e noite de acordo com o servidor:
Muitos já devem ter visto sistemas de dia e noite de acordo com a hora do computador, ele é muito bom para MMORPG, mas de que adianta o jogador mudar a hora do seu pc e no jogo, com esse script ele pega a hora do computador do servidor, podendo fazer assim a ativaçao de eventos, por exemplo a meia-noite.
Pega a hora direto do computador onde o servidor está hosteado, podendo fazer teleports/eventos em tal hora do dia também.
Server side:
1 - Abra a pasta do seu servidor
2 - Abra a pasta data
3 - Crie um arquivo chamado dn.dat
4 - Dentro do dn.dat coloque
- Código:
<hrS>_6</hrS>
5 - Vá denovo na pasta do servidor, agora abra a pasta scripts, e abra o functions.lua
6 - Procure por:
- Código:
elseif cmd == "<25f>" then
do NP():SendToUser(tradeid, data) end
--
7 - Em baixo adicione:
- Código:
--------------------------------
-- Dia e noite (hsR) --
-- Criado por DARKMEL --
--------------------------------
elseif cmd == "" then
do file = io.open("Data\\dn.dat", "r")
for line in file:lines() do
NP():SendToAll(""..line.."\n")
end
file:close()
end
8 - Baixe esse arquivo e coloque na mesma pasta que o "motd.txt".
p://migre.me/esIYT
Client side:
1 - Em seu projeto crie um novo script, e nele adicione isso: http://pastebin.com/g8BGyXwX
2 - Agora crie um script e nele coloque:
HORA = [22]
$hora = HORA
3 - Agora vá no script [SC] Scene_Title (o menor) e em baixo de: def main coloque:
- Código:
$hora = HORA
Network::Main.socket.send("'request'\n")
4 - Agora vá no script: [NET] Network e em baixo de:
- Código:
# Chat Recieval
when /(.*)<\/chat>/
$game_temp.chat_log.push($1.to_s)
$game_temp.chat_refresh = true
Audio.se_play(CONF::NEW_CHAT_MESS[0],
CONF::NEW_CHAT_MESS[1],
CONF::NEW_CHAT_MESS[2])
return true
Adicione:
- Código:
#Dia e noite pelo servidor criado por Darkmel.
when /(.*)<\/hrS>/
n = $1.split("_")
$hora = n[1].to_i
$game_map.need_refresh = true
if $scene.is_a?(Scene_Map)
$scene.update
$game_map.update
end
return true
5 - Agora no mesmo script, em baixo de:
- Código:
when /<25f>(.*)<\/25f>/ #Decline
$game_temp.trade_accepting = false
$game_temp.start_trade = false
return true
Adicione:
- Código:
#Dia e noite pelo servidor criado por Darkmel.
when /(.*)<\/hrS>/
n = $1.split("_")
$hora = n[1].to_i
$game_map.need_refresh = true
if $scene.is_a?(Scene_Map)
$scene.update
$game_map.update
end
return true
Pronto, agora inicie o servidor dia e noite e teste, aconselho ir no arquivo dn.dat e colocar um desses numeros que mais chega perto de sua hora:
- Código:
0
6
10
14
17
18
20
Para criar um teleporte por exemplo que so aconteça as 8h da noite:
1 - Crie um evento e coloque condiçao de script, no compo script coloque:
- Código:
$hora == 20
E pronto agora é so adicionar o teleport na condiçao e na exeçao coloque uma mensagem de erro.
Darkmel - Por criar o novo servidor de dia e noite, os scripts do servidor e do client.
Vinks - por encontrar alguns bugs no topico.
Gostou dá +1, custa nada.
Última edição por Darkmel em Qua maio 08, 2013 8:32 pm, editado 3 vez(es)