onPlayerChangesProtectedData
Disparado quando um cliente tenta escrever um dado de elemento que não tem permissão de escrever.
O jogador que tentou.
Parâmetros
Seção intitulada “Parâmetros”| Posição | Nome | Tipo | Descrição |
|---|---|---|---|
| 1 | oElemento | element | Elemento que o cliente mirou. |
| 2 | chave | string | Chave que ele tentou escrever. |
| 3 | valor | any | Valor que ele tentou escrever, ou nil quando tentou remover a chave. |
Cancelável
Seção intitulada “Cancelável”Não.
A escrita já foi recusada antes de o evento disparar.
Uma escrita vinda do cliente é permitida ou recusada pela confiança de cliente da chave, definida pelo quinto argumento de setElementData. Uma chave sem confiança definida segue o sv_elementDataWhitelist: recusada quando a lista branca está ligada, permitida quando está desligada.
O servidor nunca aplica uma escrita recusada. Ele registra o fato (no máximo uma vez a cada poucos segundos, para que uma enxurrada não encha o log), dispara este evento e devolve o valor verdadeiro àquele cliente para que a cópia dele pare de divergir.
Este é o gancho para pegar um cliente modificado: um cliente honesto nunca chega aqui, porque o resource que roda nele nem tenta a escrita.
addEventHandler("onPlayerChangesProtectedData", root, function(oElemento, chave, valor) outputServerLog(getPlayerName(source) .. " tentou definir '" .. chave .. "' como " .. tostring(valor)) kickPlayer(source, "cliente modificado")end)Veja também
Seção intitulada “Veja também”onElementCreated— Disparado assim que um elemento é criado, logo depois de o servidor avisar os clientes sobre ele.onElementDestroy— Disparado quando um elemento está sendo destruído.onElementDataChange— Disparado quando um dado de elemento é escrito ou removido.onElementModelChange— Disparado quando setElementModel muda o modelo de um elemento.onElementDimensionChange— Disparado quando a dimensão de um elemento muda de verdade.onElementInteriorChange— Disparado quando o interior de um elemento muda de verdade.onElementClicked— Disparado quando um jogador clica em cima de um elemento.onElementAttach— Disparado quando attachElements prende um elemento a outro.