Ir para conteúdo

[Encerrado] Dúvidas sobre rollback e lag...


Posts Recomendados

   Não sei bem se estou na área correta mas enfim....eu tenho um servidor base pda (pokecyan 2.0)e eu gostaria de melhorar o lag e os rollbacks no server... então eu coloquei o comando !save no servidor,porém pelo que percebo esse comando aumenta um pouco o lag no server não é?,então gostaria que alguém me ensinasse como colocar limite de tempo para usar o !save,tipo só pode usar a cada 20 segundos,e  também Gostaria que o talcktion !save fosse usado toda vez que o player:captura um pokemon e faz uma troca e upa um lvl....

Me falaram que deixar o comando !save no servidor aumenta muito mais os clones do server,isso é verdade?,Se tiver algum metodo mais eficiente do que esse que propus para melhorar os rollbakcs e o  me falem.. 

 Se poderem também gostaria de umas dicas de como melhorar o lag no servidor...e que se possível também me fala-sem todos os bugs do pda que fazem o servidor cair,e que ensinem como retirar também,obrigado desde de já <3
 

Prevejo:Troque por uma base open soucer... 

Editado por Hisoka Fail2
Link para o comentário
Compartilhar em outros sites

Existi uma infinidade de coisas que causam lag's, principalmente scripts mal feitos ou que tenham loops altos.

Enfim... somente verificando cada script e reformulando ele voce pode diminuir o lag devido aos scripts.

Com relação ao save, existe uma função (pelo menos na versao tfs 0.3.6) doPlayerSave(cid), voce pode usa-lo em qualquer script o que causa menos lag do que salvar todos os player ou os proprios players ficarem dando selfsave.

Link para o comentário
Compartilhar em outros sites

Seguinte, sobre "clonar" com o comando !save,  o problema não é na talkaction, é em um DC (disconnect) , se o player achar algo que causa um DC e tiver o !save, da pra clonar!

Como sei que seu OT é PDA e base Cyan, dificilmente você vai descobrir e concertar todas maneiras de causar um disconnect.

 

Como resolver: você tira a talkaction !save e coloca para sempre que o player der logout dar save no char.

 

Vá em logout.lua (data\creaturescripts\scripts)

Em cima de:

setPlayerStorageValue(cid, config.storage, getPlayerIp(cid))	setPlayerStorageValue(cid, 3123, -1)

Adiciona:

doPlayerSave(cid, true)

Ficando assim:

function onLogout(cid)    local timeNow = os.time()    local totalTime = getPlayerLastLoginSaved(cid) + LogOutDelay    if totalTime >= timeNow then        if not config.lerIP or getPlayerStorageValue(cid, config.storage) == getPlayerIp(cid) then            doPlayerSendTextMessage(cid, 19, "[PokeLight] Aguarde ".. totalTime - timeNow .." segundo(s) Para Poder Deslogar!.")            return false        end    end    doPlayerSave(cid, true)     setPlayerStorageValue(cid, config.storage, getPlayerIp(cid))    setPlayerStorageValue(cid, 3123, -1)

 

 

 

 

Editado por samlecter
Link para o comentário
Compartilhar em outros sites

3 horas atrás, samlecter disse:

Seguinte, sobre "clonar" com o comando !save,  o problema não é na talkaction, é em um DC (disconnect) , se o player achar algo que causa um DC e tiver o !save, da pra clonar!

Como sei que seu OT é PDA e base Cyan, dificilmente você vai descobrir e concertar todas maneiras de causar um disconnect.

 

Como resolver: você tira a talkaction !save e coloca para sempre que o player der logout dar save no char.

 

Vá em logout.lua (data\creaturescripts\scripts)

Em cima de:

setPlayerStorageValue(cid, config.storage, getPlayerIp(cid))	setPlayerStorageValue(cid, 3123, -1)

Adiciona:

doPlayerSave(cid, true)

Ficando assim:

function onLogout(cid)    local timeNow = os.time()    local totalTime = getPlayerLastLoginSaved(cid) + LogOutDelay    if totalTime >= timeNow then        if not config.lerIP or getPlayerStorageValue(cid, config.storage) == getPlayerIp(cid) then            doPlayerSendTextMessage(cid, 19, "[PokeLight] Aguarde ".. totalTime - timeNow .." segundo(s) Para Poder Deslogar!.")            return false        end    end    doPlayerSave(cid, true)     setPlayerStorageValue(cid, config.storage, getPlayerIp(cid))    setPlayerStorageValue(cid, 3123, -1)

 

 

 

 

Pelo que eu saiba, se alguem desloga, ele tem que salvar as alterações por padrão, então é desnecessario acrescentar save ao deslogar.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Poccnn disse:

Pelo que eu saiba, se alguem desloga, ele tem que salvar as alterações por padrão, então é desnecessario acrescentar save ao deslogar.

 

Ele disse que players estavam dando logout e quando voltavam coisas sumiam como se tivesse dado um rollback (sem que tenha ocorrido o rollback) então, por via das dúvidas né...

 

Uma outra hipótese é que na base Cyan, quando fica online muitas horas (mais de 24hrs) um monte de coisa para de funcionar, por exemplo o catch deixa de enviar as balls para a DP, várias coias... já testei deixar ligado sem nenhum player on e depois de muito tempo ligada tudo para de funcionar com ou sem player On (deve ser alguma sacanagem feita na source)

 

Link para o comentário
Compartilhar em outros sites

O PDA tem muitos erros, porém ele ainda dá para ser ultilizado só tem que saber ultilizar ele de certa forma e fazer a dinamica dele funcionar melhor vou citar algumas coisas que melhorariam o desempenho, sendo que o maior motivo dos rollback's.

 

Tenho um servidor PDA e quero mante-lo online sem problemas com rollback e laag, como proceder?

  • VPS Windowns (Só pode ser, já que não tem versão compilada em linux), com proteção ddos.
  • VPS Windowns com Memoria Ram Superior a 3gb, sendo processador single core 3.6ghz (Se for dual-core melhor ainda vai evitar muito rollbacks)
  • Mapa inferior a 100mb (Sim isso é muito importante, o pda tem um erro no mapa.h Cujo mapa 100mb+S.O windowns o processador consome seu potencia maximo assim causando rollback.
  • Refazer os Attributos dos pokemons no configuration.lua (Os attributos são storages, ou seja, cada level que você upa é acrescentada storages, exemplo abaixo)
  • Evitar esse sistema de Save, no catch, up, etcs. Seu servidor tem 30 player online cada um dando varios catch simultaneamente, além do registro na storage poderá causar muito laag principalmente se o servidor tiver um rate de XP e Catch elevado.

 

Como o Sam Lector falou é verdade, o PDA deve ter algum problema nas sources relacionada a esse tal mal funcionamento, depois de um tempo o servidor começa a falhar, tais como catch e até attributos de certos pokémons, MINHA DICA é fazer um serve restart 4x ao dia. 00:00, 06:00, 12:00, 18:00.

 

Sobre o Save Catch que você pretendia eu sugiro, que você faça uma edição no script de catch para que os pokemons listado nele's, como por exemplo. Pokémons Raros {Shinys e Megas} sejam salvos..

 

Exemplo Citado Acima (lib/Configuration.lua).

['Treecko'] = {offense = 0.7, defense = 6, specialattack = 5, vitality = 3.5, agility = 190, exp = 90, level = 20, wildLvl = 30, type = 'grass', type2 = 'poison'},

Offense, Defense, SpecialATTACK, Vitality, Agility, É tudo storage registrada simultaneamento, e o pior essa storage é aumentada a cada level que o player upa ou seja o player level 20, está com os attributos acima já que é a base do pokemon level 20. porém com o aumento do level do player é a tabela acima multiplicado pelo level, sendo assim um grande acrescimo de storage simultaneamente, causando o maior consumo do executavel no processador levando a um rollback.

 

Link para o comentário
Compartilhar em outros sites

Em 07/07/2016 at 20:40, kttallan disse:

O PDA tem muitos erros, porém ele ainda dá para ser ultilizado só tem que saber ultilizar ele de certa forma e fazer a dinamica dele funcionar melhor vou citar algumas coisas que melhorariam o desempenho, sendo que o maior motivo dos rollback's.

 

Tenho um servidor PDA e quero mante-lo online sem problemas com rollback e laag, como proceder?

  • VPS Windowns (Só pode ser, já que não tem versão compilada em linux), com proteção ddos.
  • VPS Windowns com Memoria Ram Superior a 3gb, sendo processador single core 3.6ghz (Se for dual-core melhor ainda vai evitar muito rollbacks)
  • Mapa inferior a 100mb (Sim isso é muito importante, o pda tem um erro no mapa.h Cujo mapa 100mb+S.O windowns o processador consome seu potencia maximo assim causando rollback.
  • Refazer os Attributos dos pokemons no configuration.lua (Os attributos são storages, ou seja, cada level que você upa é acrescentada storages, exemplo abaixo)
  • Evitar esse sistema de Save, no catch, up, etcs. Seu servidor tem 30 player online cada um dando varios catch simultaneamente, além do registro na storage poderá causar muito laag principalmente se o servidor tiver um rate de XP e Catch elevado.

 

Como o Sam Lector falou é verdade, o PDA deve ter algum problema nas sources relacionada a esse tal mal funcionamento, depois de um tempo o servidor começa a falhar, tais como catch e até attributos de certos pokémons, MINHA DICA é fazer um serve restart 4x ao dia. 00:00, 06:00, 12:00, 18:00.

 

Sobre o Save Catch que você pretendia eu sugiro, que você faça uma edição no script de catch para que os pokemons listado nele's, como por exemplo. Pokémons Raros {Shinys e Megas} sejam salvos..

 

Exemplo Citado Acima (lib/Configuration.lua).

['Treecko'] = {offense = 0.7, defense = 6, specialattack = 5, vitality = 3.5, agility = 190, exp = 90, level = 20, wildLvl = 30, type = 'grass', type2 = 'poison'},

Offense, Defense, SpecialATTACK, Vitality, Agility, É tudo storage registrada simultaneamento, e o pior essa storage é aumentada a cada level que o player upa ou seja o player level 20, está com os attributos acima já que é a base do pokemon level 20. porém com o aumento do level do player é a tabela acima multiplicado pelo level, sendo assim um grande acrescimo de storage simultaneamente, causando o maior consumo do executavel no processador levando a um rollback.

 

Realmente concordo com o que você falou,a unica coisa é que existe pda open soucer... tirando isso vc falou tudo certo...

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...