Histórico de Curtidas
-
Dolera deu reputação a Leu em [TFS 1.1+] Limpar Characters Inativos / Accounts vaziasUsando o script do Cjaker como base (e a descrição do tópico dele, na cara dura mesmo!), otimizei as operações no banco de dados (tava muito zuado) e adicionei um range de accounts protegidas pra evitar apagar os gms/samples/contas de spoofers do otservlist/etc... ;
Salve galera, mais um script para quem está precisando dar aquela limpada no banco de dados e otimizar o Servidor.
-- Especificações --
TFS 1.1+ Objetivo é limpar as contas inativas/vazias e os players Inativos assim removendo os usuários que estão inativos e ocupando espaço no banco de dados.
-- Instruções --
Em globalevents.xml insira essa linha <globalevent type="startup" name="CleanDatabases" script="cleandatabase.lua" />
Crie um script chamado cleandatabase.lua na pasta globalevents/scripts e cole isso dentro dele. --- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by leu. --- DateTime: 04/04/18 18:42 --- --[[ Clean Database by Cjaker | Refactor and SQL Optimizations by Leu ]]-- local inactiveMonths = 1 --> Quantos meses o player ficou inativo local createdMonths = 1 --> Quantos meses a conta foi criada e não possui character criado. local protectedAccIdEnd = 20 --ignorar accounts com id <= 20 local function clearInactivePlayers() local inactiveTimestamp = os.time() - (86400 * (inactiveMonths*30)) local totalClear=0 local fromClause = "`players` WHERE `account_id` > ".. protectedAccIdEnd .." AND lastlogin <= "..inactiveTimestamp local resultId = db.storeQuery("SELECT COUNT(*) as num_inativos FROM "..fromClause) if resultId ~= false then totalClear = result.getDataInt(resultId, 'num_inativos') result.free(resultId) if totalClear > 0 then db.query("DELETE FROM "..fromClause) end end return totalClear end local function clearEmptyAccounts() local totalClear = 0 local createdTimestamp = os.time() - (86400 * (createdMonths*30)) local fromClause = "`accounts` ACCS WHERE `id` > ".. protectedAccIdEnd .." AND `creation` <= "..createdTimestamp.." AND (SELECT COUNT(*) from `players` WHERE `account_id` = ACCS.`id`) > 0" local resultId = db.storeQuery("SELECT COUNT(*) as num_inativas FROM "..fromClause) if resultId~= false then totalClear = result.getDataInt(resultId,'num_inativas') result.free(resultId) if totalClear > 0 then db.query("DELETE ACCS FROM "..fromClause) end end return totalClear end function onStartup() print('>> ' ..clearInactivePlayers().. " players inativos deletados.") print('>> ' ..clearEmptyAccounts().. " contas vazias deletadas.") end
é isso senhores, paganois, flw!
EDIT 24-04-2018: correção DELETE accs QUERY
-
Dolera deu reputação a psychonaut em removidodeleta o tópico
-
Dolera deu reputação a Johncore em [PEDIDO] Feru ascendant + Scarabs Lair (Kha'zeel)Isso que você está pedindo tem no datapack do Maluco mano OTX
-
Dolera deu reputação a Pedriinz em DEATH AND BOOM GAZ HELPAdicione a tag, e reinicie o ot.
warnUnsafeScripts = false Veja se outros problemas irão aparecer...
-
Dolera deu reputação a Pedriinz em DEATH AND BOOM GAZ HELPMelhor maneira é reescrevendo o código inteiro para versão do tfs que ta rodando o codigo, que provavelmente é 1.x+.
Mas por hora você pode acessar o config.lua e mudar a tag:
warnUnsafeScripts = true para false.
Lembrando que o aconselhável aqui é você reescrever o código.
-
Dolera deu reputação a GustavaoTibia em COLOCAR EXAUSTED NO SSA E RING@Dolera adiciona delay na hotkey outro modo não sei.
qual hotkey voce usa? modules?
-
Dolera deu reputação a M4G0 em Enviar Carta para playerBoa Noite, peguei um script mudei algumas coisas pra criar esse script q envia uma carta a Player "X" funciona tudo
certinho, mais sempre tenho que mudar o texto e da reload, seria possivel por pra quando eu usar comando /sendletter X, Textto ?
-
Dolera deu reputação a Pedriinz em All bugs OTSERV - REVELADO ! -No every eu utilizo 40, e o jogador que ultrapassa isso eu nao tenho quaisquer cuidados sobre isso.
Apenas tento ajudar a usar o boosttimer acima do 60.
Mas gostaria de lembrar que a CPU da maquina onde o every é hospedada é muito boa.
-
Dolera deu reputação a Pedriinz em All bugs OTSERV - REVELADO ! -Os kicks aleatorios são culpa dos jogadores e não do servidor.
O que é facilmente editavel no bot do usuario.
Não use packet acima do indicado pois você estará pondo seu servidor em risco.
Caso jogadores reclamem de tomarem kicks por bot, apenas peça para alterarem boostime para um valor aceitavel dentro das configurações setadas pelo administrador do servidor.
Exemplo:
Se você configurou o packet para 25 (recomendavel até 40)... Então você pede para usarem boosttime acima do 70. E pronto.
Se você usar acima de 40 você precisará de uma boa otimização de scripts do servidor e uma boa CPU.
Caso contrario... CRASH
-
Dolera recebeu reputação de klenioo em All bugs OTSERV - REVELADO ! -ninguém sabe como bloquear o programa wpe no ot?
precisamos de um expert!
-
Dolera deu reputação a grafit em [GESIOR2012] War system com Escudos (TFS1.0)Nesse war system qualquer player consegue entrar e/ou sair das guilds enquanto ocorre o system.
Há algum jeito de deixar bloqueado enquanto estiver tendo o system?
Outra dúvida, eu alterando o tempo de war para 2 horas(por exemplo), ainda assim será necessário o serv save para sumirem os escudos ou eles saem mesmo com o player online?
-
Dolera deu reputação a degola em Seacrest Grounds 10.x [DOWNLOAD MAP]Muito bom, valeu usando aqui. igualzinho, rep++