zMpyster Posted February 23, 2019 Posted February 23, 2019 Estou criando um servidor e queria usar alguns accountsDatas só que tenho medo de fazer o script e o server começar a lagar dps de um tempo, o meu server atualmente é de 200 slots e hd ilimitado, estou usando + ou - uns 50 setAccountData, na WIKI diz que tem que tomar cuidado com a quantidade de datas usadas, queria que alguém me desse um valor ou então me falasse como posso verificar se o server estiver lagando será por causa dos accountsDatas, o meu server não está lagando, más quero prevenir...
Moderators Lord Henry Posted February 23, 2019 Moderators Posted February 23, 2019 (edited) Use o resource ipb que já vem instalado no servidor. Ele mostra quanto cada resource está consumindo do seu servidor. Pra abrir a interface dele use /ipb Edited February 23, 2019 by Lord Henry 2 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
zMpyster Posted February 23, 2019 Author Posted February 23, 2019 11 minutes ago, Lord Henry said: Use o resource ipb que já vem instalado no servidor. Ele mostra quanto cada resource está consumindo do seu servidor. Pra abrir a interface dele use /ipb Tem alguma taxa considerada muito alta ou alta?
DNL291 Posted February 23, 2019 Posted February 23, 2019 Account-data é utilizado para salvar e carregar os dados. Se vai pesar no banco de dados setando várias vezes, aí eu não sei se vai mesmo afetar ou o quanto vai afeitar. Você pode otimizar o salvamento definindo múltiplos valores para um registro, exemplo: local x,y,z = getElementPosition(thePlayer) local _,_,rot = getElementRotation(thePlayer) local acc = getPlayerAccount(thePlayer) -- não recomendado setAccountData( acc, "player_x", tostring(x) ) setAccountData( acc, "player_y", tostring(y) ) setAccountData( acc, "player_y", tostring(z) ) setAccountData( acc, "player_rot", tostring(rot) ) Otimizando: local x,y,z = getElementPosition(thePlayer) local _,_,rot = getElementRotation(thePlayer) local acc = getPlayerAccount(thePlayer) -- Com JSON setAccountData( acc, "player_pos", toJSON( {x, y, z, rot} ) ) -- Ou: setAccountData( acc, "player_pos", tostring(x)..", "..tostring(y)..", "..tostring(z)..", "..tostring(rot) ) Você pode usar esta função para reduzir o tamanho decimal: https://wiki.multitheftauto.com/wiki/Math.round; Ou a função Lua string.format() Com string.format: local p_pos = string.format( "%.4f,%.4f,%.4f,%.4f", x,y,z,rot ) -- salvando na conta: setAccountData( acc, "player_pos", p_pos ) Obtendo os valores separados por vírgula e JSON: local playerPosData = getAccountData( acc, "player_pos" ) if playerPosData then local pos = split( playerPosData, ',' ) local x,y,z,rot = pos[1], pos[2], pos[3], pos[4] end -- Obtendo os valores salvos com JSON: local playerPosData = getAccountData( acc, "player_pos" ) if playerPosData then local pos = fromJSON( playerPosData ) local x,y,z,rot = pos[1], pos[2], pos[3], pos[4] end Saí um pouco do assunto. Mas voltando ao que você mencionou da Wiki sobre account-data: Na verdade isso se aplica ao element-data, é recomendado evitar o excesso de setElementData sincronizado entre client/server para ter o menor uso de tráfego de rede. E também substituir o seu uso por tabelas preferencialmente. Para ver o desemprenho/performance dos seus scripts tem o resource ipb já mencionado e o performancebrowser que você pode analisar também o lado cliente. Sobre usar 50 account-data, sinceramente eu nunca usei essa quantidade em cada conta, você pode reduzir a quantidade de registros por fazer uma compactação com os métodos mostrados acima. Você também pode optar pelo banco de dados SQL. 1 Please do not PM me with scripting related question nor support, use the forums instead.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now