HI
tfs 0.4

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

Por Hisoka Fail2, 07 de jul. de 2016 em Tópicos Sem Resposta

poketibia
duvida lag
10
5.1k
07 de julho de 2016 às 08:15

   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 Julho 7 por Hisoka Fail2

PoccnnP
07 de julho de 2016 às 08:22

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.

samlecterS
07 de julho de 2016 às 09:48

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 Julho 7 por samlecter

LenhadorL
07 de julho de 2016 às 13:04

bom muitos erros que causa quedas basicamente do PDA é só arrumando nas sources, e como não tem é dificil fazer um servidor estável.

PoccnnP
07 de julho de 2016 às 13:38
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.

samlecterS
07 de julho de 2016 às 15:36
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)

 

PoccnnP
07 de julho de 2016 às 16:23

Isso é sources mal feitas por pessimos programadores.

kttallanK
07 de julho de 2016 às 20:40

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.

 

09 de julho de 2016 às 11:46
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...

1 ano depois...
StigalS
21 de abril de 2018 às 03:42
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.