Salvar Variável no servidor versão ALPHA
LOG |
Script |
- Código:
#================================================================
#================================================================
#================= Salvar Variável no serve =====================
#================================================================
#=======BY:Gladistony Silva======================================
#=======Criada para o forum: Aldeiarpgbr ========================
#=======NÃO POSTA EM OUTRO FORUM SEM AUTORIZAÇÃO=================
#================================================================
#================================================================
class Scene_Map
alias update_sw_vr_gladis update
def update
Sw_Vr.atualizar if Graphics.frame_count % (35) == 0
update_sw_vr_gladis
end
end
module Sw_Vr
$swvr = []
def self.receber(data)
a = data
a.delete!("<SWS>")
a.delete!("</SWS>")
b = a.split('][')
b[0].delete!("[]")
if b.size > 1
b[b.size - 1].delete!("[]")
end
$swvr = b
end
def self.enviar
data = ""
for i in $swvr
if "[#{i}]" == "[]"
data += "[nill]"
next
end
data += "[#{i}]"
#data += "[#{i}]<==>#{a}||"
end
Network::Main.socket.send("<SWS> #{data} </SWS>\n")
end
def self.atualizar
Network::Main.socket.send("<SWL> solicitar </SWL>\n")
end
end
def swvr(x, var=nil)
Sw_Vr.atualizar
if var == nil
return $swvr[x]
end
$swvr[x] = var
Sw_Vr.enviar
end
module Network
class Main
def self.update_admmod(line)
case line
when /<SWL>(.*)<\/SWL>/
Sw_Vr.receber($1.to_s)
return true
# Admin Command Recieval
when /<18>(.*)<\/18>/
# Kick All Command
if $1.to_s == "kick_all"
p LANGUAGE::ADMKICKALL
self.close_socket
$scene = nil
return true
# Kick Command
elsif $1.to_s == "kicked"
p LANGUAGE::ADMKICK
self.close_socket
$scene = nil
return true
end
return false
end
return false
end
end
end
Script Sevidor |
- Código:
--------------------------------
-- salvar SW(25) --
--------------------------------
elseif cmd == "<SWS>" then
do
file = io.open("SWGlobais.txt", "w")
file:write(data)
file:close()
end
--------------------------------
-- Ler SW(25) --
--------------------------------
elseif cmd == "<SWL>" then
do
file = io.open("SWGlobais.txt", "r+")
infor = file:read("*a")
file:close()
NP():SendToUser(user.id,"<SWL>"..infor.."</SWL>")
end
Instalação |
- Código:
--------------------------------
-- Trade Request(24d) --
--------------------------------
Utilização |
swvr(X) para consultar alguma informação
ou use
swvr(x, data)
para gravar alguma coisa.
De ante mão aviso que as informações são guardadas como um lista
sendo assim, como eu queira dizer que o 1 membro vale 150 eu
coloco:[nota se inicia do 0 e vai ate onde vc quiser]
swvr(0, 150)
se depois eu quiser consultar o valor do 1 termo eu digito
apenas
swvr(0)
Notas |
>Apesar de não haver um limite da quantidade de dados gravados, o sistema de comunicação netplay/servidor pode apresentar falhas caso a quantidade de variáveis ou seus valores sejam muito grandes.
>Esse script eu fiz quando estava começando a aprender a mexer em ruby/lua, ele ainda precisa de melhorias, recomendo usa-lo apenas para criação de sistemas em testes, não lancem seu game usando esse script devido a alguns bugs presentes nele.
>O sistema apenas e capaz de gravar valores inteiros e string.
Bugs |
>A variável de id 0 esta bugada, não usem.
Compatibilidade |