[Ajuda] [DUVIDA] USO DE CPU DO MYSQL
#1

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.
Reply
#2

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 ?
Reply
#3

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?
Reply
#4

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.
Reply
#5

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б!
Reply
#6

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?
Reply
#7

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.
Reply
#8

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.
Reply
#9

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.
Reply
#10

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)