Network Scripting
Aula 2 - Envio e Manipulação de Dados
Introdução
Nesta aula veremos como é facil manipular dados, se você leu a aula anterior, verá que não tem mistério. Como prometido vamos estudar sobre variavel $1, sintaxes e introdução do servidor do NP 1.7
Variavel $1
O netplay, quando recebe Dados do Host, encontra um Meio de manipula-lo atualizando a informação, estes dados podem ser acessados pela variavel global:
$1
Exemplo simples:
when/<chat>(.*)<\/chat>/ $game_temp.chat_log.push($1) $game_temp.chat_refresh =true
este código é encontrado no metodo update do Network
Uma vezz que este código é encontrado em um metodo de atualização isto signifca que ele se repetirá porque o netplay recebe dados a cada momento em que um player está jogando.
No Exemplo acima uma vez que voce viu na aula passada que:
[b]EnviodoSocketdo chat[/b] name =Network::Main.name Network::Main.socket.send("#{name}) #{@input_window.text}\n")
Código do Scene_Chat enviando socket
o servidor interpreta informação do RMXP e reenvia:
---------------------------------- CHAT ---------------------------------- if cmd ==""then do NP():SendToAll(data)end
Agora reevendo eles mais profundamente, a variavel $1 resumidamente serve para acessar a (data) que no caso é sçao os dados(uau sério?) interpretados pelo servidor que serão enviados segundo sua sintaxe que veremos daqui a pouco, Quais são os dados neste exemplo?:
#{name}) #{@input_window.text}
estes são os dados que foram enviados pelo RMXP que foram interpretados pelo servidor atraves da array (data).
seria a mesma coisa que
do NP():SendToAll(#{name})#{@input_window.text}
mas no caso usamos apenas (data) pela linguagem LUA.
Outros Casos da variavel $1
Existem alguns casos em que acessar apenas um dado não é suficiente, para isto existem alem da variavel $1, Existe a $2,$3, $4 e assim por diante.
Um Exemplo:
defself.trade(id,type,item,num=1,todo='gain')(...)@socket.send("<12>type=#{type} item=#{item} num=#{num} todo=#{todo}</12>\n")
Vejamos que o servidor terá que enviar para o cliente varios dados como, "Type, item, num e todo. e neste caso o servidor irá reenviar e o cliente irá receber a informação
when/<12>type=(.*) item=(.*) num=(.*) todo=(.*)<\/12>/(...)
No caso os dados de type será acessada pela variavel $1, item = $2 etc... e com ela no codigo é Executada Scenes, Eval($1), case $1 são variados os tipos dependendo do dado obtido
Um detalhe importante é esse (.*), se você ja percebeu ele está presente em todos os sockets, apenas para relembrar ele é a (data) do servidor e do cliente, relembrando o exemplo do chat:
Envio
Network::Main.socket.send("#{name}) #{@input_window.text}\n")/[code]ServidorEscute e o lança de volta. e o RMXP [code]when/<chat>(.*)<\/chat>/ $game_temp.chat_log.push($1) $game_temp.chat_refresh =true[/code] o (.*) seria a mesma coisa que [code]when#{name}) #{@input_window.text}Mas por questão de sintaxe é acessado o dado por (.*)[hr][b]SintaxedoServidor[/b] O servidor como você já leu, lê, interpreta e reenvia os dados para o RMXP, mas ele pode ser manipulado de certas formas.[code]if cmd ==""then do função end
No qual a função poderá ser:
Funções
Functions
------------
NP():SendToAll( data ) -- Envia a String para todos conectados no servidor
NP():ShowMessage( data ) -- Mostra os Dados da string no chat
NP():SendToUser(user.id,data) -- Envia Dado para um usuário com IP tal
NP():GetServerName() -- Pega a String pelo Nome do servidor na guia geral
NP():BanIP( user.ip ) -- Adciona o Usuário de IP tal para a lista de banidos
NP():CloseSocket( user.ip ) -- Desconecta um Usuário de IP tal.
User.ip, user.id... se você não entendeu estas variaveis globais vamos ve-la agora
Variaveis globais do servidor
-user.id:O ID único do usuário use-o apenas para enviar informaçoes especificas para aquele usuário
-user.name -- O nome de usuário do usuário(ficou repetitivo -.-') use-o para sauda-lo ou para eventos envolvendo a pessoa
-user.group -- O grupo do usuário(tal como Admin, MOD, Standard)
-user.ip -- IP do usuário
Final
Demerou mas chegou a segunda aula, infelizmente a terceira ainda vai demorar também, mas pelo menos acho que essa ja deu pra aprender algumas coisas =P
In de huidige digitale wereld is een sterke online aanwezigheid cruciaal geworden voor bedrijven van alle groottes. Met wereldwijd meer dan 4,66 miljard actieve internetgebruikers is het geen verrassing dat de meerderheid van de consumenten er de voorkeur aan geeft om producten of diensten online te onderzoeken en aan te schaffen. Dit stelt bedrijven voor een unieke uitdaging - hoe val je op in het drukke virtuele landschap? De sleutel ligt in het begrijpen van je doelgroep en klanten en hen effectief bereiken via verschillende digitale kanalen. Als expert op dit gebied met jarenlange ervaring deel ik graag waardevolle inzichten over hoe je meer websitebezoekers kunt aantrekken en uiteindelijk de bedrijfsgroei kunt stimuleren door middel van effectieve targetingstrategieën. Jouw doelgroep en klanten zitten online!