SA-MP Forums Archive
[Ajuda] [DUVIDA] USO DE CPU DO MYSQL - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] [DUVIDA] USO DE CPU DO MYSQL (/showthread.php?tid=663827)



[DUVIDA] USO DE CPU DO MYSQL - JacKPanK - 12.02.2019

Olб bom dia meu povo, alguйm pode me ajudar nessa questгo? Eu tф criando um servidor completo alimentado pelo MySQL e eu quero saber se o plugin do MySQL incorporado ao PlayerUpdate pode ocasionar um congestionamenro por conta da constante atualizaзгo de dados, quero colocar para que o OnPlayerUpdate fique checando qual quer que seja a mudanзa no banco para alterar no jogo de imediato.

Alguйm por favor pode me tirar essa dъvida e se tiver alguma maneira de diminuir o acesso constante ao DB por favor me ajudem.

Chegar em casa atualizo com o cуdigo que coloquei no Update do GM.
Dкs de jб agradeзo a atenзгo.


Re: [DUVIDA] USO DE CPU DO MYSQL - DanielMatrix - 12.02.2019

Olб tudo bem , olha minha opniгo prуpria, o MysQL seus dados sгo armazenados e solicitados em milissegundos, usar o OnPlayerUpdate , seria desnecessбrio , caso queira fazer atualizaзхes instantвneas , tem outras possibilidades, eu particularmente , nгo faria isso, evite usar OnPlayerUpdate . Conflito direto creio que nгo vai dar pois, o banco de dados esta pronto para receber atualizaзхes , o seu problema vai ser em sua maquina, ela suporte constantes atualizaзхes ?


Re: [DUVIDA] USO DE CPU DO MYSQL - JacKPanK - 12.02.2019

Quote:
Originally Posted by DanielMatrix
Посмотреть сообщение
Olб tudo bem , olha minha opniгo prуpria, o MysQL seus dados sгo armazenados e solicitados em milissegundos, usar o OnPlayerUpdate , seria desnecessбrio , caso queira fazer atualizaзхes instantвneas , tem outras possibilidades, eu particularmente , nгo faria isso, evite usar OnPlayerUpdate . Conflito direto creio que nгo vai dar pois, o banco de dados esta pronto para receber atualizaзхes , o seu problema vai ser em sua maquina, ela suporte constantes atualizaзхes ?
Eu acho que nгo, irei usar uma VPS simples em Linux.

Eu estava pensando nisso:
Cria-se uma variбvel com a quantia em dinheiro retirado do banco de dados ao efetuar o login;
Houve uma mudanзa na quantidade do dinheiro no GivePlayerMoney ou mais provбvel HACK;
O OnPlayerUpdate identifica a mudanзa, verifica se esse valor do GetPlayerMoney й igual ao da variбvel, se for ele conecta ao banco de dados e muda a informaзгo do mesmo com a quantia da variбvel, caso a mudanзa do valor nгo estiver igual a variбvel ele nгo irб mudar nada no banco de dados e irб resetar o dinheiro para o valor da variбvel.

Ou teria uma maneira mais eficiente pra isso sem ser o OnPlayerUpdate? Se sim. Qual?


Re: [DUVIDA] USO DE CPU DO MYSQL - DanielMatrix - 12.02.2019

Vou lhe da uma logica.
Vocк criou o sistema de registro etc.. o jogador logou ganhou R$500,00 por ter se registrado, logo em seguida ele desconecta , eu salvo alguns dados ao jogador ao desconectar, dentre ele o dinheiro , agora vamos a questгo , o jogador loga , nisso eu uso a funзгo SELECT d MysQL , verifico a quantidade que esta armazenada no Banco de Dados, depois uso o cache_get_value_int(0, "Dinheiro",Suavariavel); para setar,
a questгo do "hack" tem que ver outras possibilidades, nгo conheзo 100% as nativas do samp em si.



Re: [DUVIDA] USO DE CPU DO MYSQL - G4M30V3R - 12.02.2019

Essa ideia й absurdamente bizarra!
OnPlayerUpdate й chamado centenas de vezes por segundo. Calcula isso com uma quantidade significativa de jogadores...

A lуgica mais viбvel й criar um timer de 1s que verifica se o valor da variбvel que contйm o dinheiro й diferente do que consta no HUD do dinheiro.
Isso й algo extremamente bбsico, otimizado e mais funcional de que verificar a cada passo que o jogador dб!


Re: [DUVIDA] USO DE CPU DO MYSQL - JacKPanK - 12.02.2019

Quote:
Originally Posted by G4M30V3R
Посмотреть сообщение
Essa ideia й absurdamente bizarra!
OnPlayerUpdate й chamado centenas de vezes por segundo. Calcula isso com uma quantidade significativa de jogadores...

A lуgica mais viбvel й criar um timer de 1s que verifica se o valor da variбvel que contйm o dinheiro й diferente do que consta no HUD do dinheiro.
Isso й algo extremamente bбsico, otimizado e mais funcional de que verificar a cada passo que o jogador dб!
@EDIT

Entгo qual timer eu deveria usar para atualizar as informaзхes do player? SetTimer no OnGameModeInit ou no OnPlayerConnect? e qual seria o SetTimer ou o SetTimerEx?


Re: [DUVIDA] USO DE CPU DO MYSQL - Koplan - 12.02.2019

Quote:
Originally Posted by JacKPanK
Посмотреть сообщение
Entгo qual timer eu deveria usar para atualizar as informaзхes do player? SetTimer no OnGameModeInit, ou o SetTimerEx no OnPlayerConnect?
OnPlayerConnect.


QUE IDЙIA ABSURDA. nгo use timer, muito menos OPU() - IsaacAsimov - 12.02.2019

cara para que salvar os dados o tempo todo?

salve somente quando houver atualizaзхes (salve o dinheiro quando comprar algo ou ganhar)
salve as posiзхes quando desconectar do servidor.

simples.


Re: QUE IDЙIA ABSURDA. nгo use timer, muito menos OPU() - JacKPanK - 12.02.2019

Quote:
Originally Posted by IsaacAsimov
Посмотреть сообщение
cara para que salvar os dados o tempo todo?

salve somente quando houver atualizaзхes (salve o dinheiro quando comprar algo ou ganhar)
salve as posiзхes quando desconectar do servidor.

simples.
Assim, eu preciso puxar as informaзхes o tempo todo, nгo salvar, pra chegar se ouve mudanзas diretas ao banco de dados, pois fiz um painel para o jogador e php.


Re: QUE IDЙIA ABSURDA. nгo use timer, muito menos OPU() - IsaacAsimov - 12.02.2019

Quote:
Originally Posted by JacKPanK
Посмотреть сообщение
Assim, eu preciso puxar as informaзхes o tempo todo, nгo salvar, pra chegar se ouve mudanзas diretas ao banco de dados, pois fiz um painel para o jogador e php.
verifica a cada 2 segundo com um request http,
ou entгo faz o painel UCP mandar enviar um socket de comunicaзгo entre o servidor.